您的位置 首页 动态

课程设计:矩阵键盘扫描(汇编)

//比较简单的汇编矩阵键盘扫描程序//P2口高四位接列线,第四位接行线//源程序和proteus仿真我一打包,地址:http://proteus.5d6d.com/threa…

//比较简单的汇编矩阵键盘扫描程序
//P2口高四位接列线,第四位接行线

//源程序和proteus仿真我一打包,地址:http://proteus.5d6d.com/thread-9013-1-1.html
ORG0000H
AJMPMAIN

ORG0030H
MAIN:MOVP2,#0F0H;给列送高电平
LCALLDELAY;延时,使电路安稳下来
MOVR4,00H
MOVA,P2;取P2口的值
ANLA,#0F0H;屏蔽行线的影响
CJNEA,#0F0H,L;如果有键按下,就跳转到L
DESPLAY:
MOVA,R7
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP1,A
AJMPMAIN

L: LCALLDELAY;延时去除颤动
MOVA,P2;从头取值
JBACC.4,L1;P2.4这一列有键按下?没有则跳转到L1
MOVR3,#00H;R3用作记列号
AJMPQ1

L1: JBACC.5,L2
MOVR3,#01H
AJMPQ1

L2: JBACC.6,L3
MOVR3,#02H
AJMPQ1

L3:JBACC.7,MAIN
MOVR3,#03H
AJMPQ1

Q1: MOVP2,#0FH;给行送高电平
LCALLDELAY;延时,安稳电路
MOVA,P2;取值
ANLA,#0FH;屏蔽高四位
JBACC.0,Q2;判别是不是第0行,不是则搬运
MOVR4,#00H;如果是,那把0送给R4(R4存行(转换为键号))
AJMPJIA

Q2: JBACC.1,Q3
MOVR4,#04H
AJMPJIA

Q3: JBACC.2,Q4
MOVR4,#08H
AJMPJIA

Q4: JBACC.3,MAIN
MOVR4,#0CH
AJMPJIA

JIA: MOVA,R3 ;行号加上列号便是改键的值
ADDA,R4
MOVR7,A;调整后放在R7寄存器中
AJMPMAIN

DELAY:MOVR6,#20H;仿真时测验延时为13ms

Q6: MOVR5,#0BBH
DJNZR5,$
DJNZR6,Q6
RET

//下面为0-f的字形表
TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H
DB7CH,39H,5EH,79H,71H;

END

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/266717.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部