📄 tg12864e 并口简体测试测序.asm
字号:
;*******************************************************************************
;TG12864E series testing program
;NAME:ST7920(8BIT INTERFACE)
;EDITOR:xionglianglin
;CRYSTAL:6MHz
;data:2005.8.6
;*******************************************************************************
;connector define
RS bit P3.0 ;RS
RW bit P3.1 ;RW
E bit P3.2 ;E
PSB bit P3.3
RESET bit P3.4
;register define
EXSET EQU 30H
NXSET EQU 31H
ROW EQU 32H ;行位置寄存器
COL EQU 34H ;列位置寄存器
COUNT1 EQU 35H ;计数器一
COUNT2 EQU 40H ;计数器二
DAT EQU 36H
SHUJU EQU 2FH
;***********程序开始************************************
ORG 0000H ;BEGIN
AJMP MAIN
ORG 0180H
;***********主程序**************************************
MAIN: MOV SP,#50H
SETB PSB
MOV EXSET,#00111110B ;开图形显示,进入扩展指令模式
MOV NXSET,#00111010B ;开图形显示,进入基本指令模式
LCALL INITIAL
MOV DAT,#000H
LCALL CLEAR
MOV DPTR,#PICTURE1
LCALL TUXING
LCALL DELAY
MOV DAT,#0AAH ;竖线10101010 AA
LCALL CLEAR
LCALL DELAY
MOV DAT,#55H ;竖线01010101 55
LCALL CLEAR
LCALL DELAY
MOV DAT,#0FFH ;横线 00
LCALL HENGX
LCALL DELAY
MOV DAT,#000H ;横线 FF
LCALL HENGX
LCALL DELAY
MOV DAT,#080H ;斜线////////
LCALL XIEX
LCALL DELAY
MOV DAT,#00H
LCALL CLEAR
LCALL TEXT
LCALL CLRTEXT
MOV DAT,#0FFH ;
LCALL CLEAR
LCALL DELAY
LJMP MAIN
;*****************图形子程序***************************
;
TUXING: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
TU1:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
TU2:MOV A,#00H
MOVC A,@A+DPTR
LCALL WRDATA
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
LCALL WRDATA
INC DPTR
DJNZ COUNT1,TU2
INC ROW
MOV COL,#00H
DJNZ COUNT2,TU1
MOV ROW,#00H
MOV COL,#08H
MOV COUNT2,#32
TU3:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
TU4:MOV A,#00H
MOVC A,@A+DPTR
LCALL WRDATA
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
LCALL WRDATA
INC DPTR
DJNZ COUNT1,TU4
INC ROW
MOV COL,#08H
DJNZ COUNT2,TU3
RET
;*****************图形模式清屏子程序***************************
;IN: DAT
CLEAR: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
CL1:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
CL2:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
DJNZ COUNT1,CL2
INC ROW
MOV COL,#00H
DJNZ COUNT2,CL1
MOV ROW,#00H
MOV COL,#08H
MOV COUNT2,#32
CL3:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
CL4:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
INC DPTR
DJNZ COUNT1,CL4
INC ROW
MOV COL,#08H
DJNZ COUNT2,CL3
RET
;*****************图形状态下横线子程序***************************
;IN: DAT
HENGX: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
HX1:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
HX2:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
DJNZ COUNT1,HX2
INC ROW
MOV COL,#00H
MOV A,DAT
CPL A
MOV DAT,A
DJNZ COUNT2,HX1
MOV ROW,#00H
MOV COL,#08H
MOV COUNT2,#32
HX3:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
HX4:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
INC DPTR
DJNZ COUNT1,HX4
INC ROW
MOV COL,#08H
MOV A,DAT
CPL A
MOV DAT,A
DJNZ COUNT2,HX3
RET
;*****************图形状态下斜线子程序***************************
;IN: DAT
XIEX: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
XX1:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
XX2:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
DJNZ COUNT1,XX2
INC ROW
MOV COL,#00H
MOV A,DAT
RL A
MOV DAT,A
DJNZ COUNT2,XX1
MOV ROW,#00H
MOV COL,#08H
MOV COUNT2,#32
XX3:MOV COUNT1,#08
MOV A,EXSET ;开图形显示,进入扩展指令模式
LCALL WRINS
MOV A,0CH ;SL=1 leave sleep mode
MOV A,ROW ;first write vertical address
SETB ACC.7
LCALL WRINS
MOV A,COL ;second write horizontal address
SETB ACC.7
LCALL WRINS
MOV A,NXSET ;开图形显示,进入基本指令模式
LCALL WRINS
XX4:MOV A,DAT
LCALL WRDATA
MOV A,DAT
LCALL WRDATA
INC DPTR
DJNZ COUNT1,XX4
INC ROW
MOV COL,#08H
MOV A,DAT
RL A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -