資源描述:
《電子時(shí)鐘(源程序+仿真圖).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、#include#defineucharunsignedchar#defineuintunsignedintsbitp2_0=P2^0;//數(shù)碼管位選控制端sbitp2_1=P2^1;sbitp2_2=P2^2;sbitp2_3=P2^3;sbitp2_4=P2^4;sbitp2_5=P2^5;sbitp2_6=P2^6;/******************p1_0設(shè)置時(shí)間,p1_1定時(shí)。p1_0,p1_1使用不自動(dòng)彈起按鍵。p1_2時(shí)分秒選擇,p1_3加數(shù)字,p1_4減數(shù)字。******
2、**********/sbitp1_0=P1^0;sbitp1_1=P1^1;sbitp1_2=P1^2;sbitp1_3=P1^3;sbitp1_4=P1^4;ucharcount=0,sec,min,hour,ss=0;s=60,m=60,h=24;ucharcodemum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽數(shù)碼管0-9編碼voiddelayms(uintk)//延時(shí)函數(shù){uinti,j;for(i=k;i>0;i--)fo
3、r(j=110;j>0;j--);}/**********************************************通過count獲得hour,min,sec變量值*************************************************/voidtimecontrol(){sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24)hour=0;}}}voiddisplay(ucharzs,uch
4、arzm,ucharzh)//數(shù)碼管顯示函數(shù){p2_0=1;P0=mum[zh/10];delayms(5);p2_0=0;p2_1=1;P0=mum[zh%10]&0x7f;//時(shí)的個(gè)位加上小數(shù)點(diǎn)delayms(5);p2_1=0;p2_2=1;P0=mum[zm/10];delayms(5);p2_2=0;p2_3=1;P0=mum[zm%10]&0x7f;//分的個(gè)位加上小數(shù)點(diǎn)delayms(5);p2_3=0;p2_4=1;P0=mum[zs/10];delayms(5);p2_4=0;p2_5=1;
5、P0=mum[zs%10];//秒的個(gè)位delayms(5);p2_5=0;}voidkeyscan_settime()//時(shí)間設(shè)置模塊{ucharst,mt,ht;if(p1_0==0){delayms(10);if(p1_0==0){st=sec,mt=min,ht=hour;TR0=0;//關(guān)閉定時(shí)器while(p1_0==0)//等待用戶按鍵{display(st,mt,ht);if(p1_1==0){delayms(10);if(p1_1==0){while(!p1_1);ss++;if(ss==3
6、)ss=0;}}/*****************************************************通過ss選擇時(shí)分秒設(shè)置*******************************************************/if(p1_2==0)//加數(shù){delayms(10);if(p1_2==0){while(!p1_2);switch(ss){case0:st++;if(st==60)st=0;break;case1:mt++;if(mt==60)mt=0;break;
7、case2:ht++;if(ht==24)ht=0;break;default:;}}}if(p1_3==0)//減數(shù){delayms(10);if(p1_3==0){while(!p1_3);switch(ss){case0:if(st>0)st--;elsest=0;break;case1:if(mt>0)mt--;elsemt=0;break;case2:if(ht>0)ht--;elseht=0;break;default:;}}}}TR0=1;sec=st,min=mt,hour=ht;}}disp
8、lay(sec,min,hour);}voidkeyscan_time()//用戶定時(shí)模塊{if(p1_1==0){delayms(10);if(p1_1==0){s=sec;m=min;h=hour;while(p1_1==0)//開始定時(shí)設(shè)置{display(s,m,h);if(p1_2==0){delayms(10);if(p1_2==0){while(!p1_2);ss++;if(ss==3