📄 ili9320_driverfunction.asm
字号:
;======= Function List =======================================================================
//**** LCD Display Driver Function ****//
;== LCDTest (void) //To Test the color LCD by Display 4 kind of color in a page
;== ClerPage ((R5=RG, R6=GB)) //Write a Color to LCD(whole page)
;== Reset LCD //TO RESET AND START UP THE LCD DEVICE
;== SetReg (R5=value[HSB], R6=value[LSB], R7=Index)
;== Set Index (R7=index)
;== WriteData (R5=HSB, R6=LSB)
;== SetAddress (R5=addr2, R6=addr1, R7=addr0) //Set GRAM Horizonta/Vertical Address
//addr2==Vertical[H];
//addr1==Vertical[L];
//addr0==Horizonte;
//**** Port Definition for LCD module *****//
RS_ BIT P3.2
CS_ BIT P3.3
RD_ BIT P3.4
WR_ BIT P3.5
LE_ BIT P3.6
LCD_RST_ BIT P3.7
LIGHT_ BIT P1.0
DATPORT_ EQU P2
//**** Memory Definition *****//
DataMemory EQU 40
//********** LCD Display Function ************
;== To Test the color LCD by Display 4 kind of color in a page
LCDTest:
CLR CS_
MOV R5,#00H
MOV R6,#00H
MOV R7,#00H
ACALL SetAddress
MOV R5,#0FFH
MOV R6,#0FFH
ACALL ClerPage
MOV R5,#11111000B
MOV R6,#00000000B
ACALL ClerPage
MOV R5,#00000111B
MOV R6,#11100000B
ACALL ClerPage
MOV R5,#00000000B
MOV R6,#00011111B
ACALL ClerPage
MOV R5,#00H
MOV R6,#00H
ACALL ClerPage
SETB CS_
RET
;== ClerPage (R5=RG, R6=GB)
ClerPage:
MOV 20H,R2
PUSH 20H
MOV 20H,R1
PUSH 20H
MOV 20H,R0
PUSH 20H
MOV 20H,R7
PUSH 20H
MOV R7,#22H
ACALL SetIndex
MOV R2,#2
CLRP: MOV R1,#160
CLRP1: MOV R0,#240
CLRP0: ACALL WriteData
DJNZ R0,CLRP0
DJNZ R1,CLRP1
DJNZ R2,CLRP
POP 20H
MOV R7,20H
POP 20H
MOV R0,20H
POP 20H
MOV R1,20H
POP 20H
MOV R2,20H
RET
;=============================
;== Reset Device (void)
ResetLCD:
//Reset LCD
SETB CS_
CLR LCD_RST_
CLR RS_
SETB RD_
SETB WR_
SETB LE_
CLR LIGHT_
MOV DATPORT_,#00H
ACALL DELAY_1MS
SETB LCD_RST_
NOP
NOP
//Enable LCD
CLR CS_
//*** Setup display FO4R IL9320 driver IC ***
MOV R5,#08H ;Start OSC
MOV R6,#00H
MOV R7,#0E5H
ACALL SetReg
MOV R5,#00H
MOV R6,#01H
MOV R7,#00H
ACALL SetReg
ACALL DELAY_1MS
MOV R5,#00H ;calb
MOV R6,#01H
MOV R7,#0A4H
ACALL SetReg
MOV R5,#00H ;display control(1)
MOV R6,#00H
MOV R7,#07H
ACALL SetReg
ACALL DELAY_1MS
//*** Display Setting ***
MOV R5,#01H ;Driver output control (1)
MOV R6,#00H
MOV R7,#01H
ACALL SetReg
MOV R5,#07H ;LCD driving control
MOV R6,#00H
MOV R7,#02H
ACALL SetReg
MOV R5,#10H ;Entry mode
MOV R6,#30H
MOV R7,#03H
ACALL SetReg
MOV R5,#00H ;Resize control
MOV R6,#00H
MOV R7,#04H
ACALL SetReg
MOV R5,#02H ;Display control (2)
MOV R6,#02H
MOV R7,#08H
ACALL SetReg
MOV R5,#00H ;Display control (3)
MOV R6,#00H
MOV R7,#09H
ACALL SetReg
//*** Power Control ***
MOV R5,#01H ;power control 1 BT, AP
MOV R6,#01H
MOV R7,#07H
ACALL SetReg
MOV R5,#00H
MOV R6,#01H
MOV R7,#17H
ACALL SetReg
MOV R5,#00H
MOV R6,#00H
MOV R7,#10H
ACALL SetReg
MOV R5,#00H ;power control 2 DC, VC
MOV R6,#07H
MOV R7,#11H
ACALL SetReg
MOV R5,#00H ;power control 3 VRH
MOV R6,#00H
MOV R7,#12H
ACALL SetReg
MOV R5,#00H ;power control 4 VCOM amplitude
MOV R6,#00H
MOV R7,#13H
ACALL SetReg
ACALL DELAY_1MS
MOV R5,#16H ;power control 1 BT,AP
MOV R6,#0B0H
MOV R7,#10H
ACALL SetReg
MOV R5,#00H ;power control 2 DC,VC
MOV R6,#37H
MOV R7,#11H
ACALL SetReg
ACALL DELAY_1MS
MOV R5,#01H ;power control 3 VRH
MOV R6,#3EH
MOV R7,#12H
ACALL DELAY_1MS
ACALL SetReg
MOV R5,#1AH ;power control 4 vcom amplitude
MOV R6,#00H
MOV R7,#13H
ACALL SetReg
MOV R5,#00H ;power control 7 VCOMH
MOV R6,#0FH
MOV R7,#29H
ACALL DELAY_1MS
ACALL SetReg
MOV R5,#00H ;Horizontal GRAM Address Set
MOV R6,#00H
MOV R7,#20H
ACALL SetReg
MOV R5,#00H ;Vertical GRAM Address Set
MOV R6,#00H
MOV R7,#21H
ACALL SetReg
MOV R5,#00H ;Horizontal Address Start Position
MOV R6,#00H
MOV R7,#50H
ACALL SetReg
MOV R5,#00H ;Horizontal Address end Position (239)
MOV R6,#0EFH
MOV R7,#51H
ACALL SetReg
MOV R5,#00H ;Vertical Address Start Position
MOV R6,#00H
MOV R7,#52H
ACALL SetReg
MOV R5,#01H ;Vertical Address end Position (319)
MOV R6,#3FH
MOV R7,#53H
ACALL SetReg
MOV R5,#27H ;Driver Output Control 2
MOV R6,#00H
MOV R7,#60H
ACALL SetReg
MOV R5,#00H ;Base Image Display Control
MOV R6,#01H
MOV R7,#61H
ACALL SetReg
MOV R5,#00H ;Base Image Display Control
MOV R6,#00H
MOV R7,#6aH
ACALL SetReg
MOV R5,#00H ;Panel Interface Control 1
MOV R6,#10H
MOV R7,#90H
ACALL SetReg
MOV R5,#00H ;Panel Interface Control 2
MOV R6,#00H
MOV R7,#92H
ACALL SetReg
MOV R5,#00H ;Panel Interface Control 3
MOV R6,#00H
MOV R7,#93H
ACALL SetReg
//***GAMMA Control ***/
MOV R5,#00H
MOV R6,#07H
MOV R7,#30H
ACALL SetReg
MOV R5,#04H
MOV R6,#03H
MOV R7,#31H
ACALL SetReg
MOV R5,#04H
MOV R6,#04H
MOV R7,#32H
ACALL SetReg
MOV R5,#00H
MOV R6,#02H
MOV R7,#35H
ACALL SetReg
MOV R5,#07H
MOV R6,#07H
MOV R7,#36H
ACALL SetReg
MOV R5,#06H
MOV R6,#06H
MOV R7,#37H
ACALL SetReg
MOV R5,#01H
MOV R6,#06H
MOV R7,#38H
ACALL SetReg
MOV R5,#00H
MOV R6,#07H
MOV R7,#39H
ACALL SetReg
MOV R5,#07H
MOV R6,#00H
MOV R7,#3cH
ACALL SetReg
MOV R5,#07H
MOV R6,#07H
MOV R7,#3dH
ACALL SetReg
MOV R5,#01H
MOV R6,#33H
MOV R7,#07H
ACALL SetReg
//** Disable LCD
SETB CS_
ACALL DELAY_1MS
RET
;=============================
;== SetReg (R5=value[HSB], R6=value[LSB], R7=Index)
SetReg:
ACALL SetIndex
ACALL WriteData
RET
;=============================
;== SetIndex (R7=index)
SetIndex:
CLR RS_
SETB LE_
MOV DATPORT_, R7
CLR LE_
MOV DATPORT_,#00H
CLR WR_
SETB WR_
RET
;=============================
;== WriteData (R5=HSB, R6=LSB)
WriteData:
SETB RS_
SETB LE_
MOV DATPORT_, R6
CLR LE_
MOV DATPORT_, R5
CLR WR_
SETB WR_
RET
;=============================
;== SetAddress (R5=addr2, R6=addr1, R7=addr0)
SetAddress:
MOV 20H,R7
PUSH 20H
MOV R7,#20H
ACALL SetIndex;(R7=20H)
POP 20H
MOV R7,20H
MOV 20H,R5
PUSH 20H
MOV 20H,R6
PUSH 20H
MOV R5,#00H
MOV 20H,R7
MOV R6,20H
ACALL WriteData;(R5=00H, R6=addr0)
POP 20H
MOV R6,20H
POP 20H
MOV R5,20H
MOV 20H,R7
PUSH 20H
MOV R7,#21H
ACALL SetIndex;(R7=21H)
POP 20H
MOV R7,20H
ACALL WriteData;(R5=addr2, R6=addr1)
MOV 20H,R7
PUSH 20H
MOV R7,#22H
ACALL SetIndex;(R7=22H)
POP 20H
MOV R7,20H
RET
//********** System Function ************
;== Delat 100ms
DELAY_1MS:
MOV 20H,R7
PUSH 20H
MOV 20H,R6
PUSH 20H
MOV R7,#200
DL: MOV R6,#250
DJNZ R6,$
DJNZ R7,DL
POP 20H
MOV R6,20H
POP 20H
MOV R7,20H
RET
;=============================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -