資源描述:
《51單片機(jī)時(shí)鐘設(shè)計(jì)(c語言)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、利用51單片機(jī)內(nèi)部定時(shí)設(shè)計(jì)的簡易時(shí)鐘(LCD1602顯示)有時(shí)間調(diào)整功能,按鍵1切換調(diào)整的是時(shí),分,秒。按鍵2為加鍵,按鍵3為減。仿真圖調(diào)整時(shí)間C程序#includeunsignedchartab[]="23:58:48";unsignedcharcodetab2[]="hello";#definelcdpP0sbitrs=P3^5;sbitrw=P3^6;sbiten=P3^7;sbitled=P1^7;sbits1=P1^0;sbits2=P1^1;sbits3=P1^2;unsignedcha
2、rn,count,mu;charss=23,ff=58,mm=55;voiddelay(unsignedcharz){unsignedchari,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}voidwrite_com(unsignedcharcom)//寫指令{rs=0;rw=0;en=0;lcdp=com;delay(5);en=1;delay(5);en=0;}voidwrite_date(unsignedchardate)//寫數(shù)據(jù){rs=1;rw=0;en=0;lcdp=dat
3、e;delay(5);en=1;delay(5);en=0;}voidwrite_sj(unsignedadd,unsigneddate){unsignedcharshi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(shi+0x30);write_date(ge+0x30);}voidinit()//初始化{write_com(0x38);//設(shè)置16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)接口write_com(0x06);//寫一個(gè)字符后地址指針自動(dòng)加1
4、write_com(0x01);//顯示清零,數(shù)據(jù)指針清零write_com(0x0c);//開顯示,不顯示光標(biāo)//write_com(0x08);//write_com(0x0e);//光標(biāo)開啟,但不閃爍write_com(0x80);//顯示位置for(n=0;n<10;n++){write_date(tab[n]);delay(1);}write_com(0x80+0x40+3);//第二行顯示for(n=0;n<8;n++){write_date(tab2[n]);delay(1);}//定時(shí)器初始化TH0=
5、(65536-50000)/256;TL0=(65536-50000)%256;TMOD=0x01;EA=1;ET0=1;TR0=1;}voidkey(){if(s1==0){delay(5);if(s1==0){mu++;while(!s1);}if(mu==1){TR0=0;write_com(0x80+9);write_com(0x0f);//光標(biāo)閃爍}if(mu==2){write_com(0x80+6);write_com(0x0f);//光標(biāo)閃爍}if(mu==3){write_com(0x80+3);w
6、rite_com(0x0f);//光標(biāo)閃爍}}if(mu==4){TR0=1;mu=0;write_com(0x0c);//關(guān)閉光標(biāo)}if(mu!=0){if(s2==0){delay(5);if(s2==0){while(!s2);if(mu==1){mm++;if(mm==60)mm=0;write_sj(8,mm);write_com(0x80+9);}if(mu==2){ff++;if(ff==60)ff=0;write_sj(5,ff);write_com(0x80+6);}if(mu==3){ss++;l
7、ed=!led;if(ss==24)ss=0;write_sj(2,ss);write_com(0x80+3);}}}if(s3==0){delay(5);if(s3==0){while(!s3);if(mu==1){mm--;if(mm==-1)mm=59;write_sj(8,mm);write_com(0x80+9);}if(mu==2){ff--;if(ff==-1)ff=59;write_sj(5,ff);write_com(0x80+6);}if(mu==3){ss--;led=!led;if(ss==-
8、1)ss=23;write_sj(2,ss);write_com(0x80+3);}}}}}voidmain(){init();while(1){key();}}voidtime0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20){coun