📄 h32.asm
字号:
;用8255控制八段数码管
; 1. 启动伟福软件界面,连接好实验仪
; 2. 8255的CS接CS0,
; 3. 8255的PORTA口的PA0~PA7接段码A~H,
; 4. 8255的PORTC口的PC0~PC5接位码G0~G5
; 5. 若程序运行正常,会在八段管上显示 "123456"
mode equ 082h ; 方式0,PA,PC输出,PB输入
PortA equ 8000h ; Port A
PortB equ 8001h ; Port B
PortC equ 8002h ; Port C
CAddr equ 8003h ; 控制字地址
org 0000h
mov a, #mode
mov dptr, #CAddr
movx @dptr,a ; 输出控制字
EX_A:
mov b,#01H ; 位码,显示最低位
;======== 显示数字"6"
mov dptr,#LEDMAP
mov a,#6
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
;======== 显示数字"5"
mov dptr,#LEDMAP
mov a,#5
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
;======== 显示数字"4"
mov dptr,#LEDMAP
mov a,#4
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
;======== 显示数字"3"
mov dptr,#LEDMAP
mov a,#3
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
;======== 显示数字"2"
mov dptr,#LEDMAP
mov a,#2
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
;======== 显示数字"1"
mov dptr,#LEDMAP
mov a,#1
movc a,@a+dptr ; 取段码
mov dptr,#PortA
movx @dptr,a ; 段码输出到PortA
mov dptr,#PortC
mov a,b
movx @dptr,a ; 位码输出到PORTC
rl a ; 准备显示下一位
mov b,a
mov r6,#1
call delay ; 延时
mov a,#0
movx @dptr,a ; 关闭显示
ljmp EX_A ; 循环执行
delay:
mov r7,#0
ddd: djnz r7,ddd
djnz r6,ddd
ret
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -