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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、 點(diǎn)陣圖像顯示 圖形繪制 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ā)展趨勢(shì)21.3本文結(jié)構(gòu)內(nèi)容安排3第二章系統(tǒng)分析42.1系統(tǒng)概述42.2系統(tǒng)功能42.3系統(tǒng)設(shè)計(jì)原則5第三章系統(tǒng)總體設(shè)計(jì)63.1ST89C52RC單片機(jī)簡(jiǎn)介6功能概述6選型優(yōu)缺點(diǎn)分析63.2液晶顯示YM12864R簡(jiǎn)介7模塊概述7模塊引腳說明7串行通訊8部分

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35、串行數(shù)據(jù)傳輸串行數(shù)據(jù)傳送共分三個(gè)字節(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;單片機(jī)寫數(shù)據(jù)和指令到顯示模塊:?jiǎn)纹瑱C(jī)向LCD發(fā)送數(shù)據(jù)和指令,通過串口控制格式來確定。寫數(shù)據(jù)到LCD時(shí),要先傳串口控制格式0x8a,接著發(fā)送兩個(gè)字節(jié),分別為數(shù)據(jù)的高四位和低四位;寫指令到LCD時(shí),要先傳串口控制格式0x80,接著

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

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

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

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

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

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

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

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

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

46、計(jì)中有些部分把窗口加了邊框。根據(jù)顯示屏的顯示坐標(biāo)定義特點(diǎn),采用垂直方向動(dòng)態(tài)移動(dòng),窗口由原點(diǎn)位置向下移動(dòng),碰到邊框再上移,再次碰到上邊框時(shí)右移,接下來繼續(xù)以上的循環(huán),直到到達(dá)屏幕最右下角。動(dòng)態(tài)窗口流程設(shè)計(jì)如圖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ù)擴(kuò)充指令初始化圖4.13 窗口移動(dòng)主程序3.6.7 可視化窗口窗口顯示圖像和幾何圖形都是基于動(dòng)態(tài)窗口實(shí)現(xiàn)的,在窗口每次移動(dòng)(可以是1位、16位、32位)之前,先把要在對(duì)應(yīng)位置顯示的圖片

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

48、顯示圖像開始擴(kuò)充指令初始化Display;y+Y<32N自編字型函數(shù)Y自編字型函數(shù)圖片數(shù)據(jù)映射到窗口qutu()全屏置1y=0;x=x+16x<=96x=0N自編字型函數(shù)Y自編字型函數(shù)3.6.8 可視化窗口顯示直線移動(dòng)窗口可以顯示整屏的圖像,同樣可以顯示一個(gè)整屏的圖形。比如繪制(0,0)到(127,63)的直線,全屏八個(gè)窗口對(duì)直線分割,在有線段的窗口顯示對(duì)應(yīng)數(shù)據(jù),用每次跨過32位的窗口依次掃描全屏,顯示全屏直線。顯示整屏直線算法如圖4.16所示,窗口分布及窗口分割給定直線示意圖如圖4.17所示。開始擴(kuò)充指令初始化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)實(shí)現(xiàn)本設(shè)計(jì)借助uVision編程軟件、STC-ISP程序下載編程燒錄軟件實(shí)現(xiàn)軟件和硬件調(diào)試,最終實(shí)現(xiàn)顯示任務(wù)。本章陳述設(shè)計(jì)過程中遇到的問題和解決辦法,并對(duì)測(cè)試結(jié)果進(jìn)行描述。2.4 uVision編程軟件keil uVision2集成開發(fā)環(huán)境的功能相當(dāng)強(qiáng)大,本節(jié)只簡(jiǎn)單介紹設(shè)計(jì)中用到的部分:創(chuàng)建工程,參數(shù)設(shè)置,編譯、連接和調(diào)試,硬件仿真5。2.4.1 創(chuàng)建工程和基本的參數(shù)設(shè)置點(diǎn)擊Project>New Project 選項(xiàng)創(chuàng)建一個(gè)新的工程后,選擇工程存儲(chǔ)的路徑,保存好后,

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論