基于單片機(jī)的led點(diǎn)陣電子顯示屏長師畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)論文(設(shè)計(jì))開題報(bào)告</p><p>  注:1. 題目類型:理論、實(shí)驗(yàn)、應(yīng)用、綜合;</p><p>  2. 題目來源:指導(dǎo)教師擬定、自選、其它;</p><p><b>  3. 此表可打印。</b></p><p><b>  填寫說明</b></p>

2、<p>  用藍(lán)色或黑色墨水的鋼筆(或簽字筆)填寫,書寫要清晰、工整、規(guī)范,不得打印。</p><p>  此表一式兩份。一份裝入學(xué)生檔案;一份按此表、開題報(bào)告、中期檢查表、成績?cè)u(píng)定表、論文正文的順序裝訂成冊(cè),留院(系)存檔。</p><p><b>  目 錄</b></p><p>  摘要···

3、····································

4、3;····································&#

5、183;··········I</p><p>  Abstract····················

6、3;····································&#

7、183;·······················II</p><p>  第一章 系統(tǒng)整體設(shè)計(jì)方案······

8、3;····································&#

9、183;·················1</p><p>  1.1 需要實(shí)現(xiàn)的功能·············

10、····································

11、3;·············1</p><p>  1.2 設(shè)計(jì)方案論證·················

12、83;····································&

13、#183;···········1</p><p>  第二章 系統(tǒng)硬件部分設(shè)計(jì)··················

14、3;····································&#

15、183;·····3</p><p>  2. 1 電源設(shè)計(jì)·························&#

16、183;····································

17、·········3</p><p>  2.2 單片機(jī)系統(tǒng)及外圍電路·····················&

18、#183;·································4</p><

19、p>  2. 2. 1 單片機(jī)的選擇·································

20、·························4</p><p>  2. 2. 1 AT89C55芯片介紹····&#

21、183;····································

22、············4</p><p>  2. 2. 1 單片機(jī)系統(tǒng)外圍電路·················

23、3;································7</p><p>  2.

24、 3 列驅(qū)動(dòng)電路···································&

25、#183;································8</p><p> 

26、 2. 4 行驅(qū)動(dòng)電路··································

27、3;·································8</p><p&g

28、t;  2. 4 .1 列驅(qū)動(dòng)電路·································

29、3;··························8</p><p>  2. 4 .1 行驅(qū)動(dòng)電路····

30、····································

31、3;··················10</p><p>  2. 5 LED顯示屏電路············

32、;····································

33、83;·············11</p><p>  第三章 系統(tǒng)軟件部分設(shè)計(jì)·················

34、····································

35、3;·······14</p><p>  3. 1 系統(tǒng)主程序·······················&#

36、183;····································

37、······14</p><p>  3. 2 顯示驅(qū)動(dòng)程序························

38、83;····································&

39、#183;··15</p><p>  第四章 調(diào)試及性能分析····························

40、;····································17&

41、lt;/p><p>  4. 1 系統(tǒng)調(diào)試·······························&#

42、183;····································

43、·17</p><p>  4. 2 性能分析······························

44、;····································

45、83;··17</p><p>  結(jié)束語·····························

46、83;····································&

47、#183;················18</p><p>  致謝···············&#

48、183;····································

49、··································19</p>&l

50、t;p>  參考文獻(xiàn)··································

51、83;····································&

52、#183;·········20</p><p>  附錄······················&#

53、183;····································

54、···························21</p><p>  基于單片機(jī)的LED點(diǎn)陣電子顯示屏設(shè)計(jì)</p><

55、;p>  摘要:電子顯示屏的應(yīng)用范圍越來越廣泛,它作為一個(gè)重要的宣傳平臺(tái),已經(jīng)受到全社會(huì)的普遍認(rèn)可。本課題以單片機(jī)為控制核心,通過8×8LED電子顯示屏及相關(guān)的外圍電路,設(shè)計(jì)制作了一個(gè)16×32點(diǎn)陣LED電子顯示屏。</p><p>  該設(shè)計(jì)介紹了基于AT89C55單片機(jī)點(diǎn)陣顯示屏的設(shè)計(jì)方案,闡述了16×32點(diǎn)陣LED顯示屏的設(shè)計(jì)原理和電路,詳細(xì)敘述了系統(tǒng)硬件、軟件設(shè)計(jì)的具體

56、實(shí)現(xiàn)過程。論文重點(diǎn)闡述了顯示模塊及相關(guān)驅(qū)動(dòng)模塊等的模塊設(shè)計(jì)思路與制作方法。軟件部分同樣也采用模塊化的設(shè)計(jì)思想,包括中斷模塊、顯示模塊,并采用匯編語言編程實(shí)現(xiàn)。系統(tǒng)能清晰的圖文伴隨跑馬形式移入移出顯示等功能。在實(shí)際設(shè)計(jì)調(diào)試過程中,通過肉眼觀察該顯示屏顯示的圖文是否穩(wěn)定、清晰無串?dāng)_,查找造成圖文不清晰的根源,確定調(diào)整方案,盡可能的使顯示圖文與要求相符合。</p><p>  關(guān)鍵詞:AT89C55單片機(jī);LED;點(diǎn)陣

57、顯示;動(dòng)態(tài)顯示;匯編語言。</p><p>  Abstract :LED electronic display screens, which are applied more and more widely,have been generally accepted by the whole society as an important propagandistic platform,In this work,

58、a digital 16*32 dot matrix LED electronic display screens was designed and made from a 8x8LED electronic display screen and the related peripheral circuits ,with a microcontroller as the controlling core.</p><

59、p>  The thesis introduces the design of a dot matrix display based on AT89C55 microcontroller.describing the design ideas of 16*32 dot matrix LED display,and expounding the realization process of system hardware and s

60、oftware design in detail.This thesis focuses on the design ideas and making of modularization of display module and related driving modules.Software design including interrupt module and display module is also the idea o

61、f modularization,and it comes true by the application of a simple a</p><p>  Key words: AT89C55 Micro Controller Unit; LED; Lattice display; Dynamic display; Assembly language.</p><p>  第一章 系統(tǒng)整

62、體設(shè)計(jì)方案</p><p>  1.1 需要實(shí)現(xiàn)的功能 </p><p>  設(shè)計(jì)一個(gè)室內(nèi)用16×32點(diǎn)陣LED圖文顯示屏,要求在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形或文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。 </p><p><b>  1.2 方案論證</b></p&

63、gt;<p>  從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個(gè)點(diǎn)所在位置相對(duì)應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動(dòng)顯示方式。16×32的點(diǎn)陣共有512個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多端口,如果我們采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計(jì)算,16×32的點(diǎn)陣需要512/8=64個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是16&#

64、215;32的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另一種稱為動(dòng)態(tài)掃描的顯示方法[1]。 </p><p>  動(dòng)態(tài)掃描的意思簡單地說就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如32行)的同名列共用一套列驅(qū)動(dòng)器。具體就16×32的點(diǎn)陣來說,我們把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光

65、管的陰極連在一起(共陽的接法),先送出對(duì)應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第一行使其燃亮一定的時(shí)間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第二行使其燃亮相同的時(shí)間,然后熄滅;…… 第十六行之后又重新燃亮第一行,這樣反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,我們就能看到顯示屏上穩(wěn)定的圖形了。 </p><p>  采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列

66、共用一個(gè)列驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī)的存儲(chǔ)器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動(dòng)器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。顯然,采用并行方式時(shí),從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并行傳輸?shù)姆桨甘遣豢扇〉摹?lt;/p><p>  采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓盘?hào)線,將列

67、數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢螅@一行的各列才能并行地進(jìn)行顯示。這樣,對(duì)于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個(gè)部分。對(duì)于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長,在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以至影響到LED的亮度。 </p><p>  解決串行

68、傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)過上述分析,可以歸納出列驅(qū)動(dòng)器</p><p>  電路應(yīng)具備的主要功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并出的移位功能;</p><p>  對(duì)于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并

69、行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。圖1-1為顯示屏電路實(shí)現(xiàn)的結(jié)構(gòu)框圖。 </p><p>  第二章 系統(tǒng)硬件部分設(shè)計(jì)</p><p>  由于圖文屏的控制電路采用單片機(jī)方案,控制功能的實(shí)現(xiàn)應(yīng)在硬件和軟件兩方面進(jìn)行折中。單片機(jī)及相應(yīng)軟件,主要負(fù)責(zé)存儲(chǔ)(或生成)顯示數(shù)據(jù)、安排控制信號(hào)的定時(shí)與順序等。但是單片機(jī)的接口數(shù)量少,驅(qū)動(dòng)能力不強(qiáng),必須擴(kuò)

70、展一定的硬件電路,才能滿足顯示屏的需要。系統(tǒng)硬件部分電路大致上可以分成穩(wěn)壓電源、單片機(jī)系統(tǒng)及外圍電路、列驅(qū)動(dòng)器電路、行驅(qū)動(dòng)器電路和LED顯示屏電路五部分。</p><p><b>  2.1 電源設(shè)計(jì)</b></p><p>  穩(wěn)壓電源的功能是把來自電網(wǎng)的220V交流電壓轉(zhuǎn)變?yōu)樗璧?、穩(wěn)定的直流電壓。它由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分組成,如圖2

71、-1所示:</p><p>  + 電 源 + 整 流 + 濾 波 + 穩(wěn) 壓 +</p><p>  u1 u2 u3 uI U0</p><p>  _ 變壓器 _ 電 路 _

72、 電 路 _ 電 路 _</p><p>  u1 u2 u3 uI U0 </p><p>  0 t 0 t 0 t 0 t 0 t</p&g

73、t;<p>  根據(jù)要求所確定的穩(wěn)壓電源的電路形式如圖2-2所示。圖中變壓器T將來自電網(wǎng)的220V交流電壓變換為整流電路所需要的7.5V交流電壓,再經(jīng)整流電橋(4個(gè)二極管)D1將交流電壓變換成脈動(dòng)的直流電壓,隨后電解電容器C1將脈動(dòng)直流電壓中的大部分紋波加以濾除,以得到較為平滑的直流電壓。為了得到改善的紋波電壓,再將直流電壓通過電容C2,然后經(jīng)集成穩(wěn)壓器IC1穩(wěn)壓,在輸出端得到穩(wěn)定的5V直流電壓。這時(shí),在輸出端接上電容C3

74、,用以濾除輸出端的高頻信號(hào),改善負(fù)載的瞬態(tài)響應(yīng),最后即可得到所需的、穩(wěn)定的直流電壓。電路最后接入的發(fā)光二極管用做電源指示燈。</p><p>  圖2-2 電源電路</p><p>  2.2 單片機(jī)系統(tǒng)及外圍電路</p><p>  2.2.1 單片機(jī)的選擇</p><p>  單片機(jī)采用89C55或其兼容系列的芯片進(jìn)行控制,它負(fù)責(zé)控

75、制整個(gè)電路以及相應(yīng)的程序的運(yùn)行、以及給屏體電路部分發(fā)送命令。這里我們選擇了內(nèi)含20K字節(jié)Flash的AT89C55,因?yàn)槲覀冎恍枰@示特定的圖形,文字和時(shí)間,溫度,需龐大的字庫,因此20K Flash已經(jīng)可以滿足字庫儲(chǔ)存的需求,不需要擴(kuò)展外存儲(chǔ)器。在便攜式產(chǎn)品中大有用武之地[2]。</p><p>  2.2.2 AT89C55芯片介紹</p><p>  采用AT89C55,它是美國A

76、TMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含20kbytes 的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器(ROM)和256*8bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8 位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C55單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。</p><p>

77、;  雖然AT89S52的ISP下載功能非常優(yōu)秀,但它只有8KROM,由于本設(shè)計(jì)的程序代碼比較多,所以選用AT89C55(具有20KROM)。</p><p><b>  主要性能參數(shù):</b></p><p>  ·與MCS-51產(chǎn)品指令和引腳完全兼容</p><p>  ·20K字節(jié)可重擦寫Flash閃速存儲(chǔ)器</

78、p><p>  ·1000次擦寫周期</p><p>  ·全靜態(tài)擦寫周期:0Hz—33Hz</p><p>  ·三級(jí)加密程序存儲(chǔ)器</p><p>  ·256*8字節(jié)內(nèi)部RAM</p><p>  ·32個(gè)可編程I/O口線</p><p>  

79、·三個(gè)16位定時(shí)/計(jì)數(shù)器</p><p><b>  ·8個(gè)中斷源</b></p><p>  ·低功耗空閑和掉電模式</p><p><b>  功能特性概述:</b></p><p>  這個(gè)AT89C55的是一種低功耗,高性能8位CMOS單片機(jī),具有20K字節(jié)可重

80、擦寫Flash閃速存儲(chǔ)器,該設(shè)備是采用Atmel的高密度非易失性內(nèi)存技術(shù),并與業(yè)界標(biāo)準(zhǔn)80C51指令集和引腳兼容,片上閃存程序存儲(chǔ)器可重新編程的系統(tǒng)或由傳統(tǒng)的非易失性內(nèi)存編程通過將通用的8位CPU與Flash在monolithicchip芯片, AT89C55是一個(gè)強(qiáng)大的微型計(jì)算機(jī)提供了一個(gè)高度靈活和成本有效地解決許多嵌入式控制應(yīng)用。AT89C55單片機(jī)一般采用雙列直插DIP封裝,共40個(gè)引腳,圖2-3為其引腳排列圖。40個(gè)引腳大致可分

81、為4類:電源、時(shí)鐘、控制各I/O引腳。</p><p><b>  一. 電源</b></p><p>  Vcc——芯片電源,接+5V;GND——接地端。</p><p><b>  二. 時(shí)鐘</b></p><p>  XTAL1、XTAL2——晶體振蕩電路反相輸入端和輸出端。</p&g

82、t;<p><b>  三. 控制線</b></p><p>  控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,正常使用時(shí)是一種功能,在某種條件下是另一種功能。</p><p>  1.ALE/——地址鎖存允許/片內(nèi)EPROM編程脈沖。</p><p> ?。?)ALE功能:用來鎖存P0口送出的低八位地址。<

83、/p><p>  AT89C55在并行擴(kuò)展外存儲(chǔ)器時(shí),P0口用于分時(shí)傳送低8位地址和數(shù)據(jù)信號(hào),且均為二進(jìn)制數(shù)。當(dāng)ALE信號(hào)有效時(shí),P0口傳送的是低8位地址信號(hào);ALE信號(hào)無效時(shí),P0口傳送的是低8位地址信號(hào)。在ALE信號(hào)的下降沿,鎖定P0口傳送的內(nèi)容,即低8位地址信號(hào)。</p><p>  需要指出的是,當(dāng)CPU不執(zhí)行訪問外RAM指令,ALE以時(shí)鐘振蕩頻率1/6的固定頻率輸出,因此ALE信號(hào)也

84、可作為外部芯片CLK時(shí)鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時(shí),ALE將跳過一個(gè)ALE脈沖。</p><p>  (2)功能:片內(nèi)EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。</p><p>  2. ——外ROM讀選通信號(hào)。</p><p>  89C51讀外ROM時(shí),每個(gè)機(jī)器周期內(nèi)兩次有效輸出??勺鳛橥釸OM芯片輸出允許的選通信號(hào)。在讀內(nèi)R

85、OM或讀外RAM時(shí),無效。</p><p>  3.RST/VPD——復(fù)位/備用電源。</p><p> ?。?)正常工作時(shí),RST端為復(fù)位信號(hào)輸入端,只要在該引腳上連續(xù)保持兩個(gè)機(jī)器周期以上高電平,AT89C55芯片即實(shí)現(xiàn)復(fù)位操作,復(fù)位后一切從頭開始,CPU從0000H開始執(zhí)行指令。</p><p>  (2)VPD功能:在VCC掉電情況下,該引腳可接上備用電源,由

86、VPD向片內(nèi)RAM供電,以保持片內(nèi)RAM中的數(shù)據(jù)不丟失。</p><p>  4./VPP——內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> ?。?)功能:正常工作時(shí),為內(nèi)外ROM選擇端。AT89C55單片機(jī)ROM尋址范圍為64KB,其中20KB在片內(nèi),60KB在片外。當(dāng)保持高電平時(shí),先訪問內(nèi)ROM,但當(dāng)PC值超過20KB時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外ROM中的程序。當(dāng)保持低電平時(shí),則只

87、訪問外ROM,不管芯片內(nèi)有否內(nèi)ROM。</p><p>  (2)VPP功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳用于施加編程電源。</p><p><b>  四. I/O引腳</b></p><p>  AT89C55有P0、P1、P2、P3 4個(gè)8位并行I/O端口,共32個(gè)引腳。</p><p>

88、  P0口是一組8位漏級(jí)開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫1時(shí),又可作高阻抗輸入端用。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),它是分時(shí)多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,在訪問期間激活了內(nèi)部的上拉電阻。在Flash編程時(shí),P0端口接收指令字節(jié);而在驗(yàn)證程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。</p><p>  P1 口是帶內(nèi)部上

89、拉電阻的雙向I/O口,向P1口寫入1時(shí)P1口被內(nèi)部上拉為高電平,可用作輸入口。當(dāng)作為輸入腳時(shí)被外部信號(hào)拉低的P1口會(huì)因?yàn)閮?nèi)部上拉而輸出一個(gè)電流。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。</p><p>  P2 口是帶內(nèi)部上拉電阻的雙向I/O口,向P2口寫入1時(shí)P2口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時(shí)被外部拉低的P2口會(huì)因?yàn)閮?nèi)部上拉而輸出電流。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器

90、(例如執(zhí)行MOVX @DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù),當(dāng)使用8位尋址方式(MOVX@RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口發(fā)送P2特殊功能寄存器的內(nèi)容,在整個(gè)訪問期間不改變。Flash編程和程序校驗(yàn)時(shí),P2也接收高位地址和一些控制信號(hào)。</p><p>  P3 口是帶內(nèi)部上拉電阻的雙向I/O口,向P3口寫入1時(shí)P3口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時(shí)被外部拉低的P3口會(huì)因?yàn)閮?nèi)部上拉而輸出電流

91、。P3口除了作為一般的I/O口線外,更重要的是它的第二功能,如表2.1所示:</p><p>  2.2.3 單片機(jī)系統(tǒng)外圍電路</p><p>  單片機(jī)最小系統(tǒng)圖形式如圖2-4所示。單片機(jī)振蕩器反相放大器的輸入端(XTAL1)和輸出端(XTAL2)之間接上12MHz或更高頻率的晶振,以獲得較高的刷新頻率,使顯示更穩(wěn)定。電容C4、C5是晶振的負(fù)載電容,主要起頻率微調(diào)和穩(wěn)定的作用。單片機(jī)

92、的串行口工作在方式0下,作為同步移位寄存器使用,端口RXD(P3.0)作為數(shù)據(jù)移位的輸入/輸出端,而由TXD(P3.1)端輸出移位時(shí)鐘脈沖。移位數(shù)據(jù)的發(fā)送和接收均以8位為一幀,不設(shè)起始位和停止位,無論輸入/輸出,均低位在前高位在后。89C55的通用I/O口P1作為顯示數(shù)據(jù)和二進(jìn)制行號(hào)的公用輸出口。兩種數(shù)據(jù)的輸出在時(shí)間上是錯(cuò)開的。P1口的低4位與行驅(qū)動(dòng)器相連,送出二進(jìn)制的行選信號(hào);P1.5~P1.7口則用來發(fā)送控制信號(hào)。P0和P2口空著,

93、在有必要的時(shí)候可以擴(kuò)展系統(tǒng)的ROM和RAM。</p><p>  2.3 列驅(qū)動(dòng)電路</p><p>  列驅(qū)動(dòng)電路由集成電路74HC595構(gòu)成,它具有一個(gè)8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù),即達(dá)到重疊處理的目的。 </p><p>  74HC59

94、5的外形及內(nèi)部結(jié)構(gòu)如圖2-5所示。它的輸入側(cè)有8個(gè)串行移位寄存器,每個(gè)移位寄存器的輸出都連接一個(gè)輸出鎖存器。引腳SI是串行數(shù)據(jù)的輸入端。引腳SCK是移位寄存器的移位時(shí)鐘脈沖,在其上升沿發(fā)生移位,并將SI的下一個(gè)數(shù)據(jù)打入最低位。移位后的各位信號(hào)出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCK是輸出鎖存器的打入信號(hào),其上升沿將移位寄存器的輸出打入到輸出鎖存器。引腳G是輸出三態(tài)門的開放信號(hào),只有當(dāng)其為低時(shí)鎖存器的輸出才開放,否則為

95、高阻態(tài)。SCLR信號(hào)是移位寄存器的清零輸入端,當(dāng)其為低時(shí)移位寄存器的輸出全部為零。由于SCK和RCK兩個(gè)信號(hào)是互相獨(dú)立的,所以能夠做到輸入串行移位與輸出鎖存互不干擾。芯片的輸出端為QA~QH,最高位QH可作為多片74HC595級(jí)聯(lián)應(yīng)用時(shí),向上一級(jí)的級(jí)聯(lián)輸出。但因QH受輸出鎖存器打入控制,所以還從輸出鎖存器前引出了QH’,作為與移位寄存器完全同步的級(jí)聯(lián)輸出。 </p><p>  2.4 行驅(qū)動(dòng)電路</p&

96、gt;<p>  2.4.1 行驅(qū)動(dòng)芯片74HC154 介紹</p><p>  譯碼器是一個(gè)多輸入、多輸出的組合邏輯電路。其功能是將給定的輸入碼組進(jìn)行“翻譯”,變換成對(duì)應(yīng)的輸入信號(hào),對(duì)每一種可能的輸入組合,使輸出通道中相應(yīng)的一路有信號(hào)輸出,一個(gè)且僅一個(gè)輸出信號(hào)為有效電位。74HC154為變量譯碼器,也稱二進(jìn)制譯碼器,它是一種四線—十六線譯碼器, 譯碼的輸入端有4個(gè),輸出端有24=16個(gè),并有兩個(gè)

97、選通端(使能端),它的管腳形式如圖2-6所示,當(dāng)選通端1、2均為低電平時(shí),譯碼器處于工作狀態(tài),可將地址輸入端(A0~A3)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端以低電平譯出。否則,譯碼器被禁止?!珵樽g碼輸出端,輸出是低電平有效,即在選通時(shí),每輸入一個(gè)二進(jìn)制代碼將使對(duì)應(yīng)的一個(gè)輸出端為低電平,而其它輸出端均為高電平的無效信號(hào),也可以說對(duì)應(yīng)的輸出端被“譯中”。74HC154譯碼器的真值表如表2.2所示:</p><p>  從

98、真值表可知,每組4個(gè)變量輸入,在16個(gè)輸出中只有一個(gè)引腳為“0”(且正好與輸入代碼是一一對(duì)應(yīng)),其余15個(gè)全為“1”,這種譯碼輸出稱為低電平有效;四線—十六線譯碼器邏輯形式為:</p><p>  ,,,,,,,,,,,,,,,。</p><p>  2.4.2 行驅(qū)動(dòng)電路</p><p>  行驅(qū)動(dòng)電路相對(duì)簡單。行選通信號(hào)來源于單片機(jī)按照時(shí)序要求所給出的二進(jìn)制信

99、號(hào),每次更新行號(hào)(開始掃描新的一行)時(shí),由單片機(jī)輸出4位二進(jìn)制行號(hào),行號(hào)經(jīng)4/16線譯碼器譯碼后,生成16條行選通信號(hào)線,再經(jīng)過驅(qū)動(dòng)器驅(qū)動(dòng)對(duì)應(yīng)的行線。采用譯碼器的方案,還可以保證同一時(shí)刻只選通一條行線,從而達(dá)到顯示的穩(wěn)定性。行驅(qū)動(dòng)電路原理如圖2-7所示:</p><p>  行選通信號(hào)從74HC154的~端輸出,某一端輸出低電平即為有效,而其它端輸出均為高電平的信號(hào)無效。如端輸出低電平,此信號(hào)傳至相應(yīng)的PNP型三

100、極管Q1,此時(shí),三極管的基極為低電平,因此,發(fā)射結(jié)正向偏置,集電結(jié)反向偏置,三極管導(dǎo)通,其集電極再將高電平加于LED陣列的對(duì)應(yīng)的行上,即將此行選通;而同時(shí)74HC154的其它端輸出高電平而致使該行對(duì)應(yīng)的三極管截止,從而所對(duì)應(yīng)LED行線不被選通。行選通按順序從~,全部各行都選通一遍之后又重新開始,這就是行驅(qū)動(dòng)電路的逐行掃描過程。行信號(hào)A、B、C、D的順序變化范圍從0000、0001、0010、至l111,來一個(gè)選通信號(hào),行信號(hào)順序就變化一

101、次,其頻率由掃描電路決定。</p><p>  由于行驅(qū)動(dòng)電路一條行線上要帶動(dòng)16列的LED進(jìn)行顯示,按每一LED器件20mA電流計(jì)算,16個(gè)LED同時(shí)發(fā)光時(shí),就需要16×20=320mA的驅(qū)動(dòng)電流,選用三極管8550作為驅(qū)動(dòng)管可以在邏輯功能和驅(qū)動(dòng)能力上符合LED的驅(qū)動(dòng)要求。</p><p>  2.5 LED顯示屏電路</p><p>  LED顯示屏

102、是將發(fā)光二極管按行按列布置的,驅(qū)動(dòng)時(shí)也就按行按列驅(qū)動(dòng)。在掃描驅(qū)動(dòng)方式下可以按行掃描按列控制,當(dāng)然也可以按列掃描按行控制。LED顯示屏現(xiàn)多采用多塊8×8點(diǎn)陣顯示單元拼接而成。本文就是使用4塊SBM1388型號(hào)的實(shí)驗(yàn)?zāi)K組成16×16點(diǎn)陣,以滿足漢字顯示的要求。8×8 LED點(diǎn)陣是最基本的點(diǎn)陣顯示模塊,理解了8×8 LED點(diǎn)陣的工作原理就可以基本掌握LED點(diǎn)陣顯示技術(shù)。8×8點(diǎn)陣LED結(jié)構(gòu)如

103、圖2-8所示,其等效電路如圖2-9所示:</p><p>  從圖中(本圖的LED陣列采用共陽的接法)可以看出,8×8點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上。要實(shí)現(xiàn)顯示圖形或字體,只需考慮其顯示方式,通過編程控制各顯示點(diǎn)對(duì)應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。當(dāng)采用按行掃描按列控制的驅(qū)動(dòng)方式時(shí),LED顯示屏8行的同名列共用一套列驅(qū)動(dòng)器。行驅(qū)動(dòng)器

104、一行的行線連接到電源的一端,列驅(qū)動(dòng)器一列的列線連接到電源的另一端。應(yīng)用時(shí)還應(yīng)在各條行線或列線上接上限流電阻。掃描中控制電路將行線的1到 8輪流接通高電位,使連接到各該行的全部LED器件接通正電源,但具體那一個(gè)LED導(dǎo)通,還要看它的負(fù)電源是否接通,這就是列控制的任務(wù)了。當(dāng)對(duì)應(yīng)的某一列置0電平,則相應(yīng)的二極管就亮;反之則不亮。例如:如果想使屏幕左上角LED點(diǎn)亮,左下角LED熄滅的話,在掃描到第一行時(shí),第一列的電位就應(yīng)該為低,而掃描到第八行時(shí)

105、第一列的電位就應(yīng)該為高。這樣行線上只管一行一行的輪流導(dǎo)通,列線上進(jìn)行通斷控制,實(shí)現(xiàn)了行掃描列控制的驅(qū)動(dòng)方式。</p><p>  以上就是16×32點(diǎn)陣LED電子顯示屏系統(tǒng)硬件部分的各功能模塊分述,經(jīng)過合理的設(shè)計(jì)論證后和就可以整體結(jié)合在一起,再根據(jù)設(shè)計(jì)配備好各元器件實(shí)物,通過組裝后等在單片機(jī)的程序存儲(chǔ)器里放入編制好的程序即可成為一個(gè)完整的應(yīng)用系統(tǒng)。系統(tǒng)綜合電路原理圖見附錄一。</p>&l

106、t;p>  第三章 系統(tǒng)軟件部分設(shè)計(jì)</p><p>  在單片機(jī)系統(tǒng)中,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對(duì)其合理的調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要完成的任務(wù)。軟件的設(shè)計(jì)是設(shè)計(jì)控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在總體設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)RAM資源,劃分功能模塊,然后進(jìn)行主程序和各模塊程序的設(shè)計(jì),最后連接起來成為一個(gè)完整的應(yīng)用程序。</p><p>  在進(jìn)

107、行系統(tǒng)總體設(shè)計(jì)時(shí),曾經(jīng)規(guī)劃過軟件結(jié)構(gòu),但由于硬件系統(tǒng)尚未仔細(xì)確定,軟件結(jié)構(gòu)框圖十分粗糙,當(dāng)硬件設(shè)計(jì)接口擴(kuò)展及各功能模塊與CPU連接關(guān)系確定后,就能夠具體明確對(duì)軟件設(shè)計(jì)的要求。本設(shè)計(jì)的LED顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號(hào),使屏幕按設(shè)計(jì)的要求顯示。根據(jù)軟件分層次設(shè)計(jì)的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動(dòng)程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動(dòng)程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信

108、號(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)。</p><p>  從有利于實(shí)現(xiàn)語言的直觀,易于記憶和檢查,可讀性較好和使語言程序占用較少的單片機(jī)存儲(chǔ)空間,實(shí)時(shí)處理系統(tǒng)可以快速的執(zhí)行指令的角度考慮,本設(shè)計(jì)中顯示屏程序采用匯編語言編寫。</p><p>  3.1 系統(tǒng)

109、主程序</p><p>  系統(tǒng)主程序的總體結(jié)構(gòu)如圖3-1所示。系統(tǒng)的主程序開始以后,首先是對(duì)系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷和端口;然后LED顯示屏進(jìn)入開機(jī)狀態(tài),轉(zhuǎn)入正常的顯示。首先是顯示時(shí)間,按鍵有4個(gè)。</p><p>  選擇,調(diào)試,加,減;有時(shí)間,鬧鐘設(shè)置,溫度,文字顯示4種選擇;時(shí)間調(diào)整(加,減),文字走動(dòng)(快,慢)。</p><p>  系統(tǒng)

110、程序結(jié)構(gòu)屬中斷方式,絕大多數(shù)功能在中斷服務(wù)子程序中完成。根據(jù)總體結(jié)構(gòu),可將程序劃分為幾個(gè)功能化模塊:串行口中斷服務(wù)程序、多字滾動(dòng)顯示子程序、單字顯示子程序、掃描程序。各個(gè)模塊可進(jìn)行獨(dú)立設(shè)計(jì)、調(diào)試和查錯(cuò),最終再連接成一個(gè)整體。這樣可方便程序調(diào)用,程序整體層次清晰,結(jié)構(gòu)一目了然,方便閱讀。</p><p>  3.2 顯示驅(qū)動(dòng)程序</p><p>  圖3-2為顯示驅(qū)動(dòng)程序(顯示屏掃描函數(shù))

111、流程圖。根據(jù)流程圖可以編寫出相應(yīng)的顯示程序。顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對(duì)定時(shí)器T0重新賦初值,以保證顯示屏刷</p><p>  新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計(jì)算公式如下:</p><p>  刷新率(幀頻)=×T0溢出率</p><p><b>  =×</b></p><p>

112、;  其中f為晶振頻率,t為定時(shí)器T0初值(工作在16位定時(shí)器模式)。</p><p><b>  T0初值=2-</b></p><p>  其中N與工作方式有關(guān),本設(shè)計(jì)定時(shí)/計(jì)數(shù)器工作于方式1,如圖3-3所示,方式1構(gòu)成一個(gè)16位定時(shí)計(jì)數(shù)器,即N=16。</p><p>  方式1最大計(jì)數(shù)值為216=65536 ,若fosc=12MHz,則

113、定時(shí)時(shí)間范圍為1~65536μs。</p><p>  機(jī)周時(shí)間與主振頻率有關(guān),機(jī)器周期是時(shí)鐘周期的12倍,因此,機(jī)周時(shí)間=12/ fosc。當(dāng)fosc=12MHz時(shí),1機(jī)周=1μs。</p><p>  然后顯示驅(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ù)打

114、入輸出鎖存器并鎖存,然后再輸出新的行號(hào),重新打開顯示。顯示程序給出了各控制信號(hào)和顯示數(shù)據(jù),其作用及相互配合關(guān)系均已在硬件部分作過介紹,相應(yīng)的程序部分在清單的注釋區(qū)內(nèi)分別進(jìn)行了說明,在此不再一一詳述。系統(tǒng)程序清單見附錄二。</p><p>  第四章 調(diào)試及性能分析</p><p>  一個(gè)單片機(jī)系統(tǒng)經(jīng)過總體設(shè)計(jì),完成了硬件和軟件設(shè)計(jì)開發(fā)。元器件安裝后,在系統(tǒng)的程序存儲(chǔ)器中寫入編制好的應(yīng)用

115、程序,系統(tǒng)即可運(yùn)行。但編制好的程序或焊接好的線路不能按預(yù)計(jì)的那樣正常工作是常見的事,多少會(huì)出現(xiàn)一些硬件、軟件上的錯(cuò)誤。這就需要通過調(diào)試來發(fā)現(xiàn)錯(cuò)誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。在允許的條件下,根據(jù)本設(shè)計(jì)系統(tǒng)的需求性首先采用在PC機(jī)上用模擬開發(fā)軟件進(jìn)行檢測和調(diào)試,然后進(jìn)行硬件的組裝與調(diào)試。</p><p><b>  4.1 系統(tǒng)調(diào)試</b></p><p>

116、  調(diào)試主要分為硬件調(diào)試和軟件調(diào)試: </p><p>  硬件調(diào)試:在焊接電路板的時(shí)候,應(yīng)該從最基本的最小系統(tǒng)開始,分模塊,逐個(gè)進(jìn)行焊接測試。在對(duì)各個(gè)硬件模塊進(jìn)行測試時(shí),要保證軟件正確的情況下去測試硬件,要不然發(fā)生錯(cuò)誤時(shí),不知道到底是哪一方出錯(cuò)了。當(dāng)然,在設(shè)計(jì)的過程中也存在著失誤和不足。 </p><p>  軟件調(diào)試:軟件部分是先參考書上的例子,然后自己根據(jù)硬件電路寫程序,

117、由于以前所學(xué)是C語言,所以這個(gè)系統(tǒng)在編寫程序過程中都采用C語言編寫。剛剛開始,編寫不會(huì)一次性通過,經(jīng)過仔細(xì)分析修改最后編譯成功。但是,在實(shí)際寫如S51中,LED顯示屏出現(xiàn)各種各樣的亂碼,通過再次認(rèn)真仔細(xì)分析多次修改程序后,程序能夠正常運(yùn)行。</p><p><b>  4.2 性能分析</b></p><p>  系統(tǒng)通過調(diào)試組裝后一般即可正常工作。LED顯示屏的刷

118、新頻率及顯示顯示效果是主要的性能指標(biāo)。顯示屏刷新率由定時(shí)器T0的溢出率和單片機(jī)的晶振頻率決定,表4-1給出了顯示屏采用的頻率及其對(duì)應(yīng)的定時(shí)器T0初值。</p><p>  從理論上來說,24Hz以上的刷新率就能看到連續(xù)穩(wěn)定的顯示,刷新率越高,顯示越穩(wěn)定,同時(shí)刷新率越高,顯示驅(qū)動(dòng)程序占用的CPU時(shí)間也越多。實(shí)驗(yàn)證明,在目測條件下刷新率40Hz以下的畫面看起來閃爍較嚴(yán)重,刷新率50Hz以上的已基本覺察不出畫面閃爍,刷

119、新率達(dá)到85Hz以上時(shí)再增加畫面閃爍沒有明顯改善。</p><p>  顯示效果處理的內(nèi)容和方法非常廣泛,根據(jù)需求可做變動(dòng),在這里不做具體討論。</p><p>  根據(jù)實(shí)踐證明,這個(gè)方案設(shè)計(jì)的16×32點(diǎn)陣LED圖文顯示屏,結(jié)構(gòu)合理,成本較低,且較容易擴(kuò)展成更大的顯示屏;顯示屏各點(diǎn)亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_;可用靜止、移入移出等多種顯示方式顯示圖形或文字。&

120、lt;/p><p><b>  結(jié)束語</b></p><p>  以上僅對(duì)LED顯示屏的結(jié)構(gòu)和驅(qū)動(dòng)、顯示電路原理作一詳細(xì)介紹和分析。LED點(diǎn)陣的應(yīng)用很廣,對(duì)于不同的應(yīng)用環(huán)境和應(yīng)用要求,可以有各種各樣的應(yīng)用方式,在這里就不做詳盡敘述。由于自己知識(shí)水平的局限和時(shí)間的倉促,設(shè)計(jì)中或還存在著一些不足,我真誠的接受老師們的批評(píng)和指正.。</p><p> 

121、 經(jīng)過了幾周的努力學(xué)習(xí)和工作,我終于完成了論文。從課題選擇、方案論證到具體設(shè)計(jì),每一步對(duì)我來說無疑是巨大的嘗試和挑戰(zhàn),我不斷地給自己提出新的問題,然后去論證、推翻,不懂就請(qǐng)教老師或同學(xué),再接著提出新的問題,在這個(gè)往復(fù)的過程中,我這篇稚嫩的設(shè)計(jì)日趨完善。每一次改進(jìn)我都收獲良多,雖然我的設(shè)計(jì)作品不是很成熟,而且借鑒了前人的很多資料,但我仍然心里有一種莫大的幸福感,因?yàn)槲覍?shí)實(shí)在在地走過了一個(gè)完整的設(shè)計(jì)所應(yīng)該走的每一個(gè)過程,并且享受了每一個(gè)過程

122、,更重要的是這個(gè)設(shè)計(jì)中我加入了自己鮮活的思想。</p><p>  在做這次畢業(yè)設(shè)計(jì)過程中使我學(xué)到了很多,加深了對(duì)數(shù)子電路的理解,驗(yàn)證了所學(xué)理論知識(shí),提高了基本的解決實(shí)際問題的能力,并增加了對(duì)電子設(shè)計(jì)方面的興趣。更重要的是我體會(huì)到不論做什么事都要真真正正用心去做,才會(huì)使自己更好的成長,沒有學(xué)習(xí)就不可能有實(shí)踐的能力,實(shí)踐才是最終的目的,沒有實(shí)踐就不會(huì)有自己的突破和創(chuàng)新,希望這次的經(jīng)歷能讓我在以后的工作和生活中不斷成

123、長與進(jìn)步。</p><p><b>  致 謝</b></p><p>  三年的時(shí)間即將過去,我們也即將走出校園,面向社會(huì)?;乜催^去,還真是懷念那段時(shí)光。在做畢業(yè)設(shè)計(jì)的過程中,曾得到了許多人的幫助,有我的老師,也有我的同學(xué)。畢業(yè)設(shè)計(jì)的成功特別是離不開老師的悉心指導(dǎo)和關(guān)懷,也離不開在學(xué)習(xí)工作中不斷給予我鼓勵(lì)和幫助的同學(xué)。在此,謹(jǐn)向**老師以及幫助過我的同學(xué)以誠摯的謝意

124、!</p><p>  最后,衷心感謝在百忙之中抽出寶貴時(shí)間對(duì)此論文進(jìn)行評(píng)閱與審議的老師們。感謝學(xué)校給我提供了一個(gè)展現(xiàn)自己的舞臺(tái),給我一次難得鍛煉的機(jī)會(huì),使得我的動(dòng)手能力和專業(yè)技能都有了很大的提高。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]張華林。電子設(shè)計(jì)競賽實(shí)訓(xùn)教程[M].北京:北京航空航天大學(xué)出版社,2007

125、.3</p><p>  [2]繆思恩.LED大屏幕顯示電路設(shè)計(jì)[J]。電子技術(shù)應(yīng)用,1996.8</p><p>  [3]李桂平.LED屏幕顯示器的設(shè)計(jì)[J].零陵師范學(xué)院學(xué)報(bào),2002.9</p><p>  [4] 李全利 編著 :《單片機(jī)原理及接口技術(shù)》(第2版).北京:高等教育出版社2004</p><p>  [5] 張志良 主

126、編 :《單片機(jī)原理及控制技術(shù)》(第2版).北京:機(jī)械工業(yè)出版社2005</p><p>  [6] 張毅剛 主編 :《單片機(jī)原理及應(yīng)用》.北京:高等教育出版社,2006</p><p>  [7] 李光飛 編著 :《單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)》(第2版).北京:北京航空航版,2004</p><p>  [8] 李 華 主編 :《MCS-51單片機(jī)實(shí)用接口技術(shù)》.北京

127、:北京航空航天出版社,1997</p><p>  [9] 徐仁貴 主編 :《微型計(jì)算機(jī)接口技術(shù)及應(yīng)用》.北京:機(jī)械工業(yè)出版社,1998</p><p><b>  */</b></p><p>  附錄二 系統(tǒng)程序清單</p><p>  以下為用C語言編寫的字符顯示控制程序:</p><p>

128、;  /* ****************************************</p><p>  * *</p><p>  * 單個(gè)16×32點(diǎn)陣電子屏字符顯示器 *</p><p>  * AT89C55

129、 12 MHz晶振 *</p><p>  ****************************************</p><p>  顯示字用查表法,不占內(nèi)存,字符用16 × 32共陽LED點(diǎn)陣,</p><p>  首先是顯示時(shí)間,按鍵有4個(gè)。選擇,調(diào)試,加,減;有時(shí)間,鬧鐘設(shè)置,溫度,文字顯示4種選擇;時(shí)間調(diào)整(加,減),

130、文字走動(dòng)(快,慢)。</p><p>  文字是:《面朝大海,春暖花開。。。。。。。。</p><p><b>  */</b></p><p>  #include<reg51.h></p><p>  #include<intrins.h></p><p>  #inc

131、lude<font.h> //字庫</p><p>  #include<ds1302.h> //DS1302時(shí)間</p><p>  #include<ds18b20.h> //DS18B20溫度</p><p>  #define uchar unsigned char</p&g

132、t;<p>  #define uint unsigned int</p><p>  #definelight 200//點(diǎn)陣亮度調(diào)節(jié);視情況而定,實(shí)際電路中請(qǐng)?jiān)O(shè)為120(效果好些)</p><p>  void delayms(uint n); //(n)ms延時(shí)子程序</p><p>  void

133、 delay(); //顯示掃描延時(shí)</p><p>  void DS1302_Initial (void); //初始化ds1302</p><p>  void initTimer(void); //初始化定時(shí)器</p><p>  void lie

134、(); //列控制函數(shù)</p><p>  void send8bit(unsigned int n); //發(fā)送字函數(shù)</p><p>  void mod_key(void);//顯示模式選擇函數(shù)</p><p>  void set_key(void);

135、 //顯示調(diào)整函數(shù)</p><p>  void read_clockS(void); //時(shí)鐘數(shù)據(jù)讀取函數(shù)</p><p>  void Set_hanzi(unsigned char se);//調(diào)節(jié)漢字函數(shù)</p><p>  void Set_time(unsigned char sel); //設(shè)置時(shí)間

136、函數(shù)</p><p>  void Set_naozhong(unsigned char sel);//鬧鐘設(shè)置函數(shù)</p><p>  void deal_naozhong(void);//鬧鐘處理函數(shù)</p><p>  void check_shijian(void); //讀取時(shí)間</p><p>  vo

137、id load_shijian(void); //將待顯示時(shí)間內(nèi)容存至緩沖區(qū)</p><p>  void check_wendu(void); //讀取溫度</p><p>  void load_wendu(void); //將待顯示溫度內(nèi)容存至緩沖區(qū)</p><p>  void load_hanzi

138、1(void);//將待顯示漢字1存至緩沖區(qū)</p><p>  void load_hanzi2(void);//將待顯示漢字2存至緩沖區(qū)</p><p>  //void load_tupian1(void);//將待顯示圖片1存至緩沖區(qū)</p><p>  void load_tupian2(void);//將待顯示圖片2存

139、至緩沖區(qū)</p><p>  void display(void); //顯示子程序</p><p>  sbit MOD=P3^2; //模式選擇鍵</p><p>  sbit SET=P3^3; //狀態(tài)調(diào)節(jié)鍵</p><p> 

140、 sbit ADD=P3^4; //加鍵</p><p>  sbit DEC=P3^5; //減鍵</p><p>  sbit speak=P2^3;//蜂鳴器</p><p>  sbit dat=P1^7; //595數(shù)據(jù)&l

141、t;/p><p>  sbit clock=P1^5; //595時(shí)鐘信號(hào)</p><p>  sbit so=P1^6; //595鎖存信號(hào)</p><p>  sbit gate=P1^4; //154門控信號(hào)</p

142、><p>  uchar count,q=0; //標(biāo)志位</p><p>  uchar disbuf[64];//顯示緩沖區(qū)</p><p>  uchar m,n,p,t;//緩沖區(qū)中間量</p><p>  uchar min,hour,sec,hour1,nh,nm

143、; //定義時(shí)間映射全局變量</p><p>  uchar dian1,dian2,dian3,dian4;//用于時(shí)間閃爍的冒號(hào)</p><p>  uchar mod_st=0;//調(diào)整選擇標(biāo)志0:正常走時(shí);1:溫度;2:字幕;3:動(dòng)畫</p><p>  uchar set_st=0;

144、 //顯示調(diào)整標(biāo)志0:</p><p>  uchar mod_key_st=0;//模式標(biāo)志,為1則調(diào)用一次MOD鍵處理函數(shù)</p><p>  uchar set_key_st=0;//設(shè)置標(biāo)志,為1則調(diào)用一次SET鍵處理函數(shù)</p><p>  uchar nz; //鬧鐘開啟關(guān)閉標(biāo)志 nz=0開;nz=1

145、關(guān)</p><p>  uchar k=1,s=1,ss=1;//秒閃爍標(biāo)志,調(diào)時(shí)閃爍標(biāo)志,調(diào)鬧鐘秒不閃爍標(biāo)志</p><p>  uchar x,y; //時(shí)基便于從某種狀態(tài)中自動(dòng)還原</p><p>  uint z,b,f,c,g;//調(diào)時(shí)自動(dòng)恢復(fù)標(biāo)志;字幕顯示速度;報(bào)警時(shí)間;字幕顯示速度標(biāo)志;圖片顯示速度標(biāo)志&

146、lt;/p><p>  uchar speed=7;//字幕顯示速度</p><p><b>  /**主函數(shù)**/</b></p><p>  void main()</p><p><b>  { </b></p><p>  nh=8;nm=0;

147、 //鬧鐘初始時(shí)間設(shè)定</p><p>  speak=1;//關(guān)蜂鳴器</p><p>  gate=1; //關(guān)閉顯示,防止花屏</p><p>  delayms(500);//等待芯片復(fù)位,目的是穩(wěn)定檢測是否需要初始化</p><p>  

148、while(SET==0)//通電前按下SET鍵不放,接通電源時(shí)便初始化時(shí)間信息</p><p><b>  {</b></p><p>  DS1302_Initial();</p><p><b>  }</b></p><p>  initTimer();//初始化定時(shí)

149、器</p><p>  TR0=1;//開啟定時(shí)器0</p><p>  ET0=1;//允許T0中斷</p><p>  EA=1;//開中斷總開關(guān)</p><p>  IT0=1;//開啟外部中斷0</p><p><b>  EX0=1;&

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論