利用汇编语言实现开关控制数码管显示9-0
时间: 2024-03-09 09:46:14 浏览: 55
单片机数码管显示0到9程序代码
好的,下面是汇编语言的代码实现:
```
ORG 0H ; 程序从地址0开始执行
MOV P1, #0FFH ; 将P1口设为输出状态
MOV P2, #0FFH ; 将P2口设为输出状态
LOOP: ; 开始循环
MOV P1, #0FFH ; 将P1口全部设为高电平
MOV P2, #00H ; 将P2口全部设为低电平
MOV P1, #0FEH ; 将P1口第0位设为低电平
MOV P2, #09H ; 数码管显示9
CALL DELAY ; 延时一段时间
MOV P1, #0FDH ; 将P1口第1位设为低电平
MOV P2, #08H ; 数码管显示8
CALL DELAY
MOV P1, #0FBH ; 将P1口第2位设为低电平
MOV P2, #07H ; 数码管显示7
CALL DELAY
MOV P1, #0F7H ; 将P1口第3位设为低电平
MOV P2, #06H ; 数码管显示6
CALL DELAY
MOV P1, #0EFH ; 将P1口第4位设为低电平
MOV P2, #05H ; 数码管显示5
CALL DELAY
MOV P1, #0DFH ; 将P1口第5位设为低电平
MOV P2, #04H ; 数码管显示4
CALL DELAY
MOV P1, #0BFH ; 将P1口第6位设为低电平
MOV P2, #03H ; 数码管显示3
CALL DELAY
MOV P1, #07FH ; 将P1口第7位设为低电平
MOV P2, #02H ; 数码管显示2
CALL DELAY
MOV P1, #0FH ; 将P1口第8位设为低电平
MOV P2, #01H ; 数码管显示1
CALL DELAY
MOV P1, #FFH ; 将P1口全部设为高电平,关闭数码管
MOV P2, #00H ; 将P2口全部设为低电平
SJMP LOOP ; 循环
DELAY: ; 延时函数
MOV R2, #200H ; 设置循环次数
DELAY_LOOP:
DJNZ R2, DELAY_LOOP
RET
```
上述代码中,利用P1口控制数码管的8个段,利用P2口控制数码管的共阴极(低电平表示灯亮,高电平表示灯灭)。程序通过循环依次显示9-0,每个数字显示一段时间后关闭数码管,再显示下一个数字。DELAY函数是一个简单的延时函数,用于控制数字显示的时间长度。
阅读全文