首页 > 应用 > 单片机应用
[导读]
程序要求:开始时LED显示0、K1具有增数功能、K2具有减数功能。若LED显示为0,按下K1,则显示为1、再按下K1,显示为2.....,若显示为9,再按下则显示为0;若LED显示为0,按下K2,则显示为9、再按下K2,显

程序要求:开始时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://www.21ic.com/app/mcu/201806/764427.htm

程序仿真通过,仿真电路如下:

程序:
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


我 要 评 论

网友评论

技术子站

更多

项目外包

更多

推荐博客