• / 18
  • 下载费用:10 金币  

基于AT89C51单片机的16x16点阵LED显示器设计.doc

关 键 词:
基于AT89C51单片机的16x16点阵LED显示器设计.doc
资源描述:
单片机课程设计报告书 题目:16x16LED点阵电子显示屏的设计 姓 名: 班 级:电气普招1班 学 号: 指导老师: 时 间:2014-12-26目录摘要 ………………………………………………………………………………1第1章 引言 ………………………………………………………………………21.1 LED及LED显示屏 ……………………………………………………………21.2 功能要求 ………………………………………………………………………2第2章 系统总体方案及硬件设计 ………………………………………………32.1 AT89C51的原理及说明 …………………………………………………………32.2 显示屏总体设计方案 …………………………………………………………42.3 列驱动电路 ……………………………………………………………………42.4 行驱动部分 ……………………………………………………………………5第 3 章 系统硬件电路的设计 …………………………………………………63.1软件设计流程图 ………………………………………………………63.2系统硬件原理图……………………………………………………………………63.3系统程序 ……………………………………………………………………7第 4 章 系统调试 ………………………………………………………16第5章 设计心得 ………………………………………………………………16参考文献 ………………………………………………………………………16摘要本设计使用简单单片机AT89C51作为主控制模块,利用简单的外围电路来驱动1616的点阵LED显示屏。在本设计中主要用两个74HC595来驱动1616点阵显示屏的列,用AT89C51来驱动1616点阵显示屏的行,可以最终实现——“十六乘十六点阵可调速显示屏设计” 十五个汉字的自动左移,而且它们的“进”和“出”是以滚动形式设计的。也就是说,硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。从而可以实现一个室内用的1616点阵LED图文显示屏,在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。最后,利用烧录器可以很方便的实现单片机与PC机等外围存储设备的数据传输,并能利用软件方便的进行显示内容的多样变化,另一方面,LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成。进行了单片机AT89C51的软件仿真并成功完成了仿真验证。结果表明包括系统具体的硬件设计方案,软件流程图和部分C语言程序等方面。具有在负载范围内, 只需通过简单的级连就可以对显示屏进行扩展,是一种成本低廉的图文显示方案意义。它在实际生活中具有广泛的应用。关键词:单片机、16*16点阵、滚动显示 第1章 引言1.1 LED及LED显示屏LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。1.2 功能要求设计一个室内用1616点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。第2章 系统总体方案及硬件设计2.1 AT89C51的原理及说明(1)AT89C51简介AT89C51是美国Intel公司生产的低电压,高性能CHMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和蔼可亲128 bytes的随机存取数据存储器(RAM),器件采用Intel公司的高密度、非易失性存储技术生产,片内置通用4位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机适合于许多较为复杂控制应用场合。AT89C51引脚图(2)AT89C51单片机P口的特点:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。2.2 显示屏总体设计方案 列驱动器 单片机 行驱动器LED显示点阵2.3 列驱动电路列驱动电路有集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。74HC595的外形及内部结构如图所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。2.4 行驱动器由于4点阵显示器有16行,为充分利用单片机的接口,本电路中运用了单片机AT89C51的P1口和P2口,其输入是一个16进制码,解码输出为低态扫描信号,单片机P1口和P2口输出生产16条行选通讯信号线,再经过驱动器驱动对应的线。双列直插封装第 3 章 系统硬件电路的设计及软件编辑3.1软件设计流程图系统初始化“滚动出”显示效果“加速”显示效果“减速”显示效果“默认”显示效果开始图4-2系统主程序流程图定时器赋初值读取行号并增1送新行显示数据消隐切换显示数据送新行号、打开显示进入中断退出中断图4-1显示驱动程序流程图3.2系统硬件原理图单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口与P2口为行驱动器,送出行信号;P3.5~P3.7口则用来发送控制信号。P0口空着,在有必要时可以扩展系统的ROM和RAM。1616点阵显示屏的硬件原理图如图3-1图3-1 1616点阵显示屏硬件原理图3.3系统程序#include sbit SI=P1^0; sbit SCK=P1^1; sbit RCK=P1^2; unsigned char dis1[32],dis2[32] ;unsigned char i,j,k; unsigned char code H_S[8] ={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};unsigned char code L_S[][32]={{0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0x3F,0xFE,0xBF,0xFD,0xDF,0xFB,0xEF,0xE4,0x17,0x8F,0x7B,0xFF,0x1F,0xFC,0x7F,0xFB,0x5F,0xFD,0x7F,0xFF,0x0F,0xE0,0xF7,0xFF,0xFF,0xFF},{0xFF,0xFF,0xDF,0xFF,0x9F,0xF6,0xDF,0xF6,0xEF,0xF8,0xD7,0xFE,0x1B,0xEE,0xDF,0xE1,0x5F,0xFE,0x7F,0xCF,0x03,0xF0,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x83,0xCF,0xB7,0xD0,0xD7,0xED,0xC7,0xED,0xC7,0xF1,0xD7,0xFF,0x97,0xE9,0xC1,0xDD,0xDF,0x9E,0x5F,0xBF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,0xBF,0xFD,0xBF,0xFD,0xBF,0xED,0xB7,0xE5,0xA7,0xF5,0xAF,0xF9,0xBF,0xFD,0xBF,0xFD,0x3F,0x80,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xEF,0xFF,0xDF,0xFB,0xDF,0xFB,0xEF,0xE3,0x9F,0xF8,0xE3,0xFD,0xAF,0xF5,0x5F,0xF0,0x67,0xF7,0xE9,0xF8,0xEF,0xFB,0xEF,0xF5,0x2F,0x8E,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0x7F,0xF3,0xBF,0xFF,0xBF,0xF9,0x0F,0xFE,0x3F,0xFF,0x9F,0xFE,0xAF,0xFD,0xB7,0xF3,0xBB,0xC7,0xBD,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xF3,0x5F,0xFB,0xDF,0xFD,0xFF,0xED,0x0F,0x82,0xF3,0xEE,0x1B,0xFC,0x7F,0xFF,0xFF,0xC0,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x3F,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xC3,0xFD,0xEB,0xE1,0x6B,0xFE,0xAB,0xFB,0x4B,0xFC,0xDB,0xF3,0x3B,0xFC,0xFB,0xFC,0x7B,0xFD,0xBB,0xDD,0xDB,0x83,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xDF,0xF9,0xEF,0xFB,0xEF,0xDF,0x37,0xE0,0xF7,0xFF,0xEB,0xF8,0xED,0xFF,0xEF,0xF8,0xEF,0xF7,0x6F,0xE8,0x6F,0xF7,0xEF,0xE0,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0x7F,0xFF,0xBF,0xFF,0xDF,0xFD,0x1F,0xF8,0x5F,0xFB,0x9F,0xFD,0x1F,0xFD,0xDF,0xFC,0x1F,0xFD,0x7F,0x8E,0xFB,0xFE,0xDB,0xF7,0xBB,0xE7,0x7F,0xF0,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0x0F,0xFC,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x7F,0xFF,0x7F,0xFF,0x7F,0x81,0x81,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xBF,0xEF,0xDF,0xC0,0xCF,0xED,0xDF,0xE5,0xC7,0xFB,0xE9,0xEF,0x97,0xF1,0xA7,0xFB,0xDB,0xF0,0xDD,0xFB,0xDF,0x83,0x2F,0xFC,0xFF,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xF3,0x5F,0xFB,0xDF,0xFD,0xFF,0xED,0x0F,0x82,0xF3,0xEE,0x1B,0xFC,0x7F,0xFF,0xFF,0xC0,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0x3F,0xFF,0xFF,0xFF},{0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xC3,0xFD,0xEB,0xE1,0x6B,0xFE,0xAB,0xFB,0x4B,0xFC,0xDB,0xF3,0x3B,0xFC,0xFB,0xFC,0x7B,0xFD,0xBB,0xDD,0xDB,0x83,0xFF,0xFF,0xFF,0xFF},};void Delay (unsigned char a){unsigned char b,c;for (b=a;b>0;b--)for (c=110;c>0;c--);}void Input(unsigned char a){unsigned char b;SCK=0;RCK=0;for (b=8;b>0;b--){a=a<<1;SI=CY;SCK=1;SCK=0;}}void Display(){ for (i=0,j=0;i<16;i++) { if (i<8){Input(H_S[j]);Input(0x00);}else {Input(0x00);Input(H_S[j]);}j++;if(j==8)j=0;Input(dis1[2*i+1]);Input(dis1[2*i]);RCK=1;Delay(3); }}void Now_dis(unsigned char *p,unsigned char *p1){unsigned char a;for (a=0;a<16;a++){ p[a*2]=p1[a*2]; p[a*2+1]=p1[a*2+1];}}void V_Move(unsigned char e, unsigned char g,unsigned char *p1) {unsigned char a,b,c,d=0,f=31;for (a=0;a<16;a++){if(g==1){for (b=0;b<30;b++)dis1[b]=dis1[b+2];if(p1==0){ dis1[30]=0xff; dis1[31]=0xff;}else { dis1[30]=p1[d++]; dis1[31]=p1[d++];}for (c=e;c>0;c--) Display(); }else {for (b=29;b>0;b--)dis1[b+2]=dis1[b];dis1[2]=dis1[0];if(p1==0){ dis1[1]=0xff; dis1[0]=0xff;}else {dis1[1]=p1[f--];dis1[0]=p1[f--];}for (c=e;c>0;c--) Display();}} }void RL_Move(unsigned char a,unsigned char b,unsigned char *p){unsigned char i,j,k,c;for (i=0;i<16;i++){if(p==0){dis2[2*i]=0xff;dis2[2*i+1]=0xff;}else {dis2[2*i]=p[2*i];dis2[2*i+1]=p[2*i+1];}}if(b==1)for (k=0;k<16;k++){for(i=0;i<16;i++){dis1[i*2+1]=dis1[i*2+1]<<1;dis1[i*2]=dis1[i*2]<<1;if (CY==1)dis1[i*2+1]=dis1[i*2+1]|0x01;dis2[i*2+1]=dis2[i*2+1]<<1;if (CY==1)dis1[i*2]=dis1[i*2]|0x01;dis2[i*2]=dis2[i*2]<<1;if (CY==1)dis2[i*2+1]=dis2[i*2+1]|0x01;}for (j=a;j>0;j--)Display();}else {for (k=0;k<16;k++){for(i=0;i<16;i++){dis1[i*2]=dis1[i*2]>>1;c=dis1[i*2+1]&0x01;dis1[i*2+1]=dis1[i*2+1]>>1;if (c)dis1[i*2]=dis1[i*2]|0x80;c=dis2[i*2]&0x01;dis2[i*2]=dis2[i*2]>>1;if (c)dis1[i*2+1]=dis1[i*2+1]|0x80;c=dis2[i*2+1]&0x01;dis2[i*2+1]=dis2[i*2+1]>>1;if (c)dis2[i*2]=dis2[i*2]|0x80;}for (j=a;j>0;j--)Display();}}}void main (){while (1){Now_dis(dis1,L_S[0]);V_Move(10,1,L_S[1]);V_Move(10,1,L_S[2]);V_Move(10,0,L_S[3]);V_Move(10,1,L_S[4]);V_Move(10,0,L_S[5]);V_Move(10,1,L_S[6]);V_Move(10,1,L_S[7]);V_Move(10,0,L_S[8]);V_Move(10,1,L_S[9]);V_Move(10,0,L_S[10]);V_Move(10,1,L_S[11]);V_Move(10,1,L_S[12]);V_Move(10,0,L_S[13]);}}第4章 系统调试硬件调试:打开Proteus 7.5 Professional软件,按照方案所选的电路元件来设计整体电路,线把个芯片按一定的位置放好,然后对相应的对象进行连接,连接时需仔细,以免调试时发生错误。做好之后把编程所生成的。HEX文件加载到AT89C51中,运行仿真软件,查看运行效果。如果运行出错那么就根据他相应的提示来修改错误,直到仿真成功为止。第5章 设计心得在此次课程设计中,让我巩固了单片机及以前所学的很多知识,使我从单纯的理论学习上升到了实践应用学习这一环节。以前只是在课堂上应用过,从来没有认真用它做过什么实在的东西。我们学东西就要学以致用,在这里我深刻的感觉到理论和实践的差别性,学得好不一定做得好,但要做得好就一定要学得好。通过两个星期的课程设计,我的理论知识和动手能力在一定程度上都得到了提高,也学到很多新知识。此次实训主要是让我们进一步深入理解单片机系统的工作原理,对接口电路的设计及调试方法;同时在实训中我们设计的单片机仿真正常,但进过老师的讲解我们发现了一些不足,进过我组成员思考讨论最终验证了老师讲解的问题,单片机的输出功耗太小无法带动16*16个LED灯所以在我组成员共同的努力下进行了深刻的反思,在以后的实验或实训中要以理论为前提。理论联系实际,结合专业知识来分析解决问题;掌握用单片机进行实际产品开发的基本过程,加强模块化设计思想的培养,增加对专业的兴趣,从而为我们以后的工作打下基础。 【参考文献】[1] 谢辉.单片机原理及应用. [M].北京:化学工业出版社2010.5[2] 李全利.单片机原理及接口技术. [M].北京:高等教育出版社,2009[3] 苏家健.单片机原理及应用技术. [M].北京:高等教育出版社.2004.1[4] 楼然苗.51系列单片机设计实例. [M].北京:北京航空航天大学出版社,2003.[5] 赵晓安. MCS-51单片机原理及应用. [M].天津:天津大学出版社,2001.3
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:基于AT89C51单片机的16x16点阵LED显示器设计.doc
链接地址:https://www.weizhuannet.com/p-11569875.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开