📄 tg16032b-01并口繁体测试测序.asm
字号:
;*******************************************************************************
;TG16032B-01 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,#10
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
RET
;*****************图形模式清屏子程序***************************
;IN: DAT
CLEAR: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
CL1:MOV COUNT1,#10
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
RET
;*****************图形状态下横线子程序***************************
;IN: DAT
HENGX: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
HX1:MOV COUNT1,#10
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
RET
;*****************图形状态下斜线子程序***************************
;IN: DAT
XIEX: MOV ROW,#00H
MOV COL,#00H
MOV COUNT2,#32
XX1:MOV COUNT1,#10
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
RET
;*****************初始化子程序***************************
;
INITIAL:CLR RESET
LCALL DELAY200us
SETB RESET
MOV A,#38H ;function set DL--8 bit MPU bus interface set
LCALL WRINS
LCALL DELAY200us
MOV A,#38H ;function set RE--basic instruction set
LCALL WRINS
LCALL DELAY200us
MOV A,#38H ;function set x
LCALL WRINS
LCALL DELAY200us
MOV A,#01H ;display clear screen
LCALL WRINS
LCALL DELAY
MOV A,#06H ;entry mode set I/D=1
LCALL WRINS
LCALL DELAY200us
MOV A,#0CH ;display on
LCALL WRINS
LCALL DELAY200us
RET
;*****************文本模式下写汉字&字符子程序****************************
;
TEXT: MOV A,#00111000B ;关图形显示,进入基本指令模式
LCALL WRINS
LCALL DELAY200us
MOV A,#80H ;SET DDRAM ADDRESS
LCALL WRINS
MOV COUNT1,#64
MOV A,#041H
TE1:LCALL WRDATA ;写字符
INC A
DJNZ COUNT1,TE1
LCALL DELAY
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -