廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁
廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁
廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁
廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁
廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、大連理工大學(xué)城市學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)廣告燈自動(dòng)控制系統(tǒng)的設(shè)計(jì)廣告燈自動(dòng)控制系統(tǒng) IV摘要伴隨當(dāng)今高度發(fā)展的信息時(shí)代,涉及半導(dǎo)體技術(shù)光電器件、電子電路、集成電路、信息傳輸、圖像信息處理、計(jì)算機(jī)網(wǎng)絡(luò)以及電子產(chǎn)品制造和電子產(chǎn)品安裝工程等相關(guān)技術(shù)的LED顯示屏在信息領(lǐng)域顯得尤為活躍,在各個(gè)行業(yè)的應(yīng)用和普及方面也取得了很大的進(jìn)步。從LED材料的不斷更新,灰度控制技術(shù)的發(fā)展,真彩色圖像的展現(xiàn);到驅(qū)動(dòng)電路的靈活、高效,控制系統(tǒng)技術(shù)的提高無不體現(xiàn)了LED行業(yè)技術(shù)的飛躍發(fā)展。另外,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,LED顯示屏在網(wǎng)絡(luò)環(huán)境下的使用情況越來越多,在多媒體、 多種顯示設(shè)備組成的信息顯示系統(tǒng)中,采用智能化

2、網(wǎng)絡(luò)控制,聯(lián)網(wǎng)控制多屏技術(shù)也在實(shí)際中得到應(yīng)用。本設(shè)計(jì)使用AT89C51系列高速單片機(jī)作為主控制模塊,利用簡(jiǎn)單的外圍電路來驅(qū)動(dòng)16 16 的點(diǎn)陣 LED顯示屏。利用AT89C51系列高速單片機(jī)本身強(qiáng)大的功能,可以很方便的實(shí)現(xiàn)單片機(jī)與PC機(jī)間的數(shù)據(jù)傳輸及存儲(chǔ),并能利用軟件方便的進(jìn)行顯示內(nèi)容的多樣變化,另一方面點(diǎn)陣顯示屏廣泛的應(yīng)用于醫(yī)院、機(jī)場(chǎng)、銀行等公共場(chǎng)所,所以本設(shè)計(jì)具有很強(qiáng)的現(xiàn)實(shí)應(yīng)用性。本 LED 顯示屏能夠以動(dòng)態(tài)掃描的方式同時(shí)顯示1 個(gè) 16 16 點(diǎn)陣漢字,并能通過上位機(jī)軟件修改顯示內(nèi)容和顯示效果等等。把字符內(nèi)碼存儲(chǔ)在空閑的單片機(jī)程序存儲(chǔ)器空間,使本LED 顯示系統(tǒng)能掉電存儲(chǔ)1024個(gè)字符。

3、 本文從LED的顯示原理入手,詳細(xì)闡述了LED動(dòng)態(tài)顯示的過程,以及硬件電路的設(shè)計(jì)、計(jì)算和軟件的算法。【關(guān)鍵詞】動(dòng)態(tài)顯示;單片機(jī);點(diǎn)陣AbstractWith the high development of communication in our society, LED large screen include so many kinds of technique such as semiconductor technology, electrocircuit, integrate circuit, image manipulation, information transfers, com

4、puter network and electronic manufacture technology and engineering has become more and more active in the information field, and also make a great progress with application and populaziration in every walk of life. From the development of the material of LED, the technique of ash-degree control, th

5、e clearly multicolor image dsi splaying to the active and high efficient drive electrocircuit, also the improving skill of control system are all incarnate the great progress of the LED-industry. In addition , with the development of network LED large screen is more and more in used , intelligentize

6、 net control and net-join control technology are also used in practice under the multimedia and information display system composed with multi-device environment.This design uses 89c51 series MCU as a main controller, and depends on a simple external circuit to drive 16 16 the lattice LED display. B

7、y using its own powerful functions and capacity of internal E2PROM, it is easy to accomplish the MCU and PC and E2PROM for internal storage, data transmission equipment ,and it also can be used conveniently to show a variety of content changes. The other dot matrix display is widely used in hospital

8、s, airports, banks and other public places. Therefore, the design has a strong practical application. The LED Display dynamic scan can show the way at the same time one 16 16 dot matrix Chinese characters, and PC software can modify the content and effect shows, and so on. This article from the star

9、t LED display principle, elaborated on the LED display dynamic process, as well as hardware circuit design, computing and software algorithms.Key Words: MCU; Serial Data Transfer ; Lattice摘 要 IIABSTRAC.T. TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 第一章緒論 1LED顯示屏的設(shè)計(jì)背景 2LED顯示屏的設(shè)計(jì)依據(jù) 2 HYPERL

10、INK l bookmark8 o Current Document 第二章系統(tǒng)設(shè)計(jì)方案 3方案選定3第三章 硬件設(shè)計(jì) 4設(shè)計(jì)框圖及介紹451 系列單片機(jī)簡(jiǎn)介4單片機(jī)最小應(yīng)用系統(tǒng)電路設(shè)計(jì)8LED點(diǎn)陣介紹9LED顯示方式10點(diǎn)陣的移動(dòng)14LED陣列驅(qū)動(dòng)電路 18 HYPERLINK l bookmark12 o Current Document 第四章 軟件設(shè)計(jì) 21單片機(jī)延時(shí)子程序21點(diǎn)陣左移顯示的流程圖及分析23PROTEU仿真S 26調(diào)試 26 HYPERLINK l bookmark14 o Current Document 結(jié)束語 26 HYPERLINK l bookmark16 o

11、 Current Document 致謝 28 HYPERLINK l bookmark18 o Current Document 參考文獻(xiàn) 28 HYPERLINK l bookmark20 o Current Document 附錄 30附錄 A 程序代碼30附錄B主要芯片介紹 33附錄C仿真電路圖 37廣告燈自動(dòng)控制系統(tǒng) 第一章 緒論隨著科技技術(shù)的不斷發(fā)展,單片機(jī)以極其高的性價(jià)比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機(jī)的優(yōu)點(diǎn)是體積小、重量輕、抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開發(fā)較為容易。LED顯示屏分為圖文顯示屏和視頻顯示屏,均由LED矩陣塊組成。

12、圖文顯示屏可與計(jì)算機(jī)同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計(jì)算機(jī)進(jìn)行控制,圖文、圖像并茂,以實(shí)時(shí)、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動(dòng)畫、錄像、電視、VCD節(jié)目以及現(xiàn)場(chǎng)實(shí)況。LED顯示屏顯示畫面色彩鮮艷,立體感強(qiáng),靜如油畫,動(dòng)如電影,廣泛應(yīng)用于交通運(yùn)輸、車站、商場(chǎng)、醫(yī)院、賓館、證券市場(chǎng)、工業(yè)企業(yè)管理等公共場(chǎng)所。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點(diǎn)。LED 之所以受到廣泛重視而得到迅速發(fā)展, 是與它本身所具有的優(yōu)點(diǎn)分不開的。這些優(yōu)點(diǎn)概括起來是:亮度高、工作電壓低、功耗小

13、、小型化、壽命長(zhǎng)、耐沖擊和性能穩(wěn)定。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展?,F(xiàn)代LED的發(fā)展很快,很多研究領(lǐng)域非常已經(jīng)深刻,實(shí)際情況是:很多相關(guān)的知識(shí)已經(jīng)遠(yuǎn)遠(yuǎn)超出我們?cè)谛W(xué)生的能力范圍,所以在此只是簡(jiǎn)單的研究一下用單片機(jī)驅(qū)動(dòng)的LED顯示移動(dòng)的漢字。目的有三:一是親手制作一個(gè)簡(jiǎn)單實(shí)用的顯示文字的LED點(diǎn)陣;二是通過制作LED點(diǎn)陣增強(qiáng)對(duì)LED點(diǎn)陣的了解和應(yīng)用,以及復(fù)習(xí)鞏固單片機(jī)知識(shí);三是通過團(tuán)隊(duì)合作,增強(qiáng)團(tuán)隊(duì)合作的意識(shí),為以后走向社會(huì)工作打下基礎(chǔ),并且增強(qiáng)了同學(xué)之間的友誼。為了吸引觀眾增強(qiáng)顯示效果,可以有多種顯示模式。最

14、簡(jiǎn)單的顯示模式是靜態(tài)顯示。與靜態(tài)顯示模式相對(duì)應(yīng),就有各種動(dòng)態(tài)顯示模式,它們所顯示的圖文都是能夠動(dòng)的。按照?qǐng)D文運(yùn)動(dòng)的特點(diǎn)又可以分為閃爍、平移、旋轉(zhuǎn)、縮放等多種顯示模式。產(chǎn)生不同顯示模式的方法,并不意味著一定要重新編寫顯示數(shù)據(jù),可以通過一定的算法從原來的顯示數(shù)據(jù)直接生成。例如,按順序調(diào)整行號(hào),可以使顯示圖文產(chǎn)生上下平移;而順序調(diào)整列顯示數(shù)據(jù)的位置,就可以達(dá)到左右平移的目的;刷新的時(shí)間控制,要考慮運(yùn)動(dòng)圖形文字的顯示效果。刷新太慢,動(dòng)感不顯著;刷新太快了,中間過程看不清。一般刷新周期可控制在幾十毫秒范圍之內(nèi)。本次畢業(yè)設(shè)計(jì)中,由本人尋求林贊揚(yáng),洪信根等同學(xué)的幫助,我負(fù)責(zé)硬件部分電路圖的設(shè)計(jì)和軟件部分程序

15、的設(shè)計(jì)和調(diào)試,目的是應(yīng)用簡(jiǎn)單方便的電路連接和程序完成漢字的換色與移動(dòng)。洪信根負(fù)責(zé)用設(shè)計(jì)好的點(diǎn)陣電路制作PCB電路板,包括完成PCB板的制作,林贊揚(yáng)負(fù)責(zé)制作另外一塊在面包板上連的點(diǎn)陣線連板子的焊接與調(diào)試,各人的分工不同只是工作側(cè)重點(diǎn)的不同,大家是在一起互相學(xué)習(xí)互相幫助,共同完成設(shè)計(jì)任務(wù)。LED 顯示屏的設(shè)計(jì)背景隨著科學(xué)技術(shù)的發(fā)展,社會(huì)不斷的進(jìn)步,電子事業(yè)也有著突飛猛進(jìn)的改革。 人們對(duì)公共傳媒質(zhì)量的要求越來越高。隨著近幾年來LED 字符顯示器的推出和不斷完善,它的應(yīng)用范圍正在擴(kuò)大,應(yīng)用效果十分顯著。不難看出,這一電子信息技術(shù)發(fā)展的新成果,在宣傳、政治思想教育、廣告娛樂等方面的應(yīng)用日益突出。由于大規(guī)

16、模集成電路技術(shù)的發(fā)展,其控制系統(tǒng)已能夠取代以前利用復(fù)雜電子線路或數(shù)字電路構(gòu)成的控制系統(tǒng),還可以軟件控制來實(shí)現(xiàn),并能夠?qū)崿F(xiàn)智能化。LED 顯示屏的設(shè)計(jì)依據(jù)“ 1顯示漢字; .AT89C52 單片機(jī)根據(jù) LED 顯示屏設(shè)計(jì)的基本原理,結(jié)合其設(shè)計(jì)要求:2.可以移動(dòng);3.可循環(huán)顯示?!庇纱嗽O(shè)想出以下解決方案由最小系統(tǒng)、控制部分、顯示部分組成。進(jìn)行漢字的顯示,再進(jìn)一步進(jìn)行右移。第二章 系統(tǒng)設(shè)計(jì)方案方案選定本文主要講述的是“ LED點(diǎn)陣字符顯示電路”, 本課題的實(shí)現(xiàn)主要有兩種方案。方案一:由數(shù)字電路來實(shí)現(xiàn),由移位寄存器與鎖存器對(duì)字符數(shù)據(jù)進(jìn)行存儲(chǔ),然后并行輸入到顯示屏,來實(shí)現(xiàn)漢字的顯示。方案二:由單片機(jī)編程

17、控制來實(shí)現(xiàn),方案利用單片機(jī)控制鎖存器和譯碼器,由鎖存器和譯碼器送出行選和列選來控制LED屏的亮滅,從而顯示漢字。方案論證:不難看出,選用數(shù)字電路來實(shí)現(xiàn)比較復(fù)雜。因?yàn)橛脭?shù)字電路實(shí)現(xiàn)必須要有移位寄存器與鎖存器對(duì)字符數(shù)據(jù)進(jìn)行存儲(chǔ),然后并行輸入到顯示屏,不但如此,而且需要很大一部分的擴(kuò)展電路才能實(shí)現(xiàn)。用數(shù)字電路實(shí)現(xiàn)不但大大提高成本,而且設(shè)計(jì)出的電路的靈活性差、不易調(diào)試、成本高等缺點(diǎn)。方案二不僅能夠改進(jìn)方案一設(shè)計(jì)的不靈活,還可進(jìn)行擴(kuò)展。通過比較,從設(shè)計(jì)方案的優(yōu)點(diǎn)及所設(shè)計(jì)的方便實(shí)用性,選擇第二種設(shè)計(jì)方案。本文是基于單片機(jī)來實(shí)現(xiàn)的。由于單片機(jī)具有體積小、重量輕、價(jià)格便宜、功耗低、控制功能強(qiáng)及運(yùn)算速度快等特點(diǎn)

18、,因而在國民經(jīng)濟(jì)建設(shè)、軍事及家用電器等不同領(lǐng)域起到了舉足輕重的作用。用單片機(jī)匯編語言編程,來控制16*16 LED 點(diǎn)陣塊進(jìn)行顯示相應(yīng)的漢字、圖形、圖像等。使用匯編來開發(fā)系統(tǒng)會(huì)更加方便快捷。一方面不會(huì)降低對(duì)硬件的控制能力,另一方面也不會(huì)使代碼長(zhǎng)度增加多少。如果運(yùn)用的好的話,就能夠開發(fā)出非常高效的系統(tǒng)。并且非常易于維護(hù)。硬件設(shè)計(jì)3.1 設(shè)計(jì)框圖及介紹LED點(diǎn)陣總體框圖如圖3.1 所示,點(diǎn)陣電路大體上可以分成51CUP和一些外圍電路。在整個(gè)電路當(dāng)中此控制PC機(jī)的串行通訊、以及給屏體電路部分發(fā)送命令。此顯示電路采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)( 把該行與電) 。另一方而,根據(jù)各列鎖存的數(shù)據(jù),

19、確定相應(yīng)的LED;未接通的列所對(duì)應(yīng)的LED熄滅。3.1 點(diǎn)陣顯示的總體框圖3.2 51 系列單片機(jī)簡(jiǎn)介單片機(jī)( Microcontroller ,又稱微處理器)是在一塊硅片CPU、數(shù)RAM、程序存儲(chǔ)器ROM、定時(shí)器/ 計(jì)數(shù)器和多種I/O 接口8051 單片機(jī)的基本結(jié)構(gòu)見圖3.2圖 3.2 8051 單片機(jī)的基本結(jié)構(gòu)8051 是 MCS-51系列單片機(jī)的一個(gè)產(chǎn)品。MCS-51系列單片機(jī)是 Intel 公司推出的通用型單片機(jī),8051 單片機(jī)系列指的是MCS-51系列和其他公司的8051 衍生產(chǎn)品。這些衍生品是在基本型基礎(chǔ)上增強(qiáng)了各種功能的產(chǎn)品。這些產(chǎn)品給8 位單片機(jī)注入了新的活力,給它的開發(fā)應(yīng)用

20、開拓了更廣泛的前景。8051 系列的內(nèi)部結(jié)構(gòu)可以劃分為CPU、存儲(chǔ)器、并行口、串行口、定時(shí)器/ 計(jì)數(shù)器、中斷邏輯幾部分。( 1)中央處理器8051 的中央處理器由運(yùn)算器和控制邏輯構(gòu)成,其中包括若干特殊功能寄存器(SFR) 。算術(shù)邏輯單元ALU能對(duì)數(shù)據(jù)進(jìn)行加、減、 乘、 除等算術(shù)運(yùn)算;“與”、 “或”、 “異或”等邏輯運(yùn)算以及位操作運(yùn)算。ALU只能進(jìn)行運(yùn)算,運(yùn)算的操作數(shù)可以事先存放到累加器ACC或寄存器TMP中,運(yùn)算結(jié)果可以送回ACC或通用寄存器或存儲(chǔ)單元中,累加器ACC也可以寫為A。 B 寄存器在乘法指令中用來存放一個(gè)乘數(shù),在除法指令中用來存放除數(shù),運(yùn)算后B 中為部分運(yùn)算結(jié)果。程序狀態(tài)字PSW

21、是個(gè)8位寄存器,用來寄存本次運(yùn)算的特征信息,用到其中七位。PSW的格式如下所示,其各位的含義是: TOC o 1-5 h z CY:進(jìn)位標(biāo)志。有進(jìn)位/ 錯(cuò)位時(shí)CY=1,否則CY=0。AC:半進(jìn)位標(biāo)志。當(dāng)D3位向D4位產(chǎn)生進(jìn)位/錯(cuò)位時(shí),AC=1,否則AC=0,常用于十進(jìn)制調(diào)整運(yùn)算中。F0:用戶可設(shè)定的標(biāo)志位,可置位/復(fù)位,也可供測(cè)試。RS1、 RS0:四個(gè)通用寄存器組選擇位,該兩位的四種組合狀態(tài)用來選擇03 寄存器組。OV:溢出標(biāo)志。當(dāng)帶符號(hào)數(shù)運(yùn)算結(jié)果超出-128+127 范圍時(shí)OV=1,否則OV=0。當(dāng)無符號(hào)數(shù)乘法結(jié)果超過255時(shí),或當(dāng)無符號(hào)數(shù)除法的除數(shù)為0 時(shí) OV=1,否則OV=0。P:奇

22、偶校驗(yàn)標(biāo)志。每條指令執(zhí)行完,若A中 1 的個(gè)數(shù)為奇數(shù)時(shí)P=1,否則 P=0,即偶校驗(yàn)方式??刂七壿嬛饕ǘ〞r(shí)和控制邏輯、指令寄存器、譯碼器以及地址指針DPTR和程序寄存器PC等。單片機(jī)是程序控制式計(jì)算機(jī),即它的運(yùn)行過程是在程序控制下逐條執(zhí)行程序指令的過程:從程序存儲(chǔ)器中取出指令送指令存儲(chǔ)器IR,然后指令譯碼器ID 進(jìn)行譯碼,譯碼產(chǎn)生一系列符合定時(shí)要求的微操作信號(hào),用以控制單片機(jī)的各部分動(dòng)作。8051 的控制器在單片機(jī)內(nèi)部協(xié)調(diào)各功能部件之間的數(shù)據(jù)傳送、數(shù)據(jù)運(yùn)算等操作,并對(duì)單片機(jī)發(fā)出若干控制信息。這些控制信息的使用專門的控制線,諸如PSEN、 ALE、 EA以及RST,也有一些是和P3口的某些端

23、子合用,如WR和 RD就是P3.6 和 P3.7,他們的具體功能在介紹 8051 引腳是一起敘述。( 2)存儲(chǔ)器組織8051 單片機(jī)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)之一是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開,并有各自的尋址機(jī)構(gòu)和尋址方式,這種結(jié)構(gòu)稱為哈佛結(jié)構(gòu)單片機(jī)。這種結(jié)構(gòu)與通用微機(jī)的存儲(chǔ)器結(jié)構(gòu)不同,一般微機(jī)只有一個(gè)存儲(chǔ)器邏輯空間,可隨意安排ROM或 RAM,訪存時(shí)用同一種指令,這種結(jié)構(gòu)稱為普林斯頓型。8051 單片機(jī)在物理上有四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。8051 片內(nèi)有256K數(shù)據(jù)存儲(chǔ)器RAM和 4KB的程序存儲(chǔ)器ROM。除此之外,還可以在片外擴(kuò)展RAM和 ROM,

24、 并且各有64KB的尋址范圍。也就是最多可以在外部擴(kuò)展2*64KB 存儲(chǔ)器。8051 的存儲(chǔ)器組織結(jié)構(gòu)如圖3.3 所示。3.3 8051 存儲(chǔ)器組織結(jié)構(gòu)64K字節(jié)的程序存儲(chǔ)器(ROM)空間中,有4K字節(jié)地址區(qū)對(duì)于片內(nèi)ROM和片外ROM是公用的,這 4K字節(jié)地址是0000HFFF。H而 1000HFFFFH地址區(qū)為外部ROM專用。CPU的控制器專門提供一個(gè)控制信號(hào)EA用來區(qū)分內(nèi)部ROM和外部ROM的公用地址區(qū):當(dāng) EA接高電平時(shí),單片機(jī)從片內(nèi)ROM的 4K字節(jié)存儲(chǔ)器區(qū)取指令,而當(dāng)指令地址超過0FFFH后,就自動(dòng)的轉(zhuǎn)向片外ROM取指令。當(dāng)EA接低電平時(shí),CPU只從片外ROM取指令。程序存儲(chǔ)器的某些

25、單元是保留給系統(tǒng)使用的:0000H0002H單元是所有執(zhí)行程序的入口地址,復(fù)位以后,CPU總是叢0000H單元開始執(zhí)行程序。0003H002AH單元均勻地分為五段,用做五個(gè)中斷服務(wù)程序的入口。用戶程序不應(yīng)進(jìn)入上述區(qū)域。8051 的 RAM雖然字節(jié)數(shù)不很多,但卻起著十分重要的作用。256 個(gè)字節(jié)被分為兩個(gè)區(qū)域:00H7FH時(shí)真正的RAM區(qū),可以讀寫各種數(shù)據(jù)。而80HFFH是專門用于特殊功能寄存器(SFR)的區(qū)域。對(duì)于8051 安排了 21 個(gè)特殊功能寄存器,每個(gè)寄存器為8位,所以實(shí)際上128 個(gè)字節(jié)并沒有全部利用。內(nèi)部RAM的各個(gè)單元,都可以通過直接地址來尋找,對(duì)于工作寄存器,則一般都直接用R0

26、R7,對(duì)特殊功能寄存器,也是直接使用其名字較為方便。8051 內(nèi)部特殊功能寄存器都是可以位尋址的,并可用“寄存器名 . 位”來表示,如ACC.0, B.7 等。3.3 單片機(jī)最小應(yīng)用系統(tǒng)電路設(shè)計(jì)S2S3S4圖 3.4 單片機(jī)最小應(yīng)用系統(tǒng)原理圖注 : 該最小系統(tǒng)由按鍵復(fù)位RESET電路、晶體振蕩電路以及I/O接口電路組成。復(fù)位的實(shí)現(xiàn)通常用2 種方式 : 開機(jī)上電復(fù)位和外部手動(dòng)復(fù)位,本設(shè)計(jì)用的是外部手動(dòng)復(fù)位。電路圖3.5 如下:圖 3.5 單片機(jī)復(fù)位圖AT89C51工作電壓VCC=5V其, EA引腳需接高電平,5V電源電路如圖 3.6 所示。1D6C4C53780 51 00 u /1 6V 1

27、04C6C71 04101 00 u /1 6 v圖 3.6 單片機(jī)電源原理圖注 : 該電源電路主要模塊為IC7805, 它能輸出穩(wěn)定的5V 電源 ,圖中整流橋是將市電轉(zhuǎn)變?yōu)橹绷麟? 電容起到慮波作用由7805 的OUT引腳輸出5V電壓。6 3.4 LED 點(diǎn)陣介紹8 8 單色點(diǎn)陣共需要64 個(gè)發(fā)光二極管組成,且每個(gè)二極管是放置在行線與列線的叉點(diǎn)上。本設(shè)計(jì)是一種實(shí)用的漢字顯示屏的制作,制作的是點(diǎn)陣??紤]到元器件的易購性,使用8 8 的點(diǎn)陣發(fā)光二極管模塊,組成了16 行 16 列的發(fā)光點(diǎn)陣。實(shí)際使用時(shí)可以根據(jù)這個(gè)原理自行擴(kuò)充顯示的字?jǐn)?shù)。下面的8 8 單色點(diǎn)陣和8 8 雙色點(diǎn)陣可以看出,其實(shí)8 8

28、雙色點(diǎn)陣就是兩塊8 8 單色點(diǎn)陣組合在一起的。要實(shí)現(xiàn)用兩種顏色顯示,只要在電路的設(shè)計(jì)中適當(dāng)?shù)倪B線就可以了。8 8 單色和雙色點(diǎn)陣LED結(jié)構(gòu)分別如下圖3.8 和 3.9 所示。3.7 8 8 點(diǎn)陣外觀及引腳圖圖 3.8 8 8單色點(diǎn)陣內(nèi)部圖3.9 8 8 雙色點(diǎn)陣內(nèi)部圖3.5 LED 顯示方式7漢字顯示屏用于顯示漢字、字符及圖像信息,在公共汽車、由單片機(jī)控制漢字的顯示內(nèi)容。為了降低成本,8 8 的 LED點(diǎn)陣發(fā)光管的模塊,組成了一個(gè)16 16LED點(diǎn)陣顯示屏,如圖1.10 所示。在這里僅做了四個(gè)漢字的圖 3.10 四塊8 8 的 LED點(diǎn)陣組成16 16的 LED點(diǎn)陣LED 驅(qū)動(dòng)顯示采用動(dòng)態(tài)掃描

29、方法,動(dòng)態(tài)掃描方式是逐行輪流16 16 點(diǎn)陣為例,把所有同一行的發(fā)光管的陽極連在先送出對(duì)應(yīng)第1 行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1 行使其燃亮一定的時(shí)間,然后熄滅;再送出第2 行的數(shù)據(jù)并鎖存,然后選通第2 行使其燃亮相同的時(shí)間,然后熄滅; . 第 16 行之后,又重新燃亮第1 行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24 次以上) ,由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓盘?hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無疑是十分經(jīng)濟(jì)的。但串行傳輸過程較長(zhǎng),數(shù)據(jù)

30、按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢螅@一行的各列才能并行地進(jìn)行顯示。對(duì)于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串行移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:1

31、)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱列掃描方式):此時(shí)用一個(gè)P 口輸出列碼決定哪一列能亮(相當(dāng)于 TOC o 1-5 h z 位碼) , 用另一個(gè)P口輸出行碼(列數(shù)據(jù)), 決定該行上那哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完16 列(相當(dāng)于位碼循環(huán)移動(dòng)16 次)即顯示出一個(gè)完整的圖像。2)豎直方向(Y方向)掃描,即逐行掃描方式(簡(jiǎn)稱行掃描方式) :此時(shí)用一個(gè)P 口輸出決定哪一行能亮(相當(dāng)于位碼),另一個(gè) P 口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn)90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完16 行(相當(dāng)于位碼循環(huán)移位16 次)即顯示

32、一幀完整的圖像。本設(shè)計(jì)應(yīng)用的是第一種的掃描方法,即水平方向(X方向)掃描。每一個(gè)字由16 行 16 列的點(diǎn)陣形成顯示,即每個(gè)字均由256個(gè)點(diǎn)陣來表示,我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素。一般我們使用的16 16 的點(diǎn)陣宋體字庫,即所謂的16 16,是每一個(gè)漢16點(diǎn)的區(qū)域內(nèi)顯示的。漢字庫從該位置起的32字節(jié)256 像素范圍內(nèi)的任何圖形。我們以水平方向(x 方向)掃描顯示漢字的“江”為例來說16 行 16列的點(diǎn)陣組成顯示,如圖下8 位的 AT89S51的單片機(jī)來控制,由于單片機(jī)的總線8 位,一個(gè)字需要拆分成兩個(gè)部分。一般我們把它分解成上部8*16 的點(diǎn)陣組成,下部分也由8*16 的點(diǎn)0 列的P00P

33、07口。方向?yàn)镻00 到 P07,顯示漢字“江”的P00到 P04都是滅的,P05亮,即二進(jìn)制00001000,轉(zhuǎn)換16 進(jìn)制為08H,如圖1.11 所示。上半部分第一列完成之后,繼續(xù)掃描下半部分的第一列,為P27向P20 方向掃描,從上圖可以看到,這一列所有的都不亮,所以代00000000, 16 進(jìn)制為00H, 然后單片機(jī)轉(zhuǎn)向上半部的第二列,P05亮,其他的都不亮,即為00000100, 16進(jìn)制為04H,這P21 亮,其他00100000,即16進(jìn)制20H。按照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32 個(gè) 8 位,:DB08H,20H,08H,30H,0FFH,0E0H,08H,42H

34、,08H,4CH,1FH,0F0H,12H,10H,12H,1AH;DB13H,0F2H,10H,04H,0FFH,0C8H,10H,30H,50H,0CCH,37H,02H,12H,1CH,00H,00H; 城 圖 3.11 點(diǎn)陣顯示原理圖由這個(gè)原理可以看到,無論顯示何種字體或圖像,都可以用這種方法來分析出它的掃描代碼從而顯示在屏幕上。了解漢字的顯示原理之后,那如何得到漢字的字模信息呢?現(xiàn)在有一些現(xiàn)成的漢字字模生成軟件,可從網(wǎng)上下載漢字字庫提取程序直接提取字庫,如圖1.12 所示的為一種字模生成軟件,軟件打開后輸入漢字, 點(diǎn)擊 “檢取” 后, 十六進(jìn)制數(shù)據(jù)漢字代碼即可以自動(dòng)生成,把我們需要的

35、豎排數(shù)據(jù)復(fù)制到我們的程序即可3.12 漢字字模生成軟件3.6 點(diǎn)陣的移動(dòng)以下以16 16 點(diǎn)陣為例介紹點(diǎn)陣的移動(dòng)。要顯示一個(gè)字符,該字符的點(diǎn)陣數(shù)據(jù)可以列向(縱向)16 點(diǎn)組字,又可以行向(橫向) 16 點(diǎn)組字。無論哪一種組字方法,都既可以顯示字符的水平方向的移動(dòng),又可以顯示豎直方向的移動(dòng)。1顯示字符的左右移動(dòng)(1) 列掃描方式左移動(dòng):列向組字顯示字符水平方向的移動(dòng)(左滾動(dòng))在這里有兩個(gè)方法:方法 1: 延長(zhǎng)數(shù)組法。將原來字符點(diǎn)陣數(shù)組的16 個(gè)數(shù)據(jù)重復(fù)一遍延長(zhǎng),點(diǎn)陣數(shù)組的數(shù)據(jù)個(gè)數(shù)為32 個(gè)。每掃描儀幀取8 個(gè)數(shù) TOC o 1-5 h z 據(jù)顯示, 下一幀取數(shù)要在數(shù)組中后移一個(gè)數(shù)取數(shù)。循環(huán)一遍掃

36、16幀。可以假想有兩塊16 16 的點(diǎn)陣模塊(共32 幀)水平平行排列,用一個(gè)恰好能罩住8 列點(diǎn)陣的中空方框去罩這個(gè)點(diǎn)陣,第1(第 1 幀)罩住最左邊數(shù)起第一列開始的16 列,就掃描顯示這16列;第 2次(第 2幀)使方框右移一列,罩住做左邊數(shù)起第2列開始的16 列,就掃描顯示這16 列; ;這樣每掃描完一幀使方框右移一列,最后第16 次(第 16 幀)時(shí),罩住左邊數(shù)起的第 16 列開始的16 列,就掃描顯示這16 列。如此完成16 幀畫面的掃描顯示,也就完成了整個(gè)一次移動(dòng)循環(huán)掃描、之后反復(fù)循環(huán),即可呈現(xiàn)顯示字符沿水平向左移動(dòng)的圖像,如圖1.13 所示。圖 3.13 方框圖法左右移動(dòng)示意圖因?yàn)?/p>

37、是列向組字(列掃描方式,點(diǎn)陣數(shù)據(jù)為行碼,上邊為地位下面為高位),希望顯示移動(dòng)的一個(gè)字符,第1 次掃描從行碼的點(diǎn)陣數(shù)組中取第116 個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這8 個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制第116 列。掃描完前 16 個(gè)數(shù)據(jù)之后,第2 次掃描從點(diǎn)陣數(shù)組中取第214 個(gè)數(shù)據(jù)圖 3.13字形法左右移動(dòng)示意圖(第 17 個(gè)數(shù)據(jù)與地1 個(gè)數(shù)據(jù)同),送行碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,仍分別控制掃地116 列。第 3 次掃描從點(diǎn)陣數(shù)組中取第318 個(gè)數(shù)據(jù)(第18 個(gè)數(shù)據(jù)碼與地2 個(gè)數(shù)據(jù)碼相同)掃描 ;如此實(shí)現(xiàn)字符向左移動(dòng)。以上完成一個(gè)圖形移動(dòng)的方法,也可以看成是

38、移動(dòng)16 個(gè)不同的字形。如圖2.13 所示,首先掃描第一個(gè)字型,同樣是16行,16 次掃描,16 次顯示;完成一個(gè)字型的掃描以后,再掃描第二個(gè)字型;完成第二個(gè)字型的掃描之后,再掃描第三個(gè)字型 依此類推,即可產(chǎn)生該文字的左移的感覺。假設(shè)如果原本某個(gè)漢字的字型(第一個(gè)字型),其編碼為:00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0;H第二個(gè)字型的編碼為:10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H 0E0H,0F0H, 00H,也就是把第一個(gè)字型

39、的編碼中,第1 行顯示數(shù)據(jù),變?yōu)榈? 行顯示數(shù)據(jù);第2 行顯示數(shù)據(jù),變成第3 行顯示數(shù)據(jù);第3 行顯示數(shù)據(jù),變成第4 行顯示數(shù)據(jù);第4 行顯示數(shù)據(jù),變成第5 行顯示數(shù)據(jù) 以此類推。當(dāng)?shù)谝粋€(gè)字型掃描顯示完成之后,就進(jìn)行這樣的動(dòng)作調(diào)整,以產(chǎn)生第二個(gè)字型的編碼。同樣的, 當(dāng)?shù)诙€(gè)字型掃描完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。這個(gè)調(diào)整動(dòng)作時(shí)先將16 個(gè)編碼根據(jù)序填入存儲(chǔ)器,例如第 1 行編碼存入20H,第二行編碼存入21H 要進(jìn)行左移調(diào)整時(shí),則先將 20H地址的數(shù)據(jù)轉(zhuǎn)移到36H地址,再將21 H地址的數(shù)據(jù)轉(zhuǎn)移到20 H地址,將 22 H 地址的數(shù)據(jù)轉(zhuǎn)移到21 H 地址,將23 H 地

40、址的數(shù)據(jù)轉(zhuǎn)移到 22 H 地址,將24 H 地址的數(shù)據(jù)轉(zhuǎn)移到23 H 地址,將25 H 地址的數(shù)據(jù)轉(zhuǎn)移到24 H 地址,將26 H 地址的數(shù)據(jù)轉(zhuǎn)移到25 H 地址,將 27 H 地址的數(shù)據(jù)轉(zhuǎn)移到26 H 地址,將28 H 地址的數(shù)據(jù)轉(zhuǎn)移到27H地址 方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法”(適合用C 語言編寫,在此僅作了解)。注意,不是把二進(jìn)制數(shù)據(jù)按位循環(huán)左移,而是把數(shù)組中的數(shù)據(jù)按其在數(shù)組中的位置循環(huán)左移。具體的方法入下。原字符點(diǎn)陣數(shù)組中的16 個(gè)數(shù)據(jù)不延長(zhǎng),但下一幀取的16 個(gè)數(shù)據(jù),是把上一幀的16 個(gè)數(shù)據(jù)的位置(先后順序) “循環(huán)左移”一次, 即原來第2 個(gè)移到第1 個(gè), 原來第 3 個(gè)移到第2 個(gè)

41、 原來第 1 個(gè)移到第16 個(gè)。實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法有:第一,遍一個(gè)“數(shù)組數(shù)據(jù)循環(huán)左移子程序”,該子程序每執(zhí)行一次可把數(shù)組中的額數(shù)據(jù)循環(huán)左移一次,主程序中先調(diào)用一次該子程序,時(shí)數(shù)組中的數(shù)據(jù)循環(huán)左移這一次,然后再從數(shù)組中取數(shù)據(jù)顯示。當(dāng)數(shù)組中的額數(shù)據(jù)個(gè)數(shù)較多時(shí),片內(nèi)RAM將不夠大,必須將數(shù)組定義在片外RAM中。第二,不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。(2) 行掃描方式左移:行向組字顯示字符水平方向的左移。如果是行向組字(行掃描方式,點(diǎn)陣數(shù)據(jù)為列碼,左邊為敵位右邊為高位) ,希望顯示向左移動(dòng)的一個(gè)字符,第1 次掃描從列碼的點(diǎn)陣數(shù)組中取第116 個(gè)數(shù)據(jù),送到列碼輸出口,對(duì)應(yīng)的

42、8 個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第116 行。掃描完成這 16 個(gè)數(shù)據(jù)之后,第2 次掃描的第16 個(gè)數(shù)據(jù),應(yīng)將原來第1次掃描的16 列碼每一個(gè)都循環(huán)右移一位(如果是顯示右移則應(yīng)循環(huán)左移),再進(jìn)行掃描。如此,每進(jìn)行下一次掃描,把上一次掃描的 16 個(gè)列碼都循環(huán)右移一位,再進(jìn)行掃描。數(shù)據(jù)的右移與數(shù)據(jù)的左移相似,只是取碼的順序相反而已,在此就不再贅述。2數(shù)據(jù)的上下移動(dòng)列掃描方式向上移動(dòng)列向組字顯示字符豎直方向的移動(dòng)。若是列向組字,希望顯示向上移動(dòng)一個(gè)字符,第 1 次掃描從行碼的點(diǎn)陣數(shù)組中取第116個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這16 個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制掃描第1

43、16 列。由于是列向組字(上高下低) ,掃描完成這16 個(gè)數(shù)據(jù)后,第2 次掃描的16 個(gè)數(shù)據(jù),應(yīng)將原來的第1 次掃描的16 個(gè)行碼每一個(gè)都循環(huán)右移一位,使顯示的點(diǎn)都上移一行(如果是顯示向下滾動(dòng)則應(yīng)循環(huán)左移),再進(jìn)行掃描。如此,每進(jìn)行下一次的掃描,把上一次的16 個(gè)行碼都循環(huán)右移一位,再進(jìn)行掃描就實(shí)現(xiàn)了數(shù)據(jù)的向上移動(dòng)。也可以用字型的方法容易理解,以下的16 16 的 LED顯示一個(gè)字是8 個(gè)字型,首先掃描的而是第一個(gè)字型,同樣是16 行,16 列掃描,16 次顯示;完成一個(gè)字型后,再掃描第二個(gè)字型;完成第二個(gè)字型后,再掃描第三個(gè)字型 以此類推,即可產(chǎn)生該文字向上移動(dòng)的感覺當(dāng)把第一個(gè)字型編碼中,每

44、行顯示的數(shù)據(jù)都右移一位,以產(chǎn)生第二個(gè)字型編碼,即可產(chǎn)生字符向上滾動(dòng)的感覺。當(dāng)?shù)谝粋€(gè)字符掃描完成后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第二個(gè)字型的編碼。同樣的,當(dāng)?shù)诙€(gè)字型完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第三個(gè)字型的編碼。調(diào)整的動(dòng)作是先將8個(gè)編碼根據(jù)序填入儲(chǔ)存器,圖 3.15 字形法上下移動(dòng)示意圖例如第 1 行編碼存入20 地址,第2 行編碼存入21 地址 要進(jìn)行上移調(diào)整時(shí),則從 20 地址數(shù)據(jù)開始,每筆數(shù)據(jù)都右移一位即可。上圖 2.15 僅以字型移動(dòng)的方法畫圖。行掃描方式上下移動(dòng)行向組字顯示字符豎直方向的移動(dòng)方法1:延長(zhǎng)數(shù)組法。如果是行向組字,希望顯示向上移動(dòng)的一個(gè)字符,第1 次掃描從列碼的點(diǎn)

45、陣數(shù)組中取第116 個(gè)數(shù)據(jù),送列碼輸出口,對(duì)應(yīng)于這8 個(gè)數(shù)據(jù), 同時(shí)用行碼輸出口輸出行碼,分別控制掃描第116 行。第 2 次掃描從點(diǎn)陣數(shù)組中取第217 個(gè)額數(shù)據(jù)(第17 個(gè)數(shù)據(jù)與地1 個(gè)數(shù)據(jù)同),分別送列碼輸出口,對(duì)應(yīng)于這 16 個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,仍分別控制地116行。 第 3 次掃描從點(diǎn)陣數(shù)組中取第318個(gè)數(shù)據(jù) (第18個(gè)數(shù)據(jù)與地 2 個(gè)數(shù)據(jù)同)掃描; 如此就實(shí)現(xiàn)了字符的向上移動(dòng)。方法2: 數(shù)組數(shù)據(jù) “循環(huán)左移法”。 實(shí)現(xiàn)數(shù)組數(shù)據(jù)循環(huán)左移的方法與上類似。也有: 用數(shù)組數(shù)據(jù)循環(huán)左移子程序;不用子程序,而是用變量判斷控制實(shí)現(xiàn)數(shù)組數(shù)據(jù)的循環(huán)左移。LED 陣列驅(qū)動(dòng)電路正向點(diǎn)亮一顆L

46、ED, 至少也得10到 20 毫安, 若電流不夠大,則 LED不夠亮!而不管是8051 的輸入還是輸出端其高態(tài)輸出電流都不是很高,不過1 2 毫安而已。因此,很難直接高態(tài)驅(qū)動(dòng)LED。這時(shí)候就需要額外的驅(qū)動(dòng)電路,分別針對(duì)共陽極和共陰極LED 陣列,有兩種不同的驅(qū)動(dòng)方式。針對(duì)輸出態(tài)的不同,分為:- 高態(tài)顯示,高態(tài)掃描- 低態(tài)顯示,低態(tài)掃描- 高態(tài)顯示- 低態(tài)顯示四種方式。下面針對(duì)設(shè)計(jì)中實(shí)際用到的一- 低態(tài)顯示信號(hào)驅(qū)動(dòng)電路。圖 2.17 所示是針對(duì)共陰性LED陣列而設(shè)計(jì)的驅(qū)動(dòng)電路,在PNP晶體管的基極,晶體管LED點(diǎn)陣的列引腳,若要同時(shí)點(diǎn)亮該16 個(gè) LED, 則晶體管的電流必須大于200 毫安才行

47、。常用的2N3904 之類就可以達(dá)到當(dāng)?shù)蛻B(tài)的列掃描信號(hào)輸入晶體管的基極LED具有點(diǎn)所要的顯示信號(hào)連接到一個(gè)PNP晶體管的基極,而該晶體管VCC,同樣的,當(dāng)?shù)蛻B(tài)的顯示信號(hào)輸入時(shí),晶體管LED的陽極,即可點(diǎn)亮該行的LED。如圖1.17 所示 .圖 3.17 共陰型低態(tài)掃描-低態(tài)顯示信號(hào)驅(qū)動(dòng)電路若要并接多個(gè)LED陣列,如連接使用4 個(gè) 8 8LED陣列, 連16 16LED陣列,則一個(gè)掃描信號(hào)同時(shí)驅(qū)動(dòng)兩個(gè)LED陣列。8 8 的點(diǎn)陣無法顯示完整,這就需要用四塊8 8 的點(diǎn)陣組成一塊16 16 的點(diǎn)陣,這樣就可以顯示完整的漢字了,若要并聯(lián)多個(gè)8 8 的 LED組成16 16的點(diǎn)陣, 則一個(gè)掃描信號(hào)同時(shí)要

48、驅(qū)動(dòng)兩行的LED。 如下圖1.18所示。圖 3.1816 16 的點(diǎn)陣驅(qū)動(dòng)圖這時(shí)候就需要靠鎖存器(74LS373)將這兩組顯示信號(hào)鎖住,此處的鎖存器是以低態(tài)輸出的,其輸出的電壓可達(dá)24 毫安,足以驅(qū)動(dòng)一個(gè)LED; 若嫌不足,可以選用74A373其輸出的電壓可達(dá)48 毫安,當(dāng) 74LS373得 G腳為高態(tài)時(shí),數(shù)據(jù)可以從輸入端傳輸?shù)芥i存器中;G 腳為低態(tài)時(shí),數(shù)據(jù)被鎖住,不會(huì)隨輸入端而變。另外 OC腳為輸出控制引腳,當(dāng)OC腳為高態(tài)時(shí),輸出呈現(xiàn)高阻抗;OC為低態(tài)時(shí),數(shù)據(jù)會(huì)由鎖存器輸出。在這個(gè)電路之中驅(qū)動(dòng)的掃描信號(hào)總共有16 條,如果直接由8051 輸出,將占用2 個(gè) PORT口,浪費(fèi)了寶貴的資源,不太

49、理想,在此使用的是一個(gè)4 對(duì) 16 的譯碼器( 74LS154) , 這個(gè)譯碼器是將輸入的16 進(jìn)位碼解碼輸出低態(tài)的掃描信號(hào)。輸出的低態(tài)掃描信號(hào)可直接接到PNP晶體管的基極,如果太大的話也可以先經(jīng)過限流電阻再接到PNP晶體管的基極,信號(hào)最后經(jīng)過晶體管的放大后即可推動(dòng)16 個(gè) LED點(diǎn)陣了。第四章 軟件設(shè)計(jì)4.1 單片機(jī)延時(shí)子程序延時(shí)程序在單片機(jī)編程中使用非常廣泛, 也很重要,在本畢業(yè)設(shè)計(jì)的程序中用到了延時(shí)子程序,所以在此詳細(xì)的敘述一下。在弄清延時(shí)程序指令的用法之前,要清楚的了解延時(shí)程序的基本概念 , 機(jī)器周期和指令周期的區(qū)別和聯(lián)系、相關(guān)指令的用法等。我們知道程序設(shè)計(jì)是單片機(jī)開發(fā)最重要的工作,而

50、程序在執(zhí)行過程中常常需要完成延時(shí)的功能。例如在本設(shè)計(jì)中,行向的掃描要控制每行的掃描時(shí)間,還有所有的字移動(dòng)有一定的時(shí)間間隔,而在所有的字移動(dòng)一遍結(jié)束的一瞬間到下一遍移動(dòng)開始的一瞬間要有延時(shí),這時(shí)的延時(shí)可以和移動(dòng)的時(shí)間相同以保持移動(dòng)的連貫性,也可以不同作為每次從頭開始的停頓,在上述就可以通過延時(shí)程序來完成。機(jī)器周期和指令周期( 1)機(jī)器周期是指單片機(jī)完成一個(gè)基本操作所花費(fèi)的時(shí)間,一般使用微秒來計(jì)量單片機(jī)的運(yùn)行速度,51 單片機(jī)的一個(gè)機(jī)器周期包括 12 個(gè)時(shí)鐘振蕩周期,也就是說如果51 單片機(jī)采用12MHz晶振, 那么執(zhí)行一個(gè)機(jī)器周期就只需要1 s; 如果采用的是6MHz的晶振,那么執(zhí)行一個(gè)機(jī)器周期

51、就需要2 s。( 2)指令周期是指單片機(jī)執(zhí)行一條指令所需要的時(shí)間,一般利用單片機(jī)的機(jī)器周期來計(jì)量指令周期。在 51 單片機(jī)里有單周期指令(執(zhí)行這條指令只需一個(gè)機(jī)器周期) ,雙周期指令(執(zhí)行這條指令只需要兩個(gè)機(jī)器周期),四周期指令(執(zhí)行這條指令需要四個(gè)機(jī)器周期)。除了乘、除兩條指令是四周期指令,其余均為單周期或雙周期指令。也就是說,如果51 單片機(jī)采用的是12MHz 晶振,那么它執(zhí)行一條指令一般只需 12 微秒的時(shí)間;如果采用的是6MHz 晶振,執(zhí)行一條指令一般就需24微秒的時(shí)間。以 12MHZ晶振為例,指令周期、機(jī)器周期與時(shí)鐘周期的關(guān)系是:指令周期:CPU執(zhí)行一條指令所需要的時(shí)間稱為指令周期,

52、它是以機(jī)器周期為單位的,指令不同,所需的機(jī)器周期也不同。時(shí)鐘周期:也稱為振蕩周期,一個(gè)時(shí)鐘周期晶振的倒數(shù)。MCS-51 單片機(jī)的一個(gè)機(jī)器周期=6 個(gè)狀態(tài)周期=12 個(gè)時(shí)鐘周 期。MCS-51單片機(jī)的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,它們的指令周期不盡相同,一個(gè)單周期指令包含一個(gè)機(jī)器周期,即12個(gè)時(shí)鐘周期,所以一條單周期指令被執(zhí)行所占時(shí)間為12 ( 1/12000000) =1 s。了解以上概念后,那么可以依據(jù)單片機(jī)器件手冊(cè)中89C51 的指令執(zhí)行周期和其所用晶振頻率來完成需要精確延時(shí)時(shí)間的延時(shí)程序。延時(shí)指令在單片機(jī)編程里面并沒有真正的延時(shí)指令,從上面的概念中我們知道單片機(jī)每執(zhí)行一條指令都需要一定

53、的時(shí)間,所以要達(dá)到延時(shí)的效果,只須讓單片機(jī)不斷地執(zhí)行沒有具體實(shí)際意義的指令,從而達(dá)到了延時(shí)的效果。( 1)數(shù)據(jù)傳送指令MOV數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個(gè)地方復(fù)制、拷貝到另一個(gè)地方。如: MOV R,7 #80H ;將數(shù)據(jù)80H 送到寄存器R7,這時(shí)寄存器 R7 里面存放著80H,就單這條指令而言并沒有任何實(shí)際意義,而執(zhí)行該指令則需要一個(gè)機(jī)器周期。( 2)空操作指令NOP空操作指令功能只是讓單片機(jī)執(zhí)行沒有意義的操作,消耗一個(gè)機(jī)器周期。( 3)循環(huán)轉(zhuǎn)移指令DJNZ TOC o 1-5 h z 循環(huán)轉(zhuǎn)移指令功能是將第一個(gè)數(shù)進(jìn)行減1 并判斷是否為0,不為 0 則轉(zhuǎn)移到指定地點(diǎn);為0 則往下執(zhí)行。如:

54、 DJNZ R7, KK ;將寄存器R7 的內(nèi)容減1 并判斷寄存器R7 里的內(nèi)容減完1 后是否為0, 如果 不為 0 則轉(zhuǎn)移到地址標(biāo)號(hào)為 KK 的地方;如果為0 則執(zhí)行下一條指令。這條指令需要2 個(gè)機(jī)器周期。循環(huán)轉(zhuǎn)移指令(DJNZ )除了可以給定地址標(biāo)號(hào)讓其跳轉(zhuǎn)外,還可以將地址標(biāo)號(hào)改成$,這樣程序就跳回本指令執(zhí)行。例如:DJNZR 7, $ ; R7 內(nèi)容減 1 不為 0,則再次執(zhí)行本指令;為0 則往下執(zhí)行,當(dāng)R7 的值改為10 時(shí),則執(zhí)行完該條程序所需的時(shí)間為 2*10=20 s。利用以上三條指令的組合就可以比較精確地編寫出所需要的延時(shí)程序。下面是本設(shè)計(jì)的程序中延時(shí)程序的計(jì)算:MOV R3,

55、#200;1D1: MOV R5,#250;1 TOC o 1-5 h z F1: DJNZ R5, F1;2*R5DJNZ R3,D1;2*R3+(1+2*R5)*R3RET 2上面這個(gè)子程序共有四條指令,現(xiàn)在分別就每一條指令被執(zhí)行的次數(shù)和所耗時(shí)間進(jìn)行分析。第一句:MOVR 3, #200 在整個(gè)子程序中只被執(zhí)行一次,且為單周期指令,所以耗時(shí)1 s第二句:MOV R,5 #250 從看到只要R3-1 不為0,就會(huì)返回到這句,共執(zhí)行了R3次,共耗時(shí)200 s第三句:DJNZ R5, F1 只要 R5-1 不為 0, 就反復(fù)執(zhí)行此句(內(nèi)循環(huán) R5 次) ,又受外循環(huán)R3控制,所以共執(zhí)行R3*R5

56、次,因是雙周期指令,所以耗時(shí)2*R3*R5 s。所以精確延時(shí)時(shí)間為:1+( 1 200) +( 2 250 200) +( 2 ) +2=( 2*250+3) *200+3=100603 s 100ms=0.1s點(diǎn)陣左移顯示的流程圖及分析流程圖 ( 圖 2.1) 和程序的簡(jiǎn)要說明:在程序的開始設(shè)定初始的地址是0H,并定義了“選擇符號(hào)F”的初值為0,為下面的點(diǎn)陣掃描的出口選擇準(zhǔn)備。在主程序的開始的延時(shí)子程序,延時(shí) 0.1秒,既是在程序通電啟動(dòng)開始的停頓,也作為一次移動(dòng)的末尾時(shí)到開始下一次重復(fù)移動(dòng)開始之間的停頓,在上面的 “延時(shí)子程序”中已經(jīng)介紹了計(jì)算的方法。程序接著向下運(yùn)行,定義了取碼指針的位置

57、,設(shè)為00H的初始位置,再下面的74LS154掃描指針的初值設(shè)為00H,是因?yàn)閽呙枰獜拈_始的零點(diǎn)開始掃。程序的循環(huán)運(yùn)行是從M3開始的,M3的開始10行程序是點(diǎn)陣顏色的選擇,即確定列掃描出口的選擇,因?yàn)镕 的初值是0,所以先從掃描信號(hào)先從P1 口輸出,即首先顯示的是紅色的點(diǎn)陣。掃描信號(hào)輸出后,取碼指針先去的第一個(gè)碼送到點(diǎn)陣的上半部分,打開上部分點(diǎn)陣的74LS373鎖存器關(guān)閉下面部分74LS373鎖存器,把信號(hào)送到點(diǎn)陣的上部分。再指針加1,關(guān)閉上部分點(diǎn)陣的 74LS373鎖存器,打開下面部分74LS373鎖存器,取相鄰的碼送到點(diǎn)陣的下半部分,緊挨著的延時(shí)程序是設(shè)定每列掃描的時(shí)間:MOV R3,#5

58、0;DJNZ R3,$;延時(shí)時(shí)間為:1+( 2*50) =101us 0.1ms下面的“DJNZ R6,M3;”到M3的循環(huán)可以計(jì)算顯示一次一個(gè)整屏的時(shí)間為0.1ms*16=1.1 ms ,再下面的“DJNZ R1,M2;”到M2的循環(huán)可以計(jì)算出每個(gè)屏的停留時(shí)間,也是向左每移動(dòng)一下的時(shí)間間隔為0.1ms*16*65=104ms=0.1s。當(dāng)字型向左移動(dòng)一位的時(shí)候,取碼指針應(yīng)在先加2 再進(jìn)行下一個(gè)字型的取碼,因?yàn)楸驹O(shè)計(jì)每1 列的碼為2 個(gè)。最后的部分代碼:XRL A,#128;JNZ M1;CPL F0;JMP START;的意思是:在控制字型移動(dòng)完以后,返回到頭重新開始移動(dòng),因?yàn)樵诒驹O(shè)計(jì)是顯示

59、6 個(gè)字型, 6 個(gè)字型的碼為192 個(gè),取碼指針的初始為0,每次加2,到192 時(shí)循環(huán)結(jié)束,改變F 的狀態(tài),跳到程序的最上面開始部分,開始黃色字型的移動(dòng)顯示。說明一下:本設(shè)計(jì)是以顯示6 個(gè)字的循環(huán)為例的,正如前面所說,字型可以任意加進(jìn)去,顯示任意多的字左移的顯示,還可以顯示一些符號(hào)和圖形。只要有字型的代碼,再稍微改一下程序就可以顯示了。顯示效果:開始停0.1 秒 , 顯示向左移動(dòng)的紅色字“XXXX” ,移動(dòng)的速度為每0.1 秒移動(dòng)一下,到左后一個(gè)字。在主程序的開始的延時(shí)作為一次移動(dòng)的末尾時(shí)到開始下一次重復(fù)移動(dòng)開始之間的停頓,和字符移動(dòng)的時(shí)間間隔相同,保持了移動(dòng)的平穩(wěn)連貫性。廣告燈自動(dòng)控制系統(tǒng)

60、開始取碼指針載入ASTART:清除屏幕F=0取碼指針20H 初值為 00清除屏幕154 掃描指針初值為00掃描下一行設(shè)置每屏停留時(shí)間M2每屏 4 字,取碼指針存R0M3掃描指針A清除 154 掃描M1NP0.2 清 零P0.1 置 1 輸 出至 P0.1 掃 描P0. 1 清 零P0. 2 置 1 輸 出至 P0.3 掃 描取碼指針載入A到 TABLE 取下半部數(shù)據(jù)P0.0 置 1, P0.1 清 0 輸出至 P2取碼值加1 并延時(shí)指針加 2 并回存取碼指針載入 M4A到 TABLE 取上半部數(shù)據(jù)P0.0 清0, P0.1 置 1 輸出至 P2 口顯示25取下一個(gè)碼RETF0 取反廣告燈自動(dòng)控

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論