📄 240128.asm
字号:
;version NO:0
;ST7529
;Test for 240*128
;******************************************************************************
DBUS REG P1
CSB REG P3.1 ;define LCM /Chip select pin
RESETB REG P3.0 ;define LCM /Reset pin
RS REG P3.2 ;define LCM Register select pin
RDB REG P3.4 ;define LCM Enable pin
WRB REG P3.3 ;define LCM Read/Write pin
CON_H REG P0.6
CON_L REG P0.7
WORD1 EQU 70H
WORD2 EQU 71H
WORD3 EQU 72H
XS EQU 73H
XE EQU 74H
YS EQU 75H
YE EQU 76H
COMMON EQU 77H
CONS86 EQU 78H
CONS50 EQU 79H
C00 EQU 7AH
C01 EQU 7BH
C02 EQU 7CH
C03 EQU 7DH
;******************************************************************************
ORG 0000H
JMP START ;Power ON jump to start address
START:
CLR RESETB
MOV R3,#1FH
CALL DELAY
SETB RESETB
MOV R3,#1FH
CALL DELAY
CLR RS
SETB WRB
SETB CSB
SETB RDB
;initial ST7529
INI_ST7529
MOV A,#00110000B ;EXT=0 SET
CALL WRITE_COM
MOV A,#11010001B ;INTERNAL OSCILLATION ON
CALL WRITE_COM
MOV A,#10010100B ;SLEEP OUT
CALL WRITE_COM
MOV A,#11001010B ;DISPLAY CONTROL(CL,DUTY,FR)
CALL WRITE_COM
MOV A,#00000000B ;CL DIVIDING RATIO(CLD=0)
CALL WRITE_DATA
MOV A,#00100111B ;DRIVE DUTY(1/160 = 160/4 -1=39)
CALL WRITE_DATA
MOV A,#00000000B ;FR INVERSE-SET VALUE
CALL WRITE_DATA
MOV A,#10111011B ;COMMON SCAN DIRECTON
CALL WRITE_COM
MOV A,#00000001B ;SET COM0->COM79,COM159->COM80
CALL WRITE_DATA
MOV A,#10000001B ;ELECTRONIC VOLUME CONTROL
CALL WRITE_COM
MOV A,#00011110B ;SETTING VOLUME VALUE
CALL WRITE_DATA
MOV A,#00000011B ;SETTING BUILT-IN RESISTANCE VALUE
CALL WRITE_DATA
; MOV CONS50,#00110000B
; MOV CONS86,#00000011B
MOV A,#00100000B ;POWER CONTROL SET
CALL WRITE_COM
MOV A,#00001011B ;VR=1,VF=1,VB=1 Internal VLCD
; MOV A,#00000011B ;VR=1,VF=1,VB=0 External VLCD
CALL WRITE_DATA
; MOV A,#10100110B ;NORMAL DISPLAY
; CALL WRITE_COM
MOV A,#10100111B ;INVERSE DISPLAY
CALL WRITE_COM
; MOV A,#10101000B ;PARTIAL IN
; CALL WRITE_COM
MOV A,#10101001B ;PARTIAL OUT
CALL WRITE_COM
; MOV A,#10101010B ;AREA SCROLL SET
; CALL WRITE_COM
; MOV A,#B ;TOP BLOCK ADDRESS
; CALL WRITE_DATA
; MOV A,#B ;BOTTOM BLOCK ADDRESS
; CALL WRITE_DATA
; MOV A,#B ;NUMBER OF SPECIFIED BLOCKS
; CALL WRITE_DATA
; MOV A,#00000000B ;AREA SCROLL MODE
; CALL WRITE_DATA
; MOV A,#10101011B ;SCROLL START ADDRESS SET
; CALL WRITE_COM
; MOV A,#B ;START BLOCK ADDRESS
; CALL WRITE_DATA
;
MOV A,#10111100B ;DATA SCAN DIRECTION
CALL WRITE_COM
MOV A,#00000010B ;NORMAL/INVERSE DISPLAY OF (THE LINE
CALL WRITE_DATA ;AND ADDRESS SCAN DIRECTION
MOV A,#00000001B ;NOT USED,D0 MUST BE 0
CALL WRITE_DATA
MOV A,#00000100B ;GRAY-SCALE SETUP(3B3P MODE)
CALL WRITE_DATA
MOV A,#01110101B ;LINE ADDRESS SET
CALL WRITE_COM
MOV A,#00000000B ;START LINE SET 00
CALL WRITE_DATA
MOV A,#159 ;END LINE SET 159
CALL WRITE_DATA
MOV A,#00010101B ;COLUMN ADDRESS SET
CALL WRITE_COM
MOV A,#5 ;START COLUMN SET 00
CALL WRITE_DATA
MOV A,#84 ;END COLUMN SET 255/3=85
CALL WRITE_DATA
MOV A,#00110001B ;EXT=1 SET
CALL WRITE_COM
MOV A,#00110010B ;Analog circuit set
CALL WRITE_COM
MOV A,#00000000B ;OSC Frequency
CALL WRITE_DATA
MOV A,#00000001B ;Booster Set
CALL WRITE_DATA
MOV A,#00000100B ;Bias Set 1/10
CALL WRITE_DATA
MOV A,#00110100B ;Dithering OFF
CALL WRITE_COM
MOV A,#00110000B ;EXT=0 SET
CALL WRITE_COM
MOV A,#10101111B ;DISPLAY ON
CALL WRITE_COM
;*****************************************************************************
START1:
;SHOW PICTURE1
MOV A,#01011100B
CALL WRITE_COM
MOV DPTR,#PIC1
MOV C00,#64
PIC1_U_1 MOV C01,#80
PIC1_U_0 MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD1,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD2,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD3,A
INC DPTR
CALL WRITE_PIXEL
DJNZ C01,PIC1_U_0
DJNZ C00,PIC1_U_1
MOV C00,#32 ;Empty data
NC_PIC1_0 MOV C01,#80
MOV WORD1,#00000000B
MOV WORD2,#00000000B
MOV WORD3,#00000000B
NC_PIC1_1 CALL WRITE_PIXEL
DJNZ C01,NC_PIC1_1
DJNZ C00,NC_PIC1_0
MOV C00,#64
PIC1_D_1 MOV C01,#80
PIC1_D_0 MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD1,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD2,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD3,A
INC DPTR
CALL WRITE_PIXEL
DJNZ C01,PIC1_D_0
DJNZ C00,PIC1_D_1
;*****************************************
CALL PAUSE; 陪ボ纒
;*****************************************
MOV A,#00100000B ;POWER CONTROL SET
CALL WRITE_COM
MOV A,#00001011B ;VR=1,VF=1,VB=1 Internal VLCD
CALL WRITE_DATA
MOV A,#10000001B ;ELECTRONIC VOLUME CONTROL
CALL WRITE_COM
MOV A,#00100100B ;SETTING VOLUME VALUE
CALL WRITE_DATA
MOV A,#00000011B ;SETTING BUILT-IN RESISTANCE VALUE
CALL WRITE_DATA
;SHOW PICTURE2
MOV A,#01011100B
CALL WRITE_COM
MOV DPTR,#PIC2
MOV C00,#64
PIC2_U_1 MOV C01,#80
PIC2_U_0 MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD1,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD2,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD3,A
INC DPTR
CALL WRITE_PIXEL
DJNZ C01,PIC2_U_0
DJNZ C00,PIC2_U_1
MOV C00,#32 ;Empty data
NC_PIC2_0 MOV C01,#80
MOV WORD1,#00000000B
MOV WORD2,#00000000B
MOV WORD3,#00000000B
NC_PIC2_1 CALL WRITE_PIXEL
DJNZ C01,NC_PIC2_1
DJNZ C00,NC_PIC2_0
MOV C00,#64
PIC2_D_1 MOV C01,#80
PIC2_D_0 MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD1,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD2,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
MOV B,#8
DIV AB
CLR C
RL A
RL A
RL A
CPL A
MOV WORD3,A
INC DPTR
CALL WRITE_PIXEL
DJNZ C01,PIC2_D_0
DJNZ C00,PIC2_D_1
;*****************************************
CALL PAUSE;陪ボよ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -