手机型键盘输入处理程序思路漫谈

手机型键盘输入处理程序思路漫谈

ID:33021634

大小:65.89 KB

页数:8页

时间:2019-02-19

手机型键盘输入处理程序思路漫谈_第1页
手机型键盘输入处理程序思路漫谈_第2页
手机型键盘输入处理程序思路漫谈_第3页
手机型键盘输入处理程序思路漫谈_第4页
手机型键盘输入处理程序思路漫谈_第5页
资源描述:

《手机型键盘输入处理程序思路漫谈》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、手机型键盘输入处理程序思路漫谈先看原理图:4ZJ回回■回0回■A■9••■•c■DU2AND4。□回日由与门输出到中断口,当有按键按下时,产生屮断。voidvlNTO(void)interrupt0{if(b_KeyShock==0)执行扫描{if(b_lntroduce==0)退出介绍{b_KeyScan=l;扫描b_KeyShock=l;}}elseb_KeyShock=0;if(b_KeyShock==l)b_KillShock=l;b」ntroduce=0;}以上程序用于设定标志,关闭初始化介绍标志。按键扫描

2、思路如下:为了防止抖动干扰,在处理时先关闭外部中断,然后读取键值即可。#include#defineSCANPORTPlunsignedcharuca_LineScan[4]={0xEF,0xDF,0xBF,0x7F};unsignedcharucKeyScan(){unsignedcharucTemp=0;unsignedcharucRow=0,ucUne二0;EXO=O;for(ucLine二O;ucLinev4;ucLine++){SCANPORT=uca_LineScanfucLine]

3、;ucTemp=SCANPORT&OxOF;讦(ucTemp!=0x0F)switch(ucTemp)caseOxOE:ucRow=10;break;caseOxOD:ucRow=20;break;caseOxOB:ucRow=30;break;case0x07:ucRow=40;break;default:ucRow=50;break;}break;}}SCANPORT=OxOF;EXO=1;returnucRow+ucLine+l;}获得键值以后,输入字母大小写,数字处理思路如下:1.数字处理程序:unsigne

4、dcharucGetNum(unsignedcharucKeyCode)switch(ucKeyCode){casell:return'7';break;case12:return8;break;case42:return'O^break;default:break;}returnOxFF;2、字母处理程序:unsignedcharucGetLetter(unsignedcharucKeyCode)先查看大小写标志:根据大小写标志选择执行的程序:unsignedcharucGetLetterfunsignedchar

5、ucKeyCode){if(b_CapStatus==O)returnucCapProc(ucKeyCode);elsereturnucSmallProc(ucKeyCode);}这里注意,RETURN后面可以跟一个函数,因为调用函数后,返回的也是一个uchar■值。每一个键值代表着三个字母,这样需要在按键的时候,对按键次数进行计数,根据计数值来计算选择是第几个字母,程序如下:unsignedcharucCapProc(unsignedcharucKeyCode){switch(uc_ClickCount%3){ca

6、seO:returnucCapOne(ucKeyCode);break;casel:returnucCapTwo(ucKeyCode);break;case2:returnucCapThree(ucKeyCode);break;default:break;return1}如果按键次数为1,根据键值获得的按键值如下:unsignedcharucCapOne(unsignedcharucKeyCode){switch(ucKeyCode){casell:return'Af;break;case12:returnD;bre

7、ak;case13:returnG;break;case21:return!J';break;case22:return^'jbreak;case23:returnP;break;case31:returnS;break;case32:returnV^break;case33:return'Y';break;default:break;}returnOxFF;}以上完成了数字与字母的处理函数,下面对其他功能按键进行处理C键盘功能图如下:UserGuid7ABC8DEF9GHIOpenIntrodu4JKL5MNO6P

8、QRBlank1STU2vwx3YZCapsLockCleanAll0I•CleanOneInputChange先看清楚单个字母或者数字按键:先读取光标位置,然后根据光标位置清除该数组中的字符,然后向液晶发现写入空格命令即可。程序如下:voidvCleanOne(){讦(uc_CharPointer>0){uc_CharPointer~;uca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。