第4章LED點(diǎn)陣屏控制_第1頁
第4章LED點(diǎn)陣屏控制_第2頁
第4章LED點(diǎn)陣屏控制_第3頁
第4章LED點(diǎn)陣屏控制_第4頁
第4章LED點(diǎn)陣屏控制_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第4章章 LED點(diǎn)陣屏控制點(diǎn)陣屏控制 LED點(diǎn)陣屏是由點(diǎn)陣屏是由LED發(fā)光管點(diǎn)陣組成,它具發(fā)光管點(diǎn)陣組成,它具有顯示亮度高、信息量大、更新速度快。用有顯示亮度高、信息量大、更新速度快。用mcs51單片機(jī)完成對(duì)單片機(jī)完成對(duì)LED發(fā)光管點(diǎn)陣的圖像、發(fā)光管點(diǎn)陣的圖像、數(shù)據(jù)顯示控制,有效地解決數(shù)據(jù)顯示控制,有效地解決LED點(diǎn)陣顯示中點(diǎn)陣顯示中驅(qū)動(dòng)、圖像顯示等若干常見問題。通過本項(xiàng)驅(qū)動(dòng)、圖像顯示等若干常見問題。通過本項(xiàng)目的學(xué)習(xí)目的學(xué)習(xí),進(jìn)一步進(jìn)一步掌握單片機(jī)開發(fā)的流程掌握單片機(jī)開發(fā)的流程,掌握掌握LED點(diǎn)陣顯示的控制方法。點(diǎn)陣顯示的控制方法。 4.1任務(wù)描述任務(wù)描述 4.2 單個(gè)字符的顯示單個(gè)字符的顯

2、示 4.3 典型案例典型案例4.1任務(wù)描述任務(wù)描述 為了讓單片機(jī)控制發(fā)光二極管,需要將發(fā)光二極管連接到單片機(jī)的端口上,如圖4.1所示,就是說單片機(jī)和LED電子屏控制的電路要連接上。圖4.1 LED電子顯示屏 要實(shí)現(xiàn)LED的閃爍發(fā)光,就是要求LED所對(duì)應(yīng)的單片機(jī)引腳不斷輸出高電平和低電平不斷輸出高電平和低電平。為了讓人眼能夠看清楚LED的閃爍變化,LED的閃爍的頻率應(yīng)在零點(diǎn)幾到十幾赫茲之間,一般取1Hz左右左右。 因此,要實(shí)現(xiàn)發(fā)光二極管以不同的快慢閃亮,只需編寫不同的程序,使單片機(jī)與發(fā)光二極管相連的端口輸出不同頻率的脈沖信號(hào)。若要控制發(fā)光二極管發(fā)出不同的閃亮樣式,則需單片機(jī)對(duì)端口的各位在不同時(shí)間

3、輸出不同的驅(qū)動(dòng)電平,就能驅(qū)動(dòng)發(fā)光二極管以不同閃亮樣式發(fā)光。 步驟為:步驟為: (1)確定LED閃亮的方式; (2)在計(jì)算機(jī)上編寫原程序,程序功能就是控制單片機(jī)在與LED連接的端口上輸出需要的高低電平信號(hào); (3)用軟件調(diào)試和編譯原程序; (4)將編譯后的程序代碼寫入單片機(jī); (5)在LED上觀察程序運(yùn)行效果。若要修改程序,可在線修改程序,再編譯和下載,再觀察修改后的效果,直至完全準(zhǔn)確為止。4.2 單個(gè)字符的顯示單個(gè)字符的顯示 最常見的LED點(diǎn)陣顯示模塊有57、79、88結(jié)構(gòu),前兩種主要用于顯示各種西文字符,后一種可多模塊組合用于漢字、圖形的顯示,并且可組建大型電子顯示屏。下面主要介紹88點(diǎn)陣點(diǎn)

4、陣的顯示原理。 圖4.2 8x8 LED點(diǎn)陣等效電路圖 對(duì)于單個(gè)單個(gè)88LED點(diǎn)陣點(diǎn)陣,其驅(qū)動(dòng)要求十分簡(jiǎn)單,作為實(shí)驗(yàn),完全可以使用單片機(jī)的使用單片機(jī)的I/O口口直接驅(qū)動(dòng)直接驅(qū)動(dòng)。具體的原理電路如圖4.3所示,P0口接LED點(diǎn)陣的陽級(jí),由于P0口沒有上拉能力,所以采用排阻上接電源提供上拉電流,用P2口接LED的陰極。 也可以采用觸發(fā)器或鎖存器等器件對(duì)數(shù)據(jù)進(jìn)觸發(fā)器或鎖存器等器件對(duì)數(shù)據(jù)進(jìn)行隔離驅(qū)動(dòng)行隔離驅(qū)動(dòng),這種方式既能增強(qiáng)驅(qū)動(dòng)能力,也能使單片機(jī)I/O口在不驅(qū)動(dòng)LED點(diǎn)陣時(shí)空閑出來作為它用。由于LED點(diǎn)陣的各行共用一個(gè)I/O口,各列也是共用一個(gè)I/O口。 圖4.3 單個(gè)字符顯示原理圖* * 軟件編制

5、軟件編制 為了分析點(diǎn)陣字符的顯示方法,首先看點(diǎn)陣字符09顯示代碼是如何形成的。由8行8列構(gòu)成數(shù)字“0” 的圖形,其中要顯示的點(diǎn)用二進(jìn)制位1表示,不顯示的位用二進(jìn)制位0表示。每列構(gòu)成一個(gè)字節(jié),從左到右各列的數(shù)值用十六進(jìn)制表示為:00,00,3E,41,41,41,3E,00。同理,可以建立數(shù)字“1”到數(shù)字“9”的代碼,如表4.1所示。 圖4.4數(shù)字“0”的8X8點(diǎn)陣示意圖。圖4.4數(shù)字“0”的8X8點(diǎn)陣示意圖表4.1 數(shù)字09的88點(diǎn)陣數(shù)值 數(shù)字 88點(diǎn)陣數(shù)值000H,00H,3EH,41H,41H,41H,3EH,00H 100H,00H,00H,00H,21H,7FH,01H,00H200H

6、,00H,27H,45H,45H,45H,39H,00H 300H,00H,22H,49H,49H,49H,36H,00H 400H,00H,0CH,14H,24H,7FH,04H,00H 500H,00H,72H,51H,51H,51H,4EH,00H600H,00H,3EH,49H,49H,49H,26H,00H 700H,00H,40H,40H,40H,4FH,70H,00H 800H,00H,36H,49H,49H,49H,36H,00H900H,00H,32H,49H,49H,49H,3EH,00H 要顯示數(shù)字09,但一個(gè)88點(diǎn)陣在同一時(shí)間只能顯示其中一個(gè)數(shù)字,作為演示程序,設(shè)定每隔

7、1秒變換一個(gè)顯示數(shù)字,即每個(gè)數(shù)字將連續(xù)顯示1秒,然后再換為下一個(gè)數(shù)字顯示。 要在8行8列的LED點(diǎn)陣上顯示一個(gè)字符,由于點(diǎn)陣引線的公共端是連接在一起的,所以不能同時(shí)將這些LED都加以控制。只能按行或者按列分別控制顯示,以小于人眼視覺暫留時(shí)間重復(fù)顯示,也就是要求每秒至少顯示50次以上,要求一次顯示過程小于2ms,顯示一列(或一行)的顯示時(shí)間小于250s。 顯示過程如下: 首先在P0口送出第一個(gè)行碼00H,在P2口送出一個(gè)列控制碼01111111; 再在P0口送第二個(gè)行碼00H,在P2口送出一個(gè)列控制碼10111111; 再在P0口送第三個(gè)行碼3EH,在P2口送出一個(gè)列控制碼11011111; 再

8、在P0口送第二個(gè)行碼41H,在P2口送出一個(gè)列碼11101111; 送完8個(gè)行碼和8個(gè)列控制信號(hào),這樣一個(gè)“0”字就顯示了一遍,接著再重復(fù)上述顯示過程。 圖4.5系統(tǒng)原理結(jié)構(gòu)框圖 軟件流程參考見圖4.6。圖4.6 電子顯示屏軟件流程圖參考源程序參考源程序#include#define uchar unsigned charuchar xdata *row0=0X8100; uchar xdata *row1=0X8200; uchar xdata *col0=0X8500; uchar xdata *col1=0X8400; uchar xdata *col2=0X8300; uchar xd

9、ata *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 x08,0 x08,/*-*/ , 0 x04,0 x04,0 x44,0 x7C,0 x44,0 x04,0 x04,0 x

10、00,/*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)uchar j,k;for(j=i;j0;j-)for(k=50;k0;k-);void display() static uchar num

11、=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/8)disloci=0 x7F;else disloci=0 xFF; void main()/*主函數(shù)*/ while(1)display();delay(2);

12、 4.3 典型案例典型案例 任務(wù)描述:用16x16LED點(diǎn)陣顯示字符“2009”,LED圖案顯示的仿真效果如圖4.7所示。 圖4.7 LED電子顯示屏原理圖 用LED點(diǎn)陣顯示多個(gè)字符,用一片74LS138譯碼器輸出端Y0,Y1,Y2,Y3分別負(fù)責(zé)控制4片74LS373的片選信號(hào),分別作為L(zhǎng)ED點(diǎn)陣顯示的行列驅(qū)動(dòng)器。設(shè)計(jì)方案如圖4.8所示,其程序流程圖如圖4.9所示。 單片機(jī)行驅(qū)動(dòng)器列驅(qū)動(dòng)器LED顯示點(diǎn)陣圖4.8 多字符顯示方案圖圖4.9 多字符顯示流程圖參考源程序:參考源程序:#include #include#include#define LEDL2 XBYTE0X0000/控行373地址1

13、#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() /延時(shí)約40us unsigned int t; for(t=0;t20;t+); void main() /主函數(shù) unsigned char i; while(

溫馨提示

  • 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. 人人文庫(kù)網(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)論