锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

八路直控键盘控制数码显示

时间:2024-05-16 06:37:10


电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制显示电路的八路键控数码管电路。按下S0到S7号按键时,数码管显示立刻显示数字0到7。


ORG 0000H ;随后的指令代码从0000H单元开始存放。
LJMP ART ;转到标号START处
ORG 0030H ;随后的指令代码从0030H单元开始存放。
START:MOV P0,#00H ;关闭数码管,不显示任何内容。
SAOMIAO:MOV P2,#0F ;对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 ;第二次读取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


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章