1. 實驗?zāi)康?/strong>(1)學(xué)習(xí)及掌握FM12232A LCD模塊工作原理。
(2)學(xué)習(xí)及掌握單片機與FM12232A接口電路連接。
(3)學(xué)習(xí)及掌握單片機控制FM12232A顯示程序的設(shè)計方法。
2. 實驗設(shè)備(1)ZY15MCU12BC2單片機實驗開發(fā)裝置一臺。
(2)PC 系列微機及相關(guān)軟件。
3. 實驗內(nèi)容及要求(1)同實驗一。
(2)同實驗一。
(3)FM12232A LCD顯示器內(nèi)部結(jié)構(gòu)及原理。
點陣式液晶顯示模塊FM12232A具有功耗低、供應(yīng)電壓范圍寬、顯示信息量大、壽命長、不產(chǎn)生電磁輻射污染等特點,廣泛應(yīng)用于移動通信、儀器儀表、家用電器等領(lǐng)域。
FM12232A模塊由一塊12232 LCD顯示屏(由左、右半屏6116組成)、2片SED1520列驅(qū)動芯片(分別驅(qū)動左、右顯示屏)以及控制電路構(gòu)成,其中控制電路包括:指令寄存器(IR)、數(shù)據(jù)寄存器(DR)、忙標(biāo)志(BF)、顯示控制觸發(fā)器(DFF)、顯示RAM(DD RAM)、XY地址計數(shù)器等單元。FM12232A顯示屏有16個行驅(qū)動輸出和61個列驅(qū)動輸出,驅(qū)動占空比可設(shè)置為1/16或1/32,并可外接驅(qū)動IC擴展驅(qū)動。FM12232A模塊具有與68系列或80系列相適配的MPU接口功能,并有專用的指令集,可完成文本顯示或圖形顯示。圖4-20為FM12232A模塊邏輯結(jié)構(gòu)圖。
圖4-20 FM12232A模塊內(nèi)部邏輯結(jié)構(gòu)圖
【指令寄存器(IR):】存儲CPU寫入的指令碼。當(dāng)A0 = 0時,CPU寫入的指令碼存入IR中。
【數(shù)據(jù)寄存器(DR):】存儲CPU寫入的顯示數(shù)據(jù)8位點陣碼。當(dāng)A0 = 1時,DR中8位點陣碼寫入對應(yīng)的DD RAM單元,并且DD RAM的Y地址計數(shù)器自動加1指向下一個單元,DR和DDRAM之間的傳送是FM12232A模塊內(nèi)部自動執(zhí)行的。
【忙標(biāo)志(BUSY):】 BUSY為FM12232A工作狀態(tài)標(biāo)志。BUSY = 1 ,F(xiàn)M12232A為內(nèi)部操作狀態(tài),此時FM12232A禁止接收外部指令和數(shù)據(jù);BUSY = 0 ,F(xiàn)M12232A為準(zhǔn)備狀態(tài),此時FM12232A允許接收外部指令和數(shù)據(jù)。
【顯示控制觸發(fā)器(DFF):】DFF觸發(fā)器用于控制FM12232A顯示屏的開、關(guān)。DFF = 0,F(xiàn)M12232A開顯示屏,此時DDRAM中顯示碼送入顯示屏顯示;DFF = 1,F(xiàn)M12232A關(guān)顯示屏。
【顯示RAM(DD RAM):】顯示RAM 為DD RAM結(jié)構(gòu),主要功能為存儲左、右兩個顯示屏顯示數(shù)據(jù)的點陣碼, DD RAM共有4頁×8行×80列(只有前61列有效) = 2560位(320字節(jié))RAM緩沖區(qū),每一列包含的8行對應(yīng)一個點陣碼字節(jié),RAM中1位二進制數(shù)值控制顯示屏上一個像素點的亮與暗,“1”控制像素點亮、“0”控制像素點暗。DD RAM單元地址與點陣碼顯示位置關(guān)系見表4-1 DD RAM地址表。
表4-1 DD RAM地址表
【XY地址計數(shù)器:】XY地址計數(shù)器為9位計數(shù)器,作為DD RAM的地址指針。其中高3位為X地址計數(shù)器,用作DD RAM的頁指針(0~7),僅用0~3;低6位為Y地址計數(shù)器,用作DD RAM的列指針(0~63)僅用0~60。
【Z地址計數(shù)器:】Z地址計數(shù)器為6位計數(shù)器,用于顯示行掃描同步,Z地址計數(shù)器具有循環(huán)計數(shù)功能,F(xiàn)M12232A復(fù)位后,Z地址計數(shù)器值為0。
(4)FM12232A 內(nèi)部指令格式描述。
FM12232A 有專用的指令集,共有14條指令,指令包括控制信號A 0、
和8位命令字,其格式描述如下: ⒈ 顯示開關(guān)控制指令(DISPLAY ON/OFF):
功能:該指令用于開/關(guān)屏幕顯示,指令執(zhí)行時不改變DD RAM中的內(nèi)容,也不影響內(nèi)部狀態(tài)。由D值確定,D = 0,開顯示(DISPLAY ON);D = 1,關(guān)顯示(DISPLAY OFF)。
開顯示指令碼:AFH;關(guān)顯示指令碼:AEH。如果在顯示關(guān)閉的狀態(tài)下選擇靜態(tài)驅(qū)動模式,那么內(nèi)部電路將處于安全模式。
⒉ 設(shè)置顯示起始行指令(Display start line set):
功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第1行。起始行由A 4 ~ A 0指定,范圍:00000 ~ 11111(0 ~ 31)?梢允0 ~ 31范圍內(nèi)任意一行。 行地址計數(shù)器具有循環(huán)計數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動加一。
起始行指令碼:C0H ~ DFH。
⒊ 設(shè)置顯示頁地址指令(Page Address set):
功能:該指令用于設(shè)置DD RAM頁地址。當(dāng)CPU要對DD RAM進行讀寫操作時,首先要設(shè)置頁地址和列地址。本指令不影響顯示。
DD RAM的頁地址,由A 1 A 0指定,范圍:00 ~ 11(0 ~ 3)。
頁地址指令碼:B8H ~ BBH。
⒋ 設(shè)置顯示列地址指令(Column Address set)(Y地址):
功能:該指令用于設(shè)置DD RAM中的列地址,列地址由A 6 ~ A 0指定,范圍:000000 ~ 1001111(0 ~ 79),列地址指令碼:00H ~ 4FH。當(dāng)CPU要對DD RAM進行讀、寫操作前,首先要設(shè)置頁地址和列地址。執(zhí)行讀、寫命令后,列地址會自動加1,直到達到50H才會停止,但頁地址不變。
⒌ 讀狀態(tài)指令(Status Read):
功能:該指令用于檢測模塊內(nèi)部狀態(tài)。
BUSY為忙信號位:BUSY = 1,內(nèi)部操作狀態(tài),禁止接收外部指令和數(shù)據(jù);
BUSY = 0,空閑狀態(tài),允許接收外部指令和數(shù)據(jù)。
ADC為顯示方向位:ADC = 0,反向顯示;ADC = 1,正向顯示。
ON/OFF顯示屏開/關(guān)狀態(tài)位:ON/OFF = 0,打開顯示屏,ON/OFF = 1,關(guān)閉顯示屏。
RST復(fù)位狀態(tài)位:RST = 0,正常工作;RST = 1,模塊內(nèi)部復(fù)位初始化狀態(tài),此時禁止接收外部指令或數(shù)據(jù)。
⒍ 寫顯示數(shù)據(jù)指令(Write Display Data):
功能:該指令將8位點陣碼數(shù)據(jù)寫入DD RAM對應(yīng)單元,D7 ~ D0為8位點陣碼數(shù)據(jù),指令執(zhí)行后,列(Y)地址自動加1,所以可以連續(xù)將點陣碼數(shù)據(jù)寫入DD RAM而不用重新設(shè)置列地址。
⒎ 讀顯示數(shù)據(jù)指令(Read Display Data):
功能:該指令讀出由頁地址和列地址指定的DD RAM單元內(nèi)8位點陣碼數(shù)據(jù),D7 ~ D0為DD RAM對應(yīng)單元的8位點陣碼。當(dāng)“讀-修改-寫”模式關(guān)閉時,每執(zhí)行一次讀指令,列地址自動加1,因此,可以連續(xù)從DD RAM讀出數(shù)據(jù)而不用設(shè)置列地址。
注意:設(shè)置完列地址后,首次讀顯示數(shù)據(jù)前必須執(zhí)行一次空的“讀顯示數(shù)據(jù)”操作。這是因為設(shè)置完列地址后,第一次讀數(shù)據(jù)時,出現(xiàn)在數(shù)據(jù)總線上的數(shù)據(jù)是列地址而不是要讀出的點陣碼數(shù)據(jù)。
⒏ 設(shè)置列序方向指令(ADC Select):
功能:該指令設(shè)置DD RAM中的列地址與段驅(qū)動輸出的對應(yīng)關(guān)系,由D值確定。
設(shè)置D = 0時,正向;D = 1時,反向。
列序正向顯示指令碼:A0H ;列序反向顯示指令碼:A1H。
⒐ 設(shè)置占空比指令(Duty Ratio Select):
功能:該指令設(shè)置驅(qū)動占空比,由D值確定。
設(shè)置D = 1時,占空比為1/32;D = 0時,占空比為1/16。
設(shè)置驅(qū)動占空比指令碼:A9H (1/32),A8H(1/16)。
⒑ 靜態(tài)驅(qū)動開/關(guān)設(shè)置指令(Static Drive On/Off Select):
功能:該指令設(shè)置驅(qū)動方式,由D值確定。
D = 0,正常驅(qū)動顯示;D = 1,靜態(tài)驅(qū)動顯示。 在靜態(tài)顯示時,執(zhí)行關(guān)、閉顯示指令,內(nèi)部電路將被置為安全模式。
設(shè)置正常驅(qū)動顯示指令碼:A4H ;設(shè)置靜態(tài)驅(qū)動顯示指令碼:A5H。
⒒ “讀-修改-寫”模式設(shè)置指令(Read Modify Write Select):
功能:執(zhí)行該指令以后,每執(zhí)行一次寫數(shù)據(jù)指令列地址自動加1;但執(zhí)行讀數(shù)據(jù)指令時列地址不會改變。這個狀態(tài)一直持續(xù)到執(zhí)行“END”指令。
注意:在“讀-修改-寫”模式下,除列地址設(shè)置指令之外,其他指令照常執(zhí)行。
設(shè)置“讀-修改-寫”模式指令碼:E0H。
⒓ END指令:
功能:該指令關(guān)閉“讀-修改-寫”模式,并把列地址指針恢復(fù)到打開“讀-修改-寫”模式前的位置。
設(shè)置END指令碼:EEH。
⒔ 復(fù)位指令(Reset):
功能:該指令使模塊內(nèi)部初始化。
初始化內(nèi)容:① 設(shè)置顯示初始行為第1行; ②頁地址設(shè)置為第3頁。
復(fù)位指令對顯示RAM沒有影響。設(shè)置復(fù)位指令碼:E2H。
⒕ 安全模式設(shè)置指令(Power Save set):
功能:該指令為雙命令。
設(shè)置安全模式(低功耗模式)的方法:① 關(guān)閉顯示(指令碼:AEH);② 打開靜態(tài)顯示(指令碼:A5H)。
關(guān)閉安全模式的方法:① 打開顯示(指令碼:AFH);② 關(guān)閉靜態(tài)顯示(指令碼:A4H)。
安全模式下的內(nèi)部狀態(tài): ① 停止LCD驅(qū)動;② Segment和Common輸出Vdd電平;③ 停止晶體震蕩并禁止外部時鐘輸入,晶振輸入OSC2引腳處于不確定狀態(tài);④ 顯示數(shù)據(jù)和內(nèi)部模式不變。
(5)FM12232A 外部引腳及工作參數(shù)。
FM12232A模塊外部引腳及功能描述見表4-2所示:
表4-2 FM12232A引腳及功能描述表
| | | |
| | | |
| | | |
| | | LCD外接負(fù)電壓(接10K可調(diào)電阻到Vss) |
| | | 數(shù)據(jù)/命令選擇信號, A0=“H”,數(shù)據(jù)線DB7~ DB0為顯示數(shù)據(jù)信號 A0=“L”,數(shù)據(jù)線DB7~ DB0為命令字/狀態(tài)字 |
| | | |
| | | |
| | | 讀/寫選通信號,  =“L”,寫操作 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
FM12232A模塊特性參數(shù)描述如表4-3所示:
表4-3 FM12232A特性參數(shù)描述表
|
| | | |
|
| | | |
|
| | | |
| | |
| | | | | |
| |
| | | |
| | |
| | |
| | |
|
| |
| | |
| | |
| |
|
| | |
| |
|
| | |
| | |
| | |
| |
| | | |
|
| | | | | | |
A0、  | | | | | |
|
| | | | |
| | | | |
| | | | | |
|
| | | | |
| | | | | |
|
| | | | |
| | | | | |
|
| | | |
|
| | | | |
|
(6)FM12232A LCD顯示器接口。
FM12232A模塊接口信號包括:8位三態(tài)數(shù)據(jù)總線D7 ~ D0、片選信號
和
、讀寫控制信號
、數(shù)據(jù)/命令選擇信號A0等,ZY15MCU12BC2單片機實驗開發(fā)裝置中單片機通過可編程并行接口芯片8255A實現(xiàn)對FM12232A模塊的顯示驅(qū)動控制,圖4-21為FM12232A與8255A的接口電路圖。 根據(jù)圖4-21電路可知,單片機通過可編程并行接口芯片8255A的PA和PC端口控制FM12232A工作。PA口接FM12232A數(shù)據(jù)總線DB7~DB0(圖中為D7~D0),輸出顯示數(shù)據(jù)點陣碼以及讀、寫FM12232A狀態(tài)/命令字;PC口接FM12232A相關(guān)控制信號:PC2接
引腳:PC2 =“0”,寫操作。PC6、PC3接片選信號
和
引腳:PC6 =“0”,PC3 =“0”,控制2片SED1520驅(qū)動左、右顯示屏顯示。PC7接A0引腳:PC7 =“1”,數(shù)據(jù)線DB7~ DB0為顯示數(shù)據(jù)信號; 圖4-21 FM12232A與8255A接口電路圖
PC7 =“0”,數(shù)據(jù)線DB7~ DB0為命令字/狀態(tài)字。PC4接RES引腳:PC4 =“1”,F(xiàn)M12232A外部復(fù)位操作。因此,設(shè)置8255A工作在方式1,PA、PC端口為輸出口,8255A工作方式字為#80H,由實驗箱電路圖4.2可知,8255A芯片A口、B口、C口和命令口地址分別為:BFFCH、BFFDH、BFFEH和BFFFH。
FM12232A LCD顯示器接口軟件初始化:
根據(jù)上述介紹,F(xiàn)M12232A初始化操作步驟如下:
MOV DPTR,#0BFFFH ;8255A控制端口
MOV A,#80H ;寫入方式字:#80H,
MOVX @DPTR,A
② 設(shè)置FM12232A 外部復(fù)位操作,引腳RES為高電平,PC4 =“1”,
MOV A,#0 000100 1H ;PC4 =“1”,RES =“1”,
MOVX @DPTR,A
③ 設(shè)置FM12232A 引腳A0 為低電平,PC7 =“0”,
MOV A,#0 000111 0H ;PC7 =“0”,A0 =“0”,
MOVX @DPTR,A
④ 設(shè)置
和
引腳低電平,PC6 =“0”,PC3 =“0”, MOV DPTR,#0BFFFH ;PC6和PC3送脈沖信號
MOV A,#0 000110 1H ;PC6 =“1”,
=“1”, MOVX @DPTR,A
NOP
MOV A,#0 000110 0H ;PC6 =“0”,
=“0”, MOVX @DPTR,A
NOP
MOV A,# 0 000110 1H ;PC6 =“1”,
=“1”, MOVX @DPTR,A
NOP
MOV A,#0 000011 1H ;PC3 =“1”,
=“1”, MOVX @DPTR,A
NOP
MOV A,#0 000110 0H ;PC6 =“0”,
=“0”, MOVX @DPTR,A
NOP
MOV A,#0 000011 0H ;PC3 =“0”,
=“0”, MOVX @DPTR,A
NOP
⑤ 8255A的PA口寫入復(fù)位指令碼:#E2H
MOV DPTR,#0BFFCH ;8255A 芯片PA端口
MOV A,#0E2H ;寫入復(fù)位指令碼:#E2H,
MOVX @DPTR,A
⑥ 8255A的PA口寫入開顯示指令碼:#AFH
重復(fù)執(zhí)行③、④步操作
MOV A,#0AFH ;寫入開顯示指令碼:#AFH
MOVX @DPTR,A
⑦ 清屏操作
MOV R4,#04H ;顯示屏有4頁
MOV R3,#00H ;設(shè)置頁地址初值
LOOP: MOV COM_BUF,#0B8H ; 頁地址字為B8H
MOV A,COM_BUF
ORL A,R3 ;修改頁地址
MOV COM_BUF,A
LCALL WLIQ
;設(shè)置A0引腳低電平,
和
引腳低電平, ;向8255A的PA口寫入頁地址命令字B8H,
MOV COM_BUF,#00H ;設(shè)置列地址初值為0
LCALL WLIQ
;設(shè)置A0引腳低電平,
和
引腳低電平, ;向8255A的PA口寫入列地址命令字00H,
MOV 43H,#3dH
NET1: MOV DAT_BUF,#00H ;清屏點陣數(shù)據(jù)全部為00H
LCALL WDAT
;設(shè)置A0引腳高電平,
和
引腳低電平, ;向8255A的PA口寫入清屏數(shù)據(jù)00H,
DJNZ 43H,NET1 ;延時
INC R3 ;指向下一頁
DJNZ R4,LOOP
編寫實驗程序,實現(xiàn)單片機控制FM12232A顯示字符及漢字。
將漢字“湖北眾友科技公司,感謝您使用該產(chǎn)品”顯示在FM12232A液晶顯示屏上。
(7)實驗程序流程圖如圖4-22所示。
圖4-22 FM12232A實驗程序流程圖
(8)實驗程序(略)。ZY12232.ASM。
(9)在μVision3開發(fā)平臺上輸入程序,編譯、連接程序。
(10)調(diào)試、運行程序。
⒈ 打開仿真器與實驗箱電源,初始化8255A,設(shè)置8255A工作在方式0,PA、PC端口為輸出口,向8255A控制口寫方式字#80H。
⒉ 測試8255A的PC口狀態(tài),向8255A控制口寫C口置位/復(fù)位字:
#0FH ~ #00H,檢查PC7 ~ PC0狀態(tài)與寫入控制字是否一致,如有故障,應(yīng)及時排除。
⒊ 將程序斷點設(shè)置在BK1、BK2處,當(dāng)程序運行后在BK1處暫停時,液晶屏應(yīng)為全屏暗,繼續(xù)運行至BK2處時,屏幕顯示“湖北眾友科技公司,感謝您使用該產(chǎn)品”。
⒋ 改變字庫表點陣碼,顯示其他漢字。
⒌ 改變頁地址,移動顯示屏漢字位置。
(11)實驗結(jié)束,拆除接線,將一切整理復(fù)原。
4. 實驗預(yù)習(xí)要求(1)認(rèn)真閱讀、理解實驗指導(dǎo)書并領(lǐng)會本次實驗?zāi)康囊笈c實驗內(nèi)容。
(2)仔細(xì)閱讀FM12232A模塊控制原理、結(jié)構(gòu)、引腳、接口信號及內(nèi)部指令字等內(nèi)容。
(3)仔細(xì)閱讀FM12232A顯示實驗程序。
5. 實驗報告要求(1)按實驗順序,記錄并分析實驗數(shù)據(jù)。
(2)實驗程序框圖,實驗程序清單。
(3)寫出實驗結(jié)果、實驗體會及對實驗的改進意見。
word格式的選題資料下載地址:
http://www.torrancerestoration.com/bbs/dpj-93744-1.html