ORG 0000H
LJMP START
ORG 0100H
START:
LCALL INI_VFD
MOV R1,#5FH
MOV R0,#10
L1: MOV @R1,#0ffH
INC R1
DJNZ R0,L1
LCALL WR_VFD
NOP
NOP
LCALL WR_VFD
JMP START
INI_VFD: ;初始化UPD16312
CLR VFD_STB
MOV A,#01H ;显示模式设置命令字:5位,16段
LCALL OUTDATA
SETB VFD_STB
NOP
CLR VFD_STB ;开启
MOV A,#0BFH
LCALL OUTDATA
SETB VFD_STB
NOP
RET
WR_VFD: ;写数据到UPD16312
CLR VFD_STB
MOV A,#40H
LCALL OUTDATA
SETB VFD_STB
NOP
CLR VFD_STB
MOV A,#0C0H ;VFD地址开始的位置
LCALL OUTDATA
MOV R2,#10
MOV R1,#5FH
WR_VFD1: MOV A,@R1
LCALL OUTDATA
INC R1
DJNZ R2,WR_VFD1
SETB VFD_STB
NOP
CLR VFD_STB ;开启
MOV A,#08fH
LCALL OUTDATA
SETB VFD_STB
RET
OUTDATA: MOV R0,#08 ;单片机到VFD传输数据
OUTDATA1: CLR VFD_CLK
RRC A
MOV VFD_DI,C
SETB VFD_CLK
DJNZ R0,OUTDATA1
RET
END