單片機(jī)課程設(shè)計(jì)——16x16LED滾動(dòng)顯示_第1頁
單片機(jī)課程設(shè)計(jì)——16x16LED滾動(dòng)顯示_第2頁
單片機(jī)課程設(shè)計(jì)——16x16LED滾動(dòng)顯示_第3頁
單片機(jī)課程設(shè)計(jì)——16x16LED滾動(dòng)顯示_第4頁
單片機(jī)課程設(shè)計(jì)——16x16LED滾動(dòng)顯示_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、16x16LED滾動(dòng)顯示 小組成員:小組成員: 設(shè)計(jì)時(shí)間:2014年12月指導(dǎo)老師:設(shè)計(jì)概要 本設(shè)計(jì)使用AT89C55系列高速單片機(jī)作為主控制模塊,利用簡(jiǎn)單 的外圍電路來驅(qū)動(dòng)1616的點(diǎn)陣LED顯示屏。利用AT89C55系列高速單片機(jī)本身強(qiáng)大的功能,可以很方便的實(shí)現(xiàn)單片機(jī)與PC機(jī)間的數(shù)據(jù)傳輸及存儲(chǔ),并能利用軟件方便的進(jìn)行顯示內(nèi)容的多樣變化,另一方面點(diǎn)陣顯示屏廣泛的應(yīng)用于醫(yī)院、機(jī)場(chǎng)、銀行等公共場(chǎng)所,所以本設(shè)計(jì)具有很強(qiáng)的現(xiàn)實(shí)應(yīng)用性。 本LED顯示屏能夠以動(dòng)態(tài)掃描的方式同時(shí)顯示4個(gè)88點(diǎn)陣漢字,并能通過上位機(jī)軟件修改顯示內(nèi)容和顯示效果等等。把字符內(nèi)碼存儲(chǔ)在空閑的單片機(jī)程序存儲(chǔ)器空間,使本LED顯示系

2、統(tǒng)能掉電存儲(chǔ)1024個(gè)字符。設(shè)計(jì)中采用了SPI接口的GB2312標(biāo)準(zhǔn)字庫,支持所有的國(guó)標(biāo)字符和ASCII標(biāo)準(zhǔn)字符的顯示。因?yàn)椴捎么袀鬏敺绞剑贡鞠到y(tǒng)的可擴(kuò)展性得到提升,便于多個(gè)顯示單元的級(jí)聯(lián)。 本文從LED的顯示原理入手,詳細(xì)闡述了LED動(dòng)態(tài)顯示的過程,以及硬件電路的設(shè)計(jì)、計(jì)算和軟件的算法關(guān)鍵詞:LED動(dòng)態(tài)顯示 AT89C55 點(diǎn)陣漢字顯示 仿真論證設(shè)計(jì) 圖文顯示一般有靜態(tài)和動(dòng)態(tài)顯示兩種方案,靜態(tài)方案雖然設(shè)計(jì)簡(jiǎn)單,但其使用的管腳太多,如本設(shè)計(jì)中1616的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多的端口,如果我采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計(jì)算,1616的點(diǎn)陣需要256/8=32

3、個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是1616的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另外一種稱為動(dòng)態(tài)掃描的顯示方法。 動(dòng)態(tài)掃描的意思簡(jiǎn)單地說就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如16行)的同名列共用一套驅(qū)動(dòng)器。具體就1616的點(diǎn)陣來說,把所有同1行的發(fā)光管的陽極連在一起,把所有同1列的發(fā)光管的陰極連在一起(共陽極的接法),先送出對(duì)應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定時(shí)間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;以此類

4、推,第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能夠看到顯示屏上穩(wěn)定的圖形了。實(shí)驗(yàn)原理 1616掃描LED點(diǎn)陣的工作原理同8位掃描數(shù)碼管類似。它有16個(gè)共陰極輸出端口,每個(gè)共陰極對(duì)應(yīng)有16個(gè)LED顯示燈。所以其掃描譯碼地址需4位信號(hào)線。要使16點(diǎn)陣上某個(gè)點(diǎn)亮,如第10行第4列的LED點(diǎn)亮,只要讓列選信號(hào)為“0100”,從而選中第4列,再給第10行一個(gè)高電平,即可點(diǎn)亮該LED。本實(shí)驗(yàn)通過74LS164和74LS595芯片寫入字形,產(chǎn)生掃描信號(hào)。為了顯示整個(gè)漢字,首先分布好漢字的排列,以行給漢字信息;然后以大于24HZ的頻率掃描列,

5、即每行逐一加高電平,根據(jù)人眼的視覺殘留特性,使之形成整個(gè)漢字的顯示。系統(tǒng)框圖AT89C55單片機(jī)74LS595列驅(qū)動(dòng)器7 4行L驅(qū)S動(dòng)1器6 4 16x16LED點(diǎn)陣硬件設(shè)計(jì)一一.主要芯片資料主要芯片資料AT89C55介紹 AT89C55AT89C55為為8 8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 8xc52 相同,相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC IC 內(nèi)部寄存器、數(shù)據(jù)內(nèi)部寄存器、數(shù)據(jù)RAMRAM及外

6、部接口等功能部件的初始及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IRIR的接收解碼及與主板的接收解碼及與主板CPUCPU通信等。主要管腳有:通信等。主要管腳有:XTAL1XTAL1(19 19 腳)和腳)和XTAL2XTAL2(18 18 腳)為振蕩器輸入輸出端口,腳)為振蕩器輸入輸出端口,外接外接12MHz 12MHz 晶振。晶振。RST/VpdRST/Vpd(9 9 腳)為復(fù)位輸入端口,腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。外接電阻電容組成的復(fù)位電路。VCCVCC(40 40 腳)和腳)和VSSVSS(2

7、0 20 腳)為供電端口,分別接腳)為供電端口,分別接+5V+5V電源的正負(fù)端。電源的正負(fù)端。P0P3 P0P3 為可編程通用為可編程通用I/O I/O 腳,其功能用途由軟件定義,腳,其功能用途由軟件定義,在本設(shè)計(jì)中,在本設(shè)計(jì)中,P0 P0 端口(端口(3239 3239 腳)被定義為腳)被定義為N1 N1 功能控功能控制端口,分別與制端口,分別與N1N1的相應(yīng)功能管腳相連接,的相應(yīng)功能管腳相連接,13 13 腳定義腳定義為為IRIR輸入端,輸入端,10 10 腳和腳和1111腳定義為腳定義為I2CI2C總線控制端口,分總線控制端口,分別連接別連接N1N1的的SDASSDAS(1818腳)和腳

8、)和SCLSSCLS(1919腳)端口,腳)端口,12 12 腳、腳、27 27 腳及腳及28 28 腳定義為握手信號(hào)功能端口,連接主板腳定義為握手信號(hào)功能端口,連接主板CPU CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。入的控制功能。74LS595介紹74595的數(shù)據(jù)端: Q1-Q7:八位并行輸出端,可以直接控制數(shù)碼管的8個(gè)段。 Q7:級(jí)聯(lián)輸出端。我將它接下一個(gè)595的SI端。 DS:串行數(shù)據(jù)輸入端。STcp:存儲(chǔ)寄存器的時(shí)鐘脈沖輸入口SHcp:移位寄存器的時(shí)鐘脈沖輸入口OE:的非輸出使能端MR:的非芯片復(fù)位端74LS

9、164介紹 當(dāng)清除端(CLEAR)為低電平時(shí),輸出端(QAQH)均為低電平。 串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng) A、B任意一個(gè)為 低電平,則禁止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖上升沿作用下Q0 為低電平。當(dāng)A、B 有一個(gè)為高電平,則另一個(gè)就允許輸入數(shù)據(jù),并在CLOCK 上升沿作用下決定Q0 的狀態(tài)。 引腳功能: CLOCK :時(shí)鐘輸入端 CLEAR: 同步清除輸入端(低電平有效) 1,2 :串行數(shù)據(jù)輸入端 Q8Q15: 輸出端 1616LED點(diǎn)陣顯示制作 以UCDOS中文宋體字庫為例,每一個(gè)字由16行16列的點(diǎn)陣組成顯示。即國(guó)家標(biāo)準(zhǔn)漢字庫中的每一個(gè)字均由256點(diǎn)陣來表示。我們可以把

10、每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。這里我們以“魏”字說明,如下圖所示:圖為字模提取軟件提取16x16LED漢字顯示代碼系統(tǒng)主程序流程圖開始系統(tǒng)初始化左滾屏顯示效果上滾屏顯示效果右滾屏顯示效果下滾屏顯示效果行驅(qū)動(dòng)器列驅(qū)動(dòng)器總電路連線圖用4個(gè)88LED點(diǎn)陣構(gòu)成1616LED點(diǎn)陣 Proteus中只有57和88等LED點(diǎn)陣,并沒有1616LED點(diǎn)陣,而在實(shí)際應(yīng)用中,要良好地顯示一個(gè)漢字,則至少需要1616點(diǎn)陣。下面我們就首先介紹使用88點(diǎn)陣構(gòu)建1616點(diǎn)陣的方法,并構(gòu)建一塊1616LED點(diǎn)陣,用于本例的

11、顯示任務(wù)。 從Proteus的元件庫中找到“MATRIX-8X8-RED”元器件,并將四塊該元器件放入Proteus文檔區(qū)編輯窗口中。此時(shí)需要注意,如果該元器件保持初始的位置(沒有轉(zhuǎn)動(dòng)方向),我們要首先將其左轉(zhuǎn)90,使其水平放置,那么此時(shí)它的左面8個(gè)引腳是其行線,右邊8個(gè)引腳是其列線(當(dāng)然,如果你是將右轉(zhuǎn),則右邊8個(gè)引腳是行線)。然后我們將四個(gè)元器件對(duì)應(yīng)的行線和列線分別進(jìn)行連接,使每一條行線引腳接一行16個(gè)LED,列線也相同。并注意要將行線和列線引出一定長(zhǎng)度的引腳,以便下面我們使用。連接好的1616點(diǎn)陣如右圖。實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)電路及連線 電路主要由單片機(jī)和一些外部設(shè)備連接而成,利用4個(gè)8*8LED

12、顯示組裝成16*16LED顯示,2個(gè)R*8排電阻,一個(gè)74HC154組成。該顯示器采用AT89C55單片機(jī)作為控制器,12MHz晶振,其中P0口作為字符數(shù)據(jù)輸出口,P2口作為顯示器掃描輸出口,第31管腳(EA)接電源。電路包括單片機(jī)、電源電路、時(shí)鐘電路、復(fù)位電路、驅(qū)動(dòng)電路和LED點(diǎn)陣電路等。本設(shè)計(jì)的核心是利用單片機(jī)讀取顯示字型碼,通過驅(qū)動(dòng)電路對(duì)1616LED點(diǎn)陣進(jìn)行動(dòng)態(tài)掃描,以實(shí)現(xiàn)漢字的滾動(dòng)顯示。軟件設(shè)計(jì) 本軟件要求實(shí)現(xiàn)如下要求:漢字要穩(wěn)定、明亮并且文字要以一定速度上升滾動(dòng)顯示。 顯示屏軟件模塊:初始化程序、主程序、多字滾動(dòng)、顯示程序、掃描程序。顯示程序的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各

13、種控制信號(hào),使屏幕按設(shè)計(jì)的要求顯示。軟件設(shè)計(jì)中,顯示屏的軟件系統(tǒng)分為兩層;第一層是底層的顯示驅(qū)動(dòng)程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動(dòng)程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號(hào)和其他控制信號(hào),配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動(dòng)器程序由定時(shí)器T0中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實(shí)現(xiàn)。 顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對(duì)定時(shí)器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計(jì)算公式如下: 刷頻率(幀頻)=1/16T0溢=1/16f/12(65536-t) 其中f位晶振頻率,t為定時(shí)器T0初值(工作在16

14、位定時(shí)器模式)。 然后顯示驅(qū)動(dòng)程序查詢當(dāng)前燃亮的行號(hào),從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時(shí)候產(chǎn)生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號(hào),重新打開顯示。系統(tǒng)調(diào)試 軟件調(diào)試:軟件為網(wǎng)絡(luò)所提供,其原理在上一模塊已作說明,在這里再作說明,軟件經(jīng)調(diào)試無誤,直接將其下再到單片機(jī)中,看是否達(dá)到所要的效果軟件部分是先參考書上的例子,然后自己根據(jù)硬件電路寫程序,由于以前所學(xué)是單片機(jī)匯編語言,所以這個(gè)系統(tǒng)在編寫程序過程中都采用匯編語言編寫。剛剛開始,編寫不會(huì)一次性通過,經(jīng)過仔細(xì)分析修改最后編譯成功。但是,在實(shí)際寫如C55中,LED顯示屏出現(xiàn)各種各樣的亂碼,通過再次認(rèn)真仔細(xì)分析多次修改程序后,程序能夠正常運(yùn)行。 硬件調(diào)試:在對(duì)各個(gè)硬件模塊進(jìn)行調(diào)試時(shí),要保證軟件正確情況下去測(cè)試軟 件,要不然會(huì)發(fā)生錯(cuò)誤,硬件仿真前要認(rèn)真檢驗(yàn)點(diǎn)陣及線路的好壞,檢查無誤后才下載主程序。結(jié)束語 本文設(shè)計(jì)的1616的點(diǎn)陣LED圖文顯示屏,能夠在目測(cè)條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示的圖形和文字較穩(wěn)定、清晰。圖形或文字向上滾動(dòng)顯示。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡(jiǎn)單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn)。 在此次設(shè)計(jì)中,我得到以下體會(huì): 1.在這次點(diǎn)陣設(shè)計(jì)的過程讓我進(jìn)一步熟悉KEIL及Prote

溫馨提示

  • 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)論