版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、查看文章在DSP2812上的鍵盤C+程序#include main.hclass SystemObj System;class TimerObj Timer;class LcdObj Lcd;class KeyboardObj Keyboard;int main(void) Lcd.SetDisplayPos(0, 0);/漢字定位到上行左端 Lcd.Display(漢字顯示演示12); Lcd.SetDisplayPos(1, 0);/漢字定位到上行左端 Lcd.Display(漢字顯示演示34); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display
2、(漢字顯示演示56); Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(漢字顯示演示78); EALLOW;/ PieCtrlRegs.PIEACK.all = 0xFFFF;/PIEACK_GROUP1; PieCtrlRegs.PIEACK.bit.ACK7 = 1; EDIS; EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM for(;) asm( nop); / Reset the watchdog counter Kick
3、Dog(); #include keyboard.hKeyboardObj:KeyboardObj(void) Init();void KeyboardObj:Init(void) for (int i = 0; i = KeyboardPushTimes) if (KeyCount = KeyboardPushTimes)/短壓鍵 / System.BeepOn(); (:Keyboard.*KeyboardCommandTab1Count)(); if (KeyCount = KeyboardLongPushTimes)/長壓鍵 (:Keyboard.*KeyboardCommandTab
4、2Count)(); KeyCount = KeyboardPushTimes; else/無鍵壓下 if (KeyCount 0)/以前有鍵壓下 if (KeyCount KeyboardPushTimes) KeyCount = KeyboardPushTimes; else KeyCount -;/放鍵計(jì)數(shù) if (KeyCount = 0)/鍵釋放 System.BeepOff(); (:Keyboard.*KeyboardCommandTab0Count)(); else KeyCount = 0; PressCountCount = KeyCount; Count +; Count
5、 %= KeyboardNumbers;unsigned char KeyboardObj:Scan(void)volatile unsigned char KeyVal = 0; Count %= KeyboardNumbers; KeyVal = LedKeyRegs; switch (Count) case 0: if (!(KeyVal & ConstKEY1) KeyVal = Count + 1; break; case 1: if (!(KeyVal & ConstKEY2) KeyVal = Count + 1; break; case 2: if (!(KeyVal & Co
6、nstKEY3) KeyVal = Count + 1; break; case 3: if (!(KeyVal & ConstKEY4) KeyVal = Count + 1; break; case 4: if (!(KeyVal & ConstKEY5) KeyVal = Count + 1; break; case 5: if (!(KeyVal & ConstKEY6) KeyVal = Count + 1; break; case 6: if (!(KeyVal & ConstKEY7) KeyVal = Count + 1; break; case 7: if (!(KeyVal
7、 & ConstKEY8) KeyVal = Count + 1; break; return KeyVal;/KEY1放鍵事件處理void KeyboardObj:Key01(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY1鍵釋放事件);/KEY2放鍵事件處理void KeyboardObj:Key02(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY2鍵釋放事件);/KEY3放鍵事件處理void KeyboardObj:Key03(void) Lcd.SetDi
8、splayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY3鍵釋放事件);/KEY4放鍵事件處理void KeyboardObj:Key04(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY4鍵釋放事件);/KEY5放鍵事件處理void KeyboardObj:Key05(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY5鍵釋放事件);/KEY6放鍵事件處理void KeyboardObj:Key06(void) Lcd.SetDisplayP
9、os(3, 0);/漢字定位到上行左端 Lcd.Display(KEY6鍵釋放事件);/KEY7放鍵事件處理void KeyboardObj:Key07(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY7鍵釋放事件);/KEY8放鍵事件處理void KeyboardObj:Key08(void) Lcd.SetDisplayPos(3, 0);/漢字定位到上行左端 Lcd.Display(KEY8鍵釋放事件);/KEY1壓鍵事件處理void KeyboardObj:Key11(void)/特別注意菜農(nóng)的組合鍵用法,可以看出零耗時(shí)鍵
10、盤的非典之處 if (PressCount7 = KeyboardPushTimes)/KEY8已先壓下 Key8_Key1();/執(zhí)行KEY8_KEY1組合鍵事件 else / System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY1鍵單擊事件); /KEY2壓鍵事件處理void KeyboardObj:Key12(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY2鍵單擊事件);/KEY3壓鍵事件處理void Key
11、boardObj:Key13(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY3鍵單擊事件);/KEY4壓鍵事件處理void KeyboardObj:Key14(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY4鍵單擊事件);/KEY5壓鍵事件處理void KeyboardObj:Key15(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行
12、左端 Lcd.Display(KEY5鍵單擊事件);/KEY6壓鍵事件處理void KeyboardObj:Key16(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY6鍵單擊事件);/KEY7壓鍵事件處理void KeyboardObj:Key17(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY7鍵單擊事件);/KEY8壓鍵事件處理void KeyboardObj:Key18(void)/特別注意
13、菜農(nóng)的組合鍵用法,可以看出零耗時(shí)鍵盤的非典之處 if (PressCount0 = KeyboardPushTimes)/KEY1已先壓下 Key1_Key8();/執(zhí)行KEY1_KEY8組合鍵事件 else / System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY8鍵單擊事件); /KEY1長壓鍵事件處理void KeyboardObj:Key21(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY1鍵長壓事件);/
14、KEY2長壓鍵事件處理void KeyboardObj:Key22(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY2鍵長壓事件);/KEY3長壓鍵事件處理void KeyboardObj:Key23(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY3鍵長壓事件);/KEY4長壓鍵事件處理void KeyboardObj:Key24(void) System.BeepOn(); Lcd.SetDisp
15、layPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY4鍵長壓事件);/KEY5長壓鍵事件處理void KeyboardObj:Key25(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY5鍵長壓事件);/KEY6長壓鍵事件處理void KeyboardObj:Key26(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY6鍵長壓事件);/KEY7長壓鍵事件處理void KeyboardObj:Key27(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY7鍵長壓事件);/KEY8長壓鍵事件處理void KeyboardObj:Key28(void) System.BeepOn(); Lcd.SetDisplayPos(2, 0);/漢字定位到上行左端 Lcd.Display(KEY8鍵長壓事件);/KEY1-KEY8組合鍵事件處理void KeyboardObj:Key1_Key8(void) Lcd.SetDisplay
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版房地產(chǎn)買賣合同模板
- 2024年港口疏浚及堤壩修建合同3篇
- 勞動(dòng)合同書電子版
- 水甲苯精餾塔課程設(shè)計(jì)
- 插班課程設(shè)計(jì)案例分析
- 管道課程設(shè)計(jì)小結(jié)
- 航空物流課程設(shè)計(jì)
- 航天研學(xué)課程設(shè)計(jì)
- 烘焙網(wǎng)絡(luò)營銷課程設(shè)計(jì)
- 機(jī)械小車課程設(shè)計(jì)
- 2025年高考語文備考之名著閱讀《鄉(xiāng)土中國》重要概念解釋一覽表
- JG197-2006 預(yù)應(yīng)力混凝土空心方樁
- 醫(yī)院護(hù)理培訓(xùn)課件:《安全注射》
- 變、配電室門禁管理制度
- 11304+《管理案例分析》紙考2023.12
- 《淺談跳繩體育游戲的實(shí)踐研究》 論文
- 《勇敢面對(duì)挫折和困難》參考課件
- 小學(xué)體育期末檢測方案
- 2023-2024學(xué)年福建省莆田市荔城區(qū)中山中學(xué)、九中聯(lián)考九年級(jí)(上)期末數(shù)學(xué)試卷
- 接觸網(wǎng)設(shè)備故障應(yīng)急處理
- 2022年1月自考00850廣告設(shè)計(jì)基礎(chǔ)試題及答案含解析
評(píng)論
0/150
提交評(píng)論