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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計說明書</b></p><p>  課程設(shè)計名稱: 單片機課程設(shè)計 </p><p>  課程設(shè)計題目: 點陣廣告牌的設(shè)計 </p><p>  學(xué) 院 名 稱: 電氣信息學(xué)院 </p><p>  專 業(yè)

2、班 級: </p><p>  學(xué) 生 學(xué) 號: </p><p>  學(xué) 生 姓 名: </p><p>  學(xué) 生 成 績: </p&g

3、t;<p>  指 導(dǎo) 教 師: </p><p>  課程設(shè)計時間: 2017.10.30 至 2017.11.5 </p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  課程設(shè)計的任務(wù)和基本要求</p><p><

4、b>  設(shè)計任務(wù)</b></p><p>  1. 設(shè)計一款能夠顯示不同字符的LED點陣廣告牌; </p><p>  2. 設(shè)計不同的字符切換效果(如閃爍,靜止,平移等);</p><p>  3. 設(shè)計控制按鈕,可以在不同的效果間切換;</p><p>  4. 能夠顯示圖形或自定義字符。</p><

5、p><b>  基本要求</b></p><p>  有硬件結(jié)構(gòu)圖、電路圖及文字說明;</p><p>  有程序設(shè)計的分析、思路說明; </p><p>  有程序流程框圖、程序代碼及注釋說明;</p><p>  完成系統(tǒng)調(diào)試(硬件系統(tǒng)可以借助實驗裝置實現(xiàn),也可在Proteus軟件中仿真模擬);</p&g

6、t;<p>  有程序運行結(jié)果的截屏圖片。</p><p><b>  二、進度安排</b></p><p>  第9周,10.30~11.5</p><p>  1) 10.30 題目分析,文獻查閱</p><p>  2) 10.31 方案比較,確定設(shè)計方案</p><

7、;p>  3) 10.31~11.1 硬件電路設(shè)計</p><p>  4) 11.2~11.4 程序設(shè)計,程序調(diào)試,系統(tǒng)聯(lián)調(diào),系統(tǒng)改進</p><p>  5) 11.5 課程設(shè)計說明書撰寫</p><p>  三、參考資料或參考文獻</p><p>  1. 林立,張俊亮. 單片機原理及應(yīng)用——基于Prote

8、us和Keil C [M].北京:電子工業(yè)出版社,2013</p><p>  2. 張毅剛,彭喜元. 單片機原理與應(yīng)用設(shè)計[M]. 北京:電子工業(yè)出版社,2008</p><p>  3. 馬忠梅. 單片機的C語言應(yīng)用程序設(shè)計(第5版) [M].北京:北京航空航天大學(xué)出版社,2013</p><p>  4. 羅中華. LED信息顯示屏系統(tǒng)的設(shè)計[D].南昌大學(xué),

9、2008.24-28. </p><p>  5. 陸彬. 21天學(xué)通51單片機開發(fā)[M].北京:電子工業(yè)出版社,2010.21-23,352-362.</p><p>  本科生課程設(shè)計成績評定表</p><p><b>  目 錄</b></p><p>  第一章 設(shè)計論證5</p><

10、p>  1.1主控芯片的選取方案論證5</p><p>  1.2顯示方面的選取方案論證5</p><p>  第二章 硬件設(shè)計6</p><p>  2.1 硬件結(jié)構(gòu)與工作原理6</p><p>  2.2 單元電路設(shè)計7</p><p>  2.2.1單片機最小系統(tǒng)7</p><

11、;p>  2.2.2 LED點陣8</p><p>  2.2.3 點陣行掃描電路9</p><p>  第三章 軟件設(shè)計12</p><p>  3.1系統(tǒng)軟件結(jié)構(gòu)12</p><p>  3.2功能子程序設(shè)計13</p><p>  第四章 系統(tǒng)調(diào)試與分析15</p><p&

12、gt;  4.1調(diào)試過程與調(diào)試結(jié)果 15</p><p>  4.2調(diào)試結(jié)果分析17</p><p>  第五章 設(shè)計小結(jié)18</p><p><b>  附錄19</b></p><p><b>  第一章 設(shè)計論證</b></p><p>  1.1主控芯片的選

13、取方案論證 </p><p>  方案一:采用可編程邏輯器件(簡稱為PLD)系統(tǒng)來實現(xiàn)LED點陣內(nèi)容的顯示,可以充分的利用器件里豐富的I/O口資源來驅(qū)動LED點陣的行和列。但若采用中大規(guī)模的PLD,設(shè)計多個接口電路,開發(fā)周期長,不易于進一步擴展,同時系統(tǒng)的成本會急劇上升。</p><p>  方案二(采用):本次設(shè)計采用AT89S51單片機系統(tǒng)來實現(xiàn),51單片機體積小,可靠性高,適用范圍廣

14、,使用方式靈活而簡單,價格便宜,適用于學(xué)生學(xué)習(xí)。另一方面51單片機簡單易學(xué),對于數(shù)據(jù)的處理也速度比較快,因此是很多設(shè)計的優(yōu)先選擇。所以我便買了一個51單片機,它里面點陣是已經(jīng)和兩片74HC595焊接好的,所以為了實物能達到效果,便以此編寫程序。并且使用74HC595芯片可以節(jié)省I/O口達到驅(qū)動更加多的LED,控制靈活方面再加上安裝和調(diào)試的工作也比較的簡單方便,使得本設(shè)計和制作過程的難度得以降低。</p><p>

15、  1.2顯示方面的選取方案論證 </p><p>  方案一:采用靜態(tài)方式,這種方式就是直接把所有的發(fā)光二極管的一極跟單片機的I/O口連接,所有發(fā)光二極管的另外一極就通過電阻然后接到電源上。這種方法可以直接驅(qū)動LED,原理也很簡單且具有很強的驅(qū)動能力,對于LED的點亮方式則可通過限流電阻來進行調(diào)節(jié),十分方便,但這種方法的缺點就是很浪費單片機的I/O口不能驅(qū)動很多的LED,它適用于那些相對來說比較小的系統(tǒng)。<

16、;/p><p>  方案二:采用動態(tài)掃描的方式,這一種方式也就是先把LED并聯(lián)在一起然后跟驅(qū)動芯片的輸出引腳相連接,而LED發(fā)光二極管的另外一端就跟單片機的通用I/O口相連接,控制選通行所對應(yīng)列LED燈的亮滅。采用這種掃描方案,能夠達到驅(qū)動比較多的LED的功能要求,控制起來也很靈活,還有一個優(yōu)點就是占用較少的單片機的I/O口。動態(tài)掃描就是一行接一行的去點亮發(fā)光二極管,那樣僅僅使用一套驅(qū)動器就可以驅(qū)動很多行的同名列。&

17、lt;/p><p>  根據(jù)對方案一和方案二進行比較,經(jīng)過綜合考慮可以發(fā)現(xiàn),動態(tài)掃描方式占有較多的優(yōu)勢。而本設(shè)計做的是8×8LED點陣廣告牌,若采用靜態(tài)顯示也行,但連線電路復(fù)雜,增加了仿真及實物連接的難度,所以本設(shè)計最后選擇的方案是方案二。</p><p><b>  第二章 硬件設(shè)計</b></p><p>  2.1 硬件結(jié)構(gòu)與工作原

18、理 </p><p><b>  硬件組成及工作原理</b></p><p>  硬件電路以AT89C51為核心為主控芯片,用單片機最小系統(tǒng)驅(qū)動,行列掃描電路是由兩片74HC595芯片及點陣構(gòu)成,通過程序使字模信號串行輸出給兩片八位移位寄存器74HC595,由兩片74HC595把接收到的十六位(行+列)字模信號存儲然后并行輸出給8x8的LED點陣,由行列信號控制點亮L

19、ED。如下圖2.1。</p><p>  圖2. 1 總體框圖</p><p>  2.2 單元電路設(shè)計</p><p>  2.2.1單片機最小系統(tǒng)</p><p>  單片機最小系統(tǒng)是由晶振電路和復(fù)位電路兩部分組成,其總體電路圖如圖2.2。</p><p>  圖2. 2 單片機最小系統(tǒng)</p>&l

20、t;p><b>  時鐘電路</b></p><p>  系統(tǒng)的時鐘電路設(shè)計采用內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。STC單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是放大器的輸入端和輸出端。這個放器與作為反饋元件的片外晶諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格

21、的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容值為30pF。</p><p><b>  2)復(fù)位電路</b></p><p>  復(fù)位是對單片機進行初始化操作,即把特殊功能寄存器的數(shù)據(jù)刷新為默認(rèn)數(shù)據(jù),單片機在運算過程中如果遇到外界干擾,寄存器中的數(shù)據(jù)就會發(fā)生混亂,以至于程序不

22、能正常運行,這樣就需要單片機復(fù)位,以使程序重新開始。復(fù)位方式一般分兩種:上電自動復(fù)位和按鍵手動復(fù)位,本設(shè)計中的復(fù)位電路既可實現(xiàn)上電自動復(fù)位也可實現(xiàn)手動復(fù)位,其電路的組成是在RST復(fù)位輸入引腳上接一個電容至VCC端,還有按鍵,下接一個電阻到地即可。</p><p>  2.2.2 LED點陣</p><p>  1)8×8點陣內(nèi)部結(jié)構(gòu)</p><p>  

23、8×8點陣是由64個發(fā)光二極管組成,每個二極管都是分布在行線與列線的交點上,其單點工作電壓為1.8v,正向電流為8-10mA。</p><p>  如圖2.3為行共陽8×8點陣,當(dāng)某一行線為高電平而某一列線為低電平時,其行列交叉點就被點亮,而當(dāng)其某一列線為高電平時,其行列交叉點為暗;當(dāng)其某一行線為低電平時,無論列線如何,對應(yīng)這一行的點全部為暗。</p><p>  圖2

24、. 3 8*8點陣</p><p>  LED驅(qū)動顯示采用動態(tài)掃描方法</p><p>  動態(tài)掃描方式是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行的同名列共用一套列驅(qū)動器。以8×8點陣為例,把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的列極連在一起(行共陽的接法),先送出對應(yīng)第1列(也就是八行)發(fā)光管亮滅的數(shù)據(jù)(即字模信號)并鎖存,然后選通第1列使其燃亮一定的時

25、間,然后熄滅;再送出第2列的數(shù)據(jù)并鎖存,然后選通第2列使其燃亮相同的時間,然后熄滅;….第8列之后,又重新燃亮第1列,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動較多的LED,控制方式較靈活,而且節(jié)省單片機的資源。</p><p>  LED點陣顯示屏廣泛應(yīng)用與汽車報站器,廣告屏等。8X8 LED點陣是最基本的點陣顯示模塊,理解8X8 LED

26、點陣的工作原理就可以基本掌握LED點陣顯示技術(shù)。</p><p>  2.2.3 點陣行掃描電路</p><p>  1)74HC595芯片功能</p><p>  圖2. 4 74HC595引腳圖</p><p><b>  管腳說明:</b></p><p>  表2. 1 74HC595

27、管腳說明</p><p>  行列掃描電路是由兩片74HC595芯片及點陣構(gòu)成,74HC595是一款具有8位移位寄存器和一個存儲器,三態(tài)輸出功能的驅(qū)動芯片,引腳圖如圖2.4,管腳功能如表2.1。移位寄存器和存儲器分別具有獨立的時鐘信號。數(shù)據(jù)在SHCP的上升沿輸入,在STCP的上升沿進入到存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(DS),和一個串行輸

28、出(Q7’),和一個異步的低電平復(fù)位(MR),存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。</p><p><b>  工作原理</b></p><p>  圖2. 5 單片機與74HC595接線圖</p><p>  如圖2.5,每當(dāng)單片機P3.5輸出給U2(低位74HC595)的數(shù)據(jù)

29、移位時鐘SH_CP(11腳)一個脈沖時,U2便通過串行數(shù)據(jù)輸入端DS(14腳)從單片機的P3.4口移入一位二進制數(shù),當(dāng)?shù)诰艂€移位脈沖到來時,U2(低位片)便將第一個移入的一位二進制數(shù)從Q7’(9腳)輸出經(jīng)由DS送到U3(高位片),直到行列信號(一共十六位二進制數(shù))都送入U2、U3之后,單片機P3.6口便輸出一個脈沖經(jīng)由輸出儲存器鎖存時鐘ST_CP(12腳)送給U2、U3,然后U2、U3同時鎖存并輸出(即并行輸出)行列各八位電平信號給8&

30、#215;8點陣,即可點亮點陣,控制行列信號便可以輸出想要得到的文字和圖形,代碼可以通過字模軟件獲取,當(dāng)然也可以自己編寫!</p><p><b>  第三章 軟件設(shè)計</b></p><p><b>  3.1系統(tǒng)軟件結(jié)構(gòu)</b></p><p>  圖3. 1 主程序流程圖</p><p>  

31、如圖3.1所示,在初始化(即設(shè)置I/O口,定義變量,賦初值等)后,進入while循環(huán)判斷顯示的字符數(shù)k是否小于6,如果小于6就發(fā)送字符的行列選值,用掃描的方式顯示,如果k大于6,就將k賦值為零,從0到5依次滾動顯示六個字符即循環(huán)。而開關(guān)是用來選定效果的,此次設(shè)計有兩種效果滾動顯示和變換顯示,滾動顯示就是在掃描的時候設(shè)置偏移量,循環(huán)一次后發(fā)生偏移,并且同時在偏移后空出的位置掃描下一個字符,依次類推直到六個字符都顯示后循環(huán);開關(guān)按下后,每次

32、按下狀態(tài)取反,切換變換效果,變換顯示就是不設(shè)置偏移量,顯示第一個字符一段時間后,k+1,選定第二個字符信號,掃描顯示,依次循環(huán)。</p><p>  3.2功能子程序設(shè)計</p><p>  圖3. 2 滾動及變換顯示流程圖</p><p>  如下面程序當(dāng)w=1時,即滾動顯示,單片機發(fā)送字模的代碼信號給74HC595,通過拉高拉低74HC595的輸出鎖存器時鐘ST

33、_CP的電平將信號輸出給點陣,從第八列到第一列依次掃描就顯示了一個字符,然后偏移量x加一,從x列(第八列為0)開始顯示第一個字符,同時8-x列開始顯示第二個字符,依次偏移一,就可以產(chǎn)生滾動效果了;變換顯示就是不加偏移量,顯示第一個字符一段時間后,k+1,顯示第二個字符,以此類推。當(dāng)然顯示字符時要調(diào)用延時程序,這里是直接調(diào)用延時函數(shù)DelayMS,就不過多介紹了。</p><p>  核心程序: for(j=0;

34、 j<8; j++) //循環(huán)8次發(fā)送行和列值</p><p><b>  {</b></p><p><b>  if(w==1)</b></p><p><b>  {</b></p><p>  Send_Byte(tabel[k][j]);//發(fā)送列選值</

35、p><p>  Send_Byte(ROW<<x);//發(fā)送行選值 </p><p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  Send_Byte(tabel[l][j]);//發(fā)送列選值</p><

36、p>  Send_Byte(ROW>>(8-x));//發(fā)送行選值</p><p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  ROW = _cror_(ROW, 1);//右移,選擇下一行</p><p><

37、;b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Send_Byte(tabel[k][j]);//發(fā)送列選值</p><p>  Send_Byte(ROW);//發(fā)送行選值</p>&

38、lt;p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  ROW = _cror_(ROW, 1);//右移,選擇下一行</p><p><b>  }</b></p><p><b>  if(S0

39、==0)</b></p><p><b>  {</b></p><p><b>  w=~w; </b></p><p>  DelayMS(15);</p><p><b>  }</b></p><p><b>  }<

40、;/b></p><p>  第四章 系統(tǒng)調(diào)試與分析</p><p>  4.1調(diào)試過程與調(diào)試結(jié)果 </p><p>  1)以下圖4.1是程序最后的調(diào)試結(jié)果,從起初的斷續(xù)顯示,切換不流暢,在室友的幫助下不斷修改添加,到最后流暢切換,正常顯示效果,基本達到設(shè)計要求。</p><p>  圖4. 1 程序調(diào)試圖<

41、;/p><p>  2)以下圖4.2是proteus最后的仿真效果圖,由程序編譯生成hex文件,在proteus仿真中單片機加載hex文件,運行仿真?;具_到程序設(shè)定的效果。</p><p>  圖4. 2 仿真調(diào)試圖</p><p><b>  3)實物效果圖</b></p><p><b>  圖4. 3 實物

42、圖</b></p><p><b>  4.2調(diào)試結(jié)果分析</b></p><p>  調(diào)試主要就是硬件調(diào)試和軟件調(diào)試。在硬件調(diào)試的過程應(yīng)該分模塊,逐個進行調(diào)試,而且要在保證軟件正確的情況下去對硬件進行測試,這樣就才容易找到錯誤的所在。對于軟件的調(diào)試主要是把用C語言編寫好的程序復(fù)制到Keil uVision3軟件進行編譯,不斷的修改錯誤的地方直到編譯成功,

43、以及proteus的畫圖仿真。我們常用的編程語言就是C語言匯編和匯編語言,在編寫的時候需要有先驗的知識主體,了解單片機的概念。硬件的調(diào)試主要分為LED點陣顯示屏的調(diào)試和單片機最小系統(tǒng)的調(diào)試。</p><p><b>  第五章 設(shè)計小結(jié)</b></p><p>  在設(shè)計制作本系統(tǒng)的過程中,我深切的體會到了實踐能力的重要性,只有理論基礎(chǔ)是不能做好一個完美的設(shè)計的。本系

44、統(tǒng)的研制主要應(yīng)用到了LED點陣漢字顯示原理、單片機控制技術(shù)、LED點陣驅(qū)動芯片等多方面的知識,本系統(tǒng)達預(yù)期的要求,操作方便、價格便宜、廣告牌的各點亮度均勻、充足,可以顯示文字內(nèi)容,顯示的文字穩(wěn)定、清晰無串?dāng)_。在調(diào)試方面,經(jīng)過多次對任意的測試操作,穩(wěn)定的性能得到了認(rèn)可。同時此系統(tǒng)通過軟件設(shè)計,實現(xiàn)了內(nèi)容顯示的多樣化,大大提高了廣告牌的吸引力。在完成本設(shè)計之前,要看很多的書籍,了解所用到的芯片,它們工作的原理,沒有知識的來源就沒有操作的進行

45、。于是我學(xué)會了利用網(wǎng)上和圖書館豐富的資源,在發(fā)現(xiàn)問題的時候通過查閱資料來解決問題。在本次設(shè)計中我也發(fā)現(xiàn)了自己還有很多不足的地方,還需要不斷的去加強自己的動手能力,知識面也有很狹窄還需要通過不斷的閱讀來提高自己的能力。</p><p>  從硬件電路的設(shè)計和制作到軟件的設(shè)計,這過程中有遇到不少的問題,但凡是生生相克,有問題出現(xiàn)就有解決問題的方法。了解了LED的顯示原理,了解了驅(qū)動芯片的作用,進而進行軟件方面的設(shè)計。

46、為了實現(xiàn)LED點陣顯示內(nèi)容的效果,就需要對C語言的掌握。學(xué)會合理利用圖書館的資源,增加自己的知識,提高自己的實踐能力。在本設(shè)計的整個過程中,我可以發(fā)現(xiàn)我有很多的不足,對專業(yè)理論知識的掌握過少,動手能力也有所欠缺。但本設(shè)計讓我學(xué)到的東西是很多的,首先我加深了對本專業(yè)知識的理解,學(xué)會了不懂就要問,遇到問題不要抱怨,更不能放棄,只要想學(xué)就一定能學(xué)會,我相信我會不斷的超越自己,努力的做得更好。</p><p><b

47、>  附錄:</b></p><p><b>  完整程序:</b></p><p><b>  /*</b></p><p>  8×8點陣屏循環(huán)顯示 “L”“J”“Y”“1”“2”“特殊符號”</p><p><b>  */</b></p

48、><p>  #include <reg52.h></p><p>  #include <intrins.h> //循環(huán)右移頭文件</p><p>  sbit S0 = P3^0; //按鍵接口</p><p>  sbit DIO = P3^4; //串行數(shù)據(jù)口</p><p>  sbi

49、t S_CLK = P3^5;//移位寄存器時鐘</p><p>  sbit R_CLK = P3^6;//輸出鎖存器時鐘</p><p><b>  /*點陣字形碼*/</b></p><p>  unsigned char code tabel[6][8]={</p><p>  0xFF,0x7F,0x7F,0x

50、7F,0x7F,0x7F,0x0,0xFF,//L</p><p>  0xFF,0xFE,0xFE,0x80,0x7E,0x7E,0x9F,0xFF,//J</p><p>  0xFE,0xFD,0xFB,0x7,0xFB,0xFD,0xFE,0xFF,//Y</p><p>  0x7F,0x7F,0x7F,0x0,0x7D,0x7B,0x7F,0xFF,//

51、1</p><p>  0xFF,0x7F,0x79,0x76,0x6E,0x5E,0x39,0x7F,//2</p><p>  0xFF,0xE7,0x14,0xC0,0x14,0xE7,0xFF,0xFF,//符號</p><p><b>  };</b></p><p>  /*595發(fā)送一字節(jié)*/</p&

52、gt;<p>  void Send_Byte(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i; //循環(huán)次數(shù)變量</p><p>  S_CLK = 0;//拉低移位寄存器時鐘</p><p>  R_CLK = 0;//拉

53、低輸出鎖存器時鐘</p><p>  for(i=0; i<8; i++) //循環(huán)8次</p><p><b>  {</b></p><p>  if(dat & 0x01)//發(fā)送1</p><p><b>  DIO = 1;</b></p><p> 

54、 else //發(fā)送0</p><p><b>  DIO = 0;</b></p><p>  dat >>= 1;//數(shù)據(jù)右移</p><p>  S_CLK = 1;//拉高移位寄存器時鐘,數(shù)據(jù)移位</p><p>  S_CLK = 0;//拉低移位寄存器時鐘</p><p&g

55、t;<b>  }</b></p><p><b>  }</b></p><p>  void DelayMS(unsigned int x)//延時</p><p><b>  {</b></p><p>  unsigned char i;</p><

56、;p>  while(x--)for(i=0;i<120;i++);</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  unsigned char j, k, l, x, ROW,w;</

57、p><p>  //j發(fā)送8列和8行字形碼,k低字符數(shù)量,l高字符數(shù)量,x掃描偏移量,ROW行值 ,w標(biāo)志位</p><p>  unsigned int z;//動態(tài)掃描延時變量</p><p><b>  w=0x1;</b></p><p><b>  while(1)</b></p>

58、;<p><b>  {</b></p><p>  for(k=0; k<6; k++)//k 需要顯示的字符數(shù)量</p><p><b>  {</b></p><p><b>  l=k+1;</b></p><p><b>  if(l==

59、6)</b></p><p><b>  l=0;</b></p><p><b>  x=0;</b></p><p>  for(z=0; z<1000; z++)//z刷新次數(shù)</p><p><b>  {</b></p><p&g

60、t;  ROW = 0x80;//行選初值</p><p><b>  if(x==9)</b></p><p><b>  x=0;</b></p><p>  if(z%125==0)</p><p><b>  x++;</b></p><p> 

61、 for(j=0; j<8; j++) //循環(huán)8次發(fā)送行和列值</p><p><b>  {</b></p><p><b>  if(w==1)</b></p><p><b>  {</b></p><p>  Send_Byte(tabel[k][j]);//發(fā)

62、送列選值</p><p>  Send_Byte(ROW<<x);//發(fā)送行選值 </p><p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  Send_Byte(tabel[l][j]);//發(fā)送列選值</p&

63、gt;<p>  Send_Byte(ROW>>(8-x));//發(fā)送行選值</p><p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  ROW = _cror_(ROW, 1);//右移,選擇下一行</p><

64、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Send_Byte(tabel[k][j]);//發(fā)送列選值</p><p>  Send_Byte(ROW);//發(fā)送行選值<

65、/p><p>  R_CLK = 1; //拉高輸出鎖存器,把移位寄存器中數(shù)據(jù)輸出</p><p>  R_CLK = 0; //拉低輸出鎖存器</p><p>  ROW = _cror_(ROW, 1);//右移,選擇下一行</p><p><b>  }</b></p><p><b&g

66、t;  if(S0==0)</b></p><p><b>  {</b></p><p><b>  w=~w; </b></p><p>  DelayMS(15);</p><p><b>  }</b></p><p><b&g

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論