畢業(yè)設計---基于單片機led滾動顯示系統(tǒng)設計_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  三門峽職業(yè)技術(shù)學院</b></p><p><b>  信息工程系</b></p><p><b>  畢</b></p><p><b>  業(yè)</b></p><p><b>  設</b></

2、p><p><b>  計</b></p><p><b>  論</b></p><p><b>  文</b></p><p>  畢業(yè)設計項目: 基于51單片機的LED滾動顯示系統(tǒng) </p><p>  專 業(yè): 計算機應用(嵌

3、入式方向) </p><p>  年 級: 09 </p><p>  學 號: </p><p>  姓 名: </p><p>  指 導 老 師:

4、 </p><p><b>  摘 要</b></p><p>  LED顯示屏是一種通過控制半導體發(fā)光的顯示方式,它是由很多個紅色的發(fā)光二極管組成,靠燈的亮滅來顯示字符。LED顯示屏分為數(shù)碼顯示屏、圖文顯示屏和視頻顯示頻。均由LED矩陣塊組成。目前由于LED顯示屏造價昂貴,主要應用于比較較高檔的場所,主要集中在城市的繁華場所。在舉辦的2010年上海世博

5、會’未來各項大項運動賽事等新增需求,都將促使LED顯示屏的大規(guī)模發(fā)展。此外,已架設的大型LED顯示屏幕梅10年將歷經(jīng)一次換機潮,隨著人們生活水平的提高,戶外LED顯示屏將逐漸應用于各個行業(yè)。</p><p>  本設計主要實現(xiàn)16*16LED顯示屏對文字及簡單圖像的顯示,擴展功能有實時鐘及實時溫度采集,并通過LCD1602及LED點陣屏靜態(tài)及滾動顯示。設計分為三大步,分別是軟件設計,硬件仿真及實物制作,兼顧理論性

6、及實用性,充分體現(xiàn)了理論與實踐相結(jié)合,設計過程中不僅學到了很多有用的知識,也增長了自己的專業(yè)技能,提高了自己的動手能力。</p><p>  關(guān)鍵字: LED 顯示屏 發(fā)光二極管 半導體 </p><p><b>  Abstract</b></p><p>  LED display is the display mode contro

7、lling by the semiconductor light emitting diode, it probably looks like that composition by a number of led is usually a red light-emitting diodes which show character by the LED on and off , LED display is divided into

8、Digital display, Graphic display and Video display, which is compositioned by LED matrix block, As the cost of LED display expensive currently, mainly used in relatively high places, concentrated in the cities busting pl

9、ace, being held in the</p><p>  The main achievement of this design is 16*16 LED display show the text and simple image, the extension function include real-time clock and real-time temperature measurement w

10、hich is displayed by LCD1602 and LED dot matrix display screen. This design is divided into three big steps, which is software design, hardware simulation and in-kind production, fully reflects the combination of theory

11、and practice. From this design process, I'm not only learned a lot of useful knowledge, also increase my</p><p>  Keywords : LED Display Semicondutor </p><p><b>  目 錄</b>&

12、lt;/p><p><b>  1 緒論3</b></p><p>  1.1 課題背景及意義5</p><p>  1.2 本課題相關(guān)介紹………………………………………………7</p><p>  1.3 論文章節(jié)安排7</p><p>  2 系統(tǒng)的硬件部分設計8</p&g

13、t;<p>  2.1 設計要求8</p><p>  2.2 設計基本方案8</p><p>  2.3 硬件電路芯片介紹8</p><p>  2.3.1 單片微型計算機簡介8</p><p>  2.3.2 系統(tǒng)芯片的選擇9</p><p>  2.3.3 主控制單片機9&l

14、t;/p><p>  2.3.4 80C51接口說明10</p><p>  2.4 LED點陣制作12</p><p>  2.4.1 顯示模塊的選擇12</p><p>  2.4.2 LED驅(qū)動模塊的選擇12</p><p>  2.4.3 主要芯片74LS138的介紹12</p>

15、<p>  2.5 16*16 LED點陣顯示制作14</p><p>  2.5.1 16*16 LED點陣的內(nèi)部結(jié)構(gòu)及工作原理14</p><p>  2.6 硬件系統(tǒng)的整體設計圖與原理分析16</p><p>  2.7 小結(jié)18</p><p>  3 系統(tǒng)的軟件部分設計19</p><

16、;p>  3.1 程序設計思路與結(jié)構(gòu)19</p><p>  3.1.1 程序設計思路19</p><p>  3.1.2 程序設計流程圖19</p><p>  3.2 模塊程序設計21</p><p>  3.2.1 系統(tǒng)初始化21</p><p>  3.2.2 LED動態(tài)顯示21&

17、lt;/p><p>  3.2.3 漢字顯示程序設計21</p><p>  3.2.4 顯示設計22</p><p>  3.3 小結(jié)23</p><p>  4 系統(tǒng)仿真24</p><p>  4.1 仿真環(huán)境介紹24</p><p>  4.2 仿真過程與結(jié)果24&l

18、t;/p><p>  4.2.1 繪制電路圖24</p><p>  4.2.2 HEX文件的生成25</p><p>  4.2.3 調(diào)試與結(jié)果25</p><p>  4.3 小結(jié)27</p><p><b>  結(jié)束語28</b></p><p><

19、;b>  致 謝29</b></p><p>  參 考 文 獻30</p><p>  附錄A 點陣電路整體硬件電路圖31</p><p><b>  緒論</b></p><p>  隨著電子技術(shù)和信息技術(shù)的迅速發(fā)展,LED的應用范圍越來越廣泛。它作為一個重要的宣傳平臺,已經(jīng)受到全社會的普

20、遍認可和廣泛使用。如今,它幾乎成為各個廣場和大型超市的必備品。然而這些功能的實現(xiàn)離不開單片機的功勞。單片機是一種微型處理器,負責數(shù)據(jù)的接收、發(fā)送和處理的工作。LED顯示屏則可以顯示變化的數(shù)字、文字、圖形和圖像等。它不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏等無法比擬的優(yōu)點[1]。點陣顯示器的特點是可以按照實物所需要的大小、形狀和顏色進行組合,用單片機控制實行各種文字或圖形的變化,達到廣告宣傳和提示的目的。&l

21、t;/p><p>  1.1 課題背景及意義</p><p>  LED點陣電子顯示屏是集微電子技術(shù)、計算機技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷動、態(tài)范圍廣、亮度高、壽命長、工作穩(wěn)定可靠等優(yōu)點而成為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。點陣式LED顯示技術(shù)是近幾年發(fā)展較快的顯示技術(shù)之一,其抗干擾能力強等特點使得其在戶外廣告、公共告示等方面得到了廣泛的應用,因此研究點陣式

22、LED顯示屏接口與控制技術(shù)具有較高的實際應用價值。LED顯示屏的應用涉及社會經(jīng)濟的許多領(lǐng)域,主要包括:</p><p>  (1) 證券交易、金融信息顯示。</p><p>  (2) 機場航班動態(tài)信息顯示。</p><p>  (3) 車站旅客引導信息顯示。</p><p>  (4) 體育場館、道路交通信息顯示。</p>

23、;<p>  (5) 調(diào)度指揮中心顯示。</p><p>  (6) 郵政、電信、商場購物中心等服務領(lǐng)域的業(yè)務宣傳顯示。</p><p>  (7) 廣告媒體新產(chǎn)品宣傳顯示等?! ?lt;/p><p>  實際生活中經(jīng)常會遇到一些特殊要求的動態(tài)顯示,比如電梯運行中指示箭頭的上下移動、某些智能儀表幅值的條形顯示、廣告中廠家的商標顯示等。這時一般的顯示系

24、統(tǒng)就很難達到要求[2]。另外,由于受到存儲器本身的局限,其特殊字符或圖案也往往難以顯示,同時顯示內(nèi)容也不能隨意更改。</p><p>  1.2 本課題相關(guān)介紹</p><p>  本課題要求自選單片機及其周邊芯片,設計點陣LED與單片機的接口電路,并編制單片機的軟件,并對系統(tǒng)進行仿真調(diào)試。該設計提出采用軟件仿真平Proteus對點陣式LED滾動漢字顯示屏進行仿真,在Proteus中完成

25、硬件電路的設計,同時采用KeilC集成開發(fā)平臺設計程序,可在計算機上仿真實現(xiàn)點陣滾動漢字顯示屏的滾動顯示。</p><p>  本設計提出一種利用單片機控制的LED顯示系統(tǒng)通訊方法。該方法可以對顯示內(nèi)容(包括漢字和特殊圖符)進行實時控制,從而實現(xiàn)滾動的動態(tài)顯示效果。該方法同時還可以調(diào)節(jié)動態(tài)顯示的速度,并且用戶也可以同時進行顯示效果的預覽仿真,顯示內(nèi)容亦可以較方便的修改[3]。</p><p&g

26、t;<b>  論文章節(jié)安排</b></p><p>  在撰寫此論文之前,我在學校的圖書館里參閱了大量有關(guān)單片機介紹和LED顯示電路設計等相關(guān)書籍,并且通過網(wǎng)絡查找搜集了較多的相關(guān)論文。經(jīng)過反復多次對這些資料進行詳細的摘要和嚴謹?shù)膶Ρ日?,我從中學習到很多新的相關(guān)專業(yè)知識,加深并豐富了我對單片機的理解。最后,我寫出了這篇點陣LED顯示電路和系統(tǒng)設計的論文。其中各個章節(jié)安排如下:</p

27、><p>  第一章 緒論主要講述該設計的背景,意義以及設計思想。</p><p>  第二章 系統(tǒng)的總體方案設計主要是硬件組成部分及與設計電路相關(guān)的芯片介紹。</p><p>  第三章 系統(tǒng)的軟件部分。</p><p>  第四章 系統(tǒng)仿真,顯示符合設計要求的顯示結(jié)果。</p><p>  2 系統(tǒng)的硬件部分設計&l

28、t;/p><p>  本設計主要采用單片機及其周邊芯片,設計點陣LED與單片機的接口電路。</p><p><b>  2.1 設計要求</b></p><p>  (1) 通過對80C51單片機的C語言編程,實現(xiàn)漢字的左移滾動顯示。</p><p>  (2) 成本低,功能強,設計明了化實用化。</p>

29、<p>  (3) 動態(tài)顯示過程的仿真成果中沒有明顯的抖動。</p><p>  2.2 設計基本方案</p><p>  為使該模塊化的點陣式LED顯示屏控制系統(tǒng)使用更加方便,并具有較高的靈活性和視覺舒適性,我對系統(tǒng)的硬件做了非常精心的設計[4]。本設計的硬件電路包括:主控單片機模塊、譯碼器選擇數(shù)據(jù)模塊、LED顯示模塊這三大模塊??傮w組成框圖如圖2.1所示。</p&

30、gt;<p>  圖2.1 總體結(jié)構(gòu)框圖</p><p>  圖2.1 簡略的描述了系統(tǒng)的結(jié)構(gòu),本系統(tǒng)先由主控單片機來控制譯碼器進行位選,然后再將段碼的值通過主控單片機的I/O口送往LED顯示模塊進行漢字的顯示。</p><p>  2.3 硬件電路芯片介紹</p><p>  該設計主要介紹LED顯示電路所采用的主要芯片,如單片機80C51,譯碼

31、器74LS138。此外,還簡要闡述了選取這些芯片的優(yōu)點。</p><p>  2.3.1 單片微型計算機簡介</p><p>  單片微型計算機(Single Chip Micro Computer)簡稱單片機,它是一種把組成微型計算機的各功能部件:中央處理單元CPU、一定容量的隨機存儲器RAM和只讀存儲器ROM、I/O接口電路、定時器/計數(shù)器以及串行口等制作在一塊芯片中的計算機,從而實

32、現(xiàn)微型計算機的基本功能[5]。單片機具有結(jié)構(gòu)簡單、控制功能強、可靠性高、體積小、價格低等特點,在家用電器、智能化儀器、工業(yè)控制以及火箭導航尖端技術(shù)領(lǐng)域都發(fā)揮著十分重要的作用[6]。單片機的內(nèi)部結(jié)構(gòu)示意圖如下圖2.2所示。</p><p>  圖2.2 單片機內(nèi)部結(jié)構(gòu)示意圖 圖2.3 單片機應用系統(tǒng)組成示意圖</p><p>  單片機實質(zhì)上是一個芯片,在實際應

33、用中通常很難直接把單片機和受控對象進行電氣連接,而是必須外加各種擴展接口電路以至外部設備,連同受控對象和單片機程序軟件構(gòu)成一個單片機應用系統(tǒng)。單片機應用系統(tǒng)是以單片機為核心,配以輸入、輸出、顯示、測量和控制等外圍電路和軟件能實現(xiàn)一種或多種功能的實用系統(tǒng)。單片機應用系統(tǒng)的組成示意圖如上圖2.3所示[7]。</p><p>  2.3.2 系統(tǒng)芯片的選擇 </p><p>  方案一:803

34、1芯片內(nèi)部無ROM,需要外擴程序存儲器,由此造成電路焊接的困難,況且使用8031還需要另外購買其他的芯片,從而造成成本比較高,且性價比低。</p><p>  方案二:80C51芯片內(nèi)部有ROM,且片內(nèi)ROM全部采用Flash ROM,它能夠在3V的超低壓工作,與51系列單片機完全兼容。</p><p>  因此,本設計選擇80C51芯片。</p><p>  2.

35、3.3 主控制單片機</p><p>  80C51是一種高性能CMOS8位微處理器,俗稱單片機,它帶有4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的M

36、CS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的80C51是一種高效微控制器, 80C2051是它的一種精簡版本。80C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案[8]。80C51引腳即外觀如圖2.4所示。</p><p>  圖2.4 80C51引腳外觀圖</p><p>  2.3.4 80C51接口說明</

37、p><p>  Vss(20腳):接地。</p><p>  VCC(40腳):主電源+5V。</p><p>  XTAL1(19腳):接外部晶體的一端。在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,對于HMOS單片機,該端引腳必須接地;對于CHMOS單片機,此引腳作為驅(qū)動端。</p><p>  XTAL2(18腳):接外部晶體的另

38、一端。在片內(nèi)它是個振蕩電路反相放大器輸出端,振蕩電路的頻率是晶體振蕩頻率。若需采用外部時鐘電路,對于HMOS單片機,該引腳輸入外部時鐘脈沖;對于CHMOS單片機,此引腳應懸浮。</p><p>  RST(9腳):單片機剛剛接上電源時,其內(nèi)部各寄存器處于隨機狀態(tài),在該腳輸入24個時鐘周期寬度以上的高電平將使單片機復位。</p><p>  PSEN(29腳):在訪問片外程序存儲器時,此端輸

39、出負脈沖作為存儲器讀選通信號。CPU在向片外存儲器取指令期間,PSEN信號在12個時鐘周期中兩次生效。不過,在訪問片外數(shù)據(jù)存儲器時,這兩次有效PSEN信號不出現(xiàn)。PSEN端同樣可驅(qū)動8個LSTTL負載。我們根據(jù)PSEN、ALE和XTAL2輸出端是否有信號輸出,可以判別80C51是否在工作。</p><p>  ALE/(30腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Fla

40、sh編程時,此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模

41、式下無效。</p><p>  EA/VPP(31腳):當EA端輸入高電平時,CPU從片內(nèi)程序存儲器地址0000H單元開始執(zhí)行程序。當?shù)刂烦?KB時,將自動執(zhí)行片外程序存儲器的程序。當EA輸入低電平時,CPU僅訪問片外程序存儲器。在對87C51EPROM編程時,此引腳用于施加編程電壓VPP。</p><p><b>  輸入/輸出引腳:</b></p>

42、<p>  (1) P0.0~P0.7  (39腳~32腳)。</p><p>  (2) P1.0~P1.7  (1腳 ~ 8 腳)。</p><p>  (3) P2.0~P2.7  (26腳~21腳)。</p><p>  (4) P3.0~P3.7  (10腳

43、~17腳)。</p><p>  80C51單片機P3口的第二功能如表2.1所示。</p><p>  表2.1 80C51單片機P3口第二功能</p><p>  一個16*16的點陣顯示系統(tǒng)由單片機80C51,74LS138,1個16*16的LED點陣模塊,單片機的時鐘復位電路和P0口的上拉電阻組成。</p><p>  16*32的點

44、陣顯示電路由單片機80C51,4個74LS138和2個16*16的LED點陣模塊組成。該電路所設計的電子屏可顯示多個漢字,并實現(xiàn)左移滾動。</p><p>  2.4 LED點陣制作</p><p>  LED(Light Emitting Diode),50年前人們已經(jīng)了解半導體材料可產(chǎn)生光線的基本知識,第一個商用二極管產(chǎn)生于1960年。LED是英文Light Emitting Dio

45、de(發(fā)光二極管)的縮寫,它的基本結(jié)構(gòu)是一塊電致發(fā)光的半導體材料,置于一個有引線的架子上,然后四周用環(huán)氧樹脂密封,即固體封裝,所以能起到保護內(nèi)部芯線的作用,所以LED的抗震性能好[9]。點陣式LED的顯示采用逐列掃描方式。工作時,由單片機取出第一列需要顯示的內(nèi)容經(jīng)延時一段時間后再進行下一列點陣數(shù)據(jù)的顯示。需要注意的是,每次只能選通一列數(shù)據(jù),即要通過不斷的逐列掃描變換來實現(xiàn)漢字或字符的顯示。</p><p>  2

46、.4.1 顯示模塊的選擇</p><p>  方案一:點陣顯示,是由八行八列的發(fā)光二極管集成在一塊電路上組成,主要用來顯示漢字,同時也能顯示數(shù)字和少量圖像。而且程序簡單,顯示的效果比較清晰。</p><p>  方案二:LED數(shù)碼管靜態(tài)顯示,電路容易理解且驅(qū)動的程序簡單,多片七段譯碼器驅(qū)動顯示,這不僅增加了成本,還需要占用單片機多個I/O口,也給電路的焊接帶來一定的困難,因此不選用這種方

47、案作為顯示模塊。</p><p>  經(jīng)過兩種方案的比較,最后選擇方案一:LED的點陣顯示。</p><p>  2.4.2 LED驅(qū)動模塊的選擇</p><p>  方案一:采用靜態(tài)鎖存方式,將每一個LED發(fā)光管的一端接至單片機的一個I/O口,另一端通過電阻接電源。這種方法可以直接驅(qū)動LED,原理簡單,驅(qū)動能力強,LED的亮度也可以通過限流電阻調(diào)節(jié),非常方便,但

48、此種方法太浪費單片機的I/O口,只適合于較小的系統(tǒng)。</p><p>  方案二:采用動態(tài)掃描方式,通過三極管驅(qū)動并聯(lián)在一起的LED發(fā)光管的一端(共陰極或共2端),LED發(fā)光管的另一腳接通用I/O口,控制其亮滅。該方法能驅(qū)動較多的LED,控制方式較靈活,而且節(jié)省單片機的資源[10]。</p><p>  比較以上兩種方案,系統(tǒng)設計中采用方案二。</p><p>  

49、2.4.3 主要芯片74LS138的介紹</p><p>  譯碼器是組合邏輯電路的一個重要的器件,芯片74LS138為 3線8線譯碼器, 74LS138譯碼器的引腳(管腳)如下圖2.5所示。</p><p>  圖2.5 74LS138的引腳圖</p><p>  所謂譯碼,就是將每一組代碼的含意翻譯出來的過程。譯碼是編碼的逆過程。廣泛被使用的譯碼器是74LS

50、138譯碼器,因此該設計中采用74LS138且其作用也就是將一組碼轉(zhuǎn)換為想要的確定的信息。</p><p>  74LS138為3線~8線譯碼器,共有54/74S138和54/74LS138 兩種線路結(jié)構(gòu)型式。其工作原理:</p><p>  當一個選通端(E3)為高電平,另兩個選通端(E1和E2)為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平的方式譯出。利用E

51、1、E2和E3可級聯(lián)擴展成一個24線的譯碼器;若外接一個反相器還可以級聯(lián)擴展成為32線譯碼器。若將選通端中的一個作為數(shù)據(jù)的輸入端時,74LS138還可作數(shù)據(jù)分配器。假設地址端的值為001,那么則說明其/Y1輸出口是有效的,且其輸出值為10111111。假設地址端的值為010,那么則說明其/Y2輸出口是有效的,且其輸出值為11011111。假設地址端的值為011,那么則說明其/Y2輸出口是有效的,且其輸出值為11101111。</p

52、><p>  在該畢業(yè)設計中,由于單片機中的P2口只有八個數(shù)據(jù)線,顯然不夠三十二個數(shù)據(jù)使用。因此,74LS138譯碼器在此是用于擴展數(shù)據(jù)的輸入端的。4個74LS138譯碼器正好一共有三十二個輸出端口,于是就對應了LED顯示屏中的三十二個列選端。滿足了16*32點陣式LED顯示屏的列需求。</p><p>  74LS138譯碼器引腳功能如表2.2所示。</p><p>

53、  表2.2 74LS138譯碼器功能表</p><p>  2.5 16*16 LED點陣顯示制作</p><p>  我們以Version1.0字模精靈為例,每一個漢字由一個16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。</p><p>  2.5.1 16*16 LED點陣的內(nèi)部結(jié)構(gòu)及工作原理</p><p

54、>  我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏幕不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。這里我們以“尚”字說明,如圖2.6所示。</p><p>  圖2.6 “尚”字顯示圖</p><p>  用8位的80C51單片機控制,由于單片機的總線為8位,一個字需要拆分為2個部分。在此我們把它拆分為上部和下部,上部由8*16點

55、陣組成,下部也由8*16點陣組成。</p><p>  在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的P00~P07口。方向為P00到P07,顯示漢字“學”時,由上往下排列,為P00亮,P01滅,P02滅,P03滅,P04滅,P05滅,P 06滅,P 07 滅。即二進制10000000,轉(zhuǎn)換為16進制為 80H。</p><p>  第一列的上半部完成后,繼續(xù)掃描第一列的下

56、半部,為了接線的方便,我們?nèi)栽O計成由上往下掃描,從上圖可以看到,這一列全部為不亮,即為00000000,16進制則為00H。 </p><p>  然后單片機轉(zhuǎn)向第二列的上半部,P01點亮,為01000000,即16進制40h.這一列完成后繼續(xù)進行下半部分的掃描,P20點亮,為二進制00000001,即16進制01H。依照這個方法,繼續(xù)進行下面的掃描,一共掃描32個8位,可以得出漢字“尚”的掃描代碼為:</

57、p><p>  080H,000H, 040H,001H, 067H,0FFH,034H,004H</p><p>  01CH,008H, 015H,0FCH,007H,030H,0FDH,050H</p><p>  005H,090H, 00DH,050H, 017H,0F8H,064H,012H</p><p>  02CH,009H,

58、017H,0FEH, 020H,002H,040H,001H</p><p>  由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件,就不必去畫表格算代碼了。</p><p>  打開字模,設定一下輸出方式, 輸入漢字后,再單擊“取?!?。十六進制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復制到我們的C

59、程序中即可,如下圖2.7所示。</p><p>  圖2.7 漢字字模生成圖</p><p>  2.6 硬件系統(tǒng)的整體設計圖與原理分析</p><p>  硬件系統(tǒng)的整體設計圖如下圖2.8所示。</p><p>  圖2.8 硬件系統(tǒng)的整體設計圖</p><p><b>  原理分析:</b&g

60、t;</p><p>  Proteus 7.4軟件中只有8*8和5*7等LED點陣,所以需要由小的LED屏拼接成一個大的LED顯示屏。上圖的LED顯示部分是由8個8*8的點陣構(gòu)成整體的16*32點陣屏,可以同時顯示兩個漢字(或4個英文字母)。要注意的是:在Proteus7.4軟件中,由于點陣塊數(shù)太多,所以其接線比較的復雜。此處采用以上接線方式,把8個LED點陣屏以“一共兩行,每行4個”的方式緊湊連接在一起,隱藏

61、了那些錯綜復雜的連線,使我們在視覺上覺得更清新,更一目了然。</p><p>  原理圖中,拼接后的點陣式LED顯示屏采用的是逐列掃描的工作方式。將事先已經(jīng)編寫好的C語言程序輸入到單片機中,80C51單片機的P2口的P2.0口至P2.2口連接4個74LS138(3線~8線)譯碼器的輸入端,再由4組8個相應的輸出端,與連接LED顯示屏對應的列端相連,用來選中所要顯示的字符的列。單片機的P0口負責輸入所要顯示的第一個

62、字的代碼信息,P1口負責輸入所要顯示的第二個字的代碼信息。然后又由P0口負責輸入所要顯示的第二個字的代碼信息,P1口負責輸入所要顯示的第三個字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。另外,在對單片機進行校驗時,P0口須接上10K左右的上拉電阻,就是上圖中的RP1電阻。</p><p>  對于74LS138譯碼器U2來說,其中E1端必須為高電平

63、才能有效,也就是說此時譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個譯碼器的原理都是這樣。 </p><p><b>  2.7 小結(jié)</b></p><p>  本章節(jié)主要介紹了設計中硬件電路用到的單片機80C51芯片的總體結(jié)構(gòu)和各個重要引腳的功能、顯示電路中主要器件74LS138譯碼器的各個引腳及其功能、以及整體設計結(jié)構(gòu)框圖的講解和具體實現(xiàn)

64、字符的連續(xù)左移顯示的詳細分析。</p><p>  3 系統(tǒng)的軟件部分設計</p><p>  應用系統(tǒng)中的應用軟件是根據(jù)系統(tǒng)功能要求而設計的,能可靠地實現(xiàn)系統(tǒng)的各種功能。</p><p>  3.1 程序設計思路與結(jié)構(gòu)</p><p>  系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序、延時程序、顯示子程序[11]。</p><p&

65、gt;  3.1.1 程序設計思路</p><p>  計算機按照給定的程序,逐條執(zhí)行指令,以完成某項規(guī)定的任務。因此,使用計算機必須編寫出計算機能執(zhí)行的程序,用簡短的C語言程序進行設計,實現(xiàn)與計算機的通訊,能方便改動顯示的內(nèi)容,使顯示內(nèi)容能夠一個接一個的左移滾動慢慢的顯示。由單片機80C51的P2口輸出進行片選。片選1有效時,將所要顯示的漢字的段碼值送給P0,P1。驅(qū)動相應段點亮。直到送完16個段碼就可以顯示

66、一個漢字了。</p><p>  3.1.2 程序設計流程圖</p><p>  系統(tǒng)程序主要由開始、初始化、主程序、字庫等組成。其中主程序和子程序的流程圖如圖3.1和圖3.2所示。</p><p>  圖3.1 主程序流程圖</p><p>  對圖3.1主程序流程圖的簡要分析如下:</p><p>  首先“開

67、始”,然后對整個系統(tǒng)進行初始化,之后調(diào)用相應的顯示程序,之后開始調(diào)整一下數(shù)據(jù)的指針,判斷此時需要顯示的字符是否已經(jīng)顯示完畢。如果已經(jīng)顯示完畢就返回到系統(tǒng)“初始化”的時刻繼續(xù)進行接下來的流程,如果沒有顯示完畢則返回到“調(diào)用顯示程序”的時刻繼續(xù)接著的流程。</p><p>  圖3.2 顯示程序流程圖</p><p>  對圖3.2顯示程序流程圖的簡要分析如下:</p><

68、;p>  首先開始,之后設定顯示一幀字符所用的時間,然后設定片選指針以及數(shù)據(jù)指針,然后查找相應的漢字或字符的上部數(shù)據(jù)及顯示,接著查找查相應的漢字或字符的下部數(shù)據(jù)及顯示,然后對整個系統(tǒng)延時1ms,之后關(guān)閉之前顯示的字符內(nèi)容并調(diào)整相關(guān)數(shù)據(jù)的指針,此時判斷需要顯示的字符是否顯示完畢。若沒有顯示完畢,則返回到“設片選及數(shù)據(jù)指針”處進行重新工作流程;若已經(jīng)顯示完畢,則判斷此時一幀的時間是否完畢。如果時間沒有完畢,則返回至“設定一幀顯示時間”

69、處重新設定該時間;反之整個系統(tǒng)程序結(jié)束完成。</p><p>  3.2 模塊程序設計</p><p>  該設計中主要由系統(tǒng)初始化、LED動態(tài)顯示、漢字顯示程序設計以及顯示設計幾個部分組成。</p><p>  3.2.1 系統(tǒng)初始化</p><p>  將事先已經(jīng)編寫好的C語言程序輸入到單片機中,80C51單片機的P2口的P2.0口至

70、P2.2口連接4個74LS138(3線~8線)譯碼器的輸入端,再由4組8個相應的輸出端,與連接LED顯示屏對應的的列端相連,用來選中所要顯示的字符的列。</p><p>  對于74LS138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此時譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個譯碼器的原理都是這樣。 </p><p>  3.2.2 LED動態(tài)顯

71、示</p><p>  此次設計理論顯示結(jié)果為在顯示屏上,漢字按照從右向左的順序一個個顯示。設計時可采用如下方法:首先將LED顯示屏對應的顯示緩沖區(qū)全部清零,即 LED顯示空白,然后通過延時程序來設定各個字符的動態(tài)顯示時間,顯示緩沖區(qū)依次加入一個漢字點陣數(shù)據(jù)并進行掃描顯示,這樣就可達到動態(tài)顯示的效果[12]。 </p><p>  單片機的P0口負責輸入所要顯示的第一個字的代碼信息,P1口

72、負責輸入所要顯示的第二個字的代碼信息。然后又由P0口負責輸入所要顯示的第二個字的代碼信息,同時P1口來負責輸入所要顯示的第三個字的代碼信息,這樣在我們的視覺上就感覺字是在連續(xù)著在向左移動了。這樣依次類推,所有的字都能連續(xù)的左移著顯示出來。</p><p>  3.2.3 漢字顯示程序設計</p><p>  打開“字模提取伴侶”軟件,設定一下參數(shù)設置,即:選擇C51格式,字節(jié)倒序,冗余格

73、式,縱向取模。 這樣輸入單個的漢字后,再單擊“取?!?。此時十六進制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要漢字代碼復制到我們的C語言程序中就可以了[13]。</p><p>  從字模提取伴侶中得到需要顯示漢字的代碼值。如“余境成”的代碼為:</p><p>  unsigned char code ziku[]={ //字符碼的存放格式為:從左到右共16列,并按列的上下部分依次存

74、放 //一組即為一列</p><p>  /*---轉(zhuǎn)換字符 余 ---*/</p><p>  0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x10,0x2F,0xEE,0xC1,0x04,</p><p>  0x01,0x10,0x3F,0xF8,0x01,0x00,0x09,0x20,0x19

75、,0x18,0x21,0x0C,0x45,0x04,0x02,0x00,</p><p>  /*---轉(zhuǎn)換字符 境 ---*/</p><p>  0x20,0x80,0x20,0x48,0x27,0xFC,0x21,0x10,0x20,0xA4,0xFF,0xFE,0x20,0x08,0x23,0xFC,</p><p>  0x22,0x08,0x23,0xF

76、8,0x22,0x08,0x3B,0xF8,0xE1,0x20,0x41,0x22,0x02,0x22,0x0C,0x1E,</p><p>  /*---轉(zhuǎn)換字符 成 ---*/</p><p>  0x00,0x80,0x00,0xA0,0x00,0x90,0x3F,0xFC,0x20,0x80,0x20,0x80,0x20,0x84,0x3E,0x44,</p><

77、;p>  0x22,0x48,0x22,0x48,0x22,0x30,0x2A,0x20,0x24,0x62,0x40,0x92,0x81,0x0A,0x00,0x06};</p><p>  3.2.4 顯示設計</p><p><b>  漢字顯示的原理:</b></p><p>  漢字的顯示主要是通過將需要顯示的漢字的段碼值送入

78、顯示模塊而完成的。首先從字模軟件中得到需要顯示漢字的段碼值。</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  for (i=0;i<8;i++) //顯示左半邊屏幕</p><p><b>  {</b&

79、gt;</p><p>  P0=*(p+offset+2*i);</p><p>  P2=i|0x08; //P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6</p><p><b>  delay();</b></p><p>  P0=*(p+offset+2*i+1);</p>&l

80、t;p>  P2=i|0x10; //P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for (i=8;i<16;i++) //顯示右半邊屏幕</p><p

81、><b>  {</b></p><p>  P0=*(p+offset+2*i);</p><p>  P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 選中U4,輸出掃描碼U8</p><p><b>  delay();</b></p><p>  P0=

82、*(p+offset+2*i+1);</p><p>  P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 選中U5,輸出掃描碼U9</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }

83、</b></p><p><b>  }</b></p><p><b>  3.3 小結(jié)</b></p><p>  本章主要介紹了軟件設計中的主程序和顯示程序的流程圖以及對其內(nèi)容的簡要介紹,以及相關(guān)的軟件程序,并最終達到所要求的LED顯示結(jié)果。</p><p><b> 

84、 4 系統(tǒng)仿真</b></p><p>  Proteus內(nèi)容全面包括其能實驗的內(nèi)容包括軟件部分的匯編、C51 等語言的調(diào)試過程,也包括硬件接口電路中的大部分類型。對同一類功能的接口電路,可以采用不同的硬件來搭建完成,因此采用Proteus 仿真軟件進行實驗教學,克服了用單片機實驗教學板教學中硬件電路固定、學生不能更改、實驗內(nèi)容固定等方面的局限性,可以擴展學生的思路和提高學生的學習興趣。</p

85、><p>  4.1 仿真環(huán)境介紹</p><p>  Proteus是目前最好的模擬單片機外圍器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件)[14]。當然,軟件仿真精度有限,而且不可能所有的器件都找得到相應的仿真模型,用開發(fā)板和仿真器當然是最好選擇,可是對于單片機愛好者,或

86、者簡單的開發(fā)應該是比較好的選擇。Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現(xiàn)象。</p><p>  Keil

87、C51是美國KeilC Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。</p><p>  KeilC5軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之

88、高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p>  4.2 仿真過程與結(jié)果</p><p>  利用以上兩種軟件,就可以進行仿真了。這里以一個16*32點陣漢字顯示為例說明。</p><p>  4.2.1 繪制電路圖</p><p>  運行PROTEUS的ISIS程序后,進入該仿真

89、軟件的主界面。在工作前,要設置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色、圖形界面大小等項目。通過工具欄中的P (從庫中選擇元件命令)命令,在PICK DEVICES窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設置,元器件間連線,將電路圖繪制完畢。</p><p>  4.2.2 HEX文件的生成</p><p>  利用KEIL51生成HEX文件。具體方法如下:&

90、lt;/p><p>  (1) 打開單片機軟件開發(fā)系統(tǒng)KEIL uVision,單擊“uVision”菜單中的“PROJECT”,在此下拉菜單中單擊“NEW PROJECT”后。彈出“CREAT NEW PROJECT”對話框。鍵入新建項目名稱。</p><p>  (2) 鍵入新建項目名并單擊“確定后”,在彈出的“SELECT DEVICE”對話框中選擇合適的單片機型號,如80C51。&

91、lt;/p><p>  (3) 單擊“uVision”菜單中的“FILE”,在此下拉菜單中選擇“NEW”后,打開一個空的文本編輯口,在此窗口總鍵入程序,創(chuàng)建新的源程序“一個16*16點陣漢字顯示.C”(如是匯編語言程序的話為“一個16*16點陣漢字顯示.ASM)文件。</p><p>  (4) 在左邊的“PROJECT”窗口的“FILE”頁中單擊文件組,再單擊鼠標右鍵后,在彈出的窗口中選

92、中“ADD FILES TO GROUP” “SOURCE GROUP1”選項,將“一個16*16點陣漢字顯示.C”程序?qū)氲健癝OURCE GROUP 1”中。</p><p>  (5) 在“PROJECT”下拉菜單中,選擇“OPTIONS FOR TARGET”對話框,在此對話框中“OUTPUT”選項卡中的“CREAT HEX FILE”選項。</p><p>  (6) 在“P

93、ROJECT”下拉菜單中,選擇“REBUILD ALL TARGET FILES”項。若程序編譯成功,將生產(chǎn)“一個16*16點陣漢字顯示.HEX”文件。</p><p>  4.2.3 調(diào)試與結(jié)果</p><p>  在PROTEUS ISIS編輯窗口中,單擊鼠標右鍵選中單片機80C51并單擊鼠標左鍵,彈出“EDIT COMPONET”對話框,在此對話框的“CLOCK FREQUENCY

94、”欄中設置單片機晶振頻率為12MHz,在“PROGRAM FILE”欄中單擊瀏覽選中KEIL生成的HEX文件[15]。單擊運行,就可以看到仿真的結(jié)果了。本設計中顯示的是“2011歡迎您!”的字樣,下圖4.1為顯示“2”字樣。</p><p>  圖4.1 16*32 LED點陣仿真結(jié)果</p><p>  其余的漢字依次仿真結(jié)果如圖4.3所示。</p><p> 

95、 圖4.2 動態(tài)顯示所有漢字</p><p>  這樣,每一個字依次向左滾動顯示的效果就出來了。</p><p><b>  4.3 小結(jié)</b></p><p>  采用PROTEUS進行單片機仿真,可以大大縮短單片機的開發(fā)周期。它不僅能仿真單片機CPU 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。本系統(tǒng)仿真結(jié)

96、果,滿足設計需求。實際操作靈活,使用方便。</p><p><b>  結(jié)束語</b></p><p>  LED點陣顯示應用很廣,在市場上已有比較成熟的產(chǎn)品,但價格比較高,在一些應用中性價比不高。故本次設計的LED點陣顯示控制系統(tǒng)是以單片機為基礎(chǔ),采用優(yōu)越的Flash存儲器為數(shù)據(jù)存儲器,利用接口電路實現(xiàn)與PC機的有效連接并進行數(shù)據(jù)的傳輸,用簡短的匯編程序使LED點陣

97、顯示實現(xiàn)了漢字滾動顯示。其特點:</p><p>  (1) 顯示內(nèi)容能從左到右滾動顯示。</p><p>  (2) 顯示內(nèi)容不限,內(nèi)容可隨時改動。</p><p>  (3) 系統(tǒng)顯示誤差小,性能穩(wěn)定。</p><p>  (4) 硬件結(jié)構(gòu)簡單,顯示美觀,應用靈活。</p><p><b>  需

98、要改進和不足:</b></p><p>  (1) 由于制作倉促,本次設計只是用軟件設計和測試,并沒有制作出實體。</p><p>  (2) 如果要投入生產(chǎn)還需要改進顯示屏、顯示方式等。</p><p>  (3) 由于時間的原因制作的作品比較粗糙,還有待改進。</p><p><b>  致 謝</b&

99、gt;</p><p>  首先,要感謝我的指導老師, 本次課程設計是在老師的親切關(guān)懷和悉心的指導下完成的。在此我謹致以崇高的敬意和衷心的感謝!每當遇到自己不能解決的問題時,老師總是不厭其煩地開導我,給予深刻的意見和指導,從課題確定到制作大綱,從理論分析到程序設計,無不體現(xiàn)了老師對我的關(guān)懷。老師對待每一項工作都嚴謹細致、一絲不茍,而這正是我以后工作、學習中的榜樣;同時,我還要感謝大學期間各位任課老師在學習上給予我

100、的指導和幫助,是他們在兩年的本科學習中指導我們學習,教給我們知識的同時,最重要的是教給了我們許多做人的道理,將為我今后的工作和生活產(chǎn)生久遠的影響。最后,感謝在一起度過愉快大學生活的各位同學,正是由于你們的幫助和鼓勵,我才能夠突破一次次的障礙、克服一次次的困難,順利的完成這次畢業(yè)設計。在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有許多可敬的師長、同學、朋友給了我很大的幫助,在這里請接受我誠摯的謝意。 </p

101、><p><b>  謝謝大家!</b></p><p><b>  參 考 文 獻</b></p><p>  [1] 胡健, 劉玉賓. 定時/計數(shù)器,單片機原理與接口技術(shù)[M]. 北京: 機械工業(yè)出版社, 2005.</p><p>  [2] 向繼文, 廖立新. 基于80C51的LED系統(tǒng)設計[J

102、]. 機電產(chǎn)品開發(fā)與創(chuàng)新, 2007, 20 (2): 62~63.</p><p>  [3] 范立南. 單片機原理及應用教程[M].北京: 北京大學出社, 2006.</p><p>  [4] 劉盛雄, 周奇, 韋云隆. 基于單片機的LED顯示設計與制作[J]. 重慶工學院學報, 2006, 20 (8): 90~92.</p><p>  [5] 辛友順,

103、胡永生. 初步介紹單片機應用系統(tǒng)設計與實現(xiàn)[M]. 福州: 福建科學技術(shù)出版社, 2005.</p><p>  [6] 張齊. 顯示技術(shù)及單片機應用系統(tǒng)設計技術(shù)[M]. 北京: 電子工業(yè)出版社, 2004.</p><p>  [7] 李建忠. 單片機原理及應用[M]. 西安: 西安電子科技大學出版社, 2002. </p><p>  [8] 韓建國, 廖俊必.

104、 單片機原理及應用[M]. 北京: 高等教育出版社, 2007.</p><p>  [9] 劉剛, 朱杰斌, 劉兆峰. 單片機原理及應用[M]. 北京: 中國林業(yè)出版社, 2006.</p><p>  [10] 蔣立平. 數(shù)字電路[M]. 南京: 南京理工大學出版社, 2001.</p><p>  [11] 王建宇, 戴躍偉, 侯曉霞. 微型計算機原理及應用[

105、M]. 北京: 化學工業(yè)出版社, 2001.</p><p>  [12] KEN MARTIN. 數(shù)字集成電路與設計[M]. 北京: 電子工業(yè)出版社, 2002.</p><p>  [13] 王爾乾, 楊士強. 數(shù)字邏輯與數(shù)字集成電路[M]. 北京: 清華大學出版社, 2002. </p><p>  [14] 郝建國, 鄭燕, 薛延俠. 單片機在電子電路設計中

溫馨提示

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

評論

0/150

提交評論