版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)報(bào)告</p><p> LED點(diǎn)陣廣告牌的設(shè)計(jì)</p><p> 班 級(jí): </p><p><b> 學(xué) 號(hào): </b></p><p> 姓 名: </p><p
2、> 指導(dǎo)教師: </p><p> 成 績: </p><p> 2012年 6 月 14 日</p><p><b> 摘要</b></p><p> 本文介紹了一款以單片機(jī)AT89C52為控制器的LED點(diǎn)陣顯示屏
3、系統(tǒng)的設(shè)計(jì)。該系統(tǒng)可實(shí)現(xiàn)中英文字符以及特殊字符的顯示和動(dòng)態(tài)特效顯示,通過控制按鈕,可以實(shí)現(xiàn)不同效果間切換,達(dá)到實(shí)際應(yīng)用中廣告牌的要求。并且可以通過級(jí)連的方式來擴(kuò)大顯示屏幕的尺寸以達(dá)到增加顯示內(nèi)容的目的。</p><p> 系統(tǒng)采用PC機(jī)作為上位機(jī),上位機(jī)向單片機(jī)發(fā)送控制命令和上位機(jī)所存儲(chǔ)的顯示代碼,AT89C52單片機(jī)接收并處理PC機(jī)的控制命令以及顯示代碼,由顯示驅(qū)動(dòng)模塊驅(qū)動(dòng)一個(gè)16×16分辨率的LE
4、D點(diǎn)陣顯示屏的掃描顯示。選用兩片74HC138譯碼器作為I /O口的擴(kuò)展,與LED點(diǎn)陣顯示屏的控制列腳相連,16×16的點(diǎn)陣顯示由4塊8×8點(diǎn)陣組成。軟件選用C語言程序編寫。外部中斷0輸入口接控制按鈕實(shí)現(xiàn)不同效果間的轉(zhuǎn)換。所選用的AT89C52單片機(jī)具有價(jià)格低廉程序?qū)懭敕奖愕奶攸c(diǎn)使得整個(gè)系統(tǒng)方便維護(hù)和檢修。除此之外,該系統(tǒng)只占用了單片機(jī)少量的I /O口和內(nèi)存,為系統(tǒng)留下了功能擴(kuò)展的空間。</p><
5、;p> 關(guān)鍵詞 52單片機(jī);LED點(diǎn)陣顯示;廣告牌</p><p><b> Abstract</b></p><p> This paper introduces a design of a LED matrix screen with a single chip microcomputer AT89C52 controller. The system
6、 can display the Chinese and English characters and special characters and show various dynamic effects.With the control button, it can realize the switch between different effects, which achieves the requirement of bill
7、boards in practical application. And by the way it can also expand the size of the screen in order to achieve the purpose of increasing the content by cascade.</p><p> The system of upper computer is a PC.
8、 PC sends control command and store display codes to the single chip microcomputer. AT89C52 single-chip microcomputer receives and deals with the PC control commands and displays code.The display driver modules drive a 1
9、6 × 16 resolution of LED dot matrix display scanning display. We choose two pieces of 74 HC138 decoder as I/O the expansion of the interface,which is linked with LED dot matrix display listed feet.The 16 × 16 d
10、ot matrix screen consists of 4 pi</p><p> Keywords 52 Single Chip Microcomputer Matrix LED Billboard </p><p><b> 目 錄</b></p><p><b> 1 緒論1</b>&l
11、t;/p><p> 1.1 課題背景1</p><p> 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è)計(jì)2</p><p> 2.1 系統(tǒng)硬件設(shè)計(jì)方案2</p&
12、gt;<p> 2.1 系統(tǒng)軟件設(shè)計(jì)方案2</p><p> 3 硬件系統(tǒng)設(shè)計(jì)3</p><p> 3.1 硬件整體設(shè)計(jì)概述3</p><p> 3.2 控制單元4</p><p> 3.2.1 AT89C52基本介紹4</p><p> 3.2.2 控制系統(tǒng)設(shè)計(jì)4</p&g
13、t;<p><b> 3.3 譯碼器5</b></p><p> 3.4 LED點(diǎn)陣顯示屏6</p><p> 3.4.1 LED點(diǎn)陣顯示屏的基本介紹6</p><p> 3.4.2 LED點(diǎn)陣顯示屏的工作原理7</p><p> 4 軟件系統(tǒng)設(shè)計(jì)9</p><p&g
14、t; 4.1 程序設(shè)計(jì)9</p><p> 4.2 顯示程序的設(shè)計(jì)10</p><p> 4.2.1 點(diǎn)陣數(shù)據(jù)表達(dá)方式10</p><p> 4.2.2 動(dòng)態(tài)特效顯示程序的設(shè)計(jì)10</p><p> 4.3 外部中斷程序12</p><p><b> 5 系統(tǒng)調(diào)試13</b>
15、;</p><p> 5.1 系統(tǒng)調(diào)試的基本過程13</p><p> 5.1.1 軟件調(diào)試13</p><p> 5.1.2 硬件調(diào)試14</p><p> 5.2 系統(tǒng)調(diào)試的結(jié)果14</p><p><b> 結(jié)論15</b></p><p><
16、;b> 致謝16</b></p><p><b> 參考文獻(xiàn)17</b></p><p><b> 附錄18</b></p><p> 附錄1:硬件原理圖18</p><p> 附錄2:C語言程序19</p><p><b>
17、 1 緒論</b></p><p><b> 1.1 課題背景</b></p><p> 1.1.1 選題背景</p><p> LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,顯示屏由幾萬到幾十萬個(gè)半導(dǎo)體發(fā)光二極管像素點(diǎn)均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點(diǎn)。目前應(yīng)用最廣的是紅色、綠色、黃
18、色。而藍(lán)色和純綠色LED的開發(fā)已經(jīng)達(dá)到了實(shí)用階段。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點(diǎn)。</p><p> LED顯示屏的應(yīng)用涉及社會(huì)經(jīng)濟(jì)的許多領(lǐng)域,主要包括:(1)證券交易、金融信息顯示。(2)機(jī)場航班動(dòng)態(tài)信息顯示。(3)港口、車站旅客引導(dǎo)信息顯示。(4)體育場館信息顯示。(5)道路交通信息顯示。(6)調(diào)度指揮中心
19、信息顯示。(7)郵政、電信、商場購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示。(8)廣告媒體新產(chǎn)品等。</p><p> 1.1.2 研究現(xiàn)狀及發(fā)展趨勢</p><p> LED之所以受到廣泛重視而得到迅速發(fā)展,是與它本身所具有的優(yōu)點(diǎn)分不開的。這些優(yōu)點(diǎn)概括起來是:亮度高、工作電壓低、功耗小、大型化、壽命長、耐沖擊和性能穩(wěn)定。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)
20、光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。</p><p> 在街上隨處可見LED廣告牌,從最初的靜態(tài)顯示,到后來的左移滾動(dòng)、右移滾動(dòng)、上移、下移、閃爍、卷動(dòng)等各種花樣顯示,由起初的一種控制,向多種控制發(fā)展,現(xiàn)越來越趨于多樣化,美觀化。</p><p> 1.2 論文主要內(nèi)容</p><p> 本設(shè)計(jì)為一款能夠顯示不同字符的LED點(diǎn)陣廣告牌,能夠顯示中
21、文、英文及特殊符號(hào),并通過控制按鈕能夠?qū)崿F(xiàn)不同顯示效果間的切換,有左移、上移和閃爍。</p><p> 論文包括系統(tǒng)總體方案設(shè)計(jì),硬件系統(tǒng)設(shè)計(jì),系統(tǒng)軟件設(shè)計(jì),系統(tǒng)調(diào)試及結(jié)論。在系統(tǒng)總體方案設(shè)計(jì)中給出了系統(tǒng)設(shè)計(jì)硬件框圖及軟件功能結(jié)構(gòu)框圖。在硬件系統(tǒng)設(shè)計(jì)中給出了硬件原理圖,各部分電路圖,元件原理圖等。在系統(tǒng)軟件設(shè)計(jì)中,有系統(tǒng)主程序及功能模塊流程圖等。系統(tǒng)調(diào)試包括軟件調(diào)試和硬件調(diào)試,并給出了調(diào)試的結(jié)果。附錄中存放有硬
22、件原理圖及完整的C語言程序。</p><p> 2 系統(tǒng)總體方案設(shè)計(jì)</p><p> 2.1 系統(tǒng)硬件設(shè)計(jì)方案</p><p> 以PC機(jī)作為上位機(jī)存儲(chǔ)和處理顯示內(nèi)容用串行通信的方式將顯示內(nèi)容和控制指令傳輸?shù)絾纹瑱C(jī)系統(tǒng),單片機(jī)根據(jù)上位機(jī)傳輸來的內(nèi)容和指令通過端口譯碼擴(kuò)展后驅(qū)動(dòng)4塊8×8LED點(diǎn)陣模塊構(gòu)成的16×16的LED點(diǎn)陣顯示屏。方案
23、框圖見圖2-1。</p><p> 2.1 系統(tǒng)軟件設(shè)計(jì)方案</p><p> 軟件的設(shè)計(jì)需要實(shí)現(xiàn)以下功能:顯示不同字符的LED點(diǎn)陣廣告牌,至少顯示兩個(gè)漢字;有中斷控制程序?qū)崿F(xiàn)不同效果間切換,如左移、上移、閃爍等;能夠顯示自定義字符。由此,軟件大致可以分為主程序,中斷控制程序,各種特效顯示子程序三個(gè)主要部分組成。具體結(jié)構(gòu)圖見圖2-2。</p><p> 本文軟
24、件的編寫用Keil軟件以及C語言編寫,編譯完成后,生成后綴名為.hex的可執(zhí)行文件,用單片機(jī)硬件仿真開發(fā)工具Proteus7.5進(jìn)行電路原理實(shí)驗(yàn)及綜合系統(tǒng)仿真,進(jìn)行各種運(yùn)行和調(diào)試。最后再下載到單片機(jī)中執(zhí)行。</p><p><b> 3 硬件系統(tǒng)設(shè)計(jì)</b></p><p> 3.1 硬件整體設(shè)計(jì)概述</p><p> 顯示系統(tǒng)具體設(shè)計(jì)主
25、要由上位機(jī),單片機(jī)系統(tǒng),控制電路,譯碼電路, 16×16的點(diǎn)陣屏五部分組成。具體工作流程為:上位PC機(jī)編寫好程序后下載到單片機(jī)中,單片機(jī)執(zhí)行相應(yīng)的指令處理顯示代碼將顯示內(nèi)容通過I/O口輸出并且譯碼電路完成擴(kuò)展并輸出,最后達(dá)到LED顯示屏的顯示電流、電壓要求進(jìn)而使顯示屏顯示內(nèi)容。</p><p> 根據(jù)硬件的功能結(jié)構(gòu)圖選取合適器件,器件不但要求能實(shí)現(xiàn)所要求的功能還要能兼容至整個(gè)系統(tǒng)之中。通過查閱資料和對(duì)
26、比最終的硬件原理圖見圖3-1。</p><p> 該系統(tǒng)所要實(shí)現(xiàn)的功能和要求有以下幾點(diǎn):</p><p> LED顯示屏的面積必須滿足至少顯示一個(gè)漢字的標(biāo)準(zhǔn),并且顯示要清晰。</p><p> 能夠進(jìn)行不同效果顯示間的切換。</p><p> 兩個(gè)譯碼器不能同時(shí)工作。</p><p> 單片機(jī)要能夠處理控制L
27、ED顯示屏的顯示,并且端口驅(qū)動(dòng)能力要足以驅(qū)動(dòng)譯碼電路,執(zhí)行頻率要能達(dá)到掃描顯示的最低要求。</p><p><b> 3.2 控制單元</b></p><p> 控制單元是整個(gè)顯示系統(tǒng)的核心,該系統(tǒng)中采用52系列單片機(jī)為核心器件,用來和上位機(jī)通信處理上位機(jī)發(fā)送的控制指令和顯示內(nèi)容。并且直接輸出數(shù)據(jù)通過譯碼電路控制LED顯示屏的顯示內(nèi)容和顯示狀態(tài)。</p>
28、;<p> 3.2.1 AT89C52基本介紹</p><p> AT89C52是美國ATMEL公司生產(chǎn)的低功耗,高性能單片機(jī),片內(nèi)含8KB的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn)。ATMEL公司的功能強(qiáng)大,低價(jià)位AT89C52單片機(jī)可提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。</p><p> AT989
29、C52具有以下特點(diǎn):與MCS-51產(chǎn)品指令系統(tǒng)完全兼容;8KB可程序設(shè)計(jì)Flash內(nèi)存;1000次擦寫周期;全靜態(tài)工作模式:0Hz-24MHz;三級(jí)加密程序內(nèi)存;32個(gè)可編程I/O口線;3個(gè)16位定時(shí)/計(jì)數(shù)器;8個(gè)中斷源;全雙工串行UART通道;低功耗空閑和掉電模式;中斷可從空閑模喚醒系統(tǒng)。</p><p> AT89C52的PDIP封裝引腳圖見圖3-2。</p><p> 3.2.2
30、 控制系統(tǒng)設(shè)計(jì)</p><p> 控制電路設(shè)計(jì)中采用的是單片機(jī)系統(tǒng),該系統(tǒng)必須要是工作在一個(gè)最小系統(tǒng)(指單片機(jī)的可以的最小配置系統(tǒng))。AT89C52的最小系統(tǒng)包括了復(fù)位電路,選定一定數(shù)量的I/O口作為控制口控制外部的各種器件和數(shù)據(jù)的輸出。根據(jù)功能選擇一定的單片機(jī)接口添加外圍的器件,具體電路見圖3-3。</p><p> 在該系統(tǒng)中,P0、P1、P2各口主要用作LED顯示數(shù)據(jù)的控制輸出。
31、由于端口的驅(qū)動(dòng)能力有限所以在P0口外接了10K的9腳排阻來提高驅(qū)動(dòng)能力。P0的8個(gè)口和P2的8個(gè)口分別接LED點(diǎn)陣顯示屏的16個(gè)引腳,用來控制行。P1.0、P1.1、P1.2分別接兩塊74HC138的A、B、C端,向74HC138送入串行數(shù)據(jù)經(jīng)過其轉(zhuǎn)換后并行輸出,與LED點(diǎn)陣顯示屏的另外16個(gè)引腳相連,控制列。P1.3接一片74HC138的使能控制端E2、E3,當(dāng)為低電平使允許輸出,接另一片74HC138的使能控制端E1,當(dāng)為高電平使允
32、許輸出,分別控制兩個(gè)譯碼器。由于P3口是特殊功能口,在該系統(tǒng)中基本是采用其第二功能。將P3.2外部中斷0口外接控制按鈕,實(shí)現(xiàn)不同特效顯示間的切換。</p><p><b> 3.3 譯碼器</b></p><p> 74HC138是一款高速CMOS器件,74HC138引腳兼容低功耗肖特基TTL(LSTTL)系列。74HC138譯碼器可接受3位二進(jìn)制加權(quán)地址輸入(A
33、0, A1和A2),并當(dāng)使能時(shí),提供8個(gè)互斥的低有效輸出(Y0至Y7)。74HC138特有3個(gè)使能輸入端:兩個(gè)低有效(E1和E2)和一個(gè)高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復(fù)合使能特性,僅需4片74HC138芯片和1個(gè)反相器,即可輕松實(shí)現(xiàn)并行擴(kuò)展,組合成為一個(gè)1-32(5線到32線)譯碼器。任選一個(gè)低有效使能輸入端作為數(shù)據(jù)輸入,而把其余的使能輸入端作為選通端,則74HC138亦可充
34、當(dāng)一個(gè)8輸出多路分配器,未使用的使能輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。</p><p> 譯碼電路的功能是為了解決單片機(jī)I/O口不足。譯碼所用器件為74HC138。具體電路見圖3-4。</p><p> 3.4 LED點(diǎn)陣顯示屏</p><p> 3.4.1 LED點(diǎn)陣顯示屏的基本介紹</p><p> LED顯示屏是
35、一種通過控制半導(dǎo)體發(fā)光二極管的顯示方式,用來顯示文字、圖形、圖像、動(dòng)畫、行情、視頻、錄像信號(hào)等各種信息的顯示屏幕。本設(shè)計(jì)的所用的LED點(diǎn)陣顯示屏是由64個(gè)半導(dǎo)體發(fā)光二極管像素點(diǎn)均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點(diǎn),其中用到的是紅色。</p><p> Proteus中8×8LED點(diǎn)陣顯示屏MATRIX-8X8-RED,逆時(shí)鐘旋轉(zhuǎn)后,左邊為行控制,接高電平,右邊為列控制,接低電平,
36、從上到下的列引腳控制的是從右往左對(duì)應(yīng)的列,見圖3-5。</p><p> 圖中第三行接高電平,第二列接低電平,則對(duì)應(yīng)位置的LED燈點(diǎn)亮。</p><p> 3.4.2 LED點(diǎn)陣顯示屏的工作原理</p><p> 本設(shè)計(jì)采用動(dòng)態(tài)顯示方式。</p><p> 動(dòng)態(tài)顯示掃描方式是指逐位輪流點(diǎn)亮每位顯示器,即每個(gè)顯示模塊的位選線被輪流選中,
37、多個(gè)顯示塊公用一組段選,段選數(shù)據(jù)僅對(duì)位選線被選中的顯塊有效。對(duì)于每一位顯示器來說,每隔一段時(shí)間點(diǎn)亮一次。雖然每位的字符是在不同時(shí)刻出現(xiàn)的,而在同一時(shí)刻,只有一位顯示,其他各位熄滅,但由于LED顯示器的余暉和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時(shí)亮的假象,達(dá)到同時(shí)顯示的效果。</p><p> 在這種方式下其顯示驅(qū)動(dòng)電路可重復(fù)利用,引線也大大減少,從而使硬件成本降低,且屏幕上的發(fā)光二極管輪
38、流發(fā)光,使用時(shí)的耗電量大大降低。大屏幕的制造、維護(hù)要容易許多,可靠性也增加了。</p><p> 由四塊8×8LED點(diǎn)陣顯示屏擴(kuò)展成16×16LED點(diǎn)陣顯示屏的具體連線見圖3-6。</p><p> 圖中上面兩塊顯示平屏對(duì)應(yīng)的控制行引腳相連,并接到P0口;下面兩塊顯示屏對(duì)應(yīng)的控制行引腳相連,并接到P2口;左邊兩塊對(duì)應(yīng)的控制列引腳相連,并接到譯碼器的輸出端;右邊兩塊對(duì)
39、應(yīng)的列引腳相連,并接到另一片譯碼器的輸出端。</p><p><b> 4 軟件系統(tǒng)設(shè)計(jì)</b></p><p><b> 4.1 程序設(shè)計(jì)</b></p><p> 系統(tǒng)軟件采用C語言編寫,按照模塊化的設(shè)計(jì)思路設(shè)計(jì)。首先分析程序所要實(shí)現(xiàn)的功能,程序要實(shí)現(xiàn)不同動(dòng)態(tài)特效顯示(左移、上移及閃爍)間的切換。</p&g
40、t;<p> 主程序的工作流程見圖4-2。</p><p> 程序開始時(shí)首先必須對(duì)單片機(jī)進(jìn)行初始化,其中初始化的內(nèi)容包括:中斷初始化,外部中斷觸發(fā)方式的選擇,移動(dòng)速度初始化等。初始化完成后程序進(jìn)入待機(jī)狀態(tài)等待中斷的發(fā)生,該程序中主要用到了外部中斷0。外部中斷0由按鍵的電平變化觸發(fā),其主要功能是選擇LED點(diǎn)陣顯示屏的動(dòng)態(tài)特效顯示方式,是左移、上移還是閃爍。中斷產(chǎn)生后由預(yù)先初始化時(shí)設(shè)定跳轉(zhuǎn)執(zhí)行中斷子
41、程序。中斷程序設(shè)定了LED點(diǎn)陣顯示屏所要顯示的內(nèi)容和顯示的方式,最后執(zhí)行的是各種顯示程序。按照設(shè)定的方式和內(nèi)容顯示出所需要的內(nèi)容。</p><p> 4.2 顯示程序的設(shè)計(jì)</p><p> 4.2.1 點(diǎn)陣數(shù)據(jù)表達(dá)方式</p><p> 本設(shè)計(jì)用HZDotReader軟件取字模。設(shè)置取點(diǎn)方式為縱向8點(diǎn)下高位,字節(jié)排列為上到下、左到右。也就是以縱向8個(gè)連續(xù)點(diǎn)構(gòu)
42、成一個(gè)字節(jié),最上邊的點(diǎn)為字節(jié)的最低位,即BIT0,最下邊的點(diǎn)為BIT7。16×16漢字按每行16字節(jié),共2行取字模,每個(gè)漢字共32字節(jié),點(diǎn)陣四個(gè)角取字順序?yàn)樽笊辖恰笙陆恰疑辖恰蚁陆?,見圖4-2。</p><p> 圖中,數(shù)據(jù)是縱向的,一個(gè)像素對(duì)應(yīng)一個(gè)位。8個(gè)像素對(duì)應(yīng)一個(gè)字節(jié),字節(jié)的位順序是上低下高,比如從上到下8個(gè)點(diǎn)的狀態(tài)是“-------*”(*為黑點(diǎn),-為白點(diǎn)),則轉(zhuǎn)換的字模數(shù)據(jù)是0x08(
43、B0000_0001)。一幅16×16的點(diǎn)陣畫面點(diǎn)陣數(shù)據(jù)按照1 2 3…… 31 32存儲(chǔ)。所以一幅畫面的數(shù)據(jù)量為32字節(jié)。畫面顯示時(shí)選通的第i列對(duì)應(yīng)的數(shù)組元素為第i和i+16個(gè)元素。圖中“信”字的字模數(shù)據(jù)如下:</p><p> 0x80,0x00,0xC0,0x00,0x70,0x00,0xFC,0x7F,</p><p> 0xFF,0x7F,0x0F,0x00,0xA
44、A,0x7E,0xA8,0x7E,</p><p> 0xA9,0x22,0xAF,0x22,0xAE,0x22,0xAA,0x22,</p><p> 0xA8,0x7E,0xA8,0x7E,0x08,0x00,0x08,0x00。</p><p> 4.2.2 動(dòng)態(tài)特效顯示程序的設(shè)計(jì)</p><p> 動(dòng)態(tài)顯示程序分為左移顯示、上
45、移顯示、閃爍顯示三種顯示方式。當(dāng)主程序中判斷為左移顯示方式時(shí),先左移顯示初始化,之后進(jìn)入左移循環(huán)控制,判斷左移的字符個(gè)數(shù),顯示一幕,再判斷是否有中斷,如無則調(diào)用左移顯示子程序,否則進(jìn)入中斷,初始化各值。若判斷為上移顯示方式或閃爍顯示方式時(shí),單片機(jī)的執(zhí)行步驟同上。</p><p> 主程序中,左移子程序流程圖及上移子程序流程圖見圖4-3。</p><p> 根據(jù)顯示數(shù)據(jù)的存儲(chǔ)原理通過改變
46、實(shí)際LED列與數(shù)據(jù)邏輯列的方法來實(shí)現(xiàn)程序的左右移動(dòng)。顯示數(shù)據(jù)與列的對(duì)應(yīng)關(guān)系為:第i列對(duì)應(yīng)的數(shù)據(jù)為數(shù)組中i和第2×i個(gè)數(shù)據(jù)。所以送入后一列的數(shù)據(jù)則相當(dāng)于畫面左移移位,同理送入前一列數(shù)據(jù)相當(dāng)于右移一位。如此循環(huán)則產(chǎn)生一幅穩(wěn)定運(yùn)動(dòng)的畫面。</p><p> 顯示數(shù)組中,第1至16個(gè)元素的第0至第7位LED顯示屏中的第1至第8行。同理第17至32個(gè)元素的第0至第7位LED顯示屏中的第9至第16行。所以將元素?cái)?shù)
47、據(jù)進(jìn)行邏輯位移便能產(chǎn)生上下移動(dòng)的效果。</p><p> 實(shí)現(xiàn)閃爍效果的原理為:第一個(gè)字掃描完后,就掃描第二個(gè)子,而一個(gè)字有32個(gè)字節(jié),因此每隔32個(gè)字節(jié)送入P0和P2口,即當(dāng)?shù)谝粋€(gè)字節(jié)和第二個(gè)字節(jié)分別送入P0和P2口時(shí),進(jìn)行16列掃描后,此時(shí)送入P0和P2口的分別是第33和第34個(gè)字節(jié)。</p><p> 閃爍子程序流程圖見圖4-4。</p><p> 4.
48、3 外部中斷程序</p><p> 本設(shè)計(jì)用P3.2口外部中斷0作為控制按鈕,控制不同特效顯示間的切換。選用電平觸發(fā)方式,端輸入低電平時(shí),為有效的中斷請(qǐng)求信號(hào),置位。CPU在每一個(gè)機(jī)器周期采樣引腳的輸入電平。當(dāng)采樣到低電平時(shí)置“1”;當(dāng)采樣到高電平時(shí),清“0”。采用電平觸發(fā)方式時(shí),外部中斷源信號(hào)必須保持低電平有效,知道該中斷被CPU響應(yīng),同時(shí)在該中斷服務(wù)程序執(zhí)行完之前,外部中斷源信號(hào)必須清除;否則將產(chǎn)生另一次中
49、斷請(qǐng)求。</p><p> 按鈕按下時(shí)CPU采樣到低電平,執(zhí)行中斷程序,初始化移動(dòng)速度及各變量,flag值加一,改變顯示方式。</p><p><b> 5 系統(tǒng)調(diào)試</b></p><p> 5.1 系統(tǒng)調(diào)試的基本過程</p><p> 硬件制作和軟件編寫過后,得出實(shí)物見圖5-1。實(shí)物完成后必須對(duì)其進(jìn)行調(diào)試,檢
50、查設(shè)計(jì)功能是否實(shí)現(xiàn)了。軟件硬件完成后開始進(jìn)行調(diào)試。調(diào)試可分為軟件調(diào)試,硬件調(diào)試和系統(tǒng)聯(lián)合調(diào)試。</p><p> 5.1.1 軟件調(diào)試</p><p> 軟件調(diào)試主要是軟件編譯和將各功能塊程序分別寫入以驗(yàn)證其功能的可實(shí)現(xiàn)性。使用Keil軟件編寫C語言程序時(shí)就應(yīng)不斷地進(jìn)行編譯,查找出錯(cuò)誤。確定程序無誤后,對(duì)所有程序進(jìn)行編譯,編譯成功生產(chǎn)后綴名為.hex的可執(zhí)行文件。在Proteus仿真軟
51、件中畫出電路原理圖,單擊單片機(jī)元件,將其可執(zhí)行文件設(shè)置為之前生成的后綴名為.hex可執(zhí)行文件,最后單擊仿真工具欄中的運(yùn)行按鈕,整個(gè)系統(tǒng)就開始仿真運(yùn)行,這時(shí)可對(duì)各功能進(jìn)行測試??蓪roteus和Keil進(jìn)行聯(lián)調(diào),其步驟如下:</p><p> 搜索到Proteus安裝目錄下VDM51.dll文件,將其復(fù)制到Keil安裝目錄的\C51\BIN目錄中。</p><p> 編輯Keil安裝目
52、錄下的tools.ini文件,加入TDRV5=BIN\VDM51.DLL(“PROTEUS DEBUG”)。</p><p> 在Keil中打開要調(diào)試的工程,單擊Project中Options for Target1菜單,在彈出的對(duì)話框中選中Debug標(biāo)簽頁,進(jìn)行數(shù)據(jù)配置。生成可執(zhí)行文件。</p><p> 在Proteus中打開設(shè)計(jì)好的電路原理圖,單擊單片機(jī)元器件,將其可執(zhí)行文件設(shè)置
53、為要調(diào)試的Keil工程所生成的課執(zhí)行文件。</p><p> 5.1.2 硬件調(diào)試</p><p> 硬件調(diào)試主要是調(diào)試各部分的焊接是否合格和各芯片的輸出輸入電壓是否符合設(shè)計(jì)要求,最后測試各硬件部分能否完成設(shè)計(jì)功能。因此把硬件調(diào)試按照以下四部分分步來進(jìn)行:</p><p> 測試所有焊點(diǎn)是否有短路和虛焊的現(xiàn)象存在。檢測工具為萬用表,使用萬用表的短路報(bào)警功能,逐
54、個(gè)測試相臨的兩個(gè)焊點(diǎn)檢測是否短路。按照電路圖檢測需要連接的兩點(diǎn)是否短路來檢測是否已經(jīng)連接上,以此來檢測虛焊的情況。檢測和修改完成后為下一步通電檢測排除了短路的危險(xiǎn)和由于虛焊引起檢測結(jié)果不真實(shí)的麻煩。</p><p> 通電測試所有硬件芯片的輸入輸出電壓是否在設(shè)計(jì)要求的范圍內(nèi)。由于系統(tǒng)測試時(shí)是采用USB電源為系統(tǒng)電源,所以電源輸入都為5V。顯示系統(tǒng)中單片機(jī)、譯碼器,驅(qū)動(dòng)電路的電源電壓均要求為5V所以可同時(shí)直接接入
55、。上電后首先觀察電路是否有過熱,異味,冒煙的現(xiàn)象出現(xiàn)。經(jīng)過觀察,沒有這些現(xiàn)象出現(xiàn)。然后測試各器件的電源,接地及一些電平應(yīng)該固定的端口的電壓。測試的結(jié)果為:各器件電源端在4.3V~4.8V之間滿足器件的電源電壓要求,單片機(jī)端口在未接負(fù)載時(shí)端口電壓為4.5V。</p><p> 測試ISP下載線的功能是否能夠?qū)崿F(xiàn)。</p><p> 由于最重要的顯示系統(tǒng)功能的測試需要軟件配合所以在硬件調(diào)試
56、部分只測試單片機(jī)復(fù)位電平,功能部分測試放在系統(tǒng)聯(lián)合調(diào)試部分來完成。</p><p> 5.2 系統(tǒng)調(diào)試的結(jié)果</p><p> 對(duì)調(diào)試中出現(xiàn)的問題進(jìn)行了分析,得出以下原因和修改辦法。</p><p> 硬件的工作表現(xiàn)出不穩(wěn)定,單片機(jī)無法下載。經(jīng)過排查,發(fā)現(xiàn)有幾處短路現(xiàn)象以及器件正負(fù)極反接導(dǎo)致該原因,后來經(jīng)過修改,單片機(jī)可以成功加載程序。</p>
57、<p> LED顯示屏顯示不正確,經(jīng)過檢查及查閱資料發(fā)現(xiàn)實(shí)際LED顯示屏的引腳并不是一排接陰極一排接陽極,而是雜亂無章的。修改辦法是將用萬用表測引腳,重新寫下排列,重新焊連線。</p><p> 經(jīng)過調(diào)試和修改,系統(tǒng)實(shí)現(xiàn)了題目所要求的中英文字符以及特殊字符的顯示,能夠通過控制按鈕實(shí)現(xiàn)不同動(dòng)態(tài)效果間的切換。</p><p><b> 結(jié)論</b><
58、/p><p> 接手題目之后從互聯(lián)網(wǎng)上對(duì)LED進(jìn)行了詳細(xì)的資料收集。北京奧運(yùn)會(huì)開幕式盛典上利用LED制造出的變換無窮、美輪美奐、氣勢磅礴的各種圖像,給全世界留下震撼的印象,也讓國人對(duì)LED有了全新的認(rèn)識(shí)。LED顯示屏越來越受到廣泛應(yīng)用,它不僅價(jià)格低廉,且省電又清晰,有很大的發(fā)展前景。</p><p> 從設(shè)計(jì)之初就確定了參照街道上廣告牌顯示屏的實(shí)現(xiàn)方法和實(shí)際情況設(shè)計(jì)一款小屏幕的LED點(diǎn)陣顯
59、示屏。在查閱了大量的資料后確定了題目的設(shè)計(jì)方案。整個(gè)設(shè)計(jì)采用AT89C52做核心控制器,74HC138組成譯碼電路。經(jīng)過一段時(shí)間的工作,終于完成了基于51單片機(jī)的LED點(diǎn)陣廣告牌的設(shè)計(jì),項(xiàng)目所要求的功能全部達(dá)到。這次設(shè)計(jì)收獲頗多,不僅是所作題目涉及到的軟硬件知識(shí),還有更為重要的實(shí)際經(jīng)驗(yàn)和過程中所發(fā)現(xiàn)的問題。</p><p> 設(shè)計(jì)之前應(yīng)該進(jìn)行大量的資料收集和分析,確定一個(gè)清晰的設(shè)計(jì)思路。</p>
60、<p> 器件選擇時(shí)要詳細(xì)閱讀器件使用手冊(cè),不但要考慮器件的功能實(shí)現(xiàn)還要考慮器件在整個(gè)系統(tǒng)中的兼容性。</p><p> 硬件的系統(tǒng)的建立必須合理和穩(wěn)定,實(shí)物建立之前最好進(jìn)行仿真這樣才能為軟件提供一個(gè)可靠的試驗(yàn)平臺(tái)。</p><p> 軟件的編寫不但要實(shí)現(xiàn)功能還要不斷的優(yōu)化、簡練、易讀。</p><p> 實(shí)物的引腳往往與仿真圖中的引腳不同,應(yīng)該注
61、意。</p><p> 隨著課題的進(jìn)行,對(duì)LED的了解也越來越深入。LED技術(shù)也會(huì)進(jìn)一步發(fā)展,其應(yīng)用將會(huì)更加廣泛??梢栽O(shè)想利用LED的高穩(wěn)定性和低能耗,再與無線通信技術(shù)相結(jié)合在沙漠深處或者人跡罕至的雪山之顛樹立一塊依靠太陽能充電,通過無線傳輸方式更改顯示內(nèi)容的信息板為登山者提供指示和天氣信息,為沙漠迷路的人指引方向。</p><p> 設(shè)計(jì)結(jié)束了,但學(xué)習(xí)還在繼續(xù)。相信通過此次設(shè)計(jì)所得到
62、的知識(shí)、心得、經(jīng)驗(yàn)?zāi)酥粮惺芏紩?huì)讓我在以后的日子里受益匪淺。</p><p><b> 致謝</b></p><p> 這次能夠圓滿完成畢業(yè)設(shè)計(jì)首先要感謝**老師,感謝他在課程設(shè)計(jì)期間的指導(dǎo)、勉勵(lì)和督導(dǎo)。同時(shí)感謝教過我們專業(yè)課程的老師們,感謝他們對(duì)我們知識(shí)增長所付出的辛勤勞動(dòng)。還要感謝一起做課程設(shè)計(jì)的同學(xué),他們也給予了很大的幫助,尤其是一些細(xì)節(jié)問題。感謝實(shí)驗(yàn)室老師給
63、我們提供實(shí)驗(yàn)環(huán)境和器材。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 文哲雄.用單片機(jī)控制LED顯示屏[D].佛山:佛山科學(xué)技術(shù)學(xué)院,1995.</p><p> [2] 彭寧,只佩華.單片機(jī)對(duì)LED大屏幕顯示的控制系統(tǒng)[J].河北大學(xué)學(xué)報(bào)(自然科學(xué)版),1993,13(3):86-89.</p>
64、<p> [3] 喬世杰.小波圖像編碼中的對(duì)稱邊界延拓法[J].中國圖像圖形學(xué)報(bào),2000,5(9):725-729.</p><p> [4]李志強(qiáng)等.基于VC++的LED點(diǎn)陣顯示屏控制系統(tǒng)設(shè)計(jì).無線互聯(lián)科技,2012,(2): 70-71.</p><p> [5] 王曉濤.基于單片機(jī)控制的LED點(diǎn)陣顯示屏在煤礦的設(shè)計(jì)與應(yīng)用[J].中國科技博覽,2011,(36): 6
65、40-641.</p><p> [6] Marston, R.. Radio-Electronics, Working with LED display drivers[J]. Mar1992, Vol. 63 Issue 3.</p><p><b> 附錄</b></p><p><b> 附錄1:硬件原理圖</
66、b></p><p><b> 附錄2:C語言程序</b></p><p> /*本次顯示程序的設(shè)計(jì)分三個(gè)階斷</p><p> 第一階段:左移顯示方式的設(shè)計(jì)</p><p> 第二階段:上移顯示方式的設(shè)計(jì)</p><p> 第三階段:閃爍顯示方式的設(shè)計(jì) */</p
67、><p> #include <reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar table2[]={</p><p> 0xE0,0x0F,0x10,0x10
68、,0x08,0x20,0x08,0x20,</p><p> 0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*"O"*/</p><p> 0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,</p><p> 0x28,0x26,0x18,0x38,0x08,0x20,0x0
69、0,0x00}; /*"K"*/ /*上移顯示的字符*/</p><p> uchar code table1[]=</p><p> {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p>
70、<p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 0x20,0x00,0x24,0x80,0x24,0x80,0xA4,0xDF,</p><p> 0xFC,0x5F,0xFC,0x60
71、,0xA4,0x30,0xBF,0x1E,</p><p> 0xBF,0x1E,0xA4,0x30,0xFC,0x60,0xFC,0x4F,</p><p> 0xA4,0xCF,0x24,0x80,0x24,0x80,0x20,0x00, /*賁 CEADA */</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
72、0x00,</p><p> 0x44,0x00,0x44,0x80,0x44,0xC0,0x44,0x60,</p><p> 0x44,0x38,0xDF,0x1F,0xDF,0x07,0x54,0x02,</p><p> 0x74,0x42,0x64,0xC2,0x5F,0xC2,0x5F,0x7E,</p><p> 0x4
73、4,0x3E,0x44,0x00,0x44,0x00,0x44,0x00, /*芳 CB7BC */</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p><p> 0xF8,0x3B,0x0C,0x4E,0x04,0x5C,0x04,0x76,</p><p> 0x0C,0x62,0xF8,0x63
74、,0xC0,0x58,0x00,0xCC,</p><p> 0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00, /*& CAFA1 */</p><p> 0x00,0x00,0xF2,0x01,0xF2,0x41,0x12,0xC1,</p><p> 0x1E,0xFF,0x1E,0x7F,0xC0,0x87,
75、0xDE,0x87,</p><p> 0x5E,0x84,0xF2,0xFF,0xF2,0xFF,0x52,0x44,</p><p> 0x5E,0x54,0xDE,0xF7,0xC0,0xE7,0x00,0x40,/*強(qiáng) CC7BF */</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,</p&
76、gt;<p> 0x40,0x04,0x62,0x06,0x32,0xFF,0xDA,0xFF,</p><p> 0xDA,0xE0,0x6F,0x7D,0x6F,0x1D,0x72,0x05,</p><p> 0x72,0xFD,0x62,0xFD,0xEF,0x67,0xFF,0x3F,</p><p> 0x72,0x18,0xC2,
77、0xFF,0xC2,0xE7,0x42,0x40, /*薇 CDEB1 */ </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,0
78、x00,0x00,0x00,</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; /*左移顯示的字符*/</p><p> uchar code table3[]={</p><p> 0x80,0x00,0xC0,0x00,0x70,0x00,0xFC,0x7F,</p><p>
79、0xFF,0x7F,0x0F,0x00,0xAA,0x7E,0xA8,0x7E,</p><p> 0xA9,0x22,0xAF,0x22,0xAE,0x22,0xAA,0x22,</p><p> 0xA8,0x7E,0xA8,0x7E,0x08,0x00,0x08,0x00,/*"信",0*/</p><p> 0x00,0x00,0x
80、00,0x00,0xF8,0x0F,0xF8,0x0F,</p><p> 0x48,0x04,0x48,0x04,0x48,0x04,0xFF,0x3F,</p><p> 0xFF,0x7F,0x48,0x44,0x48,0x44,0x48,0x44,</p><p> 0xF8,0x4F,0xF8,0x4F,0x00,0x70,0x00,0x70,/*&
81、quot;電",1*/</p><p> 0x00,0x20,0x00,0x20,0x02,0x20,0x02,0x20,</p><p> 0x02,0x20,0x02,0x20,0x02,0x20,0xFE,0x3F,</p><p> 0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20,</p><
82、;p> 0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x20,/*"工",2*/</p><p> 0x10,0x04,0x12,0x07,0xD2,0x03,0xFE,0xFF,</p><p> 0xFF,0xFF,0x91,0x41,0x91,0x45,0xBF,0x44,</p><p> 0xBF
83、,0x44,0xA1,0x7F,0xA1,0x7F,0xA1,0x44,</p><p> 0xBF,0x44,0xBF,0x44,0x80,0x44,0x00,0x40,/*"程",3*/</p><p> 0x40,0x00,0x70,0x02,0x30,0x02,0x12,0x02,</p><p> 0x5E,0x02,0x5C,0
84、x02,0x54,0x42,0x51,0xC2,</p><p> 0x5F,0xFF,0xDE,0x7F,0xD4,0x02,0x58,0x02,</p><p> 0x5F,0x02,0x77,0x02,0x32,0x02,0x10,0x02,/*"學(xué)",4*/</p><p> 0xFE,0xFF,0xFE,0xFF,0x32,0x0
85、2,0x7A,0x06,</p><p> 0xCE,0x87,0x8E,0xC3,0x2C,0x71,0x24,0x3F,</p><p> 0x25,0x0F,0x27,0x01,0x26,0x7F,0x24,0xFF,</p><p> 0x24,0x81,0x2C,0x81,0x0C,0xF1,0x04,0xF1,/*"院",5*/
86、 </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> 0x00,0x
87、00,0x00,0x00,0x00,0x00,0x00,0x00};/*閃爍顯示字符*/</p><p> uchar 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,
88、jj,kk;</p><p> uchar iii,jjj,kkk;</p><p> uchar a3,b3;</p><p> uchar num3,temp3;</p><p> uchar temp2; /*各變量值的初始化*/</p><p> void init();/*主函數(shù)的初始化
89、聲名*/</p><p> void init1();/*左移顯示方式的初始化聲名*/</p><p> void init2();/*上移顯示方式的初始化聲名*/</p><p> void init3();/*閃爍顯示方式的初始化聲名*/</p><p> void disp1();/*左移顯示子程序聲名*/
90、</p><p> void disp2();/*上移顯示子程序聲名*/</p><p> void disp3();/*閃爍顯示子程序聲名*/</p><p> void delay(uint z)/*延時(shí)函數(shù)聲名及定義*/</p><p><b> {</b></p><p>&l
91、t;b> uint x,y;</b></p><p> for(x=z;x>0;x--)</p><p><b> {</b></p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p&g
92、t;<b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> init();</b></p><p> while(1)//主循環(huán)</p><p><b
93、> {</b></p><p> if(flag%3==1)//判斷是不是左移顯示方式</p><p><b> {</b></p><p> init1();//左移顯示初始化</p><p> while(flag%3==1)//左移循環(huán)控制</p><p>
94、<b> {</b></p><p> for(i=0;i<=a;i++)//判斷左移的字符個(gè)數(shù)</p><p> for(j=0;j<=v;j++)//向左移動(dòng)的速度由變量v控制</p><p> for(k=i*2;k<(i*2+32);)//顯示一幕</p><p> if(fla
95、g%3==1)//判斷有沒有中斷,flag的值有沒有變化</p><p> disp1();//若沒有中斷調(diào)用左移顯示子程序</p><p><b> else</b></p><p><b> {</b></p><p> i=a;j=v;k=(i*2+32);//若有中斷了初始化左移
96、的各變量</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag%3==2)//判斷是不是上移顯示方式</p><p><b>
97、 {</b></p><p> init2();//上移顯示初始化</p><p> while(flag%3==2)//上移循環(huán)控制</p><p><b> {</b></p><p> for(ii=0;ii<=15;ii++)//上移緩沖</p><p>&
98、lt;b> {</b></p><p> for(jj=0;jj<=v;jj++)//向上移動(dòng)的速度由變量v控制</p><p><b> {</b></p><p> for(kk=0;kk<=15;kk++)//顯示一幕</p><p> if(fl
99、ag%3==2)//判斷有沒有中斷,flag的值有沒有變化</p><p> disp2();//若沒有中斷調(diào)用左移顯示子程序</p><p><b> else</b></p><p><b> {</b></p><p> ii=15;jj=v;kk=15;//若有中斷了初始化上移
100、的各變量</p><p><b> }</b></p><p><b> delay(1);</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
101、}</b></p><p><b> }</b></p><p> if(flag%3==0)//判斷是不是閃爍顯示方式</p><p><b> {</b></p><p> init3();//閃爍顯示初始化</p><p> while(flag
102、%3==0)//閃爍循環(huán)控制</p><p><b> {</b></p><p> for(iii=0;iii<=6*32;iii=iii+32)//判斷閃爍顯示的字符個(gè)數(shù)</p><p> for(jjj=0;jjj<=v*10;jjj++)//閃爍顯示字符的速度由變量v控制</p><p><
103、;b> {</b></p><p> for(kkk=0;kkk<=15;kkk++)//顯示一幕</p><p> if(flag%3==0)//判斷有沒有中斷,flag的值有沒有變化</p><p> disp3();//若沒有中斷調(diào)用閃爍顯示子程序</p><p><b> num3
104、=0;</b></p><p> temp3=0;//顯示完一幕準(zhǔn)備下一幕的顯示</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
105、 }</b></p><p><b> }</b></p><p> void init()//主程序初始化</p><p><b> {</b></p><p> EA=1;//CPU開放所有中斷源的中斷請(qǐng)求</p><p> EX0=1;//
106、允許外部中斷0中斷</p><p> IT0=1;//外部中斷0采用邊沿觸發(fā)方式產(chǎn)生中斷</p><p><b> flag=1;</b></p><p> v=8;//設(shè)置移動(dòng)速度的初值</p><p><b> }</b></p><p> void ini
107、t1()//左移顯示方式各變量的初始化</p><p><b> {</b></p><p><b> shuz=5;</b></p><p><b> shub=1;</b></p><p> a=shuz*16+shub*8+15;</p><
108、p><b> P0=0;</b></p><p><b> P2=0;</b></p><p><b> temp1=0;</b></p><p><b> }</b></p><p> void disp1()//左移顯示子程序<
109、/p><p><b> {</b></p><p> P0=table1[k];</p><p><b> k++;</b></p><p> P2=table1[k];</p><p><b> k++;</b></p><
110、p><b> P1=temp1;</b></p><p><b> temp1++;</b></p><p> if(temp1==0x10)</p><p> temp1=0x00;</p><p><b> delay(1);</b></p>
111、<p><b> }</b></p><p> void init2()//上移顯示方式各變量的初始化</p><p><b> {</b></p><p><b> P0=0;</b></p><p><b> P2=0;</b>
112、;</p><p><b> temp2=0;</b></p><p><b> }</b></p><p> void disp2()//上移顯示子程序</p><p><b> {</b></p><p> numa=kk*2;<
113、/p><p> numb=kk*2+1;</p><p> a=table2[numa];</p><p> b=table2[numb];</p><p><b> if(jj==v)</b></p><p><b> {c=a>>1;</b><
114、/p><p> d=b<<(8-1);</p><p><b> e=b>>1;</b></p><p> f=a<<(8-1);</p><p><b> c=c|d;</b></p><p> table2[numa]=
115、c;</p><p><b> e=e|f;</b></p><p> table2[numb]=e;</p><p><b> }</b></p><p><b> P0=a;</b></p><p><b> P2=b;
116、</b></p><p><b> P1=temp2;</b></p><p><b> temp2++;</b></p><p> if(temp2==0x10)</p><p> temp2=0x00;</p><p><b> dela
117、y(1);</b></p><p><b> }</b></p><p> void init3()//閃爍顯示方式各變量的初始化</p><p><b> {</b></p><p><b> P0=0;</b></p><p>
118、;<b> P2=0;</b></p><p><b> num3=0;</b></p><p><b> temp3=0;</b></p><p><b> }</b></p><p> void disp3()//閃爍顯子程序</p&
119、gt;<p><b> {</b></p><p> a3=table3[iii+(num3++)];</p><p> b3=table3[iii+(num3++)];</p><p><b> P0=a3;</b></p><p><b> P2=b3;&l
120、t;/b></p><p> P1=temp3++;</p><p><b> delay(1);</b></p><p><b> }</b></p><p> void timer0() interrupt 0//外部中斷0的中斷程序</p><p>&
121、lt;b> {</b></p><p> v=8;//初始化移動(dòng)速度</p><p> flag++;//flag值加1,改變顯示方式</p><p> temp1=0x00;</p><p> temp2=0x00;</p><p> temp3=0x00;</p>&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)報(bào)告--led點(diǎn)陣廣告牌的設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--led點(diǎn)陣廣告牌的設(shè)計(jì)
- 點(diǎn)陣廣告牌課程設(shè)計(jì)報(bào)告書
- led點(diǎn)陣廣告牌的設(shè)計(jì)畢業(yè)論文
- 8x8點(diǎn)陣廣告牌課程設(shè)計(jì)報(bào)告
- 8x_8點(diǎn)陣動(dòng)態(tài)廣告牌課程設(shè)計(jì)報(bào)告
- 本科畢業(yè)論文(設(shè)計(jì))led點(diǎn)陣廣告牌的設(shè)計(jì)與制作
- led點(diǎn)陣課程設(shè)計(jì)報(bào)告
- led點(diǎn)陣課程設(shè)計(jì)報(bào)告
- 液晶顯示廣告牌的設(shè)計(jì)-課程設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)--簡易電子廣告牌設(shè)計(jì)
- 基于arm的led廣告牌系統(tǒng)設(shè)計(jì)
- led點(diǎn)陣課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于嵌入式系統(tǒng)的lcd廣告牌設(shè)計(jì)
- plc課程設(shè)計(jì)--彩色廣告牌的plc控制器設(shè)計(jì)
- led電子廣告牌的設(shè)計(jì)畢業(yè)論文
- 16x16led點(diǎn)陣課程設(shè)計(jì)報(bào)告
- 廣告牌畢業(yè)設(shè)計(jì)
- 滾動(dòng)廣告牌的設(shè)計(jì).doc
- 單片機(jī)課程設(shè)計(jì)-led燈點(diǎn)陣課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論