资源描述:
《c51定时器数码管电子钟》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、c51定时器数码管电子钟#include#defineucharunsignedchar#defineuintunsignedintsbitwela=P2^7;sbitdula=P2^6;sbitmenu=P3^7;sbitup=P3^6;sbitdn=P3^5;sbittab=P3^4;ucharaa,mon,nian,yue,ri,ge,shi,fge,fshi,xge,xshi,key,ktab;charmiao,h,fen,dfen,dh;ucharcodetable[]={0xc0,0xf9
2、,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidini();voidds();voiddingshi();voidkeyds();voiddisplay();voidkeys();voidxingqi();voidriqi();voidsuan();voidkeyriqi();voidkeymon();voidkeytab();voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(
3、y=110;y>0;y--);}voidmain(){ini();while(1){keytab();}}voidini(){ri=21;yue=9;nian=9;mon=1;miao=40;fen=59;h=23;dfen=0;dh=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidkeys(){if(menu==0)delay(5);if(menu==0){ET0=0;key++;while(!menu)dis
4、play();}if(key==1){wela=1;P0=0x03;wela=0;dula=1;P0=0x7f;delay(1);if(up==0)delay(5);if(up==0){miao++;if(miao==60)miao=0;dula=0;wela=0;while(!up)display();}if(dn==0)delay(5);if(dn==0){miao--;if(miao==-1)miao=59;while(!dn)display();}if(menu==0)delay(5);if(menu==0){
5、key++;while(!menu)display();}}if(key==2){wela=1;P0=0x18;wela=0;dula=1;P0=0x7f;dula=0;delay(1);if(up==0)delay(5);if(up==0){fen++;if(fen==60)fen=0;while(!up)display();}if(dn==0)delay(5);if(dn==0){fen--;if(fen==-1)fen=59;while(!dn)display();}if(menu==0)delay(5);if(
6、menu==0){key++;while(!menu)display();}}if(key==3){wela=1;P0=0xc0;wela=0;dula=1;P0=0x7f;dula=0;delay(1);if(up==0)delay(5);if(up==0){h++;if(h==24)h=0;while(!up)display();}if(dn==0)delay(5);if(dn==0){h--;if(h==-1)h=23;while(!dn)display();}}if(key==4){key=0;ET0=1;}}
7、voidkeyds(){if(menu==0)delay(5);if(menu==0){key++;while(!menu)ds();}if(key==1){wela=1;P0=0x03;wela=0;dula=1;P0=0x7f;dula=0;delay(1);if(up==0)delay(5);if(up==0){dfen++;if(dfen==60)dfen=0;while(!up)ds();}if(dn==0)delay(5);if(dn==0){dfen--;if(dfen==-1)dfen=59;while
8、(!dn)ds();}if(menu==0)delay(5);if(menu==0){key++;while(!menu)ds();}}if(key==2){wela=1;P0=0x18;wela=0;dula=1;P0=0x7f;dula=0;delay(1);if(up==0)delay(5);if(up==0){dh++;i