鍵盤C語言程序_第1頁
鍵盤C語言程序_第2頁
鍵盤C語言程序_第3頁
鍵盤C語言程序_第4頁
鍵盤C語言程序_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論