單片機(jī)鬧鐘程序及PROTUES仿真文件
/*/
//////////////////////////////////////////本文引用地址:http://m.butianyuan.cn/article/201612/324567.htm
}
//////////////// //延時(shí)程序///////////////////////////////
void delay_5ms(void)
{
uchar i,j;
for(i=10;i>0;i--)
for(j=248;j>0;j--)
;
}
////////////顯示程序,這個(gè)寫(xiě)法不錯(cuò)啊。//////////////////////////
void disp(uchar m,uchar n)
{
P2=pos[n]; //查表法 把對(duì)應(yīng)的段碼送P2?
P0=seg[m]; //查表法 把對(duì)應(yīng)的未碼送P0口
delay_5ms();
P2=0x00;
}
////////////顯示程序,這個(gè)寫(xiě)法不錯(cuò)啊。//////222222222222222/////
void disp00(uchar x,uchar y)
{
P2=pos00[y]; //查表法 把對(duì)應(yīng)的段碼送P2?
P0=seg00[x]; //查表法 把對(duì)應(yīng)的未碼送P0口
delay_5ms();
P2=0x00;
}
////////////////////主程序//////////////////////////////
void main(void)
{
uchar j;
uchar p;
TMOD=0x01;
// TH0=-50000/256;
// TL0=-50000%256;
TR0=1;
ET0=1;
EA=1;
second=0;
minite=0;
hour=0;
second00=7;
minite00=8;
hour00=9;
jidianqi1=1;
naozhongqiyongFlag=0;
led=1;
while(1)
{
TimeCompate();
if(k1==0)
{
delay_5ms();
if(k1==0) //判斷按鍵是否按下
{
second=0;
while(k1==0);
}
}
if(k2==0) //判斷按鍵是否按下
{
delay_5ms();
if(k2==0)
{
minite++;
if(minite==60) minite=0;
while(k2==0);
}
}
if(k3==0) //判斷按鍵是否按下
{
delay_5ms();
if(k3==0)
{
hour++;
if(hour==24) hour=0;
while(k3==0)
{for(j=0;j<8;j++) //掃描顯示程序,循環(huán)有8次,01234567.
disp(k[j],j); //掃描顯示程序
}
}
}
//////////////////////////////////////////////////////////////////////
if(k4==0) //判斷按鍵是否按下
{
delay_5ms();
if(k4==0)
{
while(k4==0)
{
for(p=0;p<8;p++)
disp00(k00[p],p);
TimeCompate();
;
}
}
}
///////////////////////////////////////////////////////////////////////////////
if(k5==0) //判斷按鍵是否按下
{
delay_5ms();
if(k5==0)
{
second00=57;
minite00=0;
hour00=0;
while(k5==0)
{
for(p=0;p<8;p++)
disp00(k00[p],p);
;
}
}
}
評(píng)論