按键扫描参考子程序

按键扫描参考子程序

ID:13364099

大小:41.00 KB

页数:3页

时间:2018-07-22

按键扫描参考子程序_第1页
按键扫描参考子程序_第2页
按键扫描参考子程序_第3页
资源描述:

《按键扫描参考子程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、按键扫描----线反转法说明矩阵键盘分行线、列线2组线,如下图,P23~P20为行线,P27~P24为列线。程序原理:第1步:列线P2.7~P2.4全输出0,读输入线P2.3~P2.0;如果某行有键按下,由于4条列线全输出0,这时此行电平肯定为0,程序中是逐条读取、判断P2.3~P2.0,判到某条为0,就说明按下键在此行上,这时可确定按下键的行值。[通常:P20所在行的行值为0,P21所在行的行值为4,P22所在行的行值为8,P23所在行的行值为12]第2步:行线P2.3~P2.0全输出0,读输入线P2.7~P2.4,

2、(注意这时行、列2组线的输入输出方向反了,所以叫线反转法)如果某列有键按下,由于4条行线全输出0,这时此列电平肯定为0,程序中是逐条读取、判断P2.7~P2.4,判到某条为0,就说明按下键在此列上,这时可确定按下键的列值。[通常:P24所在列的列值为0,P25所在列的列值为1,P26所在列的列值为2,P27所在列的列值为3]最后,按下键键号=行值+列值比如:10号键按下了,按上面2步:[1]列线P2.7~P2.4全输出0,读输入线P2.3~P2.0,显然P2.2=0,这时就可确定按下键在P2.2行上,确定其行值=8;[

3、2]行线P2.3~P2.0全输出0,读输入线P2.7~P2.4,显然P2.6=0,这时就可确定按下键在P2.6列上,确定其列值=2;最后,按下键的键号=行值+列值=8+2=10。;=================================================================;按键扫描、获取按下键键号子程序,线反转法;最终按下键的键号值在30H单元中(正常值0~F[或0~15],否则为非正常值),至于这个键做什么功能用,随题目不同而不同。KEY_SCAN:MOVR4,#16;按下键行值

4、,故意置为此值MOVR5,#16;按下键列值,故意置为此值;键号=行值+列值,正常时键号=0~15,异常时R4或R5不会刷新,得到的键号值就会大于等于16,此时按异常处理;-----列线P2.7~P2.4全输出0,读输入线P2.3~P2.0------------------------MOVP2,#0FHROW0:JBP2.0,ROW1MOVR4,#0;按下键在P2.0行上,行值=0LJMPCOL_SCANROW1:JBP2.1,ROW2MOVR4,#4;按下键在P2.1行上,行值=4LJMPCOL_SCANROW2

5、:JBP2.2,ROW3MOVR4,#8;按下键在P2.2行上,行值=8LJMPCOL_SCANROW3:JBP2.3,COL_SCANMOVR4,#12;按下键在P2.3行上,行值=12;-----行线P2.3~P2.0全输出0,读输入线P2.7~P2.4------------------------COL_SCAN:MOVP2,#0F0HCOL0:JBP2.4,COL1MOVR5,#0;按下键在P2.4列上,列值=0LJMPCAL_KEY_NOCOL1:JBP2.5,COL2MOVR5,#1;按下键在P2.5列上

6、,列值=1LJMPCAL_KEY_NOCOL2:JBP2.6,COL3MOVR5,#2;按下键在P2.6列上,列值=2LJMPCAL_KEY_NOCOL3:JBP2.7,CAL_KEY_NOMOVR5,#3;按下键在P2.7列上,列值=3;-----计算键号=行值+列值[A=R4+R5]------------------------CAL_KEY_NO:MOVA,R4ADDA,R5MOV30H,A;键号=行值+列值,放入30H单元;-------------------------------------------

7、--------------MOVP2,#0FH;恢复列线P2.7~P2.4全输出0状态RET

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

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

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