怎样用单片机编程。两个独立按键,控制数码管的加减?

按键K1的作用:K1用于控制数码管左侧两位数字的显示和LED-RED闪烁。按下K1的瞬间数码管左侧的“10”变成“09”,LED-RED状态取反;当K1保持按下的状态不变... 按键K1的作用:K1用于控制数码管左侧两位数字的显示和LED-RED闪烁。按下K1的瞬间数码管左侧的“10”变成“09”,LED-RED状态取反;当K1保持按下的状态不变及松开K1,数码管显示的内容无变化;当再次按下K1的瞬间,数码管左侧数字变成“08”……; K1每次有效按下,数码管左侧显示数字减1;当左侧数码管显示“00”时,再次按下K1,显示“99”,以此类推。数码管显示内容的切换只在按键按下的瞬间起作用。按键K2的作用:K2用于控制数码管右侧两位数字的显示和LED-RED闪烁。按下K2的瞬间数码管右侧的“91”变成“92”,LED-RED状态取反;K2每按下一次,数码管右侧显示数字加1;当右侧数码管显示“99”时,再次按下K2,显示“00”,以此类推。当按下K2保持不动,数码管右侧显示的数字快速加1显示。电路原理图,如图 展开
 我来答
欣欣老师解惑
高粉答主

2020-04-03 · 关注我不会让你失望
知道顶级答主
回答量:7.1万
采纳率:58%
帮助的人:2748万
展开全部
这个很容易嘛,你先设置一个寄存器,然后一直扫描两个按键(假设K1按下为加,K2按下为减),假设检测到K1被按下,寄存器就加1,如果检测到K2被按下,寄存器就减1;然后再调用显示函数就OK了。、 ORG 0000H
LJMP START
ORG 0030H
START:
MOV R2, #1
LOOP:
CALL DISP
JB P1.6, NEXT
CALL DL10MS
JB P1.6, NEXT
JNB P1.6, $
DJNZ R2, NEXT
MOV R2, #10
NEXT:
JB P1.7, LOOP
CALL DL10MS
JB P1.7, LOOP
JNB P1.7, $
INC R2
CJNE R2, #11, LOOP
JMP START
;----------------------------------------
DISP:
MOV A, R2
DEC A
MOV DPTR, #TAB
MOVC A, @A + DPTR
MOV P2, A
RET
DL10MS:
MOV R6, #20
DJNZ R7, $
DJNZ R6, $ - 2
RET
;----------------------------------------
TAB:
DB 0C0H, 0F9H, 0A4H, 0B0H, 99H
DB 92H, 82H, 0F8H, 80H, 90H
;----------------------------------------
END
迪凯特科技(北京)有限公司_
2025-01-03 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以... 点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式