基于單片機的LCD驅(qū)動程序設(shè)計_第1頁
基于單片機的LCD驅(qū)動程序設(shè)計_第2頁
基于單片機的LCD驅(qū)動程序設(shè)計_第3頁
基于單片機的LCD驅(qū)動程序設(shè)計_第4頁
基于單片機的LCD驅(qū)動程序設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)論文(設(shè)計)GRADUATIONTHESIS(DESIGN)論文(設(shè)計)題目Title Of Thesis(Design)基于單片機的LCD驅(qū)動程序設(shè)計 分院(系別)Department 信息與電子工程學(xué)院 專業(yè)Speciality 電子信息工程 基于單片機的LCD驅(qū)動程序設(shè)計英文題目2010年 5 月 7 日May 7th, 2010指導(dǎo)教師對畢業(yè)論文(設(shè)計)的評語Advisors Comments on Graduation Thesis (Design)評語: 指導(dǎo)教師(簽章)Signature of Advisor 日期 Date評閱人意見評閱人姓名:職稱:選項標準: A很同意 B

2、同意 C基本同意 D不同意分項評價評價項目ABCD選題質(zhì)量1選題符合專業(yè)培養(yǎng)目標,體現(xiàn)綜合訓(xùn)練基本要求2題目難易適度3題目工作量適當4有理論意義或?qū)嶋H價值能力水平5查閱文獻資料能力強6綜合運用知識能力強7研究方案的設(shè)計能力強8研究方法和手段的運用能力強9外文應(yīng)用能力強成果質(zhì)量10文題相符11寫作水平高12寫作規(guī)范13篇幅適度14成果有理論或?qū)嶋H價值總體評價: 優(yōu) 良 中 及格 不及格 評閱人評語 評閱人簽字: 年 月 日答辯(評審)委員會意見Appraisal of Defence Commission答辯(評審)成績Mark of Defence鑒定意見Appraisal & Com

3、ments主任(簽章)Signature of Dean 日期Date 基于單片機的LCD驅(qū)動程序設(shè)計摘要 本文用單片機驅(qū)動液晶顯示器YM12864R實現(xiàn)多種顯示功能。首先,進行系統(tǒng)分析,介紹液晶顯示器的分類以及系統(tǒng)功能。其次,進行系統(tǒng)總體設(shè)計,描述液晶顯示器YM12864R的功能和特性。然后,進行系統(tǒng)詳細設(shè)計,重點講解實現(xiàn)LCD顯示功能的串口通訊和編程算法。最后,借助uVision軟件進行編程實踐,對軟硬件調(diào)試過程中遇到的問題提出解決方案。液晶顯示器顯示內(nèi)容包含:顯示漢字、字符、圖形和圖像;顯示字符移動動畫;顯示指定位置的點、線、矩形、圓;關(guān)鍵字 點陣液晶顯示屏 驅(qū)動程序 漢字顯示 字符顯示

4、 點陣圖像顯示 圖形繪制 A design about the LCD driver programming based on SCMAbstractMany functions of displayhave been made sucsessfully using singlechip to drive the LCD screen of YM12864R in this thesis.Firstly,do system analysis. We introduces the classification of LCD and the fuction of this system.Secon

5、dly,do the overall design.the function and characteristic of YM12864R is introduced.Then ,do the detailed design.We describe the serial data transfer and algorithm of the program for the display of lcd screen particularly.Finally,programs are developed using the software of uVision .We also propose

6、solutions for the problems encountered during commissioning the software and hardware.The contents we want the LCD to display as follows:Display Chinese characters、chars、graphics and the image of the dot matrix;Display the cartoon of chars moving;Display point, line, rectangle, circle at the appoint

7、ed location;KeywordsLiquid Crystal Display screen of dot matri;Lcd driver programming; Chars display; Image of dot matrix display; Graph drawing目錄引言1第一章緒論21.1研究背景21.2研究現(xiàn)狀和發(fā)展趨勢21.3本文結(jié)構(gòu)內(nèi)容安排3第二章系統(tǒng)分析42.1系統(tǒng)概述42.2系統(tǒng)功能42.3系統(tǒng)設(shè)計原則5第三章系統(tǒng)總體設(shè)計63.1ST89C52RC單片機簡介6功能概述6選型優(yōu)缺點分析63.2液晶顯示YM12864R簡介7模塊概述7模塊引腳說明7串行通訊8部分

8、指令集8顯示坐標關(guān)系93.3單片機驅(qū)動顯示屏概述9串并連接和復(fù)位引腳10數(shù)據(jù)口和同步時鐘10第四章系統(tǒng)詳細設(shè)計114.1硬件電路設(shè)計114.2單片機與顯示模塊通訊的基本構(gòu)架11串行數(shù)據(jù)傳輸11顯示模塊初始化124.3顯示目標任務(wù)流程設(shè)計12文本顯示12繪圖顯示13窗口概念14全屏的點映射到數(shù)組15繪點、直線、矩形和圓15動態(tài)窗口17可視化窗口18可視化窗口顯示直線19第五章系統(tǒng)實現(xiàn)215.1uVision編程軟件21創(chuàng)建工程和基本的參數(shù)設(shè)置21硬件仿真215.2STC-ISP程序下載編程燒錄軟件215.3系統(tǒng)調(diào)試22顯示屏驅(qū)動電壓設(shè)置22全屏字符移動22可視化窗口235.4系統(tǒng)測試23顯示字庫

9、內(nèi)容23非字庫漢字顯示23點陣圖像顯示24窗口內(nèi)繪制線、矩形和圓形24窗口移動顯示圖像25字符移動動畫顯示25結(jié)論26致謝語28參考文獻29引言液晶顯示是通過液晶和彩色過濾器過濾光源,在平面面板上產(chǎn)生圖像的一種顯示技術(shù),液晶顯示技術(shù)被廣泛的應(yīng)用于便攜式電子產(chǎn)品中。為了滿足用戶的需求,LCD生產(chǎn)廠家研制和生產(chǎn)了各種性能和規(guī)格的LCD顯示模塊,廠家把顯示器和顯示屏集成在一個模塊上,用戶只要把模塊上的LCD控制器接口和微處理器簡單連接,并按不同LCD控制器的指令系統(tǒng)編寫驅(qū)動程序,即可完成系統(tǒng)顯示功能。液晶顯示器分為內(nèi)嵌字庫和不帶字庫的顯示器。顯示字庫中沒有的內(nèi)容,可以滿足我們的特定要求,靈活運用驅(qū)動

10、程序編制自己的字庫,這樣可以顯示一般字庫沒有的文字、圖形甚至圖片,使顯示的內(nèi)容更加豐富而多樣化。在很多情況下,我們只需顯示簡單的漢字、圖形,不必選擇帶字庫的屏,這時自制驅(qū)動程序就很有意義。點陣圖形液晶顯示模塊的特點是點陣像素連續(xù)排列,行和列在排列中沒有間隔。因此可以顯示連續(xù)、完整的圖形。由于它也是由點陣像素構(gòu)成的,所以除顯示圖形外,還可以顯示字符。用軟件驅(qū)動程序驅(qū)動點陣圖形液晶顯示器可以實現(xiàn)多種功能:清屏、顯示西文字符、顯示漢字、顯示圖形、圖像;運用取模工具,按照個人意愿顯示不同字體的漢字、顯示字庫中沒有的圖形,顯示點陣圖像;并自制繪點程序,基于繪點實現(xiàn)繪直線、矩形框、實心矩形、圓形、實心圓;

11、制作整屏移動西文字符;實現(xiàn)整屏圖像動態(tài)顯示。第一章 緒 論1.1 研究背景1888年澳洲植物學(xué)家F. Reinitzer首先發(fā)現(xiàn)液態(tài)晶體(Liquid crystals)或稱結(jié)晶液體(Crystalline liquids)(簡稱液晶)的存在,并開啟之后相關(guān)的基礎(chǔ)研究與發(fā)展1。1968年美國RCA公司科學(xué)家G. H. Heilmeier根據(jù)動態(tài)散射(Dynamic scattering)效應(yīng),將液晶做成顯示器,液晶顯示器(Liquid crystal display, LCD)產(chǎn)業(yè)開始成形。雖然美國企業(yè)是LCD技術(shù)的原始推動者,但日本卻是最先將此技術(shù)商品化的國家。1973年,日本Sharp公司

12、成功開發(fā)出以LCD為顯示面板的計算器與手表,并帶動許多廠商(如Hitachi、NEC、Toshiba等)加入LCD產(chǎn)品開發(fā)生產(chǎn)行列。1995年,韓國廠商進入TFT (Thin film transistor) LCD生產(chǎn),延續(xù)其在半導(dǎo)體產(chǎn)業(yè)的發(fā)展經(jīng)驗,于90年代底迅速達到超越市場占有率30%,并取代日本成為此產(chǎn)業(yè)的領(lǐng)先者。而同時在這時候,臺灣也掀起一股TFT-LCD投資熱潮,短短四、五年間有七家平均投資金額為新臺幣250億元之TFT-LCD新廠設(shè)立。1993年,在日本掌握TFT-LCD的生產(chǎn)技術(shù)后,液晶顯示器開始向兩個方向發(fā)展:一方向是朝著價格低、成本低的STN-LCD顯示器方向發(fā)展,隨后又推

13、出了DSTN-LCD(雙層超扭曲陣列);而另一方向卻朝高質(zhì)量的薄膜式電晶體TFT-LCD發(fā)展。盡管在當時TFT相對于DSTN具有極大的優(yōu)勢,但是由于技術(shù)上的問題,TFT LCD在響應(yīng)時間、亮度及可視角度上與傳統(tǒng)的CRT顯示器還有很大的差距,加上極低的成品率導(dǎo)致其高昂的價格,使得桌面型的TFT LCD成為遙不可及的尤物。不過,隨著技術(shù)的不斷發(fā)展,良品率不斷提高,加上一些新技術(shù)的出現(xiàn),使得TFT LCD在響應(yīng)時間、對比度、亮度、可視角度方面有了很大的進步,拉近了與傳統(tǒng)CRT顯示器的差距。日本在1997年開發(fā)了一批以550×670mm為代表的大基板尺寸第三代TFT-LCD生產(chǎn)線,并使199

14、8年大尺寸的LCD顯示屏的價格比1997年下降了一半。1996年以后,韓國和中國臺灣都投巨資建第三代的TFT-LCD生產(chǎn)線,準備在1999年以后與日本競爭。從TFT生產(chǎn)線的規(guī)格發(fā)展來看,從第一代生產(chǎn)線發(fā)展到第三代生產(chǎn)線,經(jīng)歷了約10年左右的時間,從第三代發(fā)展到第四代也用了約4年時間,而在業(yè)界第四代生產(chǎn)線剛剛穩(wěn)定批量生產(chǎn)之時,業(yè)界就提出并投資建設(shè)了第五代生產(chǎn)線,六代甚至七代生產(chǎn)線也已經(jīng)在面板廠的規(guī)劃之中了1。目前日本已經(jīng)完全放棄了三代線的投產(chǎn),全部轉(zhuǎn)向四代線,夏普等廠商甚至跳過五代線打算直接投產(chǎn)六代線,爭取在大屏幕的領(lǐng)域取得先機。1.2 研究現(xiàn)狀和發(fā)展趨勢點陣圖形方式LCD以其顯示漢字與曲線的優(yōu)

15、勢,擺脫了對控制器設(shè)計、加工、制作等一系列工作。高科技含量LCD強調(diào)人機界面的直觀形象,在菜單方式下進行人機交互?,F(xiàn)今更多廠商對LCD外觀重視,華碩和明基是國內(nèi)顯示市場的領(lǐng)頭羊,華碩MS246H以其獨特巧妙設(shè)計以及奢華精湛的做工獲“2009年中國IF設(shè)計大獎”,明基V2400Eco圍繞綠色環(huán)保和不對稱的巧妙外觀設(shè)計3。2009年的國際顯示市場,“響應(yīng)時間”和“動態(tài)對比度”已不再是焦點,而“LED”和“廣視角”取而代之,成為消費者在現(xiàn)實性能方面新的關(guān)注點。日本已研制特殊膜提高視角范圍,采用新的合成技術(shù)(多硅薄膜晶體管)滿足高速顯示要求,將驅(qū)動器直接制作在顯示平板上以取代外部驅(qū)動電路及減少外部連線

16、數(shù)研制金屬絕緣金屬技術(shù),以實現(xiàn)較高的性價比優(yōu)勢。此外,液晶顯示器的色彩調(diào)校。一直不盡如人意,這是因為LCD的色彩調(diào)校要考慮到環(huán)境光源和液晶顯示器的屬性,再加上液晶顯示器的可視角度狹窄,要同時調(diào)整出一個最佳的觀看角度和色彩正確性就非常不容易。目前市面上還沒有專為桌面型液晶顯示器所設(shè)計的色彩調(diào)校軟件,不過相信未來,將會有更多的廠商重視液晶顯示器的色彩調(diào)校。1.3 本文結(jié)構(gòu)內(nèi)容安排本文正文內(nèi)容安排如下:第二章系統(tǒng)分析,明確要完成的顯示任務(wù),詳細分析過程主要包括系統(tǒng)概述,系統(tǒng)功能和系統(tǒng)設(shè)計原則。第三章系統(tǒng)總體設(shè)計,根據(jù)系統(tǒng)分析所得出的單片機驅(qū)動LCD顯示系統(tǒng),對其進行模塊設(shè)計,對選擇的51單片機ST8

17、9C52RC和液晶顯示模塊YM12864R的功能簡介。進行基本的連線設(shè)計。第四章系統(tǒng)詳細設(shè)計,主要分三個方面來進行總體設(shè)計:硬件電路設(shè)計;單片機與顯示模塊通訊的基本構(gòu)架;漢字字符顯示模塊、圖像模塊、點模塊,線模塊、圖形模塊、動態(tài)模塊的算法設(shè)計。第五章系統(tǒng)實現(xiàn)。借助程序下載燒錄軟件和系統(tǒng)編程軟件實現(xiàn)軟硬件調(diào)試,最終實現(xiàn)顯示任務(wù)。另外還要對點陣取模工具功能和用法做簡要說明。并陳述設(shè)計過程中遇到的問題和解決辦法。第二章 系統(tǒng)分析本章對單片機驅(qū)動液晶顯示器系統(tǒng)進行分析,明確要完成的顯示任務(wù),詳細分析過程主要包括系統(tǒng)概述,系統(tǒng)功能和系統(tǒng)設(shè)計原則。2.1 系統(tǒng)概述液晶顯示器按驅(qū)動方式不同分為靜態(tài)驅(qū)動、單純

18、矩陣驅(qū)動以及主動矩陣驅(qū)動3種。其中,被動矩陣型又可分為扭轉(zhuǎn)式向列型、超扭轉(zhuǎn)式向列型及其他被動矩陣驅(qū)動液晶顯示器,主動矩陣型可分為薄膜式晶體管型和二端子二極管型。按控制電路,圖形液晶顯示模塊可分為行、列驅(qū)動型,行、列驅(qū)動控制型,行列控制型。按顯示器件結(jié)構(gòu),圖形液晶顯示模塊可分為TN、STN、TFT三種;每一種又有常溫、寬溫、有背光和無背光以及顏色模式之分1。液晶顯示模塊從結(jié)構(gòu)上分類,可分為字符型和點陣型液晶顯示模塊兩種類型。字符型液晶顯示模塊是由點陣字符液晶顯示器件和專用的行、列驅(qū)動器、控制器及必要的連接件,結(jié)構(gòu)件裝配而成的,可以顯示數(shù)字和西文字符。這種點陣字符模塊本身具有字符發(fā)生器,顯示容量大

19、,功能豐富。點陣圖形液晶顯示模塊特點是點陣像素連續(xù)排列,行和列在排列中沒有間隔。因為可以顯示連續(xù)、完整的圖形。由于它也是由點陣像素構(gòu)成的,所以除顯示圖形外,還可以顯示字符。設(shè)計中顯示點陣圖形,需要選擇點陣圖形液晶顯示模塊。從控制電路角度介紹點陣液晶顯示模塊的類別和它們的不同。行列驅(qū)動型是一種必須外接專用控制器的模塊,該模塊只裝配有通用的行、列驅(qū)動器;行列驅(qū)動控制型是一種可以直接與計算機接口,依靠計算機直接控制驅(qū)動器的模塊;行、列控制型是一種內(nèi)藏控制器型的點陣圖形模塊,這種模塊不僅裝行、列驅(qū)動器,而且也裝配有專用控制器,這種控制器是液晶驅(qū)動器與計算機的接口,它以最簡單的方式受控于計算機,接受并反

20、饋計算機的各種信息,經(jīng)過自己獨立的信息處理實現(xiàn)對顯示緩沖區(qū)的管理,并向驅(qū)動器提供所需要的各種信號、脈沖,操縱驅(qū)動器實現(xiàn)模塊的顯示功能。2.2 系統(tǒng)功能在單片機設(shè)計系統(tǒng)中,對每個用戶的需求,都必須有相應(yīng)的用戶程序去完成用戶功能要求。就用戶程序而言,一般都由用戶開發(fā)完成。高級語言功能強,且比較近似于人們?nèi)粘I钣谜Z習慣,因此比較容易用它編寫用戶程序。選擇串口通訊方式,只用簡單的幾根線就可以實現(xiàn)驅(qū)動任務(wù),不只可以用51單片機來驅(qū)動,改變很少接口設(shè)置,就可以用別的單片機來驅(qū)動,程序可移植性很強。本設(shè)計要完成的顯示內(nèi)容如下:顯示屏是帶字庫的,編程實現(xiàn)字庫中漢字(宋體16X16)、字符(8X16)、和特殊

21、符號(如:笑臉、五角星等);顯示自造字(火星文、楷體、黑體等)和自造圖形(圓環(huán)、笑臉、十字、墻壁);顯示整屏字符移動動畫;用圖片取模工具取點陣數(shù)據(jù),顯示整屏圖像;繪制顯示屏任意點;繪制直線、矩形框、圓形、填充矩形和填充圓形;創(chuàng)建顯示窗口,在窗口內(nèi)顯示規(guī)定位置的點、線、矩形、圓;窗口動態(tài)實現(xiàn)畫面卷動效果;全屏點陣顯示直線、矩形、圓及橢圓和圓角矩形。2.3 系統(tǒng)設(shè)計原則1.實現(xiàn)用戶功能上的需求,用戶的需求是系統(tǒng)設(shè)計的依據(jù),用戶在功能上的需求必須予以實現(xiàn),系統(tǒng)設(shè)計首先要明確的是設(shè)計的任務(wù),本文為顯示屏要的內(nèi)容。2.系統(tǒng)的操作性能要好且便于實現(xiàn),對嵌入式系統(tǒng)來說,與通用型計算機一樣,希望人機界面友好、

22、操作方便,從使用者的角度來說,系統(tǒng)的操作使用越簡單越好。3低成本、低功耗,使系統(tǒng)具有盡可能高的性價比,這是每一個設(shè)計者所追求的目標。4.可靠性高,系統(tǒng)應(yīng)用于工業(yè)企業(yè)的現(xiàn)場,一旦出現(xiàn)故障,有可能使整個生產(chǎn)過程混亂,甚至產(chǎn)生更嚴重的后果,可靠性是系統(tǒng)設(shè)計最重要、最突出的基本要求。5.通用性好且便于擴展,當某一個系統(tǒng)設(shè)計好投入使用后,若遇到后續(xù)的類似系統(tǒng),則可在前面系統(tǒng)設(shè)計的基礎(chǔ)上增加和減少某些部件,構(gòu)成新的系統(tǒng)。第三章 系統(tǒng)總體設(shè)計根據(jù)系統(tǒng)分析所得出的單片機驅(qū)動LCD顯示系統(tǒng),對其進行模塊設(shè)計,對選擇的51單片機ST89C52RC和液晶顯示模塊YM12864R的功能簡介。進行基本的連線設(shè)計。3.1

23、 ST89C52RC單片機簡介簡單介紹ST89C52RC單片機的引腳,主要對用到的P1口介紹,對單片機內(nèi)存空間做簡略說明,為寫驅(qū)動程序時,程序存儲區(qū)存放點陣圖片數(shù)據(jù)數(shù)組和數(shù)據(jù)區(qū)存放屏幕點映射數(shù)組奠定基礎(chǔ)。并分析選擇51系列單片機的優(yōu)缺點。3.1.1 功能概述ST89C52RC是與MCS-51單片機產(chǎn)品兼容的芯片,有32個可編程I/O口線。P0 口:P0口是一個8位漏極開路的雙向I/O口,用于傳輸?shù)?位地址,當訪問外部程序和數(shù)據(jù)存儲器時, P0口也被作為低8位地址/數(shù)據(jù)復(fù)用;P2 口:P2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器時

24、,P2 口送出高八位地址;P3 口:P3 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,用于雙向傳輸數(shù)據(jù),P3口亦作為特殊功能(第二功能)使用;RST: 復(fù)位輸入,晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復(fù)位;P1口:P1 口是一個具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p1 輸出緩沖器能驅(qū)動 4 個TTL 邏輯電平,對 P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用,作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。ST89C52RC具有以下標準的內(nèi)存空間:8k字節(jié)Flash, 256字節(jié)RAM,2k字節(jié)的ROM。設(shè)計中在

25、數(shù)據(jù)存儲區(qū)主要用于存放動態(tài)變量和屏幕點映射的數(shù)組,用戶程序存儲區(qū)用于存放程序和點陣圖像數(shù)組。工作電壓:5.5V 3.4V(5V 單片機)。5V單片機頻率080MHZ,選用晶振頻率11.0592MHZ。3.1.2 選型優(yōu)缺點分析ST89C52RC是一種低功耗、高性能CMOS8位微控制器,使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容3。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程Flash使得ST89C52RC為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。該系列產(chǎn)品種類多,兼容性強(外部引線、內(nèi)部結(jié)構(gòu)、指令系統(tǒng)),在低端應(yīng)用中還會

26、應(yīng)用很長時間。接口復(fù)用少,片上集成度比較低,這樣控制起來靈活,便于理解。另外大學(xué)課程安排的是8051單片機。以上為我選擇芯片的優(yōu)勢。在較為復(fù)雜的系統(tǒng)中,不宜選用本系列芯片,ST89C52RC運算速度一般,存儲容量小,造成對顯示屏上所有點做數(shù)組映射時出現(xiàn)問題。3.2 液晶顯示YM12864R簡介對顯示模塊引腳進行說明,重點描述串口通訊引腳和通訊方式。簡單介紹設(shè)計中用到的指令系統(tǒng)。深入探討顯示屏地址定義方式,并對這種定義方式如何實現(xiàn)數(shù)據(jù)傳輸來達到我們顯示效果進行詳細闡述,并對地址分配方式優(yōu)缺點進行分析。3.2.1 模塊概述YM12864R點陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個中文漢字(

27、16X16點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。主要技術(shù)參數(shù)和顯示特性:電源: VDD 3.3V+5V ( 內(nèi)置升壓電路,無需負壓 ) ;顯示內(nèi)容: 128 列 × 64 行;LCD 類型: STN;與 MCU 接口: 8 位或 4 位并行 /3 位串行。3.2.2 模塊引腳說明表2.1YM12864R引腳說明一覽表引腳號引腳名稱方向功能說明1VSS模塊的電源地2VDD模塊的電源正端3V0LCD驅(qū)動電壓輸入端4RS(CS)H/L并行的指令、數(shù)據(jù)選擇信號;串行的片選信號5R/W(SID)H/L并行的讀/寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/

28、L并行的片選信號;串行同步時鐘信號714DB0DB7H/L并行數(shù)據(jù)口15PSBH/L并串口接口選擇:H并行,L串行16NC空腳17/RETH/L復(fù)位 低電平有效18NC空腳19LED_A背光源正極20LED_K背光源負極3.2.3 串行通訊圖2.1串行通訊時序3.2.4 部分指令集指令是實現(xiàn)驅(qū)動的基礎(chǔ),顯示模塊的用戶指令集包括基本指令集和擴展指令集2,本節(jié)簡單介紹設(shè)計過程中用到的指令。1、 清楚顯示(01H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:清楚顯示屏幕,把DDRAM位地址計數(shù)器調(diào)整為“00H”2、 顯示狀態(tài)開/關(guān)CODE: RWRS

29、DB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能: D=1:整體顯示ONC=1:游標ONB=1:游標位置ON3、 功能設(shè)定CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0 REXX功能:DL=1(必須設(shè)為1)RE=1:擴展指令集動作RE=0:基本指令集動作4、 設(shè)定CGRAM位址CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:設(shè)定CGRAM位址到位址計數(shù)器(AC)5、 設(shè)定DDRAM位址CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC

30、6AC5AC4AC3AC2AC1AC0功能:設(shè)定DDRAM位址到位址計數(shù)器(AC)6、 讀取忙碌狀態(tài)(BF)和位址CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能:讀取忙碌狀態(tài)(BF)可確認內(nèi)部動作是否完成,可以讀出位址計數(shù)器AC值7、 擴充功能設(shè)定CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1 REGL功能:G=1:繪圖顯示ONG=0:繪圖顯示OFF8、 設(shè)定繪圖RAM位址CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC

31、0功能:設(shè)定GDRAM位址到位址計數(shù)器(AC)3.2.5 顯示坐標關(guān)系圖形圖像顯示坐標:水平方向X以字節(jié)為單位;垂直方向Y以位為單位。漢字顯示坐標:表2.2漢字坐標關(guān)系一覽表X坐標Line180H81H82H83H84H85H86H87HLine290H91H92H93H94H95H96H97HLine388H89H8AH8BH8CH8DH8EH8FHLine498H99H9AH9BH9CH9DH9EH9FH3.3 單片機驅(qū)動顯示屏概述設(shè)計采用串口通訊方式,通過顯示模塊數(shù)據(jù)口SID和同步時鐘CLK實現(xiàn)數(shù)據(jù)傳輸,單片機芯片可以用普通的I/O口??刂菩酒饨右粋€模塊時,可以把片選信號CS接高電平,

32、但設(shè)計中為了對外接顯示屏進行忙檢測,忙時不向顯示模塊傳輸數(shù)據(jù),因此把片選接到P1.0來編程實現(xiàn)。3.3.1 串并連接和復(fù)位引腳選擇串行通訊方式,需要使PSB口始終維持高電平,這里采用P1.3,通過I/O口控制電平的方式。此接口寫入一次數(shù)據(jù)(低電平或高電平),直到下一次再次寫入數(shù)據(jù)是才才有可能改變,不受復(fù)位的控制,把它接通用I/O口比較合理。串口用線少,采用連線方式時,受線路影響較小,顯示較穩(wěn)定,但并行通訊可以一次傳八位數(shù)據(jù),通訊快,編程方便,需要傳大量數(shù)據(jù)或?qū)︼@示刷新頻率要求很高的情況下,并行通訊很占優(yōu)勢。不直接接高電平或接低電平,可以在必要的時候?qū)崿F(xiàn)串并轉(zhuǎn)換驅(qū)動顯示模塊工作。復(fù)位引腳低電平有

33、效,把RST接I/O口,用于實現(xiàn)顯示屏軟件復(fù)位,設(shè)計中在顯示屏初始化時采用軟件復(fù)位,區(qū)別于對控制芯片復(fù)位,顯示屏復(fù)位,并不改變單片機內(nèi)部寄存器的值。3.3.2 數(shù)據(jù)口和同步時鐘接線方式和程序設(shè)計主要依據(jù)串口通訊時序,數(shù)據(jù)口和同步時鐘分別接P1.1口和P1.2口,單片機通過SID向顯示屏傳送指令和數(shù)據(jù),顯示屏通過SID向單片機傳判忙信號。同步信號是頻率很高的方波信號,時鐘信號一個周期可以傳輸一位串口信號,時鐘周期的長短直接影響到數(shù)據(jù)傳輸?shù)男?。設(shè)計中將CLK接P1.2口。第四章 系統(tǒng)詳細設(shè)計本章明確單片機驅(qū)動顯示模塊顯示目標任務(wù)的過程。主要分三個方面來進行總體設(shè)計:硬件電路設(shè)計;單片機與顯示模塊

34、通訊的基本構(gòu)架;漢字字符顯示模塊、圖像模塊、點模塊,線模塊、圖形模塊、動態(tài)模塊的算法設(shè)計。3.4 硬件電路設(shè)計單片機驅(qū)動顯示模塊采用串行通訊,連線較少,硬件連接簡單,串口通訊在2.3節(jié)中進行了比較詳細的分析,硬件連接如下圖:圖4.1單片機驅(qū)動LCD連線3.5 單片機與顯示模塊通訊的基本構(gòu)架實現(xiàn)控制芯片對顯示模塊的驅(qū)動,首先要解決的問題就是數(shù)據(jù)傳輸,本設(shè)計采用串行通訊方式,相應(yīng)的數(shù)據(jù)傳輸就要符合串行通訊時序;在單片機外接模塊時,要對被控對象進行初始化才能保障數(shù)據(jù)正確的傳輸,完成每一種顯示功能的主程序過程如圖4.1所示:圖4.1 實現(xiàn)顯示功能的主程序圖延時初始化顯示功能模塊main()3.5.1

35、串行數(shù)據(jù)傳輸串行數(shù)據(jù)傳送共分三個字節(jié)完成:第一字節(jié):串口控制格式 11111ABC,A為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU ,L則表示數(shù)據(jù)從MCU到LCD;B為數(shù)據(jù)類型選擇:H 表示數(shù)據(jù)是顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令;C固定為0;第二字節(jié):( 并行 )8 位數(shù)據(jù)的高4位,格式為DDDD0000;第三字節(jié):( 并行 )8 位數(shù)據(jù)的低4位,格式為0000DDDD;單片機寫數(shù)據(jù)和指令到顯示模塊:單片機向LCD發(fā)送數(shù)據(jù)和指令,通過串口控制格式來確定。寫數(shù)據(jù)到LCD時,要先傳串口控制格式0x8a,接著發(fā)送兩個字節(jié),分別為數(shù)據(jù)的高四位和低四位;寫指令到LCD時,要先傳串口控制格式0x80,接著

36、發(fā)送兩字節(jié),分別為指令高四位和低四位。單片機讀顯示模塊數(shù)據(jù):單片機接收數(shù)據(jù),主要用于忙檢測,讀LCD數(shù)據(jù)時,要先發(fā)送串口控制格式0xfc,接收數(shù)據(jù)跟發(fā)送數(shù)據(jù)一樣,接收兩個字節(jié),分別為要接收數(shù)據(jù)的高四位和低四位,需要將接收到的高四位和第四位數(shù)據(jù)整合。3.5.2 顯示模塊初始化YM12864R的指令集分為基本指令集和擴充指令集,在進行漢字、字符顯示時需要用到基本指令集,在做繪圖時要用到擴充指令集,因此初始化要根據(jù)要完成的顯示內(nèi)容設(shè)計兩種初始化程序,在編程時適時恰當?shù)募尤胂鄳?yīng)初始化程序,才能靈活的控制顯示漢字還是繪圖,來實現(xiàn)豐富多樣的顯示任務(wù)。初始化可能會用到的指令包括:清屏顯示、地址歸為、進入點設(shè)

37、定、顯示狀態(tài)、游標或顯示移位控制、功能設(shè)定、反白選擇、待命模式、睡眠模式2。初始化至少要包括清屏顯示、進入點設(shè)定、顯示狀態(tài)和功能設(shè)定。3.6 顯示目標任務(wù)流程設(shè)計本節(jié)重點介紹實現(xiàn)顯示功能的算法設(shè)計,繪制各種顯示模塊的流程圖,分為漢字和字符顯示、圖形顯示、點顯示和窗口顯示、窗口移動顯示和窗口移動顯示整屏圖片。3.6.1 文本顯示文本顯示 RAM(DDRAM)文本顯示 RAM 提供 8 個×4行的漢字空間,當寫入文本顯示 RAM時,可以顯示三種字型 ,分別是半寬的 HCGROM 字型、 CGRAM 字型及中文CGROM字型。三種字型的選擇,由在 DDRAM 中寫入的編碼選擇,各種字型詳細

38、編碼如下:顯示半寬字型 :將一位字節(jié)寫入DDRAM中,范圍為 02H-7FH 的編碼。顯示 CGRAM字型:將兩字節(jié)編碼寫入DDRAM中,總共有0000H,0002H,0004H,0006H四種編碼。顯示中文字型:將兩字節(jié)編碼寫入DDRAMK,直接寫漢字,實際是漢字的區(qū)位碼。漢字、半寬字符顯示流程如圖4.2所示(假定要顯示的內(nèi)容編碼共需要字節(jié)數(shù)n);自造字和圖形流程如圖4.3所示。ziku字節(jié)數(shù)i=0寫入一個字節(jié)編碼設(shè)定漢字和字符顯示地址指定數(shù)據(jù)位置圖4.2 顯示字庫字型返回i<n?Y自編字型函數(shù)N3.2自編字型函數(shù)lcd_cgram指定CGRAM起始地址指定每個字型之間字間距寫入CGR

39、AM載入字型4個字?返回N3.2自編字型函數(shù)Y自編字型函數(shù)圖4.3 自編字型函數(shù)3.6.2 繪圖顯示繪圖顯示RAM 提供128×8個字節(jié)的記憶空間,在更改繪圖RAM時,先連續(xù)寫入水平與垂直的坐標值,再寫入兩個字節(jié)的數(shù)據(jù)到繪圖RAM,而地址計數(shù)器(AC)會自動加一,整個寫入繪圖RAM 的步驟:先將垂直坐標寫入繪圖 RAM 地址;再將水平坐標寫入繪圖 RAM 地址;將 D15D8 寫入到RAM 中;將D7D0 寫入到 RAM 中;顯示點陣圖像和點陣圖形類似,流程設(shè)計如圖4.4所示。3.6.3 窗口概念跟全屏繪圖類似,全屏顯示點陣圖像要傳送16*64B的數(shù)據(jù),窗口內(nèi)顯示只需要傳送窗口大小的

40、數(shù)據(jù)即可,設(shè)計中窗口大小設(shè)為4*32B,只向窗口所在位置傳數(shù)據(jù),窗口內(nèi)可見,窗口外不可見。DisplayGraphic設(shè)定上半屏垂直和水平地址載入圖像數(shù)組16字節(jié)數(shù)據(jù)i<32設(shè)定下半屏垂直和水平地址載入圖像數(shù)組16字節(jié)數(shù)據(jù)i=0i=0i<32返回N3.2自編字型函數(shù)N3.2自編字型函數(shù)Y自編字型函數(shù)Y自編字型函數(shù)圖4.4 點陣圖像函數(shù)圖4.5 中間窗口函數(shù)Display設(shè)定窗口上半屏垂直和水平地址載入窗口數(shù)組4字節(jié)數(shù)據(jù)i<16設(shè)定窗口下半屏垂直和水平地址載入窗口數(shù)組4字節(jié)數(shù)據(jù)i=0i=0i<16返回N3.2自編字型函數(shù)N3.2自編字型函數(shù)Y自編字型函數(shù)Y自編字型函數(shù)將窗

41、口內(nèi)的點映射到4*32B的數(shù)組中,把數(shù)組定義在控制芯片的數(shù)據(jù)存儲區(qū),這樣數(shù)組元素值就可以根據(jù)需要重新賦值,要顯示的數(shù)組數(shù)據(jù)傳到窗口DDRAM,引入窗口用于節(jié)省控制芯片數(shù)據(jù)存儲區(qū)數(shù)據(jù)。窗口建立的流程設(shè)計根據(jù)窗口位置各不相同,但原理是一致的,第四章將在不同小節(jié)介紹不同位置的窗口顯示。以屏幕中央位置的窗口為例,流程如圖4.5所示;3.6.4 全屏的點映射到數(shù)組設(shè)計繪點顯示部分,最先設(shè)計思想沒有采用數(shù)組,而是采用每傳一個字來表示一個點,每表示一個點都要傳兩個字節(jié)的數(shù)據(jù),這種方法全屏任一點均能夠正確顯示8;用該點函數(shù)繪制圖形時會出現(xiàn)問題,豎直線及斜率絕對值大于等于1的斜線可以正確顯示,斜率絕對值小于1的

42、直線不能正確顯示,尤其是水平線,只能顯示斷續(xù)的幾個點。每次顯示一個點,因每個點要用一個字的數(shù)據(jù)來表示,在同一個字中要顯示的點,總是后面的把前面的給覆蓋掉,在同一行要顯示連續(xù)的點時就會出現(xiàn)錯誤。解決的方法就是在傳入新的點之前要對它進行多個點(最多是十六個點)的或運算,這樣處理起來還是很麻煩,基本上不一樣情況的直線就要有不一樣的處理方案。繪點造成的繪制直線、矩形和圓形的一系列后遺癥,迫使我尋找新的解決辦法:把全屏的每個點映射到數(shù)組,要顯示的所有點就轉(zhuǎn)化成對數(shù)組數(shù)據(jù)進行一系列或運算的問題,需要在數(shù)據(jù)區(qū)定義一個數(shù)組(16*64B)來映射全屏的點(128*64),例如最左上角的點(0,0),就轉(zhuǎn)化成數(shù)組

43、中第一個元素0x80,要同時顯示(0,0)和(1,0),就成了第一個點0x80和第二個點0x40或運算得到第一個元素0xB0,把要顯示的點的信息一次性傳到顯示屏,既節(jié)省時間,又解決了前面的覆蓋問題。3.6.5 繪點、直線、矩形和圓創(chuàng)建窗口,把窗口內(nèi)的點映射到數(shù)組,可以實現(xiàn)基于點的直線、矩形和圓顯示。在窗口內(nèi)顯示點,假定窗口起始位置為(sx,sy),“n=(x-sx)/8”計算x所屬字節(jié)數(shù),“n=(x-sx)%8”計算x在所屬字節(jié)中的bit位,光標定位“k=4*(y-16)+n”,繪點流程設(shè)計如圖4.6所示。Set_pot圖4.6 繪點函數(shù)窗口內(nèi)點?點與窗口映射數(shù)組或運算dot=dot>&

44、gt;m返回Y自編字型函數(shù)N3.2自編字型函數(shù)dot=0x80光標定位點所在字節(jié)位置繪制直線采用生成直線的DDA算法7,設(shè)起點(xs,ys)和終點(xe,ye),算法描述如下:計算需要描出的點的個數(shù)k=max(|xe-xs|,|ye-ys|);從起點開始描點,水平增量dx=xe-xs/k,豎直增量dy=ye-ys/k;對新的點加0.5后取整,來獲得據(jù)這個點最近的點。具體如圖4.7和圖4.8所示。圖4.8 斜率大于0直線圖4.7 斜率小于等于0直線繪制矩形框:分別繪上、下邊水平線和左、右邊垂直線即可。繪制矩形面:從最上面一條水平線掃描到最下面一條水平線。繪制圓形采用生成圓的正負法7,設(shè)圓的圓心(

45、ox,oy),半徑為r,圓的曲線方程為f=(x-ox)2+(y-oy)2-r2,四分之一圓弧(坐標系中第一象限)算法描述如下:以(xo,yo+r)為繪制起點,設(shè)本次繪制的點為(xi,yi);x每次加1,y在其右或右下方,即下一點為(xi+1,yi)或(xi+1,yi-1);若(xi,yi)在圓上或圓內(nèi),下一點為(xi+1,yi),否則為(xi+1,yi-1);依次畫出圓弧上,用同樣的方法繪制其它區(qū)域圓弧,如圖4.9圖4.12所示。圖4.9 右下方圓弧圖4.10 右上方圓弧圖4.11 左下方圓弧圖4.12 左上方圓弧3.6.6 動態(tài)窗口通過對窗口起始位置的改變,來實現(xiàn)窗口的移動,為了看到效果,設(shè)

46、計中有些部分把窗口加了邊框。根據(jù)顯示屏的顯示坐標定義特點,采用垂直方向動態(tài)移動,窗口由原點位置向下移動,碰到邊框再上移,再次碰到上邊框時右移,接下來繼續(xù)以上的循環(huán),直到到達屏幕最右下角。動態(tài)窗口流程設(shè)計如圖4.13所示。開始Display;y+y=0;x=x+16y<32Display;y-y>0Y自編字型函數(shù)Y自編字型函數(shù)N自編字型函數(shù)N自編字型函數(shù)x<=96x=0N自編字型函數(shù)Y自編字型函數(shù)擴充指令初始化圖4.13 窗口移動主程序3.6.7 可視化窗口窗口顯示圖像和幾何圖形都是基于動態(tài)窗口實現(xiàn)的,在窗口每次移動(可以是1位、16位、32位)之前,先把要在對應(yīng)位置顯示的圖片

47、的數(shù)據(jù)傳到映射數(shù)組,再把數(shù)據(jù)顯示在對應(yīng)窗口(DDRAM),窗口走過的地方在沒有清屏(DDRAM清零)情況下仍然保留圖像內(nèi)容。設(shè)計中為了便于觀察效果,并沒有采用清屏的方式,而是采用全屏置1,反白顯示背景。移動過程中加入置1與否可以實現(xiàn)兩種顯示效果:既可以借助窗口顯示全屏圖像,也可以只在窗口內(nèi)顯示對應(yīng)位置上的圖像。兩種顯示流程設(shè)計分別如圖4.14和圖4.15所示。圖4.14 動態(tài)窗口顯示整屏圖像開始Display;y+y=0;x=x+16y<32Y自編字型函數(shù)N自編字型函數(shù)x<=96x=0N自編字型函數(shù)Y自編字型函數(shù)擴充指令初始化圖片數(shù)據(jù)映射到窗口qutu()全屏置1圖4.15 窗口內(nèi)

48、顯示圖像開始擴充指令初始化Display;y+Y<32N自編字型函數(shù)Y自編字型函數(shù)圖片數(shù)據(jù)映射到窗口qutu()全屏置1y=0;x=x+16x<=96x=0N自編字型函數(shù)Y自編字型函數(shù)3.6.8 可視化窗口顯示直線移動窗口可以顯示整屏的圖像,同樣可以顯示一個整屏的圖形。比如繪制(0,0)到(127,63)的直線,全屏八個窗口對直線分割,在有線段的窗口顯示對應(yīng)數(shù)據(jù),用每次跨過32位的窗口依次掃描全屏,顯示全屏直線。顯示整屏直線算法如圖4.16所示,窗口分布及窗口分割給定直線示意圖如圖4.17所示。開始擴充指令初始化i=0有線段?n=i;i+line_ADD()顯示窗口nN自編字型函數(shù)

49、Y自編字型函數(shù)i<8?圖4.16 窗口內(nèi)顯示整屏直線Y自編字型函數(shù)N自編字型函數(shù)圖4.17 窗口分割直線第五章 系統(tǒng)實現(xiàn)本設(shè)計借助uVision編程軟件、STC-ISP程序下載編程燒錄軟件實現(xiàn)軟件和硬件調(diào)試,最終實現(xiàn)顯示任務(wù)。本章陳述設(shè)計過程中遇到的問題和解決辦法,并對測試結(jié)果進行描述。2.4 uVision編程軟件keil uVision2集成開發(fā)環(huán)境的功能相當強大,本節(jié)只簡單介紹設(shè)計中用到的部分:創(chuàng)建工程,參數(shù)設(shè)置,編譯、連接和調(diào)試,硬件仿真5。2.4.1 創(chuàng)建工程和基本的參數(shù)設(shè)置點擊Project>New Project 選項創(chuàng)建一個新的工程后,選擇工程存儲的路徑,保存好后,

50、選擇CPU型號5。點擊File>New 選項,保存此文件為*.c,把此文件添加到工程5。要特別注意對當前工程參數(shù)的設(shè)置,點擊Project>Option for TargetTarget1,必須設(shè)置工作頻率與開發(fā)板的工作頻率一致(Target選項),還要設(shè)置生成HEX文件(Output選項),ISP下載程序燒錄軟件會找到HEX文件并下載到單片機實現(xiàn)硬件仿真。在新建的C文件中寫入要測試的程序,然后就可以進行編譯、連接和調(diào)試。2.4.2 硬件仿真通常情況下,進行硬件仿真需要對uVision仿真參數(shù)進行相應(yīng)的設(shè)置,本設(shè)計選用的是STC89C52系列單片機,用專用的STC下載編程燒錄軟件下載到單片機即可。2.5 STC-ISP程序下載編程燒錄軟件STC下載編程燒錄軟件是支持STC89C52系列單片機的專用下載軟件。首先將STC安裝軟件安裝到電腦,或者使用非安裝軟件直接打開。用USB轉(zhuǎn)串口線連接開發(fā)板的串口(DB9)至電腦,這里需要安裝USB轉(zhuǎn)串口驅(qū)動程序。連接后在設(shè)備管理器中會增加相應(yīng)的COM口,打開電源會發(fā)

溫馨提示

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

評論

0/150

提交評論