基于51单片机的数码管时钟(带闹钟调时秒表)15页

上传人:文库****9 文档编号:173994991 上传时间:2021-03-15 格式:DOCX 页数:15 大小:11.19KB
返回 下载 相关 举报
基于51单片机的数码管时钟(带闹钟调时秒表)15页_第1页
第1页 / 共15页
基于51单片机的数码管时钟(带闹钟调时秒表)15页_第2页
第2页 / 共15页
基于51单片机的数码管时钟(带闹钟调时秒表)15页_第3页
第3页 / 共15页
基于51单片机的数码管时钟(带闹钟调时秒表)15页_第4页
第4页 / 共15页
基于51单片机的数码管时钟(带闹钟调时秒表)15页_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于51单片机的数码管时钟(带闹钟调时秒表)15页》由会员分享,可在线阅读,更多相关《基于51单片机的数码管时钟(带闹钟调时秒表)15页(15页珍藏版)》请在金锄头文库上搜索。

1、/* * * * * * * * * * * *基于51单片机的数码管时钟程序 * * * * * * * * * * * * * */#include#define uint unsigned int #define uchar unsigned charsbit dula=P26;/申明u1锁存器的锁存端sbit wela=P27;/申明u2锁存器的锁存端sbit key1=P30; /功能键sbit key2=P31;/增大键sbit key3=P32;/减小键sbit key4=P33;/秒表查看键sbit beep=P23;/蜂鸣端uchar num,num1,num2,numm;u

2、char numf,num,nums,num;uchar s,s1,f,f1,m,m1;uchar ns,ns1,nf,nf1;uchar numns,numnf;uchar dingshi;void display(uchar m,uchar m1,ucharf,uchar f1,uchar s,uchar s1);void display1(uchar nf,uchar nf1,uchar ns,uchar ns1);void key();void key1();void alram();void di();void delayms(xms);void T0_time() interrup

3、t 1;void miaobiao();uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x77,0x7c,0x39,0x5e,0x79,0x71;/*主函数void main()*/int main() TMOD=0X01;TH0=(65536-46080)/256;TL0=(65536-46080)%256;EA=1;ET0=1;TR0=1;nums=12;numf=0;num2=0;num=0;while(1) if(dingshi=0) keyscan(); display(m,m1,f,f1,s,s1); alarm(); else mi

4、aobiao(); keyscan1(); display1(nf,nf1,ns,ns1); return 0;/*蜂鸣器函数 di()*/void di() beep=0; delayms(100); beep=1;/*按键调时函数key()*/void keyscan() if(key1=0) delayms(10);if(key1=0) nums+;if(nums=24);nums=0;while(!key1);di();display(m,m1,f,f1,s,s1); if(key2=0) delayms(10);if(key2=0) numf+;if(numf=24);numf=0;

5、while(!key2);di();display(m,m1,f,f1,s,s1); if(key3=0) delayms(10);if(key3=0)dingshi=dingshi; while(!key1);di();display(m,m1,f,f1,s,s1); /*按键设定闹钟函数keyscan1();*/void keyscan1() if(key1=0) delayms(10);if(key1=0) numns+;if(numns=24);numns=0;while(!key1);di();display1(nf,nf1,ns,ns1); if(key2=0) delayms(1

6、0);if(key2=0) numnf+;if(numnf=24);numnf=0;while(!key2);di();display1(nf,nf1,ns,ns1); if(key3=0) delayms(10);if(key3=0)dingshi=0; while(!key1);di();display1(nf,nf1,ns,ns1); /*闹钟函数alram()*/void alram() if(nums=numns)&(numnf=numf) beep=0; /*秒表函数miaobiao()*/void miaobiao() if(key4=0) delayms(100);if(key

7、4=0) while(!key4); di(); displaym(uchar m,uchar m1); /*正常显示函数display()*/void display(uchar m,uchar m1,ucharf,uchar f1,uchar s,uchar s1) dula=1;P0=tablem1/秒位第1位dula=0;PO=0xff;/ 送入位选信号前关闭所有显示,防止打开位选锁存时wela=1;P0=0xef;wela=0;delayms(10);dula=1;P0=tablem; /秒第2位dula=0;P0=0xff;wela=1;P0=0xdf;wela=0;delayms

8、(100)dula=1;P0=tablef1; /分第1位 dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delayms(100)dula=1;P0=tablef; /分第2位 dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delayms(10) dula=1;P0=tables1; /时第1位dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delayms(100) dula=1;P0=tables; /时第2位 dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delayms(10)/* 调时闹钟显示函数display1()*/void display1(uchar nf,uchar nf1,uchar ns,uchar ns1) nf1=numnf/10; nf=numnf%10; ns1=nums/10; ns=nums%10;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号