16*16點(diǎn)陣LED屏單片機(jī)學(xué)習(xí)板是一款非常適合有一定單片機(jī)基礎(chǔ)的客戶選購(gòu),我們?cè)O(shè)計(jì)的這款點(diǎn)陣屏硬件成熟可靠,LED亮度充足而且均勻圖像清晰穩(wěn)定無(wú)串?dāng)_,顯示效果非常理想,既可以顯示靜態(tài)的圖形和文字也能通過(guò)編程讓圖形和文字運(yùn)動(dòng)起來(lái),運(yùn)動(dòng)方式靈活多樣可以平移、下降、激光掃描、滾動(dòng)播出等等,大家一定看到過(guò)商場(chǎng)門(mén)口的紅色流動(dòng)字幕吧?只要你有足夠的耐心你也能實(shí)現(xiàn)這個(gè)效果!
一個(gè) 16*16點(diǎn)陣LED屏單片機(jī)學(xué)習(xí)板:
?
硬件資源:
1、一片AT89S51單片機(jī)
2、由4個(gè)8*8點(diǎn)陣LED模塊組成一個(gè)16X16點(diǎn)陣LED
3、4個(gè)按鍵開(kāi)關(guān)(功能預(yù)留)
4、一個(gè)REST手動(dòng)復(fù)位按鍵
5、一個(gè)DS1302時(shí)鐘芯片、CR2032斷電記憶電池座、蜂鳴器(功能預(yù)留)。
6、電路板大?。?04*100*15 毫米
注意:本電路板耗電較大,正常工作時(shí)LM7805穩(wěn)壓器比較燙手,有條件的客戶可以加裝散熱器或者直接用5V/1A開(kāi)關(guān)電源供電(跳過(guò)7805穩(wěn)壓器)
詳細(xì)配套軟件資料:
1、由下向上滾動(dòng)的“單片機(jī)是工業(yè)中最基礎(chǔ)的運(yùn)用......”匯編語(yǔ)言完整源程序
2、PDF格式的原理圖、裝配安裝示意圖
3、配有中、英文字模資料、示范程序
工作原理分析:
從理論上說(shuō),不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個(gè)點(diǎn)所在位置相對(duì)應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱(chēng)為靜態(tài)驅(qū)動(dòng)顯示方式。16×16的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒(méi)有這么多端口,如果我們采用鎖存器來(lái)擴(kuò)展端口,按8位的鎖存器來(lái)計(jì)算,1 6×16的點(diǎn)陣需要256/8=32個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是16×16的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。
因此在實(shí)際應(yīng)用中的顯示屏都不采用這種設(shè)計(jì),而采用另一種稱(chēng)為動(dòng)態(tài)掃描的顯示方法。動(dòng)態(tài)掃描的意思簡(jiǎn)單地說(shuō)就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如16行)的同名列共用一套列驅(qū)動(dòng)器。具體就1 6×16的點(diǎn)陣來(lái)說(shuō),把所有同l行的發(fā)光管的陽(yáng)極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽(yáng)的接法),先送出對(duì)應(yīng)第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第l行使其燃亮一定的時(shí)間,然后熄滅;再送出第2行的數(shù)據(jù)并鎮(zhèn)存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;-…?第16行之后,又重新燃亮第1行,腹輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺(jué)暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形了。
采用掃描方式進(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ù)膯?wèn)題。從控制電路到列驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。顯然,采用并行方式時(shí),從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并行傳輸?shù)姆桨甘遣豢扇〉摹?/p>
采用串行傳輸?shù)姆椒?,控制電路可以只用一?a target="_blank">信號(hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。但是,串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢螅@一行的各列才能并行地進(jìn)行顯示。這樣,對(duì)于一行的顯示過(guò)程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個(gè)部分。對(duì)于串行傳輸方式來(lái)說(shuō),列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng).在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。
解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾問(wèn)題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)過(guò)上述分析,可以歸納出列驅(qū)動(dòng)器電路應(yīng)具備的主要功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串人并出的移位功能;對(duì)于列數(shù)據(jù)顯示來(lái)說(shuō),應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。
?
硬件電路大致上可以分成單片機(jī)系統(tǒng)及外圍電路、列驅(qū)動(dòng)電路和行驅(qū)動(dòng)電路三部分
單片機(jī)系統(tǒng)及外圍電路:
單片機(jī)采用89C51或其兼容系列的芯片,采用24MHz或更高頻率的晶振,以獲得較高的刷新頻率,使顯示更穩(wěn)定。單片機(jī)的串口與列驅(qū)動(dòng)器相連,用來(lái)送顯示數(shù)據(jù)。P1口低4位與行驅(qū)動(dòng)器相連,送出行選信號(hào);P1.5~P1.7口則用來(lái)發(fā)送控制信號(hào)。PO和P2口空著,在有必要時(shí)可以擴(kuò)展系統(tǒng)的ROM和RAM。
列驅(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á)到重疊處理的目的。
它的輸入側(cè)有8個(gè)串行移位寄存器,每個(gè)移位寄存器的輸出都連接一個(gè)輸出鎖存器。引腳SI是串行數(shù)據(jù)的輸入端。引腳SCK是移位寄存器的移位時(shí)鐘脈沖,在其上升沿發(fā)生移位,并將SI的下一個(gè)數(shù)據(jù)打人最低位。移位后的各位信號(hào)出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCK是輸出鎖存器的打人信號(hào),其上升沿將移位寄存器的輸出打人到輸出鎖存器。引腳G是輸出三態(tài)門(mén)的開(kāi)放信號(hào),只有當(dāng)其為低時(shí)鎖存器的輸出才開(kāi)放,否則為高阻態(tài)。SCLR信號(hào)是移位寄存器的靖0輸入端,當(dāng)其為低時(shí)移位寄存器的輸出全部為o。由于SCK和RCK兩個(gè)信號(hào)是互相獨(dú)立的,所以能夠做到輸人串行移位與輸出鎖存互不干擾。芯片的輸出端為QA~QH.最高位QH可作為多片74HC595級(jí)聯(lián)應(yīng)用時(shí),向上一級(jí)的級(jí)聯(lián)輸出。但因QH受輸出鎖存器打人控制,所以還從輸出鎖存器前引出了QH’,作為與移位寄存器完全同步的級(jí)聯(lián)輸出。
行驅(qū)動(dòng)電路:
單片機(jī)P1口低4位輸出的行號(hào)經(jīng)4/16線譯碼器74LSl54譯碼后生成1 6條行選通信號(hào)線,再經(jīng)過(guò)驅(qū)動(dòng)器驅(qū)動(dòng)對(duì)應(yīng)的行線。一條行線上要帶動(dòng)16列的LED進(jìn)行顯示,按每一LED器件20 mA電流計(jì)算,16個(gè)LED同時(shí)發(fā)光時(shí),需要320 mA電流,選用三極管8550作為驅(qū)動(dòng)管可滿足要求。
系統(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è)置(初始化)、顯示效果處理等工作,由主程序來(lái)實(shí)現(xiàn)。
從有利于實(shí)現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu)化考慮,顯示屏程序適宜采用c語(yǔ)言編寫(xiě)。
顯示驅(qū)動(dòng)程序:
顯示驅(qū)動(dòng)程序在進(jìn)人中斷后首先要對(duì)定時(shí)器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計(jì)算公式如下:
刷新率(幀頻)=1/16×T0溢出率=1/16×fosc/12(65536—to) 其中fosc為晶振頻率,to為定時(shí)器T0初值(工作在16位定時(shí)器模式)。
然后顯示驅(qū)動(dòng)程序查詢當(dāng)前燃亮的行號(hào),從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過(guò)串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時(shí)候產(chǎn)生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打人輸出鎖存器并鎖存,然后再輸出新的行號(hào),重新打開(kāi)顯示。
圖7.4 顯示驅(qū)動(dòng)程序流程圖
?
系統(tǒng)主程序:
系統(tǒng)主程序開(kāi)始以后,首先是對(duì)系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷和端口;然后向上滾動(dòng)顯示“單片機(jī)是工業(yè)中最基礎(chǔ)的運(yùn)用......”。由于單片機(jī)沒(méi)有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示效果。
裝配圖片
?
評(píng)論
查看更多