欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
跪求大神 51單片機24s倒計時 以及計時完畢后蜂鳴器響3
[打印本頁]
作者:
triangle
時間:
2018-12-6 15:08
標題:
跪求大神 51單片機24s倒計時 以及計時完畢后蜂鳴器響3
想用proteus仿真一個籃球24s倒計時的電路,51單片機,倒計時為零后蜂鳴器會響,計時完畢后自行復位24s重新開始
初學者
求教
作者:
13205985927
時間:
2020-11-16 19:44
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit addr0 = P1^0;
sbit addr1 = P1^1;
sbit addr2 = P1^2;
sbit beep=P1^5;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
u8 LedBuff[3]= {
//數碼管的顯示緩沖區,初值0x00確保啟動時都不亮
0x00,0x00,0x00
};
u8 flag1s = 0;
u16 cnt = 0;
u8 i = 0;
void delay(u16 j)
{
while(j--);
}
void Timer0Init(void);
void main()
{
u8 sec = 24; //記錄經過的秒數
Timer0Init();
while(1)
{
if (flag1s == 1) //判斷 1 秒定時標志
{
flag1s = 0; //1 秒定時標志清零
sec--; //秒計數自加 1
//以下代碼將 sec 按十進制位從低到高依次提取并轉為數碼管顯示字符
LedBuff[2] = smgduan[sec%10];
LedBuff[1] = smgduan[sec/10%10];
LedBuff[0] = smgduan[sec/100%10];
if(sec == 0)
{
sec = 24;
beep=~beep;
delay(10);
}
}
}
}
void Timer0Init() //1毫秒@11.0592MHz
{
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //設置定時器模式
TL0 = 0x66; //設置定時初值
TH0 = 0xFC; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
EA = 1;
ET0 = 1;
}
void InterruptTimer0() interrupt 1
{
static u8 i = 0;
TH0 = 0xfc;
TL0 = 0x67;
cnt++;
if(cnt == 1000)
{
cnt = 0;
flag1s = 1;
}
P0 = 0x00;
P1 = (0xf8 & P1) | i;
P0 = LedBuff[i];
if(i < 3)
{
i++;
}
else
i = 0;
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1