




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、附錄2主程序 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit KEYON =P20; / 開始鍵 sbit KEYOFF=P21; / 關(guān)閉鍵 sbit KEYSET=P22; / 預(yù)約鍵sbit KEYINC=P23; /加1鍵 sbit KEYDEC=P24; / 減1鍵 sbit KEYFREE=P25; /預(yù)留鍵sbit POWER=P36; /電源開關(guān)指示燈 sbit LED=P33 ; /按鍵指示燈uchar code dispcode=0x3f,0x06,0x05
2、b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /0-9的字型碼uchar data disbuf=0,0,0,0; /顯示緩沖區(qū)uchar hour,min ; /小時(shí)、分變量bit Onflag,flag;uchar Setflag;void delay(uchar); /延時(shí)子函數(shù)void init(void); /定時(shí)器初始化子函數(shù)uchar GetKeyNum(); /求按鍵號(hào)void Keyprocess(uchar); /按鍵處理子函數(shù)void calculate(); /計(jì)時(shí)子函數(shù)void display(); /顯示子函數(shù) /-主函數(shù)-v
3、oid main(void) init(); P1=0x00; while(1) display(); /-定時(shí)器TO、T1初始化,外部中斷0初始化子函數(shù)-void init() TMOD=0x11; /TO、T1作定時(shí)器、工作方式1 TH0=(65536-50000)/256 ; /定時(shí)50ms TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; IT0=1; /選擇外部中斷0為下降沿觸發(fā)方式 EX0=1; /開外部中斷0 ET1=1; /開定時(shí)器1 ET0=1; /開定時(shí)器0 EA =1; /開總中斷 T
4、R0=1; /-顯示子函數(shù)-void display() uchar i,j=0x08; if(Setflag=0)&&!(min|hour) /數(shù)碼管顯示“- - - -”1 / 5 for(i=0;i<4;i+) disbufi=dispcode10;else / 正常顯示時(shí)間 disbuf0 = dispcodemin%10; /分個(gè)位 disbuf1 = dispcodemin/10; /分十位 disbuf2 = dispcodehour%10+0x80; /小時(shí)個(gè)位 disbuf3 = dispcodehour/10; /小時(shí)十位if(Setflag!=0)&
5、amp;flag) /如果調(diào)時(shí),數(shù)碼管閃爍顯示 for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2) /不顯示前面的0 P0=0; else P0=disbufi; if(Setflag=1) P1=j&0xfc; /調(diào)時(shí),關(guān)斷前兩位位碼 else P1=j & 0xf3; /調(diào)分,關(guān)斷后兩位位碼 delay(5); /延時(shí)2.5ms P1=0x00; j=j>>1;else /數(shù)碼管正常顯示 for(i=0;i<4;i+) if(disbufi=0x3f)&&(i>2) P0=0;
6、/不顯示前面的0 else P0=disbufi; P1=j; /位選通 delay(5); /延時(shí)2.5ms P1=0X00; j=j>>1; /-外部中斷0中斷函數(shù)- void int0()interrupt 0 using 0 uchar keynum; display(); /動(dòng)態(tài)顯示程序作為去抖動(dòng) if(INT0=0) /判斷是否有按鍵按下 keynum=GetKeyNum(); /有效鍵,獲取鍵值 while(INT0=0); /等待按鍵釋放 Keyprocess(keynum); /按鍵處理 /-定時(shí)器0中斷子函數(shù)- void time0() interrupt 1
7、/處理調(diào)時(shí)、顯示器閃爍 static uchar ledcnt,num; /設(shè)置靜態(tài)變量 TH0=(65536-50000)/256; /定時(shí)50ms TL0=(65536-50000)%256; if(Onflag && (hour | min)!=0) |! Onflag) /指示燈每隔0.5s閃爍 ledcnt+; if(ledcnt=10) / 10 X 50mS=0.5S ledcnt=0; LED=LED; if(Setflag!=0) /調(diào)時(shí)閃爍 num+;if(num=5) num=0; flag=flag;/-定時(shí)器1中斷子函數(shù)-void time1() in
8、terrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256;calculate(); /計(jì)時(shí)/-求按鍵號(hào)-uchar GetKeyNum()uchar temp;if(KEYON=0) temp=1;if(KEYOFF=0) temp=2;if(KEYSET=0) temp=3;if(KEYINC=0) temp=4;if(KEYDEC=0) temp=5;if(KEYFREE=0) temp=6;return(temp);/-按鍵處理函數(shù)-void Keyprocess (uchar x)switch(x)case 1: /KEYON處理函數(shù)
9、 Onflag=1; /開Onflag標(biāo)志 Setflag=0; /關(guān)(Setflag)調(diào)時(shí)標(biāo)志if(!Setflag)&&!(hour | min) /沒有調(diào)時(shí)且未處于預(yù)約,繼電器通POWER=0;LED=0;elseTR1=1; /定時(shí)器1運(yùn)行、執(zhí)行計(jì)時(shí)程序break;case 2 : /KEYOFF,關(guān)處理,標(biāo)志清0Onflag=0;Setflag=0;hour=0;min=0;POWER=1;LED=1;break;case 3: /預(yù)約調(diào)時(shí)/調(diào)分鍵,處理調(diào)時(shí)標(biāo)志if(Onflag=0) Setflag+;if(Setflag=3) Setflag=1;break;ca
10、se 4: /加1鍵if(Setflag=1) /調(diào)時(shí)鍵,最大只能調(diào)到11hour+;if(hour=12)hour=0;if(Setflag=2) /調(diào)分鍵,最大只能調(diào)到59min+;if(min=60)min=0;break;case 5: /減1鍵if(Setflag=1) /調(diào)時(shí)鍵,減小時(shí)處理,最小0hour- ; if(hour=-1)hour=12;if(Setflag=2) /調(diào)分鍵,減分處理,最小0min-; if(min=-1)min=59;break; /-計(jì)算時(shí)間- void caculate()static uint tcount; /tcount為定時(shí)次數(shù)if(hour | min)!=0) tcount+; /1次50ms到,改變定時(shí)次數(shù)if(tcount=1200) /1200*50ms=1分鐘tcount=0; /初始化定時(shí)次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年瀘州市市屬事業(yè)單位招聘筆試真題
- 2025屆安陽市數(shù)學(xué)七下期末經(jīng)典模擬試題含解析
- 2025屆湖北襄陽五中學(xué)實(shí)驗(yàn)中學(xué)七年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 吉林省長春市南關(guān)區(qū)2025屆數(shù)學(xué)七下期末聯(lián)考模擬試題含解析
- 風(fēng)險(xiǎn)管理在2025年應(yīng)用試題及答案
- 高并發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)試題及答案
- 法學(xué)概論考試影響因素與試題及答案
- 2025年技術(shù)員考試必知重點(diǎn)試題及答案
- 計(jì)算機(jī)信息安全管理題目及答案
- 戰(zhàn)略管理中的參與式?jīng)Q策方法試題及答案
- 2024年首都機(jī)場集團(tuán)招聘筆試參考題庫附帶答案詳解
- 人教版七級(jí)下冊-巴西-課件
- 口腔科管理手冊(參考)
- 租賃房屋委托書(8篇)
- 漢字就是這么來的
- 重癥甲流護(hù)理查房
- 尿毒癥患者的護(hù)理健康評(píng)估
- 健康喝水知識(shí)講座
- 依萊達(dá)電動(dòng)車使用說明書
- 無人機(jī)系統(tǒng)數(shù)據(jù)鏈
- 食堂阿姨培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論