液晶顯示控制電路與程序_第1頁(yè)
液晶顯示控制電路與程序_第2頁(yè)
液晶顯示控制電路與程序_第3頁(yè)
液晶顯示控制電路與程序_第4頁(yè)
液晶顯示控制電路與程序_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄一、 選題分析1二、 液晶顯示控制電路與程序方案設(shè)計(jì)22.1系統(tǒng)設(shè)計(jì)思路與框圖22.2框圖模塊功能描述及技術(shù)指標(biāo)分析32.3 電路原理圖42.4 相關(guān)芯片介紹52.5程序主流程圖以及子流程圖7三、ST7920指令說(shuō)明10四、具體功能程序及硬件實(shí)現(xiàn)144.1主要功能程序?qū)崿F(xiàn)144.2實(shí)驗(yàn)步驟174.3硬件電路實(shí)現(xiàn)與顯示結(jié)果194.4試驗(yàn)中遇到的問(wèn)題20五、總結(jié)與體會(huì)21參考文獻(xiàn)22附錄2326 一、 選題分析題目:液晶顯示控制電路與程序設(shè)計(jì)內(nèi)容:完成單片機(jī)液晶接口的電路和程序設(shè)計(jì),實(shí)現(xiàn)文本顯示功能。(1)液晶顯示器為圖形點(diǎn)陣液晶,型號(hào)YM12864R,控制芯片為ST7920(2)正確連接液晶

2、顯示器與單片機(jī)(3)編寫液晶顯示控制程序,顯示如下內(nèi)容:分析:隨著計(jì)算機(jī)及相關(guān)的微電子光電子技術(shù)的迅猛發(fā)展,液晶顯示模塊在各種場(chǎng)合得到了越來(lái)越廣泛的應(yīng)用。目前,液晶顯示主要有段式和點(diǎn)陣式兩種,其中,點(diǎn)陣式更為廣泛,其又可分為文本型顯示和圖形型顯示。YM12864R作為漢字圖形點(diǎn)陣液晶顯示模塊,可以顯示漢字及圖形,內(nèi)置8192 個(gè)中文漢字、128 個(gè)字符及64X256點(diǎn)陣顯示RAM,另外還提供四組16×16 點(diǎn)的自定義圖像空間。YM12864R采用的控制芯片為ST7920,它是一種內(nèi)置128×64 漢字圖形點(diǎn)陣的液晶顯示控制模塊, ST7920 系列芯片由于內(nèi)置了漢字庫(kù)而無(wú)須

3、人工取字模,在程序控制上簡(jiǎn)潔明。為完成YM12864R控制和數(shù)據(jù)傳輸,單片機(jī)最小系統(tǒng)選擇AT89S51,因?yàn)锳T89S51片內(nèi)ROM全都采用Flash ROM,具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。綜上,硬件電路搭建可由YM12864R 液晶顯示電路、單片機(jī)的最小系統(tǒng)AT89S51、及外圍電路構(gòu)成。二、 液晶顯示控制電路與程序方案設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)思路與框圖液晶顯示器YM12864R 的控制器ST7920 可以顯示字母、數(shù)字符號(hào)、中文字型及自定圖形顯示,只要一個(gè)最小的微處理系統(tǒng),將液晶顯示

4、模塊的接口作為I/O 設(shè)備直接與之連接,就可以進(jìn)行控制液晶顯示器和數(shù)據(jù)傳輸,從而達(dá)到理想的顯示效果。使用P3 口給液晶顯示器提供控制信號(hào),P0 口給液晶顯示器傳送數(shù)據(jù)。YM12864R 液晶顯示器的控制信號(hào)有PSB、RS、R/W、E,其中RS、R/W、E分別對(duì)應(yīng)接在AT89S51 的P3.0、P3.1、P3.2、P2.3 上,在本次設(shè)計(jì)中采用并行接口,故PSB接高電平,而8位數(shù)據(jù)口DB0 DB7對(duì)應(yīng)接在P0 口上。背光燈的電源正極、液晶顯示器模塊的電源正極以及LCD 驅(qū)動(dòng)電壓輸入端都接在+5V 的穩(wěn)壓電源上。背光燈負(fù)極和模塊的電源負(fù)極統(tǒng)一接地。液晶顯示器模塊的復(fù)位腳連接開(kāi)關(guān)按紐與地相連。即可實(shí)

5、現(xiàn)單片機(jī)對(duì)液晶顯示漢字的控制。系統(tǒng)設(shè)計(jì)圖框如下圖2.1所示,主要由單片機(jī)的最小系統(tǒng)AT89S51、YM12864R 液晶顯示電路及外圍電路構(gòu)成。圖2.1 系統(tǒng)設(shè)計(jì)框圖2.2框圖模塊功能描述及技術(shù)指標(biāo)分析時(shí)鐘振蕩器模塊:利用晶體本身的特性,可以利用晶振與電容搭建振蕩電路與AT89S51引腳XTAL1及XTAL2相連,向單片機(jī)提供一個(gè)頻率穩(wěn)定度較高的時(shí)鐘脈沖,具體連接見(jiàn)原理圖。此外,采用24M晶振獲得較高的刷新率,可使屏幕顯示更穩(wěn)定。開(kāi)關(guān)復(fù)位電路模塊:AT89S51 的復(fù)位引腳RST 外接開(kāi)關(guān)復(fù)位電路,當(dāng)電路工作后,閉合開(kāi)關(guān),只要在RST 引腳上出現(xiàn)2 個(gè)機(jī)器周期以上的高電平,單片機(jī)即可復(fù)位。若R

6、ST始終保持高電平,則可對(duì)AT89S51 循環(huán)復(fù)位。開(kāi)關(guān)復(fù)位電路的組成如原理圖電阻R2和開(kāi)關(guān)S1串聯(lián)后與電容C3并聯(lián),然后與R1串聯(lián)對(duì)+5V電壓進(jìn)行分壓,R1一端接地另一端接復(fù)位信號(hào)引腳RST。AT89S51模塊:作為核心組成部件之一,ATS8951單片機(jī)給YM12864R液晶顯示提供控制信號(hào)和進(jìn)行數(shù)據(jù)傳輸,從整體上實(shí)現(xiàn)液晶顯示控制。AT89S51片內(nèi)ROM全都采用Flash ROM,具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。AT89S51片內(nèi)具有計(jì)算機(jī)正常運(yùn)行所必需的部件,片外有很多供擴(kuò)展用

7、的(總線,并行和串行的輸入/輸出)管腳,便于擴(kuò)展,很容易組成一定規(guī)模的計(jì)算機(jī)應(yīng)用系統(tǒng)。具有豐富的控制指令,控制功能強(qiáng)。此外其體積小,功耗低,價(jià)格便宜。YM12864R液晶顯示模塊:YM12864R液晶顯示模塊,在其控制芯片ST7920調(diào)控下用來(lái)顯示最終結(jié)果。除顯示液晶塊外,還包含兩個(gè)重要外圍電路開(kāi)關(guān)復(fù)位電路及電源控制電路,具體如原理圖所示。YM12684的復(fù)位引腳RET 外接開(kāi)關(guān)復(fù)位電路,當(dāng)開(kāi)關(guān)閉合時(shí),RET引腳接地,模塊復(fù)位;當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),復(fù)位信號(hào)無(wú)效。此外,外接電源電路利用滑動(dòng)變阻器分壓分別給YM12864R的電源地引腳VSS和LCD驅(qū)動(dòng)電壓輸入端引腳V0供電。2.3 電路原理圖電路原理圖

8、如圖2.2所示,其中單片機(jī)AT89S51引腳P3.0-P3.2與YM12864R中RS、R/W、E的連接在圖中以網(wǎng)絡(luò)標(biāo)簽的形式給出。此外,相較于系統(tǒng)設(shè)計(jì)框圖在液晶顯示模塊控制芯片的調(diào)控上,對(duì)復(fù)位引腳處以簡(jiǎn)單開(kāi)關(guān)復(fù)位電路控制,而電壓地VSS及LCD的操作電壓以變阻器控制。外接電源電路時(shí)鐘振蕩器開(kāi)關(guān)復(fù)位電路圖2.2 電路原理圖2.4 相關(guān)芯片介紹AT89S51:AT89S51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼

9、容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。AT89S51引腳圖如圖2.3,其內(nèi)部I/O部件包括:1、 四個(gè)8位通用I/O端口,對(duì)應(yīng)引腳P0、P1、P2和P3; 2、 兩個(gè)16位定時(shí)計(jì)數(shù)器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一個(gè)串行通信接口;(SCON,SBUF)4、 一個(gè)中斷控制器;(IE,IP)圖2.3 AT89S51引腳圖ST7920:【4】ST7920是臺(tái)灣矽創(chuàng)電子公司生產(chǎn)的中文圖形控制芯片,它是一種內(nèi)置128*

10、64-12漢字圖形點(diǎn)陣的液晶顯示控制模塊,用于顯示漢字及圖形。該芯片共內(nèi)置8192個(gè)中文漢字(16*16點(diǎn)陣)、128個(gè)字符的ASCII字符庫(kù)(8*16點(diǎn)陣)及64*256點(diǎn)陣顯示RAM(GDRAM)。為了能夠簡(jiǎn)單、有效地顯示漢字和圖形,該模塊內(nèi)部設(shè)計(jì)有2MB的中文字型CGROM和64*256點(diǎn)陣的GDRAM繪圖區(qū)域;同時(shí),該模塊還提供有4組可編程控制的16*16點(diǎn)陣造字空間;除此之外,為了適應(yīng)多種微處理器和單片機(jī)接口的需要,該模塊還提供了4位并行、8位并行、2線串行以及3線串行等多種接口方式。利用上述功能可方便地實(shí)現(xiàn)漢字、ASCII碼、點(diǎn)陣圖形、自造字體的同屏顯示,所有這些功能(包括顯示RA

11、M、字符產(chǎn)生器以及液晶驅(qū)動(dòng)電路和控制器)都包含在集成電路芯片里,因此,只要一個(gè)最基本的微處理系統(tǒng)就可以通過(guò)ST7920芯片來(lái)控制其它的芯片。ST7920的主要技術(shù)參數(shù)和顯示特性如下:電源:VDD (2.75.5V)5V(內(nèi)置升壓電路,一般無(wú)需負(fù)壓);功耗:正常模式:450A,睡眠模式:3A,低功耗模式:30A;顯示內(nèi)容:128列*64行;顯示顏色:黃綠;顯示角度:6:00鐘直視;LCD類型:STN;與MCU接口:8位并行/3位串行;配置有LED背光顯示功能;帶有自動(dòng)啟動(dòng)復(fù)位按鈕(RESET);在對(duì)ST7920讀或?qū)憰r(shí),會(huì)用到兩個(gè)位的寄存器,一個(gè)是數(shù)據(jù)寄存器DR,另一個(gè)是指令寄存器IR。通過(guò)數(shù)據(jù)

12、寄存器DR可以存取DDRAM、CGRAM、CGROM及IRAM的值。待存取的目標(biāo)RAM的地址可通過(guò)命令來(lái)選擇,每次數(shù)據(jù)寄存器DR的操作應(yīng)以上次選擇的目標(biāo)RAM為主體來(lái)進(jìn)行讀出或?qū)懭?。通過(guò)RS和RW的狀態(tài)可以選擇不同的讀寫模式,具體配置方法如表1所列。表1 ST7920的寄存器讀寫狀態(tài)RSRW功能說(shuō)明低電平0低電平0MPU 寫指令到指令寄存器IR低電平0高電平1讀出忙標(biāo)志及地址計(jì)數(shù)器的狀態(tài)高電平1低電平0MPU 寫指令到數(shù)據(jù)寄存器DR高電平1高電平1MPU從數(shù)據(jù)寄存器DR 讀出指令2.5程序主流程圖以及子流程圖整個(gè)程序除主函數(shù)外包含以下幾個(gè)子函數(shù): ST7920初始化、寫指令、寫數(shù)據(jù)、漢字顯示、

13、延時(shí)、清屏。ST7920初始化子函數(shù)用來(lái)完成液晶顯示模塊的初始化操作并設(shè)置顯示的方式及必要的參數(shù),為顯示操作做好必要的準(zhǔn)備;寫指令函數(shù)向指令寄存器寫入不同的命令從而控制液晶顯示芯片的顯示。寫數(shù)據(jù)函數(shù)向數(shù)據(jù)寄存器寫入數(shù)據(jù)從而在液晶顯示屏上顯示相應(yīng)的或字符字符或此外寫指令操作與寫數(shù)據(jù)操作的過(guò)程基本一致,區(qū)別在于寫狀態(tài)對(duì)RS及RW的狀態(tài)選擇不同;漢字顯示函數(shù)包含設(shè)置所要顯示的漢字或字符的顯示的地址,向顯示RAM(DDRAM)寫入所要顯示漢字區(qū)碼的高八位及低八位三個(gè)操作,從而實(shí)現(xiàn)在液晶屏上顯示字符的功能;延時(shí)函數(shù)進(jìn)行一定時(shí)間的等待,代替判斷忙標(biāo)志函數(shù),使得上一個(gè)指令可以執(zhí)行完畢,液晶屏處于空閑狀態(tài),以

14、便于執(zhí)行下一條指令;清屏函數(shù)用來(lái)清除屏幕,進(jìn)行新的顯示;漢字顯示主程序包含初始化和調(diào)用漢字顯示函數(shù)顯示漢字兩個(gè)操作,其完成整個(gè)漢字送液晶顯示的調(diào)度。漢字顯示子函數(shù)流程、ST7920初始化、寫指令、寫數(shù)據(jù)子函數(shù)流程分別如圖2.4、圖2.5、圖2.6及圖2.7所示。其中,圖2.6流程向ST7920寫各種操作指令,圖2.6流程向ST7920寫各種操作數(shù)據(jù),區(qū)別在于寫狀態(tài)對(duì)RS及RW的狀態(tài)選擇不同。延時(shí)子函數(shù)流程如圖2.8所示,圖2.9為漢字顯示主流程,其完成整個(gè)漢字送液晶顯示的調(diào)度。 圖2.4 漢字顯示子函數(shù) 圖2.5 ST7920初始化 圖2.6 寫指令子函數(shù)圖2.7 寫數(shù)據(jù)子函數(shù) 圖2.8 延時(shí)

15、子函數(shù)圖2.9 漢字顯示主流程三、ST7920指令說(shuō)明ST7920的指令集包括基本指令和擴(kuò)充指令,其中基本指令有11條,擴(kuò)充指令有7條。每一個(gè)指令的長(zhǎng)度都為8位。16×8點(diǎn)陣的ASCII字符代碼也是8位。但是16×16點(diǎn)陣中文字符的代碼為16位,必須分為兩次傳送,先傳送高8位,再傳送低8位。具體指令如下:1、清除顯示CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000000001功能:清除顯示屏幕,把DDRAM 位址計(jì)數(shù)器調(diào)整為“00H”。2、位址歸位CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0000000001 X功能:把DD

16、RAM 位址計(jì)數(shù)器調(diào)整為“00H”,游標(biāo)回原點(diǎn),該功能不影響顯示DDRAM。3、進(jìn)入設(shè)定點(diǎn)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB000000001I/DS功能:把DDRAM 位址計(jì)數(shù)器調(diào)整為“00H”,游標(biāo)回原點(diǎn),該功能不影響顯示DDRAM 功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。顯示起始行是由Z 地址計(jì)數(shù)器控制的,該命令自動(dòng)將A0-A5 位地址送入Z 地址計(jì)數(shù)器,起始地址可以是0-63 范圍內(nèi)任意一行。Z 地址計(jì)數(shù)器具有循環(huán)計(jì)數(shù)功能,用于顯示行掃描同步,當(dāng)掃描完一行后自動(dòng)加一。4、顯示狀態(tài) 開(kāi)/關(guān)CODE:RWRSDB7DB6DB5DB4DB3DB2D

17、B1DB00000001DCB功能: D=1;整體顯示ON C=1;游標(biāo)ON B=1;游標(biāo)位置ON。5、游標(biāo)或顯示移位控制CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/LXX功能:設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位:這個(gè)指令并不改變DDRAM 的內(nèi)容。6、功能設(shè)定CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00001DLX0REXX功能:DL=1(必須設(shè)為1) RE=1;擴(kuò)充指令集動(dòng)作 RE=0:基本指令集動(dòng)作。7、設(shè)定CGRAM 位址CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB00001AC5AC4AC3AC

18、2AC1AC0功能:設(shè)定CGRAM 位址到位址計(jì)數(shù)器(AC)。8、設(shè)定DDRAM 位址CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0功能:設(shè)定DDRAM 位址到位址計(jì)數(shù)器(AC)。9、讀取忙碌狀態(tài)(BF)和位址。CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB001BFAC6AC5AC4AC3AC2AC1AC0功能:讀取忙碌狀態(tài)(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出位址計(jì)數(shù)器(AC)的值。10、寫資料到RAMCODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB010D7D6D5D4D3D

19、2D1D0功能:寫入資料到內(nèi)部的RAM(DDRAM/CGRAM/TRAM/GDRAM)。11、讀出RAM 的值CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB011D7D6D5D4D3D2D1D0功能:從內(nèi)部RAM 讀取資料(DDRAM/CGRAM/TRAM/GDRAM)。12、 待命模式(12H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000000001功能:進(jìn)入待命模式,執(zhí)行其他命令都可終止待命模式。13、卷動(dòng)位址或IRAM 位址選擇(13H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0000000001SR功能:SR=1

20、;允許輸入卷動(dòng)位址 SR=0;允許輸入IRAM 位址。14、反白選擇(14H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB000000001R1R0功能:選擇4 行中的任一行作反白顯示,并可決定反白的與否。15、睡眠模式(015H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000001SLXX功能:SL=1;脫離睡眠模式 SL=0;進(jìn)入睡眠模式。16、擴(kuò)充功能設(shè)定(016H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0000011X1REG0功能:RE=1;擴(kuò)充指令集動(dòng)作 RE=0;基本指令集動(dòng)作 G=1;繪圖顯示ON G

21、=0;繪圖顯示OFF。17、設(shè)定IRAM 位址或卷動(dòng)位址(017H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00001AC5AC4AC3AC2AC1AC0功能:SR=1;AC5AC0 為垂直卷動(dòng)位址 SR=0;AC3AC0 寫ICONRAM 位。址18、設(shè)定繪圖RAM 位址(018H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0功能:設(shè)定GDRAM 位址到位址計(jì)數(shù)器(AC)。當(dāng)ST7920在接收指令前,MCU必須先確認(rèn)ST7920處于空閑狀態(tài)。即讀取BF=0,才能接收新的指令;如果在送出一條指令前不

22、檢查BF狀態(tài),則需要延時(shí)一段時(shí)間,確保上一條指令執(zhí)行完畢。"RE"是基本指令集與擴(kuò)充指令集的選擇控制位,當(dāng)更改"RE"的狀態(tài)后,后續(xù)指令維持在最后狀態(tài)。除非再次更改"RE"狀態(tài),否則使用相同指令集時(shí),無(wú)需要重新設(shè)置"RE"。四、具體功能程序及硬件實(shí)現(xiàn)4.1主要功能程序?qū)崿F(xiàn)Ø 將要顯示的漢字及字符在YM12864R數(shù)據(jù)手冊(cè)中一一查出,定義于顯示數(shù)據(jù)數(shù)組以便用于調(diào)用顯示。具體如下:unsigned char mx32 2= /定義漢字字符數(shù)組0x20,0x20, /第一行0xb3,0xa3,0xca,0xec

23、,0xc0,0xed,0xb9,0xa4,0xd1,0xa7,0xd4,0xba, /常熟理工學(xué)院0x20,0x20, 0x20,0x20,0x20,0x20, /第二行顯示數(shù)據(jù)0xbf,0xce,0xb3,0xcc,0xc9,0xe8,0xbc,0xc6, /課程設(shè)計(jì)0x20,0x20,0x20,0x20,0x20,0x20, /第三行顯示數(shù)據(jù)0xd7,0xf7,0xd5,0xdf,0xa1,0xc3,0x20,0x20,0xc5,0xa3,0xcc,0xce, /作者: 牛濤0x20,0x20, 0x20,0x20, /第四行顯示數(shù)據(jù)0xd5,0xc5,0xc6,0xf4,0xcb,0xb

24、3,0x20,0x20,0xd5,0xd4,0xbd,0xa8, /張啟順 趙建0x20,0x20;Ø 通過(guò)改變RS和RW的狀態(tài)選擇不同的讀寫模式,定義寫指令及寫數(shù)據(jù)子函數(shù),以便調(diào)用來(lái)完成數(shù)據(jù)在液晶顯示器上的顯示,其中,通過(guò)延時(shí)調(diào)用來(lái)避開(kāi)向液晶送數(shù)據(jù)的忙狀態(tài)。子函數(shù)定義如下:void wcom(unsigned char d) /寫指令子函數(shù) delay(2); RW=0;/寫選通 RS=0;/寫指令 P0=d;/將要寫的數(shù)據(jù)送給P1口 E=1;/使能有效 E=0;/關(guān)閉使能信號(hào) delay(10); void dat(unsigned char d) /寫數(shù)據(jù)子函數(shù) delay(2

25、); RS=1; /數(shù)據(jù)操作 RW=0; /寫選通 P0=d; /將要寫的數(shù)據(jù)送給P1口 E=1; /使能有效 E=0; /關(guān)閉使能信號(hào) delay(10); Ø 清屏以便重新顯示: void clearlcd()/清屏 wcom(0x01);/清除顯示 Ø 對(duì)硬件端口及液晶顯示器初始化: void init() /初始化子函數(shù) E=0; /關(guān)閉使能信號(hào) wcom(0x38); /功能設(shè)定 wcom(0x08); /關(guān)顯示指令 wcom(0x06); /游標(biāo)右移 wcom(0x0c); /開(kāi)顯示指令 clearlcd();/清屏 Ø 定義漢字顯示子程序,以便調(diào)用向

26、液晶顯示器送顯示數(shù)據(jù): void hanzi (unsigned char w, unsigned char wb1,unsigned char wb2 ) wcom(w);/設(shè)置起始地址 dat(wb1);/數(shù)據(jù)送液晶顯示 dat(wb2); Ø 編寫主函數(shù)以完成最終整個(gè)實(shí)現(xiàn)程序過(guò)程的調(diào)度: void main() int i; init(); /調(diào)用初始化函數(shù)進(jìn)行初始化操作 while(1) for(i=0;i<32;i+) hanzi(addri,mxi0,mxi1 );/調(diào)用漢字顯示,向液晶送數(shù)據(jù)顯示 4.2實(shí)驗(yàn)步驟Ø 完成硬件電路的設(shè)計(jì)及焊接Ø 完

27、成軟件的設(shè)計(jì)并編寫具體程序1、新建工程 在菜單Project-New Project中新建工程my1.uv2;2、選擇CPU 根據(jù)對(duì)話框選擇CPU類型(公司、型號(hào)等)本次課程設(shè)計(jì)采用 ATMEL公司的AT89S51,點(diǎn)擊確定按鈕后出現(xiàn)如下對(duì)話框,選擇“否”。3、新建文件 點(diǎn)擊File-New,新建文件,并保存為lcm.c;4、添加源文件 點(diǎn)擊Project-Window中Target1文件夾右邊的“”號(hào),顯示子文件夾Source Group 1,選中Source Group 1文件夾并點(diǎn)擊鼠標(biāo)“右鍵”,出現(xiàn)快捷菜單。點(diǎn)擊Add Files To Group Source Group 1,在對(duì)話

28、框中完成源文件向工程的添加。 添加完成后,在Project Workspace窗口的Source Group 1項(xiàng)前多了“”號(hào),點(diǎn)擊“”號(hào)即可看到所添加的文件“l(fā)cm.c”5、編譯 用快捷按鈕Build target對(duì)工程進(jìn)行編譯,在Output Window中有編譯提示信息,可根據(jù)該信息對(duì)源文件進(jìn)行修改。6、軟件仿真 點(diǎn)擊Strat/Stop Debug Session,可對(duì)程序進(jìn)行設(shè)置斷點(diǎn)、單步、連續(xù)等執(zhí)行操作。7、HEX文件設(shè)置 選中Target1文件夾并點(diǎn)擊鼠標(biāo)“右鍵”,選擇快捷菜單中的Option for Target Target 1。在“Output”對(duì)話框中選中復(fù)選框(Crea

29、te HEX File),即可使工程在編譯時(shí)生成緊湊的機(jī)器碼(my1.hex)。 Ø 調(diào)試 調(diào)試主要分為硬件調(diào)試和軟件調(diào)試: 硬件調(diào)試:主要是檢測(cè)硬件電路是否有短路、斷路、虛焊等。在焊接電路板的時(shí)候,應(yīng)該從最基本的最小系統(tǒng)開(kāi)始,分模塊,逐個(gè)進(jìn)行焊接測(cè)試。在對(duì)各個(gè)硬件模塊進(jìn)行測(cè)試時(shí),要保證軟件正確的情況下去測(cè)試硬件,要不然發(fā)生錯(cuò)誤時(shí),不知道到底是哪一方出錯(cuò)了。當(dāng)然,在設(shè)計(jì)的過(guò)程中也存在著失誤和不足。具體步驟及測(cè)試結(jié)果如下:1、檢查電源與地線是否全部連接上,用萬(wàn)用表對(duì)照電路原理圖測(cè)試各導(dǎo)線是否完全連接,測(cè)試結(jié)果所有連接線都已連接好;2、單片機(jī)的晶振是否起振,用示波器觀察波形,測(cè)試結(jié)果波形

30、都很好;3、檢查各芯片的功能是否正常,檢測(cè)按鍵的導(dǎo)通情況,測(cè)試結(jié)果正常。軟件調(diào)試:軟件部分是先參考書(shū)上的例子,然后自己根據(jù)硬件電路寫程序,由于以前所學(xué)是C語(yǔ)言,所以這個(gè)系統(tǒng)在編寫程序過(guò)程中都采用C語(yǔ)言編寫。剛剛開(kāi)始,編寫不會(huì)一次性通過(guò),經(jīng)過(guò)仔細(xì)分析修改最后編譯成功。軟件調(diào)試主要是程序調(diào)試,將整個(gè)顯示程序按照實(shí)現(xiàn)功能分為各子模塊進(jìn)行調(diào)試。 Ø ISPlay 1.3燒寫軟件使用 1、ISP JTAG硬件連接 將ISP JTAG分別與并口和目標(biāo)板連接。2、ISPlay 1.3 JTAG類型設(shè)置(BYTEBLASTER II JTAG) (1)、主界面 點(diǎn)擊 “ISPlay 1.3”快捷圖標(biāo)

31、,進(jìn)入ISPlay 1.3軟件界面:(2)、 設(shè)置 點(diǎn)擊程序界面左下角的“程序設(shè)置”按鈕,彈出“設(shè)置”對(duì)話框,點(diǎn)擊“<<”按鈕,選擇Alter_BYTEBLASTLE類型JTAG配置文件后打開(kāi)。按“確定”按鈕后回到ISPlay1.3主界面,退出ISPlay 1.3程序后重啟設(shè)置才有效。3、ISPlay 1.3使用 重啟ISPlay 1.3后即可對(duì)AT89S51/52單片機(jī)進(jìn)行在系統(tǒng)(ISP)編程。(1)、選擇芯片(AT89S51/AT89S52),按檢測(cè)按鈕,會(huì)提示檢測(cè)信息。(2)、打開(kāi)“文件”按鈕,載入所需燒寫的*.hex文件。 (3)、先“擦除”芯片原數(shù)據(jù),后“寫”數(shù)據(jù),寫完后

32、可“讀”、“校驗(yàn)”數(shù)據(jù)。 也可以在“設(shè)置”對(duì)話框中設(shè)定自動(dòng)執(zhí)行流程。4.3硬件電路實(shí)現(xiàn)與顯示結(jié)果硬件電路連接及液晶顯示結(jié)果如下圖4.1及圖4.2所示:圖4.1 硬件電路實(shí)物連接圖4.2 液晶結(jié)果顯示4.4試驗(yàn)中遇到的問(wèn)題本次試驗(yàn)中遇到了很多問(wèn)題,首先是對(duì)芯片很陌生,不熟悉其工作原理、及指令,這個(gè)問(wèn)題,通過(guò)查閱大量圖書(shū)、上網(wǎng)搜索相關(guān)資料以及向老師請(qǐng)教,很容易就解決了。其次在編譯程序時(shí)出現(xiàn)了不可打印的字符,改了好長(zhǎng)時(shí)間也沒(méi)蓋好,最后請(qǐng)教老師才搞明白,原來(lái)有一部分無(wú)用字符隱藏在命令后面也不顯示,從而影響程序。然后在焊接完電路和編完程序后寫入芯片時(shí),液晶顯示屏芯片無(wú)任何顯示,我們從軟件和硬件兩個(gè)方面進(jìn)

33、行檢查:首先用Keil uVision3自身的調(diào)試功能進(jìn)行調(diào)試,發(fā)現(xiàn)程序在判斷忙標(biāo)志函數(shù)出不來(lái),陷入死循環(huán),鑒于此我們用延時(shí)函數(shù)代替判斷忙標(biāo)志函數(shù);然后繼續(xù)調(diào)試,程序可以完全執(zhí)行而無(wú)任何錯(cuò)誤。修改后再把程序?qū)懭胄酒?,液晶顯示屏還是無(wú)任何顯示,于是我們從硬件方面檢查:我們把程序下載到另外一組的液晶顯示屏中發(fā)現(xiàn),液晶顯示屏可以顯示,實(shí)現(xiàn)預(yù)定義的功能,這就證明了我們的程序無(wú)誤,從而液晶無(wú)顯示是由硬件電路造成的;我們換了一塊新的液晶屏,不改變電路及端口的連接,發(fā)現(xiàn)液晶顯示屏可以顯示,能實(shí)現(xiàn)預(yù)定義的功能,因此我們判定是液晶顯示芯片壞了。本次試驗(yàn)基本實(shí)現(xiàn)了課程設(shè)計(jì)的要求,但由于實(shí)訓(xùn)時(shí)間過(guò)于短暫,還存在著一

34、些問(wèn)題,比如液晶顯示的亮度不均勻 ,此外對(duì)一些擴(kuò)展的功能也沒(méi)有進(jìn)行嘗試。這些問(wèn)題只能以后有時(shí)間了再來(lái)解決。五、總結(jié)與體會(huì)炎炎夏日,在這維期一周的電子綜合設(shè)計(jì)中,我們小組對(duì)液晶顯示控制電路與程序這一選題進(jìn)行了討論研究及相關(guān)方案設(shè)計(jì)。通過(guò)這次電子綜合實(shí)訓(xùn),我們對(duì)液晶顯示的段式和點(diǎn)陣式有了初步的了解,尤其是點(diǎn)陣式這一塊,其又可分為文本型顯示和圖形型顯示。本次電子設(shè)計(jì)實(shí)訓(xùn)我們選用了液晶YM12864R,由剛開(kāi)始的對(duì)其的相關(guān)功能及使用的茫然,到對(duì)其基本使用原理和指令操作熟悉使用,期間遇到了系列問(wèn)題,但這也加深了我們對(duì)YM12864R液晶顯示塊認(rèn)知。此外,我們也深深意識(shí)到以往所學(xué)知識(shí),如焊接電路板,線路的

35、排版和連接等的重要性。在這次三人一小組的實(shí)訓(xùn),我們共同合作,查閱了大量的相關(guān)資料,力求做到規(guī)范清晰。在把握了整體的思路的基礎(chǔ)上,完成了系統(tǒng)方案的設(shè)計(jì),然后完成電路的焊接,最后我們從程序流程圖著手, 將整個(gè)程序分成若干模塊,分開(kāi)編寫,一邊發(fā)現(xiàn)問(wèn)題一邊解決問(wèn)題,軟硬件結(jié)合,在實(shí)驗(yàn)板上檢驗(yàn)程序測(cè)試情況,根據(jù)現(xiàn)象不斷修改。在這個(gè)過(guò)程中我們體會(huì)到編程的技巧,設(shè)置子程序的合理性,同時(shí)對(duì)單片機(jī)最小系統(tǒng)的設(shè)計(jì)有了整體的理解和深刻的體會(huì),使我們的思維的鍛煉與能力培養(yǎng)有了很大的提高和長(zhǎng)足的進(jìn)步歷經(jīng)無(wú)盡的重復(fù)調(diào)試與改進(jìn),最終,完成了預(yù)期結(jié)果。其間,我們嘗到了酸甜苦樂(lè),也學(xué)習(xí)到好多東西,感覺(jué)收獲頗豐。另外,非常感謝老

36、師給我們這個(gè)機(jī)會(huì)及耐心的指導(dǎo),而且實(shí)驗(yàn)的設(shè)備全是新的,讓我們?cè)诹己玫沫h(huán)境中學(xué)習(xí)到團(tuán)隊(duì)合作精神,在熱烈的夏天養(yǎng)成了吃苦耐勞的精神。參考文獻(xiàn)1 鐘承堯,嚴(yán)世勝. 單片機(jī)漢字顯示系統(tǒng)的設(shè)計(jì)J. 學(xué)術(shù)探討應(yīng)用技術(shù)與研究,2006:70-71.2 深圳市耀宇科技有限公司.YM12864R 圖形點(diǎn)陣液晶顯示模塊使用手冊(cè)EB/OL http:/wwwyaoyu-lcmcom3 趙建領(lǐng),薛園園等.51單片機(jī)開(kāi)發(fā)與應(yīng)用技術(shù)詳解M.北京:電子工業(yè)出版社,20094 洪家平. 中文圖形顯示控制芯片ST7920 的原理與應(yīng)用.5張洪潤(rùn).單片機(jī)應(yīng)用設(shè)計(jì)200例.下(第一版).北京航空航天大學(xué)出版社,2006.附錄#include<reg51.h> /引用頭文件#include<stdio.h>unsigned char mx322= /定義漢字字符的去碼數(shù)組0x20,0x20,0xb3,0xa3,0xca,0xec,0xc0,0xed,0xb9,0xa4,0xd1,0xa7,0xd4,0xba,0x20

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論