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