版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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 -;/放鍵計數(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)的組合鍵用法,可以看出零耗時鍵
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)的組合鍵用法,可以看出零耗時鍵盤的非典之處 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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銀川客運資格證考試題目及答案c1
- 2024年鎮(zhèn)江道路旅客運輸駕駛員從業(yè)資格考試題庫
- 2024年貴陽駕駛員客運資格證考試試題
- 2024年湘西客運從業(yè)資格證模擬考試題
- 2024年合作客運資格證考試題目
- 2024年金華道路客運輸從業(yè)資格證到期換證考試
- 2024年賀州申請客運從業(yè)資格證考試
- 成都某音樂公園電纜保護施工方案
- 車輛配備管理和違規(guī)處理的規(guī)定
- 教師節(jié)國旗下講話稿十五篇
- 材料概論金屬材料概要課件
- 居家智慧養(yǎng)老計劃書
- 我的家鄉(xiāng)甘肅慶陽
- 資產(chǎn)負債表完整版本
- 《西游記》第三回讀后感
- 個人技術(shù)服務合同范文
- 抽油煙機控制系統(tǒng)的設(shè)計
- 企業(yè)綠色發(fā)展工作計劃
- 新版匯編語言程序設(shè)計【課后習題答案】-錢曉捷-主編-電子工業(yè)出版社
- 《大壩安全檢測》課件
- 2.2 圓的對稱性(第2課時) 蘇科版數(shù)學九年級上冊課件
評論
0/150
提交評論