《键盘C语言程序》word版.doc_第1页
《键盘C语言程序》word版.doc_第2页
《键盘C语言程序》word版.doc_第3页
《键盘C语言程序》word版.doc_第4页
《键盘C语言程序》word版.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

查看文章在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(汉字显示演示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 KickDog(); #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.*KeyboardCommandTab2Count)(); KeyCount = KeyboardPushTimes; else/无键压下 if (KeyCount 0)/以前有键压下 if (KeyCount KeyboardPushTimes) KeyCount = KeyboardPushTimes; else KeyCount -;/放键计数 if (KeyCount = 0)/键释放 System.BeepOff(); (:Keyboard.*KeyboardCommandTab0Count)(); else KeyCount = 0; PressCountCount = KeyCount; Count +; Count %= 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 & ConstKEY3) 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 & 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.SetDisplayPos(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.SetDisplayPos(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)/特别注意菜农的组合键用法,可以看出零耗时键盘的非典之处 if (PressCount7 = KeyboardPushTimes)/KEY8已先压下 Key8_Key1();/执行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 KeyboardObj: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);/汉字定位到上行左端 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)/特别注意菜农的组合键用法,可以看出零耗时键盘的非典之处 if (PressCount0 = KeyboardPushTimes)/KEY1已先压下 Key1_Key8();/执行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键长压事件);/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.SetDisplayPos(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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论