2022年按键程序设计-处理加速键和一键多功能等情况 3.pdf

上传人:Q****o 文档编号:27171901 上传时间:2022-07-22 格式:PDF 页数:4 大小:41.34KB
返回 下载 相关 举报
2022年按键程序设计-处理加速键和一键多功能等情况 3.pdf_第1页
第1页 / 共4页
2022年按键程序设计-处理加速键和一键多功能等情况 3.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年按键程序设计-处理加速键和一键多功能等情况 3.pdf》由会员分享,可在线阅读,更多相关《2022年按键程序设计-处理加速键和一键多功能等情况 3.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、按键程序设计 -处理加速键、一键多功能等情况作者:徐文军我的按键程序设计, 可以处理加速键、一键多功能等情况1、一般都不在键盘程序中延时,而是通过隔一段时间调用(比如10 毫秒)来扫描按键,以尽量释放CPU资源;2、所有键盘程序基本上都是一个模式,可以处理加速键、一键多功能等情况;3、 对外接口只有2 个,换用不同硬件的键盘只需把该键盘程序加入工程编译即可,其他不需要作任何改动,非常方便。基本上都是一个模式:有键 ? YES 和上次相同 ? No Keyold=0; 退出 | | | YES Keyold+; | | | Keyold=首键延时 KEYDELAY? No退出 | | | YES

2、 Keyok=1; /按下不放一定时间发首键,后面发加速键 | 保存键值到Keydata;( 必要时译码) | Keyold=KEYDELAY-KEYLOOP(按住不放的延时); 退出 | No Keyold=0? YES 退出 | N0Keyok=1; /不为 0 说明按了键再放开,当然作按键有效处理保存键值到 Keydata ;( 必要时译码) Keyold=0;退出所有键盘程序对外接口: unsigned char KeyGetcode(void) /返回按键码 key_ok=0; return(key_data); bit KeyTest(void) /检查有无按键 KeyScan()

3、; /键扫描 return(key_ok); /-/ / 源程序大公开 / / (c) Copyright 20012005 xuwenjun / / All Rights Reserved / / V1.00 / 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - /-/ / 标题: P1 口行列式键盘程序 / / 文件名 : xwj_hlkey.c / / 版本: V1.00 / / 修改人 : 徐文军 E-mail: / /

4、日期: 05-05-13 / / 描述: P1 口行列式键盘程序 / / 声明: / #i nclude #i nclude xwj_hlkey.h / P1口行列式键盘 / /#include xwj_bp.h /峰鸣器#define KEYDELAY 25 /*首键延迟次数 */ #define KEYLOOP 10 /*连续键间隔次数 , 需小于 KEYDELAY*/ unsigned char key_bak; unsigned char key_temp; unsigned char key_old; unsigned char key_data; bit key_ok; / P1口

5、行列式键盘 / #define KEYPIN_L P1 / 定义键扫描列端口为 P1 低四位输入 / #define KEYPIN_H P1 / 定义键扫描行端口为 P1 高四位扫描输出 / /内部私有函数 / unsigned char fnKeycode(unsigned char key); /根据键盘映射表输出顺序键值/ / P1口行列式键盘 / /-/ void KeyScan(void) /键扫描 unsigned char sccode,recode; KEYPIN_L = KEYPIN_L|0 x0f; /P1低四位为列线输入/ KEYPIN_H = KEYPIN_H&0 x0

6、f; /P1高四位为行线发全零扫描码/ if (KEYPIN_L&0 x0f) != 0 x0f) /有键按下 key_temp = 键值 ; /键扫描,获得键值 if (key_temp = key_bak) key_old+; if (key_old=KEYDELAY) /连续键 , 不要则把此if屏蔽 key_ok=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - key_data=fnKeycode(key_temp

7、); /键解码 key_old=KEYDELAY-KEYLOOP; else key_old=0; key_bak=key_temp; else /键抬起 if (key_old) key_ok=1; key_data=fnKeycode(key_temp); /键解码/* if (key_old=100) /加上时间 , 不同时间不同功能, 与连续键冲突 bp(1); key_data += 0 x10; if (key_old=200) bp(2); key_data += 0 x20; */ key_old=0; KEYPIN_H = KEYPIN_H|0 xf0; /-/ unsign

8、ed char KeyGetcode(void) /返回按键码 key_ok=0; return(key_data); bit KeyTest(void) /检查有无按键 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - KeyScan(); /键扫描 return(key_ok); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com