单片机课程设计1616 LED广告屏Word下载.docx

上传人:b****5 文档编号:20724830 上传时间:2023-01-25 格式:DOCX 页数:11 大小:475.99KB
下载 相关 举报
单片机课程设计1616 LED广告屏Word下载.docx_第1页
第1页 / 共11页
单片机课程设计1616 LED广告屏Word下载.docx_第2页
第2页 / 共11页
单片机课程设计1616 LED广告屏Word下载.docx_第3页
第3页 / 共11页
单片机课程设计1616 LED广告屏Word下载.docx_第4页
第4页 / 共11页
单片机课程设计1616 LED广告屏Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机课程设计1616 LED广告屏Word下载.docx

《单片机课程设计1616 LED广告屏Word下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计1616 LED广告屏Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

单片机课程设计1616 LED广告屏Word下载.docx

二、单片机组成部分

图1系统结构框图

三、硬件电路设计

本电路是由AT89C51单片机为控制核心,低功耗;

时钟源电路有很多种,比如阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通晶体时钟源,其中晶体用12MHZ的石英晶振;

复位电路结合实际应用功能的实现,采用上电复位;

显示部分由16×

16点阵LED显示屏显示;

行驱动电路采用74LS154,列驱动电路采用74LS595。

四、16×

16点阵LED显示屏上滚屏显示原理

在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。

如果要在16×

16点阵屏以上滚屏的方式显示以字体,则需以以下方式进行显示。

在16×

16点阵屏中,我们可以把点阵屏看成16行LED组成,且每行有16个LED灯。

在本例中单片机首先将第二行的显示信息给第一行,使第一行显示图像变成第二行所要显示的。

以“我”字为例,原第一行由左到右排列,为A灭,B灭,C灭,D灭,E灭,F亮,G亮,H灭,I灭,J亮,K灭,M灭,N灭,O灭,P灭。

即二进制111110*********1转换为16进制为F9h,BFh。

原第二行由左到右排列,为A灭,B灭,C亮,D亮,E亮,F灭,G灭,H灭,I灭,J亮,K灭,L亮,M灭,N灭,O灭,P灭。

即二进制110001*********1转换为16进制为C7h,Afh。

单片机将第二行信息给第一行取代第一行原信息,故第一行由左到右排列,为A灭,B灭,C灭,D灭,E灭,F亮,G亮,H灭,I灭,J亮,K灭,L灭,M灭,N灭,O灭,P灭。

接着将第一行的信息给第十六行,第三行的信息给第二行,第四行的信息给第三行,依此类推。

按照这个方法,继续进行下面的扫描。

最终点阵屏在视觉上的显示效果是“我”字慢慢往上移。

五、16×

16点阵LED显示屏左跑马显示原理图

图2中断原理图3调用子程序原理

图4显示驱动程序流程图图5系统主程序流程图

附录

附录1:

电路图

图6总电路图

图774LS154行驱动模块

图82个74HC595级联

附录二:

实验仪器清单

1、51单片机开发板

2、LED灯256个及配套灯座256个

3、三极管8550二十个

4、排针40个

5、杜邦线、导线若干条

6、74HC589芯片及配套芯片座2套

7、芯片74LS154及配套芯片座1套

8、电阻47Ω16个,200Ω16个

附录三:

系统程序清单

#include<

reg51.h>

#defineBLKN2//列锁存器数

sbitG=0x97;

//P1.7为显示允许控制信号端口

sbitRCLK=0x96;

//P1.6为输出锁存器时钟信号端

sbitSCLR=0x95;

//P1.5为移位寄存器清○端

voiddelay(unsignedint);

//延时函数

unsignedchardatadispram[32];

//显示缓存

voidmain(void)

{

unsignedcharcodeBmp[][32]={

{

0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,

0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7,

0xF1,0xD7,0xC7,0xCF,0x37,0xDF,0xF7,0xAF,

0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD

}/*我*/,

0xFF,0x07,0xC0,0x6F,0xED,0xEF,0xF6,0xDF,

0xC0,0x01,0xDD,0xFD,0xBD,0xFF,0xC0,0x03,

0xFB,0xFF,0xF8,0x0F,0xF3,0xDF,0xF4,0xBF,

0xEF,0x3F,0x9C,0xCF,0x73,0xF1,0xCF,0xFB

}/*爱*/,

0xF7,0xDF,0xF9,0xCF,0xFB,0xBF,0xC0,0x07,

0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,

0xC0,0x07,0xDE,0xF7,0xFE,0xFF,0x00,0x01,

0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF

}/*单*/,

0xFF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBB,

0xE0,0x01,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,

0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,

0xDF,0xEF,0xDF,0xEF,0xBF,0xEF,0x7F,0xEF

}/*片*/,

0xEF,0xFF,0xEF,0x07,0xEF,0x77,0x01,0x77,

0xEF,0x77,0xEF,0x77,0xC7,0x77,0xCB,0x77,

0xAB,0x77,0xAF,0x77,0x6E,0xF7,0xEE,0xF5,

0xED,0xF5,0xED,0xF5,0xEB,0xF9,0xEF,0xFF

}/*机*/,

0xF8,0x3F,0xE7,0xCF,0xDF,0xF7,0xBF,0xFB,

0xB3,0x9B,0x73,0x9D,0x7F,0xFD,0x7F,0xFD,

0x6F,0xED,0x67,0xCD,0xB3,0x9B,0xB8,0x3B,

0xDF,0xF7,0xE7,0xCF,0xF8,0x3F,0xFF,0xFF

}/**/

};

registerunsignedchari,j,k,l;

SCON=0x00;

//串口工作模式0:

移位寄存器方式

TMOD=0x01;

//定时器T0工作方式1:

16位方式

TR0=1;

//启动定时器T0

P1=0x3f;

//P1端口初值:

允许接收、锁存、显示

IE=0x82;

//允许定时器T0中断

while

(1)

delay(2000);

//延时2秒

for(i=0;

i<

32;

i++)//显示效果:

卷帘出

dispram[i]=Bmp[5][i];

if(i%2)

delay(100);

}

delay(3000);

i<

6;

i++)//显示效果:

上滚屏

for(j=0;

j<

16;

j++)

for(k=0;

k<

15;

k++)

dispram[k*BLKN]=dispram[(k+1)*BLKN];

dispram[k*BLKN+1]=dispram[(k+1)*BLKN+1];

}

dispram[30]=Bmp[i][j*BLKN];

dispram[31]=Bmp[i][j*BLKN+1];

delay(100);

delay(3000);

左跑马

2;

for(k=1;

9;

for(l=0;

l<

l++)

dispram[l*BLKN]=dispram[l*BLKN]<

<

1|dispram[l*BLKN+1]>

>

7;

dispram[l*BLKN+1]=dispram[l*BLKN+1]<

1|Bmp[i][l*BLKN+j]>

(8-k);

}

卷帘入

dispram[i]=0x00;

/*延时函数*/

voiddelay(unsignedintdt)

{

registerunsignedcharbt;

for(;

dt;

dt--)

for(bt=0;

bt<

255;

bt++);

/*显示屏扫描(定时器T0中断)函数*/

voidleddisplay(void)interrupt1using1

registerunsignedchari,j=BLKN;

TH0=0xF8;

//设定显示屏刷新率每秒62.5帧

TL0=0x30;

i=P1;

//读取当前显示的行号

i=++i&

0x0f;

//行号加1,屏蔽高4位

do

j--;

SBUF=dispram[i*BLKN+j];

//送显示数据

while(!

TI);

TI=0;

while(j);

//完成一行数据的发送

G=1;

//消隐(关闭显示)

P1&

=0xf0;

//行号端口清○

RCLK=1;

//显示数据打入输出锁存器

P1|=i;

//写入行号

RCLK=0;

//锁存显示数据

G=0;

//打开显示

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1