2282 1616點(diǎn)陣LED電子顯示屏,點(diǎn)陣,led,電子顯示屏
Ⅰ、畢業(yè)設(shè)計(jì)(論文)題目基于 MS51單片機(jī)的 4個(gè) 16x16 點(diǎn)陣 LED電子顯示屏的設(shè)計(jì) Ⅱ、畢業(yè)設(shè)計(jì)(論文)工作內(nèi)容設(shè)計(jì)一個(gè)四位的 16X16的點(diǎn)陣電子顯示屏。利用單片機(jī)串口擴(kuò)展為并口,實(shí)現(xiàn)數(shù)據(jù)的列掃描,利用單片機(jī)的 P1口譯碼來實(shí)現(xiàn)行掃描。加深對(duì)單片機(jī)和數(shù)字電路的理解,熟悉單片機(jī)串口的工作方式以及串口的擴(kuò)展。學(xué)會(huì)獨(dú)立的查找資料,并給出完整的設(shè)計(jì)方案。為以后獨(dú)立開展與專業(yè)相關(guān)的工作打下了基礎(chǔ)。熟練使用 protel,keil,C軟件。學(xué)會(huì)論文的撰寫及排版工作。 本方案設(shè)計(jì)一個(gè)電子顯示屏,具體要求滿足以下條件: (1)要求采用 51單片機(jī)作為微控制器; (2)通過四個(gè) 16x16 的點(diǎn)陣 LED進(jìn)行文字顯示; (3)在目測(cè)條件下 LED顯示屏各點(diǎn)亮度均勻、充足、穩(wěn)定、清晰無串?dāng)_。 (4)文字顯示具有每排字有滾動(dòng)和逐排等顯示方式。Ⅲ、進(jìn)度安排:第 1-2周 收集資料并整理設(shè)計(jì)思想 第 3-4周 開始硬件部分設(shè)計(jì),學(xué)習(xí) AT89S52單片機(jī)的應(yīng)用 第 5周 列驅(qū)動(dòng)電路設(shè)計(jì) 第 6周 行驅(qū)動(dòng)電路設(shè)計(jì) 第 7周 繪制 PROTELL原理圖 第 8周 軟件設(shè)計(jì) 第 9周 軟件設(shè)計(jì)—顯示驅(qū)動(dòng)程序 第 10周 軟件設(shè)計(jì)—系統(tǒng)主程序 第 11周 調(diào)試并進(jìn)行性能分析 第 12-14周 整理文檔 Ⅳ、主要參考資料:[1]諸昌鈐 編著 :《LED 顯示屏系統(tǒng)原理及工程技術(shù)》 .成都:電子科技大學(xué)出版社,2000 [2]張志良 主編 :《單片機(jī)原理及控制技術(shù)》 (第 2版) .北京:機(jī)械工業(yè)出版社,2005[3]李光飛 編著 :《單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)》 (第 2版) . 北京:北京航空航天出版社, [4]吳金戍,沈慶陽(yáng),郭庭吉編著.8051 單片機(jī)實(shí)踐與應(yīng)用.北京:清華大學(xué)出版社.[5]吉 雷 主編 :《Protel99 從入門到精通》 . 西安:西安電子科技大學(xué)出版社,2004.[6]侯麗玲:基于 AT89S52單片機(jī)的 LEDD點(diǎn)陣顯示屏控制系統(tǒng)的設(shè)計(jì)[J],漳州職業(yè)技術(shù)學(xué)院學(xué)報(bào)。系負(fù)責(zé)人審核意見(從選題是否符合專業(yè)培養(yǎng)目標(biāo)、是否結(jié)合科研或工程實(shí)際、綜合訓(xùn)練程度、內(nèi)容難度及工作量等方面加以審核): 2摘 要LED點(diǎn)陣顯示屏作為一種新興的顯示器件,是由多個(gè)獨(dú)立的 LED發(fā)光二極管封裝而成. LED點(diǎn)陣顯示屏可以顯示數(shù)字或符號(hào), 通常用來顯示時(shí)間、速度、系統(tǒng)狀態(tài)等。本設(shè)計(jì)是4個(gè)16×16點(diǎn)陣 LED電子顯示屏的設(shè)計(jì)。整機(jī)以美國(guó) ATMEL公司生產(chǎn)的40腳單片機(jī) AT89C51為核心,介紹了以它為控制系統(tǒng)的 LED點(diǎn)陣電子顯示屏的動(dòng)態(tài)設(shè)計(jì)和開發(fā)過程。通過該芯片控制一個(gè)行驅(qū)動(dòng)器74LS154和八個(gè)列驅(qū)動(dòng)器74HC595來驅(qū)動(dòng)顯示屏顯示。該電子顯示屏可以顯示各種文字或單色圖像,全屏能顯示4個(gè)漢字,采用16塊8 x 8點(diǎn)陣 LED顯示模塊來組成4個(gè)16x16點(diǎn)陣顯示模式。顯示采用動(dòng)態(tài)顯示,使得圖形或文字能夠?qū)崿F(xiàn)靜止、移入移出等多種顯示方式。文中詳細(xì)介紹了 LED點(diǎn)陣顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì),以及使用說明等。關(guān)鍵詞:AT89C51 單片機(jī) LED 點(diǎn)陣顯示 動(dòng)態(tài)顯示 3AbstractAs a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This design is 4 16 ×16 lattice LED electron display monitor design.The whole equipment is with the 40-pin AT89C51 MCU (Micro Controller Unit) produced by the American ATMEL company at the core, introduced take it as the control system LED lattice electron display monitor dynamic design and the development process. Controls good driver 74LS154 andeight row driver 74HC595 through this chip actuates the display monitor demonstration. The electronic screen can show all kinds of written or monochrome images, one full screen display Chinese characters,sixteen pieces of 8 x 8 dot-matrix LED display modules to form the 16x16 dot matrix display mode. Show dynamic show that makes static graphic or text can be achieved, shifted out of various formats. This paper describes the hardware design of the LED dot matrix display, and the principle function of the various parts of the circuit, the corresponding software program design and the use of some such. Key words:AT89C51 Micro Controller Unit;LED;LatticeDisplay;DynamicDisplay 4目 錄摘 要 ....................................................................2Abstract ..................................................................3第一章 緒論 ...............................................................51.1問題提出 ...........................................................51.2課題背景 ...........................................................6第二章 功能要求及方案論證 .................................................82.1功能要求 ...........................................................82.2顯示模塊方案論證 ...................................................82.3數(shù)據(jù)傳輸方案論證 ...................................................9第三章 系統(tǒng)硬件電路的設(shè)計(jì) ................................................113.1單片機(jī)系統(tǒng)及外圍電路 ..............................................113.2列驅(qū)動(dòng)電路 ........................................................133.3行驅(qū)動(dòng)器 ..........................................................153.4元件清單 ..........................................................18第四章 系統(tǒng)程序的設(shè)計(jì) ....................................................204.1顯示驅(qū)動(dòng)程序 ......................................................204.2系統(tǒng)主程序 ........................................................22第五章 調(diào)試及性能分析 ...................................................275.1開發(fā)環(huán)境介紹 ......................................................275.2 理論性能分析 ......................................................275.3 系統(tǒng)調(diào)試 ..........................................................28第六章 總 結(jié) ............................................................296.1 工作過程介紹 ......................................................296.2 系統(tǒng)功能的拓展方向 ................................................29致謝 .....................................................................32 5第一章 緒論1.1 問題提出LED顯示屏分為數(shù)碼顯示屏、圖文顯示屏和視頻顯示屏,均由 LED矩陣塊組成。LED 數(shù)碼顯示屏的顯示器件為7段碼數(shù)碼管,適于制作時(shí)鐘屏、利率屏等,顯示數(shù)字的電子顯示屏。圖文顯示屏可與計(jì)算機(jī)同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計(jì)算機(jī)進(jìn)行控制,圖文、圖像并茂,以實(shí)時(shí)、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動(dòng)畫、錄像、電視、VCD節(jié)目以及現(xiàn)場(chǎng)實(shí)況。LED之所以受到廣泛重視而得到迅速發(fā)展,是與它本身所具有的優(yōu)點(diǎn)分不開的。這些優(yōu)點(diǎn)概括起來是:亮度高、工作電壓低、功耗小、小型化、壽命長(zhǎng)、耐沖擊和性能穩(wěn)定。LED 的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。近年來,單片機(jī)已經(jīng)成為科技領(lǐng)域的有力工具,人類社會(huì)生活的得力助手。它的廣泛應(yīng)用,不僅僅體現(xiàn)在工業(yè)控制、機(jī)電應(yīng)用、智能儀表、實(shí)時(shí)控制、航空航天、尖端武器等行業(yè)和領(lǐng)域的智能化、高精度化,而且在人類日常生活中也隨處可見它的身影。單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向 MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢(shì)。隨著微電子技術(shù)、IC 設(shè)計(jì)、EDA 工具的發(fā)展,基于 SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。目前,單片機(jī)正朝著高性能和多種方向發(fā)展,其趨勢(shì)將進(jìn)一步向著 CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展,其功能也將越來越豐富,速度也越來越快,甚至有些方面并不遜于 ARM或DSP。隨著 LED顯示屏在廣告?zhèn)髅筋I(lǐng)域逐漸嶄露頭角,其控制系統(tǒng)也如雨后春筍,層出不窮。由于它的控制系統(tǒng)均是基于嵌入式微處理器開發(fā),所以單片機(jī)在其 6中也占有一席之地。但是,由于 LED顯示屏控制較復(fù)雜,特別是對(duì)于顯示特殊效果,如循環(huán)移動(dòng)、覆蓋霓虹燈效果,要求處理器運(yùn)算速度快、執(zhí)行效率高,所以很多控制卡生產(chǎn)廠家采用高端嵌入式系統(tǒng)進(jìn)行設(shè)計(jì)。這樣做雖然能在一定程度上提高數(shù)據(jù)處理速度,但是并不能完全滿足所有顯示效果要求,而且開發(fā)和產(chǎn)品成本也會(huì)隨之成倍增加,甚至由于其設(shè)計(jì)不當(dāng)可能在顯示時(shí)出現(xiàn)抖動(dòng)、閃爍、重影等現(xiàn)象。歸根結(jié)底,LED 顯示屏控制卡的設(shè)計(jì)中硬件是一方面因素,同時(shí)還要考慮到顯示數(shù)據(jù)組織方式,通過軟硬件結(jié)合的方法才能設(shè)計(jì)出一款性價(jià)比較高的控制卡。本論文提出基于普通51系列單片機(jī)實(shí)現(xiàn) LED顯示屏控制的原理及方法。1.2 課題背景LED顯示屏的發(fā)展可分為以下幾個(gè)階段:第一階段為 1990年到 1995年,主要是單色和 16級(jí)雙色圖文屏。用于顯示文字和簡(jiǎn)單圖片,主要用在車站、金融證券、銀行、郵局等公共場(chǎng)所,作為公共信息顯示工具。 第二階段是 1995年到 1999年,出現(xiàn)了 64級(jí)、256 級(jí)灰度的雙基色視頻屏。視頻控制技術(shù)、圖像處理技術(shù)、光纖通信技術(shù)等的應(yīng)用將 LED顯示屏提升到了一個(gè)新的臺(tái)階。LED 顯示屏控制專用大規(guī)模集成電路芯片也在此時(shí)由國(guó)內(nèi)企業(yè)開發(fā)出來并得以應(yīng)用。 第三階段從 1999年開始,紅、純綠、純藍(lán) LED管大量涌入中國(guó),同時(shí)國(guó)內(nèi)企業(yè)進(jìn)行了深入的研發(fā)工作,使用紅、綠、藍(lán)三原色 LED生產(chǎn)的全彩色顯示屏被廣泛應(yīng)用,大量進(jìn)入體育場(chǎng)館、會(huì)展中心、廣場(chǎng)等公共場(chǎng)所,從而將國(guó)內(nèi)的大屏幕帶入全彩時(shí)代。 隨著 LED原材料市場(chǎng)的迅猛發(fā)展,表面貼裝器件從 2001年面世,主要用在室內(nèi)全彩屏,并且以其亮度高、色彩鮮艷、溫度低的特性,可隨意調(diào)整的點(diǎn)間距,被不同價(jià)位需求者所接受,在短短兩年多時(shí)間內(nèi),產(chǎn)品銷售額已超過 3億元,表面貼裝全彩色 LED顯示屏應(yīng)用市場(chǎng)進(jìn)入新世紀(jì)。為了適應(yīng) 2008年奧運(yùn)會(huì)的“瘦身”計(jì)劃,利亞德開發(fā)了表面貼裝雙基色顯示屏,大量用于訓(xùn)練館和比賽計(jì)時(shí)計(jì)分系統(tǒng)。在奧運(yùn)場(chǎng)館全彩屏方面,為緊縮投資,全彩屏大部分采用可 7拆卸方式,奧運(yùn)期間可作為實(shí)況轉(zhuǎn)播工具,賽事結(jié)束后可用于租賃,作為演出、國(guó)家政策發(fā)布等公共場(chǎng)合應(yīng)用工具,通過這種方式可盡快收回成本。 單片機(jī)誕生于 20世紀(jì) 70年代末,經(jīng)歷了 SCM、MCU、SoC 三大階段。1.SCM即單片微型計(jì)算機(jī)(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。 “創(chuàng)新模式”獲得成功,奠定了SCM與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,Intel公司功不可沒。2.MCU即微控制器(Micro Controller Unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智能化控制能力。它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān),因此,發(fā)展 MCU的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,Intel逐漸淡出 MCU的發(fā)展也有其客觀因素。在發(fā)展 MCU方面,最著名的廠家當(dāng)數(shù)Philips公司。Philips 公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),將 MCS-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記 Intel和 Philips的歷史功績(jī)。3.單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向 MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢(shì)。隨著微電子技術(shù)、IC 設(shè)計(jì)、EDA 工具的發(fā)展,基于 SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。單片機(jī)可以從以下幾個(gè)方面分類:1.按應(yīng)用領(lǐng)域可分為:家電類、工控類、通信類和個(gè)人信息終端類等。2.按通用性可分為:通用型和專用型。3.按總線結(jié)構(gòu)可分為總線型和非總線型。4.按指令運(yùn)行的振蕩周期可分為標(biāo)準(zhǔn)型和改進(jìn)型。 8第二章 功能要求及方案論證2.1 功能要求本方案設(shè)計(jì)一個(gè)電子顯示屏,具體要求滿足以下條件:1.要求采用 51單片機(jī)作為微控制器;2.通過四個(gè) 16x16 的點(diǎn)陣 LED進(jìn)行文字顯示;3.在目測(cè)條件下 LED顯示屏各點(diǎn)亮度均勻、充足、穩(wěn)定、清晰無串?dāng)_。 4.文字顯示具有每排字有滾動(dòng)和逐排等顯示方式。2.2 顯示模塊方案論證四個(gè)8×8的點(diǎn)陣構(gòu)成一個(gè)16×16的點(diǎn)陣。行和列的交叉處有一個(gè) LED,共由256個(gè) LED構(gòu)成,如果 LED的陽(yáng)極與行相連,而陰極與列相連,那么只要給該LED對(duì)應(yīng)的行以高電平,列以低電平,那么對(duì)應(yīng)的 LED就發(fā)光。圖2-1畫出了室內(nèi)直插式8×8點(diǎn)陣雙基色 LED模塊實(shí)物圖。這種模塊由64個(gè)發(fā)光 LED芯片以8×8的形式構(gòu)成一個(gè)正方形模塊,然后用2列8針引腳將內(nèi)部電路接口引出,供驅(qū)動(dòng)電路使用。圖2-1 LED 點(diǎn)陣顯示原理圖 9行對(duì)應(yīng)的給 LED的陽(yáng)極,先給第一行以高電平,如果送給16列的代碼為EFFF,則第一行的第4個(gè) LED被點(diǎn)亮,再給第二行以高電平,如果送給16列的代碼為 EF07,則第二行的第4、9、10、11、12、13個(gè)被點(diǎn)亮,接著給第三行以高電平,同時(shí)給列以驅(qū)動(dòng)代碼,這樣不斷地進(jìn)行行行的掃描,只要速度夠快,由于人的視覺暫留作用,就不會(huì)感覺到明顯的閃爍感。點(diǎn)陣上會(huì)看到一個(gè)清晰的“機(jī)”字。LED數(shù)碼管結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜。本文所述的是 LED的數(shù)據(jù)顯示方式,這種方式通常使用 8段 LED或者 16段 LED。在實(shí)際應(yīng)用中,點(diǎn)亮 LED數(shù)碼管的方式有靜態(tài)和動(dòng)態(tài) 2種方法。本文以 8段 LED作為示例來論證方案1.靜態(tài)顯示方式靜態(tài)顯示方式,即 8段 LED數(shù)碼管在顯示某一個(gè)數(shù)碼時(shí),加在數(shù)碼管上的段碼保持不變,直至換顯其他數(shù)碼為止。這樣數(shù)碼管的每一段均應(yīng)由一條輸出線來控制,每顯示以為數(shù)碼需要 8根輸出線,當(dāng) N位顯示則需 N×8根輸出控制線。占用較多 I/O資源。2.動(dòng)態(tài)顯示方式為解決靜態(tài)顯示占用較多 I/O資源的問題,在多位顯示時(shí)通常采用動(dòng)態(tài)顯示方式,動(dòng)態(tài)顯示是將所有數(shù)碼管的段碼線對(duì)應(yīng)并聯(lián)在一起,由一個(gè) 8位的輸出口控制,每位數(shù)碼管的公共端分別出一位 I/O線控制。顯示不同數(shù)碼時(shí),由位線控制各位輪流顯示。位線控制某位選通時(shí),該位應(yīng)顯示數(shù)碼的段碼同時(shí)加在段碼線上,即每一時(shí)刻僅僅有一位數(shù)碼管是被點(diǎn)亮的,當(dāng)輪流顯示的速度較快(每秒 24次以上) ,由于人眼的視覺暫留現(xiàn)象,看起來就像所有位同時(shí)顯示一樣,這時(shí),我們就能看到穩(wěn)定的圖像了由于單片機(jī)的特性,我們將采用方案 2:動(dòng)態(tài)顯示方式,采用動(dòng)態(tài)顯示方式進(jìn)行顯示時(shí),每一行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(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ù)傳輸可以采用并列方式或串行方式。 102.3 數(shù)據(jù)傳輸方案論證顯然,采用并行方式時(shí),從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并列傳輸?shù)姆桨甘遣豢扇〉?。采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓盘?hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都以傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。這樣,對(duì)于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩部分。對(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ù)的顯示就需要具有所存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動(dòng)器電路應(yīng)具有的功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并處的移位功能;對(duì)于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。圖 2-2為顯示屏電路實(shí)現(xiàn)的結(jié)構(gòu)框圖。圖 2-2.顯示屏電路框圖 11第三章 系統(tǒng)硬件電路的設(shè)計(jì)硬件電路大致上可以分成單片機(jī)系統(tǒng)及外圍電路、列驅(qū)動(dòng)電路和行驅(qū)動(dòng)電路三部分。16×16 點(diǎn)陣顯示屏的硬件原理圖如圖 3-6。 3.1 單片機(jī)系統(tǒng)及外圍電路單片機(jī)采用 MSC-51或其兼容系列芯片,采用 24MHZ或更高頻率晶振,以獲得較高的刷新頻率,時(shí)期顯示更穩(wěn)定。單片機(jī)的串口與列驅(qū)動(dòng)器相連,用來顯示數(shù)據(jù)。P1 口低 4位與行驅(qū)動(dòng)器相連,送出行選信號(hào);P1.5~P1.7 口則用來發(fā)送控制信號(hào)。P0 口和 P2口空著,在有必要的時(shí)候可以擴(kuò)展系統(tǒng)的 ROM和 RAM。 圖 3-1 MSC51單片機(jī)最小系統(tǒng) 12MSC51單片機(jī)管腳說明如下:VCC:供電電壓。 GND:接地。 P0口:P0 口為一個(gè) 8位漏級(jí)開路雙向 I/O口,每腳可吸收 8TTL門電流。當(dāng) P1口的管腳第一次寫 1時(shí),被定義為高阻輸入。 P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng) FIASH進(jìn)行校驗(yàn)時(shí), P0輸出原碼,此時(shí) P0外部必須被拉高。 P1口:P1 口是一個(gè)內(nèi)部提供上拉電阻的 8位雙向 I/O口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入 1后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH編程和校驗(yàn)時(shí),P1 口作為第八位地址接收。 P2口:P2 口為一個(gè)內(nèi)部上拉電阻的 8位雙向 I/O口,P2 口緩沖器可接收,輸出 4個(gè) TTL門電流,當(dāng) P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲(chǔ)器或 16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí), P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2 口輸出其特殊功能寄存器的內(nèi)容。 P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3 口管腳是 8個(gè)帶內(nèi)部上拉電阻的雙向 I/O口,可接收輸出 4個(gè)TTL門電流。當(dāng) P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 131/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ALE脈沖。如想禁止ALE的輸出可在 SFR8EH地址上置 0。此時(shí), ALE 只有在執(zhí)行MOVX,MOVC 指令是 ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE禁止,置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN 信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH) ,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1時(shí),/EA 將內(nèi)部鎖定為 RESET;當(dāng)/EA 端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加 12V編程電源( VPP) 。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。3.2 列驅(qū)動(dòng)電路列驅(qū)動(dòng)電路由集成電路 74HC595構(gòu)成。它具有一個(gè) 8位串入并出的移位寄存器和一個(gè) 8位輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在顯示本行列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù),既達(dá)到重疊處理的目的。圖 3-2 74HC595結(jié)構(gòu)圖表 1474HC595的外形及內(nèi)部結(jié)構(gòu)如圖 3-2所示。它的輸入側(cè)有 8個(gè)串行移位寄存器,每個(gè)移位寄存器的輸出都連接一個(gè)輸出鎖存器。引腳 SI是串行數(shù)據(jù)的輸入端。引腳 SCK是移位寄存器的移位時(shí)鐘脈沖,在其上升沿發(fā)生移位,并將 SI的下一個(gè)數(shù)據(jù)打入最低位。74HC595 引腳說明見表 3-1。列驅(qū)動(dòng)電路見圖 3-3。表 3-1 74HC595引腳說明符號(hào) 引腳 描述Oo~O7 1~7 并行數(shù)據(jù)輸出GND 8 地Q7’ 9 串行數(shù)據(jù)輸出SRCLR 10 主復(fù)位(低電平)SRCLK 11 移位寄存時(shí)鐘輸入RCLK 12 存儲(chǔ)寄存時(shí)鐘輸入CE 13 輸出有效(低電平)SER 14 串行數(shù)據(jù)輸入VCC 16 電源移位后的各位信號(hào)出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCK 是輸出鎖存器的打入信號(hào),其上升沿將移位寄存器的輸出打入輸出鎖存器。引腳 G是輸出三態(tài)門的開放信號(hào),只有當(dāng)其為低時(shí)鎖存器的輸出才開放,否則為高組態(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)輸出。但因?yàn)?QH受輸出鎖存器的打入控制,所以還從輸出鎖存器前引出 QH,作為與移位寄存器完全同步的級(jí)聯(lián)輸出。 15圖 3-3列驅(qū)動(dòng)電路 將 8片 74HC595進(jìn)行級(jí)連,可共用一個(gè)移位時(shí)鐘 SCK及數(shù)據(jù)鎖存信號(hào)RCK。這樣,當(dāng)?shù)谝恍行枰@示的數(shù)據(jù)經(jīng)過 8x8=64個(gè) SCK時(shí)鐘后便可將其全 部移入 74HC595中,此時(shí)還將產(chǎn)生一個(gè)數(shù)據(jù)鎖存信號(hào) RCK將數(shù)據(jù)鎖存在 74HC595中,并在使能信號(hào) G的作用下,使串入數(shù)據(jù)并行輸出,從而使與各輸 出位對(duì)應(yīng)的場(chǎng)驅(qū)動(dòng)管處于放大或截止?fàn)顟B(tài);同時(shí)由行掃描控制電路產(chǎn)生信號(hào)使第一行掃描管導(dǎo)通,相當(dāng)于第一行 LED的正端都接高,顯然,第一行 LED管的亮滅 就取決于 74HC595中的鎖存信號(hào);此外,在第一行 LED管點(diǎn)亮的同時(shí),再在74HC595中移入第二行需要顯示的數(shù)據(jù),隨后將其鎖存,同時(shí)由行掃描控 制電路將第一行掃描管關(guān)閉而接通第二行,使第二行 LED管點(diǎn)亮,以此類推,當(dāng)?shù)谑袙呙柽^后再回到第一行,這樣,只要掃描速度足夠高,就可形成一幅完整 的文字或圖像。3.3 行驅(qū)動(dòng)器由于 4點(diǎn)陣顯示器有 16行,為充分利用單片機(jī)的接口,本電路中加入了一個(gè) 4-16線譯碼器 74LS154,其輸入是一個(gè) 16進(jìn)制碼,解碼輸出為低態(tài)掃描信 16號(hào),它的結(jié)構(gòu)如圖 3-4所示。圖 3-4 74LS154結(jié)構(gòu)圖74LS154 引腳說明如表 3-2表3-2 符號(hào) 引腳 描述~ , ~0Y1151~11 ,13~17 輸出端GND 12 GND電源地~1G218~19 使能輸出端A、B、C、D 20~23 地址輸出端Vcc 24 VCC電源正 17圖 3-5 行 驅(qū) 動(dòng) 電 路 如圖3-5所示的行驅(qū)動(dòng)電路中,把74LS154的 G1和 G2引腳接地,然后以A、B、C、D 四腳為輸入端。就會(huì)形成16種不同的輸入狀態(tài),分別為0000~1111,然后使每種狀態(tài)只控制一路輸出,即會(huì)有16路輸出。如果一行64點(diǎn)全部點(diǎn)亮,則通過74LS154的電流將達(dá)640 mA,而實(shí)際上,74LS154譯碼器提供不了足夠的吸收電流來同時(shí)驅(qū)動(dòng)64個(gè) LED同時(shí)點(diǎn)亮,因此,應(yīng)在74LS154每一路輸出端與16x64點(diǎn)陣顯 示器對(duì)應(yīng)的每一行之間用一個(gè)三極管來將電流信號(hào)放大,本文選用的是三極管8550。這樣,74LS154某一輸出腳為低電平時(shí),對(duì)應(yīng)的三極管發(fā) 射極為高電平從而使點(diǎn)陣顯示器的對(duì)應(yīng)行也為高電平。 183.4 元件清單 在本次設(shè)計(jì)中,用到的元件清單如下表 3-3表 3-3 元件名稱 數(shù)量(個(gè))8×8LED 顯示屏 16MSC51 單片機(jī) 174LS154 線譯碼器 174LS595 集成電路 874HC245 驅(qū)動(dòng)芯片 174HC00 與非門 1 19123456ABCD654321D C B ATitleNumberRevisionSize BDate:31-May-2010Sheet of File:F:\業(yè)業(yè)業(yè)業(yè)\jiangchao\protel\first.ddbDrawn By:P101P12P123P134P145P156P167P178RESET9RXD/P3010TXD/P3111INT0/P3212INT1/P3313T0/P3414T1/P3515WR/P3616RD/P3717X218X119GND20P2021P2122P223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P039VCC40U1 89S52CYJTC2 30PC3 30PR7210KC110US1 SW2VCC RSTRSTO015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U774LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U874LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U974LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U1074LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U1174LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U1274LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U1374LS595O015 O11 O22O33 O44 O55O66 O77Q79 GND 8VCC 16SER 14SRCLK 11SRCLR 10RCLK 12CE 13U1474LS595R1 470R2 470R3 470R4 470R5 470R6 470R7 470R8 470R9 470R10 470R1 470R12 470R13 470R14 470R15 470R16 470R17 470R18 470R19 470R20 470R21 470R2 470R23 470R24 470R25 470R26 470R27 470R28 470R29 470R30 470R31 470R32 470R3 470R34 470R35 470R36 470R37 470R38 470R39 470R40 470R41 470R42 470R43 470R4 470R45 470R46 470R47 470R48 470R49 470R50 470R51 470R52 470R53 470R54 470R5 470R56 470R57 470R58 470R59 470R60 470R61 470R62 470R63 470R64 47012345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LED12345678910111213141516BT?8*8LEDG19DIR1A12B118A23B217A34B316A45B415A56B514A67B613A78B712A89B811U? 74LS245VCCR71KR781KR791KR801KR811KR821KR831KR841KR851KR861KR871KR81KR891KR901KR911KR921KD20C21B22A23G118G219011223344556677889910101111121213131414151516VCC24GND12U2 74LS154VCCQ1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16R93 R94 R95 R96 R97 R98 R99 R10 R101 R102 R103 R104 R105 R106 R107 R108VCC12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516U?8*8LED12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798065666768697071727374757677787980656667686970717273747576777879806566676869707172737475767778798065666768697071727374757677787980656667686970717273747576777879806566676869707172737475767778798065666768697071727374757677787980VCCVCC圖 3-6 4個(gè) 16×16點(diǎn)陣顯示屏硬件原理圖圖 3-6為 4個(gè)點(diǎn)陣顯示屏硬件原理圖,因?yàn)槭袌?chǎng)上買不到 16×16的點(diǎn)陣顯示屏,所以在現(xiàn)實(shí)中,硬件部分采用了 4塊 8×8的點(diǎn)陣顯示屏來構(gòu)成 1塊16×16 LED顯示屏. 20第四章 系統(tǒng)程序的設(shè)計(jì)顯示屏軟件的主要功能是向屏體提供顯示數(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)生行掃描信號(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)。從有利于實(shí)現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu)化考慮,顯示屏程序適宜采用 C語言編寫。4.1 顯示驅(qū)動(dòng)程序顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對(duì)定時(shí)器 T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16 掃描顯示屏的刷新率(幀頻)計(jì)算公式如下:刷頻率(幀頻)= × 溢出率= × (4-1)160T16)53(20tfosc?其中 f位晶振頻率,t 為定時(shí)器 T0初值(工作在 16位定時(shí)器模式) 。然后顯示驅(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ù)打入輸出鎖存器并鎖存,然后再輸出新的行號(hào),重新打開顯示。圖 4-1為顯示驅(qū)動(dòng)程序(顯示屏掃描函數(shù))流程圖。 21圖 4-1.顯示驅(qū)動(dòng)程序流程圖顯示驅(qū)動(dòng)程序:--------------------------------------多個(gè) 16*16LED 顯示演示程序MCU AT89C51 XAL 24MHz --------------------------------------//以下程序能實(shí)現(xiàn)多個(gè) 16*16LED 屏的多個(gè)字符顯示,顯示方式有整行上移、簾入簾出、左移、右移//#include "reg52.h"#define BLKN 8 //列鎖存器數(shù)(=LED 顯示字?jǐn)?shù)*2)#define TOTAL 20 //待顯示字個(gè)數(shù),本例共 20 個(gè)#define CONIO P1 //顯示控制口sbit G=CONIO^7; //CONIO.7 為 154 譯碼器顯示允許控制信號(hào)端口,0 時(shí)輸出,1時(shí)輸出全為高阻態(tài).sbit CLK=CONIO^6; //CONIO.6 為 595 輸出鎖存器時(shí)鐘信號(hào)端,1 時(shí)輸出數(shù)據(jù),從1 到 0 時(shí)鎖存輸出數(shù)據(jù).sbit SCLR=CONIO^5; //CONIO.5 為 595 移位寄存器清零口,平時(shí)為 1,為 0 時(shí),輸出全為 0.unsigned char idata dispram[(BLKN/2)*32]={0}; //顯示區(qū)緩存,四字共 4*32 單元///**********顯示屏掃描(定時(shí)器 T0 中斷)函數(shù)**********/void leddisplay(void) interrupt 1 using 1 22{register unsigned char m, n=BLKN;TH0 = 0xFc; //設(shè)定顯示屏刷新率每秒 62.5 幀(16 毫秒每幀)TL0 = 0x18;m = CONIO; //讀取當(dāng)前顯示的行號(hào)m = ++m & 0x0f; //行號(hào)加 1,屏蔽高 4 位do {n--;SBUF = dispram[m*2+(n/2)*30 + n]; //送顯示數(shù)據(jù)while (!TI); TI = 0;}while (n); //完成一行數(shù)據(jù)的發(fā)送G = 1; //消隱(關(guān)閉顯示)CONIO &= 0xf0; //行號(hào)端口清○CLK=1; //顯示數(shù)據(jù)打入輸出鎖存器CONIO |= m; //寫入行號(hào)CLK=0; //鎖存顯示數(shù)據(jù)G = 0; //打開顯示}//4.2 系統(tǒng)主程序本文設(shè)計(jì)的系統(tǒng)軟件能使系統(tǒng)在目測(cè)條件下 LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。系統(tǒng)主程序開始以后,首先是對(duì)系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷和端口;然后以“卷簾出”效果顯示圖形,停留約 3s;接著向上滾動(dòng)顯示“我愛單片機(jī)”這 5個(gè)漢字及一個(gè)圖形,然后以“卷簾入”效果隱去圖形。由于單片機(jī)沒有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷的循環(huán)執(zhí)行上述顯示效果。單元顯示屏可以接收來自控制器(主控制電路板)或上一級(jí)顯示單元模塊傳輸下來的數(shù)據(jù)信息和命令信息,并可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化地再傳送到下一級(jí)顯示模塊單元中,因此顯示板可擴(kuò)展至更多的顯示單元,用于顯示更多的顯示內(nèi)容。圖 5是系統(tǒng)主程序流程圖。 23圖 5.系統(tǒng)主程序流程圖系統(tǒng)主程序:/*****************主函數(shù) *********************/void main(void){ register unsigned char i,j,k,l,q,w;//初始化SCON = 0x00; //串口工作模式0:移位寄存器方式TMOD = 0x01; //定時(shí)器 T0工作方式1:16位方式TR0 = 1; //啟動(dòng)定時(shí)器 T0CONIO = 0x3f; //CONIO 端口初值IE = 0x82; //允許定時(shí)器 T0中斷//while (1){delay(2000); //2秒//第一種顯示效果:卷簾出顯示笑臉圖案for (i=0;i>7;if(q==BLKN/2-1) dispram[l*2+1+q*32] = dispram[l*2+1+q*32]>(7-k);else dispram[l*2+1+q*32] = dispram[l*2+1+q*32]>7;}}delay(100);}}delay(3000);//第一種顯示效果:卷簾出黑屏for (i=0;i0; j--)for (k=0; k>1 | dispram[l*2+q*32]>1 | Bmp[i][l*2+j-1]>1 | dispram[l*2+1+(q-1)*32]<<7; 26}}delay(100);}}delay(3000);//第四種顯示效果:卷簾入for (i=0;i<32;i++) {for(q=0;q
收藏