16×16点阵图文LED显示屏设计的源程序清单(2)

2020-05-05 13:40

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,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},//--字:机--

文文

//下面的DB表略去 };

//*******字模表2******************// unsigned char code Bmp1[][32]={ {

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,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},//--字:机--

文文

//下面的DB表略去 };

/**********延时函数(约1 ms)************/ void delay(unsigned int dt) {

register unsigned char bt; for (; dt; dt--)

for (bt=0; bt <255; bt++):

/*******主函数 ********************/ void main(void) {

register unsigned char i,j,k, l,q,w; //初始化

SCON=0x00; //串口丁作模式0:移位寄存器方式 TMOD= 0x01; //定时器T0工作方式1: 16位方式 TR0= l; //启动定时器T0

CONIO =0x3F; //CONIO端口初值 IE =0x82; //允许定时器T0中断 while(1) {

delay(2000); //2 s

//第1种显示效果:卷帘出显示笑脸图案 for (i= 0; i<32; i++) {

for(q= 0; q< BLKN/2; q++) {dispram[i+q*32]= Bmpl[5][i];} if (i%2)delay(120);

}

delay(1000);

//卷帘出显示文字,每次字数为BLKN/2,共显示TOTAL* 2/BLKN次 for(w=0; w

for (i= 0;i<32;i++) {

for(q= 0;q< BLKN/2;q++){dispram[i+q*32]= Bmp[q+w*BLKN/2][i];} if (i%2)delay(120); }

delay(3000); }

//第1种显示效果:卷帘出显示笑脸图案 for (i= 0;i<32;i++) {

for(q=0;q

delay(1000);

//第2种显示效果:向上滚屏,每次BLKN/2个字 for(i=0; i

for(j=0;j<16; j++) {

for(k=0;k<15; k++) {

for(q=0;q

{ dispram[k*2+q* 32]= dispram[(k+1)*2+q*32]: dispram[k*2+l+q* 32]= dispram[(k+1)*2+1+q*32];} }

for(q=0;q

delay(100); }

delay(3000); //滚动暂停 }

// 第1种显示效果:卷帘出黑屏

for(1=0:i<32;i++) {

for(q=0:q

}

delay(1000);

//第3种显示效果:左移出显示 for (i=0;i

{

for(j=0;j<2;j++) for(k=0;k<8;k++) {

for(1=0;1<16; 1++) {

for(q= 0;q

dispram[l*2+q”32]= dispram[l*2+q* 32]<<1 | dispram[l*2+1+q*32]>>7;

if (q==BLKN/2 -1)dispram[l*2+l+q*32]= dispram[l*2+l+q* 32]<<1 Bmp[i][1*2+j]>>(7- k);

else dispram[l*2+l+q*32]= dispram[l*2+l+q* 32]<<1 dispram[l*2+(q+1)*32]>>7;

} }

delay(100); } }

delay(3000);

//第1种显示效果:卷帘出黑屏 for (i= 0;i<32;i++) {

for(q=0;q

delay(1000);

//第3种显示效果:右移出显示 for (i=0;i

for(j=2;j>0; j--) for(k=0;k<8;k++) {

for(1=0;1<16; 1++) {

for(q= 0;q

| | Dispram[l*2+1+q* 32]= dispram[l*2+1+q*32]>>1 | dispram[l*2+q*32]<<7; if(q==0) dispram[l*2+q*32]= dispram[l*2+q*32]>>1 | Brnp[i][1*2+j-1]<<(7-k);

else dispram[l*2+q* 32]= dispram[l*2+q*32] >>1 | dispram[l*2+l+(q -1)*32]<<7;

} }

delay(100); } }

delay(3000);

//第4种显示效果:卷帘人 for(i=0;i<32;i++) {

for(q=0;q

//主函数结束

/***显示屏扫描(定时器T0中断)函数********/ void leddisplay(void) interrupt l using 1 {

register unsigned char m,n=BLKN;

TH0= 0xFC: //设定显示屏刷新率每秒62.5帧(16 ms/帧) TL0= 0x18:

m= CONIO: //读取当前显示的行号 m= ++m&0x0F; //行号加1,屏蔽高4位 do{ n--;

SBUF= dispram[m*2+(n/2)* 30+n]; //送显示数据 while(!TI);TI=0;

} while(n); //完成一行数据的发送 G=1; //消隐(关闭显示) CONIO&=0xF0; //行号端口清0

CLK=1; //显示数据输入/输出锁存器 CONIO |=m; //写入行号

CLK=0; //锁存显示数据 G=0; //打开显示 }


16×16点阵图文LED显示屏设计的源程序清单(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的电脑遥控系统的设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: