課程設(shè)計報告--led點陣廣告牌的設(shè)計_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘要</b></p><p>  本文介紹了一款以單片機AT89C52為控制器的LED點陣顯示屏系統(tǒng)的設(shè)計。該系統(tǒng)可實現(xiàn)中英文字符以及特殊字符的顯示和動態(tài)特效顯示,通過控制按鈕,可以實現(xiàn)不同效果間切換,達到實際應(yīng)用中廣告牌的要求。并且可以通過級連的方式來擴大顯示屏幕的尺寸以達到增加顯示內(nèi)容的目的。</p><p>  系統(tǒng)采用PC機作為上

2、位機,上位機向單片機發(fā)送控制命令和上位機所存儲的顯示代碼,AT89C52單片機接收并處理PC機的控制命令以及顯示代碼,由顯示驅(qū)動模塊驅(qū)動一個16×16分辨率的LED點陣顯示屏的掃描顯示。選用兩片74HC138譯碼器作為I /O口的擴展,與LED點陣顯示屏的控制列腳相連,16×16的點陣顯示由4塊8×8點陣組成。軟件選用C語言程序編寫。外部中斷0輸入口接控制按鈕實現(xiàn)不同效果間的轉(zhuǎn)換。所選用的AT89C52單片

3、機具有價格低廉程序?qū)懭敕奖愕奶攸c使得整個系統(tǒng)方便維護和檢修。除此之外,該系統(tǒng)只占用了單片機少量的I /O口和內(nèi)存,為系統(tǒng)留下了功能擴展的空間。</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 課題背景1</p><p

4、>  1.1.1 選題背景1</p><p>  1.1.2 研究現(xiàn)狀及發(fā)展趨勢1</p><p>  1.2 論文主要內(nèi)容1</p><p>  2 系統(tǒng)總體方案設(shè)計2</p><p>  2.1 系統(tǒng)硬件設(shè)計方案2</p><p>  2.1 系統(tǒng)軟件設(shè)計方案2</p><p&

5、gt;  3 硬件系統(tǒng)設(shè)計3</p><p>  3.1 硬件整體設(shè)計概述3</p><p>  3.2 控制單元4</p><p>  3.2.1 AT89C52基本介紹4</p><p>  3.2.2 控制系統(tǒng)設(shè)計4</p><p><b>  3.3 譯碼器5</b></

6、p><p>  3.4 LED點陣顯示屏6</p><p>  3.4.1 LED點陣顯示屏的基本介紹6</p><p>  3.4.2 LED點陣顯示屏的工作原理7</p><p>  4 軟件系統(tǒng)設(shè)計9</p><p>  4.1 程序設(shè)計9</p><p>  4.2 顯示程序的設(shè)計

7、10</p><p>  4.2.1 點陣數(shù)據(jù)表達方式10</p><p>  4.2.2 動態(tài)特效顯示程序的設(shè)計10</p><p>  4.3 外部中斷程序12</p><p><b>  5 系統(tǒng)調(diào)試13</b></p><p>  5.1 系統(tǒng)調(diào)試的基本過程13</p&g

8、t;<p>  5.1.1 軟件調(diào)試13</p><p>  5.2 系統(tǒng)調(diào)試的結(jié)果14</p><p><b>  結(jié)論15</b></p><p><b>  致謝16</b></p><p><b>  參考文獻17</b></p>

9、<p><b>  附錄18</b></p><p>  附錄1:硬件原理圖18</p><p>  附錄2:C語言程序19</p><p><b>  1 緒論</b></p><p><b>  1.1 課題背景</b></p><p&g

10、t;  1.1.1 選題背景</p><p>  LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,顯示屏由幾萬到幾十萬個半導(dǎo)體發(fā)光二極管像素點均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發(fā)已經(jīng)達到了實用階段。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏

11、無法比擬的優(yōu)點。</p><p>  LED顯示屏的應(yīng)用涉及社會經(jīng)濟的許多領(lǐng)域,主要包括:(1)證券交易、金融信息顯示。(2)機場航班動態(tài)信息顯示。(3)港口、車站旅客引導(dǎo)信息顯示。(4)體育場館信息顯示。(5)道路交通信息顯示。(6)調(diào)度指揮中心信息顯示。(7)郵政、電信、商場購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示。(8)廣告媒體新產(chǎn)品等。</p><p>  1.1.2 研究現(xiàn)狀及發(fā)展

12、趨勢</p><p>  LED之所以受到廣泛重視而得到迅速發(fā)展,是與它本身所具有的優(yōu)點分不開的。這些優(yōu)點概括起來是:亮度高、工作電壓低、功耗小、大型化、壽命長、耐沖擊和性能穩(wěn)定。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。</p><p>  在街上隨處可見LED廣告牌,從最初的靜態(tài)顯示,到后來的左移滾動、右移滾動

13、、上移、下移、閃爍、卷動等各種花樣顯示,由起初的一種控制,向多種控制發(fā)展,現(xiàn)越來越趨于多樣化,美觀化。</p><p>  1.2 論文主要內(nèi)容</p><p>  本設(shè)計為一款能夠顯示不同字符的LED點陣廣告牌,能夠顯示中文、英文及特殊符號,并通過控制按鈕能夠?qū)崿F(xiàn)不同顯示效果間的切換,有左移、上移和閃爍。</p><p>  論文包括系統(tǒng)總體方案設(shè)計,硬件系統(tǒng)設(shè)計

14、,系統(tǒng)軟件設(shè)計,系統(tǒng)調(diào)試及結(jié)論。在系統(tǒng)總體方案設(shè)計中給出了系統(tǒng)設(shè)計硬件框圖及軟件功能結(jié)構(gòu)框圖。在硬件系統(tǒng)設(shè)計中給出了硬件原理圖,各部分電路圖,元件原理圖等。在系統(tǒng)軟件設(shè)計中,有系統(tǒng)主程序及功能模塊流程圖等。系統(tǒng)調(diào)試包括軟件調(diào)試和硬件調(diào)試,并給出了調(diào)試的結(jié)果。附錄中存放有硬件原理圖及完整的C語言程序。</p><p>  2 系統(tǒng)總體方案設(shè)計</p><p>  2.1 系統(tǒng)硬件設(shè)計方案&l

15、t;/p><p>  以PC機作為上位機存儲和處理顯示內(nèi)容用串行通信的方式將顯示內(nèi)容和控制指令傳輸?shù)絾纹瑱C系統(tǒng),單片機根據(jù)上位機傳輸來的內(nèi)容和指令通過端口譯碼擴展后驅(qū)動4塊8×8LED點陣模塊構(gòu)成的16×16的LED點陣顯示屏。方案框圖見圖2-1。</p><p>  2.1 系統(tǒng)軟件設(shè)計方案</p><p>  軟件的設(shè)計需要實現(xiàn)以下功能:顯示不同

16、字符的LED點陣廣告牌,至少顯示兩個漢字;有中斷控制程序?qū)崿F(xiàn)不同效果間切換,如左移、上移、閃爍等;能夠顯示自定義字符。由此,軟件大致可以分為主程序,中斷控制程序,各種特效顯示子程序三個主要部分組成。具體結(jié)構(gòu)圖見圖2-2。</p><p>  本文軟件的編寫用Keil軟件以及C語言編寫,編譯完成后,生成后綴名為.hex的可執(zhí)行文件,用單片機硬件仿真開發(fā)工具Proteus7.5進行電路原理實驗及綜合系統(tǒng)仿真,進行各種

17、運行和調(diào)試。最后再下載到單片機中執(zhí)行。</p><p><b>  3 硬件系統(tǒng)設(shè)計</b></p><p>  3.1 硬件整體設(shè)計概述</p><p>  顯示系統(tǒng)具體設(shè)計主要由上位機,單片機系統(tǒng),控制電路,譯碼電路, 16×16的點陣屏五部分組成。具體工作流程為:上位PC機編寫好程序后下載到單片機中,單片機執(zhí)行相應(yīng)的指令處理顯示

18、代碼將顯示內(nèi)容通過I/O口輸出并且譯碼電路完成擴展并輸出,最后達到LED顯示屏的顯示電流、電壓要求進而使顯示屏顯示內(nèi)容。</p><p>  根據(jù)硬件的功能結(jié)構(gòu)圖選取合適器件,器件不但要求能實現(xiàn)所要求的功能還要能兼容至整個系統(tǒng)之中。通過查閱資料和對比最終的硬件原理圖見圖3-1。</p><p>  該系統(tǒng)所要實現(xiàn)的功能和要求有以下幾點:</p><p>  LED顯

19、示屏的面積必須滿足至少顯示一個漢字的標準,并且顯示要清晰。</p><p>  能夠進行不同效果顯示間的切換。</p><p>  兩個譯碼器不能同時工作。</p><p>  單片機要能夠處理控制LED顯示屏的顯示,并且端口驅(qū)動能力要足以驅(qū)動譯碼電路,執(zhí)行頻率要能達到掃描顯示的最低要求。</p><p><b>  3.2 控制單

20、元</b></p><p>  控制單元是整個顯示系統(tǒng)的核心,該系統(tǒng)中采用52系列單片機為核心器件,用來和上位機通信處理上位機發(fā)送的控制指令和顯示內(nèi)容。并且直接輸出數(shù)據(jù)通過譯碼電路控制LED顯示屏的顯示內(nèi)容和顯示狀態(tài)。</p><p>  3.2.1 AT89C52基本介紹</p><p>  AT89C52是美國ATMEL公司生產(chǎn)的低功耗,高性能單片機

21、,片內(nèi)含8KB的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn)。ATMEL公司的功能強大,低價位AT89C52單片機可提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><p>  AT989C52具有以下特點:與MCS-51產(chǎn)品指令系統(tǒng)完全兼容;8KB可程序設(shè)計Flash內(nèi)存;1000次擦寫周期;全靜態(tài)工作模式:0Hz-24MHz;三級加密程序內(nèi)存;32個

22、可編程I/O口線;3個16位定時/計數(shù)器;8個中斷源;全雙工串行UART通道;低功耗空閑和掉電模式;中斷可從空閑模喚醒系統(tǒng)。</p><p>  AT89C52的PDIP封裝引腳圖見圖3-2。</p><p>  3.2.2 控制系統(tǒng)設(shè)計</p><p>  控制電路設(shè)計中采用的是單片機系統(tǒng),該系統(tǒng)必須要是工作在一個最小系統(tǒng)(指單片機的可以的最小配置系統(tǒng))。AT89

23、C52的最小系統(tǒng)包括了復(fù)位電路,選定一定數(shù)量的I/O口作為控制口控制外部的各種器件和數(shù)據(jù)的輸出。根據(jù)功能選擇一定的單片機接口添加外圍的器件,具體電路見圖3-3。</p><p>  在該系統(tǒng)中,P0、P1、P2各口主要用作LED顯示數(shù)據(jù)的控制輸出。由于端口的驅(qū)動能力有限所以在P0口外接了10K的9腳排阻來提高驅(qū)動能力。P0的8個口和P2的8個口分別接LED點陣顯示屏的16個引腳,用來控制行。P1.0、P1.1、P

24、1.2分別接兩塊74HC138的A、B、C端,向74HC138送入串行數(shù)據(jù)經(jīng)過其轉(zhuǎn)換后并行輸出,與LED點陣顯示屏的另外16個引腳相連,控制列。P1.3接一片74HC138的使能控制端E2、E3,當為低電平使允許輸出,接另一片74HC138的使能控制端E1,當為高電平使允許輸出,分別控制兩個譯碼器。由于P3口是特殊功能口,在該系統(tǒng)中基本是采用其第二功能。將P3.2外部中斷0口外接控制按鈕,實現(xiàn)不同特效顯示間的切換。</p>

25、<p><b>  3.3 譯碼器</b></p><p>  74HC138是一款高速CMOS器件,74HC138引腳兼容低功耗肖特基TTL(LSTTL)系列。74HC138譯碼器可接受3位二進制加權(quán)地址輸入(A0, A1和A2),并當使能時,提供8個互斥的低有效輸出(Y0至Y7)。74HC138特有3個使能輸入端:兩個低有效(E1和E2)和一個高有效(E3)。除非E1和E2置

26、低且E3置高,否則74HC138將保持所有輸出為高。利用這種復(fù)合使能特性,僅需4片74HC138芯片和1個反相器,即可輕松實現(xiàn)并行擴展,組合成為一個1-32(5線到32線)譯碼器。任選一個低有效使能輸入端作為數(shù)據(jù)輸入,而把其余的使能輸入端作為選通端,則74HC138亦可充當一個8輸出多路分配器,未使用的使能輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。</p><p>  譯碼電路的功能是為了解決單片機I/O

27、口不足。譯碼所用器件為74HC138。具體電路見圖3-4。</p><p>  3.4 LED點陣顯示屏</p><p>  3.4.1 LED點陣顯示屏的基本介紹</p><p>  LED顯示屏是一種通過控制半導(dǎo)體發(fā)光二極管的顯示方式,用來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。本設(shè)計的所用的LED點陣顯示屏是由64個半導(dǎo)體發(fā)光二極

28、管像素點均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點,其中用到的是紅色。</p><p>  Proteus中8×8LED點陣顯示屏MATRIX-8X8-RED,逆時鐘旋轉(zhuǎn)后,左邊為行控制,接高電平,右邊為列控制,接低電平,從上到下的列引腳控制的是從右往左對應(yīng)的列,見圖3-5。</p><p>  圖中第三行接高電平,第二列接低電平,則對應(yīng)位置的LED燈點亮。<

29、;/p><p>  3.4.2 LED點陣顯示屏的工作原理</p><p>  本設(shè)計采用動態(tài)顯示方式。</p><p>  動態(tài)顯示掃描方式是指逐位輪流點亮每位顯示器,即每個顯示模塊的位選線被輪流選中,多個顯示塊公用一組段選,段選數(shù)據(jù)僅對位選線被選中的顯塊有效。對于每一位顯示器來說,每隔一段時間點亮一次。雖然每位的字符是在不同時刻出現(xiàn)的,而在同一時刻,只有一位顯示,其

30、他各位熄滅,但由于LED顯示器的余暉和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時亮的假象,達到同時顯示的效果。</p><p>  在這種方式下其顯示驅(qū)動電路可重復(fù)利用,引線也大大減少,從而使硬件成本降低,且屏幕上的發(fā)光二極管輪流發(fā)光,使用時的耗電量大大降低。大屏幕的制造、維護要容易許多,可靠性也增加了。</p><p>  由四塊8×8LED點陣顯示屏擴展成

31、16×16LED點陣顯示屏的具體連線見圖3-6。</p><p>  圖中上面兩塊顯示平屏對應(yīng)的控制行引腳相連,并接到P0口;下面兩塊顯示屏對應(yīng)的控制行引腳相連,并接到P2口;左邊兩塊對應(yīng)的控制列引腳相連,并接到譯碼器的輸出端;右邊兩塊對應(yīng)的列引腳相連,并接到另一片譯碼器的輸出端。</p><p><b>  4 軟件系統(tǒng)設(shè)計</b></p>

32、<p><b>  4.1 程序設(shè)計</b></p><p>  系統(tǒng)軟件采用C語言編寫,按照模塊化的設(shè)計思路設(shè)計。首先分析程序所要實現(xiàn)的功能,程序要實現(xiàn)不同動態(tài)特效顯示(左移、上移及閃爍)間的切換。</p><p>  主程序的工作流程見圖4-2。</p><p>  程序開始時首先必須對單片機進行初始化,其中初始化的內(nèi)容包括:中斷

33、初始化,外部中斷觸發(fā)方式的選擇,移動速度初始化等。初始化完成后程序進入待機狀態(tài)等待中斷的發(fā)生,該程序中主要用到了外部中斷0。外部中斷0由按鍵的電平變化觸發(fā),其主要功能是選擇LED點陣顯示屏的動態(tài)特效顯示方式,是左移、上移還是閃爍。中斷產(chǎn)生后由預(yù)先初始化時設(shè)定跳轉(zhuǎn)執(zhí)行中斷子程序。中斷程序設(shè)定了LED點陣顯示屏所要顯示的內(nèi)容和顯示的方式,最后執(zhí)行的是各種顯示程序。按照設(shè)定的方式和內(nèi)容顯示出所需要的內(nèi)容。</p><p&g

34、t;  4.2 顯示程序的設(shè)計</p><p>  4.2.1 點陣數(shù)據(jù)表達方式</p><p>  本設(shè)計用HZDotReader軟件取字模。設(shè)置取點方式為縱向8點下高位,字節(jié)排列為上到下、左到右。也就是以縱向8個連續(xù)點構(gòu)成一個字節(jié),最上邊的點為字節(jié)的最低位,即BIT0,最下邊的點為BIT7。16×16漢字按每行16字節(jié),共2行取字模,每個漢字共32字節(jié),點陣四個角取字順序為左

35、上角→左下角→右上角→右下角,見圖4-2。</p><p>  圖中,數(shù)據(jù)是縱向的,一個像素對應(yīng)一個位。8個像素對應(yīng)一個字節(jié),字節(jié)的位順序是上低下高,比如從上到下8個點的狀態(tài)是“-------*”(*為黑點,-為白點),則轉(zhuǎn)換的字模數(shù)據(jù)是0x08(B0000_0001)。一幅16×16的點陣畫面點陣數(shù)據(jù)按照1 2 3…… 31 32存儲。所以一幅畫面的數(shù)據(jù)量為32字節(jié)。畫面顯示時選通的第i列對應(yīng)的數(shù)組元

36、素為第i和i+16個元素。圖中“信”字的字模數(shù)據(jù)如下:</p><p>  0x80,0x00,0xC0,0x00,0x70,0x00,0xFC,0x7F,</p><p>  0xFF,0x7F,0x0F,0x00,0xAA,0x7E,0xA8,0x7E,</p><p>  0xA9,0x22,0xAF,0x22,0xAE,0x22,0xAA,0x22,<

37、/p><p>  0xA8,0x7E,0xA8,0x7E,0x08,0x00,0x08,0x00。</p><p>  4.2.2 動態(tài)特效顯示程序的設(shè)計</p><p>  動態(tài)顯示程序分為左移顯示、上移顯示、閃爍顯示三種顯示方式。當主程序中判斷為左移顯示方式時,先左移顯示初始化,之后進入左移循環(huán)控制,判斷左移的字符個數(shù),顯示一幕,再判斷是否有中斷,如無則調(diào)用左移顯示

38、子程序,否則進入中斷,初始化各值。若判斷為上移顯示方式或閃爍顯示方式時,單片機的執(zhí)行步驟同上。</p><p>  主程序中,左移子程序流程圖及上移子程序流程圖見圖4-3。</p><p>  根據(jù)顯示數(shù)據(jù)的存儲原理通過改變實際LED列與數(shù)據(jù)邏輯列的方法來實現(xiàn)程序的左右移動。顯示數(shù)據(jù)與列的對應(yīng)關(guān)系為:第i列對應(yīng)的數(shù)據(jù)為數(shù)組中i和第2×i個數(shù)據(jù)。所以送入后一列的數(shù)據(jù)則相當于畫面左移

39、移位,同理送入前一列數(shù)據(jù)相當于右移一位。如此循環(huán)則產(chǎn)生一幅穩(wěn)定運動的畫面。</p><p>  顯示數(shù)組中,第1至16個元素的第0至第7位LED顯示屏中的第1至第8行。同理第17至32個元素的第0至第7位LED顯示屏中的第9至第16行。所以將元素數(shù)據(jù)進行邏輯位移便能產(chǎn)生上下移動的效果。</p><p>  實現(xiàn)閃爍效果的原理為:第一個字掃描完后,就掃描第二個子,而一個字有32個字節(jié),因此每

40、隔32個字節(jié)送入P0和P2口,即當?shù)谝粋€字節(jié)和第二個字節(jié)分別送入P0和P2口時,進行16列掃描后,此時送入P0和P2口的分別是第33和第34個字節(jié)。</p><p>  閃爍子程序流程圖見圖4-4。</p><p>  4.3 外部中斷程序</p><p>  本設(shè)計用P3.2口外部中斷0作為控制按鈕,控制不同特效顯示間的切換。選用電平觸發(fā)方式,端輸入低電平時,為有

41、效的中斷請求信號,置位。CPU在每一個機器周期采樣引腳的輸入電平。當采樣到低電平時置“1”;當采樣到高電平時,清“0”。采用電平觸發(fā)方式時,外部中斷源信號必須保持低電平有效,知道該中斷被CPU響應(yīng),同時在該中斷服務(wù)程序執(zhí)行完之前,外部中斷源信號必須清除;否則將產(chǎn)生另一次中斷請求。</p><p>  按鈕按下時CPU采樣到低電平,執(zhí)行中斷程序,初始化移動速度及各變量,flag值加一,改變顯示方式。</p&g

42、t;<p><b>  5 系統(tǒng)調(diào)試</b></p><p>  5.1 系統(tǒng)調(diào)試的基本過程</p><p>  5.1.1 軟件調(diào)試</p><p>  軟件調(diào)試主要是軟件編譯和將各功能塊程序分別寫入以驗證其功能的可實現(xiàn)性。使用Keil軟件編寫C語言程序時就應(yīng)不斷地進行編譯,查找出錯誤。確定程序無誤后,對所有程序進行編譯,編譯成

43、功生產(chǎn)后綴名為.hex的可執(zhí)行文件。在Proteus仿真軟件中畫出電路原理圖,單擊單片機元件,將其可執(zhí)行文件設(shè)置為之前生成的后綴名為.hex可執(zhí)行文件,最后單擊仿真工具欄中的運行按鈕,整個系統(tǒng)就開始仿真運行,這時可對各功能進行測試??蓪roteus和Keil進行聯(lián)調(diào),其步驟如下:</p><p>  搜索到Proteus安裝目錄下VDM51.dll文件,將其復(fù)制到Keil安裝目錄的\C51\BIN目錄中。<

44、;/p><p>  編輯Keil安裝目錄下的tools.ini文件,加入TDRV5=BIN\VDM51.DLL(“PROTEUS DEBUG”)。</p><p>  在Keil中打開要調(diào)試的工程,單擊Project中Options for Target1菜單,在彈出的對話框中選中Debug標簽頁,進行數(shù)據(jù)配置。生成可執(zhí)行文件。</p><p>  在Proteus中打

45、開設(shè)計好的電路原理圖,單擊單片機元器件,將其可執(zhí)行文件設(shè)置為要調(diào)試的Keil工程所生成的課執(zhí)行文件。</p><p>  5.2 系統(tǒng)調(diào)試的結(jié)果</p><p>  對調(diào)試中出現(xiàn)的問題進行了分析,得出以下原因和修改辦法。</p><p>  LED顯示屏顯示不正確,經(jīng)過檢查及查閱資料發(fā)現(xiàn)實際LED顯示屏的引腳并不是一排接陰極一排接陽極,而是雜亂無章的。修改辦法是將用

46、萬用表測引腳,重新寫下排列,重新焊連線。</p><p>  經(jīng)過調(diào)試和修改,系統(tǒng)實現(xiàn)了題目所要求的中英文字符以及特殊字符的顯示,能夠通過控制按鈕實現(xiàn)不同動態(tài)效果間的切換。</p><p><b>  結(jié)論</b></p><p>  接手題目之后從互聯(lián)網(wǎng)上對LED進行了詳細的資料收集。北京奧運會開幕式盛典上利用LED制造出的變換無窮、美輪美奐

47、、氣勢磅礴的各種圖像,給全世界留下震撼的印象,也讓國人對LED有了全新的認識。LED顯示屏越來越受到廣泛應(yīng)用,它不僅價格低廉,且省電又清晰,有很大的發(fā)展前景。</p><p>  從設(shè)計之初就確定了參照街道上廣告牌顯示屏的實現(xiàn)方法和實際情況設(shè)計一款小屏幕的LED點陣顯示屏。在查閱了大量的資料后確定了題目的設(shè)計方案。整個設(shè)計采用AT89C52做核心控制器,74HC138組成譯碼電路。經(jīng)過一段時間的工作,終于完成了基

48、于51單片機的LED點陣廣告牌的設(shè)計,項目所要求的功能全部達到。這次設(shè)計收獲頗多,不僅是所作題目涉及到的軟硬件知識,還有更為重要的實際經(jīng)驗和過程中所發(fā)現(xiàn)的問題。</p><p>  設(shè)計之前應(yīng)該進行大量的資料收集和分析,確定一個清晰的設(shè)計思路。</p><p>  器件選擇時要詳細閱讀器件使用手冊,不但要考慮器件的功能實現(xiàn)還要考慮器件在整個系統(tǒng)中的兼容性。</p><p

49、>  硬件的系統(tǒng)的建立必須合理和穩(wěn)定,實物建立之前最好進行仿真這樣才能為軟件提供一個可靠的試驗平臺。</p><p>  軟件的編寫不但要實現(xiàn)功能還要不斷的優(yōu)化、簡練、易讀。</p><p>  實物的引腳往往與仿真圖中的引腳不同,應(yīng)該注意。</p><p>  隨著課題的進行,對LED的了解也越來越深入。LED技術(shù)也會進一步發(fā)展,其應(yīng)用將會更加廣泛。可以設(shè)想

50、利用LED的高穩(wěn)定性和低能耗,再與無線通信技術(shù)相結(jié)合在沙漠深處或者人跡罕至的雪山之顛樹立一塊依靠太陽能充電,通過無線傳輸方式更改顯示內(nèi)容的信息板為登山者提供指示和天氣信息,為沙漠迷路的人指引方向。</p><p>  設(shè)計結(jié)束了,但學(xué)習(xí)還在繼續(xù)。相信通過此次設(shè)計所得到的知識、心得、經(jīng)驗?zāi)酥粮惺芏紩屛以谝院蟮娜兆永锸芤娣藴\。</p><p><b>  致謝</b>&

51、lt;/p><p>  這次能夠圓滿完成畢業(yè)設(shè)計首先要感謝**老師,感謝他在課程設(shè)計期間的指導(dǎo)、勉勵和督導(dǎo)。同時感謝教過我們專業(yè)課程的老師們,感謝他們對我們知識增長所付出的辛勤勞動。還要感謝一起做課程設(shè)計的同學(xué),他們也給予了很大的幫助,尤其是一些細節(jié)問題。感謝實驗室老師給我們提供實驗環(huán)境和器材。</p><p><b>  參考文獻</b></p><

52、p>  [1] 文哲雄.用單片機控制LED顯示屏[D].佛山:佛山科學(xué)技術(shù)學(xué)院,1995.</p><p>  [2] 彭寧,只佩華.單片機對LED大屏幕顯示的控制系統(tǒng)[J].河北大學(xué)學(xué)報(自然科學(xué)版),1993,13(3):86-89.</p><p>  [3] 喬世杰.小波圖像編碼中的對稱邊界延拓法[J].中國圖像圖形學(xué)報,2000,5(9):725-729.</p>

53、;<p>  [4]李志強等.基于VC++的LED點陣顯示屏控制系統(tǒng)設(shè)計.無線互聯(lián)科技,2012,(2): 70-71.</p><p>  [5] 王曉濤.基于單片機控制的LED點陣顯示屏在煤礦的設(shè)計與應(yīng)用[J].中國科技博覽,2011,(36): 640-641.</p><p>  [6] Marston, R.. Radio-Electronics, Working

54、 with LED display drivers[J]. Mar1992, Vol. 63 Issue 3.</p><p><b>  附錄</b></p><p><b>  附錄1:硬件原理圖</b></p><p><b>  附錄2:C語言程序</b></p><p&

55、gt;  /*本次顯示程序的設(shè)計分三個階斷</p><p>  第一階段:左移顯示方式的設(shè)計</p><p>  第二階段:上移顯示方式的設(shè)計</p><p>  第三階段:閃爍顯示方式的設(shè)計 */</p><p>  #include <reg52.h></p><p>  #define uc

56、har unsigned char</p><p>  #define uint unsigned int</p><p>  uchar table2[]={</p><p>  0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,</p><p>  0x08,0x20,0x10,0x10,0xE0,0x0F,

57、0x00,0x00,/*"O"*/</p><p>  0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,</p><p>  0x28,0x26,0x18,0x38,0x08,0x20,0x00,0x00}; /*"K"*/ /*上移顯示的字符*/</p><p>  uchar code t

58、able1[]=</p><p>  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 

59、 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x20,0x00,0x24,0x80,0x24,0x80,0xA4,0xDF,</p><p>  0xFC,0x5F,0xFC,0x60,0xA4,0x30,0xBF,0x1E,</p><p>  0xBF,0x1E,0xA4,0x30,0xFC,0x60,

60、0xFC,0x4F,</p><p>  0xA4,0xCF,0x24,0x80,0x24,0x80,0x20,0x00, /*賁 CEADA */</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x44,0x00,0x44,0x80,0x44,0xC0,0x44,0x60,</p

61、><p>  0x44,0x38,0xDF,0x1F,0xDF,0x07,0x54,0x02,</p><p>  0x74,0x42,0x64,0xC2,0x5F,0xC2,0x5F,0x7E,</p><p>  0x44,0x3E,0x44,0x00,0x44,0x00,0x44,0x00, /*芳 CB7BC */</p><p> 

62、 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0xF8,0x3B,0x0C,0x4E,0x04,0x5C,0x04,0x76,</p><p>  0x0C,0x62,0xF8,0x63,0xC0,0x58,0x00,0xCC,</p><p>  0x00,0x84,0x00,0x00,0x00,0x00,

63、0x00,0x00, /*& CAFA1 */</p><p>  0x00,0x00,0xF2,0x01,0xF2,0x41,0x12,0xC1,</p><p>  0x1E,0xFF,0x1E,0x7F,0xC0,0x87,0xDE,0x87,</p><p>  0x5E,0x84,0xF2,0xFF,0xF2,0xFF,0x52,0x44,&

64、lt;/p><p>  0x5E,0x54,0xDE,0xF7,0xC0,0xE7,0x00,0x40,/*強 CC7BF */</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x18,0x00,0x04,0x00,0x02,0x03,</p><p&

65、gt;  0x02,0x04,0x02,0x08,0x04,0x08,0x18,0x08,</p><p>  0x18,0x08,0x04,0x08,0x02,0x08,0x02,0x04,</p><p>  0x02,0x03,0x04,0x00,0x18,0x00,0x00,0x00, /*笑臉符號 CDEB1 */ </p><p>  0x00

66、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,

67、0x00}; /*左移顯示的字符*/</p><p>  uchar code table3[]={</p><p>  0x00,0x00,0x00,0x00,0xFC,0x7F,0x04,0x40,</p><p>  0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,</p><p>  0x04,0x40

68、,0x04,0x40,0x04,0x40,0x04,0x40,</p><p>  0xFC,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*"口",0*/</p><p>  0x00,0x00,0x00,0x00,0xF8,0x0F,0xF8,0x0F,</p><p>  0x48,0x04,0x48,0x04,0

69、x48,0x04,0xFF,0x3F,</p><p>  0xFF,0x7F,0x48,0x44,0x48,0x44,0x48,0x44,</p><p>  0xF8,0x4F,0xF8,0x4F,0x00,0x70,0x00,0x70,/*"電",1*/</p><p>  0x00,0x20,0x00,0x20,0x02,0x20,0x0

70、2,0x20,</p><p>  0x02,0x20,0x02,0x20,0x02,0x20,0xFE,0x3F,</p><p>  0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20,</p><p>  0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x20,/*"工",2*/</

71、p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,</p><p>  0x10,0x03,0x08,0x04,0x04,0x08,0x08,0x10,</p><p>  0x10,0x20,0x10,0x20,0x08,0x10,0x04,0x08,</p><p>  0x08,0x04,0x1

72、0,0x02,0x20,0x01,0xC0,0x00,/*"愛心符號",3*/</p><p>  0x40,0x00,0x70,0x02,0x30,0x02,0x12,0x02,</p><p>  0x5E,0x02,0x5C,0x02,0x54,0x42,0x51,0xC2,</p><p>  0x5F,0xFF,0xDE,0x7F,0x

73、D4,0x02,0x58,0x02,</p><p>  0x5F,0x02,0x77,0x02,0x32,0x02,0x10,0x02,/*"學(xué)",4*/</p><p>  0xFE,0xFF,0xFE,0xFF,0x32,0x02,0x7A,0x06,</p><p>  0xCE,0x87,0x8E,0xC3,0x2C,0x71,0x24

74、,0x3F,</p><p>  0x25,0x0F,0x27,0x01,0x26,0x7F,0x24,0xFF,</p><p>  0x24,0x81,0x2C,0x81,0x0C,0xF1,0x04,0xF1,/*"院",5*/ </p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</

75、p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p>  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*閃爍顯示字符*/</p><p>  u

76、char v,flag,temp;</p><p>  uchar i,j,k,shuz,shub,temp1;</p><p>  uchar a,b,c,d,e,f,numa,numb;</p><p>  uchar ii,jj,kk;</p><p>  uchar iii,jjj,kkk;</p><p> 

77、 uchar a3,b3;</p><p>  uchar num3,temp3;</p><p>  uchar temp2; /*各變量值的初始化*/</p><p>  void init();/*主函數(shù)的初始化聲名*/</p><p>  void init1();/*左移顯示方式的初始化聲名*/</p

78、><p>  void init2();/*上移顯示方式的初始化聲名*/</p><p>  void init3();/*閃爍顯示方式的初始化聲名*/</p><p>  void disp1();/*左移顯示子程序聲名*/</p><p>  void disp2();/*上移顯示子程序聲名*/</p><p&g

79、t;  void disp3();/*閃爍顯示子程序聲名*/</p><p>  void delay(uint z)/*延時函數(shù)聲名及定義*/</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--

80、)</p><p><b>  {</b></p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</

81、p><p><b>  {</b></p><p><b>  init();</b></p><p>  while(1)//主循環(huán)</p><p><b>  {</b></p><p>  if(flag%3==1)//判斷是不是左移顯示方式&l

82、t;/p><p><b>  {</b></p><p>  init1();//左移顯示初始化</p><p>  while(flag%3==1)//左移循環(huán)控制</p><p><b>  {</b></p><p>  for(i=0;i<=a;i++)//判

83、斷左移的字符個數(shù)</p><p>  for(j=0;j<=v;j++)//向左移動的速度由變量v控制</p><p>  for(k=i*2;k<(i*2+32);)//顯示一幕</p><p>  if(flag%3==1)//判斷有沒有中斷,flag的值有沒有變化</p><p>  disp1();//若沒有中斷調(diào)

84、用左移顯示子程序</p><p><b>  else</b></p><p><b>  {</b></p><p>  i=a;j=v;k=(i*2+32);//若有中斷了初始化左移的各變量</p><p><b>  }</b></p><

85、p><b>  }</b></p><p><b>  }</b></p><p>  if(flag%3==2)//判斷是不是上移顯示方式</p><p><b>  {</b></p><p>  init2();//上移顯示初始化</p><

86、p>  while(flag%3==2)//上移循環(huán)控制</p><p><b>  {</b></p><p>  for(ii=0;ii<=15;ii++)//上移緩沖</p><p><b>  {</b></p><p>  for(jj=0;jj<=v;jj++)

87、//向上移動的速度由變量v控制</p><p><b>  {</b></p><p>  for(kk=0;kk<=15;kk++)//顯示一幕</p><p>  if(flag%3==2)//判斷有沒有中斷,flag的值有沒有變化</p><p>  disp2();//若沒有中斷

88、調(diào)用左移顯示子程序</p><p><b>  else</b></p><p><b>  {</b></p><p>  ii=15;jj=v;kk=15;//若有中斷了初始化上移的各變量</p><p><b>  }</b></p><p&

89、gt;<b>  delay(1);</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><

90、;p>  if(flag%3==0)//判斷是不是閃爍顯示方式</p><p><b>  {</b></p><p>  init3();//閃爍顯示初始化</p><p>  while(flag%3==0)//閃爍循環(huán)控制</p><p><b>  {</b></p>

91、<p>  for(iii=0;iii<=6*32;iii=iii+32)//判斷閃爍顯示的字符個數(shù)</p><p>  for(jjj=0;jjj<=v*10;jjj++)//閃爍顯示字符的速度由變量v控制</p><p><b>  {</b></p><p>  for(kkk=0;kkk<=15;kkk++)

92、//顯示一幕</p><p>  if(flag%3==0)//判斷有沒有中斷,flag的值有沒有變化</p><p>  disp3();//若沒有中斷調(diào)用閃爍顯示子程序</p><p><b>  num3=0;</b></p><p>  temp3=0;//顯示完一幕準備下一幕的顯示</p&g

93、t;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&

94、lt;p>  void init()//主程序初始化</p><p><b>  {</b></p><p>  EA=1;//CPU開放所有中斷源的中斷請求</p><p>  EX0=1;//允許外部中斷0中斷</p><p>  IT0=1;//外部中斷0采用邊沿觸發(fā)方式產(chǎn)生中斷</p>

95、<p><b>  flag=1;</b></p><p>  v=8;//設(shè)置移動速度的初值</p><p><b>  }</b></p><p>  void init1()//左移顯示方式各變量的初始化</p><p><b>  {</b></p

96、><p><b>  shuz=5;</b></p><p><b>  shub=1;</b></p><p>  a=shuz*16+shub*8+15;</p><p><b>  P0=0;</b></p><p><b>  P2=0;&

97、lt;/b></p><p><b>  temp1=0;</b></p><p><b>  }</b></p><p>  void disp1()//左移顯示子程序</p><p><b>  {</b></p><p>  P0=tabl

98、e1[k];</p><p><b>  k++;</b></p><p>  P2=table1[k];</p><p><b>  k++;</b></p><p><b>  P1=temp1;</b></p><p><b>  te

99、mp1++;</b></p><p>  if(temp1==0x10)</p><p>  temp1=0x00;</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p>  void init2()//

100、上移顯示方式各變量的初始化</p><p><b>  {</b></p><p><b>  P0=0;</b></p><p><b>  P2=0;</b></p><p><b>  temp2=0;</b></p><p

101、><b>  }</b></p><p>  void disp2()//上移顯示子程序</p><p><b>  {</b></p><p>  numa=kk*2;</p><p>  numb=kk*2+1;</p><p>  a=table2[numa];

102、</p><p>  b=table2[numb];</p><p><b>  if(jj==v)</b></p><p><b>  {c=a>>1;</b></p><p>  d=b<<(8-1);</p><p><b>  e

103、=b>>1;</b></p><p>  f=a<<(8-1);</p><p><b>  c=c|d;</b></p><p>  table2[numa]=c;</p><p><b>  e=e|f;</b></p>&l

104、t;p>  table2[numb]=e;</p><p><b>  }</b></p><p><b>  P0=a;</b></p><p><b>  P2=b;</b></p><p><b>  P1=temp2;</b></p&

105、gt;<p><b>  temp2++;</b></p><p>  if(temp2==0x10)</p><p>  temp2=0x00;</p><p><b>  delay(1);</b></p><p><b>  }</b></p>

106、<p>  void init3()//閃爍顯示方式各變量的初始化</p><p><b>  {</b></p><p><b>  P0=0;</b></p><p><b>  P2=0;</b></p><p><b>  num3=0;<

107、;/b></p><p><b>  temp3=0;</b></p><p><b>  }</b></p><p>  void disp3()//閃爍顯子程序</p><p><b>  {</b></p><p>  a3=table

108、3[iii+(num3++)];</p><p>  b3=table3[iii+(num3++)];</p><p><b>  P0=a3;</b></p><p><b>  P2=b3;</b></p><p>  P1=temp3++;</p><p><b&

109、gt;  delay(1);</b></p><p><b>  }</b></p><p>  void timer0() interrupt 0//外部中斷0的中斷程序</p><p><b>  {</b></p><p>  v=8;//初始化移動速度</p>

溫馨提示

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

評論

0/150

提交評論