📄 adc0809.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INIT0
ORG 0030H
MAIN: MOV SP,#60H
SETB EA
SETB IT0
SETB EX0
JMP $
;=====================================================
DISCODE:
DB 0FAH,060H,0DCH,0F4H,066H,0B6H
DB 0BEH,0E0H,0FEH,0F6H,0EEH,03EH
DB 09AH,07CH,0DEH,08EH,0FBH,061H
DB 0DDH,0F5H,067H,0B7H
;=====================================================
DEL1: MOV R6, #100 ;延时一段时间使显示更稳定
DEL2: MOV R5, #10
DEL3: DJNZ R5, DEL3
DJNZ R6, DEL2
RET ;循环
;=====================================================
INIT0:
MOV DPTR,#0000H
MOVX A,@DPTR
LCALL YIWEI
ACALL ZHUAN
MOVX @DPTR,A
;===================================
INIT8255: ;====8255显示程序
MOV A,#80H
MOV DPTR,#2003H
MOVX @DPTR,A
MOV R4,#0FH ;8255外循环显示时间,为了将显示闪烁的数值均看清楚
CCC:
MOV R1,#0FH
MOV R3,#0FEH
DIR:
MOV A,R3
LD0:
MOV DPTR,#2000H ;8255位选
MOVX @DPTR,A
INC DPTR
INC R1
MOV A,@R1 ;8255段选
PUSH DPH
PUSH DPL
MOV DPTR,#DISCODE
MOVC A,@A+DPTR
POP DPL
POP DPH
DIR1:
MOVX @DPTR,A ;查完表送值
LCALL DEL1
MOV A,R3
RL A
MOV R3,A
;LCALL DEL
;MOV DPTR,#2000H
;MOV A,#00H ;段\位送完一次灭灯
;MOVX @DPTR,A
CJNE R1,#17H,DIR
DJNZ R4,CCC
RETI
;==============================================
YIWEI: RLC A
MOV 00H,C
RLC A
MOV 01H,C
RLC A
MOV 02H,C
RLC A
MOV 03H,C
RLC A
MOV 04H,C
RLC A
MOV 05H,C
RLC A
MOV 06H,C
RLC A
MOV 07H,C
MOV A,20H
MOV 30H,A
RET
;=================================================
ZHUAN: MOV R2,#04H
MOV B,#05
MOV R1,#10H
MUL AB
MOV R7,A
MOV A,B
ADD A,#10H
MOV @R1,A
MOV A,R7
AA: INC R1
MOV B,#0AH
MUL AB
MOV @R1,B
DJNZ R2,AA
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -