




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/*這是一個(gè)真正有意義的時(shí)鐘key1功能鍵 選擇可調(diào)位,短按,每按一下有一位閃爍 長(zhǎng)按閃爍不斷向下一位推移key2 加鍵 短按相應(yīng)閃爍的位加1,長(zhǎng)按連續(xù)加1;key3 減鍵 短按相應(yīng)閃爍的位減1,長(zhǎng)按連續(xù)減一;key4 確定鍵 按下退出調(diào)時(shí),正常顯示;*/#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 #define KEY_1 0x0e #define KEY_2 0x0d#define KEY_3 0x0b#define KEY_4 0x07#define K
2、EY_NULL 0x0f#define KEY_PRESS 0x80 #define KEY_LONG 0x40#define KEY_STATE_INIT 0 #define KEY_STATE_PRESS 1#define KEY_STATE_LONG 2#define KEY_STATE_UP 3#define KEY_LONG_PERIOD 20 #define KEY_CONTINUE_PERIOD 10bit set;bit dao1S=0; bit dao2MS=0;bit dao10MS; sbit dula=P26;sbit wela=P27;sbit key1=P34; s
3、bit key2=P35;sbit key3=P36;sbit key4=P37;int main_flag,exit_flag,up_flag,down_flag; int tab=0,0,0,0,0,0; uchar weitable=0x01,0x02,0x04,0x08,0x10,0x20;uchar tab1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void nint() TMOD=0X01; TH0=0XF8; TL0=0XCC; TR0=1; ET0=1; uchar KeyScan() if(key1=0) retur
4、n KEY_1; if(key2=0) return KEY_2; if(key3=0) return KEY_3; if(key4=0) return KEY_4; return KEY_NULL;uchar GetKey()uchar keyRetu=0,keyTemp=KEY_NULL; static uchar s_keyState=KEY_STATE_INIT,keyTime=0,keyLast=KEY_NULL; keyTemp=KeyScan();switch (s_keyState) case KEY_STATE_INIT: if(keyTemp!=KEY_NULL) s_ke
5、yState=KEY_STATE_PRESS; break; case KEY_STATE_PRESS: if(keyTemp!=KEY_NULL) s_keyState=KEY_STATE_LONG; keyTime=0; keyLast=keyTemp; else s_keyState=KEY_STATE_INIT; break; case KEY_STATE_LONG: if(keyTemp=KEY_NULL) s_keyState=KEY_STATE_INIT; keyRetu=(keyLast|KEY_PRESS); else if(+keyTime>=KEY_LONG_PER
6、IOD) /按下時(shí)間>1s s_keyState=KEY_STATE_UP; keyTime=0; break; case KEY_STATE_UP: if(keyTemp=KEY_NULL) s_keyState=KEY_STATE_INIT; else keyTime=0; keyRetu=(keyLast|KEY_LONG); break;return keyRetu;void updatetime() if(dao1S) dao1S=0; if(+tab5=10) tab5=0; if(+tab4=6)tab4=0; if(+tab3=10) tab3=0; if(+tab2=6
7、) tab2=0; if(tab0<2) if(+tab1=10) tab1=0; tab0+; else if(tab1=4) tab1=0; tab0=0; void display() static uchar k=0; dula=1; LED=tab1tabk; if(set&&(k=main_flag-1) LED=0XFF; dula=0; LED=0Xff; wela=1; LED=weitablek; wela=0; if(+k>5)k=0; void sittime(uchar hour,uchar minute,uchar second ) uc
8、har a1,a2,b1,b2,c1,c2; a1=hour/10; a2=hour%10; b1=minute/10; b2=minute%10; c1=second/10; c2=second%10; tab0=a1; tab1=a2; tab2=b1; tab3=b2; tab4=c1; tab5=c2; void main() nint(); EA=1; sittime(15,20,15); while(1) updatetime(); if(dao2MS) dao2MS=0; display(); if(dao10MS) dao10MS=0; switch (GetKey() cas
9、e (KEY_1|KEY_PRESS): if(+main_flag>=7)main_flag=0; break; case (KEY_1|KEY_LONG): if(+main_flag>=7)main_flag=0; break; case (KEY_2|KEY_PRESS): switch(main_flag) case 1: if(+tab0>=3) tab0=0; break; case 2: if(+tab1>4) tab1=0; break; case 3: if(+tab2>5) tab2=0; break; case 4: if(+tab3>
10、;9) tab3=0; break; case 5: if(+tab4>5) tab4=0; break; case 6: if(+tab5>9) tab5=0; break; case (KEY_2|KEY_LONG): switch(main_flag) case 1: if(+tab0>=3) tab0=0; break; case 2: if(+tab1>4) tab1=0; break; case 3: if(+tab2>5) tab2=0; break; case 4: if(+tab3>9) tab3=0; break; case 5: if(
11、+tab4>5) tab4=0; break; case 6: if(+tab5>9) tab5=0; break; case (KEY_3|KEY_PRESS): switch(main_flag) case 1: if(-tab0<0) tab0=2; break; case 2: if(-tab1<0) tab1=4; break; case 3: if(-tab2<0) tab2=5; break; case 4: if(-tab3<0) tab3=9; break; case 5: if(-tab4<0) tab4=5; break; cas
12、e 6: if(-tab5<0) tab5=9; break; case (KEY_3|KEY_LONG): switch(main_flag) case 1: if(-tab0<0) tab0=2; break; case 2: if(-tab1<0) tab1=4; break; case 3: if(-tab2<0) tab2=5; break; case 4: if(-tab3<0) tab3=9; break; case 5: if(-tab4<0) tab4=5; break; case 6: if(-tab5<0) tab5=9; break;case (KEY_4|KEY_PRESS): main_flag=0; disp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園親子故事征文猜猜我有多愛你
- 品牌發(fā)展及合作策略表
- 農(nóng)業(yè)智能裝備技術(shù)應(yīng)用知識(shí)試題
- 物業(yè)轉(zhuǎn)讓協(xié)議書錦集
- 農(nóng)業(yè)種植基地生產(chǎn)安全管理協(xié)議
- 數(shù)學(xué)故事書奇妙的世界之旅解讀
- 企業(yè)內(nèi)部管理軟件推廣協(xié)議
- 杜甫詩風(fēng)探究:高中語文深度解析教案
- 三農(nóng)田機(jī)械作業(yè)技術(shù)標(biāo)準(zhǔn)及規(guī)范
- 報(bào)銷流程說明文書范例
- 2025年北京社會(huì)管理職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫及答案參考
- (完整版)第五章養(yǎng)殖場(chǎng)環(huán)境保護(hù)
- 2025年江蘇省南京市鍋爐壓力容器檢驗(yàn)研究院招聘20人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 婦女保健知識(shí)講座課件
- 上海2025年上海商學(xué)院招聘筆試歷年參考題庫附帶答案詳解-1
- 2025云南昆明空港投資開發(fā)集團(tuán)招聘7人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 征信異議申請(qǐng)書
- 高中不同主題閱讀理解高頻詞匯清單-2025屆高三下學(xué)期英語一輪復(fù)習(xí)專項(xiàng)
- 2025年上半年高郵市國(guó)資產(chǎn)投資運(yùn)營(yíng)限公司(國(guó)企業(yè))公開招聘工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 教師命題培訓(xùn)
- 【地理】亞洲的自然環(huán)境第3課時(shí) 2024-2025學(xué)年七年級(jí)地理下冊(cè)同步課件(人教版2024)
評(píng)論
0/150
提交評(píng)論