单片机程序设计编程规范(13)

2020-11-29 00:28

开机时后TestMode的作法

TestMode必须在开机时后按下某些组合按键同时通过de-bounce才可进入testmode

2.按键处理

1)一般来说key的处理是所有程序的基础教科书里面所教导的key处理观念大多以delay循环与多次检查来处理弹跳事件,但是此种方法由于导入delay循环大大降低系统实时性,而大多使用者都没有警觉此问题依然延续此观念设计keyscanandde-bounce技巧,此份文件详细叙述key处理观念

2)家电产品中经常用到抗干扰的测试EFT,会从电源端打入噪声测试系统抗噪声能力,如果key处理不好会有key误动作产生,一般使用者会在keyscan地方加入电容以减低此问题的产生,但是此方法还是无法完全避免此问题同时还增加硬件成本,这里提出的de-bounce观念可以完全解决此问题

3)按键处理很多程序员都会将系统的程序设计与key程序结合没有分开结构,这造成很多程序就以key程序变成程序主体来运行,这里提出将key动作得出的keycode存到fifo(firstinfirstout)中,使得AP系统得以在有空闲的时候才处理keycode动作,程序架构自然形成

4)一般来说key处理都只侦测keydown,但是在某些系统确有keydownandkeyup的要求,这方面可以透过keyinbuffer的储存new/oldbufferXOR比对得到keyevent,更深一层的技巧侦测多按键处理更是需要利用new/oldbufferXOR来处理

合理的按键处理一般包括按键扫描、按键弹跳处理、按键输出转换等环节。

例如:

mn_key:

callkeyin;读取按键输入将资料储存在keyinbuf里面

callkeychk;按键弹跳处理

callkeycvt;弹跳处理后,将按键扫描码转换储存到FIFO里面!ret

①keyin――按键扫描,其主要负责将外部按键信息读入到内部buffer中。

常用的按键一般包括:直接按键、M*N矩阵式扫描按键、三角形按键、扩充按键、按键与其它周边共享I/O脚位等,部分场合还要考虑睡眠和按键的唤醒功能。下面进行分别说明:

1)直接按键

最简单的按键方式,通常作法利用MCU里面的pull-up电阻上拉,外面按键落地,平时没有按键的时候,MCUinput端口读到Hi,按键按下时候读到Low,如下图所示

2)M*N矩阵式扫描按键

最典型的按键扫描方式,有分Singlekey,multi-key扫描

单按键扫描:一个时间只允许一个按键动作同时也只读取一个按键


单片机程序设计编程规范(13).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电大小学语文教学与研究全网最全答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: