16×16點(diǎn)陣圖文LED顯示屏設(shè)計(jì)源程序清單_第1頁
16×16點(diǎn)陣圖文LED顯示屏設(shè)計(jì)源程序清單_第2頁
16×16點(diǎn)陣圖文LED顯示屏設(shè)計(jì)源程序清單_第3頁
16×16點(diǎn)陣圖文LED顯示屏設(shè)計(jì)源程序清單_第4頁
16×16點(diǎn)陣圖文LED顯示屏設(shè)計(jì)源程序清單_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、-. z6 控制源程序清單以下是4個(gè)1616點(diǎn)陣LED電子顯示屏的源程序,分別采用匯編及C語言編寫,C程序在Keil 51環(huán)境下調(diào)試。1匯編源程序;*;4字1616點(diǎn)陣電F屏字符顯示器*;* AT89C52 12 MHz晶振 *;*;顯示字用查表法,不占存,用4個(gè)1616共陽LED點(diǎn)陣顯示;效果:向上滾動(dòng)顯示字,每次4個(gè),重復(fù)循環(huán);R2:行掃描地址(00H0FH)。;R3:滾動(dòng)顯示時(shí)控制移動(dòng)速度,也可控制靜止顯示的時(shí)間;*中斷入口程序* ORG 0000H LJMP START ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001

2、BH RETI ORG 0023H RETI ORG 002BH RETI;*主程序*START:MOV 20H,*00H ;清標(biāo)志,00H為l幀掃描完畢標(biāo)志 MOV A,*0FFH ;端口初始化 MOV P1, A MOV P2, A MOV P3, A MOV P0,A CLR Pl.6 ;串行存放器輸入/輸出端控制位 MOV TMOD, *01H ;使用T0作16位定時(shí)器,行掃描用 MOV TH0, *0FCH ;1ms初值(12 MHz) MOV TL0, *18H MOV SCON, *00H ;串口0方式傳送顯示字節(jié) MOV IE, *82H ;T0中斷允許,總中斷允許 MOV S

3、P, *70H LCALL DIS1 ;顯示準(zhǔn)備,黑屏,1.5 sMAIN: MOV DPTR,*TAB LCALL MOVDISP ;逐排顯示,每次4字 MOV DPTR,*TAB LCALL MOVDISP1 ;滾動(dòng)顯示,每排4字 AJMP MAIN;*4字逐排顯示子程序*;每次4字移入移出顯示方式,入口時(shí)定義好DPTR值MOVDISP:MOV R1,*6 ;顯示6排字,每排4字R1=排數(shù)DISLOOP: MOV R3,*100 ;每排顯示時(shí)間為16 ms100=1.6 sDISMOV: MOV R2,*00H ;第0行開場 SETB TR0 ;開掃描每次l幀WAITMOV:C 00H,D

4、ISMOV1 ;標(biāo)志為1,掃描l幀完畢16 ms為1幀,每行1 msAJMP WAITMOVDISMOV1:DJNZ R3,DISMOV ;1幀重復(fù)顯示控制顯示時(shí)間 MOV A,*128 ;顯示字指針移1排每排4字32= 128字ADD A,DPLMOV DPL,A MOV A,*0 ADDC A,DPH MOV DPH,A DEC R1 ;R1為0,顯示完 MOV A,R1 JZ MOVOUT AJMP DISLOOPMOVOUT:RET ;移動(dòng)顯示完畢;*4字滾動(dòng)顯示子程序*;每排4字向上移出顯示方式,入口時(shí)定義好DPTR值MOVDISP1:MOV R1,*255 ;向上移動(dòng)顯示6排字,每

5、排4字R1=排數(shù)16DISLOOP1: MOV R3,*10 ;移動(dòng)速度為16 ms10= 0.16 sDISMOV2: MOV R2,*00H :第0行開場 SETB TR0 ;開掃描每次1幀WAITMOV1: C 00H,DISMOV3;標(biāo)志為1掃描1幀完畢16 ms為1幀,每行1 msAJMP WAITMOV1DISMOV3: DJNZ R3,DISMOV2 ;1幀重復(fù)顯示控制移動(dòng)速度 INC DPTR ;顯示字指針移1行2字節(jié)位置INC DPTR DEC R1 ;R1為0,顯示完 MOV A,R1JZ MOVOUT1 AJMP DISLOOP1MOVOUT1: RET ;移動(dòng)顯示完畢;

6、*4字顯示子程序*;靜止顯示表中*4字DIS1: MOV R3,* 5AH :靜止顯示時(shí)間控制DIS11: MOV R2,*00H ;l幀掃描初始值(行地址000OFH) MOV DPTR,* TAB ;取表首址 SETB TR0 ;開掃描每次1幀WAIT11: C 00H, DIS111 ;標(biāo)志為l,掃描l幀完畢AJMP WAIT11DISI111: DJNZ R3,DISI1RET;*掃描程序 *;1ms傳送一行,每行顯示l ms,一次傳送4字的*行共8字節(jié)INTT0: PUSH ACC MOV TH0,* 0FCH ;1 ms初值重裝 MOV TL0,* 18H MOV A,*97 ;指

7、向第4個(gè)字行右字節(jié) ADD A,DPL MOV DPL,A MOV A,*0 ADDC A,DPH MOV DPH,A MOV A,*0 MOVC A, A+ DPTR ;查表 MOV SBUF,A ;串口0方式發(fā)送WAIT: C TI, GO ;等待發(fā)送完畢AJMP WAITGO: MOV A,DPL ;指向第4個(gè)字行左字節(jié) SUBB A,*1 MOV DPL,A MOV A,DPH SUBB A,*0 MOV DPH,A MOV A,*0 MOVC A,A+ DPTR MOV SBUF,AWAIT1: C TI,GO1AJMP WAIT1GO1: MOV R0, *03HMLOOP:MOV

8、 A, DPL ;指向前3個(gè)字行右字節(jié) SUBB A, *31 MOV DPL, A MOV A, DPH SUBB A, *0 MOV DPH, A MOV A,*0 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式發(fā)送WAIT2:C TI,GO2 ;等待發(fā)送完畢AJMP WAIT2GO2: MOV A,DPL ;指向前3個(gè)字行左字節(jié) SUBB A,*1 MOV DPL,A MOV A,DPH SUBB A,*0 MOV DPH,A MOV A,*0 MOVC A,A+DPTR MOV SBUF, AWAIT3:C TI, GO3AJMP WAIT3G03: DJNZ

9、R0O,MLOOP ;執(zhí)行3次 SETB Pl.7 ;關(guān)行顯示,準(zhǔn)備刷新 NOP ;串口存放器數(shù)據(jù)穩(wěn)定 SETB P1.6 ;產(chǎn)生上升沿,行數(shù)據(jù)輸入輸出端NOPNOP CLR Pl.6 ;恢復(fù)低電平 MOV A,R2 ;修改顯示行地址 ORL A,*0F0H ;修改顯示行地址 MOV R2,A ;修改顯示行地址 MOV A,P1 ;修改顯示行地址 ORL A,*0FH ;修改顯示行地址 ANL A,R2 ;修改顯示行地址 MOV P1,A ;修改完成 CLR Pl.7 ;開行顯示 INC R2 ;下一行掃描地址值INC DPTR INC DPTR ;下一行數(shù)據(jù)地址 MOV A, R2 ANL

10、A,*0FHJNZ GO4 SETB 00H ;R2為1I0H,現(xiàn)為末行掃描,置l幀完畢標(biāo)志 MOV A,DPL ;指針修正為原幀初值SUBB A,*32 MOV DPL, A MOV A,DPH SUBB A,*0MOV DPH, ACLR TR0 ;一幀掃描完,關(guān)掃描GO4: POP ACC RETI ;退出; *掃描文字表*;共5排字每排4個(gè)字,前后為黑屏TAB:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0

11、FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

12、,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; DB 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,0

13、07H,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H;-文字:單-DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFHDB 0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH,0FFH-文字:片-DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,

14、0EFHDB 0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H;-文字:機(jī)-DB 0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH;下面的DB表略去2C源程序 /*- 多個(gè)1616 LED顯示演示程序 MCU AT89C52 *AL 24 MHz -*/以下程序能實(shí)現(xiàn)多個(gè)1616 LED屏的多個(gè)字符顯示,顯示方式有整行上移、簾入簾出、左移、右移/ * include reg5

15、2.h * define BLKN 8 /列鎖存器數(shù)為LED顯示字?jǐn)?shù)2 * define TOTAL 20 /待顯示字個(gè)數(shù),本例共20個(gè) * define CONIO P1 /顯示控制口 sbit G=CONIO7;/CONIO.7為154譯碼器顯示允許控制信號(hào)端口,0時(shí)輸出,l時(shí)輸出全為高阻態(tài) sbit CLK= CONIO6;/CONIO.6為595輸出鎖存器時(shí)鐘信號(hào)端,l時(shí)輸出數(shù)據(jù),從l到0時(shí)鎖存輸出數(shù)據(jù) sbit SCLR= CONIO5; /CONIO.5為595移位存放器清0口,平時(shí)為l,為0時(shí),輸出全為0 unsigned char idata dispram (BLKN/2)*

16、 32=o;/顯示區(qū)緩存,4字共432單元 /*字模表1*/ unsigned char code Bmp32= 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,007H,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,/-文字:單-0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH

17、,0FFH,0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH,/-文字:片-0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H,0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH,/-文字:機(jī)-/下面的DB表略去;/*字模表2*/unsigned char code Bm

18、p132= 0F7H,0DFH,0F9H,0CEH,0FBH,0BFH,0C0H,007H,0DEH,0E7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,/-文字:單-0FEH,0BFH,0FFH,0BEH,0EFH,0BFH,0EFH,0EBH,0E0H,001H,0EFH,0FFH, 0EFH 0FFH, 0EFH,0FFH,0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,

19、0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFH,/-文字:片-0EFH,0EFH,0FFH,007H,001H,077H,001H,077H,00EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H,0ABH,077H,0AFH,077H,06FH,0F7H,0EEH,0F5H,0EDH,0F5H,0FDH,0F5H,0EBH,0F9H,0EFH,0FFH,/-文字:機(jī)-/下面的DB表略去;/*延時(shí)函數(shù)約1 ms*void delay(unsigned int dt)register unsigned char bt;for (; dt; dt-)

20、 for (bt=0; bt 255; bt+): /*主函數(shù) *void main(void)register unsigned char i,j,k, l,q,w; /初始化SCON=0*00; /串口丁作模式0:移位存放器方式TMOD= 0*01; /定時(shí)器T0工作方式1: 16位方式TR0= l; /啟動(dòng)定時(shí)器T0CONIO =0*3F; /CONIO端口初值IE =0*82; /允許定時(shí)器T0中斷while(1) delay(2000); /2 s /第1種顯示效果:卷簾出顯示笑臉圖案for (i= 0;i32; i+) for(q= 0;q BLKN/2; q+)disprami+

21、q*32= Bmpl5i; if (i%2)delay(120);delay(1000);/卷簾出顯示文字,每次字?jǐn)?shù)為BLKN/2,共顯示TOTAL* 2/BLKN次for(w=0; w TOTAL* 2/BLKN; w+)for (i= 0;i32;i+)for(q= 0;q BLKN/2;q+)disprami+q*32= Bmpq+w*BLKN/2i;if (i%2)delay(120);delay(3000);/第1種顯示效果:卷簾出顯示笑臉圖案 for (i= 0;i32;i+) for(q=0;qBLKN/2;q+)disprami+q*32= Bmpl5i;) if(i%2)de

22、lay(120);delay(1000);/第2種顯示效果:向上滾屏,每次BLKN/2個(gè)字 for(i=0;iTOTAL* 2/BLKN; i+) for(j=0;j16; j+) for(k=0;k15; k+) for(q=0;qBLKN/2;q+) dispramk*2+q* 32= dispram(k+1)*2+q*32: dispramk*2+l+q* 32= dispram(k+1)*2+1+q*32; for(q=0;qBLKN/2;q+) dispram30+ q* 32= Bmpq+i*BLKN/2j*2; dispram31+q*32= Bmpq+i*BLKN/2j*2+1

23、; delay(100); delay(3000); /滾動(dòng)暫停 / 第1種顯示效果:卷簾出黑屏 for(1=0:i32;i+) for(q=0:qBLKN/2;q+)disprami+q*32= 0*ff; if (i%2)delay(120);delay(1000);/第3種顯示效果:左移出顯示 for (i=0;iTOTAL; i+) for(j=0;j2;j+) for(k=0;k8;k+) for(1=0;116; 1+) for(q= 0;qBLKN/2;q+) dispraml*2+q32= dispraml*2+q* 327; if (q=BLKN/2 -1)dispraml*2+l+q*32= dispraml*2+l+q* 32(7- k); else dispram

溫馨提示

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