版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢 業(yè) 設(shè) 計(jì)</b></p><p><b> ?。ㄕf 明 書)</b></p><p> 題 目:基于51單片機(jī)的點(diǎn)陣式LED顯示控制 </p><p> 姓 名: </p><p> 學(xué) 號(hào):
2、 </p><p> 2015年5月25日</p><p><b> 目錄</b></p><p> 摘要··················&
3、#183;·································</p><p
4、> 目錄···································
5、183;················2</p><p> 緒論···············
6、3;····························3</p><p> 設(shè)計(jì)背景知識(shí)···
7、183;·························</p><p> 研究趨勢(shì)及發(fā)展現(xiàn)狀·····
8、3;····················</p><p> 8051單片機(jī)的體系結(jié)構(gòu)</p><p> 2.1 單片機(jī)的基本內(nèi)部資源····
9、183;···························</p><p> 2.2 儲(chǔ)存組織····
10、;·····························</p><p> 2.3 單片機(jī)系統(tǒng)外圍電路·
11、83;·································</p><p&g
12、t;<b> LED電路</b></p><p> 3.1 LED簡(jiǎn)介··························
13、3;····</p><p> 3.2 16×16點(diǎn)陣LED原理及應(yīng)用························
14、83;··········</p><p> 3.3 LED點(diǎn)陣的顯示文字圖形的原理···················&
15、#183;·······</p><p> 3.4驅(qū)動(dòng)方式························
16、;·········</p><p> 3.5點(diǎn)陣的移動(dòng)·····················</p&g
17、t;<p> 系統(tǒng)總體方案·····························</p><p><
18、b> 摘要</b></p><p> 本設(shè)計(jì)是基于MCS-51的16×16點(diǎn)陣LED電子顯示屏的設(shè)計(jì)。整機(jī)以美國ATMEL公司生產(chǎn)的40腳單片機(jī)AT89C51為核心,介紹了以它為控制系統(tǒng)的LED點(diǎn)陣電子顯示屏的動(dòng)態(tài)設(shè)計(jì)和開發(fā)過程。通過該芯片控制行驅(qū)動(dòng)器74LS154和列驅(qū)動(dòng)器74HC595來驅(qū)動(dòng)顯示屏顯示。該電子顯示屏可以顯示各種文字或單色圖像,全屏能顯示多個(gè)漢字、圖像、阿拉伯?dāng)?shù)字
19、等,顯示采用動(dòng)態(tài)顯示,使得文字等能夠?qū)崿F(xiàn)靜止、移入移出等多種顯示方式。設(shè)計(jì)中詳細(xì)介紹了LED點(diǎn)陣顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì),以及使用說明等。本文的設(shè)計(jì)是基于單片機(jī)系統(tǒng)的基本模塊的一部分。LED 點(diǎn)陣電子顯示屏是集微電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。本設(shè)計(jì)主要以AT89C51單片機(jī)為核心,采用串行傳輸、動(dòng)態(tài)掃描技術(shù),來制作的一款擁有多功能的模塊化16×16LED點(diǎn)
20、陣的多功能顯示屏。</p><p> 關(guān)鍵詞:AT89C51;單片機(jī);LED點(diǎn)陣;顯示屏;驅(qū)動(dòng)電路</p><p><b> 、</b></p><p><b> 第1章 緒論</b></p><p> 1.1 課題設(shè)計(jì)背景知識(shí) </p><p> 當(dāng)今世界,電子
21、技術(shù)迅猛發(fā)展,點(diǎn)陣式顯示器件作為信息顯示的重要媒體,由于LED電子顯示屏具有所顯內(nèi)容信息量大,外形美觀大方,操作使用方便靈活在金融證券、體育、郵電電信、指揮調(diào)度、國防軍事等許多領(lǐng)域中得到了廣泛應(yīng)用。因此點(diǎn)陣式顯示器件的研制、生產(chǎn)也得到了迅速的發(fā)展,并逐步形成產(chǎn)業(yè),成為光電子行業(yè)的新興產(chǎn)業(yè)領(lǐng)域。該設(shè)計(jì)廣泛涉及了計(jì)算機(jī)及電子技術(shù)中的電源技術(shù),單片機(jī)技術(shù),數(shù)據(jù)通信技術(shù),顯示技術(shù),存儲(chǔ)技術(shù),系統(tǒng)軟件技術(shù),接口及驅(qū)動(dòng)等技術(shù)。我國經(jīng)濟(jì)發(fā)展迅猛,對(duì)信
22、息傳播有越來越高的要求,可以相信,LED電子顯示屏以其大的顯示信息量,壽命長,耗電量小,重量輕,空間尺寸小,穩(wěn)定性高,易于操作,安裝和維護(hù)等特點(diǎn),將在社會(huì)經(jīng)濟(jì)發(fā)展中扮演越來越重要的角色。</p><p> LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,顯示屏由幾萬……幾十萬個(gè)半導(dǎo)體發(fā)光二極管像素點(diǎn)均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點(diǎn)。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍(lán)
23、色和純綠色LED的開發(fā)已經(jīng)達(dá)到了實(shí)用階段。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點(diǎn)。 </p><p> 在短短的十來年中,LED點(diǎn)陣顯示屏就以亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定的優(yōu)點(diǎn)迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更
24、高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性、可靠性、全色化方向發(fā)展。LED顯示屏的應(yīng)用涉及社會(huì)經(jīng)濟(jì)的許多領(lǐng)域,主要包括:1.證券交易、金融信息顯示;2.機(jī)場(chǎng)航班動(dòng)態(tài)信息顯示;3.港口、車站旅客引導(dǎo)信息顯示;4.體育場(chǎng)館信息顯示;5.道路交通信息顯示;6.調(diào)度指揮中心信息顯示;7.郵政、電信、商場(chǎng)購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示;8.廣告媒體新產(chǎn)品等。</p><p> 1.2 研究趨勢(shì)及發(fā)展現(xiàn)狀<
25、;/p><p> 1.我國LED產(chǎn)業(yè)發(fā)展現(xiàn)狀</p><p> 經(jīng)過多年的發(fā)展,我國LED產(chǎn)業(yè)鏈已經(jīng)日趨完善,企業(yè)遍布襯底、外延、芯片、封裝、應(yīng)用各產(chǎn)業(yè)環(huán)節(jié)。縱觀整體產(chǎn)業(yè)鏈條,由于上游產(chǎn)業(yè)對(duì)于技術(shù)和資金要求較高,導(dǎo)致國內(nèi)企業(yè)極少涉足,因此產(chǎn)業(yè)存在企業(yè)數(shù)量少,規(guī)模小的特點(diǎn)。相比之下,由于下游封裝和應(yīng)用對(duì)企業(yè)提出的資金和技術(shù)要求相對(duì)較低,這恰恰與國內(nèi)企業(yè)資金少,技術(shù)弱的特點(diǎn)相匹配,因此,國內(nèi)從
26、事這兩個(gè)環(huán)節(jié)的企業(yè)數(shù)量較多。這種企業(yè)結(jié)構(gòu)分布不均的局面導(dǎo)致中國LED產(chǎn)業(yè)多以低端產(chǎn)品為主,企業(yè)長期面臨嚴(yán)峻的價(jià)格壓力。隨著國家半導(dǎo)體照明工程的啟動(dòng),中國LED產(chǎn)業(yè)發(fā)展“一頭沉”的狀態(tài)正在發(fā)生改變,中國LED上游產(chǎn)業(yè)得到了較快的發(fā)展,其中芯片產(chǎn)業(yè)發(fā)展最為引人注目。但單從產(chǎn)業(yè)規(guī)???,封裝仍是中國LED產(chǎn)業(yè)中最大的產(chǎn)業(yè)鏈環(huán)節(jié)。2006年包括了襯底、外延、芯片、封裝四個(gè)環(huán)節(jié)的中國LED產(chǎn)業(yè)總產(chǎn)值達(dá)到105.5億元,其中封裝環(huán)節(jié)產(chǎn)值達(dá)到87.5億
27、元。不斷擴(kuò)大的市場(chǎng)需求以及政府的大力支持是保證LED產(chǎn)業(yè)發(fā)展的有利因素。近幾年,諸如顯示屏、景觀照明、交通指示燈、汽車應(yīng)用、背光源等LED應(yīng)用市場(chǎng)迅速興起。新興應(yīng)用市場(chǎng)對(duì)LED發(fā)光效率要求的不斷提升催生了對(duì)中高端產(chǎn)品的需求。隨著市場(chǎng)</p><p> 2.LED顯示屏的發(fā)展趨勢(shì)</p><p> 我國現(xiàn)階段的應(yīng)用市場(chǎng)主要在建筑照明、室內(nèi)外顯示屏,因此,下一波的主力可能還是目前這些市場(chǎng)
28、。但在手機(jī)、小尺寸液晶背光、汽車的滲透會(huì)加大,另外一些零散市場(chǎng)如特種照明的開拓也會(huì)更大(特種照明對(duì)成本的要求沒有通用照明那么苛刻)。經(jīng)過前幾年的替換,LED交通指示燈已經(jīng)非常普遍,由于LED的使用壽命較長,短期內(nèi)很難在出現(xiàn)大規(guī)模的替換工作,這就使得交通指示燈對(duì)于LED的需求將出現(xiàn)一段低潮期;國內(nèi)轎車市場(chǎng)龐大,但要求較高,認(rèn)證周期長,只要有過硬的產(chǎn)品質(zhì)量,國內(nèi)車用背光及車燈的LED市場(chǎng)需求非常大,而且這一市場(chǎng)的需求增長比較穩(wěn)定;而LED顯
29、示屏以其易拼裝、低功耗、高亮度等優(yōu)點(diǎn)已經(jīng)廣泛應(yīng)用到銀行、證券、廣場(chǎng)、車站、體育場(chǎng)館中,未來這一市場(chǎng)仍有很大增長潛力;在奧運(yùn)會(huì)、世博會(huì)、一些城市夜景工程示范效應(yīng)的帶動(dòng)以及國家半導(dǎo)體照明工程等眾多有利因素的促進(jìn)下,建筑照明市場(chǎng)依然前景廣闊。</p><p> 現(xiàn)代信息社會(huì)中,作為人機(jī)信息視覺傳播媒體的顯示產(chǎn)品和技術(shù)得到迅速發(fā)展,進(jìn)入二十一世紀(jì)的顯示技術(shù)將是平板顯示的時(shí)代,LED顯示屏作為平板顯示的主導(dǎo)產(chǎn)品之一無疑會(huì)
30、有更大的發(fā)展,并有可能成為二十一世紀(jì)平板顯示的代表性主流產(chǎn)品。高亮度、全彩化藍(lán)色及純綠色LED產(chǎn)品自出現(xiàn)以來,成本逐年快速降低,已具備成熟的商業(yè)化條件。基礎(chǔ)材料的產(chǎn)業(yè)化。使LED全彩色顯示產(chǎn)品成本下降,應(yīng)用加快。LED產(chǎn)品性能的提高,使全彩色顯示屏的亮度、色彩、白平衡均達(dá)到比較理想的效果,完全可以滿足戶外全天候的環(huán)境條件要求,同時(shí),由于全彩色顯示屏價(jià)格性能比的優(yōu)勢(shì),預(yù)計(jì)在未來幾年的發(fā)展中,全彩色LED顯示屏在戶外廣告媒體中會(huì)越來越多地代
31、替?zhèn)鹘y(tǒng)的燈箱、霓紅燈、磁翻板等產(chǎn)品,體育場(chǎng)館的顯示方面全彩色LED屏更會(huì)成為主流產(chǎn)品。全彩色LED顯示屏的廣泛應(yīng)用會(huì)是LED顯示屏產(chǎn)業(yè)發(fā)展的一個(gè)新的增長點(diǎn)。 未來LED顯示屏?xí)蛑鴺?biāo)準(zhǔn)化、規(guī)范化,產(chǎn)品結(jié)構(gòu)多樣化的方向發(fā)展。</p><p><b> 3.課題設(shè)計(jì)意義 </b></p><p> 本設(shè)計(jì)利用單片機(jī)對(duì)整個(gè)系統(tǒng)進(jìn)行總體控制,進(jìn)行顯示所要顯示的漢字和字符
32、。其中顯示字模數(shù)據(jù)有單片機(jī)輸入顯存,點(diǎn)陣的點(diǎn)亮過程有程序控制,由驅(qū)動(dòng)電路完成。點(diǎn)陣采用單色顯示,該顯示器電路的特點(diǎn)是:點(diǎn)陣的動(dòng)態(tài)顯示過程占用時(shí)間比較短,亮度均勻。該設(shè)計(jì)課題使我們能夠掌握LED顯示屏的基本顯示原理和設(shè)計(jì)方法,對(duì)LED 顯示屏這個(gè)行業(yè)有了較為深刻的了解和認(rèn)識(shí)。并且對(duì)大學(xué)期間所學(xué)習(xí)的一些理論進(jìn)行了實(shí)踐,使我們對(duì)所學(xué)過的理論知識(shí)有了新的認(rèn)識(shí)。并且通過該設(shè)計(jì)課題掌握了51單片機(jī)的的軟硬件開發(fā)工具的使用方法,為以后從事相關(guān)行業(yè)的工
33、作積累了實(shí)際工作經(jīng)驗(yàn)。</p><p> 目前我國的信息行業(yè)發(fā)展迅速,作為主要平面顯示媒介的LED顯示屏的作用也越練越廣泛,相關(guān)的從業(yè)人員也會(huì)越來越緊缺。但同時(shí)應(yīng)該清楚的認(rèn)識(shí)到我國的LED技術(shù)雖然發(fā)展迅速但和世界先進(jìn)水平還有一定的差距。因此此課題不論是對(duì)自己的就業(yè)還是對(duì)我國LED顯示技術(shù)的發(fā)展都有非常現(xiàn)實(shí)與積極的意義。</p><p> 第二章 單片機(jī)的系統(tǒng)結(jié)構(gòu)</p>
34、<p> MCS-51單片機(jī)內(nèi)部包含運(yùn)算器、控制器、片內(nèi)存儲(chǔ)器、并行I/O接口、串行I/O接口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、振蕩器等功能等。系統(tǒng)內(nèi)部結(jié)構(gòu)由8位中央處理器,時(shí)鐘模塊,I/O端口,內(nèi)部程序循序存儲(chǔ)器,內(nèi)部數(shù)據(jù)存儲(chǔ)器,2個(gè)16位定時(shí)計(jì)數(shù)器,中斷系統(tǒng)和一個(gè)串行通信模塊組成, 如圖2.1所示</p><p> 51系列單片機(jī)內(nèi)部模塊的功能說明如下:</p><p> 中
35、央處理器:?jiǎn)纹瑱C(jī)的核心部件,執(zhí)行預(yù)先設(shè)置好的程序代碼,負(fù)責(zé)數(shù)據(jù)的計(jì)算和邏輯的控制。</p><p> 程序存儲(chǔ)器:存放程序代碼。</p><p> 數(shù)據(jù)存儲(chǔ)器:存放程序執(zhí)行過程中的數(shù)據(jù)。</p><p> 中斷系統(tǒng):根據(jù)設(shè)置接受單片機(jī)的各中斷事件,提交到處理器。</p><p> 時(shí)鐘模塊:提供整個(gè)單片機(jī)所需要的各個(gè)時(shí)鐘信號(hào)。<
36、/p><p> 可編程串行口:根據(jù)設(shè)置進(jìn)行串行數(shù)據(jù)通信。</p><p> 16位定時(shí)計(jì)數(shù)器:根據(jù)設(shè)置進(jìn)行定時(shí)或計(jì)數(shù)工作。</p><p> I/O端口:與外部接口部件通信,進(jìn)行數(shù)據(jù)交流。</p><p> 2.1 單片機(jī)基本內(nèi)部資源</p><p> 2.1.1單片機(jī)的內(nèi)部資源</p><p
37、> 基于51單片機(jī)的內(nèi)部資源如下:</p><p> (1)32個(gè)I/O端口,4組8位,可以位尋址。</p><p> ?。?)23個(gè)16位定時(shí)計(jì)數(shù)器。</p><p> ?。?)兩個(gè)外部中斷。</p><p> (4)5個(gè)中斷源,2個(gè)中斷優(yōu)先級(jí)。</p><p> ?。?)一個(gè)全雙工的異步串行口。<
38、/p><p> ?。?)128Bytl以上的RAM。</p><p> (7)獨(dú)立的,可擴(kuò)展至64KB的ROM。</p><p> 2.1.2 并行I/O口引腳</p><p> 并行I/O口引腳如下:</p><p> P0口—8位雙向三態(tài)I/O口;使用外存時(shí),分時(shí)復(fù)用地址線(低8位)數(shù)據(jù)總線;P0作為通用輸出口
39、時(shí)2,必須外接上拉電阻;用作輸入口時(shí),必須先把鎖存器寫入1。</p><p> P1口—8位準(zhǔn)雙向I/O口,只用作通用的I/O口使用;作為輸出口時(shí),由于內(nèi)部有上拉電阻,所以不需要外接上拉電阻;用作輸入口時(shí),必須首先向鎖存器寫入1。</p><p> P2口—8位準(zhǔn)雙向I/O口;訪問外存時(shí)只輸出地址高8位;</p><p> P3口—8位準(zhǔn)雙向I/O口;每個(gè)腳還
40、是具有第二功能,當(dāng)P3處于第二功能時(shí),單片機(jī)內(nèi)部硬件自動(dòng)將端口鎖存器的Q端置1.如表2.1所示。</p><p> 表2.1單片機(jī)引腳控制功能表</p><p> P3口相應(yīng)的端口線處于第二功能,應(yīng)滿足以下條件:</p><p> 串行I/O口處于運(yùn)行狀態(tài)(RXD,TXD)</p><p> ?、谕獠恐袛嘁呀?jīng)打開(INT0,INT1)&
41、lt;/p><p> ③定時(shí)/計(jì)數(shù)器處于外部計(jì)數(shù)狀態(tài)(T0,T1)</p><p> ?、軋?zhí)行讀/寫外部RAM的指令(RD,WR)</p><p><b> 2.1.3控制引腳</b></p><p><b> 控制引腳如下:</b></p><p> RST/VPD:復(fù)
42、位信號(hào)輸入端/備用電源輸入端(當(dāng)VCC電源降低到低電平時(shí),RST/VPD端的備用電源自動(dòng)施加到系統(tǒng),保證片內(nèi)RAM中的信息不丟失)。晶振工作后2個(gè)機(jī)器周期的高電平復(fù)位CPU。</p><p> ALE:地址鎖存信號(hào),用于訪問外存時(shí)鎖存器低8位地址。ALE為晶振6分頻。</p><p> PSEN:外部程序存儲(chǔ)器,從程序存儲(chǔ)器中取指令或讀取數(shù)據(jù)時(shí),該信號(hào)有效。</p>&l
43、t;p> EA:允許訪問片內(nèi)外程序的存儲(chǔ)器控制端。當(dāng)EA=1從內(nèi)部開始執(zhí)行程序;當(dāng)EA=0只訪問外程序存儲(chǔ)器</p><p> 2.1.4電源及時(shí)鐘引腳</p><p> 電源及時(shí)鐘引腳如下:</p><p> X1:按外部晶體此引腳接地,又是內(nèi)部振蕩器的輸入端。</p><p> X2:接外部晶體的另一端,又是內(nèi)部振蕩器的輸
44、出端。</p><p> VCC,VSS:電源和地,+5電源供電,使用TTL電平【6】。</p><p><b> 2.2儲(chǔ)存組織</b></p><p> 2.2.1算數(shù)邏輯單元ALU</p><p> 算數(shù)邏輯單元是8位,由加法器和其它邏輯電路(如移位電路、控制門)組成,主要功能是完成算數(shù)/邏輯運(yùn)算,位處理。
45、</p><p><b> 2.2.2 寄存器</b></p><p> (1)通用寄存器(8位):4組,8個(gè)寄存器R0-R7,R0和R1可用于間接尋址。</p><p> ?。?)特殊功能寄存器(SFR):共有21個(gè)。</p><p> ?、倮奂悠鰽(Acc):8051是累加器結(jié)構(gòu),所有的運(yùn)算都是以累加器為一個(gè)源操
46、作數(shù)和目的操作數(shù)。常用于存放與算術(shù)或邏輯運(yùn)算的兩個(gè)操作數(shù)中的一個(gè)操作數(shù)及運(yùn)算結(jié)果,或用于存放目的操作數(shù)。</p><p> ?、诶奂悠鰾:乘、除指令中的一個(gè)操作數(shù),在乘法運(yùn)算中被乘數(shù)放在累加器A中,乘數(shù)放在累加器B中,而積的稿8位放在寄存器B中,低8位放在累加器A中??梢宰鳛橐话阕兞渴褂?</p><p> ③程序狀態(tài)字寄存器PSW:也稱為標(biāo)志位寄存器,8位寄存器,保
47、存指令執(zhí)行狀態(tài),其狀態(tài)表如表2.2所示。</p><p> 表2.2 8位寄存器執(zhí)行狀態(tài)表</p><p> Cy:進(jìn)(借)位標(biāo)志,保存算數(shù)運(yùn)算的進(jìn)或接位,位操作的累加器?!?”:當(dāng)加法或減法運(yùn)算時(shí),最高位有進(jìn)位或借位;“0”:當(dāng)加法或減法運(yùn)算時(shí),最高位無進(jìn)位或借位。Cy=1,溢出;Cy=0未溢出</p><p> AC:輔助進(jìn)位標(biāo)志,“1”:當(dāng)加法或減法運(yùn)
48、算時(shí),低4位向高4位有進(jìn)位或借位;“0”: 當(dāng)加法或減法運(yùn)算時(shí),低4位向高4位無進(jìn)位或借位。常用于BCD碼的調(diào)整。</p><p> F0:用戶標(biāo)志,可以使用的位變量,可以隨PSW被保存。</p><p> RS1,RS0:寄存器組選擇如表2.3所示。</p><p> 表2.3寄存器表組選擇表</p><p> OV:溢出標(biāo)志位,有
49、符號(hào)數(shù)運(yùn)算結(jié)果超出允許范圍OV=1,否則OV=0;計(jì)算機(jī)在數(shù)據(jù)處理過程中,OV置位和清零的依據(jù)是:</p><p> 加法運(yùn)算時(shí),若最高位產(chǎn)生進(jìn)位,而次高位沒有向最高位產(chǎn)生進(jìn)位;或最高位沒有產(chǎn)生進(jìn)位,而次高位向最高位產(chǎn)生進(jìn)位時(shí),OV=1否則OV=0.</p><p> 減法運(yùn)算時(shí),,若最高位產(chǎn)生借位,而次高位沒有向最高位產(chǎn)生借位;或最高位沒有產(chǎn)生借位,而次高位向最高位產(chǎn)生借位時(shí),OV=
50、1否則OV=0.</p><p> P:奇偶標(biāo)志位,每個(gè)機(jī)器周期根據(jù)累加器A中的內(nèi)容的奇偶性由硬件置1復(fù)位,A中1的個(gè)數(shù)為奇P=1;否則P=0</p><p> ④堆棧及堆棧指針SP:堆棧(存儲(chǔ)區(qū))按先進(jìn)后出的原則讀寫數(shù)據(jù),堆棧空間用內(nèi)部RAM(256),用于保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。堆棧指針SP為8位寄存器,指示棧頂位置。進(jìn)棧,SP+1,再壓棧;出棧,先出棧再SP-1,MCS-51系統(tǒng)復(fù)位
51、后,SP初始化為07H。</p><p> ?、輸?shù)據(jù)指針寄存器DPTR:16位專用寄存器,由DPH(數(shù)據(jù)指針高8位)和DPL(數(shù)據(jù)指針低8位)組成,用于存儲(chǔ)外部數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)單元地址。DPTR寄存器間接尋址方式可訪問0000H~FFFFH的全部64KB的外部數(shù)據(jù)存儲(chǔ)器的空間。</p><p> ?、蕹绦蛴?jì)數(shù)器PC(16位):不屬于SFR,但有聯(lián)系,用于存放下一條的指令地址。</p&
52、gt;<p> 2.3 單片機(jī)系統(tǒng)外圍電路</p><p> 單片機(jī)外圍電路一般有兩塊;時(shí)鐘電路(如圖2.3所示)和復(fù)位電路(如圖2.4所示)。</p><p> 時(shí)鐘電路由一個(gè)晶振和兩個(gè)小電容組成,用來產(chǎn)生時(shí)鐘頻率。</p><p> 復(fù)位電路由一個(gè)電阻、按鍵和一個(gè)電容組成,用來產(chǎn)生復(fù)位信號(hào)使單片機(jī)上電的時(shí)候復(fù)位。</p>&l
53、t;p> AT89C51單片機(jī)芯片內(nèi)部都有有一個(gè)反相放大器構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩器電路的輸入端和輸出端。時(shí)鐘可由內(nèi)部和外部生成,在XTAL1 和XTAL2的引腳上外接定時(shí)元件,內(nèi)部振蕩器就會(huì)產(chǎn)生自激振蕩。外接元件有晶體振蕩器和電容,他們組成并聯(lián)諧振電路。晶振的振蕩頻率選擇12MHz,C1 、C2的電容取值22PF,具有快速起振、穩(wěn)定晶振頻率和微調(diào)頻率的作用。</p><p> 若
54、外接晶振頻率為fosc=12MHz,則4個(gè)基本周期的具體數(shù)值為:</p><p> 震蕩周期=1/12uf;</p><p> 時(shí)鐘周期=1/6uf;</p><p><b> 機(jī)器周期=1uf;</b></p><p> 指令周期=1,2,和4uf。</p><p> 單片機(jī)有多種復(fù)位
55、電路,單片機(jī)復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分和過程中引起的抖動(dòng)而影響復(fù)位。本系統(tǒng)采用電平式開關(guān)復(fù)位和上電復(fù)位方式,當(dāng)上電時(shí),C1相當(dāng)于與短路,使單片機(jī)復(fù)位,在正常工作時(shí),按下復(fù)位時(shí)單片機(jī)復(fù)位,在有時(shí)2碰到干擾時(shí)會(huì)造成錯(cuò)誤復(fù)位。但是大多數(shù)條件下,不會(huì)出現(xiàn)單片機(jī)錯(cuò)誤復(fù)位,而可能會(huì)引起內(nèi)部某些寄存器錯(cuò)誤復(fù)位,在服務(wù)端加
56、一個(gè)去耦電容,則會(huì)得到很好地效果</p><p><b> 第3章 LED電路</b></p><p><b> 3.1 LED簡(jiǎn)介</b></p><p> 組合型LED點(diǎn)陣顯示器以以發(fā)光二極體為圖素,它用高亮度LED晶粒進(jìn)行陣列組合后,再透過環(huán)氧樹脂和塑模封裝而成。具有高亮度、功耗低、引腳少、視角大、壽命長、耐濕
57、、耐冷熱、耐腐蝕等特點(diǎn),</p><p> 點(diǎn)陣顯示器有單色和雙色兩類,可顯示紅、黃、綠、橙等。LED點(diǎn)陣有4*4,4*8,5*7,5*8,8*8,16*16,24*24,40*40……多種。根據(jù)圖素的數(shù)目分為:?jiǎn)紊㈦p原色、三原色等;根據(jù)圖素的顏色不同所顯示的文字、圖像等內(nèi)容的顏色也不同,單元色點(diǎn)陣只能顯示固定色彩如:紅、綠、黃等單色、雙原色和三原色點(diǎn)陣顯示內(nèi)容的顏色有圖素不同顏色發(fā)光二極體變量組合方式?jīng)Q定,
58、如紅綠都亮?xí)r可顯示黃色,如果按照脈沖方式控制二極體的點(diǎn)亮?xí)r間,可顯示256或更高級(jí)灰度顯示,即可是實(shí)現(xiàn)真色彩顯示。</p><p> 幾種LED點(diǎn)陣顯示器的內(nèi)部電路結(jié)構(gòu)和外形規(guī)格,其它型號(hào)點(diǎn)陣的結(jié)構(gòu)與引腳可實(shí)驗(yàn)獲得,LED點(diǎn)陣顯示器單塊使用時(shí),即可代替數(shù)碼顯示數(shù)位,也可顯示各種中西文字符號(hào)。如5*7點(diǎn)陣顯示器用于顯示西文字母,5*8點(diǎn)陣顯示器用于顯示中西文。8*8點(diǎn)陣顯示器用于顯示中文文字,也可用于圖形顯示。用
59、多塊點(diǎn)陣顯示器組合則可構(gòu)成大熒幕顯示器,但這類使用裝置常通過微機(jī)或單片機(jī)控制驅(qū)動(dòng)。</p><p> 由LED點(diǎn)陣顯示器的內(nèi)部結(jié)構(gòu)可知,器件易采用動(dòng)態(tài)掃描驅(qū)動(dòng)方式工作,由于LED管芯大多為高亮度型,因此某行或某列的單體LED驅(qū)動(dòng)電流可選用窄脈沖,但其平均電流應(yīng)限制在20mA內(nèi),多數(shù)點(diǎn)陣顯示器的單體LED的正向壓降約在2V左右,但大亮點(diǎn)∮10的點(diǎn)陣顯示器單體LED的正向壓降約為6V。</p><
60、;p> 大熒幕顯示系統(tǒng)一般是將由多個(gè)LED點(diǎn)陣組成的小模組以搭積木的方式組合而成的,每一個(gè)小模組都有自己的獨(dú)立的控制系統(tǒng),組合在一起后只要引入一個(gè)總控制器控制各模組的命令和資料即可,這種方法既簡(jiǎn)單而且具有易展、易維修的特點(diǎn)。</p><p> LED點(diǎn)陣顯示系統(tǒng)中各模組的顯示方式有靜態(tài)和動(dòng)態(tài)顯示兩種。靜態(tài)顯示原理簡(jiǎn)單、控制方便,但硬件接線復(fù)雜,在實(shí)際應(yīng)用中一般采用動(dòng)態(tài)顯示方式,動(dòng)態(tài)顯示采用掃描的方式工作
61、,由峰值較大的窄脈沖驅(qū)動(dòng),從上到下逐次不斷地對(duì)顯示幕的各行進(jìn)行選通,同時(shí)又向各列送出表示圖形或文字資訊的脈沖信號(hào),反復(fù)以上操作就可顯示各種圖形或文字通訊。</p><p> 3.2 16×16點(diǎn)陣LED原理及應(yīng)用</p><p> 16*16點(diǎn)陣LED實(shí)物如圖3.1所示。設(shè)計(jì)時(shí)必須掌握點(diǎn)陣工作原理方能進(jìn)行更深層設(shè)計(jì)。16*16LED點(diǎn)陣其實(shí)就是4塊8*8點(diǎn)陣LED級(jí)聯(lián)而成的,
62、因此特給出8*8的點(diǎn)陣LED的工作原理圖。如圖3.2為8*8點(diǎn)陣LED外觀及引腳圖</p><p> 其等效電路如圖3.3所示,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如:如果想使左上角LED點(diǎn)亮,則Y0=1,X0=0即可。應(yīng)用時(shí)限流電阻可以放在X軸或Y軸。而16*16就是在8*8院里的基礎(chǔ)上將四塊8*8級(jí)聯(lián)而成,如圖3.4所示。</p><p> 3.3 LED點(diǎn)陣的顯示文
63、字圖形原理</p><p> 漢子顯示屏用于顯示漢子、字符及圖像信息,在公共汽車、銀行、醫(yī)院及戶外廣告等都有廣泛的應(yīng)用。下面是簡(jiǎn)單的漢字顯示屏的操作,由單片機(jī)控制漢字的顯示內(nèi)容。為了降低成本,使用了四塊8*8的LED點(diǎn)陣發(fā)光管的模塊,組成了一個(gè)16*16的LED點(diǎn)陣顯示屏,如圖3.5所示。在實(shí)際的使用中可以根據(jù)這個(gè)原理自行的擴(kuò)展顯示的漢字,下面是介紹漢字顯示的原理:</p><p>
64、LED驅(qū)動(dòng)顯示采用動(dòng)態(tài)掃描方法,動(dòng)態(tài)掃描方式是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行的同名列共用一套驅(qū)動(dòng)電路。以16*16點(diǎn)陣為例,把所有同一行的發(fā)光管的陰極連在一起把所有同一行的發(fā)光管的陽極連長在一起(共陰極的接法)。先送出對(duì)應(yīng)的第一列發(fā)光管亮燈的數(shù)據(jù)并鎖存,然后選通第一列使其燃亮一定的時(shí)間,然后熄滅;再送出第二列的數(shù)據(jù)并鎖存,然后選通第二列使其燃亮相同的時(shí)間,然后熄滅;·····
65、;·第16列之后,又重新燃亮第一列,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。</p><p> 顯示數(shù)據(jù)可通過單片機(jī)的P0,P2口接驅(qū)動(dòng)電路傳輸?shù)近c(diǎn)陣行引腳。</p><p> LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:</p><p&
66、gt; ?。?)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱列掃描方式):此時(shí)用一個(gè)P口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè)P口輸出行碼(列數(shù)據(jù)),決定該列上哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完16列(相當(dāng)于位碼循環(huán)移動(dòng)16次)即顯示出一個(gè)完整的圖像。</p><p> (2)豎直方向(Y方向)掃描,即逐行掃描方式(簡(jiǎn)稱行掃描方式):此時(shí)用一個(gè)P口輸出決定哪一個(gè)能亮(相當(dāng)于位碼),另一
67、個(gè)P口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn)90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完16行(相當(dāng)于位碼循環(huán)移位16次)即顯示一幀的完整圖形。</p><p> 本設(shè)計(jì)應(yīng)用的是第二種的掃描方法,即豎直方向(Y方向)掃描。</p><p> 每一個(gè)字由16行16列的點(diǎn)陣形成顯示,即每個(gè)字均有256個(gè)點(diǎn)陣來表示,我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素。一般
68、我們使用的是16*16點(diǎn)陣宋體字庫,即所謂的16*16,是每一個(gè)漢字在縱橫各16點(diǎn)的區(qū)域內(nèi)顯示的。漢字庫從該位置起的32字節(jié)信息記錄了該字的字模信息。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256像素內(nèi)的任何圖形。</p><p> 我們以“習(xí)”為例來說明其掃描原理,每一個(gè)字由16行16列的點(diǎn)陣組成顯示,如下圖,如果用8位的AT89C51的單片機(jī)來控制,由于單片機(jī)的總線為8位,一個(gè)字需要拆分成兩個(gè)部分。一
69、般我們把它分解成左部分和右部分,左部分由16*8(列*行)的點(diǎn)陣組成,右部分也由16*8(列*行)的點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是左上角的第一行的部分,因?yàn)榱薪雨帢O,0是亮,1是滅,“習(xí)”字的上面兩行二進(jìn)碼是11111111,11111111,11000000,00111111,轉(zhuǎn)換成對(duì)應(yīng)的16進(jìn)制代碼是0xFF,0xFF,0xC0,0x03,依次類推,就這樣一行一行的掃描。如圖3-5所示:</p><p>
70、; 由這個(gè)原理可以看到,無論顯示何種字體或圖像,都可以用這種方法來分析出它的掃描代碼從而顯示在屏幕上。了解漢字的顯示原理之后,下面本論文介紹如何得到漢字的字模信息?,F(xiàn)在有一些現(xiàn)成的漢字字模生成軟件,可從網(wǎng)上下載漢字字庫提取程序直接提取字庫,如圖3.6所示的為一種字模生成軟件,軟件打開后輸入漢字,點(diǎn)擊“檢取”后,16進(jìn)制數(shù)據(jù)漢字代碼即可以自動(dòng)生成,把我們所需要的豎排數(shù)據(jù)復(fù)制到我們的程序即可。</p><p>&l
71、t;b> 驅(qū)動(dòng)方式</b></p><p> LED點(diǎn)陣的驅(qū)動(dòng)方式可分為靜態(tài)驅(qū)動(dòng)和動(dòng)態(tài)驅(qū)動(dòng)兩種。</p><p> 靜態(tài)驅(qū)動(dòng)方式:在靜態(tài)驅(qū)動(dòng)的有機(jī)發(fā)光顯示器件上,一般各有機(jī)電致發(fā)光像素的陰極是連在一起引出的,各像素發(fā)光只要讓恒流源的電壓與陰極的電壓之差大于像素發(fā)光值的前提下,像素將在恒流源的驅(qū)動(dòng)下發(fā)光,若要一個(gè)像素不發(fā)光就將它的陽極接在一個(gè)負(fù)電壓上,就將它反向截止
72、。但是在圖像變化比較多時(shí)可能出現(xiàn)交叉效應(yīng),為了避免我們必須采取交流的形式。靜態(tài)驅(qū)動(dòng)電路一般用于段式顯示屏的驅(qū)動(dòng)上。</p><p> 動(dòng)態(tài)驅(qū)動(dòng)方式:在動(dòng)態(tài)驅(qū)動(dòng)的有機(jī)發(fā)光顯示器件上,人們把像素的兩個(gè)電極做成了矩陣型結(jié)構(gòu),即水平一組顯示像素的同一性質(zhì)的電極是共用的,縱向一組顯示像素的相同性質(zhì)的另一電極是共用的。如果像素可分為N行和M列,就可有N個(gè)行電極和M個(gè)列電極。行和列分別對(duì)應(yīng)發(fā)光像素的兩個(gè)電極,即陰極和陽極。在
73、實(shí)際電路驅(qū)動(dòng)過程中,要逐行點(diǎn)亮或者要逐列點(diǎn)亮像素,通常采用逐行掃描的方式,行掃描,列電極為數(shù)據(jù)電極。實(shí)現(xiàn)方式是:循環(huán)的給每行電極施加脈沖,同時(shí)所有列電極給出該行像素的驅(qū)動(dòng)電流脈沖,從而實(shí)現(xiàn)一行所有像素的顯示。該行不在同一行或同一列的像素就加上反向電壓使其不顯示,以避免“交叉效應(yīng)”,這種掃描是逐行進(jìn)行的,掃描所有行所需要時(shí)間叫做幀周期。</p><p> 本設(shè)計(jì)驅(qū)動(dòng)電路由行驅(qū)動(dòng)和列驅(qū)動(dòng)構(gòu)成。為了充分利用單片機(jī)的接
74、口,行驅(qū)動(dòng)電路中加入了一個(gè)4-16線譯碼器74LS154,然后A,B,C,D四角為輸入端,形成16種不同的輸入狀態(tài),行驅(qū)動(dòng)電路(如圖3.7所示)。</p><p> 列驅(qū)動(dòng)由集成電路74HC595構(gòu)成,它具有一個(gè)8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器的結(jié)構(gòu),可以實(shí)現(xiàn)在顯示本行列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù),即達(dá)到重疊處理的目的,列驅(qū)動(dòng)電路如圖3-8所示。</p><p><
75、b> 3.5 點(diǎn)陣的移動(dòng)</b></p><p> 下面以16*16點(diǎn)陣為例介紹點(diǎn)陣的移動(dòng)。要顯示一個(gè)字符,該字符的點(diǎn)陣數(shù)據(jù)可以列向(縱向)16點(diǎn)組字。無論哪一種組字方法,都可以顯示字符的水平方向的移動(dòng),又可以顯示豎直方向的移動(dòng)。本設(shè)計(jì)主要顯示方式是所有字符一一靜態(tài)卷簾顯示,上下滾動(dòng),左右滾動(dòng)。</p><p><b> 向上滾動(dòng)原理</b>&
76、lt;/p><p><b> 列掃描方式向上移動(dòng)</b></p><p> 列向組字顯示字符豎直方向的移動(dòng)。若是列向數(shù)字,希望顯示向上移動(dòng)的一個(gè)字符,第一次掃描從行碼的點(diǎn)陣數(shù)組中取第1-16個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)這16個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制掃描第1-16列。由于是列向組字(上下高低),掃描完成這16個(gè)數(shù)據(jù)后,第2次掃描的16個(gè)數(shù)據(jù),應(yīng)將原來的第
77、一個(gè)掃描的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)。</p><p> 也可以用字形的方法容易理解,下面的16*16的LED顯示一個(gè)字是8個(gè)字型,首先掃描的而是第一個(gè)字型,同樣是16行,16列掃描,16次顯示:完成一個(gè)字型后,在掃描第二個(gè)字型,完成第二個(gè)字型后,再掃
78、描第三個(gè)字型…………以此類推,即可產(chǎn)生改文字向上的感覺。當(dāng)把第一個(gè)字型編碼中,每行顯示的數(shù)據(jù)都右移一位,以產(chǎn)生第二個(gè)字型編碼,即可產(chǎn)生字符向上滾動(dòng)的感覺。</p><p> 當(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ù)序號(hào)填入存儲(chǔ)器。</p><p> (2)
79、行掃描方式上下移動(dòng)</p><p> 方法1:延長數(shù)組法。如果是行向數(shù)字,希望顯示向上移動(dòng)一個(gè)字符,第1次掃描從列碼的點(diǎn)陣數(shù)組中取第1-16個(gè)數(shù)據(jù),送列碼輸出口,對(duì)應(yīng)于這8個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,分別控制掃描第1-16行。第2次掃描從點(diǎn)陣數(shù)組中取第2-17個(gè)數(shù)據(jù)(第17個(gè)數(shù)據(jù)與第1個(gè)相同),分別送列碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用行碼輸出口輸出行碼,仍分別控制第1-16行。第三次掃描從點(diǎn)陣數(shù)組中取
80、第3-18個(gè)數(shù)據(jù)(第18個(gè)和第2個(gè)相同)掃描……以此類推,如此就可以實(shí)現(xiàn)了字符的向上移動(dòng)。</p><p> 方法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)左移。</p><p><b> 向左移動(dòng)原理</b></p><p><b
81、> 列掃描方式左移動(dòng)</b></p><p> 方法1:延長數(shù)組法。將原來字符點(diǎn)陣數(shù)組的16個(gè)數(shù)據(jù)重復(fù)一遍延長,點(diǎn)陣屬豬的數(shù)據(jù)個(gè)數(shù)為32個(gè)。每掃描一幀取8個(gè)數(shù)據(jù)顯示,下一幀取數(shù)要在數(shù)組中后移一個(gè)數(shù)取數(shù)。循環(huán)一遍掃16幀??梢约傧笥袃蓧K16*16的點(diǎn)陣模塊(共32幀)水平平行排列,用一個(gè)恰好能罩住16列點(diǎn)陣的中控方框去罩這個(gè)點(diǎn)陣,第1罩(第1幀)往最左邊數(shù)起第1列開始的16列,就掃描顯示這16
82、列;第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)的圖像,如圖3.9所示:</p><p> 因?yàn)槭橇邢驍?shù)字(列掃描方式,點(diǎn)陣數(shù)據(jù)為行碼,上
83、面為低位,上面為高位),希望顯示移動(dòng)的一個(gè)字符,第1次掃描從行碼的點(diǎn)陣數(shù)組中取第1-16個(gè)數(shù)據(jù),送行碼輸出口,對(duì)應(yīng)于這8個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,分別控制第1-16列。掃描完前16個(gè)數(shù)據(jù)之后,第2次掃描從點(diǎn)陣數(shù)組中取第3-18個(gè)數(shù)據(jù)(第18個(gè)數(shù)據(jù)與第1個(gè)數(shù)據(jù)相同),送行碼輸出口,對(duì)應(yīng)于這16個(gè)數(shù)據(jù),同時(shí)用列碼輸出口輸出列碼,扔分別控制掃第1-16列。第3次掃描從點(diǎn)陣數(shù)組中取第5-20個(gè)數(shù)據(jù)(第20個(gè)數(shù)據(jù)和第2個(gè)數(shù)據(jù)相同)掃描……
84、如此實(shí)現(xiàn)字符向左移動(dòng)。</p><p> 以上完成一個(gè)圖形移動(dòng)的方法,也可以看成是移動(dòng)16個(gè)不同的字形。(如圖2.13所示),首先掃描第1個(gè)字型,同樣是16行,16次掃描,16次顯示;完成一個(gè)字型的掃描之后,再掃描第2個(gè)字型;完成第2個(gè)字型掃描之后,再掃描第3個(gè)字型……以此類推,即可產(chǎn)生改文字的左移感覺。</p><p> 也就是把第1個(gè)字型的編碼中,第1列顯示數(shù)據(jù),變成第2列顯示數(shù)據(jù)
85、;第2列顯示數(shù)據(jù)變成第3列顯示數(shù)據(jù),第3列顯示數(shù)據(jù)變成第4列顯示數(shù)據(jù)……以此類推。</p><p> 當(dāng)?shù)?個(gè)字型掃描完成結(jié)束后,就進(jìn)行這樣的動(dòng)作調(diào)整,以產(chǎn)生第2個(gè)字型的編碼。同樣的,當(dāng)?shù)?個(gè)字型掃描完成之后,就進(jìn)行這樣的調(diào)整動(dòng)作,以產(chǎn)生第3個(gè)字型的調(diào)整編碼。調(diào)整這個(gè)動(dòng)作時(shí),先將16個(gè)編碼根據(jù)序填入儲(chǔ)存器,例如第1行編碼存入20H,第2行編碼存入21H……要進(jìn)行左移調(diào)整時(shí),則先將20H地址的數(shù)據(jù)轉(zhuǎn)移到36H地址
86、,再將21H的數(shù)據(jù)地址轉(zhuǎn)移到20H地址,再將22H數(shù)據(jù)的地址轉(zhuǎn)移到21H地址,再將23H的地址轉(zhuǎn)移到22H的地址,將24H地址的數(shù)據(jù)轉(zhuǎn)移到23H的地址,到36H地址,再將21H地址的數(shù)據(jù)轉(zhuǎn)移到20H地址,將22H的地址的數(shù)據(jù)轉(zhuǎn)移到21H的地址,將23H的地址數(shù)據(jù)轉(zhuǎn)移到22H地址,將24H的地址數(shù)據(jù)轉(zhuǎn)移到23H的地址,再將25H的地址數(shù)據(jù)轉(zhuǎn)移到24H的地址,將26H的地址數(shù)據(jù)轉(zhuǎn)移到25H的地址,將27H的地址數(shù)據(jù)轉(zhuǎn)移到26H地址……<
87、;/p><p> 方法2:數(shù)組數(shù)據(jù)“循環(huán)左移法”。注意,不是把二進(jìn)制數(shù)據(jù)按位循環(huán)左移,而是把數(shù)組中的數(shù)據(jù)按其在數(shù)組中的位置循環(huán)左移,具體方法如下:</p><p> 原先字符點(diǎn)陣數(shù)組中的16個(gè)數(shù)據(jù)不延長,但下一幀的16個(gè)數(shù)據(jù),是把上一幀的16個(gè)數(shù)據(jù)的位置(先后順序)“循環(huán)左移”一次,即原來的第2個(gè)移到第1個(gè),原來第3個(gè)移到第2個(gè),原來的第4個(gè)移到第3個(gè)……原來的第1個(gè)移到第16個(gè)。實(shí)現(xiàn)數(shù)組
88、數(shù)據(jù)循環(huán)左移的方法有:第一遍“數(shù)組數(shù)據(jù)循環(huán)左移子程序”,該子程序每執(zhí)行一次,可把數(shù)組中的數(shù)據(jù)循環(huán)左移一次,主程序中先調(diào)用一次該子程序,這時(shí)數(shù)組中的詩句循環(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)左移。</p><p><b> 行掃描方式左移</b></p
89、><p> 行向組字顯示字符水平方向的左移。如果是行向數(shù)字(行掃描方式,點(diǎn)陣數(shù)據(jù)為列碼,左邊為低位,右邊為高位),希望顯示向左移動(dòng)一個(gè)字符,第一次掃描從列碼的點(diǎn)陣數(shù)組中取第1-16行。掃描完成這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)行掃描。</p
90、><p> 數(shù)據(jù)的右移與數(shù)據(jù)的左移相似,只是取碼的順序相反而已,在此就不再作過多敘述。</p><p> 本設(shè)計(jì)應(yīng)用的是數(shù)組方法實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)。</p><p> 第四章 系統(tǒng)總體方案</p><p> 如圖4.1所示,整體電路的基本模型圖。由圖可以看出整個(gè)設(shè)計(jì)分為4個(gè)模塊:?jiǎn)纹瑱C(jī)的控制模塊,行驅(qū)動(dòng)模塊,列驅(qū)動(dòng)模塊,LED點(diǎn)陣顯示模塊。&l
91、t;/p><p> 如圖4.2所示,是在此設(shè)計(jì)上將16*16點(diǎn)陣擴(kuò)展成16*64點(diǎn)陣的詳細(xì)電路圖。主要電路不變,只是增加了LED點(diǎn)陣和相應(yīng)數(shù)目的列驅(qū)動(dòng)74HC154芯片。</p><p> 此設(shè)計(jì)的顯示驅(qū)動(dòng)流程如圖4.3所示:</p><p><b> 4.2 軟件設(shè)計(jì)</b></p><p> 軟件程序主要由開始、
92、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖4-1所示。</p><p> 主程序中,同一幀的反復(fù)掃描次數(shù)的設(shè)定,決定了顯示移動(dòng)的速度延時(shí)程序至關(guān)重要,這就涉及到前文所說的刷新速率問題,如設(shè)置不當(dāng),就會(huì)有閃爍感。</p><p> 4.2.1 主程序設(shè)計(jì)</p><p> 本設(shè)計(jì)的系統(tǒng)軟件能使系統(tǒng)LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯
93、示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。</p><p><b> 圖4-4程序流程圖</b></p><p> LED 點(diǎn)陣主程序,該程序能夠用來實(shí)現(xiàn)“平職學(xué)院歡迎你”等漢字的顯示。</p><p><b> ORG 00H</b></p><p&g
94、t; LOOP: MOV A,#0FFH ;開機(jī)初始化,清除畫面</p><p> MOV P0,A ;清除P0口</p><p> ANL P2,#00 ;清除P2口</p><p> MOV R2,#200 </p><p> D100MS: M
95、OV R3,#250 ;延時(shí)100毫秒</p><p><b> DJNZ R3,$</b></p><p> DJNZ R2,D100MS</p><p> MOV 20H,#00H ;取碼指針的初值l100: </p><p> MOV R1,#100 ;每個(gè)字的停留時(shí)間&l
96、t;/p><p> L16: MOV R6,#16 ;每個(gè)字16個(gè)碼</p><p> MOV R4,#00H ;掃描指針清零</p><p> MOV R0,20H ;取碼指針存入R0</p><p> L3: MOV A,R4 ;掃描指針
97、存入A</p><p> MOV P1,A ;掃描輸出</p><p> INC R4 ;掃描指針加1,掃描下一個(gè)</p><p> MOV A,R0 ; 取碼指針存入A</p><p> MOV DPTR,#TABLE ;取數(shù)
98、據(jù)表的上半部分的代碼</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A ; 輸出到P0</p><p> INC R0 ;取碼指針加1,取下一個(gè)碼。</p><p><b> MOV A,R0</b&g
99、t;</p><p> MOV DPTR,#TABLE ;取數(shù)據(jù)表下半部份的代碼</p><p> MOVC A,@A+DPTR</p><p> MOV P2,A ;輸出到P2口</p><p><b> INC R
100、0</b></p><p> MOV R3,#02;掃描1毫秒</p><p> DELAY2: MOV R5,#248 </p><p><b> DJNZ R5,$</b></p><p> DJNZ R3,DELAY2</p><
101、;p> MOV A,#00H ;清除屏幕</p><p><b> MOV P0,A</b></p><p> ANL P2,#00H </p><p> DJNZ R6,L3 &
102、#160; ;一個(gè)字16個(gè)碼是否完成?</p><p> DJNZ R1,L16 ;每個(gè)字的停留時(shí)間是否到了?</p><p> MOV 20H,R0 ;取碼指針存入20H</p><p> CJNE R0,#0FFH,L100 ;8個(gè)字25
103、6個(gè)碼是否完成?</p><p> JMP LOOP ;反復(fù)循環(huán)</p><p><b> STLS:</b></p><p><b> ;平</b></p><p> DB 00H,00H,7FH,0FCH,01H,00H,01H,00H,11H,10H,09H,10H,09H,20H,
104、01H,00H</p><p> DB 0FFH,0FEH,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H</p><p><b> ;職</b></p><p> DB 00H,00H,0FFH,00H,24H,0FCH,24H,84H,3CH,84H,24H,84H,
105、24H,84H,3CH,84H</p><p> DB 24H,0FCH,24H,84H,2EH,00H,0F4H,48H,44H,44H,04H,84H,04H,82H,05H,02H</p><p><b> ;學(xué)</b></p><p> DB 22H,08H,11H,08H,11H,10H,00H,20H,7FH,0FEH,4
106、0H,02H,80H,04H,1FH,0E0H</p><p> DB 00H,40H,01H,80H,0FFH,0FEH,01H,00H,01H,00H,01H,00H,05H,00H,02H,00H</p><p><b> ;院</b></p><p> DB 00H,40H,78H,20H,4BH,0FEH,52H,02H,5
107、4H,04H,61H,0F8H,50H,00H,48H,00H</p><p> DB 4BH,0FEH,48H,90H,68H,90H,50H,90H,41H,12H,41H,12H,42H,0EH,44H,00H</p><p><b> ;歡</b></p><p> DB 00H,80H,00H,80H,0FCH,80H,04
108、H,0FCH,05H,04H,49H,08H,2AH,40H,14H,40H</p><p> DB 10H,40H,28H,0A0H,24H,0A0H,45H,10H,81H,10H,02H,08H,04H,04H,08H,02H</p><p><b> ;迎</b></p><p> DB 00H,00H,20H,80H,13H
109、,3CH,12H,24H,02H,24H,02H,24H,0F2H,24H,12H,24H</p><p> DB 12H,24H,12H,0B4H,13H,28H,12H,20H,10H,20H,28H,20H,47H,0FEH,00H,00H</p><p><b> ;你 </b></p><p> DB 08H,80H,08H
110、,80H,08H,80H,11H,0FEH,11H,02H,32H,04H,34H,20H,50H,20H</p><p> DB 91H,28H,11H,24H,12H,24H,12H,22H,14H,22H,10H,20H,10H,0A0H,10H,40H</p><p><b> ;! </b></p><p> DB 00H,
111、00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00H</p><p> DB 10H,00H,10H,00H,00H,00H,00H,00H,10H,00H,10H,00H,00H,00H,00H,00H</p><p> 4.2.2 子程序設(shè)計(jì)</p><p><b> 子程序流程
112、圖如下:</b></p><p><b> 圖4-5程序流程圖</b></p><p> 延時(shí)子程序,協(xié)調(diào)字符顯示速度: </p><p> DELAY: MOV R7,#1H</p><p> DL1: MOV R6,#00H</p><p> DL2: DJNZ R6,D
113、L2</p><p> DJNZ R7,DL1</p><p><b> RET</b></p><p> LED 點(diǎn)陣顯示子程序:</p><p> CSLED EQU 8000H </p><p> CSR1 EQU CSLED ;行1 273</p>&l
114、t;p> CSR2 EQU CSLED+1H ;行2 273</p><p> CSC1 EQU CSLED+2H ;列1 374</p><p> CSC2 EQU CSLED+3H ;列2 374</p><p><b> ORG 0000H</b></p><p> MOV SP,#60H</
115、p><p> INIT: MOV A,#0H ;關(guān)閉行</p><p> MOV DPTR,#CSR1</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#CSR2</p><p> MOVX @DPTR,A</p><p> MOV A,#0FFH ;關(guān)閉
116、列</p><p> MOV DPTR,#CSC1</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#CSC2</p><p> MOVX @DPTR,A</p><p> D: MOV R5,#00H</p><p> MOV R4,#01H ;每次
117、為單行掃描</p><p><b> DISP: </b></p><p><b> MOV A,R5</b></p><p> MOV DPTR,#ASCE ;此處設(shè)定所要顯示的字符</p><p> MOVC A,@A+DPTR</p><p> CP
118、L ACC ;代碼取反,決定顯示的陰陽</p><p> MOV DPTR,#CSC2</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#CSR1</p><p><b> MOV A,R4</b></p><p> MOVX @DPTR,A</p&
119、gt;<p><b> RL ACC</b></p><p> MOV R4,ACC</p><p><b> INC R5</b></p><p> LCALL DELAY</p><p> CJNE R5,#8H,DISP </p><p&g
120、t;<b> MOV A,#0H</b></p><p> MOVX @DPTR,A</p><p> MOV R5,#08H</p><p> MOV R4,#01H</p><p><b> DISP2: </b></p><p><b>
121、 MOV A,R5</b></p><p> MOV DPTR,#ASCE</p><p> MOVC A,@A+DPTR</p><p><b> CPL ACC</b></p><p> MOV DPTR,#CSC2</p><p> MOVX @DPTR,A</p
122、><p> MOV DPTR,#CSR2</p><p><b> MOV A,R4</b></p><p> MOVX @DPTR,A</p><p><b> RL ACC</b></p><p> MOV R4,ACC</p><p>&l
123、t;b> INC R5</b></p><p> LCALL DELAY</p><p> CJNE R5,#10H,DISP2 </p><p><b> MOV A,#0H</b></p><p> MOVX @DPTR,</p><p><b>
124、; ASJMP D</b></p><p><b> END</b></p><p> 再完成編寫程序的編譯之后,準(zhǔn)備一臺(tái)可以燒寫AT89C51的編程器并與電腦主機(jī)硬件連接后即可對(duì)AT89C51芯片進(jìn)行程序燒錄下載,然后,將燒錄好程序的AT89C51單片機(jī)裝入到40腳的IC座上,通電即可調(diào)試和運(yùn)行。另外,延時(shí)程序至關(guān)重要,這就涉及到刷新速率問題,如設(shè)
125、置不當(dāng),就會(huì)有閃爍感。</p><p><b> 第5章 總結(jié)</b></p><p> 本設(shè)計(jì)講述的是如何用51系列單片機(jī)控制點(diǎn)陣LED顯示屏將文字,單色簡(jiǎn)單圖片靜態(tài)或者動(dòng)態(tài)地顯示出來,本設(shè)計(jì)只使用了一塊16×16 LED點(diǎn)陣,包涵了LED顯示屏的電路基本原理和基本程序。</p><p> 在此次設(shè)計(jì)中通過查閱大量的相關(guān)資
126、料,詳細(xì)了解了LED的發(fā)光原理和LED顯示屏的原理,了解了LED的現(xiàn)狀,清楚地了解了LED顯示屏與其它顯示屏相比較有那些優(yōu)點(diǎn)。在這段時(shí)間里,我學(xué)到了很多知識(shí)也有很多感受,從對(duì)單片機(jī),LED等相關(guān)技術(shù)不太了解的狀態(tài),我開始了獨(dú)立的學(xué)習(xí)和試驗(yàn),查看相關(guān)的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來。</p><p> 通過本設(shè)計(jì)不僅把以前學(xué)過的知識(shí)重新溫習(xí),而且在查閱課外資料是還有好
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于51單片機(jī)的點(diǎn)陣式led顯示控制
- 基于51單片機(jī)的led點(diǎn)陣顯示屏-畢業(yè)論文
- 機(jī)電一體化論文-基于51單片機(jī)的智能小車設(shè)計(jì)
- 基于單片機(jī)控制的led點(diǎn)陣顯示屏系統(tǒng)【畢業(yè)論文】
- 基于51單片機(jī)的led點(diǎn)陣顯示屏
- 機(jī)電一體化畢業(yè)論文--基于單片機(jī)溫度采集系統(tǒng)的設(shè)計(jì)
- 機(jī)電一體化畢業(yè)論文單片機(jī)控制智能抽油煙機(jī)
- 畢業(yè)論文----基于51單片機(jī)的led滾動(dòng)顯示系統(tǒng)
- 機(jī)電一體化畢業(yè)論文--基于單片機(jī)的溫度采集系統(tǒng)的設(shè)計(jì)
- 基于51單片機(jī)控制的點(diǎn)陣led電子顯示屏設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)控制的led點(diǎn)陣顯示
- 畢業(yè)論文--基于51單片機(jī)的led點(diǎn)陣顯示屏系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 機(jī)電一體化畢業(yè)論文--小議機(jī)電一體化
- 機(jī)電一體化畢業(yè)論文講述機(jī)電一體化
- 機(jī)電一體化畢業(yè)論文-- 煤礦機(jī)電一體化
- 基于單片機(jī)的led點(diǎn)陣顯示畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的led點(diǎn)陣漢字顯示
- 基于單片機(jī)的數(shù)字萬用表設(shè)計(jì)-機(jī)電一體化畢業(yè)論文
- 機(jī)電一體化畢業(yè)論文設(shè)計(jì)機(jī)電一體化的發(fā)展
- 機(jī)電一體化畢業(yè)論文--機(jī)電一體化中的電機(jī)控制與保護(hù)
評(píng)論
0/150
提交評(píng)論