




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考数学总复习《旋转》通关考试题库附参考答案详解【综合题】
- 自考专业(建筑工程)模拟题库及完整答案详解【网校专用】
- 环保公司投资管理办法
- 环保公司户外团建管理细则
- 中医执业医师题库附答案详解【考试直接用】
- 自考专业(工商企业管理)题库试题及答案详解(易错题)
- 网络营销策略制定及执行服务合作协议
- 环保公司企业年金管理规定
- 重难点解析鲁教版(五四制)8年级数学下册测试卷【各地真题】附答案详解
- 资料员之资料员基础知识自我提分评估及1套完整答案详解
- 构建专家委员会的初步方案
- DB37-T 5317-2025《旋挖成孔灌注桩施工技术规程》
- 个性化医疗决策模型-深度研究
- Oracle财务系统应付账款模块操作手册
- 体检营销话术与技巧培训
- 广东省佛山市顺德区2023-2024学年七年级(上)期末数学试卷(含答案)
- 变配电运维职业技能(中级)等级培训题库
- 矿山隐蔽致灾普查治理报告
- 实心球课件教学课件
- 玻璃体切割手术治疗2型糖尿病视网膜病变专家共识
- 大型养路机械司机(打磨车)高级工技能鉴定考试题库(含答案)
评论
0/150
提交评论