一、液晶顯示模塊概述
1. 液晶顯示模塊是128×64點陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內置8192個中文漢字(16X16點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。可與CPU直接接口,提供兩種界面來連接微處理機:8-位并行及串行兩種連接方式。具有多種功能:光標顯示、畫面移位、睡眠模式等。
2. 外觀尺寸:93×70×12.5mm
3. 視域尺寸:73×39mm
外形尺寸圖
二、模塊引腳說明
128X64 引腳說明
*注釋1:如在實際應用中僅使用串口通訊模式,可將PSB接固定低電平,也可以將模塊上的J8和“GND”用焊錫短接。
*注釋2:模塊內部接有上電復位電路,因此在不需要經常復位的場合可將該端懸空。
*注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。
2.2并行接口
管腳號管腳名稱電平管腳功能描述
1VSS0V電源地
2VCC3.0+5V電源正
3V0-對比度(亮度)調整
4RS(CS)H/LRS=“H”,表示DB7——DB0為顯示數據
RS=“L”,表示DB7——DB0為顯示指令數據
5R/W(SID)H/LR/W=“H”,E=“H”,數據被讀到DB7——DB0
R/W=“L”,E=“H→L”, DB7——DB0的數據被寫到IR或DR
6E(SCLK)H/L使能信號
7DB0H/L三態數據線
8DB1H/L三態數據線
9DB2H/L三態數據線
10DB3H/L三態數據線
11DB4H/L三態數據線
12DB5H/L三態數據線
13DB6H/L三態數據線
14DB7H/L三態數據線
15PSBH/LH:8位或4位并口方式,L:串口方式(見注釋1)
16NC-空腳
17/RESETH/L復位端,低電平有效(見注釋2)
18VOUT-LCD驅動電壓輸出端
19AVDD背光源正端(+5V)(見注釋3)
20KVSS背光源負端(見注釋3)
*注釋1:如在實際應用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC”用焊錫短接。
*注釋2:模塊內部接有上電復位電路,因此在不需要經常復位的場合可將該端懸空。
*注釋3:如背光和模塊共用一個電源,可以將模塊上的JA、JK用焊錫短接。
二、控制器接口信號說明:
1、RS,R/W的配合選擇決定控制界面的4種模式:
RSR/W功能說明
LLMPU寫指令到指令暫存器(IR)
LH讀出忙標志(BF)及地址記數器(AC)的狀態
HLMPU寫入數據到數據暫存器(DR)
HHMPU從數據暫存器(DR)中讀出數據
2、E信號
E狀態執行動作結果
高——》低I/O緩沖——》DR配合/W進行寫數據或指令
高DR——》I/O緩沖配合R進行讀數據或指令
低/低——》高無動作
● 忙標志:BF BF標志提供內部工作情況.BF=1表示模塊在進行內部操作,此時模塊不接受外部指令和數據.BF=0時,模塊為準備狀態,隨時可接受外部指令和數據。 利用STATUS RD 指令,可以將BF讀到DB7總線,從而檢驗模塊之工作狀態。● 字型產生ROM(CGROM) 字型產生ROM(CGROM)提供8192個此觸發器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY ON),DDRAM 的內容就顯示在屏幕上,DFF=0為關顯示(DISPLAY OFF)。 DFF 的狀態是指令DISPLAY ON/OFF和RST信號控制的。● 顯示數據RAM(DDRAM)模塊內部顯示數據RAM 提供64×2個位元組的空間,最多可控制4行16字(64個字)的中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM與CGRAM的字型;此模 塊可顯示三種字型,分別是半角英數字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在 0000H—0006H的編碼中(其代碼分別是0000、0002、0004、0006共4個)將選擇CGRAM的自定義字型,02H—7FH的編碼中將 選擇半角英數字的字型,至于A1以上的編碼將自動的結合下一個位元組,組成兩個位元組的編碼形成中文字型的編碼BIG5(A140—D75F),GB (A1A0-F7FFH)。 ● 字型產生RAM(CGRAM) 字型產生RAM提供圖象定義(造字)功能, 可以提供四組16×16點的自定義圖象空間,使用者可以將內部字型沒有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過DDRAM顯示在屏幕中。● 地址計數器AC地址計數器是用來貯存DDRAM/CGRAM之一的地址,它可由設定指令暫存器來改變,之后只要讀取或是寫入DDRAM/CGRAM的值時,地址計數器的值就會自動加一,當RS為“0”時而R/W為“1”時,地址計數器的值會被讀取到DB6——DB0中。
● 光標/閃爍控制電路
此模塊提供硬體光標及閃爍控制電路,由地址計數器的值來指定DDRAM中的光標或閃爍位置。
外形尺寸
ITEMNOMINAL DIMENUNIT
模塊體積93×78×12.5mm
視域70.7×38.8mm
行列點陣數128×64dots
點距離0.52×0.52mm
點大小0.48×0.48mm
三、液晶硬件接口
1、邏輯工作電壓(VDD):4.5~5.5V
2、電源地(GND):0V
3、工作溫度(Ta):0~60℃(常溫) / -20~75℃(寬溫)
4、電氣特性見附圖1 外部連接圖(參考附圖2)
模塊有并行和串行兩種連接方法(時序如下):
1、8位并行連接時序圖
MPU寫資料到模塊
MPU從模塊讀出資料
2、串行連接時序圖
四、用戶指令集
1、指令表1:(RE=0:基本指令集)
指令表—2:(RE=1:擴充指令集)
HS12864-12串口接線方式:
備注:
1、 當模塊在接受指令前,微處理順必須先確認模塊內部處于非忙碌狀態,即讀取BF標志時BF需為0,方可接受新的指令;如果在送出一個指令前并不檢查BF標志,那么在前一個指令和這個指令中間必須延遲一段較長的時間,即是等待前一個指令確實執行完成,指令執行的時間請參考指令表中的個別指令說明。
2“RE”為基本指令集與擴充指令集的選擇控制位元,當變更“RE”位元后,往后的指令集將維持在最后的狀態,除非再次變更“RE”位元,否則使用相同指令集時,不需每次重設“RE”位元。
具體指令介紹:
1、清除顯示
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLLLH
功能:清除顯示屏幕,把DDRAM位址計數器調整為“00H”
2、位址歸位
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLLHX
功能:把DDRAM位址計數器調整為“00H”,游標回原點,該功能不影響顯示DDRAM
3、位址歸位
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLHI/DS
功能:把DDRAM位址計數器調整為“00H”,游標回原點,該功能不影響顯示DDRAM功能:執行該命令后,所設置的行將顯示在屏幕的第一行。顯示起始行是由Z地址計數器控制的,該命令自動將A0-A5位地址送入Z地址計數器,起始地址可以是0-63范圍內任意一行。Z地址計數器具有循環計數功能,用于顯示行掃描同步,當掃描完一行后自動加一。
4、顯示狀態 開/關
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLHDCB
功能: D=1;整體顯示ON C=1;游標ON B=1;游標位置ON
5、游標或顯示移位控制
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLHS/CR/LXX
功能:設定游標的移動與顯示的移位控制位:這個指令并不改變DDRAM的內容
6、功能設定
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLHDLX0 REXX
功能:DL=1(必須設為1) RE=1;擴充指令集動作 RE=0:基本指令集動作
7、設定CGRAM位址
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLHAC5AC4AC3AC2AC1AC0
功能:設定CGRAM位址到位址計數器(AC)
8、設定DDRAM位址
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLHAC6AC5AC4AC3AC2AC1AC0
功能:設定DDRAM位址到位址計數器(AC)
9、讀取忙碌狀態(BF)和位址
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LHBFAC6AC5AC4AC3AC2AC1AC0
功能:讀取忙碌狀態(BF)可以確認內部動作是否完成,同時可以讀出位址計數器(AC)的值
10、寫資料到RAM
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
HLD7D6D5D4D3D2D1D0
功能:寫入資料到內部的RAM(DDRAM/CGRAM/TRAM/GDRAM)
11、讀出RAM的值
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
HHD7D6D5D4D3D2D1D0
功能:從內部RAM讀取資料(DDRAM/CGRAM/TRAM/GDRAM)
12、 待命模式(12H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLLLH
功能:進入待命模式,執行其他命令都可終止待命模式
13、卷動位址或IRAM位址選擇(13H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLLHSR
功能:SR=1;允許輸入卷動位址 SR=0;允許輸入IRAM位址
14、反白選擇(14H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLLHR1R0
功能:選擇4行中的任一行作反白顯示,并可決定反白的與否
15、睡眠模式(015H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLLLHSLXX
功能:SL=1;脫離睡眠模式 SL=0;進入睡眠模式
16、擴充功能設定(016H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLLHHX1 REGL
功能:RE=1;擴充指令集動作 RE=0;基本指令集動作 G=1;繪圖顯示ON G=0;繪圖顯示OFF
17、設定IRAM位址或卷動位址(017H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLLHAC5AC4AC3AC2AC1AC0
功能:SR=1;AC5~AC0為垂直卷動位址 SR=0;AC3~AC0寫ICONRAM位址
18、設定繪圖RAM位址(018H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LLHAC6AC5AC4AC3AC2AC1AC0
功能:設定GDRAM位址到位址計數器(AC)
五、顯示坐標關系
1、圖形顯示坐標
2、漢字顯示坐標
X坐標
Line180H81H82H83H84H85H86H87H
Line290H91H92H93H94H95H96H97H
Line388H89H8AH8BH8CH8DH8EH8FH
Line498H99H9AH9BH9CH9DH9EH9FH
六、顯示步驟
1、顯示資料RAM(DDRAM)
顯示資料RAM提供64×2個位元組的空間,最多可以控制4行16字(64個字)的中文字型顯示,當寫入顯示資料RAM時,可以分別顯示CGROM、HCGROM與CGRAM的字型;ST7920A可以顯示三種字型 ,分別是半寬的HCGROM字型、CGRAM字型及中文CGROM字型 ,三種字型的選擇,由在DDRAM中寫入的編碼選擇,在0000H—0006H的編碼中將自動的結合下一個位元組,組成兩個位元組的編碼達成中文字型 的編碼(A140—D75F),各種字型詳細編碼如下:
1、顯示半寬字型 :將8位元資料寫入DDRAM中,范圍為02H—7FH的編碼。
2、顯示CGRAM字型:將16位元資料寫入DDRAM中,總共有0000H,0002H,0004H,0006H四種編碼。
3、顯示中文字形:將16位元資料寫入DDRAMK ,范圍為A1A1H—F7FEH的編碼。
繪圖RAM(GDRAM)
繪圖顯示RAM提供64×32個位元組的記憶空間,最多可以控制256×64點的二維也納繪圖緩沖空間,在更改繪圖RAM時,先連續寫入水平與垂直的坐標值,再寫入兩個8位元的資料到繪圖RAM,而地址計數器(AC)會自動加一;在寫入繪圖RAM的期間,繪圖顯示必須關閉,整個寫入繪圖RAM的步驟如下:
1、關閉繪圖顯示功能。
2、先將水平的位元組坐標(X)寫入繪圖RAM地址;
3、再將垂直的坐標(Y)寫入繪圖RAM地址;
4、將D15——D8寫入到RAM中;
5、將D7——D0寫入到RAM中;
6、打開繪圖顯示功能。
繪圖顯示的記憶體對應分布請參考表
2、游標/閃爍控制
ST7920A提供硬體游標及閃爍控制電路,由地址計數器(address counter)的值來指定DDRAM中的游標或閃爍位置。
編程參考(部分)
并口通信模式:
;*********************************************
;Controller:ST7920
;MCU:AT89C52 ,晶體頻率:12MHz
;LCM:128*64
;LCM型號:帶中文字庫的128X64-0402
;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 18:Vout
;**********************************************
RS EQU P1.3
RW EQU P1.4
E EQU P1.5
PSB EQU P1.6
RST EQU P2.7
COM EQU 20H
DAT EQU 21H
;******************************以上是接口定義
START:
ORG 0000H
MOV SP,#60H
LJMP DISP
;*********************************主程序入口地址
ORG 0040H
DISP: CLR PSB
LCALL DELAY
SETB PSB ;將PSB置1,通信方式為8位數據并口
LCALL DELAY
MOV COM,#30H ;功能設置---8BIT控制界面,基本指令集
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
MOV COM,#0CH ;顯示打開,光標關,反白顯示關
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
MOV COM,#01H ;清除屏幕顯示,將DDRAM的地址計數器歸零
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
MOV COM,#06H ;DDRAM的地址計數器(AC)加1
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
;****************************************************
DISPLAY5A:
MOV R2,#64 ;DDRAM地址記數器設為最大值
MOV R1,#10H
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5A: MOV DAT,R1
ACALL WRD ;寫入第二字節數據
INC R1
DJNZ R2,DISP5A
LCALL DELAY1 ;1S延時子程序
;*************************************以上是寫入半角字符
DISPLAY5:
MOV R2,#64 ;DDRAM地址記數器設為最大值
MOV R1,#0DEH
MOV COM,#80H ;DD RAM 地址-----0000000
ACALL WRI
DISP5: MOV DAT,#0B4H
ACALL WRD ;寫入第一字節數據
MOV DAT,R1
ACALL WRD ;寫入第二字節數據
INC R1
DJNZ R2,DISP5
LCALL DELAY1 ;1S延時子程序
;**********************************以上是從字庫中“崔”字處開始顯示
MOV COM,#01H ;清屏
ACALL WRI ;調用寫指令子程序
LCALL DELAY
MOV COM,#32H ;功能設置---8BIT控制界面,繪圖顯示ON
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
MOV COM,#36H ;功能設置---8BIT控制界面,擴充指令集
ACALL WRI ;調用寫指令子程序
LCALL DELAY ;延遲39uS
DISPLAY6:
MOV DPTR,#DAB2 ;圖形數據入口地址
MOV R2,#32 ;32行,(雙屏結構中上半屏)
MOV R3,#80H ;Y地址寄存器
DISP6: MOV COM,R3 ;設置繪圖區的Y地址坐標
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#80H ;設置繪圖區的X地址坐標
LCALL WRI
MOV R1,#16 ;16*8列
DISP7: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP7
DJNZ R2,DISP6 ;寫滿全屏的16*8字節X64
MOV R2,#32 ;32行,(雙屏結構的下半屏)
MOV R3,#80H ;Y地址寄存器
DISP8: MOV COM,R3 ;設置繪圖區的Y地址坐標
INC R3 ;Y地址加1
LCALL WRI
MOV COM,#88H ;設置繪圖區的X地址坐標
LCALL WRI
MOV R1,#16 ;16*8列
DISP9: CLR A
MOVC A,@A+DPTR
MOV DAT,A
LCALL WRD
INC DPTR
DJNZ R1,DISP9
DJNZ R2,DISP8 ;寫滿全屏的16*8字節X64
LCALL DELAY1 ;1S延時子程序
;********************************以上是寫入一幅圖畫(電腦桌面圖)
WRI: PUSH ACC
CLR RS
SETB RW
WRI1: MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,WRI1
CLR RW
MOV P0,COM
SETB E
CLR E
POP ACC
RET
;******************************************以上是寫指令子程序
WRD: PUSH ACC
CLR RS
SETB RW
WRD1: MOV P0,#0FFH
SETB E
MOV A,P0
CLR E
JB ACC.7,WRD1
SETB RS
CLR RW
MOV P0,DAT
SETB E
CLR E
POP ACC
RET
;******************************************以上是寫數據子程序
DELAY: MOV R7,#0FFH
DELAY4: MOV R6,#00FH
LOOP2: DJNZ R6,LOOP2
DJNZ R7,DELAY4
RET
DELAY1: MOV R4,#08H
DELAY11:MOV R7,#0FFH
DELAY41:MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,DELAY41
DJNZ R4,DELAY11
RET
XX: MOV R5,#0FFH
XX1: MOV R6,#0FFH
XX2: DJNZ R6,XX2
DJNZ R5,XX1
RET
;******************************************以上是延時子程序
DAB2:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,03FH,0FFH,0F0H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,040H,000H,018H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0BFH,0FFH,0DCH,000H,001H
DB 080H,000H,01FH,0FFH,0FFH,000H,000H,000H,000H,000H,000H,0BFH,0FFH,0BCH,000H,001H
DB 080H,000H,030H,000H,001H,080H,000H,000H,000H,000H,001H,07FH,0FFH,0B8H,000H,001H
DB 080H,000H,030H,000H,000H,080H,000H,000H,000H,000H,001H,07FH,0FFH,078H,000H,001H
DB 080H,000H,019H,0FFH,0FEH,0C0H,000H,000H,000H,000H,002H,0FFH,0FFH,070H,000H,001H
DB 080H,000H,018H,000H,000H,040H,000H,000H,000H,000H,002H,0FFH,0FEH,0F0H,000H,001H
DB 080H,000H,00CH,001H,0FFH,060H,000H,000H,000H,000H,005H,0FFH,0FEH,0E0H,000H,001H
DB 080H,000H,00CH,07FH,0D0H,020H,000H,000H,000H,000H,005H,0FFH,0FDH,0E0H,000H,001H
DB 080H,000H,006H,000H,00FH,0B0H,000H,000H,000H,000H,00BH,0FFH,0FDH,0C0H,000H,001H
DB 080H,000H,006H,003H,0FCH,010H,000H,000H,000H,000H,00BH,0FFH,0FBH,0C0H,000H,001H
DB 080H,000H,003H,01FH,000H,018H,000H,000H,000H,000H,017H,0FFH,0FBH,080H,000H,001H
DB 080H,000H,003H,000H,000H,008H,000H,000H,000H,000H,017H,0FFH,0F7H,080H,000H,001H
DB 080H,000H,001H,080H,000H,00CH,000H,000H,000H,000H,017H,0FFH,0F7H,000H,000H,001H
DB 080H,000H,001H,080H,000H,004H,000H,000H,000H,000H,009H,0FFH,0EFH,000H,000H,001H
DB 080H,000H,000H,0C0H,000H,0F6H,000H,000H,000H,000H,006H,07FH,0EEH,000H,000H,001H
DB 080H,000H,000H,0C0H,003H,0C2H,000H,000H,000H,000H,001H,09FH,0DEH,000H,000H,001H
DB 080H,000H,000H,060H,000H,03BH,000H,000H,000H,000H,000H,067H,0DFH,000H,000H,001H
DB 080H,000H,000H,060H,000H,0E3H,000H,000H,000H,000H,000H,019H,0BFH,000H,000H,001H
DB 080H,000H,000H,030H,003H,08EH,000H,000H,000H,000H,000H,006H,03FH,000H,000H,001H
DB 080H,000H,000H,030H,006H,03CH,000H,000H,000H,000H,000H,001H,0FFH,000H,000H,001H
DB 080H,000H,000H,018H,000H,0F0H,000H,000H,000H,000H,000H,000H,0FFH,000H,000H,001H
DB 080H,000H,000H,018H,003H,0C0H,000H,000H,000H,000H,000H,00FH,07FH,080H,000H,001H
DB 080H,000H,000H,00CH,00FH,000H,000H,000H,000H,000H,000H,030H,01FH,0C0H,000H,001H
DB 080H,000H,000H,00CH,03CH,000H,000H,000H,000H,000H,000H,040H,007H,0E0H,000H,001H
DB 080H,000H,000H,006H,0F0H,000H,000H,000H,000H,000H,000H,0E0H,01FH,0E0H,000H,001H
DB 080H,000H,000H,007H,0C0H,000H,000H,000H,000H,000H,000H,0F8H,03FH,0C0H,000H,001H
DB 080H,000H,000H,003H,000H,000H,000H,000H,000H,000H,000H,07EH,0FFH,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,01FH,0FCH,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,007H,0F0H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,0C0H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,005H,040H,088H,004H,001H,008H,000H,000H,00AH,081H,010H,004H,000H,020H,001H
DB 080H,079H,021H,008H,002H,021H,049H,000H,000H,0F2H,042H,010H,004H,047H,010H,001H
DB 080H,009H,007H,0DFH,07FH,0F7H,0AAH,000H,000H,012H,00FH,0BEH,07FH,0E5H,0FEH,001H
DB 080H,07FH,0F4H,051H,008H,081H,02CH,000H,000H,0FFH,0E8H,0A2H,044H,047H,000H,001H
DB 080H,009H,004H,061H,008H,081H,07FH,000H,000H,012H,008H,0C2H,07FH,0C5H,04AH,001H
DB 080H,00BH,024H,051H,008H,083H,081H,000H,000H,016H,048H,0A2H,044H,045H,06AH,001H
DB 080H,01DH,047H,0C9H,005H,005H,001H,000H,000H,03AH,08FH,092H,044H,047H,052H,001H
DB 080H,068H,084H,049H,005H,005H,07FH,000H,000H,0D1H,008H,092H,07FH,0C5H,06AH,001H
DB 080H,009H,094H,041H,002H,001H,001H,000H,000H,013H,028H,082H,044H,005H,04AH,001H
DB 080H,00EH,057H,0C1H,00DH,081H,001H,000H,000H,01CH,0AFH,082H,004H,029H,042H,001H
DB 080H,038H,034H,04EH,070H,071H,07FH,000H,000H,070H,068H,09CH,003H,0EBH,07EH,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
END
串口通信模式:
;12864-12串行通信廣告顯示例程
; RS--------P3.0
; R/W-------P3.1
; E---------P3.2
CS EQU P3.0
SID EQU P3.1
CLK EQU P3.2
PSB EQU P3.3
ORG 0000H
AJMP START
; ORG 0003H
; LCALL PAUSE
ORG 0100h
START:
; MOV IE,#81H ;EXT. INT0 PERMIT
; MOV IP,#01H ;INT0 IS FIRST INT. LEVEL
; MOV TCON,#00H ;TIMER/COUNTER CONTROLER INIT.
mov SP, #67h
CLR PSB
LCALL DELAY
LCALL DELAY
LCALL SETUP
LCALL DEF_CHAR
MOV A,#80H
LCALL WRITE_COM
MOV R3,#8
TEST11: MOV DPTR,#CGRAM1 ;CGRAM TEST
LCALL WRITE_CGRAM
DJNZ R3,TEST11
MOV A,#90H
LCALL WRITE_COM
MOV R3,#8
TEST12: MOV DPTR,#CGRAM1
LCALL WRITE_CGRAM
DJNZ R3,TEST12
MOV A,#88H
LCALL WRITE_COM
MOV R3,#8
TEST13: MOV DPTR,#CGRAM1
LCALL WRITE_CGRAM
DJNZ R3,TEST13
MOV A,#98H
LCALL WRITE_COM
MOV R3,#8
TEST14: MOV DPTR,#CGRAM1
LCALL WRITE_CGRAM
DJNZ R3,TEST14
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#80H
LCALL WRITE_COM
MOV R3,#8
TEST21: MOV DPTR,#CGRAM2
LCALL WRITE_CGRAM
DJNZ R3,TEST21
MOV A,#90H
LCALL WRITE_COM
MOV R3,#8
TEST22: MOV DPTR,#CGRAM2
LCALL WRITE_CGRAM
DJNZ R3,TEST22
MOV A,#88H
LCALL WRITE_COM
MOV R3,#8
TEST23: MOV DPTR,#CGRAM2
LCALL WRITE_CGRAM
DJNZ R3,TEST23
MOV A,#98H
LCALL WRITE_COM
MOV R3,#8
TEST24: MOV DPTR,#CGRAM2
LCALL WRITE_CGRAM
DJNZ R3,TEST24
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#80H
LCALL WRITE_COM
MOV R3,#8
TEST31: MOV DPTR,#CGRAM3
LCALL WRITE_CGRAM
DJNZ R3,TEST31
MOV A,#90H
LCALL WRITE_COM
MOV R3,#8
TEST32: MOV DPTR,#CGRAM3
LCALL WRITE_CGRAM
DJNZ R3,TEST32
MOV A,#88H
LCALL WRITE_COM
MOV R3,#8
TEST33: MOV DPTR,#CGRAM3
LCALL WRITE_CGRAM
DJNZ R3,TEST33
MOV A,#98H
LCALL WRITE_COM
MOV R3,#8
TEST34: MOV DPTR,#CGRAM3
LCALL WRITE_CGRAM
DJNZ R3,TEST34
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#80H
LCALL WRITE_COM
MOV R3,#8
TEST41: MOV DPTR,#CGRAM4
LCALL WRITE_CGRAM
DJNZ R3,TEST41
MOV A,#90H
LCALL WRITE_COM
MOV R3,#8
TEST42: MOV DPTR,#CGRAM4
LCALL WRITE_CGRAM
DJNZ R3,TEST42
MOV A,#88H
LCALL WRITE_COM
MOV R3,#8
TEST43: MOV DPTR,#CGRAM4
LCALL WRITE_CGRAM
DJNZ R3,TEST43
MOV A,#98H
LCALL WRITE_COM
MOV R3,#8
TEST44: MOV DPTR,#CGRAM4
LCALL WRITE_CGRAM
DJNZ R3,TEST44
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#80H ;WORD TEST
LCALL WRITE_COM
MOV DPTR,#ETAB
LCALL WRITE_ASCII
MOV A,#90H
LCALL WRITE_COM
MOV DPTR,#ETAB+16
LCALL WRITE_ASCII
MOV A,#88H ;WORD TEST
LCALL WRITE_COM
MOV DPTR,#TABLE1
LCALL WRITE_ASCII
MOV A,#98H
LCALL WRITE_COM
MOV DPTR,#TABLE1+16
LCALL WRITE_ASCII
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#80H
LCALL WRITE_COM
MOV DPTR,#CTAB
LCALL WRITE_HZ
MOV A,#90H
LCALL WRITE_COM
MOV DPTR,#chinese
LCALL WRITE_hz
MOV A,#88H
LCALL WRITE_COM
MOV DPTR,#CTAB
LCALL WRITE_HZ
MOV A,#98H
LCALL WRITE_COM
MOV DPTR,#chinese
LCALL WRITE_hz
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
AAA: LJMP START
SETUP: CLR PSB
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#00110000B ;FUNCTION SETTING
LCALL WRITE_COM
MOV A,#00000010B ;DDRAM SET TO ‘00H’
LCALL WRITE_COM
MOV A,#00000100B ;
LCALL WRITE_COM
MOV A,#00001100B ;DISPLAY ON
LCALL WRITE_COM
MOV A,#00000001B ;CLEARING SCREEN
LCALL WRITE_COM
MOV A,#10000000B ;SET DDRAM ADDRESS
LCALL WRITE_COM
RET
WRITE_COM: ;Serial Port
LCALL DELAY1 ;INSTEAD OF CHECKING BF STATE
SETB CS
PUSH ACC
MOV R0,#8
MOV A,#11111000B
COMM1:
CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,COMM1
POP ACC
MOV R5,A
ANL A,#0F0H
MOV R0,#8
COMM2: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,COMM2
MOV A,R5
SWAP A
ANL A,#0F0H
MOV R0,#8
COMM3: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,COMM3
CLR CS
RET
WRITE_DAT:
LCALL DELAY1
SETB CS
PUSH ACC
MOV R0,#8
MOV A,#11111010B
DATA1: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA1
POP ACC
MOV R5,A
ANL A,#0F0H
MOV R0,#8
DATA2: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA2
MOV A,R5
SWAP A
ANL A,#0F0H
MOV R0,#8
DATA3: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA3
CLR CS
RET
DELAY1:
MOV R7,#010H
D11: MOV R6,#010H
DJNZ R6,$
DJNZ R7,D11
RET
DELAY:
MOV R1,#00H
D2: MOV R2,#00H
LCALL DELAY1
DJNZ R2,$
DJNZ R1,D2
RET
DEF_CHAR: ;WRITE TO CGRAM
MOV A,#01000000B ;SET CGRAM ADDRESS
LCALL WRITE_COM
MOV R3,#14
MOV A,#07fH
LCALL WRITE_DAT
MOV A,#0feH
LCALL WRITE_DAT
DEF1:
MOV A,#080H
LCALL WRITE_DAT
MOV A,#001H
LCALL WRITE_DAT
DJNZ R3,DEF1
MOV A,#07fH
LCALL WRITE_DAT
MOV A,#0feH
LCALL WRITE_DAT
MOV R3,#8
DEF2:
MOV A,#0AAH
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
DJNZ R3,DEF2
MOV R3,#8
DEF3:
MOV A,#055H
LCALL WRITE_DAT
MOV A,#055H
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
DJNZ R3,DEF3
mov R3,#8
DEF4:
MOV A,#0FFH
LCALL WRITE_DAT
MOV A,#0FFH
LCALL WRITE_DAT
MOV A,#0FFH
LCALL WRITE_DAT
MOV A,#0FFH
LCALL WRITE_DAT
DJNZ R3,DEF4
RET
WRITE_ASCII:
MOV R4,#16
DDDD: CLR A
MOVC A,@A+DPTR
LCALL WRITE_DAT
INC DPTR
DJNZ R4,DDDD
RET
WRITE_HZ: ;WRITE 8 CHINESE TO LCD
MOV R4,#8
DD: CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
CLR A
MOVC A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
DJNZ R4,DD
RET
WRITE_CGRAM: ;CGRAM TESTING
CLR A
MOVC A,@A+DPTR
LCALL WRITE_DAT
INC DPTR
CLR A
MOVC A,@A+DPTR
LCALL WRITE_DAT
RET
PAUSE: SETB P3.2 ;PAUSE KEY PROCESS
SETB P3.2
LCALL DELAY1
MOV C,P3.2
MOV C,P3.2
JNC PAUSE ;CHECK KEY WAS PRESSED
PAUSE1: MOV C,P3.2
MOV C,P3.2
LCALL DELAY1
JC PAUSE1 ;CHECK KEY OPEN AFTER PRESSED
PAUSE2: SETB P3.2
SETB P3.2
LCALL DELAY1
MOV C,P3.2
MOV C,P3.2
JNC PAUSE2 ;CHECK KEY WAS PRESSED AGAIN
RETI
TABLE1:
DB ‘ABCDEFGHIJKLMNOP’
DB ‘0123456789!@#$%^’
ETAB:
DB ‘ LCDINLINE.COM! ’
DB ‘WELCOME TO HERE!’
CGRAM1: DB 000H,000H
CGRAM2: DB 000H,002H
CGRAM3: DB 000H,004H
CGRAM4: DB 000H,006H
CHINESE:
DB ‘中文液晶顯示模塊’
CTAB:
DB ‘福星電子專業服務’
END
附錄部分
附錄1:ASCII碼表
16*8半寬字符表
附錄2:漢字碼址表
-
cpu
+關注
關注
68文章
10911瀏覽量
213141 -
RAM
+關注
關注
8文章
1369瀏覽量
115054 -
液晶顯示
+關注
關注
6文章
588瀏覽量
40415
發布評論請先 登錄
相關推薦
12864點陣圖形液晶顯示屏,128X64 COB全新原裝黃綠膜無背光
12864中文LCD液晶顯示模塊原理與設計資料推薦
帶中文字庫的128X64液晶模塊
51單片機實例學習四 128X64 液晶顯示器、PS/2與單片機通信、密碼鎖
![51單片機實例學習四 <b class='flag-5'>128X64</b> <b class='flag-5'>液晶顯示</b>器、PS/2與單片機通信、密碼鎖](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論