基于單片機(jī)led滾動顯示系統(tǒng)設(shè)計_第1頁
基于單片機(jī)led滾動顯示系統(tǒng)設(shè)計_第2頁
基于單片機(jī)led滾動顯示系統(tǒng)設(shè)計_第3頁
基于單片機(jī)led滾動顯示系統(tǒng)設(shè)計_第4頁
基于單片機(jī)led滾動顯示系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

三門峽職業(yè)技術(shù)學(xué)院信息工程系畢業(yè)設(shè)計論文畢業(yè)設(shè)計項目基于51單片機(jī)的LED滾動顯示系統(tǒng)專業(yè)計算機(jī)應(yīng)用(嵌入式方向)年級09學(xué)號姓名指導(dǎo)老師摘要LED顯示屏是一種通過控制半導(dǎo)體發(fā)光的顯示方式,它是由很多個紅色的發(fā)光二極管組成,靠燈的亮滅來顯示字符。LED顯示屏分為數(shù)碼顯示屏、圖文顯示屏和視頻顯示頻。均由LED矩陣塊組成。目前由于LED顯示屏造價昂貴,主要應(yīng)用于比較較高檔的場所,主要集中在城市的繁華場所。在舉辦的2010年上海世博會未來各項大項運(yùn)動賽事等新增需求,都將促使LED顯示屏的大規(guī)模發(fā)展。此外,已架設(shè)的大型LED顯示屏幕梅10年將歷經(jīng)一次換機(jī)潮,隨著人們生活水平的提高,戶外LED顯示屏將逐漸應(yīng)用于各個行業(yè)。本設(shè)計主要實現(xiàn)1616LED顯示屏對文字及簡單圖像的顯示,擴(kuò)展功能有實時鐘及實時溫度采集,并通過LCD1602及LED點陣屏靜態(tài)及滾動顯示。設(shè)計分為三大步,分別是軟件設(shè)計,硬件仿真及實物制作,兼顧理論性及實用性,充分體現(xiàn)了理論與實踐相結(jié)合,設(shè)計過程中不僅學(xué)到了很多有用的知識,也增長了自己的專業(yè)技能,提高了自己的動手能力。關(guān)鍵字LED顯示屏發(fā)光二極管半導(dǎo)體ABSTRACTLEDDISPLAYISTHEDISPLAYMODECONTROLLINGBYTHESEMICONDUCTORLIGHTEMITTINGDIODE,ITPROBABLYLOOKSLIKETHATCOMPOSITIONBYANUMBEROFLEDISUSUALLYAREDLIGHTEMITTINGDIODESWHICHSHOWCHARACTERBYTHELEDONANDOFF,LEDDISPLAYISDIVIDEDINTODIGITALDISPLAY,GRAPHICDISPLAYANDVIDEODISPLAY,WHICHISCOMPOSITIONEDBYLEDMATRIXBLOCK,ASTHECOSTOFLEDDISPLAYEXPENSIVECURRENTLY,MAINLYUSEDINRELATIVELYHIGHPLACES,CONCENTRATEDINTHECITIESBUSTINGPLACE,BEINGHELDINTHESHANGHAIWORDEXPO2010,FUTURELARGESCALESPORTINGEVENTSANDOTHERADDITIONALREQUIREMENTSWILLPROMOTELARGESCALEDEVELOPMENTOFLEDDISPLAY,INADDITION,THEORIGINALLARGESCALELEDDISPLAYSCREENWILLBEUPDATINGONCEPER10YEARS,WITHTHEIMPROVEMENTOFPEOPLESLIVINGSTANDARD,OUTDOORLEDDISPLAYWILLGRADUALLYBEUSEDINVARIOUSINDUSTRIESTHEMAINACHIEVEMENTOFTHISDESIGNIS1616LEDDISPLAYSHOWTHETEXTANDSIMPLEIMAGE,THEEXTENSIONFUNCTIONINCLUDEREALTIMECLOCKANDREALTIMETEMPERATUREMEASUREMENTWHICHISDISPLAYEDBYLCD1602ANDLEDDOTMATRIXDISPLAYSCREENTHISDESIGNISDIVIDEDINTOTHREEBIGSTEPS,WHICHISSOFTWAREDESIGN,HARDWARESIMULATIONANDINKINDPRODUCTION,FULLYREFLECTSTHECOMBINATIONOFTHEORYANDPRACTICEFROMTHISDESIGNPROCESS,IMNOTONLYLEARNEDALOTOFUSEFULKNOWLEDGE,ALSOINCREASEMYPROFESSIONALSKILLSANDIMPROVEMYPRACTICALABILITYKEYWORDSLEDDISPLAYSEMICONDUTOR目錄1緒論311課題背景及意義512本課題相關(guān)介紹713論文章節(jié)安排72系統(tǒng)的硬件部分設(shè)計821設(shè)計要求822設(shè)計基本方案823硬件電路芯片介紹8231單片微型計算機(jī)簡介8232系統(tǒng)芯片的選擇9233主控制單片機(jī)923480C51接口說明102LED點陣制作12241顯示模塊的選擇12242LED驅(qū)動模塊的選擇12243主要芯片74LS138的介紹12251616LED點陣顯示制作142511616LED點陣的內(nèi)部結(jié)構(gòu)及工作原理1426硬件系統(tǒng)的整體設(shè)計圖與原理分析1627小結(jié)183系統(tǒng)的軟件部分設(shè)計1931程序設(shè)計思路與結(jié)構(gòu)19311程序設(shè)計思路19312程序設(shè)計流程圖1932模塊程序設(shè)計21321系統(tǒng)初始化21322LED動態(tài)顯示21323漢字顯示程序設(shè)計21324顯示設(shè)計2233小結(jié)234系統(tǒng)仿真2441仿真環(huán)境介紹2442仿真過程與結(jié)果24421繪制電路圖24422HEX文件的生成25423調(diào)試與結(jié)果2543小結(jié)27結(jié)束語28致謝29參考文獻(xiàn)30附錄A點陣電路整體硬件電路圖311緒論隨著電子技術(shù)和信息技術(shù)的迅速發(fā)展,LED的應(yīng)用范圍越來越廣泛。它作為一個重要的宣傳平臺,已經(jīng)受到全社會的普遍認(rèn)可和廣泛使用。如今,它幾乎成為各個廣場和大型超市的必備品。然而這些功能的實現(xiàn)離不開單片機(jī)的功勞。單片機(jī)是一種微型處理器,負(fù)責(zé)數(shù)據(jù)的接收、發(fā)送和處理的工作。LED顯示屏則可以顯示變化的數(shù)字、文字、圖形和圖像等。它不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏等無法比擬的優(yōu)點1。點陣顯示器的特點是可以按照實物所需要的大小、形狀和顏色進(jìn)行組合,用單片機(jī)控制實行各種文字或圖形的變化,達(dá)到廣告宣傳和提示的目的。11課題背景及意義LED點陣電子顯示屏是集微電子技術(shù)、計算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷動、態(tài)范圍廣、亮度高、壽命長、工作穩(wěn)定可靠等優(yōu)點而成為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。點陣式LED顯示技術(shù)是近幾年發(fā)展較快的顯示技術(shù)之一,其抗干擾能力強(qiáng)等特點使得其在戶外廣告、公共告示等方面得到了廣泛的應(yīng)用,因此研究點陣式LED顯示屏接口與控制技術(shù)具有較高的實際應(yīng)用價值。LED顯示屏的應(yīng)用涉及社會經(jīng)濟(jì)的許多領(lǐng)域,主要包括1證券交易、金融信息顯示。2機(jī)場航班動態(tài)信息顯示。3車站旅客引導(dǎo)信息顯示。4體育場館、道路交通信息顯示。5調(diào)度指揮中心顯示。6郵政、電信、商場購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳顯示。7廣告媒體新產(chǎn)品宣傳顯示等。實際生活中經(jīng)常會遇到一些特殊要求的動態(tài)顯示,比如電梯運(yùn)行中指示箭頭的上下移動、某些智能儀表幅值的條形顯示、廣告中廠家的商標(biāo)顯示等。這時一般的顯示系統(tǒng)就很難達(dá)到要求2。另外,由于受到存儲器本身的局限,其特殊字符或圖案也往往難以顯示,同時顯示內(nèi)容也不能隨意更改。12本課題相關(guān)介紹本課題要求自選單片機(jī)及其周邊芯片,設(shè)計點陣LED與單片機(jī)的接口電路,并編制單片機(jī)的軟件,并對系統(tǒng)進(jìn)行仿真調(diào)試。該設(shè)計提出采用軟件仿真平PROTEUS對點陣式LED滾動漢字顯示屏進(jìn)行仿真,在PROTEUS中完成硬件電路的設(shè)計,同時采用KEILC集成開發(fā)平臺設(shè)計程序,可在計算機(jī)上仿真實現(xiàn)點陣滾動漢字顯示屏的滾動顯示。本設(shè)計提出一種利用單片機(jī)控制的LED顯示系統(tǒng)通訊方法。該方法可以對顯示內(nèi)容包括漢字和特殊圖符進(jìn)行實時控制,從而實現(xiàn)滾動的動態(tài)顯示效果。該方法同時還可以調(diào)節(jié)動態(tài)顯示的速度,并且用戶也可以同時進(jìn)行顯示效果的預(yù)覽仿真,顯示內(nèi)容亦可以較方便的修改3。13論文章節(jié)安排在撰寫此論文之前,我在學(xué)校的圖書館里參閱了大量有關(guān)單片機(jī)介紹和LED顯示電路設(shè)計等相關(guān)書籍,并且通過網(wǎng)絡(luò)查找搜集了較多的相關(guān)論文。經(jīng)過反復(fù)多次對這些資料進(jìn)行詳細(xì)的摘要和嚴(yán)謹(jǐn)?shù)膶Ρ日恚覐闹袑W(xué)習(xí)到很多新的相關(guān)專業(yè)知識,加深并豐富了我對單片機(jī)的理解。最后,我寫出了這篇點陣LED顯示電路和系統(tǒng)設(shè)計的論文。其中各個章節(jié)安排如下第一章緒論主要講述該設(shè)計的背景,意義以及設(shè)計思想。第二章系統(tǒng)的總體方案設(shè)計主要是硬件組成部分及與設(shè)計電路相關(guān)的芯片介紹。第三章系統(tǒng)的軟件部分。第四章系統(tǒng)仿真,顯示符合設(shè)計要求的顯示結(jié)果。2系統(tǒng)的硬件部分設(shè)計本設(shè)計主要采用單片機(jī)及其周邊芯片,設(shè)計點陣LED與單片機(jī)的接口電路。21設(shè)計要求1通過對80C51單片機(jī)的C語言編程,實現(xiàn)漢字的左移滾動顯示。2成本低,功能強(qiáng),設(shè)計明了化實用化。3動態(tài)顯示過程的仿真成果中沒有明顯的抖動。22設(shè)計基本方案為使該模塊化的點陣式LED顯示屏控制系統(tǒng)使用更加方便,并具有較高的靈活性和視覺舒適性,我對系統(tǒng)的硬件做了非常精心的設(shè)計4。本設(shè)計的硬件電路包括主控單片機(jī)模塊、譯碼器選擇數(shù)據(jù)模塊、LED顯示模塊這三大模塊??傮w組成框圖如圖21所示。譯碼器LED顯示模塊主控單片機(jī)送斷碼值到顯示模塊驅(qū)動顯示模塊圖21總體結(jié)構(gòu)框圖圖21簡略的描述了系統(tǒng)的結(jié)構(gòu),本系統(tǒng)先由主控單片機(jī)來控制譯碼器進(jìn)行位選,然后再將段碼的值通過主控單片機(jī)的I/O口送往LED顯示模塊進(jìn)行漢字的顯示。23硬件電路芯片介紹該設(shè)計主要介紹LED顯示電路所采用的主要芯片,如單片機(jī)80C51,譯碼器74LS138。此外,還簡要闡述了選取這些芯片的優(yōu)點。231單片微型計算機(jī)簡介單片微型計算機(jī)SINGLECHIPMICROCOMPUTER簡稱單片機(jī),它是一種把組成微型計算機(jī)的各功能部件中央處理單元CPU、一定容量的隨機(jī)存儲器RAM和只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行口等制作在一塊芯片中的計算機(jī),從而實現(xiàn)微型計算機(jī)的基本功能5。單片機(jī)具有結(jié)構(gòu)簡單、控制功能強(qiáng)、可靠性高、體積小、價格低等特點,在家用電器、智能化儀器、工業(yè)控制以及火箭導(dǎo)航尖端技術(shù)領(lǐng)域都發(fā)揮著十分重要的作用6。單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖如下圖22所示。單片機(jī)接口電路及外設(shè)等軟件單片機(jī)應(yīng)用系統(tǒng)圖22單片機(jī)內(nèi)部結(jié)構(gòu)示意圖圖23單片機(jī)應(yīng)用系統(tǒng)組成示意圖單片機(jī)實質(zhì)上是一個芯片,在實際應(yīng)用中通常很難直接把單片機(jī)和受控對象進(jìn)行電氣連接,而是必須外加各種擴(kuò)展接口電路以至外部設(shè)備,連同受控對象和單片機(jī)程序軟件構(gòu)成一個單片機(jī)應(yīng)用系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,配以輸入、輸出、顯示、測量和控制等外圍電路和軟件能實現(xiàn)一種或多種功能的實用系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)的組成示意圖如上圖23所示7。232系統(tǒng)芯片的選擇方案一8031芯片內(nèi)部無ROM,需要外擴(kuò)程序存儲器,由此造成電路焊接的困難,況且使用8031還需要另外購買其他的芯片,從而造成成本比較高,且性價比低。方案二80C51芯片內(nèi)部有ROM,且片內(nèi)ROM全部采用FLASHROM,它能夠在3V的超低壓工作,與51系列單片機(jī)完全兼容。因此,本設(shè)計選擇80C51芯片。233主控制單片機(jī)80C51是一種高性能CMOS8位微處理器,俗稱單片機(jī),它帶有4K字節(jié)閃爍可編程可擦除只讀存儲器FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的80C51是一種高效微控制器,80C2051是它的一種精簡版本。80C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案8。80C51引腳即外觀如圖24所示。圖2480C51引腳外觀圖23480C51接口說明VSS20腳接地。VCC40腳主電源5V。XTAL119腳接外部晶體的一端。在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,對于HMOS單片機(jī),該端引腳必須接地;對于CHMOS單片機(jī),此引腳作為驅(qū)動端。XTAL218腳接外部晶體的另一端。在片內(nèi)它是個振蕩電路反相放大器輸出端,振蕩電路的頻率是晶體振蕩頻率。若需采用外部時鐘電路,對于HMOS單片機(jī),該引腳輸入外部時鐘脈沖;對于CHMOS單片機(jī),此引腳應(yīng)懸浮。RST9腳單片機(jī)剛剛接上電源時,其內(nèi)部各寄存器處于隨機(jī)狀態(tài),在該腳輸入24個時鐘周期寬度以上的高電平將使單片機(jī)復(fù)位。PSEN29腳在訪問片外程序存儲器時,此端輸出負(fù)脈沖作為存儲器讀選通信號。CPU在向片外存儲器取指令期間,PSEN信號在12個時鐘周期中兩次生效。不過,在訪問片外數(shù)據(jù)存儲器時,這兩次有效PSEN信號不出現(xiàn)。PSEN端同樣可驅(qū)動8個LSTTL負(fù)載。我們根據(jù)PSEN、ALE和XTAL2輸出端是否有信號輸出,可以判別80C51是否在工作。ALE/30腳地址鎖存控制信號ALE是訪問外部程序存儲器時,PROG鎖存低8位地址的輸出脈沖。在FLASH編程時,此引腳也用作編程輸入PROG脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時器或時鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位地址為8EH的SFR的第0位的設(shè)置對微控制器處于外部執(zhí)行模式下無效。EA/VPP31腳當(dāng)EA端輸入高電平時,CPU從片內(nèi)程序存儲器地址0000H單元開始執(zhí)行程序。當(dāng)?shù)刂烦?KB時,將自動執(zhí)行片外程序存儲器的程序。當(dāng)EA輸入低電平時,CPU僅訪問片外程序存儲器。在對87C51EPROM編程時,此引腳用于施加編程電壓VPP。輸入/輸出引腳1P00P0739腳32腳。2P10P171腳8腳。3P20P2726腳21腳。4P30P3710腳17腳。80C51單片機(jī)P3口的第二功能如表21所示。表2180C51單片機(jī)P3口第二功能引腳號第二功能P30RXD(串行輸入線)P31TXD(串行輸出線)P32外部中斷0輸入線INTP33外部中斷0輸入線1P34T0(定時器0外部計數(shù)脈沖輸入)P35T1(定時器1外部計數(shù)脈沖輸入)P36外部數(shù)據(jù)存儲器寫選通信號輸出WRP37外部數(shù)據(jù)存儲器寫選通信號輸出RD一個1616的點陣顯示系統(tǒng)由單片機(jī)80C51,74LS138,1個1616的LED點陣模塊,單片機(jī)的時鐘復(fù)位電路和P0口的上拉電阻組成。1632的點陣顯示電路由單片機(jī)80C51,4個74LS138和2個1616的LED點陣模塊組成。該電路所設(shè)計的電子屏可顯示多個漢字,并實現(xiàn)左移滾動。2LED點陣制作LEDLIGHTEMITTINGDIODE,50年前人們已經(jīng)了解半導(dǎo)體材料可產(chǎn)生光線的基本知識,第一個商用二極管產(chǎn)生于1960年。LED是英文LIGHTEMITTINGDIODE發(fā)光二極管的縮寫,它的基本結(jié)構(gòu)是一塊電致發(fā)光的半導(dǎo)體材料,置于一個有引線的架子上,然后四周用環(huán)氧樹脂密封,即固體封裝,所以能起到保護(hù)內(nèi)部芯線的作用,所以LED的抗震性能好9。點陣式LED的顯示采用逐列掃描方式。工作時,由單片機(jī)取出第一列需要顯示的內(nèi)容經(jīng)延時一段時間后再進(jìn)行下一列點陣數(shù)據(jù)的顯示。需要注意的是,每次只能選通一列數(shù)據(jù),即要通過不斷的逐列掃描變換來實現(xiàn)漢字或字符的顯示。241顯示模塊的選擇方案一點陣顯示,是由八行八列的發(fā)光二極管集成在一塊電路上組成,主要用來顯示漢字,同時也能顯示數(shù)字和少量圖像。而且程序簡單,顯示的效果比較清晰。方案二LED數(shù)碼管靜態(tài)顯示,電路容易理解且驅(qū)動的程序簡單,多片七段譯碼器驅(qū)動顯示,這不僅增加了成本,還需要占用單片機(jī)多個I/O口,也給電路的焊接帶來一定的困難,因此不選用這種方案作為顯示模塊。經(jīng)過兩種方案的比較,最后選擇方案一LED的點陣顯示。242LED驅(qū)動模塊的選擇方案一采用靜態(tài)鎖存方式,將每一個LED發(fā)光管的一端接至單片機(jī)的一個I/O口,另一端通過電阻接電源。這種方法可以直接驅(qū)動LED,原理簡單,驅(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è)計中采用方案二。243主要芯片74LS138的介紹譯碼器是組合邏輯電路的一個重要的器件,芯片74LS138為3線8線譯碼器,74LS138譯碼器的引腳管腳如下圖25所示。圖2574LS138的引腳圖所謂譯碼,就是將每一組代碼的含意翻譯出來的過程。譯碼是編碼的逆過程。廣泛被使用的譯碼器是74LS138譯碼器,因此該設(shè)計中采用74LS138且其作用也就是將一組碼轉(zhuǎn)換為想要的確定的信息。74LS138為3線8線譯碼器,共有54/74S138和54/74LS138兩種線路結(jié)構(gòu)型式。其工作原理當(dāng)一個選通端E3為高電平,另兩個選通端E1和E2為低電平時,可將地址端A、B、C的二進(jìn)制編碼在一個對應(yīng)的輸出端以低電平的方式譯出。利用E1、E2和E3可級聯(lián)擴(kuò)展成一個24線的譯碼器;若外接一個反相器還可以級聯(lián)擴(kuò)展成為32線譯碼器。若將選通端中的一個作為數(shù)據(jù)的輸入端時,74LS138還可作數(shù)據(jù)分配器。假設(shè)地址端的值為001,那么則說明其/Y1輸出口是有效的,且其輸出值為10111111。假設(shè)地址端的值為010,那么則說明其/Y2輸出口是有效的,且其輸出值為11011111。假設(shè)地址端的值為011,那么則說明其/Y2輸出口是有效的,且其輸出值為11101111。在該畢業(yè)設(shè)計中,由于單片機(jī)中的P2口只有八個數(shù)據(jù)線,顯然不夠三十二個數(shù)據(jù)使用。因此,74LS138譯碼器在此是用于擴(kuò)展數(shù)據(jù)的輸入端的。4個74LS138譯碼器正好一共有三十二個輸出端口,于是就對應(yīng)了LED顯示屏中的三十二個列選端。滿足了1632點陣式LED顯示屏的列需求。74LS138譯碼器引腳功能如表22所示。表2274LS138譯碼器功能表輸入輸出S1S2S3ABC0_Y1_2_34_Y5_6_701111111111111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110251616LED點陣顯示制作我們以VERSION10字模精靈為例,每一個漢字由一個16行16列的點陣組成顯示。即國標(biāo)漢字庫中的每一個字均由256點陣來表示。2511616LED點陣的內(nèi)部結(jié)構(gòu)及工作原理我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏幕不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。這里我們以“尚”字說明,如圖26所示。圖26“尚”字顯示圖用8位的80C51單片機(jī)控制,由于單片機(jī)的總線為8位,一個字需要拆分為2個部分。在此我們把它拆分為上部和下部,上部由816點陣組成,下部也由816點陣組成。在本例中單片機(jī)首先顯示的是左上角的第一列的上半部分,即第0列的P00P07口。方向為P00到P07,顯示漢字“學(xué)”時,由上往下排列,為P00亮,P01滅,P02滅,P03滅,P04滅,P05滅,P06滅,P07滅。即二進(jìn)制10000000,轉(zhuǎn)換為16進(jìn)制為80H。第一列的上半部完成后,繼續(xù)掃描第一列的下半部,為了接線的方便,我們?nèi)栽O(shè)計成由上往下掃描,從上圖可以看到,這一列全部為不亮,即為00000000,16進(jìn)制則為00H。然后單片機(jī)轉(zhuǎn)向第二列的上半部,P01點亮,為01000000,即16進(jìn)制40H這一列完成后繼續(xù)進(jìn)行下半部分的掃描,P20點亮,為二進(jìn)制00000001,即16進(jìn)制01H。依照這個方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個8位,可以得出漢字“尚”的掃描代碼為080H,000H,040H,001H,067H,0FFH,034H,004H01CH,008H,015H,0FCH,007H,030H,0FDH,050H005H,090H,00DH,050H,017H,0F8H,064H,012H02CH,009H,017H,0FEH,020H,002H,040H,001H由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件,就不必去畫表格算代碼了。打開字模,設(shè)定一下輸出方式,輸入漢字后,再單擊“取模”。十六進(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復(fù)制到我們的C程序中即可,如下圖27所示。圖27漢字字模生成圖26硬件系統(tǒng)的整體設(shè)計圖與原理分析硬件系統(tǒng)的整體設(shè)計圖如下圖28所示。圖28硬件系統(tǒng)的整體設(shè)計圖原理分析PROTEUS74軟件中只有88和57等LED點陣,所以需要由小的LED屏拼接成一個大的LED顯示屏。上圖的LED顯示部分是由8個88的點陣構(gòu)成整體的1632點陣屏,可以同時顯示兩個漢字(或4個英文字母)。要注意的是在PROTEUS74軟件中,由于點陣塊數(shù)太多,所以其接線比較的復(fù)雜。此處采用以上接線方式,把8個LED點陣屏以“一共兩行,每行4個”的方式緊湊連接在一起,隱藏了那些錯綜復(fù)雜的連線,使我們在視覺上覺得更清新,更一目了然。原理圖中,拼接后的點陣式LED顯示屏采用的是逐列掃描的工作方式。將事先已經(jīng)編寫好的C語言程序輸入到單片機(jī)中,80C51單片機(jī)的P2口的P20口至P22口連接4個74LS1383線8線譯碼器的輸入端,再由4組8個相應(yīng)的輸出端,與連接LED顯示屏對應(yīng)的列端相連,用來選中所要顯示的字符的列。單片機(jī)的P0口負(fù)責(zé)輸入所要顯示的第一個字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第二個字的代碼信息。然后又由P0口負(fù)責(zé)輸入所要顯示的第二個字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第三個字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。另外,在對單片機(jī)進(jìn)行校驗時,P0口須接上10K左右的上拉電阻,就是上圖中的RP1電阻。對于74LS138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此時譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個譯碼器的原理都是這樣。27小結(jié)本章節(jié)主要介紹了設(shè)計中硬件電路用到的單片機(jī)80C51芯片的總體結(jié)構(gòu)和各個重要引腳的功能、顯示電路中主要器件74LS138譯碼器的各個引腳及其功能、以及整體設(shè)計結(jié)構(gòu)框圖的講解和具體實現(xiàn)字符的連續(xù)左移顯示的詳細(xì)分析。3系統(tǒng)的軟件部分設(shè)計應(yīng)用系統(tǒng)中的應(yīng)用軟件是根據(jù)系統(tǒng)功能要求而設(shè)計的,能可靠地實現(xiàn)系統(tǒng)的各種功能。31程序設(shè)計思路與結(jié)構(gòu)系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序、延時程序、顯示子程序11。311程序設(shè)計思路計算機(jī)按照給定的程序,逐條執(zhí)行指令,以完成某項規(guī)定的任務(wù)。因此,使用計算機(jī)必須編寫出計算機(jī)能執(zhí)行的程序,用簡短的C語言程序進(jìn)行設(shè)計,實現(xiàn)與計算機(jī)的通訊,能方便改動顯示的內(nèi)容,使顯示內(nèi)容能夠一個接一個的左移滾動慢慢的顯示。由單片機(jī)80C51的P2口輸出進(jìn)行片選。片選1有效時,將所要顯示的漢字的段碼值送給P0,P1。驅(qū)動相應(yīng)段點亮。直到送完16個段碼就可以顯示一個漢字了。312程序設(shè)計流程圖系統(tǒng)程序主要由開始、初始化、主程序、字庫等組成。其中主程序和子程序的流程圖如圖31和圖32所示。Y開始初始化調(diào)用顯示程序調(diào)整數(shù)據(jù)指針是否顯示完圖31主程序流程圖對圖31主程序流程圖的簡要分析如下首先“開始”,然后對整個系統(tǒng)進(jìn)行初始化,之后調(diào)用相應(yīng)的顯示程序,之后開始調(diào)整一下數(shù)據(jù)的指針,判斷此時需要顯示的字符是否已經(jīng)顯示完畢。如果已經(jīng)顯示完畢就返回到系統(tǒng)“初始化”的時刻繼續(xù)進(jìn)行接下來的流程,如果沒有顯示完畢則返回到“調(diào)用顯示程序”的時刻繼續(xù)接著的流程。開始設(shè)一幀顯示時間關(guān)閉顯示并調(diào)整指針設(shè)片選及數(shù)據(jù)指針查漢字上部數(shù)據(jù)及顯示查漢字下部數(shù)據(jù)及顯示延時1MS結(jié)束是否顯示完漢字一幀時間是否到NNYY圖32顯示程序流程圖對圖32顯示程序流程圖的簡要分析如下首先開始,之后設(shè)定顯示一幀字符所用的時間,然后設(shè)定片選指針以及數(shù)據(jù)指針,然后查找相應(yīng)的漢字或字符的上部數(shù)據(jù)及顯示,接著查找查相應(yīng)的漢字或字符的下部數(shù)據(jù)及顯示,然后對整個系統(tǒng)延時1MS,之后關(guān)閉之前顯示的字符內(nèi)容并調(diào)整相關(guān)數(shù)據(jù)的指針,此時判斷需要顯示的字符是否顯示完畢。若沒有顯示完畢,則返回到“設(shè)片選及數(shù)據(jù)指針”處進(jìn)行重新工作流程;若已經(jīng)顯示完畢,則判斷此時一幀的時間是否完畢。如果時間沒有完畢,則返回至“設(shè)定一幀顯示時間”處重新設(shè)定該時間;反之整個系統(tǒng)程序結(jié)束完成。32模塊程序設(shè)計該設(shè)計中主要由系統(tǒng)初始化、LED動態(tài)顯示、漢字顯示程序設(shè)計以及顯示設(shè)計幾個部分組成。321系統(tǒng)初始化將事先已經(jīng)編寫好的C語言程序輸入到單片機(jī)中,80C51單片機(jī)的P2口的P20口至P22口連接4個74LS1383線8線譯碼器的輸入端,再由4組8個相應(yīng)的輸出端,與連接LED顯示屏對應(yīng)的的列端相連,用來選中所要顯示的字符的列。對于74LS138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此時譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個譯碼器的原理都是這樣。322LED動態(tài)顯示此次設(shè)計理論顯示結(jié)果為在顯示屏上,漢字按照從右向左的順序一個個顯示。設(shè)計時可采用如下方法首先將LED顯示屏對應(yīng)的顯示緩沖區(qū)全部清零,即LED顯示空白,然后通過延時程序來設(shè)定各個字符的動態(tài)顯示時間,顯示緩沖區(qū)依次加入一個漢字點陣數(shù)據(jù)并進(jìn)行掃描顯示,這樣就可達(dá)到動態(tài)顯示的效果12。單片機(jī)的P0口負(fù)責(zé)輸入所要顯示的第一個字的代碼信息,P1口負(fù)責(zé)輸入所要顯示的第二個字的代碼信息。然后又由P0口負(fù)責(zé)輸入所要顯示的第二個字的代碼信息,同時P1口來負(fù)責(zé)輸入所要顯示的第三個字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。323漢字顯示程序設(shè)計打開“字模提取伴侶”軟件,設(shè)定一下參數(shù)設(shè)置,即選擇C51格式,字節(jié)倒序,冗余格式,縱向取模。這樣輸入單個的漢字后,再單擊“取?!?。此時十六進(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復(fù)制到我們的C語言程序中就可以了13。從字模提取伴侶中得到需要顯示漢字的代碼值。如“余境成”的代碼為UNSIGNEDCHARCODEZIKU/字符碼的存放格式為從左到右共16列,并按列的上下部分依次存放/一組即為一列/轉(zhuǎn)換字符余/0X01,0X00,0X01,0X00,0X02,0X80,0X04,0X40,0X08,0X20,0X10,0X10,0X2F,0XEE,0XC1,0X04,0X01,0X10,0X3F,0XF8,0X01,0X00,0X09,0X20,0X19,0X18,0X21,0X0C,0X45,0X04,0X02,0X00,/轉(zhuǎn)換字符境/0X20,0X80,0X20,0X48,0X27,0XFC,0X21,0X10,0X20,0XA4,0XFF,0XFE,0X20,0X08,0X23,0XFC,0X22,0X08,0X23,0XF8,0X22,0X08,0X3B,0XF8,0XE1,0X20,0X41,0X22,0X02,0X22,0X0C,0X1E,/轉(zhuǎn)換字符成/0X00,0X80,0X00,0XA0,0X00,0X90,0X3F,0XFC,0X20,0X80,0X20,0X80,0X20,0X84,0X3E,0X44,0X22,0X48,0X22,0X48,0X22,0X30,0X2A,0X20,0X24,0X62,0X40,0X92,0X81,0X0A,0X00,0X06;324顯示設(shè)計漢字顯示的原理漢字的顯示主要是通過將需要顯示的漢字的段碼值送入顯示模塊而完成的。首先從字模軟件中得到需要顯示漢字的段碼值。WHILE1FORI0I8I/顯示左半邊屏幕P0POFFSET2IP2I|0X08/P240,P231選中U2,輸出掃描碼給U6DELAYP0POFFSET2I1P2I|0X10/P241,P230選中U3,輸出掃描碼給U7DELAYFORI8I16I/顯示右半邊屏幕P0POFFSET2IP2I8|0X20/P251P240,P230選中U4,輸出掃描碼U8DELAYP0POFFSET2I1P2I8|0X40/P261P250,P240選中U5,輸出掃描碼U9DELAY33小結(jié)本章主要介紹了軟件設(shè)計中的主程序和顯示程序的流程圖以及對其內(nèi)容的簡要介紹,以及相關(guān)的軟件程序,并最終達(dá)到所要求的LED顯示結(jié)果。4系統(tǒng)仿真PROTEUS內(nèi)容全面包括其能實驗的內(nèi)容包括軟件部分的匯編、C51等語言的調(diào)試過程,也包括硬件接口電路中的大部分類型。對同一類功能的接口電路,可以采用不同的硬件來搭建完成,因此采用PROTEUS仿真軟件進(jìn)行實驗教學(xué),克服了用單片機(jī)實驗教學(xué)板教學(xué)中硬件電路固定、學(xué)生不能更改、實驗內(nèi)容固定等方面的局限性,可以擴(kuò)展學(xué)生的思路和提高學(xué)生的學(xué)習(xí)興趣。41仿真環(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與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機(jī)寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補(bǔ)了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。KEILC51是美國KEILCSOFTWARE公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。KEILC5軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全WINDOWS界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KEILC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。42仿真過程與結(jié)果利用以上兩種軟件,就可以進(jìn)行仿真了。這里以一個1632點陣漢字顯示為例說明。421繪制電路圖運(yùn)行PROTEUS的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色、圖形界面大小等項目。通過工具欄中的P從庫中選擇元件命令命令,在PICKDEVICES窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,將電路圖繪制完畢。422HEX文件的生成利用KEIL51生成HEX文件。具體方法如下1打開單片機(jī)軟件開發(fā)系統(tǒng)KEILUVISION,單擊“UVISION”菜單中的“PROJECT”,在此下拉菜單中單擊“NEWPROJECT”后。彈出“CREATNEWPROJECT”對話框。鍵入新建項目名稱。2鍵入新建項目名并單擊“確定后”,在彈出的“SELECTDEVICE”對話框中選擇合適的單片機(jī)型號,如80C51。3單擊“UVISION”菜單中的“FILE”,在此下拉菜單中選擇“NEW”后,打開一個空的文本編輯口,在此窗口總鍵入程序,創(chuàng)建新的源程序“一個1616點陣漢字顯示C”如是匯編語言程序的話為“一個1616點陣漢字顯示ASM文件。4在左邊的“PROJECT”窗口的“FILE”頁中單擊文件組,再單擊鼠標(biāo)右鍵后,在彈出的窗口中選中“ADDFILESTOGROUP”“SOURCEGROUP1”選項,將“一個1616點陣漢字顯示C”程序?qū)氲健癝OURCEGROUP1”中。5在“PROJECT”下拉菜單中,選擇“OPTIONSFORTARGET”對話框,在此對話框中“OUTPUT”選項卡中的“CREATHEXFILE”選項。6在“PROJECT”下拉菜單中,選擇“REBUILDALLTARGETFILES”項。若程序編譯成功,將生產(chǎn)“一個1616點陣漢字顯示HEX”文件。423調(diào)試與結(jié)果在PROTEUSISIS編輯窗口中,單擊鼠標(biāo)右鍵選中單片機(jī)80C51并單擊鼠標(biāo)左鍵,彈出“EDITCOMPONET”對話框,在此對話框的“CLOCKFREQUENCY”欄中設(shè)置單片機(jī)晶振頻率為12MHZ,在“PROGRAMFILE”欄中單擊瀏覽選中KEIL

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論