




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古赤峰市林西县“绿色通道”引进教师14人模拟试卷及一套完整答案详解
- 2025广西农村合作金融机构高校毕业生招聘473人模拟试卷及参考答案详解1套
- 2025北京医院面向社会招聘精神卫生专业医师2人模拟试卷及1套完整答案详解
- 无菌技术考试试卷试题及答案
- 2025【合同范本】短期临时工劳务合同
- 2025协议房地产评估委托合同
- 2025年河北省邢台三中中考化学三模试卷(含答案)
- 2024-2025学年福建省福州四十中八年级(下)开学数学试卷(含答案)
- (2025年)政工师考试试题(附答案)
- 江苏镇江丹阳农商银行招聘考试真题2024
- 海绵印拓画课件
- 2025年科技创新与成果转化的知识能力考核试题及答案
- 秩序员休假管理制度
- 2025至2030中国惯性导航行业投资现状与前景预测分析报告
- 轻型卒中临床诊疗中国专家共识(2024版)解读
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读
- 2025年中国张裕产区葡萄酒特色与品牌国际化发展报告
- 耳机品质协议书范本
- 2025版VI设计合同范本
- 人美版五年级上册5.绘画中的透视现象一等奖教案设计
- 从法律出发理解与应用新清单标准
评论
0/150
提交评论