键盘处理程序

键盘处理程序

ID:48276437

大小:112.02 KB

页数:8页

时间:2019-11-30

键盘处理程序_第1页
键盘处理程序_第2页
键盘处理程序_第3页
键盘处理程序_第4页
键盘处理程序_第5页
资源描述:

《键盘处理程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、键盘处理程序开始初始化查看是否有按键是哪一个按键编码显示汇编语言程序ORG0000HSJMPSTARTORG0030HSTART:;设置堆栈MOVSP,#50HCLRPSW.3CLRPSW.4;寄存器为0号寄存器;初始化显示缓冲区MOVR0,#80H;显示缓冲区首地址MOVR7,#01H;显示字符的个数MOVR6,#01H;标志位MOV@R0,#00H;显示缓冲区初始化完毕;设置8255工作方式MOVA,#88HMOVDPTR,#00F3HMOVX@DPTR,A;设置8255工作方式;查找是否有按键KEY:CLRALCALLISKEYJZNK;没有按键LCALLDELAYCLRALCALLIS

2、KEYJZNKLCALLFINDKEYFIND:;SWAPAADDA,35HLCALLJM;调用解码程序CJNEA,#0CH,BREA;清零的解码JMPSTARTBREA:MOVR5,A;r5中暂存解码的结果CJNER6,#01H,PLUSDECR7PLUS:INCR7MOV33H,R7;把R7压入堆栈MOVA,#80HADDA,R7DECA;A中为要添加的地址MOVR0,A;MOVA,R5MOV@R0,AINCR6;标志位改变LCALLINDISP;调用显示程序JMPKEYNK:MOV33H,R7;把R7压入堆栈LCALLINDISPJMPKEY;解码程序;正确JM:MOVR4,A;R4中暂

3、存查询结果ANLA,#0FHMOVR5,AADDA,R5ADDA,R5;行号乘以3MOVR5,A;放入R5暂存MOVA,R4ANLA,#0F0HRRARRARRARRA;A中的数右移4位CJNEA,#04H,PP;列号如果等于4就减1变为3DECAPP:ADDA,R5;A中存放要显示的数RET;查看是否有按键的程序ISKEY:MOVDPTR,#00F1H;B口地址MOVX@DPTR,AMOVDPTR,#00F2H;C口地址MOVXA,@DPTRCPLAANLA,#70H;如果A不为零则有按键RET;确定哪个按键的程序FINDKEY:MOVA,#0FEH;行扫描信号从第一行开始MOV35H,#0

4、H;行计数器;扫描键盘SK:MOV36H,A;送出行扫描信号LCALLISKEY;检测JNZFINDINC35HMOVA,36HRLACJNEA,#0EFH,SK;还没有送完行扫描信号MOVA,#0;没找到按键SJMPNKRET;显示程序,只要把要显示的内容送入80h开始的单元,显示的个数送入33hINDISP:DISP:MOVR0,#80HMOV34H,33H;34h中存放显示数字的个数MOVR1,#0F0H;a口地址MOVA,#01HMOVDPTR,#TABLESEND1:MOVR1,#0F2HMOVX@R1,A;选同一个数码管以供显示RLAMOV32H,A;暂存MOVA,@R0;取数MO

5、VCA,@A+DPTR;代码转化CPLAMOVR1,#0F0HMOVX@R1,A;输出数码管显示CALLDELAYINCR0MOVA,32HDJNZ34H,SEND1RETTABLE:DB3FH,06H,5BH,4FHDB66H,6DH,7DH,07HDB7FH,6FH,77H,7CHDB39H,5EH,79H,71HDELAY:MOV30H,#0FFHLOPPP:MOV31H,#0FFHlopp:DJNZ31H,loppDJNZ30H,lopppRETENDProteus仿真图实验注意事项8255的标号一定是U1否则会出现通不过的结果实验结果当按下前11个按键是按照1:B显示结果当按下最后一

6、个按键时显示器清零

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

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

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