文档介绍:该【51单片机时钟代码(带秒表闹钟功能) 】是由【花开花落】上传分享,文档一共【7】页,该文档可以免费在线阅读,需要了解更多关于【51单片机时钟代码(带秒表闹钟功能) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。51单片机时钟代码(带秒表闹钟功能)
#include
#include
#defineucharunignedchar#defineuintunignedint
bitbeep=P1^5;//蜂鸣器bitLED1=P1^6;//LED灯bitep=P2^7;//1602使能
端bitr=P2^6;//1602bitrw=P2^5;//1602
bit0=P3^4;//停止闹铃和小灯bit1=P3^5;//功能键bit2=P3^6;//增
大键bit3=P3^7;//减小键bit4=P3^1;//bit5=P3^2;bit6=P3^3;
bit7=P3^0;
uchar1num,4num,count,count1,judge=0;
charec,min,hour,miao,fen,hi,ec1,min1,diwei;voiddelay(uintz){
uint某,y;
for(某=z;某>0;某--)for(y=100;y>0;y--);}voiddi(){
beep=0;delay(50);beep=1;
}
bitlcd_bz()//测试LCD忙碌状态{
bitreult;
r=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();
reult=(bit)(P0&0某80);ep=0;
returnreult;
}
_nop_();_nop_();
_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;
}
voidwrite_data(uchardat)//写入字符显示数据到LCD{
while(lcd_bz());//等待LCD空闲
r=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_(
);_nop_();
_nop_();_nop_();
ep=0;
}
ucharhi,ge;
hi=dat/10;ge=dat;
write_data(0某30+hi);
write_data(0某30+ge);}
voidwrite_alarm(ucharadd,uchardat){
ucharhi1,ge1;hi1=dat/10;
ge1=dat;
count=0;
//clearwrite_data('A');delay(5);
hi=17;
voidkeycan()//按键扫描{if(1==0){
delay(5);if(1==0){
1num++;while(!1);di();
if(1num==1)
{
TR0=0;
if(1num==2)
{
if(1num==3){
if(1num==4){
1num=0;
if(1num!=0){
if(2==0)
{delay(5);if(2==0){
while(!2);di();
if(1num==1){
ec++;if(ec==60)ec=0;
if(1num==2){
min++;if(min==60)min=0;
if(1num==3){
hour++;if(hour==24)hour=0;
delay(5);if(3==0){
while(!3);di();
if(1num==1){
ec--;if(ec<0)
ec=59;
if(1num==2){
min--;if(min<0)min=59;
hour--;if(hour<0)
hour=23;
}
voidkeycan1(){
if(4==0){
delay(5);if(4==0){
4num++;while(!4);di();if(4num==1){TR0=0;
if(4num==2){
if(4num==3){
if(4num==4){
if(4num!=0){
if(5==0){
delay(5);if(5==0){
while(!5);di();
if(4num==1)
{
miao++;if(miao==60)miao=0;
write_alarm(10,miao);
if(4num==2){
fen++;if(fen==60)fen=0;
if(4num==3){
hi++;if(hi==24)hi=0;
write_alarm(4,hi);
if(6==0){
delay(5);if(6==0){
while(!6);di();
if(4num==1){
miao--;if(miao<0)
miao=59;
if(4num==2){
fen--;
if(fen<0)
fen=59;
write_alarm(7,fen);
if(4num==3){
hi--;if(hi<0)
hi=23;
}}
if(7==0){delay(5);if(7==0)
{while(!7)di();judge++;}
}
if(judge==2){TL0=0某b0;TH0=0某3c;
{ec=0;min++;if(min==60)
{min=0;hour++;if(hour==24){hour=0;}}}}}
if(judge==3){judge=0;ec1=0;min1=0;diwei=0;
write_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);wr
ite_alarm(10,miao);write_alarm(7,fen);write_alarm(4,hi);}
if(count==20){count=0;ec++;if(ec==60){
ec=0;min++;if(min==60){
min=0;hour++;if(hour==24){
hour=0;}}}}}