單片機(jī)在LED上的應(yīng)用設(shè)計(jì)_第1頁
單片機(jī)在LED上的應(yīng)用設(shè)計(jì)_第2頁
單片機(jī)在LED上的應(yīng)用設(shè)計(jì)_第3頁
單片機(jī)在LED上的應(yīng)用設(shè)計(jì)_第4頁
單片機(jī)在LED上的應(yīng)用設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、PAGE PAGE 4河南技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)題 目 單片機(jī)在LED滾動顯示上的設(shè)計(jì) 系(分院) 機(jī)械電子工程系 學(xué)生姓名 學(xué) 號 專業(yè)名稱 機(jī)電一體化 指導(dǎo)教師 2012年3月10日河南職業(yè)技術(shù)學(xué)院機(jī)械電子工程系(分院)畢業(yè)設(shè)計(jì)(論文)任務(wù)書姓 名專 業(yè)機(jī)電一體化班 級畢業(yè)設(shè)計(jì)(論文)題 目單片機(jī)在LED滾動顯示上的設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)選題的目的與意義 點(diǎn)陣式LED顯示技術(shù)是近幾年發(fā)展較快的顯示技術(shù)之一,其抗干擾能力強(qiáng)等特點(diǎn)使得其在戶外廣告、公共告示等方面得到了廣泛的應(yīng)用,因此研究點(diǎn)陣式LED顯示屏接口與控制技術(shù)具有較高的實(shí)際應(yīng)用價(jià)值。畢業(yè)設(shè)計(jì)(論文)的資料收集情況(含指定參考資料) =

2、 1 * GB3 胡健, 劉玉賓. 定時(shí)/計(jì)數(shù)器,單片機(jī)原理與接口技術(shù)M. 北京: 機(jī)械工業(yè)出版社, 2005. 向繼文, 廖立新. 基于80C51的LED系統(tǒng)設(shè)計(jì)J. 機(jī)電產(chǎn)品開發(fā)與創(chuàng)新, 2007, 20 (2): 6263. 范立南. 單片機(jī)原理及應(yīng)用教程M北京: 北京大學(xué)出社, 2006.畢業(yè)設(shè)計(jì)(論文)工作進(jìn)度計(jì)劃2011.11.2 接受畢業(yè)論文任務(wù)書,根據(jù)要求在圖書館查閱相關(guān)書籍并通過互聯(lián)網(wǎng)收集相關(guān)資料2011.11.13 論證開題2011.11.25 論文提綱檢查2011.12.10 論文前期檢查2011年12月25日 交初稿,并在老師的指導(dǎo)下修改和完善初稿2012年1月6日 進(jìn)

3、一步完善后,交定稿接受任務(wù)日期 2011年11月10日要求完成日期 2012 年 3月10日學(xué) 生簽名: 2012年 月 日指導(dǎo)教師簽名:年 月 日 系(分院)主任(院長)簽名:年 月 日畢業(yè)設(shè)計(jì)(論文)指導(dǎo)教師評閱意見表姓 名學(xué) 號性 別專 業(yè)機(jī)電一體化班 級畢業(yè)設(shè)計(jì)(論文)題 目單片機(jī)在LED滾動顯示上的設(shè)計(jì)評閱意見 成績指導(dǎo)教師簽字年 月 日畢業(yè)設(shè)計(jì)(論文)答辯意見表姓 名錢李寧學(xué) 號09111061性 別女專 業(yè)機(jī)電一體化班 級機(jī)電092畢業(yè)設(shè)計(jì)(論文)題 目單片機(jī)在LED滾動顯示上的設(shè)計(jì)答辯時(shí)間地 點(diǎn)答辯小組成員姓 名職 稱學(xué) 歷組 長成 員秘 書答辯小組意見 答 辯 成 績:答辯小

4、組組長簽名:年 月 日 河南職業(yè)技術(shù)學(xué)院 PAGE 25PAGE 27 單片機(jī)在LED滾動顯示上的應(yīng)用 摘要:LED顯示屏是一種通過控制半導(dǎo)體發(fā)光的顯示方式,它是由很多個(gè)紅色的發(fā)光二極管組成,靠燈的亮滅來顯示字符。LED顯示屏分為數(shù)碼顯示屏、圖文顯示屏和視頻顯示頻。均由LED矩陣塊組成。目前由于LED顯示屏造價(jià)昂貴,主要應(yīng)用于比較較高檔的場所,主要集中在城市的繁華場所。在舉辦的2010年上海世博會未來各項(xiàng)大項(xiàng)運(yùn)動賽事等新增需求,都將促使LED顯示屏的大規(guī)模發(fā)展。此外,已架設(shè)的大型LED顯示屏幕梅10年將歷經(jīng)一次換機(jī)潮,隨著人們生活水平的提高,戶外LED顯示屏將逐漸應(yīng)用于各個(gè)行業(yè)。本設(shè)計(jì)主要實(shí)現(xiàn)

5、16*16LED顯示屏對文字及簡單圖像的顯示,擴(kuò)展功能有實(shí)時(shí)鐘及實(shí)時(shí)溫度采集,并通過LCD1602及LED點(diǎn)陣屏靜態(tài)及滾動顯示。設(shè)計(jì)分為三大步,分別是軟件設(shè)計(jì),硬件仿真及實(shí)物制作,兼顧理論性及實(shí)用性,充分體現(xiàn)了理論與實(shí)踐相結(jié)合,設(shè)計(jì)過程中不僅學(xué)到了很多有用的知識,也增長了自己的專業(yè)技能,提高了自己的動手能力。 關(guān)鍵字: LED 顯示屏 發(fā)光二極管 半導(dǎo)體 引言隨著電子技術(shù)和信息技術(shù)的迅速發(fā)展,LED的應(yīng)用范圍越來越廣泛。它作為一個(gè)重要的宣傳平臺,已經(jīng)受到全社會的普遍認(rèn)可和廣泛使用。如今,它幾乎成為各個(gè)廣場和大型超市的必備品。然而這些功能的實(shí)現(xiàn)離不開單片機(jī)的功勞。單片機(jī)是一種微型處理器,負(fù)責(zé)數(shù)據(jù)

6、的接收、發(fā)送和處理的工作。LED顯示屏則可以顯示變化的數(shù)字、文字、圖形和圖像等。它不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏等無法比擬的優(yōu)點(diǎn)1。點(diǎn)陣顯示器的特點(diǎn)是可以按照實(shí)物所需要的大小、形狀和顏色進(jìn)行組合,用單片機(jī)控制實(shí)行各種文字或圖形的變化,達(dá)到廣告宣傳和提示的目的。一、系統(tǒng)的硬件部分設(shè)計(jì)本設(shè)計(jì)主要采用單片機(jī)及其周邊芯片,設(shè)計(jì)點(diǎn)陣LED與單片機(jī)的接口電路。(一)、設(shè)計(jì)要求1、通過對80C51單片機(jī)的C語言編程,實(shí)現(xiàn)漢字的左移滾動顯示。2、成本低,功能強(qiáng),設(shè)計(jì)明了化實(shí)用化。3、動態(tài)顯示過程的仿真成果中沒有明顯的抖動。(二)、設(shè)計(jì)基本方案為使該模塊化的點(diǎn)陣式LED顯

7、示屏控制系統(tǒng)使用更加方便,并具有較高的靈活性和視覺舒適性,我對系統(tǒng)的硬件做了非常精心的設(shè)計(jì)4。本設(shè)計(jì)的硬件電路包括:主控單片機(jī)模塊、譯碼器選擇數(shù)據(jù)模塊、LED顯示模塊這三大模塊。總體組成框圖如圖2.1所示。譯碼器LED顯示模塊主控單片機(jī)送斷碼值到顯示模塊驅(qū)動顯示模塊圖2.1 總體結(jié)構(gòu)框圖圖2.1 簡略的描述了系統(tǒng)的結(jié)構(gòu),本系統(tǒng)先由主控單片機(jī)來控制譯碼器進(jìn)行位選,然后再將段碼的值通過主控單片機(jī)的I/O口送往LED顯示模塊進(jìn)行漢字的顯示。(三)、硬件電路芯片介紹該設(shè)計(jì)主要介紹LED顯示電路所采用的主要芯片,如單片機(jī)80C51,譯碼器74LS138。此外,還簡要闡述了選取這些芯片的優(yōu)點(diǎn)。1、單片微型

8、計(jì)算機(jī)簡介單片微型計(jì)算機(jī)(Single Chip Micro Computer)簡稱單片機(jī),它是一種把組成微型計(jì)算機(jī)的各功能部件:中央處理單元CPU、一定容量的隨機(jī)存儲器RAM和只讀存儲器ROM、I/O接口電路、定時(shí)器/計(jì)數(shù)器以及串行口等制作在一塊芯片中的計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能5。單片機(jī)具有結(jié)構(gòu)簡單、控制功能強(qiáng)、可靠性高、體積小、價(jià)格低等特點(diǎn),在家用電器、智能化儀器、工業(yè)控制以及火箭導(dǎo)航尖端技術(shù)領(lǐng)域都發(fā)揮著十分重要的作用6。單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如下圖2.2所示。 單片機(jī) 接口電路及外設(shè)等 + + 軟 件 單片機(jī)應(yīng)用系統(tǒng) 圖2.2 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖 圖2.3 單片機(jī)應(yīng)用系統(tǒng)組

9、成示意圖單片機(jī)實(shí)質(zhì)上是一個(gè)芯片,在實(shí)際應(yīng)用中通常很難直接把單片機(jī)和受控對象進(jìn)行電氣連接,而是必須外加各種擴(kuò)展接口電路以至外部設(shè)備,連同受控對象和單片機(jī)程序軟件構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以輸入、輸出、顯示、測量和控制等外圍電路和軟件能實(shí)現(xiàn)一種或多種功能的實(shí)用系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)的組成示意圖如上圖2.3所示。2、系統(tǒng)芯片的選擇 方案一:8031芯片內(nèi)部無ROM,需要外擴(kuò)程序存儲器,由此造成電路焊接的困難,況且使用8031還需要另外購買其他的芯片,從而造成成本比較高,且性價(jià)比低。方案二:80C51芯片內(nèi)部有ROM,且片內(nèi)ROM全部采用Flash ROM,它能夠在3V的

10、超低壓工作,與51系列單片機(jī)完全兼容。因此,本設(shè)計(jì)選擇80C51芯片。3、主控制單片機(jī)80C51是一種高性能CMOS8位微處理器,俗稱 HYPERLINK /view/1012.htm t _blank 單片機(jī),它帶有4K字節(jié)閃爍可編程可擦除 HYPERLINK /view/132973.htm t _blank 只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱 HYPERLINK /view/1012.htm t _blank 單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100

11、次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的80C51是一種高效微控制器, 80C2051是它的一種精簡版本。80C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案8。80C51引腳即外觀如圖2.4所示。圖2.4 80C51引腳外觀圖4、80C51接口說明Vss(20腳):接地。VCC(40腳):主電源+5V。XTAL1(19腳):接外部晶體的一端。在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),對于HMOS單片機(jī),該端引腳必須接地;對于CHMOS單片

12、機(jī),此引腳作為驅(qū)動端。XTAL2(18腳):接外部晶體的另一端。在片內(nèi)它是個(gè)振蕩電路反相放大器輸出端,振蕩電路的頻率是晶體振蕩頻率。若需采用外部時(shí)鐘電路,對于HMOS單片機(jī),該引腳輸入外部時(shí)鐘脈沖;對于CHMOS單片機(jī),此引腳應(yīng)懸浮。RST(9腳):單片機(jī)剛剛接上電源時(shí),其內(nèi)部各寄存器處于隨機(jī)狀態(tài),在該腳輸入24個(gè)時(shí)鐘周期寬度以上的高電平將使單片機(jī)復(fù)位。PSEN(29腳):在訪問片外程序存儲器時(shí),此端輸出負(fù)脈沖作為存儲器讀選通信號。CPU在向片外存儲器取指令期間,PSEN信號在12個(gè)時(shí)鐘周期中兩次生效。不過,在訪問片外數(shù)據(jù)存儲器時(shí),這兩次有效PSEN信號不出現(xiàn)。PSEN端同樣可驅(qū)動8個(gè)LSTT

13、L負(fù)載。我們根據(jù)PSEN、ALE和XTAL2輸出端是否有信號輸出,可以判別80C51是否在工作。ALE/(30腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時(shí),鎖存低8位地址的輸出脈沖。在Flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時(shí),ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR

14、的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。EA/VPP(31腳):當(dāng)EA端輸入高電平時(shí),CPU從片內(nèi)程序存儲器地址0000H單元開始執(zhí)行程序。當(dāng)?shù)刂烦?KB時(shí),將自動執(zhí)行片外程序存儲器的程序。當(dāng)EA輸入低電平時(shí),CPU僅訪問片外程序存儲器。在對87C51EPROM編程時(shí),此引腳用于施加編程電壓VPP。輸入/輸出引腳:(1) P0.0P0.7(39腳32腳)。(2) P1.0P1.7(1腳 8 腳)。(3) P2.0P2.7(26腳21腳)。(4) P3.0P3.7(10腳17腳)。80C51單片機(jī)P3口的第二功能如表2.1所示。表2.1 80C51單片機(jī)P3口第二功能引腳號第二功能P

15、3.0RXD(串行輸入線)P3.1TXD(串行輸出線)P3.2(外部中斷0輸入線)P3.3 (外部中斷0輸入線)P3.4T0(定時(shí)器0外部計(jì)數(shù)脈沖輸入)P3.5T1(定時(shí)器1外部計(jì)數(shù)脈沖輸入)P3.6(外部數(shù)據(jù)存儲器寫選通信號輸出)P3.7(外部數(shù)據(jù)存儲器寫選通信號輸出)一個(gè)16*16的點(diǎn)陣顯示系統(tǒng)由單片機(jī)80C51,74LS138,1個(gè)16*16的LED點(diǎn)陣模塊,單片機(jī)的時(shí)鐘復(fù)位電路和P0口的上拉電阻組成。16*32的點(diǎn)陣顯示電路由單片機(jī)80C51,4個(gè)74LS138和2個(gè)16*16的LED點(diǎn)陣模塊組成。該電路所設(shè)計(jì)的電子屏可顯示多個(gè)漢字,并實(shí)現(xiàn)左移滾動。(四)、LED點(diǎn)陣制作 HYPERL

16、INK /view/52538.htm t _blank LED(Light Emitting Diode),50年前人們已經(jīng)了解半導(dǎo)體材料可產(chǎn)生光線的基本知識,第一個(gè)商用二極管產(chǎn)生于1960年。LED是英文Light Emitting Diode(發(fā)光二極管)的縮寫,它的基本結(jié)構(gòu)是一塊電致發(fā)光的半導(dǎo)體材料,置于一個(gè)有引線的架子上,然后四周用環(huán)氧樹脂密封,即固體封裝,所以能起到保護(hù)內(nèi)部芯線的作用,所以LED的抗震性能好9。點(diǎn)陣式LED的顯示采用逐列掃描方式。工作時(shí),由單片機(jī)取出第一列需要顯示的內(nèi)容經(jīng)延時(shí)一段時(shí)間后再進(jìn)行下一列點(diǎn)陣數(shù)據(jù)的顯示。需要注意的是,每次只能選通一列數(shù)據(jù),即要通過不斷的逐列

17、掃描變換來實(shí)現(xiàn)漢字或字符的顯示。1、顯示模塊的選擇方案一:點(diǎn)陣顯示,是由八行八列的發(fā)光二極管集成在一塊電路上組成,主要用來顯示漢字,同時(shí)也能顯示數(shù)字和少量圖像。而且程序簡單,顯示的效果比較清晰。方案二:LED數(shù)碼管靜態(tài)顯示,電路容易理解且驅(qū)動的程序簡單,多片七段譯碼器驅(qū)動顯示,這不僅增加了成本,還需要占用單片機(jī)多個(gè)I/O口,也給電路的焊接帶來一定的困難,因此不選用這種方案作為顯示模塊。經(jīng)過兩種方案的比較,最后選擇方案一:LED的點(diǎn)陣顯示。2、LED驅(qū)動模塊的選擇方案一:采用靜態(tài)鎖存方式,將每一個(gè)LED發(fā)光管的一端接至單片機(jī)的一個(gè)I/O口,另一端通過電阻接電源。這種方法可以直接驅(qū)動LED,原理簡

18、單,驅(qū)動能力強(qiáng),LED的亮度也可以通過限流電阻調(diào)節(jié),非常方便,但此種方法太浪費(fèi)單片機(jī)的I/O口,只適合于較小的系統(tǒng)。方案二:采用動態(tài)掃描方式,通過三極管驅(qū)動并聯(lián)在一起的LED發(fā)光管的一端(共陰極或共2端),LED發(fā)光管的另一腳接通用I/O口,控制其亮滅。該方法能驅(qū)動較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源10。比較以上兩種方案,系統(tǒng)設(shè)計(jì)中采用方案二。3、主要芯片74LS138的介紹譯碼器是組合邏輯電路的一個(gè)重要的器件,芯片74LS138為 3線8線譯碼器, 74LS138譯碼器的引腳(管腳)如下圖2.5所示。圖2.5 74LS138的引腳圖所謂譯碼,就是將每一組代碼的含意翻譯出來的過

19、程。譯碼是編碼的逆過程。廣泛被使用的譯碼器是74LS138譯碼器,因此該設(shè)計(jì)中采用74LS138且其作用也就是將一組碼轉(zhuǎn)換為想要的確定的信息。74LS138為3線8線譯碼器,共有54/74S138和54/74LS138 兩種線路結(jié)構(gòu)型式。其工作原理:當(dāng)一個(gè)選通端(E3)為高電平,另兩個(gè)選通端(E1和E2)為低電平時(shí),可將地址端(A、B、C)的二進(jìn)制編碼在一個(gè)對應(yīng)的輸出端以低電平的方式譯出。利用E1、E2和E3可級聯(lián)擴(kuò)展成一個(gè)24線的譯碼器;若外接一個(gè)反相器還可以級聯(lián)擴(kuò)展成為32線譯碼器。若將選通端中的一個(gè)作為數(shù)據(jù)的輸入端時(shí),74LS138還可作 HYPERLINK /view/990217.h

20、tm t _blank 數(shù)據(jù)分配器。假設(shè)地址端的值為001,那么則說明其/Y1輸出口是有效的,且其輸出值為10111111。假設(shè)地址端的值為010,那么則說明其/Y2輸出口是有效的,且其輸出值為11011111。假設(shè)地址端的值為011,那么則說明其/Y2輸出口是有效的,且其輸出值為11101111。在該畢業(yè)設(shè)計(jì)中,由于單片機(jī)中的P2口只有八個(gè)數(shù)據(jù)線,顯然不夠三十二個(gè)數(shù)據(jù)使用。因此,74LS138譯碼器在此是用于擴(kuò)展數(shù)據(jù)的輸入端的。4個(gè)74LS138譯碼器正好一共有三十二個(gè)輸出端口,于是就對應(yīng)了LED顯示屏中的三十二個(gè)列選端。滿足了16*32點(diǎn)陣式LED顯示屏的列需求。74LS138譯碼器引腳功

21、能如表2.2所示。表2.2 74LS138譯碼器功能表 輸 入輸 出S1S2+S3ABC01111111111111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110(五)、16*16 LED點(diǎn)陣顯示制作我們以Version1.0字模精靈為例,每一個(gè)漢字由一個(gè)16行16列的點(diǎn)陣組成顯示。即國標(biāo)漢字庫中的每一個(gè)字均由256點(diǎn)陣來表示。1、16*16 LED點(diǎn)陣的內(nèi)部結(jié)構(gòu)及工作原理我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理

22、解為一幅圖像。事實(shí)上這個(gè)漢字屏幕不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。這里我們以“尚”字說明,如圖2.6所示。 圖2.6 “尚”字顯示圖用8位的80C51單片機(jī)控制,由于單片機(jī)的總線為8位,一個(gè)字需要拆分為2個(gè)部分。在此我們把它拆分為上部和下部,上部由8*16點(diǎn)陣組成,下部也由8*16點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是左上角的第一列的上半部分,即第0列的P00P07口。方向?yàn)镻00到P07,顯示漢字“學(xué)”時(shí),由上往下排列,為P00亮,P01滅,P02滅,P03滅,P04滅,P05滅,P 06滅,P 07 滅。即二進(jìn)制10000000,轉(zhuǎn)換為16進(jìn)制為 80H。第一列的上半

23、部完成后,繼續(xù)掃描第一列的下半部,為了接線的方便,我們?nèi)栽O(shè)計(jì)成由上往下掃描,從上圖可以看到,這一列全部為不亮,即為00000000,16進(jìn)制則為00H。 然后單片機(jī)轉(zhuǎn)向第二列的上半部,P01點(diǎn)亮,為01000000,即16進(jìn)制40h.這一列完成后繼續(xù)進(jìn)行下半部分的掃描,P20點(diǎn)亮,為二進(jìn)制00000001,即16進(jìn)制01H。依照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個(gè)8位,可以得出漢字“尚”的掃描代碼為: 080H,000H, 040H,001H, 067H,0FFH,034H,004H 01CH,008H, 015H,0FCH,007H,030H,0FDH,050H 005H,090H,

24、 00DH,050H, 017H,0F8H,064H,012H 02CH,009H, 017H,0FEH, 020H,002H,040H,001H由這個(gè)原理可以看出,無論顯示何種字體或圖像,都可以用這個(gè)方法來分析出它的掃描代碼從而顯示在屏幕上。不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件,就不必去畫表格算代碼了。打開字模,設(shè)定一下輸出方式, 輸入漢字后,再單擊“取?!薄JM(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復(fù)制到我們的C程序中即可,如下圖2.7所示。圖2.7 漢字字模生成圖(六)、硬件系統(tǒng)的整體設(shè)計(jì)圖與原理分析硬件系統(tǒng)的整體設(shè)計(jì)圖如下圖2.8所示。圖2.8 硬件系統(tǒng)的整體設(shè)計(jì)圖原理分

25、析:Proteus 7.4軟件中只有8*8和5*7等LED點(diǎn)陣,所以需要由小的LED屏拼接成一個(gè)大的LED顯示屏。上圖的LED顯示部分是由8個(gè)8*8的點(diǎn)陣構(gòu)成整體的16*32點(diǎn)陣屏,可以同時(shí)顯示兩個(gè)漢字(或4個(gè)英文字母)。要注意的是:在Proteus7.4軟件中,由于點(diǎn)陣塊數(shù)太多,所以其接線比較的復(fù)雜。此處采用以上接線方式,把8個(gè)LED點(diǎn)陣屏以“一共兩行,每行4個(gè)”的方式緊湊連接在一起,隱藏了那些錯(cuò)綜復(fù)雜的連線,使我們在視覺上覺得更清新,更一目了然。原理圖中,拼接后的點(diǎn)陣式LED顯示屏采用的是逐列掃描的工作方式。將事先已經(jīng)編寫好的C語言程序輸入到單片機(jī)中,80C51單片機(jī)的P2口的P2.0口至

26、P2.2口連接4個(gè)74LS138(3線8線)譯碼器的輸入端,再由4組8個(gè)相應(yīng)的輸出端,與連接LED顯示屏對應(yīng)的列端相連,用來選中所要顯示的字符的列。單片機(jī)的P0口負(fù)責(zé)輸入所要顯示的第一個(gè)字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第二個(gè)字的代碼信息。然后又由P0口負(fù)責(zé)輸入所要顯示的第二個(gè)字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第三個(gè)字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。另外,在對單片機(jī)進(jìn)行校驗(yàn)時(shí),P0口須接上10K左右的上拉電阻,就是上圖中的RP1電阻。對于74LS138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此

27、時(shí)譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個(gè)譯碼器的原理都是這樣。 (七)、小結(jié)本章節(jié)主要介紹了設(shè)計(jì)中硬件電路用到的單片機(jī)80C51芯片的總體結(jié)構(gòu)和各個(gè)重要引腳的功能、顯示電路中主要器件74LS138譯碼器的各個(gè)引腳及其功能、以及整體設(shè)計(jì)結(jié)構(gòu)框圖的講解和具體實(shí)現(xiàn)字符的連續(xù)左移顯示的詳細(xì)分析。二、系統(tǒng)的軟件部分設(shè)計(jì)應(yīng)用系統(tǒng)中的應(yīng)用軟件是根據(jù)系統(tǒng)功能要求而設(shè)計(jì)的,能可靠地實(shí)現(xiàn)系統(tǒng)的各種功能。 (一)、程序設(shè)計(jì)思路與結(jié)構(gòu)系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序、延時(shí)程序、顯示子程序。1、程序設(shè)計(jì)思路計(jì)算機(jī)按照給定的程序,逐條執(zhí)行指令,以完成某項(xiàng)規(guī)定的任務(wù)。因此,使用計(jì)算機(jī)必須編寫出計(jì)

28、算機(jī)能執(zhí)行的程序,用簡短的C語言程序進(jìn)行設(shè)計(jì),實(shí)現(xiàn)與計(jì)算機(jī)的通訊,能方便改動顯示的內(nèi)容,使顯示內(nèi)容能夠一個(gè)接一個(gè)的左移滾動慢慢的顯示。由單片機(jī)80C51的P2口輸出進(jìn)行片選。片選1有效時(shí),將所要顯示的漢字的段碼值送給P0,P1。驅(qū)動相應(yīng)段點(diǎn)亮。直到送完16個(gè)段碼就可以顯示一個(gè)漢字了。2、程序設(shè)計(jì)流程圖系統(tǒng)程序主要由開始、初始化、主程序、字庫等組成。其中主程序和子程序的流程圖如圖3.1和圖3.2所示。Y開始初始化調(diào)用顯示程序調(diào)整數(shù)據(jù)指針是否顯示完圖3.1 主程序流程圖對圖3.1主程序流程圖的簡要分析如下:首先“開始”,然后對整個(gè)系統(tǒng)進(jìn)行初始化,之后調(diào)用相應(yīng)的顯示程序,之后開始調(diào)整一下數(shù)據(jù)的指針,

29、判斷此時(shí)需要顯示的字符是否已經(jīng)顯示完畢。如果已經(jīng)顯示完畢就返回到系統(tǒng)“初始化”的時(shí)刻繼續(xù)進(jìn)行接下來的流程,如果沒有顯示完畢則返回到“調(diào)用顯示程序”的時(shí)刻繼續(xù)接著的流程。開始設(shè)一幀顯示時(shí)間關(guān)閉顯示并調(diào)整指針設(shè)片選及數(shù)據(jù)指針查漢字上部數(shù)據(jù)及顯示查漢字下部數(shù)據(jù)及顯示延時(shí)1ms結(jié)束是否顯示完漢字一幀時(shí)間是否到NNYY圖3.2 顯示程序流程圖對圖3.2顯示程序流程圖的簡要分析如下:首先開始,之后設(shè)定顯示一幀字符所用的時(shí)間,然后設(shè)定片選指針以及數(shù)據(jù)指針,然后查找相應(yīng)的漢字或字符的上部數(shù)據(jù)及顯示,接著查找查相應(yīng)的漢字或字符的下部數(shù)據(jù)及顯示,然后對整個(gè)系統(tǒng)延時(shí)1ms,之后關(guān)閉之前顯示的字符內(nèi)容并調(diào)整相關(guān)數(shù)據(jù)的

30、指針,此時(shí)判斷需要顯示的字符是否顯示完畢。若沒有顯示完畢,則返回到“設(shè)片選及數(shù)據(jù)指針”處進(jìn)行重新工作流程;若已經(jīng)顯示完畢,則判斷此時(shí)一幀的時(shí)間是否完畢。如果時(shí)間沒有完畢,則返回至“設(shè)定一幀顯示時(shí)間”處重新設(shè)定該時(shí)間;反之整個(gè)系統(tǒng)程序結(jié)束完成。(二)、 模塊程序設(shè)計(jì)該設(shè)計(jì)中主要由系統(tǒng)初始化、LED動態(tài)顯示、漢字顯示程序設(shè)計(jì)以及顯示設(shè)計(jì)幾個(gè)部分組成。1、系統(tǒng)初始化將事先已經(jīng)編寫好的C語言程序輸入到單片機(jī)中,80C51單片機(jī)的P2口的P2.0口至P2.2口連接4個(gè)74LS138(3線8線)譯碼器的輸入端,再由4組8個(gè)相應(yīng)的輸出端,與連接LED顯示屏對應(yīng)的的列端相連,用來選中所要顯示的字符的列。對于7

31、4LS138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此時(shí)譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個(gè)譯碼器的原理都是這樣。 2、LED動態(tài)顯示此次設(shè)計(jì)理論顯示結(jié)果為在顯示屏上,漢字按照從右向左的順序一個(gè)個(gè)顯示。設(shè)計(jì)時(shí)可采用如下方法:首先將LED顯示屏對應(yīng)的顯示緩沖區(qū)全部清零,即 LED顯示空白,然后通過延時(shí)程序來設(shè)定各個(gè)字符的動態(tài)顯示時(shí)間,顯示緩沖區(qū)依次加入一個(gè)漢字點(diǎn)陣數(shù)據(jù)并進(jìn)行掃描顯示,這樣就可達(dá)到動態(tài)顯示的效果12。 單片機(jī)的P0口負(fù)責(zé)輸入所要顯示的第一個(gè)字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第二個(gè)字的代碼信息。然后又由P0口負(fù)責(zé)輸入所要顯示的第二個(gè)

32、字的代碼信息,同時(shí)P1口來負(fù)責(zé)輸入所要顯示的第三個(gè)字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。3、漢字顯示程序設(shè)計(jì)打開“字模提取伴侶”軟件,設(shè)定一下參數(shù)設(shè)置,即:選擇C51格式,字節(jié)倒序,冗余格式,縱向取模。 這樣輸入單個(gè)的漢字后,再單擊“取?!薄4藭r(shí)十六進(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復(fù)制到我們的C語言程序中就可以了13。從字模提取伴侶中得到需要顯示漢字的代碼值。如“余境成”的代碼為:unsigned char code ziku= /字符碼的存放格式為:從左到右共16列,并按列的上下部分依次存放 /一組

33、即為一列/*轉(zhuǎn)換字符 余 */0 x01,0 x00,0 x01,0 x00,0 x02,0 x80,0 x04,0 x40,0 x08,0 x20,0 x10,0 x10,0 x2F,0 xEE,0 xC1,0 x04,0 x01,0 x10,0 x3F,0 xF8,0 x01,0 x00,0 x09,0 x20,0 x19,0 x18,0 x21,0 x0C,0 x45,0 x04,0 x02,0 x00,/*轉(zhuǎn)換字符 境 */0 x20,0 x80,0 x20,0 x48,0 x27,0 xFC,0 x21,0 x10,0 x20,0 xA4,0 xFF,0 xFE,0 x20,0 x0

34、8,0 x23,0 xFC,0 x22,0 x08,0 x23,0 xF8,0 x22,0 x08,0 x3B,0 xF8,0 xE1,0 x20,0 x41,0 x22,0 x02,0 x22,0 x0C,0 x1E,/*轉(zhuǎn)換字符 成 */0 x00,0 x80,0 x00,0 xA0,0 x00,0 x90,0 x3F,0 xFC,0 x20,0 x80,0 x20,0 x80,0 x20,0 x84,0 x3E,0 x44,0 x22,0 x48,0 x22,0 x48,0 x22,0 x30,0 x2A,0 x20,0 x24,0 x62,0 x40,0 x92,0 x81,0 x0A

35、,0 x00,0 x06;4、顯示設(shè)計(jì)漢字顯示的原理:漢字的顯示主要是通過將需要顯示的漢字的段碼值送入顯示模塊而完成的。首先從字模軟件中得到需要顯示漢字的段碼值。while (1) for (i=0;i8;i+) /顯示左半邊屏幕 P0=*(p+offset+2*i); P2=i|0 x08; /P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6 delay(); P0=*(p+offset+2*i+1); P2=i|0 x10; /P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7 delay(); for (i=8;i16;i+) /顯示右半邊屏幕 P0=*(p+offset+

36、2*i); P2=(i-8)|0 x20; /P2.5=1 P2.4=0, P2.3=0 選中U4,輸出掃描碼U8 delay(); P0=*(p+offset+2*i+1); P2=(i-8)|0 x40; /P2.6=1 P2.5=0, P2.4=0 選中U5,輸出掃描碼U9 delay(); (三)、小結(jié)本章主要介紹了軟件設(shè)計(jì)中的主程序和顯示程序的流程圖以及對其內(nèi)容的簡要介紹,以及相關(guān)的軟件程序,并最終達(dá)到所要求的LED顯示結(jié)果。三、系統(tǒng)仿真Proteus內(nèi)容全面包括其能實(shí)驗(yàn)的內(nèi)容包括軟件部分的匯編、C51 等語言的調(diào)試過程,也包括硬件接口電路中的大部分類型。對同一類功能的接口電路,可以

37、采用不同的硬件來搭建完成,因此采用Proteus 仿真軟件進(jìn)行實(shí)驗(yàn)教學(xué),克服了用單片機(jī)實(shí)驗(yàn)教學(xué)板教學(xué)中硬件電路固定、學(xué)生不能更改、實(shí)驗(yàn)內(nèi)容固定等方面的局限性,可以擴(kuò)展學(xué)生的思路和提高學(xué)生的學(xué)習(xí)興趣。(一)、仿真環(huán)境介紹Proteus是目前最好的模擬單片機(jī)外圍器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件)14。當(dāng)然,軟件仿真精度有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開發(fā)板和仿真器當(dāng)然是最好選擇,可是對于單片機(jī)愛好者,或者簡單的開發(fā)應(yīng)該是比較好的選擇。Proteus與

38、其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。對于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。KeilC51是美國KeilC Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。KeilC5軟件提供豐富的庫函數(shù)和功能強(qiáng)

39、大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。(二)、仿真過程與結(jié)果利用以上兩種軟件,就可以進(jìn)行仿真了。這里以一個(gè)16*32點(diǎn)陣漢字顯示為例說明。1、繪制電路圖運(yùn)行PROTEUS的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色、圖形界面大小等項(xiàng)目。通過工具欄中的P (從庫中選擇元件命令)命令,在PICK DEVICES窗口中選擇電路所需的元件,放置元件并調(diào)整其相

40、對位置,元件參數(shù)設(shè)置,元器件間連線,將電路圖繪制完畢。2、HEX文件的生成利用KEIL51生成HEX文件。具體方法如下:(1) 打開單片機(jī)軟件開發(fā)系統(tǒng)KEIL uVision,單擊“uVision”菜單中的“PROJECT”,在此下拉菜單中單擊“NEW PROJECT”后。彈出“CREAT NEW PROJECT”對話框。鍵入新建項(xiàng)目名稱。(2) 鍵入新建項(xiàng)目名并單擊“確定后”,在彈出的“SELECT DEVICE”對話框中選擇合適的單片機(jī)型號,如80C51。(3) 單擊“uVision”菜單中的“FILE”,在此下拉菜單中選擇“NEW”后,打開一個(gè)空的文本編輯口,在此窗口總鍵入程序,創(chuàng)建新的

41、源程序“一個(gè)16*16點(diǎn)陣漢字顯示.C”(如是匯編語言程序的話為“一個(gè)16*16點(diǎn)陣漢字顯示.ASM)文件。(4) 在左邊的“PROJECT”窗口的“FILE”頁中單擊文件組,再單擊鼠標(biāo)右鍵后,在彈出的窗口中選中“ADD FILES TO GROUP” “SOURCE GROUP1”選項(xiàng),將“一個(gè)16*16點(diǎn)陣漢字顯示.C”程序?qū)氲健癝OURCE GROUP 1”中。(5) 在“PROJECT”下拉菜單中,選擇“OPTIONS FOR TARGET”對話框,在此對話框中“OUTPUT”選項(xiàng)卡中的“CREAT HEX FILE”選項(xiàng)。(6) 在“PROJECT”下拉菜單中,選擇“REBUILD ALL TARGET FILES”項(xiàng)。若程序編譯成功,將生產(chǎn)“一個(gè)16*16點(diǎn)陣漢字顯示.HEX”文件。3、調(diào)試與結(jié)果 在PROTEUS ISIS編輯窗口中,單擊鼠標(biāo)右鍵選中單片機(jī)80

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論