單片機(jī)電子鐘c程序_第1頁(yè)
單片機(jī)電子鐘c程序_第2頁(yè)
單片機(jī)電子鐘c程序_第3頁(yè)
單片機(jī)電子鐘c程序_第4頁(yè)
單片機(jī)電子鐘c程序_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)電子鐘c程序時(shí)間:2010-06-25 07:16來(lái)源:未知 作者:電路圖網(wǎng) 點(diǎn)擊:536次/*單片機(jī)SST89E58RD 8位共陽(yáng)數(shù)碼管 12M晶振*/*P0段選,P2位選*/#include "at89x52.h"#define uchar unsigned char#define uint unsigned intuchar codetab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff; uchar n;uchar hh,mm,ss;uchar nhh,nmm,nss;uint year;

2、uchar day,mon,week;uchar hhs,hhg,mms,mmg,sss,ssg;uchar days,dayg,mons,mong;uchar nhhs,nhhg,nmms,nmmg,nsss,nssg;uchar set1=1,set2=1;sbit fm=P32;sbit k1=P34;sbit k2=P35;sbit k3=P36;sbit k4=P37;uchar table1=31,31,29,31,30,31,30,31,31,30,31,30,31; /閏年 uchar table2=31,31,28,31,30,31,30,31,31,30,31,30,31;

3、 /非閏年 void jishi();void baoshi();void alarm();void set_time();void set_alarm();void set_mdw();void key_change();void key_set();void delay(int m) /延時(shí)程序,延時(shí)m*0.5msuint i;uint j;for (i=0;i<m;i+)for(j=0;j<500;j+)void timer0() interrupt 1 TMOD=0x01;TH0=0x3c;TL0=0xb1;n+;jishi();main()TMOD=0x01;TH0=0x

4、3c;TL0=0xb1;TR0=1;EA=1;ET0=1;hh=12;mm=00;ss=00;nhh=7;nmm=30;nss=0;year=2008;mon=12;day=1;week=1; while(1)hhs=hh/10%10;/時(shí)分秒 hhg=hh%10;mms=mm/10%10;mmg=mm%10;sss=ss/10%10;ssg=ss%10;nhhs=nhh/10%10;/鬧鐘 nhhg=nhh%10;nmms=nmm/10%10;nmmg=nmm%10;nsss=nss/10%10;nssg=nss%10;days=day/10%10;/月日 dayg=day%10;mons=

5、mon/10%10;mong=mon%10;key_change(); /k1按鍵掃描key_set(); /k2按鍵掃描set_time(); /設(shè)置時(shí)間set_mdw(); /設(shè)置月日星期set_alarm(); /設(shè)置鬧鐘if(set1=1) /正常走時(shí)顯示P0=tabhhs;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabhhg;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3=0;delay(1);P2_3=1;/"-"P0=tabmms;P2_1=0;delay(1);P2_1=1;/分十位 P0=tabmm

6、g;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab10;P2_4=0;delay(1);P2_4=1;/"-"P0=tabsss;P2_2=0;delay(1);P2_2=1;/秒十位 P0=tabssg;P2_0=0;delay(1);P2_0=1;/秒個(gè)位 if(set1=2) /設(shè)置時(shí)間P0=tabhhs;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabhhg;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3=0;delay(1);P2_3=1;/"-"P0=tabmms;

7、P2_1=0;delay(1);P2_1=1;/分十位 P0=tabmmg;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab10;P2_4=0;delay(1);P2_4=1;/"-"P0=tabsss;P2_2=0;delay(1);P2_2=1;/秒十位 P0=tabssg;P2_0=0;delay(1);P2_0=1;/秒個(gè)位 if(set1=3) /正常顯示月日-星期P0=tabmons;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabmong;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3

8、=0;delay(1);P2_3=1;/"-"P0=tabdays;P2_1=0;delay(1);P2_1=1;/分十位 P0=tabdayg;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab11;P2_4=0;delay(1);P2_4=1;/"-" P0=tab11;P2_2=0;delay(1);P2_2=1;/秒十位 P0=tabweek;P2_0=0;delay(1);P2_0=1;/秒個(gè)位 if(set1=4) /設(shè)置月日-星期P0=tabmons;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabmo

9、ng;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3=0;delay(1);P2_3=1;/"-"P0=tabdays;P2_1=0;delay(1);P2_1=1;/分十位 P0=tabdayg;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab11;P2_4=0;delay(1);P2_4=1;/"-" P0=tab11;P2_2=0;delay(1);P2_2=1;/秒十位 P0=tabweek;P2_0=0;delay(1);P2_0=1;/秒個(gè)位 if(set1=5) /正常顯示定時(shí)P0=t

10、abnhhs;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabnhhg;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3=0;delay(1);P2_3=1;/"-"P0=tabnmms;P2_1=0;delay(1);P2_1=1;/分十位 P0=tabnmmg;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab10;P2_4=0;delay(1);P2_4=1;/"-"P0=tabnsss;P2_2=0;delay(1);P2_2=1;/秒十位 P0=tabnssg;P2_0=0

11、;delay(1);P2_0=1;/秒個(gè)位 if(set1=6) /設(shè)置鬧鐘定時(shí)P0=tabnhhs;P2_7=0;delay(1);P2_7=1;/時(shí)十位 P0=tabnhhg;P2_5=0;delay(1);P2_5=1;/時(shí)個(gè)位 P0=tab10;P2_3=0;delay(1);P2_3=1;/"-"P0=tabnmms;P2_1=0;delay(1);P2_1=1;/分十位 P0=tabnmmg;P2_6=0;delay(1);P2_6=1;/分個(gè)位 P0=tab10;P2_4=0;delay(1);P2_4=1;/"-"P0=tabnsss;P

12、2_2=0;delay(1);P2_2=1;/秒十位 P0=tabnssg;P2_0=0;delay(1);P2_0=1;/秒個(gè)位 baoshi(); /整點(diǎn)報(bào)時(shí)alarm(); /鬧鐘void jishi() /計(jì)時(shí)函數(shù)if(n=20)n=0;ss+;if(ss=60)ss=0;mm+;if(mm=60)mm=0;hh+;if(hh=24)hh=0;day+;week+;if(week=8)week=0;if(year%4=0&&year%100!=0|year%400=0) /閏年 if(day=table1mon+1)day=0;mon+;if(mon=13)mon=0;

13、year+;else /非閏年if(day=table2mon+1)day=0;mon+;if(mon=13)mon=0;year+;uchar incone(uchar n) /加1函數(shù)if(k3=0)delay(20);if(k3=0)n+;while(!k3);return(n);uchar decone(uchar m) /減1函數(shù)if(k4=0)delay(20);if(k4=0)m-;while(!k4);if(m<0)m=0;return(m);void key_change() /k1按鍵掃描 if(k1=0)delay(20);if(k1=0)set1+;while(!

14、k1);if(set1=7)set1=1;void key_set() /k2按鍵掃描 if(k2=0)delay(20);if(k2=0)set2+;while(!k2);if(set2=4)set2=1;void baoshi() /整點(diǎn)報(bào)時(shí)函數(shù) if(mm=00&&ss=00)fm=0;if(ss=1)fm=1;void alarm() /鬧鐘函數(shù) uchar x;if(nhh=0)goto end;if(hh=nhh&&mm=nmm&&ss=nss) for(x=0;x<6;x+)fm=0;delay(30);fm=1;delay(

15、20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(20);fm=0;delay(30);fm=1;delay(180);end:;void set_time() /設(shè)置時(shí)間函數(shù) if(set1=2)if(set2=1)hh=incone(hh);if(hh=24)hh=0;if(hh=-1)hh=23;hh=decone(hh);if(set2=2)mm=incone(mm);if(mm=60)mm=0;if(mm=-1)mm=59;mm=decone(mm);if(set2=3)ss=incone(ss);if(ss=60

16、)ss=0;if(ss=-1)ss=59;ss=decone(ss);void set_mdw() /設(shè)置月日星期函數(shù) if(set1=4)if(set2=1)mon=incone(mon);if(mon=13)mon=1;mon=decone(mon);if(mon=0)mon=12;if(set2=2)day=incone(day);if(day=32)day=1;day=decone(day);if(day=0)day=31;if(set2=3)week=incone(week);if(week=8)week=1;week=decone(week);if(week=0)week=7;void set_alarm() /設(shè)置鬧鐘函數(shù) if(set1=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論