📄 5366.asm
字号:
DATA_TMP EQU 10H ; $10 - $7F = RAM LOCATION
PIXELCNT EQU 11H
PAGE_CNT EQU 12H
COL_CNT EQU 13H
ROW_CNT EQU 14H
TEMPA EQU 15H
DISP_CNT EQU 19H
TEMPB EQU 1CH
TEMPC EQU 1DH
TEMPD EQU 1EH
tempx equ 21h
A0 EQU P1.2
CS1 EQU P1.4
SI EQU P1.0
CLK EQU P1.1
RES EQU P1.3
MAX_PAGE EQU 8
LAST_PAGE EQU 7
MAX_DOT EQU 95
FIRST_SEG EQU 0
MAX_COL EQU 95
;COMMANDS
LINE_ZERO EQU 01000000B ;D5-D0 - LINE 0
PAGE_ZERO EQU 10110000B ;D3-D0 - PAGE 0
DISP_ST_LINE EQU 01111111B
COL_ADDR_H EQU 00011111B
COL_ADDR_L EQU 00001111B
DISPLAY_ON EQU 10101111B ;D0=1
COL_ST_H EQU 00010000B ;D3-D0 -}COL START ADDR
COL_ST_L EQU 00000000B ;D3-D0 -} = 0
RD_STATUS EQU 10110000B ;D7-D4
ADC_SEL EQU 10100000B ;D0=0 - NORMAL SEG ADDR
NORM_DISP EQU 10100110B ;D0=0 - MORMAL DISPLAY MODE
ALL_ON EQU 10100101B ;D0=1 - LIGHT ALL INDICATORS
BIAS EQU 10100010B ;D0=1 - 1/7 BIAS,0 - 1/9 BIAS
POWER_CON_SET EQU 00101111B ;Select internal power supply operating mode.
BUILT_INOFF EQU 00100000B ;Built_in power OFF
POWER_ON EQU 11101101B ;Completes turn-on seq of built-in PS
VLCD_CONTROL EQU 10010110B ;STEP=01000, TESTING CONDITION
OUT_STATUS EQU 11001100B ;CASE 2
PAGE_ADDR EQU 10111111B
;*********************************************************
ORG 00H
LJMP BEGIN
ORG 03H
LJMP INTO
;*********************************************************
BEGIN: CLR CS1
CLR CS1
MOV PSW,#00H
MOV SP,#60H
MOV TCON,#00H
MOV IP,#01H
MOV IE,#81H
;***************************************
INI:
CLR RES ; INIT PORTA TO AN INACTIVE POS
ACALL DELAY100 ; RESET THE CONTROLLER
ACALL DELAY100
ACALL DELAY100
ACALL DELAY100
SETB RES
ACALL DELAY100 ; DELAY FOR 100 uS
ACALL DELAY100
ACALL INITHU
MAIN_PROG:
ACALL DELAY100
ACALL CLR_RAM ; CLR RAM CONTENT
ACALL DISP_ON
ACALL DELAY1S
ACALL OUTLINE
ACALL DELAY1S
ACALL DISP_ALL ; ALL SEG ON
ACALL DELAY1S
ACALL CLR_RAM ; CLR DISPLAY
ACALL DELAY1S
ACALL CHECKER ; DISP TEST PATTERNS
ACALL DELAY1S
ACALL CLR_RAM
ACALL DELAY1S
ACALL DISP_H
ACALL DELAY1S
END_PROG: LJMP MAIN_PROG
;*******************************************************************
; INITIALISATION OF LCD CONTROLLER SED1530
;*******************************************************************
INITHU:
MOV TEMPB,#12
MOV DPTR,#INI_DATA
INI1: CLR A
MOVC A,@A+DPTR
MOV R0,A
LCALL WCOM
NOP
NOP
INC DPTR
DJNZ TEMPB,INI1
RET
;*******************************************
; CLEAR RAM CONTENT
;************************************************
CLR_RAM:
MOV B,#00H
MOV DATA_TMP,B
MOV PAGE_CNT,B
CLR A
MOV A,#FIRST_SEG
MOV COL_CNT,A
LCALL WR_PAGE
RET
;*************************************************
; ALL SEGMENTS ON
;*************************************************
DISP_ALL:
MOV A,#0FFH
MOV DATA_TMP,A
MOV B,#0
MOV PAGE_CNT,B
CLR A
MOV A,#FIRST_SEG
MOV COL_CNT,A
LCALL WR_PAGE
RET
;**************************************************
; ON DISPLAY
;**************************************************
DISP_ON:
MOV A,#DISPLAY_ON
MOV R2,A
LCALL WCOM
RET
;*************************************************
; PATTERN TESTING
;*************************************************
CHECKER:
MOV B,#0
MOV PAGE_CNT,B
CHK2: MOV A,#0 ;#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
LCALL SET_COL
MOV A,#48
MOV TEMPA,A
CHK1: MOV A,#0AAH
MOV R2,A
LCALL WDATA
MOV A,#55H
MOV R2,A
LCALL WDATA
DJNZ TEMPA,CHK1
INC PAGE_CNT
MOV R0,PAGE_CNT
CJNE R0,#8,CHK2
MOV B,#8
MOV PAGE_CNT,B
MOV A,#0 ;#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
LCALL SET_COL ;
MOV A,#50
MOV TEMPA,A
CHK5: MOV A,#01H
MOV R2,A ;
LCALL WDATA
MOV A,#00H
MOV R2,A
LCALL WDATA
DJNZ TEMPA,CHK5
LCALL DELAY1S ; DELAY 1S
LCALL CLR_RAM
MOV B,#0
MOV PAGE_CNT,B
CHK3: MOV A,#0 ;#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
LCALL SET_COL ;
MOV A,#50
MOV TEMPA,A
CHK4: CLR A
MOV A,#55H
MOV R2,A ;
LCALL WDATA
MOV A,#0AAH
MOV R2,A
LCALL WDATA
DJNZ TEMPA,CHK4
INC PAGE_CNT
MOV R0,PAGE_CNT
CJNE R0,#MAX_PAGE,CHK3
MOV B,#8
MOV PAGE_CNT,B
MOV A,#0 ;#FIRST_SEG
MOV COL_CNT,A
LCALL SET_PAGE
LCALL SET_COL ;
MOV A,#48
MOV TEMPA,A
CHK6: CLR A
MOV A,#00H
MOV R2,A ;
LCALL WDATA
MOV A,#01H
MOV R2,A
LCALL WDATA
DJNZ TEMPA,CHK6
RET
;*******************************************
DISP_E:
MOV B,#0
MOV PAGE_CNT,B
;*******************************************
DISP_H:
MOV A,#0
; MOV TEMPA,#20
MOV R4,#0
H0: MOV COL_CNT,A
MOV B,#0
MOV PAGE_CNT,B
H1: LCALL SET_PAGE
NOP
NOP
LCALL SET_COL
NOP
NOP
MOV TEMPA,#20
H11: MOV R0,#5
MOV DPTR,#PTN_H1
H111: CLR A
ADD A,R4
MOVC A,@A+DPTR
MOV R2,A
LCALL WDATA
INC DPTR
DJNZ R0,H111
DJNZ TEMPA,H11
INC PAGE_CNT
INC R4
INC R4
INC R4
INC R4
INC R4
MOV R2,PAGE_CNT
CJNE R2,#8,H1
MOV A,#0
MOV COL_CNT,A
MOV B,#8
MOV PAGE_CNT,B
LCALL SET_PAGE
NOP
NOP
LCALL SET_COL
NOP
NOP
MOV TEMPA,#20
H99: MOV R0,#5
MOV DPTR,#PTN_H9
H999: CLR A
; ADD A,R4
MOVC A,@A+DPTR
MOV R2,A
LCALL WDATA
INC DPTR
DJNZ R0,H999
DJNZ TEMPA,H99
RET
;***********************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -