单片机汇编语言,通过按键输入4位16进制数,将输入的16进制数(0~F)在数码管和指示灯上进行显示。


数码管L1的码段a~g分别连接单片机的P0.0~P0.6,低电平亮;
(3)数码管L2的码段a~g分别连接单片机的P2.0~P2.6,低电平亮;
(4)指示灯D0~D7分别连接单片机的P1.0~P1.7,低电平亮;
(5)P3口作为输入口4)指示灯D0~D7分别连接单片机的P1.0~P1.7,低电平亮;
(5)P3口作为输入口

MAIN MOV A,P3
MOV C,#00001111B
ANL C,A
MOV R1,C
SWAP A
MOV C,#00001111B
ANL C,A
MOV R2,C
MOV A,R2
SUBB A,#01H
MOV B,#04H
MUL AB
ADD A,R1
LED MOV P1,A
PLAY0 CJNE A,#00H,PLAY1
MOV P0,#3FH
PLAY1 CJNE A,#01H,PLAY2
MOV P0,#06H
PLAY2 CJNE A,#02H,PLAY3
MOV P0,#5BH
PLAY3 CJNE A,#03H,PLAY4
MOV P0,#4FH
PLAY4 CJNE A,#04H,PLAY5
MOV P0,#66H
PLAY5 CJNE A,#05H,PLAY6
MOV P0,#6DH
PLAY6 CJNE A,#06H,PLAY7
MOV P0,#7DH
PLAY7 CJNE A,#07H,PLAY8
MOV P0,#07H
PLAY8 CJNE A,#08H,PLAY9
MOV P0,#7FH
PLAY9 CJNE A,#09H,PLAYA
MOV PO,#6FH
PLAYA CJNE A,#0AH,PLAYB
MOV P0,#77H
PLAYB CJNE A,#0BH,PLAYC
MOV P0,#7CH
PLAYC CJNE A,#0CH,PLAYD
MOV P0,#58H
PLAYD CJNE A,#0DH,PLAYE
MOV P0,#5EH
PLAYE CJNE A,#0EH,PLAYF
MOV P0,#76H
PLAYF CJNE A,#0FH,BACK
MOV P0,#7EH
BACK SJMP MAIN
END

程序还需要进一步调试
算法应该没问题 欢迎追问追问

这个算法很显然,没法满足要求,不过还是多谢了。我已经有结果了,是我把问题想复杂了,直接各种mov就OK了。

追答

我也是今年暑假才自学汇编的 拿来唬人见笑了 希望以后可以相互学习切磋

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-24
这个不是要在实验箱上操作吗,用导线连电路啊,你要汇编起什么作用。
你不会是要说只要汇编,不实际操作吧追问

这个是现编程序然后下载到芯片,连起周边电路,但是主题还是芯片中的程序。好吧,任然谢谢您。

第2个回答  2012-09-26
重要的不是程序本身,而是思考解决问题的方法,如下参考:
1. 在网上下载一个短码工具,把码表抓出来。
2. 可以在中断中一个2ms的时间扫描码管。码管与一个内存联系,当这个内存=0时,将0的码
送出P0口,当=F时,送F的码。(P1口就不用说了吧)。这个叫驱动程序。
3. 根据P3口的状况,将值送到上面说的那个内存里面,这个是运用程序。两者不相干的,各干各
的事。
第3个回答  2012-09-27
可以先用C语言编程序 在编译过程中自动会生成汇编语言 你要程序吗?
第4个回答  2012-09-27
没有看明白
第5个回答  2018-05-22
为什么中间有一条屏蔽高字节位,如果屏蔽了,显示的数不就变了吗?
相似回答