您的位置 首页 技术

八路直控键盘操控数码显现

键盘电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制数码管显示电路的八路键控数码管电路。按下S0

键盘电路作为单片机的输入部分,数码显现电路作为单片机的输出部分,由键盘电路经过单片机操控数码管显现电路的八路键控数码管电路。按下S0到S7号按键时,数码管显现马上显现数字0到7。

ORG 0000H ;随后的指令代码从0000H单元开端寄存。
LJMP START ;转到标号START处
ORG 0030H ;随后的指令代码从0030H单元开端寄存。
START:MOV P0,#00H ;封闭数码管,不显现任何内容。
SAOMIAO:MOV P2,#0FFH ;对P2口一切位写1,也便是处于读状况,保证读数正确。
CLR A ;对累加器A清零。
MOV A,P2 ;第一次读取P2口的数据,并送入累加器A中。
CPL A ;对A按位取反,假如没有键按下, A为00H,假如有键按下,相应的位为1。
JZ SAOMIAO ;假如A=00H,阐明没有键按下,跳到标号SAOMIAO处持续扫描。假如A不等于00H,阐明有键按下,应该调用10MS的延时去抖子程序。
LCALL DELAY10MS ;调用10MS的延时去抖子程序。
MOV A,P2 ;第2次读取P2口的数据,并送入累加器A中。
CPL A ;对A按位取反,假如没有键按下, A为00H,假如有键按下,相应的位为1。
JZ SAOMIAO ;假如A=00H,阐明没有键按下,跳到标号SAOMIAO处持续扫描。假如A不等于00H,阐明的确有键按下,次序履行下面的程序,判别是哪个键按下了。
JB ACC.0,SZ0 ;假如S0键按下,则ACC.0=1,转去履行显现数字0,不然次序履行。
JB ACC.1,SZ1 ;假如S1键按下,则ACC.1=1,转去履行显现数字1,不然次序履行。
JB ACC.2,SZ 2 ;假如S2键按下,则ACC.2=1,转去履行显现数字2,不然次序履行。
JB ACC.3,SZ 3 ;假如S3键按下,则ACC.3=1,转去履行显现数字3,不然次序履行。
JB ACC.4,SZ 4 ;假如S4键按下,则ACC.4=1,转去履行显现数字4,不然次序履行。
JB ACC.5,SZ 5 ;假如S5键按下,则ACC.5=1,转去履行显现数字5,不然次序履行。
JB ACC.6,SZ 6 ;假如S6键按下,则ACC.6=1,转去履行显现数字6,不然次序履行。
JB ACC.7,SZ 7 ;假如S7键按下,则ACC.7=1,转去履行显现数字7,不然次序履行。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描。
SZ0:MOV P0,#3FH ;显现数字0。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ1:MOV P0,#06H ;显现数字1。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ2:MOV P0,#5BH ;显现数字2。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ3:MOV P0,#4FH ;显现数字3。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ4:MOV P0,#66H ;显现数字4。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ5:MOV P0,#6DH ;显现数字5。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ6:MOV P0,#7DH ;显现数字6。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
SZ7:MOV P0,#07H ;显现数字7。
LJMP SAOMIAO;跳转到SAOMIAO处持续扫描按键。
DELAY10MS:MOV R7,#20 ;从本行开端,到RET完毕,为10MS延时去抖子程序。
D1:MOV R6,#250
D2:DJNZ R6,D2
DJNZ R7,D1
RET
END

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部