LED显示屏论文.doc_第1页
LED显示屏论文.doc_第2页
LED显示屏论文.doc_第3页
LED显示屏论文.doc_第4页
LED显示屏论文.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

低成本LED显示模块(原理图,PCB板等)新低成本LED显示屏模块综述:该LED点阵显示模块采用AT89C52控制。可显示汉字、图形、动画及英文字符等;显示方式有静态、横向滚动、垂直滚动和翻页显示等。单块模块控制驱动12块(最多可控制24块)8X8点阵,共16X48点阵(或32X48点阵),是单块MAX7219(或PS7219、HD7279、ZLG7289及8279等类似LED显示驱动模块)的12倍(或24倍)!可采用“级联”的方式组成任意点阵大显示屏。显示效果好,功耗小,且比采用MAX7219电路的成本更低。在我们生活中LCD的应用日益广泛,带给我们许多便利。但是,LCD的成本高,尤其是要构成大尺寸的显示屏,成本令大多数人无法接受。还有LCD本身不发光,需要另带光源。正因为LCD的这些特点,LCD的应用受到一定的限制。由于LED自身就是发光器件且较容易做成大的尺寸,在一些特定的场合,如室外广告,公交车报站牌,银行,邮电等室内的大屏幕,应用LED有着独特的优势。基于以上的几点,我们自己设计了这个LED点阵显示模块。电路设计:LED显示常用的有静态显示和动态扫描显示。静态显示显示效果好,但是功耗大,显示一个16X16的字的功耗为:16X16X10X5=12800mW=12.8W!普通电池根本无法驱动。要是组成大显示屏那功耗将更惊人。而且采用静态显示需要的驱动器件多,硬件成本高。而动态显示方式在显示时因为是扫描显示会有“闪”的感觉,但是控制好扫描的频率,由于人眼的视觉暂留作用,根本察觉不到。而且功耗低,硬件成本低。动态显示方式是每个LED都不是连续工作,因而还有利于延长LED的使用寿命。因此我们采用了动态显示方式。 1、控制电路:51系列单片机的应用广泛,成本低,控制应用等电路成熟。因此,我们选择51系列单片机进行控制。这里我们选择了内含8K Flash的AT89C52,因为我们只需要显示特定的文字,无需庞大的字库。因此8K Flash已经可以满足字库储存的需求,不需要外接存储器。因此只需接上12M晶振,复位电路构成最小系统就可以了(见图1)。图1AT89C52最小系统及LED行驱动电路为了让LED显示屏实现功能显示,我们还接了3个按键。选择P30,P31,P32是为了在编程时可以采用中断也可以使用查询的方法,给以后的编程留下灵活的选择余地。按键电路如图2所示。图2按键电路LED的列要实现扫描功能,我们采用了高有效的CD4514四线-十六线译码器。因为我们需要32位列扫描,将两片CD4514进行级连就实现了32位列扫的要求(见图3)。之所以采用高有效的译码器是为了和列的反相驱动。1、驱动电路:驱动电路我们没有采用分离器件来驱动,而是采用的锁存驱动,灌电流方面则是用达林顿阵列来驱动的。成本低,而且使用方便。具体实现是采用74HC573锁存器接成直通电路作为行驱动,而不是采用其锁存功能。最大可提供25mA拉电流驱动,足以驱动LED了。列方面32位列扫描已经由CD4514实现,但是它没有驱动最多情况下8个LED的能力。配合CD4514高有效,采用ULN2803达林顿阵列反相驱动,在逻辑功能和驱动能力上符合了LED的驱动要求。最多同时驱动24个LED,按每个LED 10mA来算,共240mA的灌电流,而ULN2803最大可以吸收500mA的灌电流(见图3)。图3LED列扫描驱动电路程序设计:1、基本思路:硬件上采用动态扫描显示,那软件上应该怎么实现?AT89C52是8位机,每次只能处理8位的数据。要显示16X16点阵的文字或图形就要将其转化为8X32点阵来显示。例如要显示如图4的凌阳公 司LOGO,就要先对LOGO如图进行编码,获得如下32个两位十六进制数。0X07,0X80,0X1F,0XB0,0X3F,0XB8,0X7B,0XBC, 0X73,0X9C,0XE2,0X8E,0XE6,0XCE,0XF8,0X3E, 0XE6,0XCE,0XE2,0X8E,0X73,0X9C,0X7B,0XBC, 0X3B,0XF8,0X1B,0XF0,0X03,0XC0,0X00,0X00然后通过单片机给行电路依次送数,锁存上拉驱动后到LED,再经ULN2803吸收灌电流,从而实现一列显示。经过一定延时,再扫描下一列,再送数如此循环送数扫描,扫描完32次后,即完成了一个16X16点阵文字或图形的显示。图中箭头为扫描顺序。图4图形显示编码(凌阳科技LOGO)1、程序实现: /*头定义及文字或图形代码段*/ #include #define uc unsigned char uc code words= 0X07,0X80,0X1F,0XB0,0X3F,0XB8,0X7B,0XBC,/凌阳 0X73,0X9C,0XE2,0X8E,0XE6,0XCE,0XF8,0X3E, 0XE6,0XCE,0XE2,0X8E,0X73,0X9C,0X7B,0XBC, 0X3B,0XF8,0X1B,0XF0,0X03,0XC0,0X00,0X00, 0X00,0X40,0X40,0X40,0X20,0XFE,0X31,0X00, /凌 0X06,0X09,0X24,0X91,0X25,0X22,0X26,0X62, 0X25,0X94,0XFC,0X88,0X24,0X94,0X26,0XE2, 0X65,0X02,0X2D,0X83,0X04,0X02,0X00,0X00, 0X00,0X00,0X7F,0XFF,0X40,0X10,0X44,0X08, /阳 0X5B,0X10,0X60,0XE0,0X00,0X00,0X7F,0XFF, 0X41,0X02,0X41,0X02,0X41,0X02,0X41,0X02, 0X41,0X02,0XFF,0XFF,0X40,0X00,0X00,0X00, /以下文字代码省略 ; /*延时子函数*/ void delay() uc t; for(t=72;t0;t-); /*中断子函数*/ void Int0() interrupt 0 using 1 uc i,k,m; for(m=0;m5;m+) for(k=0;k3;k+) for(i=0,P33=0,P34=0,P35=0,P36=0,P37=0;i32;i+) P0=words99; P1=words99; P2=words99; delay(); P0=0;P1=0;P2=0; P3+=8; /*主函数*/ main() uc i,j,k,m; unsigned int n=0; EX0=1; /外部中断0允许 IT0=1;/外部中断0下降沿触发 EA=1;/开放中断 while(1) for(j=0;j15;j+) for(m=0;m241;m+) for(k=0;k3;k+) for(i=0,P33=0,P34=0,P35=0,P36=0,P37=0;i32;i+) n=i+482*j+2*m; P0=wordsn; P1=wordsn+32; P2=wordsn+64; delay(); P0=0;P1=0;P2=0; P3+=8; 本程序实现了凌阳科技LOGO和相关文字的横向滚动显示。按下K3时即响应中断,本程序中断是为显示屏自检(全亮),还可以根据需要来改变中断显示程序。 本显示屏的硬件本来就是采用的纵向的代码,就是一次扫描一个纵列而不是行列。所以在横向循环滚动显示时用C就很好实现,只要扫完一遍后修改显示的代码地址就可以了。不过这样的硬件构成,要实现上下循环滚动显示就麻烦些了,要对代码进行移位修改。 还可以通过不断切换显示有联系的图形来达到显示动画的目的。在软件编制时,我们也通过本显示屏很好地实现了。最初验证板结束语:由于刚开始做验证时的硬

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论