1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
蜂鳴器要加在單片機程序的哪里?
[打印本頁]
作者:
1269210768
時間:
2020-6-23 08:50
標題:
蜂鳴器要加在單片機程序的哪里?
本帖最后由 1269210768 于 2020-6-26 20:59 編輯
當時鐘走到整點時,蜂鳴器鳴響一分鐘。
按“E” 鍵,系統進入鬧鐘設定狀態,數碼管顯示屏不再顯示當前時間,而顯示鬧鐘設定值,最初為00.00.00AL,然后根據“B”“C”“D”鍵來設定鬧鐘的秒,分,時。設定完畢,再次按“E”鍵,系統回到時鐘走時狀態,繼續走時。其中AL代表鬧鐘狀態alarm,且在鬧鐘設定時,后臺的時鐘繼續走時。
當時鐘時間與鬧鐘時間一致時,蜂鳴器鳴響一分鐘。
蜂鳴器播放音樂做鬧鐘鈴聲。
51hei.png
(149.71 KB, 下載次數: 61)
下載附件
2020-6-23 15:07 上傳
我的程序在下面,這個蜂鳴器的程序應該怎么編程,可以教一下我這個要怎么編輯嗎?謝謝
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
#define TIME=1200
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
unsigned int cnt=0;
unsigned char i=0;
unsigned long sec=0;
unsigned char second = 0;
unsigned char minute = 0;
unsigned char hour = 0;
unsigned char code segment_code[10] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f};
unsigned char digital_tube[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x39,0x38};
void ScanLed()
{
static unsigned char display_bit = 0;
switch (display_bit)
{
case 0:
P2=0xfe;
break;
case 1:
P2=0xfd;
break;
case 2:
P2=0xfb;
break;
case 3:
P2=0xf7;
break;
case 4:
P2=0xef;
break;
case 5:
P2=0xdf;
break;
case 6:
P2=0xbf;
break;
case 7:
P2=0x7f;
break;
default:
break;
}
P0=digital_tube[display_bit];
display_bit++;
if (display_bit == 8)
display_bit = 0;
}
void main()
{
TMOD = 0x01;
TH0 = 64536 / 256;
TL0 = 64536 % 256;
EA = 1;
ET0 = 1;
TR0 = 1;
while (1)
;
}
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=100;j>0;j--);
}
void Timer0() interrupt 1
{
static int index = 0;
TH0 = 64536 / 256;
TL0 = 64536 % 256;
index++;
ScanLed();
if (index == 1000)
{
index = 0;
second++;
}
if (second == 60)
{
second = 0;
minute++;
}
if (minute == 60)
{
minute = 0;
hour++;
}
if (hour == 24)
{
hour = 0;
}
if(K4==0)
{
delay(10);
if(K4==0)
{
hour++;
if(hour==24) hour=0;
}
while(!K4);
}
if(K3==0)
{
delay(10);
if(K3==0)
{
minute++;
if(minute==60) minute=0;
}
while(!K3);
}
if(K2==0)
{
delay(10);
if(K2==0)
{
second++;
if(second==24) second=0;
}
while(!K2);
}
if(K1==0)
{
delay(10);
if(K1==0)
{
hour=0;
minute=0;
second=0;
}
while(!K1);
}
digital_tube[0] = segment_code[hour / 10];
digital_tube[1] = segment_code[hour % 10]+0x80;
digital_tube[2] = segment_code[minute / 10];
digital_tube[3] = segment_code[minute % 10]+0x80;
digital_tube[4] = segment_code[second / 10];
digital_tube[5] = segment_code[second % 10]+0x80;
digital_tube[6] = 0x39;
digital_tube[7] = 0x38;
}
作者:
man1234567
時間:
2020-6-23 15:26
加在哪里都無所謂,只要鬧鐘程序觸發后能調用到就可以。
作者:
WychmBHA
時間:
2020-6-25 04:04
按照程序的安排來看,這個不是必要的操作,所以加在哪都可以
作者:
xxpp2011
時間:
2020-6-25 12:43
要求是當時鐘時間與鬧鐘時間一致時,蜂鳴器鳴響一分鐘。
那就每秒比對一次時間,到點就控制蜂鳴器響60s就好了。
作者:
ergeda
時間:
2020-6-25 13:48
當蜂鳴器需要調用時可以響應就行,自己可以找個位置加上,仿真調試實驗一下!
作者:
跟愛的感覺走
時間:
2020-9-7 08:28
按照程序的安排來看,這個不是必要的操作,所以加在哪都可以
作者:
權威人物
時間:
2020-9-7 09:47
你這個程序放在主循環即可,能觸發就行影響不大。養成良好的編程習慣,定時器盡量不要放代碼,盡量將執行程序放在主循環,
作者:
梁廷明
時間:
2020-9-7 11:57
制作函數模塊,用的時候可以調用
作者:
圖銳工程
時間:
2020-9-7 13:31
制作蜂鳴器函數模塊,需要使用的時候可以直接調用就行了
作者:
TTQ001
時間:
2020-9-8 08:33
它應該在調用它的main函數中。
作者:
qweneyu
時間:
2020-9-9 08:13
建議嘗試采用時間片輪詢的方式寫整個程序的架構,可以讓你對單片機的運轉方式更加了解
作者:
暖西夏
時間:
2020-9-16 15:25
蜂鳴器的代碼加到那都可以,看心情
作者:
lbc8862ec
時間:
2020-9-17 09:18
如果是蜂鳴器檢測時間的程序的話可以放在小時計數之后。影響不大
作者:
lbc8862ec
時間:
2020-9-17 09:20
放在主函數中小時計時的后面,我習慣這么做
作者:
gf.shao
時間:
2020-9-17 10:55
在main里面加,到時相應位置1
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1