版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 電子系統(tǒng)項(xiàng)目設(shè)計總結(jié)報告</p><p> 題 目:基于LED點(diǎn)陣顯示屏的廣告墻設(shè)計</p><p> 學(xué) 院:物理與電子工程學(xué)院 </p><p> 專 業(yè):電子信息工程 </p><p><b> 目 錄</b>
2、</p><p><b> 第一章 摘要1</b></p><p> 第二章 系統(tǒng)方案論證2</p><p> 2.1 需要實(shí)現(xiàn)的功能2</p><p> 2.2 LED顯示特點(diǎn)2</p><p> 2.3 設(shè)計方案論證3</p><p>
3、2.3.1 顯示模式方案3</p><p> 2.3.2 數(shù)據(jù)傳輸方案4</p><p> 第三章 關(guān)鍵電路設(shè)計5</p><p> 3.1 電源設(shè)計5</p><p> 3.2 單片機(jī)系統(tǒng)及外圍電路6</p><p> 3.2.1 單片機(jī)的選擇6</p><p&g
4、t; 3.2.2 AT89C51芯片介紹6</p><p> 3.2.3 單片機(jī)系統(tǒng)外圍電路9</p><p> 3.3 列驅(qū)動電路10</p><p> 3.4 行驅(qū)動電路12</p><p> 3.4.1 行驅(qū)動芯片74HC154 介紹12</p><p> 3.4.2 行驅(qū)動電路
5、14</p><p> 3.5 LED顯示屏電路16</p><p> 第四章 軟件流程18</p><p> 4.1 系統(tǒng)主程序18</p><p> 4.2 顯示驅(qū)動程序19</p><p> 第五章 系統(tǒng)測試及結(jié)果分析21</p><p> 5.1 軟件
6、調(diào)試21</p><p> 5.2 硬件調(diào)試25</p><p> 5.3 性能分析25</p><p> 第六章 理論分析計算26</p><p> 第七章 系統(tǒng)功能及使用方法27</p><p><b> 結(jié)束語28</b></p><p>
7、; 附錄一 實(shí)物照片、電路圖、PCB圖、元器件清單29</p><p> 附錄二 系統(tǒng)程序源代碼33</p><p> 附錄三 用戶使用手冊39</p><p><b> 參考文獻(xiàn)40</b></p><p><b> 第一章 摘要</b></p><p
8、> 本設(shè)計是一16×16點(diǎn)陣LED電子顯示屏的設(shè)計。</p><p> 整機(jī)以美國ATMEL 公司生產(chǎn)的40腳單片機(jī)AT89C51為核心,介紹了以它為控制系統(tǒng)的LED點(diǎn)陣電子顯示屏的動態(tài)設(shè)計和開發(fā)過程。通過該芯片控制一個行驅(qū)動器 74HC154和兩個列驅(qū)動器74HC595來驅(qū)動顯示屏顯示。該電子顯示屏可以顯示各種文字或單色圖像,全屏能顯示1個漢字,采用16*16點(diǎn)陣LED顯示模塊來組成16
9、215;16點(diǎn)陣顯示模式。顯示采用動態(tài)顯示,使得圖形或文字能夠?qū)崿F(xiàn)靜止、移入移出等多種顯示方式。文中詳細(xì)介紹了LED點(diǎn)陣顯示的硬件設(shè)計思路、硬件電路各個部分的功能及原理、相應(yīng)軟件的程序設(shè)計,以及使用說明等。</p><p> 單片機(jī)控制系統(tǒng)程序采用C語言進(jìn)行編輯,通過編程控制各顯示點(diǎn)對應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。所顯示字符的點(diǎn)陣數(shù)據(jù)可以自行編寫(即直接點(diǎn)陣畫圖),也可從標(biāo)準(zhǔn)字庫中
10、提取。</p><p> LED顯示以其組構(gòu)方式靈活、顯示穩(wěn)定、功耗低、壽命長、技術(shù)成熟、成本低廉等特點(diǎn)在車站、證券所、運(yùn)動場館、交通干道及各種室內(nèi)/外顯示場合的信息發(fā)布,公益宣傳,環(huán)境參數(shù)實(shí)時,重大活動倒計時等等得到廣泛的應(yīng)用。</p><p> 經(jīng)實(shí)踐證明,該系統(tǒng)顯示誤差小,性能穩(wěn)定,結(jié)構(gòu)合理,擴(kuò)展能力強(qiáng)。</p><p> 關(guān)鍵詞:AT89C51單片機(jī);
11、 LED; 點(diǎn)陣顯示; 動態(tài)顯示; 匯編語言。</p><p> 第二章 系統(tǒng)方案論證</p><p> 2.1 需要實(shí)現(xiàn)的功能</p><p> 設(shè)計一個室內(nèi)用16×16點(diǎn)陣LED圖文顯示屏,要求在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形或文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。</p
12、><p> 2.2 LED顯示特點(diǎn)</p><p> LED發(fā)光燈可以分為單色發(fā)光燈、雙色發(fā)光燈、三色發(fā)光燈、面發(fā)光燈、閃爍發(fā)光燈、電壓型發(fā)光燈等多種類型。按照發(fā)光燈強(qiáng)度又可以分為普通亮度發(fā)光燈、高亮度發(fā)光燈、超高亮度發(fā)光燈等。這種單個的發(fā)光燈適宜用做指示燈,如電源指示、電路狀態(tài)指示燈,進(jìn)而對能夠轉(zhuǎn)變成電信號的各種物理量進(jìn)行指示。也可以用多個LED發(fā)光燈組成固定的字符或圖形進(jìn)行顯示,如大
13、型劇場會堂的出入口及洗手間的顯示。和很多應(yīng)用術(shù)語一樣,LED圖文顯示屏并沒有一個公認(rèn)的嚴(yán)格的定義,一般把顯示圖形和/或文字的LED顯示屏稱為圖文屏。這里所說的圖形,是指由單一亮度線條組成的任意圖形,以便于不同亮度(灰度)點(diǎn)陣組成的圖像相區(qū)別。圖文顯示屏的主要特征是只控制LED點(diǎn)陣中各發(fā)光器件的通斷(發(fā)光或熄滅),而不控制LED的發(fā)光強(qiáng)弱。LED圖文顯示屏的外觀可以做成條形,叫做條形圖文顯示屏(簡稱條屏),也可以按一定高度比例做成矩形的平
14、面圖文顯示屏。其實(shí)條屏只不過是其寬度遠(yuǎn)大于高度的平面顯示屏,在顯示與控制的原理上并無區(qū)別。 從理論上說,不論顯示圖形還是文字,都是控制與組成這些圖形或文字的各個點(diǎn)所在位置相對應(yīng)的LED器件發(fā)光。通常事先把需要顯示的</p><p> 點(diǎn)陣顯示方式適應(yīng)信息變化的優(yōu)點(diǎn),是以點(diǎn)陣顯示器的價格和其復(fù)雜的控制電路為代價的。點(diǎn)陣顯示器在整個顯示單元的所有位置上都布置了LED器件,而像數(shù)碼管一類的顯示器件只在需要發(fā)
15、光的七段位置上布置LED器件,其它位置是空白的。因此,點(diǎn)陣顯示器在相同面積情況下,價格要貴些。但是,數(shù)碼管可顯示的信息有限,只有0~9或單個的英文字符,由于組合形成的字符不多,所以其顯示數(shù)據(jù)和控制電路都比較簡單。點(diǎn)陣顯示器則不然,它要對點(diǎn)陣上全部LED進(jìn)行控制,并能生成所有可能顯示的圖形文字,其顯示數(shù)據(jù)和控制電路自然要復(fù)雜得多。因此,根據(jù)不同的場合,不同的顯示特點(diǎn)和格式可以分別采用數(shù)碼管器件或點(diǎn)陣顯示方式,有的情況可以采用兩者搭配的混合
16、屏顯示方式。 圖文顯示屏的顏色,有單色、雙色、和多色幾種。最常用的是單色圖文屏。單色屏多使用紅色、橘紅色或橙色LED點(diǎn)陣單元。雙色圖文屏和多色圖文屏,在LED點(diǎn)陣的每一個“點(diǎn)”上布置有兩個或多個不同顏色的LED發(fā)光器件。換句話說,對應(yīng)于每種顏色都有自己的顯示矩陣。顯示的時候,各顏色的顯示點(diǎn)陣是分開控制的。事先設(shè)計好各種顏色的顯示數(shù)據(jù),顯示時分別送到各自的顯示點(diǎn)陣,即可實(shí)現(xiàn)預(yù)期
17、</p><p> 2.3 設(shè)計方案論證 </p><p> 2.3.1 顯示模式方案</p><p> 為了吸引觀眾增強(qiáng)顯示效果,可以有多種顯示模式,最簡單的顯示模式是靜態(tài)顯示。這里所說的“靜態(tài)顯示模式”不同于靜態(tài)驅(qū)動方式。與靜態(tài)顯示模式相對應(yīng),就有各種動態(tài)顯示模式,它們所顯示的圖文都是能夠動的。按照圖文運(yùn)動的特點(diǎn)又可以分為閃爍、平移、旋轉(zhuǎn)、縮放等多種顯
18、示模式。產(chǎn)生不同顯示模式的方法,并不意味著一定要重新編寫顯示數(shù)據(jù),可以通過一定的算法從原來的顯示數(shù)據(jù)直接生成。例如,按順序調(diào)整行號,可以使顯示圖文產(chǎn)生上下平移;而順序調(diào)整列顯示數(shù)據(jù)的位置,就可以達(dá)到左右平移的目的;同時調(diào)整行列順序,就能得到對角線平移的效果。其它模式的數(shù)據(jù)刷新,也可找到相應(yīng)的算法。不過當(dāng)算法太復(fù)雜,太浪費(fèi)時間的話,也可以考慮預(yù)先生成刷新數(shù)據(jù),存儲備用。刷新的時間控制,要考慮運(yùn)動圖形文字的顯示效果。刷新太慢,動感不顯著;刷
19、新太快了,中間過程看不清。一般刷新周期可控制在幾十毫秒范圍之內(nèi)。 </p><p> 同時控制LED顯示屏的各個發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動顯示方式。16×16的點(diǎn)陣共有256個發(fā)光二極管,顯然單片機(jī)沒有這么多端口,如果我們采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計算,16×16的點(diǎn)陣需要256/8=32個鎖存器。這個數(shù)字很龐大,因?yàn)槲覀儍H僅是16×16的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往
20、往要大得多,這樣在鎖存器上花的成本將是一個很龐大的數(shù)字。而且靜態(tài)顯示功耗大,顯示一個16×16的字的功耗為:16×16×10×5=12800mW=12.8W!普通電池根本無法驅(qū)動,要是組成大顯示屏那功耗將更驚人。因此雖然靜態(tài)顯示效果好,但是在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計,而采用另一種稱為動態(tài)掃描的顯示方法。</p><p> 動態(tài)掃描的意思簡單地說就是逐行輪流點(diǎn)
21、亮,這樣掃描驅(qū)動電路就可以實(shí)現(xiàn)多行(比如16行)的同名列共用一套列驅(qū)動器,每行有一個行驅(qū)動器,具體就16×16的點(diǎn)陣來說,把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽的接法),由行譯碼器給出的行選通信號,從第一行開始,按順序依次對各行進(jìn)行掃描(把該行與電源的一端接通)。另一方面,根據(jù)各列鎖存的數(shù)據(jù),確定相應(yīng)的列驅(qū)動器是否將該列與電源的另一端接通。接通的列,就在該行該列燃亮相應(yīng)的LED;未接通的列
22、所對應(yīng)的LED熄滅。當(dāng)一行的掃描持續(xù)時間結(jié)束后,該行燃亮的LED也就熄滅;下一行又以同樣的方法進(jìn)行顯示。全部各行都掃過一遍之后(一個掃描周期),又從第一行開始下一個周期的掃描。只要一個掃描輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就不容易感覺出閃爍現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形了。而且動態(tài)掃描方式功耗低,硬件成本低,每個LED都不是連續(xù)工作,因而還有利于延長LED的使用壽命。</p><p>
23、 2.3.2 數(shù)據(jù)傳輸方案</p><p> 采用掃描方式進(jìn)行顯示時,顯示數(shù)據(jù)通常存儲在單片機(jī)的存儲器中,按8位一個字節(jié)的形式順序排放。顯示時要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動器上去,這就存在一個顯示數(shù)據(jù)傳輸方式的問題。從控制電路到列驅(qū)動器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。顯然,采用并行方式時,從控制電路到列驅(qū)動器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時,并行傳輸?shù)姆桨甘遣豢扇〉摹?lt;/p
24、><p> 采用串行傳輸?shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅(qū)動器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)要經(jīng)過并行到串行和串行到并行兩次變換。首先,單片機(jī)從存儲器中讀出的8位并行數(shù)據(jù)要通過并串變換,按順序一位一位地輸出給列驅(qū)動器。與此同時,列驅(qū)動器中每一列都把當(dāng)前數(shù)據(jù)傳向后一列,并從前一列接收新數(shù)據(jù),一直到全部列數(shù)據(jù)都傳輸完為止。只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢螅@一行
25、的各列才能并行地進(jìn)行顯示。這樣,對于一行的顯示過程就可以分解列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個部分。對于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時間可能相當(dāng)長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響到LED的亮度。</p><p> 解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時,準(zhǔn)備下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有
26、鎖存功能。</p><p> 經(jīng)過上述分析,可以歸納出列驅(qū)動器電路應(yīng)具備的主要功能。對于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并出的移位功能;對于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時,串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會影響本行的顯示。圖2-1為顯示屏電路實(shí)現(xiàn)的結(jié)構(gòu)框圖。</p><p> 第三章 關(guān)鍵電路設(shè)計</p>
27、<p> 由于圖文屏的控制電路采用單片機(jī)方案,控制功能的實(shí)現(xiàn)應(yīng)在硬件和軟件兩方面進(jìn)行折中。單片機(jī)及相應(yīng)軟件,主要負(fù)責(zé)存儲(或生成)顯示數(shù)據(jù)、安排控制信號的定時與順序等。但是單片機(jī)的接口數(shù)量少,驅(qū)動能力不強(qiáng),必須擴(kuò)展一定的硬件電路,才能滿足顯示屏的需要。系統(tǒng)硬件部分電路大致上可以分成穩(wěn)壓電源、單片機(jī)系統(tǒng)及外圍電路、列驅(qū)動器電路、行驅(qū)動器電路和LED顯示屏電路五部分。</p><p><b>
28、 3.1 電源設(shè)計</b></p><p> 穩(wěn)壓電源的功能是把來自電網(wǎng)的220V交流電壓轉(zhuǎn)變?yōu)樗璧?、穩(wěn)定的直流電壓。它由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四個部分組成,如圖3-1所示:</p><p> + 電 源 + 整 流 + 濾 波 + 穩(wěn) 壓 +</p><p> u1
29、 u2 u3 uI U0</p><p> _ 變壓器 _ 電 路 _ 電 路 _ 電 路 _</p><p> u1 u2 u3 uI
30、 U0 </p><p> 0 t 0 t 0 t 0 t 0 t </p><p> 根據(jù)要求所確定的穩(wěn)壓電源的電路形式如圖3-2所示。圖中變壓器T將來自電網(wǎng)的220V交流電壓變換為整流電路所需要的7.5V交流電壓,再經(jīng)整流電橋(4個二極管)D1將交流電壓變換成脈動的直流電壓,隨后
31、電解電容器C1將脈動直流電壓中的大部分紋波加以濾除,以得到較為平滑的直流電壓。為了得到改善的紋波電壓,再將直流電壓通過電容C2,然后經(jīng)集成穩(wěn)壓器IC1穩(wěn)壓,在輸出端得到穩(wěn)定的5V直流電壓。這時,在輸出端接上電容C3,用以濾除輸出端的高頻信號,改善負(fù)載的瞬態(tài)響應(yīng),最后即可得到所需的、穩(wěn)定的直流電壓。電路最后接入的發(fā)光二極管用做電源指示燈。</p><p> 3.2 單片機(jī)系統(tǒng)及外圍電路</p>&
32、lt;p> 3.2.1 單片機(jī)的選擇</p><p> 單片機(jī)采用89C51或其兼容系列的芯片進(jìn)行控制,它負(fù)責(zé)控制整個電路以及相應(yīng)的程序的運(yùn)行、以及給屏體電路部分發(fā)送命令。這里我們選擇了內(nèi)含4K字節(jié)Flash的AT89C51,因?yàn)槲覀冎恍枰@示特定的圖形和文字,無需龐大的字庫,因此4K Flash已經(jīng)可以滿足字庫儲存的需求,不需要擴(kuò)展外存儲器。</p><p> 3.2.2
33、 AT89C51芯片介紹</p><p><b> AT89C51</b></p><p> AT89C51是美國ATMEL公司生產(chǎn)的8位Flash ROM單片機(jī)。其最突出的優(yōu)點(diǎn)是片內(nèi)ROM為Flash ROM,可擦寫1000次以上,應(yīng)用并不復(fù)雜的通用ROM寫入器就能方便的擦寫,讀取也很方便,價格低廉,具有在片程序ROM二級保密系統(tǒng)。因此可靈活應(yīng)用于各種控制領(lǐng)域。
34、AT89C51包含以下一些功能部件:</p><p> ?。?)一個8位CPU ;</p><p> ?。?)一個片內(nèi)振蕩器和時鐘電路;</p><p> ?。?)4KB Flash ROM ;</p><p> ?。?)128B 內(nèi)RAM;</p><p> ?。?)可尋址64KB的外ROM和外RAM控制電路;&l
35、t;/p><p> ?。?)兩個16位定時/計數(shù)器;</p><p> ?。?)21個特殊功能寄存器 ;</p><p> ?。?)4個8位并行I/O口;</p><p> ?。?)一個可編程全雙工串行口 ;</p><p> ?。?0)5個中斷源,可設(shè)置成2個優(yōu)先級。</p><p> AT89
36、C51單片機(jī)一般采用雙列直插DIP封裝,共40個引腳,圖3-3為其引腳排列圖。40個引腳大致可分為4類:電源、時鐘、控制各I/O引腳。</p><p><b> 一. 電源</b></p><p> Vcc——芯片電源,接+5V;GND——接地端。</p><p><b> 二. 時鐘</b></p>
37、<p> XTAL1、XTAL2——晶體振蕩電路反相輸入端和輸出端。</p><p><b> 三. 控制線</b></p><p> 控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,正常使用時是一種功能,在某種條件下是另一種功能。</p><p> 1.ALE/——地址鎖存允許/片內(nèi)EPROM編程脈沖。<
38、/p><p> ?。?)ALE功能:用來鎖存P0口送出的低八位地址。</p><p> AT89C51在并行擴(kuò)展外存儲器時,P0口用于分時傳送低8位地址和數(shù)據(jù)信號,且均為二進(jìn)制數(shù)。當(dāng)ALE信號有效時,P0口傳送的是低8位地址信號;ALE信號無效時,P0口傳送的是低8位地址信號。在ALE信號的下降沿,鎖定P0口傳送的內(nèi)容,即低8位地址信號。</p><p> 需要指出
39、的是,當(dāng)CPU不執(zhí)行訪問外RAM指令,ALE以時鐘振蕩頻率1/6的固定頻率輸出,因此ALE信號也可作為外部芯片CLK時鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時,ALE將跳過一個ALE脈沖。</p><p> (2)功能:片內(nèi)EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。</p><p> 2. ——外ROM讀選通信號。</p><p> 8
40、9C51讀外ROM時,每個機(jī)器周期內(nèi)兩次有效輸出??勺鳛橥釸OM芯片輸出允許的選通信號。在讀內(nèi)ROM或讀外RAM時,無效。</p><p> 3.RST/VPD——復(fù)位/備用電源。</p><p> (1)正常工作時,RST端為復(fù)位信號輸入端,只要在該引腳上連續(xù)保持兩個機(jī)器周期以上高電平,AT89C51芯片即實(shí)現(xiàn)復(fù)位操作,復(fù)位后一切從頭開始,CPU從0000H開始執(zhí)行指令。</p
41、><p> (2)VPD功能:在VCC掉電情況下,該引腳可接上備用電源,由VPD向片內(nèi)RAM供電,以保持片內(nèi)RAM中的數(shù)據(jù)不丟失。</p><p> 4./VPP——內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> ?。?)功能:正常工作時,為內(nèi)外ROM選擇端。AT89C51單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外。當(dāng)保持高電平時,
42、先訪問內(nèi)ROM,但當(dāng)PC值超過4KB時,將自動轉(zhuǎn)向執(zhí)行外ROM中的程序。當(dāng)保持低電平時,則只訪問外ROM,不管芯片內(nèi)有否內(nèi)ROM。</p><p> ?。?)VPP功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳用于施加編程電源。</p><p><b> 四. I/O引腳</b></p><p> AT89C51有P0、P1、P
43、2、P3 4個8位并行I/O端口,共32個引腳。</p><p> P0口是一組8位漏級開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能以吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫1時,又可作高阻抗輸入端用。在訪問外部程序和數(shù)據(jù)存儲器時,它是分時多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,在訪問期間激活了內(nèi)部的上拉電阻。在Flash編程時,P0端口接收指令字節(jié);而在驗(yàn)證程序時,則輸出指令字節(jié)
44、。驗(yàn)證時,要求外接上拉電阻。</p><p> P1 口是帶內(nèi)部上拉電阻的雙向I/O口,向P1口寫入1時P1口被內(nèi)部上拉為高電平,可用作輸入口。當(dāng)作為輸入腳時被外部信號拉低的P1口會因?yàn)閮?nèi)部上拉而輸出一個電流。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。</p><p> P2 口是帶內(nèi)部上拉電阻的雙向I/O口,向P2口寫入1時P2口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時
45、被外部拉低的P2口會因?yàn)閮?nèi)部上拉而輸出電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR指令)時,P2口送出高8位地址數(shù)據(jù),當(dāng)使用8位尋址方式(MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口發(fā)送P2特殊功能寄存器的內(nèi)容,在整個訪問期間不改變。Flash編程和程序校驗(yàn)時,P2也接收高位地址和一些控制信號。</p><p> P3 口是帶內(nèi)部上拉電阻的雙向I/O口,向P3口寫入1時P
46、3口被內(nèi)部上拉為高電平可用作輸入口,當(dāng)作為輸入腳時被外部拉低的P3口會因?yàn)閮?nèi)部上拉而輸出電流。P3口除了作為一般的I/O口線外,更重要的是它的第二功能,如表3.1所示:</p><p> 3.2.3 單片機(jī)系統(tǒng)外圍電路</p><p> 單片機(jī)系統(tǒng)外圍電路形式如圖3-4所示。單片機(jī)振蕩器反相放大器的輸入端(XTAL1)和輸出端(XTAL2)之間接上12MHz或更高頻率的晶振,以獲得較
47、高的刷新頻率,使顯示更穩(wěn)定。電容C4、C5是晶振的負(fù)載電容,主要起頻率微調(diào)和穩(wěn)定的作用。單片機(jī)的串行口工作在方式0下,作為同步移位寄存器使用,端口RXD(P3.0)作為數(shù)據(jù)移位的輸入/輸出端,而由TXD(P3.1)端輸出移位時鐘脈沖。移位數(shù)據(jù)的發(fā)送和接收均以8位為一幀,不設(shè)起始位和停止位,無論輸入/輸出,均低位在前高位在后。89C51的通用I/O口P1作為顯示數(shù)據(jù)和二進(jìn)制行號的公用輸出口。兩種數(shù)據(jù)的輸出在時間上是錯開的。P1口的低4位與
48、行驅(qū)動器相連,送出二進(jìn)制的行選信號;P1.5~P1.7口則用來發(fā)送控制信號。P0和P2口空著,在有必要的時候可以擴(kuò)展系統(tǒng)的ROM和RAM。</p><p> 3.3 列驅(qū)動電路</p><p> 列驅(qū)動電路由集成電路74HC595構(gòu)成,它具有一個8位串行輸入/輸出或者并行輸出的移位寄存器和一個8位輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在顯示本行各列數(shù)
49、據(jù)的同時,傳送下一行的列數(shù)據(jù),即達(dá)到重疊處理的目的。</p><p> 74HC595的管腳及內(nèi)部結(jié)構(gòu)形式如圖3-5所示。它的輸入側(cè)有8個串行移位寄存器,每個移位寄存器的輸出都連接一個輸出鎖存器。引腳SER是串行數(shù)據(jù)的輸入端。引腳SRCLK輸入移位寄存器的移位時鐘脈沖,在其上升沿發(fā)生移位,并將SER的下一個數(shù)據(jù)打入最低位。移位后的各位信號出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCLK是輸出鎖存器
50、的打入信號,其上升沿將移位寄存器的輸出打入到輸出鎖存器。引腳是輸出三態(tài)門的開放信號,只有當(dāng)其為低時鎖存器的輸出才開放,否則為高阻態(tài)。信號是移位寄存器的清零輸入端,當(dāng)其為低時移位寄存器的輸出全部為0,由于SRCLK和RCLK兩個信號是互相獨(dú)立的,所以能夠做到輸入串行移位與輸出鎖存互不干擾。芯片的輸出端為QA~QH,最高位QH可作為多片74HC595級連應(yīng)用時,向上一級的級連輸出。但因QH受輸出鎖存器打入控制,所以還從輸出鎖存器前引出了QH
51、′,作為與移位寄存器完全同步的級連輸出。移位寄存和輸出鎖存的時序波形如圖3-6所示:</p><p> 由74HC595組成的列驅(qū)動器示于圖3-7中。該圖由兩片74HC595組成16列的驅(qū)動,由16個行驅(qū)動器驅(qū)動16行。第一片列驅(qū)動器的SER端連接單片機(jī)輸出的串行列顯示數(shù)據(jù),其QH′端連接第二片的SER端,采用這樣的方法組成兩片的級連。兩片相應(yīng)的SRCLK、、RCLK端分別并聯(lián),作為統(tǒng)一的串行數(shù)據(jù)移位信號、串
52、行數(shù)據(jù)清除信號和輸出鎖存器打入信號。這樣的結(jié)構(gòu),使得各片串行移位能把16列的顯示數(shù)據(jù)依次輸入到相應(yīng)的移位寄存器輸出端。移位過程結(jié)束之后,控制器輸出RCLK打入信號,16列顯示數(shù)據(jù)一起打入相應(yīng)的輸出鎖存器。然后選通相應(yīng)的行,該行的各列就按照顯示數(shù)據(jù)的要求進(jìn)行顯示。</p><p> 3.4 行驅(qū)動電路</p><p> 3.4.1 行驅(qū)動芯片74HC154 介紹</p>
53、<p> 譯碼器是一個多輸入、多輸出的組合邏輯電路。其功能是將給定的輸入碼組進(jìn)行“翻譯”,變換成對應(yīng)的輸入信號,對每一種可能的輸入組合,使輸出通道中相應(yīng)的一路有信號輸出,一個且僅一個輸出信號為有效電位。74HC154為變量譯碼器,也稱二進(jìn)制譯碼器,它是一種四線—十六線譯碼器, 譯碼的輸入端有4個,輸出端有24=16個,并有兩個選通端(使能端),它的管腳形式如圖3-8所示,當(dāng)選通端1、2均為低電平時,譯碼器處于工作狀態(tài),可將
54、地址輸入端(A0~A3)的二進(jìn)制編碼在一個對應(yīng)的輸出端以低電平譯出。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平?!珵樽g碼輸出端,輸出是低電平有效,即在選通時,每輸入一個二進(jìn)制代碼將使對應(yīng)的一個輸出端為低電平,而其它輸出端均為高電平的無效信號,也可以說對應(yīng)的輸出端被“譯中”。74HC154譯碼器的真值表如表3.2所示:</p><p> 從真值表可知,每組4個變量輸入,在16個輸出中只有一個引腳為“0”(且正
55、好與輸入代碼是一一對應(yīng)),其余15個全為“1”,這種譯碼輸出稱為低電平有效;四線—十六線譯碼器邏輯形式為:</p><p> ,,,,,,,,,,,,,,,。</p><p> 3.4.2 行驅(qū)動電路</p><p> 行驅(qū)動電路相對簡單。行選通信號來源于單片機(jī)按照時序要求所給出的二進(jìn)制信號,每次更新行號(開始掃描新的一行)時,由單片機(jī)輸出4位二進(jìn)制行號,行
56、號經(jīng)4/16線譯碼器譯碼后,生成16條行選通信號線,再經(jīng)過驅(qū)動器驅(qū)動對應(yīng)的行線。采用譯碼器的方案,還可以保證同一時刻只選通一條行線,從而達(dá)到顯示的穩(wěn)定性。行驅(qū)動電路原理如圖3-9所示:</p><p> 行選通信號從74HC154的~端輸出,某一端輸出低電平即為有效,而其它端輸出均為高電平的信號無效。如端輸出低電平,此信號傳至相應(yīng)的PNP型三極管Q1,此時,三極管的基極為低電平,因此,發(fā)射結(jié)正向偏置,集電結(jié)反向
57、偏置,三極管導(dǎo)通,其集電極再將高電平加于LED陣列的對應(yīng)的行上,即將此行選通;而同時74HC154的其它端輸出高電平而致使該行對應(yīng)的三極管截止,從而所對應(yīng)LED行線不被選通。行選通按順序從~,全部各行都選通一遍之后又重新開始,這就是行驅(qū)動電路的逐行掃描過程。行信號A、B、C、D的順序變化范圍從0000、0001、0010、至l111,來一個選通信號,行信號順序就變化一次,其頻率由掃描電路決定。</p><p>
58、 由于行驅(qū)動電路一條行線上要帶動16列的LED進(jìn)行顯示,按每一LED器件20mA電流計算,16個LED同時發(fā)光時,就需要16×20=320mA的驅(qū)動電流,選用三極管8550作為驅(qū)動管可以在邏輯功能和驅(qū)動能力上符合LED的驅(qū)動要求。</p><p> 3.5 LED顯示屏電路</p><p> LED顯示屏是將發(fā)光二極管按行按列布置的,驅(qū)動時也就按行按列驅(qū)動。在掃描驅(qū)動方式下
59、可以按行掃描按列控制,當(dāng)然也可以按列掃描按行控制。LED顯示屏現(xiàn)多采用一塊16×16點(diǎn)陣顯示,以滿足漢字顯示的要求。16×16 LED點(diǎn)陣是基本的點(diǎn)陣顯示模塊,理解了16×16 LED點(diǎn)陣的工作原理就可以基本掌握LED點(diǎn)陣顯示技術(shù)。16×16點(diǎn)陣LED結(jié)構(gòu)如圖3-10所示:</p><p> 從圖中(本圖的LED陣列采用共陽的接法)可以看出,16×16點(diǎn)陣共需要
60、256個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上。要實(shí)現(xiàn)顯示圖形或字體,只需考慮其顯示方式,通過編程控制各顯示點(diǎn)對應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。當(dāng)采用按行掃描按列控制的驅(qū)動方式時,LED顯示屏8行的同名列共用一套列驅(qū)動器。行驅(qū)動器一行的行線連接到電源的一端,列驅(qū)動器一列的列線連接到電源的另一端。應(yīng)用時還應(yīng)在各條行線或列線上接上限流電阻。掃描中控制電路將行線的1到 8輪流接通高電位,使連接
61、到各該行的全部LED器件接通正電源,但具體那一個LED導(dǎo)通,還要看它的負(fù)電源是否接通,這就是列控制的任務(wù)了。當(dāng)對應(yīng)的某一列置0電平,則相應(yīng)的二極管就亮;反之則不亮。例如:如果想使屏幕左上角LED點(diǎn)亮,左下角LED熄滅的話,在掃描到第一行時,第一列的電位就應(yīng)該為低,而掃描到第八行時第一列的電位就應(yīng)該為高。這樣行線上只管一行一行的輪流導(dǎo)通,列線上進(jìn)行通斷控制,實(shí)現(xiàn)了行掃描列控制的驅(qū)動方式。</p><p><b
62、> 第四章 軟件流程</b></p><p> 在單片機(jī)系統(tǒng)中,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對其合理的調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要完成的任務(wù)。軟件的設(shè)計是設(shè)計控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在總體設(shè)計和硬件設(shè)計的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)RAM資源,劃分功能模塊,然后進(jìn)行主程序和各模塊程序的設(shè)計,最后連接起來成為一個完整的應(yīng)用程序。</p><p>
63、 在進(jìn)行系統(tǒng)總體設(shè)計時,曾經(jīng)規(guī)劃過軟件結(jié)構(gòu),但由于硬件系統(tǒng)尚未仔細(xì)確定,軟件結(jié)構(gòu)框圖十分粗糙,當(dāng)硬件設(shè)計接口擴(kuò)展及各功能模塊與CPU連接關(guān)系確定后,就能夠具體明確對軟件設(shè)計的要求。本設(shè)計的LED顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計的要求顯示。根據(jù)軟件分層次設(shè)計的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行
64、掃描信號和其它控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動程序由定時器T0中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實(shí)現(xiàn)。</p><p> 從有利于實(shí)現(xiàn)語言的直觀,易于記憶和檢查,可讀性較好和使語言程序占用較少的單片機(jī)存儲空間,實(shí)時處理系統(tǒng)可以快速的執(zhí)行指令的角度考慮,本設(shè)計中顯示屏程序采用C語言編寫。</p><p> 4.1
65、系統(tǒng)主程序</p><p> 系統(tǒng)主程序的總體結(jié)構(gòu)如圖4-1所示。系統(tǒng)的主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷和端口;然后LED顯示屏進(jìn)入開機(jī)狀態(tài),轉(zhuǎn)入正常的顯示。首先是向上滾動顯示“單片機(jī)是工業(yè)中最基本的應(yīng)用方式”15個漢字,每個字停留時間約1.6s;接著再向上滾動顯示“我愛單片機(jī)”這5個漢字。由于單片機(jī)沒有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示效果。</p&g
66、t;<p> 系統(tǒng)程序結(jié)構(gòu)屬中斷方式,絕大多數(shù)功能在中斷服務(wù)子程序中完成。根據(jù)總體結(jié)構(gòu),可將程序劃分為幾個功能化模塊:串行口中斷服務(wù)程序、多字滾動顯示子程序、單字顯示子程序、掃描程序。各個模塊可進(jìn)行獨(dú)立設(shè)計、調(diào)試和查錯,最終再連接成一個整體。這樣可方便程序調(diào)用,程序整體層次清晰,結(jié)構(gòu)一目了然,方便閱讀。</p><p> 4.2 顯示驅(qū)動程序</p><p> 圖4-
67、2為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖。根據(jù)流程圖可以編寫出相應(yīng)的顯示程序。顯示驅(qū)動程序在進(jìn)入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷</p><p> 新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀</p><p><b> 頻)計算公式如下:</b></p><p> 刷新率(幀頻)=×T0溢出率</p>
68、<p><b> =×</b></p><p> 其中f為晶振頻率,t為定時器T0初值(工作在16位定時器模式)。</p><p><b> T0初值=2-</b></p><p> 其中N與工作方式有關(guān),本設(shè)計定時/計數(shù)器工作于方式1,如圖4-3所示,方式1構(gòu)成一個16位定時計數(shù)器,即N=
69、16。</p><p> 方式1最大計數(shù)值為216=65536 ,若fosc=12MHz,則定時時間范圍為1~65536μs。</p><p> 機(jī)周時間與主振頻率有關(guān),機(jī)器周期是時鐘周期的12倍,因此,機(jī)周時間=12/ fosc。當(dāng)fosc=12MHz時,1機(jī)周=1μs。</p><p> 然后顯示驅(qū)動程序查詢當(dāng)前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)
70、據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。顯示程序給出了各控制信號和顯示數(shù)據(jù),其作用及相互配合關(guān)系均已在硬件部分作過介紹,相應(yīng)的程序部分在清單的注釋區(qū)內(nèi)分別進(jìn)行了說明,在此不再一一詳述。系統(tǒng)程序清單見附錄二。</p><p> 第五章 系統(tǒng)測試及結(jié)果分析</p>&l
71、t;p> 一個單片機(jī)系統(tǒng)經(jīng)過總體設(shè)計,完成了硬件和軟件設(shè)計開發(fā)。元器件安裝后,在系統(tǒng)的程序存儲器中寫入編制好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。但編制好的程序或焊接好的線路不能按預(yù)計的那樣正常工作是常見的事,多少會出現(xiàn)一些硬件、軟件上的錯誤。這就需要通過調(diào)試來發(fā)現(xiàn)錯誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。在允許的條件下,根據(jù)本設(shè)計系統(tǒng)的需求性首先采用在PC機(jī)上用模擬開發(fā)軟件進(jìn)行檢測和調(diào)試,然后進(jìn)行硬件的組裝與調(diào)試。</p>
72、<p><b> 5.1 軟件調(diào)試</b></p><p> 軟件調(diào)試采用脫機(jī)調(diào)試的方法,即完全用仿真器軟件在PC機(jī)上對目標(biāo)電路原理圖和程序進(jìn)行檢測和調(diào)試。調(diào)試過程中單片機(jī)相應(yīng)輸入端由通用鍵盤和鼠標(biāo)設(shè)定,運(yùn)行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在CRT指定的窗口區(qū)域顯示出來,以確定程序運(yùn)行有無錯誤。調(diào)試可按下列步驟進(jìn)行:</p><p><b
73、> 一. 目標(biāo)程序糾錯</b></p><p> 該階段工作通常在目標(biāo)程序編輯時就完成。一般來說,仿真器軟件能給用戶輸入的程序指令糾錯,包括書寫格式、標(biāo)號未定義或多重定義、轉(zhuǎn)移地址溢出等錯誤。</p><p> 二. 子程序功能調(diào)試</p><p> 程序設(shè)計通常采用模塊程序設(shè)計,調(diào)試時可對一個個子程序分別進(jìn)行調(diào)試,設(shè)置好入口條件,然后采用
74、單步運(yùn)行或斷點(diǎn)運(yùn)行方式,檢查系統(tǒng)CPU現(xiàn)場、RAM和I/O口狀態(tài),看程序執(zhí)行結(jié)果是否符合設(shè)計要求。</p><p> 三. 整體程序綜合調(diào)試</p><p> 即把各子程序整體連起來進(jìn)入到綜合電路調(diào)試,看是否能實(shí)現(xiàn)預(yù)計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運(yùn)行時是否破壞現(xiàn)場,數(shù)據(jù)緩沖單元是否發(fā)生沖突,標(biāo)志位的建立和清除在設(shè)計上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。
75、</p><p> 用軟件模擬器調(diào)試不需任何在線仿真器,也不需要用戶樣機(jī),直接就可以在PC機(jī)上開發(fā)和調(diào)試。調(diào)試和修改完畢后,對于實(shí)時性要求不高的應(yīng)用系統(tǒng)可以直接使用編程器將軟件固化在目標(biāo)系統(tǒng)ROM中,然后獨(dú)立投入運(yùn)行。</p><p> 軟件調(diào)試結(jié)果仿真截圖:</p><p><b> 5.2 硬件調(diào)試</b></p>&
76、lt;p> 單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障在軟件調(diào)試時才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:</p><p><b> 一. 目測檢查</b></p><p> 根據(jù)硬件邏輯設(shè)計圖,仔細(xì)檢查樣機(jī)線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。</
77、p><p><b> 二. 電源調(diào)試</b></p><p> 樣機(jī)的第一次通電測試很重要,若樣機(jī)中存在電源故障,則加電后將造成器件損壞。調(diào)試的方法有兩種:一種是斷開樣機(jī)穩(wěn)壓電源的輸出端檢查空載時電源工作情況;另一種是拔下樣機(jī)上的主要集成芯片,檢查電源的負(fù)載能力(用假負(fù)載)。確保電源無故障并性能符合設(shè)計要求。</p><p><b>
78、 三. 通電檢查</b></p><p> 在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個電流表。若接通后電流很大,必須立即切斷電源。電源大得超出正常范圍,說明電路中有短路或故障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元器件損壞、裝配錯誤引起的電流異常。</p><p> 四. 檢查相應(yīng)芯片的邏輯關(guān)系</p><p> 加電
79、后檢查各芯片插座上相關(guān)引腳的電位,仔細(xì)測量相應(yīng)的輸入輸出電平是否正常。單片機(jī)系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設(shè)計是否正確,選用器件和連接關(guān)系是否符合要求等。</p><p><b> 5.3 性能分析</b></p><p> 系統(tǒng)通過調(diào)試組裝后一般即可正常工作。LED顯示屏的刷新頻率及顯示顯示效果是主要的性能指標(biāo)。顯示屏刷新率由定時器T0的
80、溢出率和單片機(jī)的晶振頻率決定,表5-1給出了顯示屏采用的頻率及其對應(yīng)的定時器T0初值。</p><p> 從理論上來說,24Hz以上的刷新率就能看到連續(xù)穩(wěn)定的顯示,刷新率越高,顯示越穩(wěn)定,同時刷新率越高,顯示驅(qū)動程序占用的CPU時間也越多。實(shí)驗(yàn)證明,在目測條件下刷新率40Hz以下的畫面看起來閃爍較嚴(yán)重,刷新率50Hz以上的已基本覺察不出畫面閃爍,刷新率達(dá)到85Hz以上時再增加畫面閃爍沒有明顯改善。</p&
81、gt;<p> 顯示效果處理的內(nèi)容和方法非常廣泛,根據(jù)需求可做變動,在這里不做具體討論。</p><p> 根據(jù)實(shí)踐證明,這個方案設(shè)計的16×16點(diǎn)陣LED圖文顯示屏,結(jié)構(gòu)合理,成本較低,且較容易擴(kuò)展成更大的顯示屏;顯示屏各點(diǎn)亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_;可用靜止、移入移出等多種顯示方式顯示圖形或文字。</p><p> 第六章 理論分析計
82、算</p><p> 一.電路中為什么要用到三極管8550</p><p> 因?yàn)?6個行選通信號是其中一個低電平的為有效,其余為高電平的信號無效,8550是PNP型三極管,低電平信號傳送至三極管的基極,則發(fā)射結(jié)正向偏置,集電結(jié)反向偏置,三極管導(dǎo)通,其集電極再將高電平加于LED陣列的對應(yīng)的行上,即將此行選通;而同時其它高電平端所對應(yīng)三極管截止,從而所對應(yīng)LED行線不被選通。由于行驅(qū)動電
83、路一條行線上要帶動16列的LED進(jìn)行顯示,按每一LED器件20mA電流計算,16個LED同時發(fā)光時,就需要16×20=320mA的驅(qū)動電流,由于三極管有電流放大作用,選用三極管8550作為驅(qū)動管可以在邏輯功能和驅(qū)動能力上符合LED的驅(qū)動要求。</p><p> 二.芯片74HC595的端口起什么作用</p><p> 端口是74HC595芯片中移位寄存器的清零信號輸入端,當(dāng)其
84、為低時移位寄存器的輸出全部為0,也就沒有數(shù)據(jù)打入到輸出鎖存器,即74HC595沒有列選信號輸出。</p><p> 第七章 系統(tǒng)功能及使用方法</p><p><b> 一、系統(tǒng)功能</b></p><p> 通過AT89C51芯片控制一個行驅(qū)動器 74HC154和兩個列驅(qū)動器74HC595來驅(qū)動一塊16*16點(diǎn)陣LED顯示屏顯示。該電
85、子顯示屏可以顯示各種文字或單色圖像,全屏能顯示1個漢字,采用16*16點(diǎn)陣LED顯示模塊來組成16×16點(diǎn)陣顯示模式。顯示采用動態(tài)顯示,使得圖形或文字能夠?qū)崿F(xiàn)靜止、移入移出等多種顯示方式。</p><p><b> 使用方法</b></p><p> 在proteus里雙擊單片機(jī),出現(xiàn)一個對話框,program file ,點(diǎn)文件夾標(biāo)志,選取要加入的HE
86、X文件,點(diǎn)擊確定,執(zhí)行仿真。</p><p> HEX文件在Keil軟件里生成,通過Keil編譯源程序改變文字或移動方式,從而控制仿真。</p><p> USB連接電腦,用Keil軟件編譯、調(diào)試無錯誤后,就可以讓單片機(jī)執(zhí)行源程序,我們焊接的東西就會按我們的源程序工作了。</p><p><b> 結(jié)束語</b></p>&
87、lt;p> 以上僅對LED顯示屏的結(jié)構(gòu)和驅(qū)動、顯示電路原理作一詳細(xì)介紹和分析。LED點(diǎn)陣的應(yīng)用很廣,對于不同的應(yīng)用環(huán)境和應(yīng)用要求,可以有各種各樣的應(yīng)用方式,在這里就不做詳盡敘述。由于自己知識水平的局限和時間的倉促,設(shè)計中或還存在著一些不足,我們真誠的接受老師們的批評和指正.。</p><p> 經(jīng)過了一學(xué)期的努力學(xué)習(xí)和工作,我們終于完成了論文。從課題選擇、方案論證到具體設(shè)計,每一步對我們來說無疑是巨大的
88、嘗試和挑戰(zhàn),我們不斷地給自己提出新的問題,然后去論證、推翻,不懂就請教老師或同學(xué),再接著提出新的問題,在這個往復(fù)的過程中,我們這篇設(shè)計日趨完善。每一次改進(jìn)我們都收獲良多,雖然我們設(shè)計的作品不是很成熟,而且借鑒了前人的一些資料,但我們?nèi)匀恍睦镉幸环N莫大的幸福感,因?yàn)槲覀儗?shí)實(shí)在在地走過了一個完整的設(shè)計所應(yīng)該走的每一個過程,并且享受了每一個過程,更重要的是這個設(shè)計中我們加入了自己鮮活的思想。</p><p> 在做這
89、次電子設(shè)計過程中使我們學(xué)到了很多,加深了對數(shù)子電路的理解,驗(yàn)證了所學(xué)理論知識,提高了基本的解決實(shí)際問題的能力,并增加了對電子設(shè)計方面的興趣。更重要的是使我們體會到不論做什么事都要真真正正用心去做,才會使自己更好的成長。沒有學(xué)習(xí)就不可能有實(shí)踐的能力,實(shí)踐才是最終的目的,沒有實(shí)踐就不會有自己的突破和創(chuàng)新,希望這次的經(jīng)歷能讓我們在以后的工作和生活中不斷成長與進(jìn)步。</p><p> 附錄一 實(shí)物照片、電路圖、PCB
90、圖、元器件清單</p><p> 附錄二 系統(tǒng)程序源代碼</p><p> 以下是16×16點(diǎn)陣LED電子顯示屏的C源程序,程序在Keil uVision3環(huán)境下調(diào)試通過。</p><p> #include <reg51.h></p><p> #define BLKN 2 //列鎖存器數(shù)<
91、/p><p> sbit G = 0x97; //P1.7為顯示允許控制信號端口</p><p> sbit RCLK = 0x96; //P1.6為輸出鎖存器時鐘信號端</p><p> sbit SCLR = 0x95; //P1.5為移位寄存器清○端</p><p> void delay(unsigned
92、int); //延時函數(shù)</p><p> unsigned char data dispram[32]; //顯示緩存</p><p> /*--------------------------------------</p><p> 主函數(shù) void main(void)</p><p> -------------
93、-------------------------*/</p><p> void main(void)</p><p><b> { </b></p><p> unsigned char code Bmp[][32]={//字模表</p><p> //;-- 孟 -- ** 宋體, 12 **&l
94、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFF,0xE0,0x1F,0xFF,0xBF,0xFE,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,</p><p> 0xFD,0xFF,0xC0,0x07,0xD
95、B,0xB7,0xDB,0xB7,0xDB,0xB7,0xDB,0xB7,0x00,0x01,0xFF,0xFF},</p><p> //;-- 昭 -- ** 宋體, 12 **</p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFF,0xFC,0
96、x03,0x87,0x7B,0xB7,0x7B,0xB7,0x7B,0xB6,0xFB,0xB6,0xEB,0x85,0xF7,</p><p> 0xB3,0xFF,0xB6,0x03,0xB6,0xFB,0xB6,0xFB,0x86,0xFB,0xB6,0xFB,0xFE,0x03,0xFE,0xFB},</p><p> //;-- 陽 -- ** 宋體, 12 **&l
97、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFF,0x83,0xFF,0xBA,0x03,0xB6,0xFB,0xB6,0xFB,0xAE,0xFB,0xB6,0xFB,0xB6,0xFB,</p><p> 0xBA,0x03,0xBA,0xFB,0xB
98、A,0xFB,0x96,0xFB,0xAE,0xFB,0xBE,0xFB,0xBE,0x03,0xBE,0xFB},</p><p> //;-- 董 -- ** 宋體, 12 **</p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xF7,0xDF,0x00,0
99、x01,0xF7,0xDF,0xE0,0x0F,0xFE,0xFF,0x80,0x03,0xFE,0xFF,0xE0,0x0F,</p><p> 0xEE,0xEF,0xE0,0x0F,0xEE,0xEF,0xE0,0x0F,0xFE,0xFF,0xC0,0x07,0xFE,0xFF,0x00,0x01},</p><p> //;-- 君 -- ** 宋體, 12 **&l
100、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFF,0xC0,0x07,0xFB,0xF7,0xFB,0xF7,0x00,0x01,0xFB,0xF7,0xFB,0xF7,0xC0,0x07,</p><p> 0xF7,0xFF,0xF7,0xFF,0xE
101、0,0x07,0xE7,0xF7,0xD7,0xF7,0xB7,0xF7,0x70,0x07,0xF7,0xF7},</p><p> //;-- 瑀 -- ** 宋體, 12 **</p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFB,0xFF,0
102、xE1,0x04,0x1F,0xDF,0xDF,0xDE,0x03,0xDE,0xDB,0xDE,0xDB,0x06,0x03,</p><p> 0xDF,0xDF,0xDC,0x01,0xDD,0xDD,0xC5,0xD5,0x1D,0x05,0xBD,0xFD,0xFD,0xF5,0xFD,0xFB},</p><p> //;-- 任 -- ** 宋體, 12 **&l
103、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xF7,0xEF,0xF7,0x87,0xF4,0x3F,0xEF,0xBF,0xEF,0xBF,0xCF,0xBF,0xCF,0xBF,0xA0,0x01,</p><p> 0x6F,0xBF,0xEF,0xBF,0xE
104、F,0xBF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBF,0xE8,0x03,0xEF,0xFF},</p><p> //;-- 柄 -- ** 宋體, 12 **</p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xEF,0xFF,0xEC,0
105、x01,0xEF,0xDF,0xEF,0xDF,0x03,0xDF,0xEC,0x01,0xCD,0xDD,0xC5,0xDD,</p><p> 0xA9,0xAD,0xAD,0xB5,0x6D,0x75,0xEC,0xFD,0xED,0xFD,0xED,0xFD,0xED,0xF5,0xED,0xFB},</p><p> //;-- 坤 -- ** 宋體, 12 **&l
106、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEE,0x03,0xEE,0xDB,0x02,0xDB,0xEE,0xDB,0xEE,0x03,</p><p> 0xEE,0xDB,0xEE,0xDB,0xE
107、E,0xDB,0xE2,0x03,0x1E,0xDB,0xBF,0xDF,0xFF,0xDF,0xFF,0xDF},</p><p> //;-- 馬 -- ** 宋體, 12 **</p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFF,0xFF,0x80,0
108、x1F,0xFF,0xDF,0xFF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xE0,0x03,</p><p> 0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0x00,0x1B,0xFF,0xFB,0xFF,0xFB,0xFF,0xD7,0xFF,0xEF},</p><p> //;-- 金 -- ** 宋體, 12 **&l
109、t;/p><p> //; 當(dāng)前所選字體下一個漢字對應(yīng)的點(diǎn)陣為: 寬度x高度=16x16, 調(diào)整后為: 16x16</p><p> {0xFE,0xFF,0xFE,0xFF,0xFD,0x7F,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xD0,0x17,0x3E,0xF9,</p><p> 0xFE,0xFF,0xC0,0x07,0xF
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于avr單片機(jī)的led點(diǎn)陣屏設(shè)計
- 基于單片機(jī)的led點(diǎn)陣廣告屏設(shè)計
- 畢業(yè)設(shè)計--基于單片機(jī)控制的led點(diǎn)陣顯示屏設(shè)計論文
- 基于單片機(jī)的led點(diǎn)陣顯示屏設(shè)計
- 基于單片機(jī)的led點(diǎn)陣顯示畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)+基于51單片機(jī)的led點(diǎn)陣屏的設(shè)計與實(shí)現(xiàn)
- 基于單片機(jī)的led點(diǎn)陣電子顯示屏長師畢業(yè)設(shè)計
- 單片機(jī)畢業(yè)設(shè)計--單片機(jī)控制的led點(diǎn)陣顯示
- 基于單片機(jī)的led點(diǎn)陣電子顯示屏設(shè)計
- 基于51單片機(jī)的led點(diǎn)陣顯示屏
- 單片機(jī)課程設(shè)計---led點(diǎn)陣屏滾動
- 基于單片機(jī)的LED點(diǎn)陣顯示屏設(shè)計定稿.doc
- 畢業(yè)設(shè)計---基于51單片機(jī)的led點(diǎn)陣顯示屏系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 基于單片機(jī)的LED點(diǎn)陣顯示屏設(shè)計初稿.doc
- 基于單片機(jī)的點(diǎn)陣led顯示屏的原理
- 基于51單片機(jī)的led點(diǎn)陣顯示屏-畢業(yè)論文
- 畢業(yè)設(shè)計---基于單片機(jī)的led顯示屏設(shè)計
- 畢業(yè)設(shè)計---基于單片機(jī)的led電子顯示屏
- 基于51單片機(jī)控制的點(diǎn)陣led電子顯示屏設(shè)計
- 基于51單片機(jī)的led點(diǎn)陣顯示屏系統(tǒng)的設(shè)計
評論
0/150
提交評論