📄 display.inc
字号:
;DISPLAY.ASM 并行口显示子程序
;功能: DP-51板显示测试子程序
;说明: 显示从DBUF0指定单元开始的5个数据
;定义变量
LED_ADDR EQU 2000H ;定义LED数码管的数据段地址
DATA_BUF DATA 40H ;显示缓冲区首址
DATA_SL DATA 47H ;定义位码变量
DISPLAY:
MOV R7,#06H ;给R7赋初值,存放数码管的个数
MOV R0,#DATA_BUF ;把显示缓冲区首地址送R0
MOV DATA_SL,#0FEH
LOOP:
MOV A,@R0 ;取若显示的数据
ACALL TABLE ;查段码表,得出该数据对应的段码
MOV DPTR,#LED_ADDR ;LED数码管地址送DPTR
MOVX @DPTR,A
MOV A,DATA_SL ;位码送A
MOV P1,A ;输出位码
ACALL DELAY ;调延时子程序
MOV P1,#0FFH ;输出位码
RL A ;取下一个数码管
MOV DATA_SL,A ;保存该位码值
INC R0 ;取下一个数据显示
DJNZ R7,LOOP ;6位数据显示完否?
RET
;**************
;延时子程序
;**************
DELAY:
MOV R6,#10H
DELAY0: MOV R5,#40H
DELAY1: DJNZ R5,DELAY1
DJNZ R6,DELAY0
RET
;查表子程序
TABLE: INC A ;基地址加一
MOVC A, @A+PC ;查段码表,取其相应的段码
RET
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H ;0-9的段码
DB 088H,083H,0c6H,0a1H,86H,8eH,0bfH,89H,8cH ;A-F、-、P的段码
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -