




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第4章 LED點陣屏控制,LED點陣屏是由LED發(fā)光管點陣組成,它具有顯示亮度高、信息量大、更新速度快。用mcs51單片機完成對LED發(fā)光管點陣的圖像、數(shù)據(jù)顯示控制,有效地解決LED點陣顯示中驅(qū)動、圖像顯示等若干常見問題。通過本項目的學習,進一步掌握單片機開發(fā)的流程,掌握LED點陣顯示的控制方法。,4.1任務(wù)描述 4.2 單個字符的顯示 4.3 典型案例,4.1任務(wù)描述,為了讓單片機控制發(fā)光二極管,需要將發(fā)光二極管連接到單片機的端口上,如圖4.1所示,就是說單片機和LED電子屏控制的電路要連接上。,圖4.1 LED電子顯示屏,要實現(xiàn)LED的閃爍發(fā)光,就是要求LED所對應(yīng)的單片機引腳不斷輸出高電
2、平和低電平。為了讓人眼能夠看清楚LED的閃爍變化,LED的閃爍的頻率應(yīng)在零點幾到十幾赫茲之間,一般取1Hz左右。 因此,要實現(xiàn)發(fā)光二極管以不同的快慢閃亮,只需編寫不同的程序,使單片機與發(fā)光二極管相連的端口輸出不同頻率的脈沖信號。若要控制發(fā)光二極管發(fā)出不同的閃亮樣式,則需單片機對端口的各位在不同時間輸出不同的驅(qū)動電平,就能驅(qū)動發(fā)光二極管以不同閃亮樣式發(fā)光。,步驟為: (1)確定LED閃亮的方式; (2)在計算機上編寫原程序,程序功能就是控制單片機在與LED連接的端口上輸出需要的高低電平信號; (3)用軟件調(diào)試和編譯原程序; (4)將編譯后的程序代碼寫入單片機; (5)在LED上觀察程序運行效果。
3、若要修改程序,可在線修改程序,再編譯和下載,再觀察修改后的效果,直至完全準確為止。,4.2 單個字符的顯示,最常見的LED點陣顯示模塊有57、79、88結(jié)構(gòu),前兩種主要用于顯示各種西文字符,后一種可多模塊組合用于漢字、圖形的顯示,并且可組建大型電子顯示屏。下面主要介紹88點陣的顯示原理。,圖4.2 8x8 LED點陣等效電路圖,對于單個88LED點陣,其驅(qū)動要求十分簡單,作為實驗,完全可以使用單片機的I/O口直接驅(qū)動。具體的原理電路如圖4.3所示,P0口接LED點陣的陽級,由于P0口沒有上拉能力,所以采用排阻上接電源提供上拉電流,用P2口接LED的陰極。 也可以采用觸發(fā)器或鎖存器等器件對數(shù)據(jù)進
4、行隔離驅(qū)動,這種方式既能增強驅(qū)動能力,也能使單片機I/O口在不驅(qū)動LED點陣時空閑出來作為它用。由于LED點陣的各行共用一個I/O口,各列也是共用一個I/O口。,圖4.3 單個字符顯示原理圖,* 軟件編制,為了分析點陣字符的顯示方法,首先看點陣字符09顯示代碼是如何形成的。由8行8列構(gòu)成數(shù)字“0” 的圖形,其中要顯示的點用二進制位1表示,不顯示的位用二進制位0表示。每列構(gòu)成一個字節(jié),從左到右各列的數(shù)值用十六進制表示為:00,00,3E,41,41,41,3E,00。同理,可以建立數(shù)字“1”到數(shù)字“9”的代碼,如表4.1所示。 圖4.4數(shù)字“0”的8X8點陣示意圖。,圖4.4數(shù)字“0”的8X8點
5、陣示意圖,表4.1 數(shù)字09的88點陣數(shù)值,要顯示數(shù)字09,但一個88點陣在同一時間只能顯示其中一個數(shù)字,作為演示程序,設(shè)定每隔1秒變換一個顯示數(shù)字,即每個數(shù)字將連續(xù)顯示1秒,然后再換為下一個數(shù)字顯示。,要在8行8列的LED點陣上顯示一個字符,由于點陣引線的公共端是連接在一起的,所以不能同時將這些LED都加以控制。只能按行或者按列分別控制顯示,以小于人眼視覺暫留時間重復(fù)顯示,也就是要求每秒至少顯示50次以上,要求一次顯示過程小于2ms,顯示一列(或一行)的顯示時間小于250s。,顯示過程如下: 首先在P0口送出第一個行碼00H,在P2口送出一個列控制碼01111111; 再在P0口送第二個行碼
6、00H,在P2口送出一個列控制碼10111111; 再在P0口送第三個行碼3EH,在P2口送出一個列控制碼11011111; 再在P0口送第二個行碼41H,在P2口送出一個列碼11101111; 送完8個行碼和8個列控制信號,這樣一個“0”字就顯示了一遍,接著再重復(fù)上述顯示過程。,圖4.5系統(tǒng)原理結(jié)構(gòu)框圖,軟件流程參考見圖4.6。,圖4.6 電子顯示屏軟件流程圖,參考源程序 #include #define uchar unsigned char uchar xdata *row0=0X8100; uchar xdata *row1=0X8200; uchar xdata *col0=0X85
7、00; uchar xdata *col1=0X8400; uchar xdata *col2=0X8300; uchar xdata *col3=0X8000; uchar dispcode232= 0 x04,0 x7C,0 x44,0 x40,0 x40,0 x44,0 x7C,0 x04,/*U*/ 0 x38,0 x6C,0 x44,0 x44,0 x44,0 x44,0 x24,0 x00,/*C*/ 0 x44,0 x7C,0 x1C,0 x70,0 x0C,0 x7C,0 x44,0 x00,/*M*/ 0 x08,0 x08,0 x08,0 x08,0 x08,0 x08,0
8、 x08,0 x08,/*-*/ , 0 x04,0 x04,0 x44,0 x7C,0 x44,0 x04,0 x04,0 x00,/*T*/ 0 x00,0 x44,0 x44,0 x7C,0 x44,0 x44,0 x00,0 x00,/*I*/ 0 x00,0 x44,0 x44,0 x7C,0 x44,0 x44,0 x00,0 x00,/*I*/ 0 x44,0 x7C,0 x4C,0 x18,0 x10,0 x24,0 x7C,0 x04,/*N*/ ; uchar disloc4=0 x7F,0 xFF,0 xFF,0 xFF;,void delay(uchar i) ucha
9、r j,k; for(j=i;j0;j-) for(k=50;k0;k-); void display() static uchar num=0; uchar i=0; *row0=0; *row1=0; *col0=disloc0; *col1=disloc1; *col2=disloc2; *col3=disloc3; *row0=dispcode0num; *row1=dispcode1num; if(+num=32) num=0; dislocnum/8=(dislocnum/81)|(dislocnum/87); if(!(num%8) for(i=0;i4;i+) if(i=num
10、/8) disloci=0 x7F; else disloci=0 xFF; ,void main()/*主函數(shù)*/ while(1) display(); delay(2); ,4.3 典型案例,任務(wù)描述:用16x16LED點陣顯示字符“2009”,LED圖案顯示的仿真效果如圖4.7所示。,圖4.7 LED電子顯示屏原理圖,用LED點陣顯示多個字符,用一片74LS138譯碼器輸出端Y0,Y1,Y2,Y3分別負責控制4片74LS373的片選信號,分別作為LED點陣顯示的行列驅(qū)動器。設(shè)計方案如圖4.8所示,其程序流程圖如圖4.9所示。,圖4.8 多字符顯示方案圖,圖4.9 多字符顯示流程圖,參考
11、源程序: #include #include #include #define LEDL2 XBYTE0X0000/控行373地址1 #define LEDL1 XBYTE0X0100/控行373地址2 #define LEDC1 XBYTE0X0200/控列373地址1 #define LEDC2 XBYTE0X0300/控列373地址2 unsigned char code DB1216= 0 x7e,0 x20,0 x10,0 x08,0 x04,0 x22,0 x22,0 x1c, /*2*/ 0 x1c,0 x22,0 x22,0 x22,0 x22,0 x22,0 x22,0 x1c, /*0*/ , 0 x1c,0 x22,0 x22,0 x22,0 x22,0 x22,0 x22,0 x1c, /*0*/ 0 x1c,0 x22,0 x02,0 x1e,0 x22,0 x22,0 x22,0 x1c, /*9*/ ; void delay() /延時約40us unsigned int t; for(t=0;t20;t+); ,void main() /主函數(shù) unsigned char i; while(1) unsigned long j=0 x01; uns
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油脂管理制度
- 營養(yǎng)學(師)考試歷年真題及答案
- 營銷終端激勵方案
- 企業(yè)培訓忠誠課件
- 汽車零部件質(zhì)保及售后服務(wù)合同范本
- 車庫租賃及廣告位合作合同范本
- 橋梁電梯布置方案模板
- 綠色生態(tài)區(qū)個人商鋪租賃及環(huán)保要求合同
- 糞污設(shè)備安裝方案
- 高速鐵路拆除與路基改造施工服務(wù)合同
- 2023年保定市蠡縣教師招聘考試真題
- 實習生-OFFER正式通知函
- 市政臨時占道施工方案
- 《分娩方式的選擇》課件
- 《FABE銷售法則》課件
- 直流屏培訓課件
- 培訓課件 -BBF品牌建設(shè)模型-
- 新的患者護理模式個性化醫(yī)療關(guān)懷培訓課件
- 員工身心健康情況排查表
- 基于STC89C52的智能煙霧檢測報警系統(tǒng)論文
- wh-ta16ne東芝遙控器說明書
評論
0/150
提交評論