?? lcd128.asm
字號:
;E BIT P1.2 ;并行使能信號
;R_W BIT P1.1 ;并行讀寫信號
;RS BIT P1.0 ;并行指令/數(shù)據(jù)選擇信號
RE_T BIT P2.0
PSB BIT P2.2 ;串/并行口選擇,H-并;L-串
;端口(引腳)定義
LCD_CS BIT P2.5 ;LCD片選端
LCD_SID BIT P2.4 ;LCD串行數(shù)據(jù)輸入輸出端
LCD_CLK BIT P2.3 ;LCD串行時(shí)鐘端
LCD_X EQU 34H
LCD_Y EQU 35H
COUNT EQU 36H
COUNT1 EQU 37H
COUNT2 EQU 38H
COUNT3 EQU 39H
LCD_COM DATA 30H ;LCD指令緩沖區(qū)
LCD_WDAT DATA 31H ;寫入LCD數(shù)據(jù)緩沖區(qū)
LCD_RIDAT DATA 32H ;讀取LCD指令
LCD_RDDAT DATA 33H ;讀取LCD顯示數(shù)據(jù)
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
;MOV P1,#00H
clr re_t
SETB RE_T
CLR PSB
ACALL LCD_INIT
MOV DPTR,#TU_TAB1 ;顯示圖形
ACALL PHO_DISP
;MOV LCD_COM,#80h
;ACALL LCD_WRI
;MOV LCD_WDAT,#06H
; mov a,#00h
; MOV R1,#00H
; mov r0,#16
; mov dptr,#table
;MAIN1: movc a,@a+dptr
;MOV LCD_WDAT,A
; ACALL LCD_WRD
;INC R1
; MOV A,R1
; DJNZ R0,MAIN1
main2:
AJMP MAIN2
;table: db "YM12864R造字演示YM12864R造字演示"
;==========================================================;
;液晶初始化子程序
;==========================================================;
LCD_INIT:
MOV LCD_COM,#34H ;34H--擴(kuò)充指令操作
LCALL LCD_WRI
;MOV LCD_COM,#30H ;功能設(shè)置,基本指令集
;CALL LCD_WRI ;調(diào)用寫指令子程序
MOV LCD_COM,#0CH ;顯示開,光標(biāo)關(guān),反白關(guān)
CALL LCD_WRI
MOV LCD_COM,#01H ;清屏并將DDRAM的地址計(jì)數(shù)器(AC)歸零
CALL LCD_WRI
MOV LCD_COM,#06H ;光標(biāo)向右移動,AC+1
CALL LCD_WRI
RET
;==========================================================;
;MCU寫指令到LCD子程序 (RS=0、RW=0)
;名稱:LCD_WRI
;描述:發(fā)送1個(gè)字節(jié)的指令給LCD
;指令字節(jié)地址在:LCD_COM
;==========================================================;
LCD_WRI:
CALL LCD_RRI ;讀取忙碌標(biāo)志BF
MOV A,LCD_RIDAT
JB ACC.7,LCD_WRI ;不忙則繼續(xù)
CLR LCD_CS
MOV A,#11111000B ;
SETB LCD_CS ;將片選拉高
CALL LCD_SEND
;--------------------------------------
MOV A,LCD_COM
ANL A,#0F0H ;低4位清0傳送高4位
CALL LCD_SEND
;--------------------------------------
MOV A,LCD_COM
SWAP A ;高低半字節(jié)交換
ANL A,#0F0H ;低4位清0傳送低4位
CALL LCD_SEND
CLR LCD_CS ;將CS清0完成傳送
RET
;==========================================================;
;MCU寫數(shù)據(jù)到LCD (RS=1 RW=0)
;名稱:LCD_WRD
;描述:發(fā)送1個(gè)字節(jié)的數(shù)據(jù)給LCD
;數(shù)據(jù)入口:LCD_WDAT
;==========================================================;
LCD_WRD:
CLR LCD_CS ;
CALL LCD_RRI ;讀取忙碌標(biāo)志BF
MOV A,LCD_RIDAT ;調(diào)用讀LCD指令子程序
JB ACC.7,LCD_WRD ;BF=1則忙,BF=0空閑,空閑時(shí)執(zhí)行下面的指令
MOV A,#11111010B
SETB LCD_CS
CALL LCD_SEND
;--------------------------------------
MOV A,LCD_WDAT ;要發(fā)送的數(shù)據(jù)給A
ANL A,#0F0H ;屏蔽低4位傳送數(shù)據(jù)高4位
CALL LCD_SEND
;--------------------------------------
MOV A,LCD_WDAT
SWAP A
ANL A,#0F0H ;傳送數(shù)據(jù)低4位
CALL LCD_SEND
CLR LCD_CS ;完成傳送
RET
;==========================================================;
;讀LCD(BF)(AC)指令到MCU (RS=0 RW=1)
;名稱:LCD_RRI
;描述:從LCD中讀BF忙碌標(biāo)志和AC計(jì)數(shù)器地址.
;接收的指令數(shù)據(jù)在LCD_RDAT中.
;==========================================================;
LCD_RRI:
CLR LCD_CS
MOV A,#11111100B ;讀取LCD忙碌標(biāo)志
SETB LCD_CS ;片選置1(LCD數(shù)據(jù)傳送有效)
CALL LCD_SEND
CALL LCD_RECEIVE
MOV LCD_RIDAT,A ;接收高4位數(shù)據(jù)
;--------------------------------------
CALL LCD_RECEIVE ;接收低4位數(shù)據(jù)
CLR LCD_CS
ANL A,#0F0H ;屏蔽低4位
SWAP A ;取低4位
ANL LCD_RIDAT,#0F0H ;取高4位
ORL LCD_RIDAT,A ;組合成完整的數(shù)據(jù)
RET
;==========================================================;
;讀LCD的顯示數(shù)據(jù)到MCU (RS=1 RW=1)
;名稱:LCD_RRD
;描述:
;接收的顯示數(shù)據(jù)在--中
;==========================================================;
LCD_RRD:
CLR LCD_CS
MOV A,#11111110B
SETB LCD_CS ;片選端置1
CALL LCD_SEND
;-------------------------------------------
CALL LCD_RECEIVE ;接收高4位
MOV LCD_RDDAT,A
;-------------------------------------------
CALL LCD_RECEIVE ;接收低4位
CLR LCD_CS
ANL A,#0F0H
SWAP A
ANL LCD_RDDAT,#0F0H
ORL LCD_RDDAT,A ;組合成完整的數(shù)據(jù)
RET
;==========================================================;
;LCD發(fā)送8BIT的數(shù)據(jù)(1個(gè)字節(jié))
;==========================================================;
LCD_SEND:
MOV R2,#8 ;發(fā)送8位(BIT)數(shù)據(jù)
LCD_SEND1:
CLR LCD_CLK ;時(shí)鐘端置1
RLC A ;ACC.7給C
MOV LCD_SID,C ;C給串行數(shù)據(jù)端
SETB LCD_CLK ;時(shí)鐘端清0
DJNZ R2,LCD_SEND1 ;未完繼續(xù)
RET
;==========================================================;
;LCD接收8BIT數(shù)據(jù)(1個(gè)字節(jié))
;==========================================================;
LCD_RECEIVE:
MOV R2,#8
LCD_RECEIVE1:
CLR LCD_CLK ;時(shí)鐘端置1
NOP
NOP
SETB LCD_CLK
MOV C,LCD_SID
RLC A
DJNZ R2,LCD_RECEIVE1
RET
;===============================================
;全屏顯示圖形子程序
;===============================================
PHO_DISP:
MOV COUNT3,#02H
MOV LCD_X,#80H
PHO_DISP1:
MOV LCD_Y,#80H
MOV COUNT2,#20H
PHO_DISP2:
MOV COUNT1,#10H
LCALL WR_ZB
PHO_DISP3:
CLR A
MOVC A,@A+DPTR
MOV LCD_WDAT,A
LCALL LCD_WRD
INC DPTR
DJNZ COUNT1,PHO_DISP3
INC LCD_Y
DJNZ COUNT2,PHO_DISP2
MOV LCD_X,#88H
DJNZ COUNT3,PHO_DISP1
MOV LCD_COM,#36H
LCALL LCD_WRI
MOV LCD_COM,#30H
LCALL LCD_WRI
RET
;---------------------------------------------
WR_ZB:
MOV LCD_COM,#34H
LCALL LCD_WRI
MOV LCD_COM,LCD_Y
LCALL LCD_WRI
MOV LCD_COM,LCD_X
LCALL LCD_WRI
MOV LCD_COM,#30H
LCALL LCD_WRI
RET
TU_TAB1: ; 數(shù)據(jù)表
db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h,0FFh, 80h, 40h, 08h, 30h, 10h, 20h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h,0FFh, 00h, 00h, 7Fh,0FEh, 7Dh, 08h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h, 6Bh, 07h,0FCh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 04h, 0Ch, 16h, 30h, 2Dh, 08h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch,0FFh, 30h, 01h, 66h,0FEh, 2Dh, 26h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 1Ch, 00h, 03h,0F0h, 76h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 82h, 11h, 08h, 82h, 11h, 10h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh, 18h,0B8h, 1Fh, 60h,0FEh, 41h,0C6h, 00h
db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 07h, 8Fh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 00h, 10h, 00h, 80h, 10h, 60h, 00h, 0Fh,0FFh, 30h, 0Ch, 00h, 80h, 00h, 00h, 00h
db 00h, 20h, 18h, 38h, 20h, 60h, 00h, 00h, 60h, 08h, 0Ch, 1Fh,0FCh, 1Ch, 00h, 00h
db 00h,0C0h, 64h, 45h, 00h, 60h, 00h, 03h,0FCh, 0Bh,0FFh, 00h, 80h, 3Eh, 00h, 00h
db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h
db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h
db 01h, 01h, 00h, 00h,0C0h, 10h, 00h, 1Fh,0FFh,0BDh, 8Ch, 06h,0B0h, 3Eh, 00h, 00h
db 02h, 0Eh, 18h, 1Ch,0C0h, 10h, 00h, 01h, 00h, 04h, 4Ch, 7Fh,0FEh, 1Ch, 00h, 00h
db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h
db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h
db 04h,0E8h, 83h, 41h, 1Ch, 08h, 00h, 0Dh, 04h, 04h, 0Ch, 06h,0B0h, 00h, 00h, 00h
db 07h, 10h, 8Fh, 47h, 03h, 88h, 00h, 11h,0FCh, 04h, 3Ch, 08h, 88h, 1Ch, 00h, 00h
db 00h, 20h, 6Ch, 26h, 01h, 78h, 00h, 01h, 04h, 0Ah, 00h, 70h, 86h, 1Ch, 00h, 00h
db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h
db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h
db 00h,0C1h, 87h, 80h, 00h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 06h, 78h, 3Ch, 20h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 07h,0C2h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 01h, 08h, 18h, 01h,0C0h, 60h, 00h, 00h, 00h,0F1h,0F3h, 87h,0C0h, 00h, 00h, 00h
db 00h,0C6h, 18h,0C2h, 20h, 80h, 00h, 00h, 03h, 0Eh, 1Ch, 78h, 70h, 00h, 00h, 00h
db 00h,0C1h, 00h,0C2h, 00h, 80h, 00h, 00h, 04h, 44h, 11h, 10h, 38h, 00h, 00h, 00h
db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 11h, 18h, 38h, 03h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h
db 00h, 0Eh, 87h,0C2h, 1Ch, 00h, 00h, 00h, 04h, 00h, 10h, 00h, 38h, 00h, 00h, 00h
db 00h, 01h,0E0h, 04h,0E0h, 00h, 00h, 00h, 03h, 00h, 1Ch, 00h, 70h, 00h, 00h, 00h
db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h
db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h
db 00h, 38h, 07h,0C0h, 0Fh, 00h, 00h, 00h, 00h, 40h, 61h, 01h, 80h, 00h, 00h, 00h
db 00h,0E9h,0FFh,0FFh, 0Dh, 80h, 00h, 00h, 00h, 31h,0C0h, 87h, 00h, 00h, 00h, 00h
db 01h,0E9h, 1Bh,0B9h, 0Dh,0E0h, 00h, 00h, 00h, 0Bh, 80h, 6Eh, 00h, 00h, 00h, 00h
db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h
db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h
db 07h, 06h,0E0h, 06h, 10h, 78h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0C1h, 00h, 00h, 20h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h
db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -