用单片机并口控制1片数码管,使其循环显示0~9的汇编语言程序书写
时间: 2024-03-20 16:45:03 浏览: 91
单片机数码管显示0到9程序代码
以下是使用单片机并口控制1片数码管,使其循环显示0~9的汇编语言程序示例:
```
org 0
mov P0, #0xFF ; 将P0口设为输出口
mov P1, #0x00 ; 将P1口设为输入口
loop:
mov R0, #0x00 ; 使用R0寄存器作为计数器
mov P0, #0xFE ; 将P0口的最高位设为低电平,使第一个数码管被选中
mov P0, #0xFF ; 将P0口的最高位设为高电平,使第一个数码管被取消选中
mov R1, #10 ; 使用R1寄存器保存显示的数字,从0~9循环显示
dec R1
mov A, R1
mov R2, #10
display:
mov P0, #0xFF ; 将P0口设为高电平,关闭数码管
mov P0, table ; 通过表格获取当前数字对应的段码,存储到P0口
mov P0, #0x00 ; 将P0口设为低电平,开启数码管
djnz R2, display ; 循环10次,完成一个数码管的显示,即显示一个数字
djnz R0, loop ; 循环8次,完成8个数码管的显示,即完成一个循环显示
sjmp loop ; 跳转回循环开始处
table: ; 段码表
db 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F
end
```
在该程序中,首先通过 mov 指令将 P0 口设为输出口,将 P1 口设为输入口。然后使用一个无限循环 loop,循环中使用 mov 指令将 P0 口的最高位设为低电平,使第一个数码管被选中,然后再将 P0 口的最高位设为高电平,使第一个数码管被取消选中,从而完成对第一个数码管的控制。
接着使用 R1 寄存器保存显示的数字,从 0~9 循环显示,在每次循环开始前,使用 R2 寄存器作为计数器,循环 10 次,完成一个数码管的显示,即显示一个数字。在每次循环中,使用表格获取当前数字对应的段码,将其存储到 P0 口,并将 P0 口设为低电平,开启数码管。
最后使用 djnz 指令循环 8 次,完成 8 个数码管的显示,即完成一个循环显示,并使用 sjmp 指令跳转回循环开始处,进行下一个循环显示。
阅读全文