程序要求:开始时LED显示0、K1具有增数功能、K2具有减数功能。
若LED显示为0,按下K1,则显示为1、再按下K1,显示为2.....,若显示为9,再按下则显示为0;
若LED显示为0,按下K2,则显示为9、再按下K2,显示为8.....,直至显示为1。再一次循环。
显示部分采用硬件译码器,电路给出如下。
悬赏分:50 | 解决时间:2011-6-14 09:11
;===========================================
最佳答案:
程序仿真通过,仿真电路如下:
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/03216a24a76eef3f35a80fc4.html#
程序:
ORG 0000H
LJMP START
ORG 0040H ;从40H地址开始.
START:
MOV A, #0 ;开始显示的初值.
SETB P2.0 ;开始置0,
SETB P2.1 ;开始置0,
;------------------------
LOOP:
MOV P0, A ;显示寄存器A中的内容.
JNB P2.0, INCR ;K1开,跳转到INCR
JNB P2.1, DECR ;K2开,跳转到DECR
JMP LOOP
;------------------------
INCR:
JNB P2.0,INCR ;按键按下后是否松开.
ADD A, #1 ;A加1
DA A ;A内容进行BCD调整.
JMP LOOP
;------------------------
DECR:
JNB P2.1, DECR ;按键按下后是否松开.
ADD A, #99H ;A减1
DA A ;A内容进行BCD调整.
JMP LOOP
;------------------------
END
;===========================================
回答时间:2011-6-8 16:37
回答者: 做而论道 | 十五级采纳率:43% 名人 达人
提问者对于答案的评价:谢谢诶,以后还要咨询你...
原题网址:http://zhidao.baidu.com/question/277065038.html
;===========================================