欢迎来到天天文库
浏览记录
ID:5552173
大小:39.50 KB
页数:6页
时间:2017-12-18
《51单片机制作的数字钟》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、/*程序作用:数控数字钟,键盘设置显示时间,由1602LCD液晶显示硬件电路:AT89C52,LCD1602,三个按键程序作者:辽宁工业大学电子LINBO时间:2012年7月28日地点:5#403*/#include#defineuint8unsignedchar#defineuint16unsignedint//位声明sbitRS=P1^0;//lcd控制端sbitRW=P1^1;sbitEN=P1^5;sbitBUSY=P0^7;sbitk1=P2^4;//按键控制端sbitk2=P2^5;sbitk3=P2^6;sbitko=P2^3;uint8codet[]="201
2、2-7-28sat";//初始显示uint8codet1[]="00:00:00";uint8j;uint16cout;charshi,fen,miao;voiddelay(uint8z)//延时函数{uint8x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwait(void)//等待液晶繁忙函数{P0=0xFF;do{RS=0;RW=1;EN=0;EN=1;}while(BUSY==1);EN=0;}voidsendcom(uint8com)//LCD命令发送函数{wait();RS=0;RW=0;EN=0;P0=com;EN=1;EN=0;}voi
3、dsenddate(uint8date)//LCD数据发送函数{wait();RS=1;RW=0;EN=0;P0=date;EN=1;EN=0;}voidinit()//初始化函数,LCD,KEY,TIMER,ZHONGDUAN{uint8i;sendcom(0x38);sendcom(0x0C);sendcom(0x06);sendcom(0x01);sendcom(0x80);EN=0;for(i=0;i<15;i++){senddate(t[i]);delay(5);}sendcom(0x80+0x40);for(i=0;i<12;i++){senddate(t1[i]);delay(5
4、);}TMOD
5、=0x10;TMOD&=0xdf;TH1=0xFC;TL1=0x67;TR1=1;EA=1;ET1=1;}voidxiesfm(uint8add,uint8date)//位置指针以及数据发送{uint8shi,ge;shi=date/10;ge=date%10;sendcom(0x80+0x40+add);senddate(0x30+shi);senddate(ge+0x30);}voidshanmiao()//按键扫描{ko=0;if(k1==0){delay(5);if(k1==0){j++;while(!k1);if(j==1){TR1=0;sendcom(0x80+0x
6、40+10);sendcom(0x0f);}}if(j==2){sendcom(0x80+0x40+7);}if(j==3){sendcom(0x80+0x40+4);}if(j==4){j=0;sendcom(0x0c);TR1=1;}}if(j!=0){if(k2==0){delay(5);if(k2==0){while(!k2);if(j==1){miao++;if(miao==60){miao=0;}xiesfm(10,miao);sendcom(0x80+0x40+10);}if(j==2){fen++;if(fen==60){fen=0;}xiesfm(7,fen);sendcom
7、(0x80+0x40+7);}if(j==3){shi++;if(shi==24){shi=0;}xiesfm(4,shi);sendcom(0x80+0x40+4);}}}if(k3==0){delay(5);if(k3==0){while(k3==0);if(j==1){miao--;if(miao==-1){miao=59;}xiesfm(10,miao);sendcom(0x80+0x40+10);}if(j==2){fen--;if(fen==-1){fen=59;}xiesfm(7,fen);sendcom(0x80+0x40+7);}if(j==3){shi--;if(shi==
8、-1){shi=23;}xiesfm(4,shi);sendcom(0x80+0x40+4);}}}}}voidmain()//主程序函数{init();while(1){shanmiao();}}voidtimer_1()interrupt3//中断服务函数{TH1=0xFC;TL1=0x67;cout++;if(cout==1000){cout=0;miao++;if(miao==60){mi
此文档下载收益归作者所有