LED广告屏设计

摘要:设计选用由4个8×8点阵模块组合而成的16×16 LED 点阵显示屏,以AT89S52 单片机为主控芯片,采用74hc595作为数据扫描和74hc154译码器驱动。设计中主要运用了Proteus仿真设计软件,给出了完整设计电路和Keil编程软件的C语言程序,并画出了编程思路的流程图。通过调试、运行,最终完成了一个完整的仿真电路设计,其功能是在16×16的LED点阵中移动循环显示出"李志民论文题"六个汉字。其中大部分功能是通过Protues仿真软件实现的。

关键词:Proteus仿真;单片机;汉字移动显示;LED点阵

0  引言

    LED 显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富、制作简单,安装方便以及对室内外环境适应能力强等优点,被广泛应用于各种公共场合广泛应用于金融证券、银行利率、商业广告、文化娱乐等方面。 本文介绍的是一种可用在实验室等场合的公告牌的LED 点阵电子显示屏设计。公告内容随时可以更新,能实现汉字或图片的移动循环显示。考虑到所需元器件的易购性,本设计使用了4个8×8 的点阵发光管模块,组成16×16 发光点阵,显示待定的中文、字符以及数字。

1  LED显示的基本原理

8×8点阵的外观及引脚如图 1所示,其等效电路如图 2所示。由等效电路中可以看出,只要合理的控制各个 LED的阳极和阴极的电位,就可以控制 LED的点亮和熄灭。但一般情况下,8×8点阵只能显示数字和之母,并不能显示汉字及更为复杂的图形信息,主要是因为它们没有足够的信息显示单位,一般情况下要完全显示出常用汉字至少需要16×16点阵,但由于Prouteus元件库中没有16×16LED点阵模块,为了达到显示要求,每个汉字可由4个8×8LED模块组成。组合方式为先对每个8×8模块行列引脚连接好总线,然后四个单色模块紧密组合一起成为一个16×16模块。

                       (图一  8×8点阵的外观及引脚图)

(图二  8×8点阵的等效电路)

驱动电路采用动态扫描驱动方式,采用一个74hc154译码器和两个74hc595共同驱动,单片机上电复位后,按逆向式逐列扫描,在某一时刻只有一列的LED被对应的字模数据驱动点亮。只要扫描时间合适,利用人眼的视觉暂留特性,看上去整个字符就显示在LED点阵显示器上。

2  汉字显示电路设计

汉字点阵的控制电路采用AT89C52单片机,硬件电路由单片机接口电路、LED显示屏行列驱动电路、LED点阵显示屏三部分组成,如图3所示,电路用Proteus软件画出,根据选用的译码器不同而变化,具体画法参见文献[1]。

(图3  汉字点阵显示电路原理图) 

3  汉字显示程序设计

    设计中,先通过汉字取模软件获得“李志民论文题”六个字相对应于16×16点阵的16进制代码,并定义为数组。在主程序中,先通过设定一个循环16次的For语句嵌套来扫描一次完整的16列点阵,并通过CP上升沿把数据送入移位寄存器,即为一个完整的汉字,然后设定每个汉字显示3次,利用人眼的视觉暂留特性,看上去整个字符就显示在LED点阵显示器上。接着设定移动效果,因为是16×16点阵,即每一列都有两个8×8,只要设定让每列显示完3次之后再把字模表的数据指针+2即可实现移动一列的效果,并通过一个大循环实现汉字的不断左移效果,当全部移动完毕之后,再用while大循环使之回到起点继续左移,最终实现常见广告屏的汉字的移动循环效果。

    根据以上硬件电路和单片机控制原理,编程思路如图4所示。

注:完整的程序附录在最后。

  (图4  程序流程图)

                  

4  仿真及结果

   仿真方法是:

   (1)在Keil C51仿真软件下创建项目,并把上述源程序添加到项目中,通过编译产生一个".hex"为后缀的文件,此文件就是用于烧写到Proteus软件中AT89C52芯片的文件,参考文献[2]。

   (2)把生成的".hex"为后缀的文件添加到Proteus软件中绘制的AT89C52芯片中作为控制程序。方法参见文献[3]。

   (3)在Proteus软件仿真电路图中点击左下角的运行按钮,则可在LED显示点阵中看到"李志民论文题"六个汉字轮流移动显示的结果。从而达到一般广告屏的效果。六个字显示出来如图5所示。

(图5  最终显示效果)

5  结束语

在本文中采用 Proteus设计 16×16点阵显示广告屏,借助其功能强大的仿真系统对设计的系统进行实时仿真,以检测系统设计的正确性与合理性,并可以根据仿真电路图制作硬件电路,这种设计具有传统逻辑设计方法所无法比拟的优越性。

参考文献:

[1] 周润景.基于 Proteus的电路与单片机系统设计与仿真 [M].北京:北京航空航天大学出版社,2005.

[2] 金炯泰,金奎焕 .如何使用KEIL8051C编译器[M].北 京:北京航空航天大学出版社,2002.

[3] 李秀忠.单片机应用技术[M].北京:人民邮电出版 社,2007.

[4] 曹巧嫒 .单片机原理及应用[M].北京 :电子工业出版社,2002.

[5] 潘永雄 .新编单片机与应用[M].西安 :西安电子科技大学出版社,2003.

附录:完整的程序代码如下:

#include <reg52.h>

#define uchar unsigned char

sbit ST_CP=P3^2;

uchar code bmp[32*8]={ //字模表

  

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/

0x80,0x08,0x84,0x08,0x44,0x08,0x44,0x08,0x24,0x09,0x14,0x49,0x0C,0x89,0xFF,0x79,

0x0C,0x0D,0x14,0x0B,0x24,0x09,0x44,0x08,0x44,0x08,0x84,0x08,0x80,0x08,0x00,0x00,/*"李",1*/

0x08,0x40,0x08,0x38,0x88,0x00,0x88,0x00,0x88,0x3C,0x88,0x40,0x88,0x40,0xFF,0x42,

0x88,0x4C,0x88,0x40,0x88,0x40,0x88,0x70,0x88,0x04,0x08,0x08,0x08,0x30,0x00,0x00,/*"志",2*/

0x00,0x00,0x00,0x00,0xFE,0xFF,0x22,0x41,0x22,0x21,0x22,0x11,0x22,0x01,0x22,0x01,

0xE2,0x03,0x22,0x0D,0x22,0x11,0x22,0x21,0x3E,0x41,0x00,0xF1,0x00,0x00,0x00,0x00,/*"民",3*/

0x40,0x00,0x40,0x00,0x42,0x00,0xCC,0x7F,0x00,0x20,0x40,0x10,0x20,0x00,0x90,0x3F,

0x0C,0x44,0x03,0x42,0x0C,0x41,0x90,0x40,0x20,0x40,0x40,0x70,0x40,0x00,0x00,0x00,/*"论",4*/

0x08,0x80,0x08,0x80,0x08,0x40,0x38,0x40,0xC8,0x20,0x08,0x11,0x09,0x0A,0x0E,0x04,

0x08,0x0A,0x08,0x11,0xC8,0x20,0x38,0x40,0x08,0x40,0x08,0x80,0x08,0x80,0x00,0x00,/*"文",5*/

0x80,0x80,0x80,0x60,0xBE,0x1C,0xAA,0x20,0xAA,0x7F,0xAA,0x44,0xBE,0x44,0x80,0x44,

0x02,0x50,0xF2,0x4B,0x1A,0x44,0xD6,0x43,0x12,0x44,0xF2,0x4B,0x02,0x50,0x00,0x00,/*"题",6*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",7*/

};

void delay(uchar ms)        // 延时毫秒@12M,ms最大值255   

{   

    uchar i;   

    while(ms--)   

        for(i=0;i<110;i++);   

}

void main()

{

uchar base,col;

while(1)

{

 for(base=0;base<=224;base=base+2) //控制移动效果。偶数  32*(8-1)=224;

 {

for(col=0;col<16;col++) // 显示一个汉字

{

SBUF=bmp[base+col*2];

delay(1);

SBUF=bmp[base+col*2+1];

delay(1);

P1=col;

ST_CP=0; //CP上升沿

ST_CP=1; //移位寄存器的数据进入数据存储寄存器 delay(1); //延时显示

}

 }

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值