I HOPE IT MAY HELP !
$MOD52
$PAGEWIDTH(132)
$DEBUG
$OBJECT
$NOPAGING
;---------------------------------------------------------
; YOU CAN CHANGE THE FOLLOWING PORT TO SUIT YOUR DESIGN
;---------------------------------------------------------
LCD_RD BIT P3.2
LCD_WR BIT P3.3
LCD_RS BIT P3.4
LCD_RESET BIT P3.5
LCD_CS BIT P3.6
LCD_DATA_BUS EQU 080H ; PORT 0
;---------------------------------------------------------
ORG 0000H ; POWER ON/RESET VECTOR
JMP ON_RESET
ON_RESET:
CLR LCD_RESET
ACALL DELAY_TIME
SETB LCD_RESET
;---------------------------
; INITIALIZATION OF THE LCD
;---------------------------
MOV A,#0E2H
ACALL LCD_CMD
MOV A,#0A0H
ACALL LCD_CMD
MOV A,#0C8H
ACALL LCD_CMD
MOV A,#0A3H
ACALL LCD_CMD
MOV A,#2FH
ACALL LCD_CMD
MOV A,#23H
ACALL LCD_CMD
MOV A,#81H
ACALL LCD_CMD
MOV A,#11H
ACALL LCD_CMD
MOV A,#40H
ACALL LCD_CMD
MOV A,#0A6H
ACALL LCD_CMD
MOV A,#0A4H
ACALL LCD_CMD
MOV A,#0AFH
ACALL LCD_CMD
ACALL LCD_CLR
LOOP:
MOV A,#0A7H
ACALL LCD_CMD
MOV DPTR,#TABLE1
ACALL LCD_FILL_DATA
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
;------------------
;INVERT THE DISPLAY
;------------------
LOOP1:
MOV A,#0A6H
ACALL LCD_CMD
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
MOV A,#0A7H
ACALL LCD_CMD
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
ACALL DELAY_TIME_1
AJMP LOOP1
;------------------------------------------------------
; CLEAR THE DISPLAY, FILL IN DATA '00' TO ALL LOCATION
;------------------------------------------------------
LCD_CLR:
A106H:
MOV R6,#0B0H
LCD_CLR_LOOP:
MOV R1,#87H ; ORIGINAL #84H
MOV A,R6
ACALL LCD_CMD
MOV A,#10H
ACALL LCD_CMD
MOV A,#00H
ACALL LCD_CMD
LCD_CLR_LOOP_1:
MOV A,#00H
ACALL LCD_DATA
DJNZ R1,LCD_CLR_LOOP_1
INC R6
CJNE R6,#0B8H,LCD_CLR_LOOP
RET
;--------------------------------------------------------
; FILL THE DATA WHICH ARE POINTED BY DPTR TO THE DISPLAY
;--------------------------------------------------------
LCD_FILL_DATA:
MOV R6,#0B0H
LCD_FILL_DATA_LOOP:
A126H:
MOV R1,#87H ; ORIGINAL #84H
MOV A,R6
ACALL LCD_CMD
MOV A,#10H
ACALL LCD_CMD
MOV A,#00H ; original #02H
ACALL LCD_CMD
LCD_FILL_DATA_LOOP_1:
MOV A,#00H
MOVC A,@A+DPTR
ACALL LCD_DATA
INC DPTR
DJNZ R1,LCD_FILL_DATA_LOOP_1
INC R6
CJNE R6,#0B8H,LCD_FILL_DATA_LOOP
RET
;------------------------------
; SEND COMMAND CODE TO THE LCD
;------------------------------
LCD_CMD:
NOP
CLR LCD_RS
SJMP LCD_WR_CODE
;------------------------------
; SEND DISPLAY DATA TO THE LCD
;------------------------------
LCD_DATA:
NOP
SETB LCD_RS
LCD_WR_CODE:
SETB LCD_RD
CLR LCD_CS
MOV LCD_DATA_BUS,A
CLR LCD_WR
NOP
SETB LCD_WR
SETB LCD_CS
RET
;-----------------------
; WAIT A PERIOD OF TIME
;-----------------------
DELAY_TIME:
MOV 40H,#02H
MOV 41H,#87H
MOV 42H,#13H
DELAY_TIME_LOOP:
DJNZ 42H,DELAY_TIME_LOOP
DJNZ 41H,DELAY_TIME_LOOP
DJNZ 40H,DELAY_TIME_LOOP
RET
DELAY_TIME_1:
MOV 40H,#08H
MOV 41H,#0A1H
MOV 42H,#73H
DELAY_TIME_1_LOOP:
DJNZ 42H,DELAY_TIME_1_LOOP
DJNZ 41H,DELAY_TIME_1_LOOP
DJNZ 40H,DELAY_TIME_1_LOOP
RET
;-------------------------------------------
; FILL IN THE DATA THAT YOU WANT TO DISPLAY
;-------------------------------------------
TABLE1:
; A LITTLE POINT ON 4 CORNER
DB 001H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 001H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 080H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H,
DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 080H
END
[ 本帖最後由 tnovicet 於 2007-7-6 15:19 編輯 ] |