16x96点阵屏设计.docx
《16x96点阵屏设计.docx》由会员分享,可在线阅读,更多相关《16x96点阵屏设计.docx(15页珍藏版)》请在冰点文库上搜索。
16x96点阵屏设计
16x96LED点阵屏系统
现在LED点阵屏在社会上的应用非常广泛,它具有亮度高、发光均匀、可靠性好、接线简单、拼装方便等优点,能构成各种尺寸的显示屏,因此,它被广泛应用于大型LED智能显示屏、智能仪器仪表和机电一体化设备的显示屏中,取得了较好的效果。
随着微电子技术、计算机技术及信息处理技术的发展,LED点阵显示屏正作为一种新的传媒工具,在越来越多的领域中发挥作用.如广告、金融、交通、文艺、商业、体育、工业、教学、军事、政府等几乎涉及到生活中的各个方面.大到几十平方的户外广告屏,小到电梯系统中用的显示屏或交通指示屏,许多企业及政府部门应用了电子黑板,证券、银行等部门也有信息数字混合屏,带来了广泛的社会效益及经济效益。
接下来讲解点阵屏的制作:
一、材料
8*8点阵屏模块X24块
74HC595X12片
74LS138X2片
S8550X16个
STC89C52RC最小系统X1
电源模块(5v)X1
8*8点阵模块:
显示单元(Displayunit)由电路及安装结构确定的并具有显示功能的器件组成LED显示屏的最小单元,也叫点阵显示模块。
点阵显示屏是由上万个或几十万个LED发光二极管组成,每个发光二极管称为一个像素。
为了取得良好的显示一致性并简化器件结构,八十年代以来出现了组合型LED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成,即所谓的点阵模块。
点阵模块具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。
按照颜色的不同分为单基色、双基色和三基色三类,可显示红、黄、绿、蓝、橙等颜色。
按照点阵规模大小分有4×4、4×8、5×7、5×8、8×8、16×16、24×24、32×32、40×40等。
按照像素的直径大小分有φ3、φ3.75、φ5、φ10、φ20等。
从内部结构可以看出8×8点阵共需要64个发光二极管,且每个发光二极管是放置在各行和列的交叉点上。
当对应的某一列置高电平,另一列置低电平时,则在该行和列的交叉点上相应的二极管就亮。
LED显示屏就是由若干个点阵模块组成的,它通过一定的控制方式,就可以显示文字、文本、图形、图像、动画等各种信息,以及电视、录像信号。
二、方案设计
实现的方案很多,这里采用EA改进的方案,以适应EA的小产品。
于是使用LED点阵显示信息,控制电路采用数字电路控制,实现简单方便。
三、系统硬件
显示屏驱动部分:
显示屏分成屏体和控制器两部分,屏体的主要部分是显示阵列以及有行列驱动电路。
根据安装环境的空间以及考虑成本造价,决定使用多大尺寸的显示屏,从而决定了显示模块的数量,这里以8×8点阵为例,模块单位为256点阵,即需要16块点阵模块。
汉字一般是256点阵,那么该屏可以一次显示4个汉字。
采用扫描方式进行显示时,分成两步,对于每行有一个行驱动器,各行的同名列共用一个列驱动器,由单片机给出行选通信号,从第一行开始依次对各行进行扫描,对于列,根据各列所存数据,确定相应的列驱动器是否将该列与行接通,如果接通,那么该行该列的LED将亮,以同样方法进行显示全部各行都扫描一遍之后(一个扫描周期),再从第一行开始,进行下一个周期的扫描。
只要一个扫描周期的时间比人眼1/25秒的滞留时间短,就不会感觉出闪烁现象。
显示数据从驱动芯片到显示模块是以并行方式传输的,但显示数据从单片机到驱动芯片是以串行方式传输的,由于串行传输的控制电路简单,设计容易,缺点是串行数据传输需要很长的时间,不过这可以由软件来弥补,也可考虑单片机的控制速度。
显示驱动电路由74HC595组成。
74HC595输入端是8位串行移位寄存器,输出端是8位并行缓存器具有锁存功能。
由于CLK、LOAD端相连,而数据线分开,这样在同一脉冲下,行列的数据可以同时进行传入,行列数据准备好后,启动LOAD信号使所有数据同时输出并锁存,这样的设计较之传统方法提高了4倍的速度,占用I/O口少,由于CLK,LOAD引线较长,为避免线间干扰,在驱动6片74Ls595之后再加驱动芯片74L5244以驱动下一级驱动电路。
行列扫描驱动相当于对发光管脉冲供电,要获得与直流驱动方式相当的发光强度,脉冲驱动电流的平均电流I1与直流电流I2相同,它们与脉冲电流幅值If的关系为If=Ton/Th,×I1是扫描周期,Ton是导通时间,占空比是1/16,扫描频率应大于24HZ,I取8mA,那么I=8×16=128mA,发光管压降取2V,那么每个发光管应串接50的电阻。
行驱动最大瞬间电流能达到128×80=10.240A。
LED显示屏驱动电路的设计,与所用控制系统相配合,通常分为动态扫描型驱动及静态锁存型驱动二大类。
以下就动态扫描型驱动电路的设计为例为进行分析:
动态扫描型驱动方式是指显示屏上的4行、8行、16行等n行发光二极管共用一组列驱动寄存器,通过行驱动管的分时工作,使得每行LED的点亮时间占总时间的1/n,只要每行的刷新速率大于50Hz,利用人眼的视觉暂留效应,人们就可以看到一幅完整的文字或画面。
常规型驱动电路的设计一般是用串入并出的通用集成电路芯片如74HC595或MC14094等作为列数据锁存,以8550等小功率PNP三极管为行驱动,而以达林顿三极管如TIP127等作为行扫描管。
如动态扫描型驱动方式是指显示屏上的4行、8行、16行等n行发光二极管共用一组列驱动寄存器,通过行驱动管的分时工作,使得每行LED的点亮时间占总时间的1/n,只要每行的刷新速率大于50Hz,利用人眼的视觉暂留效应,人们就可以看到一幅完整的文字或画面。
常规型驱动电路的设计一般是用串入并出的通用集成电路芯片如74HC595或MC14094等作为列数据锁存,以8550等小功率PNP
如以单色点阵、16行×64列为一个基本单元,则需用8片74HC595、16个行扫描管,其工作原理为:
将八片74HC595级连,共用一个串行时钟CLK及数据锁存信号STR。
当第一行需要显示的数据经过8×8=64个CLK时钟后将全部移入74HC595中,此时产生一个数据锁存信号STR,使数据锁存在74HC595的后级锁存器中,同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高平,显然第一行LED管子的亮、灭取决于74HC595中所锁存的信号;在第一行LED管子点亮的同时,在74HC595中移入第二行需要显示的数据,随后将其锁存,并同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管子点亮……以此类推,当第十六行扫描过后再回到第一行,只要扫描速度足够高,就可形成一幅完整的文字或图像。
显示屏主控制部分:
硬件:
采用STC89C52RC最小系统控制,具体电路图,请参考电路图。
软件:
下面为主程序,采用C语言编程,代码如下:
/*****************************************************
16*128LED点阵屏C程序
******************************************************
//595连级输出数据,138行驱动。
P0_1为移动速度高速/*点阵显示汉字程串口输出字符数据,
//P2口输出行扫描信号,P2_7输出595锁存信号。
*/
#include
#include//后加的
#defineucharunsignedchar
#defineuintunsignedint
ucharyid,h;//YID为移动计数器,H为行段计数器。
uintzimuo;//字模计数器
ucharcodehanzi[];//汉字字模
ucharBUFF[18];//缓存
voidin_data(void);//调整数据
voidrxd_data(void);//发送数据
voidsbuf_out();//16段扫描
unsignedcodesw[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//16行段码*/
//0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e};/*16行段码*/
/********************************************/
voidmain(void)
{
uchari,d=4;
yid=0;
zimuo=0;
while
(1)
{
while(yid<16)//数据移位。
{
for(i=0;i{
sbuf_out();
}
yid++;//移动一步
}
yid=0;
zimuo=zimuo+32;//后移一个字,
if(zimuo>=1344)//总数减7个字。
zimuo=0;
}
}
/********************************/
voidsbuf_out()
{
for(h=0;h<16;h++)//16行扫描
{
in_data();//调整数据
rxd_data();//串口发送数据
P1=0x7f;//关闭显示。
P1_7=1;//锁存为高,595锁存信号
P1=sw[h];//送段码
}
}
/******************************************************/
voidin_data(void)
{
chars;
for(s=8;s>=0;s--)//h为向后先择字节计数器,zimuoo为向后先字计数器
{
BUFF[2*s+1]=hanzi[zimuo+32*s+2*h];//把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
BUFF[2*s]=hanzi[zimuo+1+32*s+2*h];//把第一个字模的第二个字节放入BUFF1中,第二个字模的第二个字节放入BUFF3中
}
}
/*******************************************************/
voidrxd_data(void)//串行发送数据
{
chars;
ucharinc,tempyid,temp;
if(yid<8)
inc=0;
else
inc=1;
for(s=0+inc;s<16+inc;s++)//发送8字节数据
{
if(yid<8)
tempyid=yid;
else
tempyid=yid-8;
temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid));//h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
//temp=255-temp;
//for(m=0;m<4;m++)
//temp=_crol_(temp,1);
SBUF=temp;//把BUFF中的字节从大到小移位相或后发送输出。
while(!
TI);TI=0;//等待发送中断
}
}
/*******************************************************/
ucharcodehanzi[]=
{
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,
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,
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,
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,
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,
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,
//=============================================================================
/*--调入了一幅图像:
这是您新建的图像--*/
/*--宽度x高度=16x16--*/
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xFF,0x7F,0xFF,0x7F,0xFE,0x3F,0xFE,0x3F,0xFE,0x3F,0xFC,0x1F,0x80,0x00,0xE0,0x03,0xF0,0x07,0xF8,0x0F,0xF8,0x0F,0xF0,0x07,0xF0,0x87,0xF3,0xE7,0xEF,0xFB,0xFF,0xFF,//★0
0xFF,0x7F,0xFF,0x7F,0xFE,0x3F,0xFE,0x3F,0xFE,0x3F,0xFC,0x1F,0x80,0x00,0xE0,0x03,0xF0,0x07,0xF8,0x0F,0xF8,0x0F,0xF0,0x07,0xF0,0x87,0xF3,0xE7,0xEF,0xFB,0xFF,0xFF,//★1
0xFF,0x7F,0xFF,0x7F,0xFE,0x3F,0xFE,0x3F,0xFE,0x3F,0xFC,0x1F,0x80,0x00,0xE0,0x03,0xF0,0x07,0xF8,0x0F,0xF8,0x0F,0xF0,0x07,0xF0,0x87,0xF3,0xE7,0xEF,0xFB,0xFF,0xFF,//★2
0xFE,0xF7,0xFE,0xF7,0xE0,0x00,0xF6,0xF7,0xF6,0xB7,0xF6,0x67,0xF4,0xF0,0xE9,0x75,0xAB,0xB7,0xAF,0xD5,0x9F,0xEB,0xF7,0x7F,0xEE,0xEB,0xCC,0xD9,0xDD,0xDC,0xFF,0xFE,//热0
0xDC,0x01,0xDF,0xEF,0xDB,0xEF,0xDA,0x0F,0xDB,0x77,0xDB,0x77,0xDB,0xAB,0xDB,0xAD,0xDF,0xDF,0xD7,0xEF,0xEF,0xF3,0xF7,0xFC,0xCD,0xDB,0x9B,0xBB,0xBB,0xBB,0xFF,0xFD,//烈1
0xFE,0xFF,0xFE,0xFF,0xFE,0xC0,0x80,0x5F,0xDF,0x5E,0xED,0xAD,0xFD,0xEB,0xFD,0xF7,0xFD,0xE7,0xF9,0xE7,0xFA,0xDB,0xF6,0xDB,0xE7,0x7D,0x8F,0x9E,0xDF,0xE3,0xFF,0xFF,//欢2
0xFF,0xFD,0xFE,0x7B,0xC1,0x93,0xDD,0xDB,0xDD,0xDF,0xDD,0xDF,0xDD,0xD8,0xDD,0xDB,0xDD,0x5B,0xD5,0x9B,0xED,0xDB,0xFD,0xFB,0xFD,0xFB,0xFF,0xF5,0x80,0x0E,0xFF,0xFF,//迎3
0xFF,0xFF,0xFF,0xFD,0x80,0x13,0xFD,0xFB,0xED,0xBF,0xCD,0x7F,0xF5,0x70,0xFD,0xF7,0x80,0x17,0xFD,0xF7,0xFD,0xF7,0xFD,0xF7,0xFD,0xD7,0xFD,0xE7,0xFD,0xF7,0xFD,0xFF,//评4
0xFD,0xEF,0xFD,0xCF,0xFD,0xF7,0xDD,0xF7,0x80,0x1B,0xFD,0xF3,0xFD,0xF9,0xFD,0xFA,0xC0,0x3B,0xDF,0xBB,0xDF,0xBB,0xDF,0xBB,0xDF,0xBB,0xC0,0x3B,0xDF,0xBB,0xFF,0xFF,//估5
0xFF,0x7F,0xFF,0x7F,0xE0,0x03,0xFF,0xBF,0xFF,0xBF,0x80,0x00,0xFF,0xDF,0xFB,0xEF,0xF0,0x0F,0xFB,0xFF,0xFD,0xFF,0xFE,0xBF,0xFF,0x7F,0xFE,0xFF,0xFD,0xFF,0xFF,0xFF,//专6
0xFF,0xBF,0xFF,0x7F,0x80,0x03,0xDF,0xFD,0xE8,0x05,0xFF,0x7F,0xFF,0xBF,0xFB,0x0F,0xF2,0xB1,0xFC,0xDF,0xFC,0x67,0xF2,0x99,0x8E,0xE7,0xDE,0xF9,0xFF,0x5F,0xFF,0xBF,//家7
0xFB,0xDF,0xFB,0xDF,0x80,0x01,0xFB,0x5F,0xFC,0xF7,0xFE,0xE7,0xC0,0x17,0xFF,0xF3,0xF7,0xF5,0xE7,0xB6,0xF7,0x77,0xFA,0x77,0xFB,0x77,0xFF,0xF7,0x80,0x07,0xFF,0xF7,//莅8
0xFF,0x7F,0xFE,0x6F,0xFF,0x6F,0x80,0x6D,0xFB,0xAD,0xF7,0xAD,0xF7,0xCD,0xDF,0x6D,0x80,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xC0,0x6F,0xDF,0x6F,0xFF,0xFF,//临9
0xFD,0x9F,0xF5,0xE3,0xED,0xEF,0xED,0xEF,0xFD,0xEF,0x80,0x00,0xFD,0xEF,0xED,0xEF,0xEB,0x8F,0xF3,0xE3,0xFB,0xEC,0xF5,0xEF,0xB6,0x6F,0xAF,0xEF,0x9F,0xEB,0xBF,0xF7,//我10
0xC1,0xFF,0xFE,0x03,0xFB,0xBF,0xFB,0xDF,0xFD,0xEF,0xFE,0x07,0xFB,0x3F,0xF7,0xCF,0xE0,0x03,0xCE,0xF7,0xFA,0xDF,0xF6,0xEF,0xEE,0xF7,0xDE,0xFB,0xDE,0xBD,0xFF,0x7F,//系11
0xFF,0x77,0xE3,0x77,0xFC,0x77,0xDF,0x77,0xDF,0x40,0xC0,0x77,0xFF,0xD7,0xC0,0x67,0xDF,0x73,0xDF,0x74,0xC0,0x77,0xDF,0x77,0xDF,0x77,0xDF,0x77,0xC0,0x75,0xFF,0xFB,//指12
0xFF,0xFF,0xF0,0x07,0xF7,0xF7,0xF0,0x07,0xDF,0xF7,0xDF,0xF7,0xC0,0x0F,0xFB,0xFF,0xFB,0xFF,0x80,0x00,0xFB,0xEF,0xFB,0xDF,0xFB,0x9F,0xFB,0xDF,0xFA,0xFF,