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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于51單片機的LED滾動顯示系統(tǒng)</p><p><b>  摘 要</b></p><p>  LED顯示屏是一種通過控制半導體發(fā)光的顯示方式,它是由很多個紅色的發(fā)光二極管組成,靠燈的亮滅來顯示字符。LED顯示屏分為數碼顯示屏、圖文顯示屏和視頻顯示頻。均由LED矩陣塊組成。目前由于LED顯示屏造價昂貴,主要應用于比較較高檔的場所,主要集中

2、在城市的繁華場所。在舉辦的2010年上海世博會’未來各項大項運動賽事等新增需求,都將促使LED顯示屏的大規(guī)模發(fā)展。此外,已架設的大型LED顯示屏幕梅10年將歷經一次換機潮,隨著人們生活水平的提高,戶外LED顯示屏將逐漸應用于各個行業(yè)。</p><p>  本設計主要實現16*16LED顯示屏對文字及簡單圖像的顯示,擴展功能有實時鐘及實時溫度采集,并通過LCD1602及LED點陣屏靜態(tài)及滾動顯示。設計分為三大步,分

3、別是軟件設計,硬件仿真及實物制作,兼顧理論性及實用性,充分體現了理論與實踐相結合,設計過程中不僅學到了很多有用的知識,也增長了自己的專業(yè)技能,提高了自己的動手能力。</p><p>  關鍵字: LED 顯示屏 發(fā)光二極管 半導體 </p><p><b>  Abstract</b></p><p>  LED display is t

4、he display mode controlling 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 di

5、splay is divided into 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

6、 the cities busting place, 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 tem

7、perature measurement which 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

8、combination of theory 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><

9、;b>  目 錄</b></p><p><b>  1 緒論3</b></p><p>  1.1 課題背景及意義5</p><p>  1.2 本課題相關介紹………………………………………………7</p><p>  1.3 論文章節(jié)安排7</p><p>  

10、2 系統(tǒng)的硬件部分設計8</p><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&

11、gt;  2.3.3 主控制單片機9</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驅動模塊的選擇12</p><p>  2.4.3 主要芯片74L

12、S138的介紹12</p><p>  2.5 16*16 LED點陣顯示制作14</p><p>  2.5.1 16*16 LED點陣的內部結構及工作原理14</p><p>  2.6 硬件系統(tǒng)的整體設計圖與原理分析16</p><p>  2.7 小結18</p><p>  3 系統(tǒng)的軟件

13、部分設計19</p><p>  3.1 程序設計思路與結構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&g

14、t;  3.2.2 LED動態(tài)顯示21</p><p>  3.2.3 漢字顯示程序設計21</p><p>  3.2.4 顯示設計22</p><p>  3.3 小結23</p><p>  4 系統(tǒng)仿真24</p><p>  4.1 仿真環(huán)境介紹24</p><p&

15、gt;  4.2 仿真過程與結果24</p><p>  4.2.1 繪制電路圖24</p><p>  4.2.2 HEX文件的生成25</p><p>  4.2.3 調試與結果25</p><p>  4.3 小結27</p><p><b>  結束語28</b>&l

16、t;/p><p><b>  致 謝29</b></p><p>  參 考 文 獻30</p><p>  附錄A 點陣電路整體硬件電路圖31</p><p><b>  緒論</b></p><p>  隨著電子技術和信息技術的迅速發(fā)展,LED的應用范圍越來越廣泛。

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

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

19、共告示等方面得到了廣泛的應用,因此研究點陣式LED顯示屏接口與控制技術具有較高的實際應用價值。LED顯示屏的應用涉及社會經濟的許多領域,主要包括:</p><p>  (1) 證券交易、金融信息顯示。</p><p>  (2) 機場航班動態(tài)信息顯示。</p><p>  (3) 車站旅客引導信息顯示。</p><p>  (4) 體

20、育場館、道路交通信息顯示。</p><p>  (5) 調度指揮中心顯示。</p><p>  (6) 郵政、電信、商場購物中心等服務領域的業(yè)務宣傳顯示。</p><p>  (7) 廣告媒體新產品宣傳顯示等。  </p><p>  實際生活中經常會遇到一些特殊要求的動態(tài)顯示,比如電梯運行中指示箭頭的上下移動、某些智能儀表幅值的條形顯

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

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

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

24、計的論文。其中各個章節(jié)安排如下:</p><p>  第一章 緒論主要講述該設計的背景,意義以及設計思想。</p><p>  第二章 系統(tǒng)的總體方案設計主要是硬件組成部分及與設計電路相關的芯片介紹。</p><p>  第三章 系統(tǒng)的軟件部分。</p><p>  第四章 系統(tǒng)仿真,顯示符合設計要求的顯示結果。</p><

25、;p>  2 系統(tǒng)的硬件部分設計</p><p>  本設計主要采用單片機及其周邊芯片,設計點陣LED與單片機的接口電路。</p><p><b>  2.1 設計要求</b></p><p>  (1) 通過對80C51單片機的C語言編程,實現漢字的左移滾動顯示。</p><p>  (2) 成本低,功能

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

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

28、路所采用的主要芯片,如單片機80C51,譯碼器74LS138。此外,還簡要闡述了選取這些芯片的優(yōu)點。</p><p>  2.3.1 單片微型計算機簡介</p><p>  單片微型計算機(Single Chip Micro Computer)簡稱單片機,它是一種把組成微型計算機的各功能部件:中央處理單元CPU、一定容量的隨機存儲器RAM和只讀存儲器ROM、I/O接口電路、定時器/計數器

29、以及串行口等制作在一塊芯片中的計算機,從而實現微型計算機的基本功能[5]。單片機具有結構簡單、控制功能強、可靠性高、體積小、價格低等特點,在家用電器、智能化儀器、工業(yè)控制以及火箭導航尖端技術領域都發(fā)揮著十分重要的作用[6]。單片機的內部結構示意圖如下圖2.2所示。</p><p>  圖2.2 單片機內部結構示意圖 圖2.3 單片機應用系統(tǒng)組成示意圖</p><p

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

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

32、;/p><p>  2.3.3 主控制單片機</p><p>  80C51是一種高性能CMOS8位微處理器,俗稱單片機,它帶有4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高

33、密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的80C51是一種高效微控制器, 80C2051是它的一種精簡版本。80C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案[8]。80C51引腳即外觀如圖2.4所示。</p><p>  圖2.4 80C51引腳外觀圖</p><p> 

34、 2.3.4 80C51接口說明</p><p>  Vss(20腳):接地。</p><p>  VCC(40腳):主電源+5V。</p><p>  XTAL1(19腳):接外部晶體的一端。在片內它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,對于HMOS單片機,該端引腳必須接地;對于CHMOS單片機,此引腳作為驅動端。</p><p&g

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

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

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

38、FR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。</p><p>  EA/VPP(31腳):當EA端輸入高電平時,CPU從片內程序存儲器地址0000H單元開始執(zhí)行程序。當地址超出4KB時,將自動執(zhí)行片外程序存儲器的程序。當EA輸入低電平時,CPU僅訪問片外程序存儲器。在對87C51EPROM編程時,此引腳用于施加編程電壓VPP。</p><p><b>  輸入/輸出引腳

39、:</b></p><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.

40、0~P3.7  (10腳~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&g

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

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

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

44、給電路的焊接帶來一定的困難,因此不選用這種方案作為顯示模塊。</p><p>  經過兩種方案的比較,最后選擇方案一:LED的點陣顯示。</p><p>  2.4.2 LED驅動模塊的選擇</p><p>  方案一:采用靜態(tài)鎖存方式,將每一個LED發(fā)光管的一端接至單片機的一個I/O口,另一端通過電阻接電源。這種方法可以直接驅動LED,原理簡單,驅動能力強,LE

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

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

47、是編碼的逆過程。廣泛被使用的譯碼器是74LS138譯碼器,因此該設計中采用74LS138且其作用也就是將一組碼轉換為想要的確定的信息。</p><p>  74LS138為3線~8線譯碼器,共有54/74S138和54/74LS138 兩種線路結構型式。其工作原理:</p><p>  當一個選通端(E3)為高電平,另兩個選通端(E1和E2)為低電平時,可將地址端(A、B、C)的二進制編碼

48、在一個對應的輸出端以低電平的方式譯出。利用E1、E2和E3可級聯擴展成一個24線的譯碼器;若外接一個反相器還可以級聯擴展成為32線譯碼器。若將選通端中的一個作為數據的輸入端時,74LS138還可作數據分配器。假設地址端的值為001,那么則說明其/Y1輸出口是有效的,且其輸出值為10111111。假設地址端的值為010,那么則說明其/Y2輸出口是有效的,且其輸出值為11011111。假設地址端的值為011,那么則說明其/Y2輸出口是有效的

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

50、。</p><p>  表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點陣的內部結構

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

52、此我們把它拆分為上部和下部,上部由8*16點陣組成,下部也由8*16點陣組成。</p><p>  在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的P00~P07口。方向為P00到P07,顯示漢字“學”時,由上往下排列,為P00亮,P01滅,P02滅,P03滅,P04滅,P05滅,P 06滅,P 07 滅。即二進制10000000,轉換為16進制為 80H。</p><p>

53、  第一列的上半部完成后,繼續(xù)掃描第一列的下半部,為了接線的方便,我們仍設計成由上往下掃描,從上圖可以看到,這一列全部為不亮,即為00000000,16進制則為00H。 </p><p>  然后單片機轉向第二列的上半部,P01點亮,為01000000,即16進制40h.這一列完成后繼續(xù)進行下半部分的掃描,P20點亮,為二進制00000001,即16進制01H。依照這個方法,繼續(xù)進行下面的掃描,一共掃描32個8位

54、,可以得出漢字“尚”的掃描代碼為:</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>

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

56、自動生成,把我們所需要漢字代碼復制到我們的C程序中即可,如下圖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>&l

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

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

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

60、138譯碼器U2來說,其中E1端必須為高電平才能有效,也就是說此時譯碼器才能正常工作。E2和E3端是低電平有效,用來接地端。其余的3個譯碼器的原理都是這樣。 </p><p><b>  2.7 小結</b></p><p>  本章節(jié)主要介紹了設計中硬件電路用到的單片機80C51芯片的總體結構和各個重要引腳的功能、顯示電路中主要器件74LS138譯碼器的各個引腳及

61、其功能、以及整體設計結構框圖的講解和具體實現字符的連續(xù)左移顯示的詳細分析。</p><p>  3 系統(tǒng)的軟件部分設計</p><p>  應用系統(tǒng)中的應用軟件是根據系統(tǒng)功能要求而設計的,能可靠地實現系統(tǒng)的各種功能。</p><p>  3.1 程序設計思路與結構</p><p>  系統(tǒng)采用模塊化結構,包括主程序、延時程序、顯示子程序[

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

63、驅動相應段點亮。直到送完16個段碼就可以顯示一個漢字了。</p><p>  3.1.2 程序設計流程圖</p><p>  系統(tǒng)程序主要由開始、初始化、主程序、字庫等組成。其中主程序和子程序的流程圖如圖3.1和圖3.2所示。</p><p>  圖3.1 主程序流程圖</p><p>  對圖3.1主程序流程圖的簡要分析如下:</

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

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

66、果時間沒有完畢,則返回至“設定一幀顯示時間”處重新設定該時間;反之整個系統(tǒng)程序結束完成。</p><p>  3.2 模塊程序設計</p><p>  該設計中主要由系統(tǒng)初始化、LED動態(tài)顯示、漢字顯示程序設計以及顯示設計幾個部分組成。</p><p>  3.2.1 系統(tǒng)初始化</p><p>  將事先已經編寫好的C語言程序輸入到單片

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

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

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

70、數設置,即:選擇C51格式,字節(jié)倒序,冗余格式,縱向取模。 這樣輸入單個的漢字后,再單擊“取?!?。此時十六進制數據的漢字代碼即可自動生成,把我們所需要漢字代碼復制到我們的C語言程序中就可以了[13]。</p><p>  從字模提取伴侶中得到需要顯示漢字的代碼值。如“余境成”的代碼為:</p><p>  unsigned char code ziku[]={ //字符碼的存放格式

71、為:從左到右共16列,并按列的上下部分依次存放 //一組即為一列</p><p>  /*---轉換字符 余 ---*/</p><p>  0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x10,0x2F,0xEE,0xC1,0x04,</p><p>  0x01,0x10,0x3F,0xF8,0x

72、01,0x00,0x09,0x20,0x19,0x18,0x21,0x0C,0x45,0x04,0x02,0x00,</p><p>  /*---轉換字符 境 ---*/</p><p>  0x20,0x80,0x20,0x48,0x27,0xFC,0x21,0x10,0x20,0xA4,0xFF,0xFE,0x20,0x08,0x23,0xFC,</p><p&g

73、t;  0x22,0x08,0x23,0xF8,0x22,0x08,0x3B,0xF8,0xE1,0x20,0x41,0x22,0x02,0x22,0x0C,0x1E,</p><p>  /*---轉換字符 成 ---*/</p><p>  0x00,0x80,0x00,0xA0,0x00,0x90,0x3F,0xFC,0x20,0x80,0x20,0x80,0x20,0x84,0x3

74、E,0x44,</p><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>  漢字

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

76、gt;<b>  {</b></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

77、+2*i+1);</p><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++) //顯示

78、右半邊屏幕</p><p><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><

79、/p><p>  P0=*(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>

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

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

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

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

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

85、體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現高級語言的優(yōu)勢。</p><p>  4.2 仿真過程與結果</p><p>  利用以上兩種軟件,就可以進行仿真了。這里以一個16*32點陣漢字顯示為例說明。</p><p>  4.2.1 繪制電路圖</p><p>  運

86、行PROTEUS的ISIS程序后,進入該仿真軟件的主界面。在工作前,要設置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色、圖形界面大小等項目。通過工具欄中的P (從庫中選擇元件命令)命令,在PICK DEVICES窗口中選擇電路所需的元件,放置元件并調整其相對位置,元件參數設置,元器件間連線,將電路圖繪制完畢。</p><p>  4.2.2 HEX文件的生成</p><p>  利用

87、KEIL51生成HEX文件。具體方法如下:</p><p>  (1) 打開單片機軟件開發(fā)系統(tǒng)KEIL uVision,單擊“uVision”菜單中的“PROJECT”,在此下拉菜單中單擊“NEW PROJECT”后。彈出“CREAT NEW PROJECT”對話框。鍵入新建項目名稱。</p><p>  (2) 鍵入新建項目名并單擊“確定后”,在彈出的“SELECT DEVICE”對

88、話框中選擇合適的單片機型號,如80C51。</p><p>  (3) 單擊“uVision”菜單中的“FILE”,在此下拉菜單中選擇“NEW”后,打開一個空的文本編輯口,在此窗口總鍵入程序,創(chuàng)建新的源程序“一個16*16點陣漢字顯示.C”(如是匯編語言程序的話為“一個16*16點陣漢字顯示.ASM)文件。</p><p>  (4) 在左邊的“PROJECT”窗口的“FILE”頁中單

89、擊文件組,再單擊鼠標右鍵后,在彈出的窗口中選中“ADD FILES TO GROUP” “SOURCE GROUP1”選項,將“一個16*16點陣漢字顯示.C”程序導入到“SOURCE GROUP 1”中。</p><p>  (5) 在“PROJECT”下拉菜單中,選擇“OPTIONS FOR TARGET”對話框,在此對話框中“OUTPUT”選項卡中的“CREAT HEX FILE”選項。</p>

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

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

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

93、單片機參與的其它電路的工作情況。本系統(tǒng)仿真結果,滿足設計需求。實際操作靈活,使用方便。</p><p><b>  結束語</b></p><p>  LED點陣顯示應用很廣,在市場上已有比較成熟的產品,但價格比較高,在一些應用中性價比不高。故本次設計的LED點陣顯示控制系統(tǒng)是以單片機為基礎,采用優(yōu)越的Flash存儲器為數據存儲器,利用接口電路實現與PC機的有效連接并

94、進行數據的傳輸,用簡短的匯編程序使LED點陣顯示實現了漢字滾動顯示。其特點:</p><p>  (1) 顯示內容能從左到右滾動顯示。</p><p>  (2) 顯示內容不限,內容可隨時改動。</p><p>  (3) 系統(tǒng)顯示誤差小,性能穩(wěn)定。</p><p>  (4) 硬件結構簡單,顯示美觀,應用靈活。</p>

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

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

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

98、助,在這里請接受我誠摯的謝意。 </p><p><b>  謝謝大家!</b></p><p><b>  參 考 文 獻</b></p><p>  [1] 胡健, 劉玉賓. 定時/計數器,單片機原理與接口技術[M]. 北京: 機械工業(yè)出版社, 2005.</p><p>  [2] 向繼文,

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

100、<p>  [5] 辛友順, 胡永生. 初步介紹單片機應用系統(tǒng)設計與實現[M]. 福州: 福建科學技術出版社, 2005.</p><p>  [6] 張齊. 顯示技術及單片機應用系統(tǒng)設計技術[M]. 北京: 電子工業(yè)出版社, 2004.</p><p>  [7] 李建忠. 單片機原理及應用[M]. 西安: 西安電子科技大學出版社, 2002. </p>&l

101、t;p>  [8] 韓建國, 廖俊必. 單片機原理及應用[M]. 北京: 高等教育出版社, 2007.</p><p>  [9] 劉剛, 朱杰斌, 劉兆峰. 單片機原理及應用[M]. 北京: 中國林業(yè)出版社, 2006.</p><p>  [10] 蔣立平. 數字電路[M]. 南京: 南京理工大學出版社, 2001.</p><p>  [11] 王建宇,

102、 戴躍偉, 侯曉霞. 微型計算機原理及應用[M]. 北京: 化學工業(yè)出版社, 2001.</p><p>  [12] KEN MARTIN. 數字集成電路與設計[M]. 北京: 電子工業(yè)出版社, 2002.</p><p>  [13] 王爾乾, 楊士強. 數字邏輯與數字集成電路[M]. 北京: 清華大學出版社, 2002. </p><p>  [14] 郝建國

溫馨提示

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

評論

0/150

提交評論