51单片机键盘扫描程序

51单片机键盘扫描程序

ID:13362723

大小:36.00 KB

页数:3页

时间:2018-07-22

51单片机键盘扫描程序_第1页
51单片机键盘扫描程序_第2页
51单片机键盘扫描程序_第3页
资源描述:

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

1、OUTBITEQU08002H;位控制口OUTSEGEQU08004H;段控制口INEQU08001H;键盘读入口LEDBUFEQU40H;显示缓冲ORG0000HLJMPSTARTORG0100HLEDMAP:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;八段管显示码DB7FH,6fH,77H,7CH,39H,5EH,79H,71HDB00H,49HDELAY:MOVR7,#00H;延时子程序DELAYLOOP:DJNZR7,DELAYLOOPDJNZR6,DELAYLOOPRETDISPLAYLED:MOVR0,#

2、LEDBUFMOVR1,#06H;共6个八段管MOVR2,#00100000B;从左边开始显示LOOP:MOVDPTR,#OUTBITMOVA,#0HMOVX@DPTR,A;关所有八段管MOVA,@R0MOVDPTR,#LEDMAPMOVCA,@A+DPTR;由序码求段码MOVDPTR,#OUTSEGMOVX@DPTR,AMOVDPTR,#OUTBITMOVA,R2MOVX@DPTR,A;显示一位八段管MOVR6,#01HCALLDELAYMOVA,R2;显示下一位RRAMOVR2,AINCR0DJNZR1,LOOPRETTESTKEY:M

3、OVDPTR,#OUTBITMOVA,#00HMOVX@DPTR,A;输出线置为0MOVDPTR,#INMOVXA,@DPTR;读入键状态CPLAANLA,#0FH;高四位不用RETKEYTABLE:DB16H,15H,14H,0FFH;键码定义DB13H,12H,11H,10HDB0DH,0CH,0BH,0AHDB0EH,03H,06H,09HDB0FH,02H,05H,08HDB00H,01H,04H,07HGETKEY:MOVDPTR,#OUTBITMOVP2,DPHMOVR0,#LOW(IN)MOVR1,#00100000BMOVR

4、2,#06HKLOOP:MOVA,R1;找出键所在列CPLAMOVX@DPTR,ACPLARRAMOVR1,A;下一列MOVXA,@R0CPLAANLA,#0FHJNZLOOP1;该列有键入DJNZR2,KLOOPMOVR2,#0FFH;没有键按下,返回0ffhSJMPEXITLOOP1:MOVR1,A;键值=列X4+行MOVA,R2DECARLARLAMOVR2,A;r2=(r2-1)*4MOVA,R1;r1中为读入的行值MOVR1,#04HLOOP2:RRCA;移位找出所在行JCEXITINCR2;r2=r2+行值DJNZR1,LOOP

5、2Exit:MOVA,R2;取出键码MOVDPTR,#KEYTABLEMOVCA,@A+DPTRMOVR2,AWAIT:MOVDPTR,#OUTBIT;等键释放CLRAMOVX@DPTR,AMOVR6,#10HCALLDELAYCALLTESTKEYJNZWAITMOVA,R2RETSTART:MOVSP,#60HMOVLEDBUF+0,#11H;显示三092MOVLEDBUF+1,#00HMOVLEDBUF+2,#09HMOVLEDBUF+3,#02HMOVLEDBUF+4,#0MOVLEDBUF+5,#0MAIN:CALLDISPLAY

6、LED;显示CALLTESTKEY;有键入?JZMAIN;无键入,继续显示CALLGETKEYMOVR5,A;读入键码ANLA,#0F0H;显示键码SWAPAMOVLEDBUF+4,AMOVA,R5ANLA,#0FHMOVLEDBUF+5,ALJMPMAINEND

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

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

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