基于单片机的16×16点阵LED电子显示屏的设计报告(精选3篇)
1.1设计制作产品的背景、目的及设计要求
本项目为16x16点阵汉字显示“新年快乐”的设计,首先将本次实训的电路图在仿真软件上绘制完成,将点阵文件存入ROM,形成汉字编码,再进行相关转换,以新编码提取相应的点阵汉字显示。将相应编码代入运行程序,进行调试和准备。
1.2分工情况、工作计划及本人所承担工作
1.周一 1~4 进行分组,选题 和软件的安装 2.周二 1~4 进行电路的设计及程序编写 3.周三 1~4 进行电路的设计及程序编写 4.周四 1~4 进行说明书的填写 5.周五 1~4 答辩
本人在本次课程设计中承担电路图的绘制及相关程序的编写与调试。
1.3本课题的设计重点及难点
本次课程设计重点在于单片机控制系统程序采用单片机汇编语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。而其中的难点就在于运行程序的编写及相关汉字的点阵数据,这种显示字符的点阵数据可以自行编写,也可以标准字库中提取。
在进行课题设计时需要熟练掌握相关电路软件及编程软件的使用,编写程序时需掌握一定的C语言逻辑关系的运用。在电路图的绘制时需要清楚的了解各个电路设备的功能及用途。
二、实训内容
2.1实训原理
本设计应用的扫描方法为水平方向(X方向)扫描。
每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的16×16的点阵宋体字库,即所谓的16×16,是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
上半部分第一列完成之后,继续扫描下半部分的第一列,为了接线的方便,我们仍设计成由上往下的扫描方式,即从A8向A15方向扫描,按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字。
2.2硬件设计 2.3软件设计
#include for(j=q;j<32+q;j++) { P1=sm[t]; P0=seg[j]; j++; P2=seg[j]; delay(50);t--; if(t==0) t=16;} q=q+32; if(q==128) q=0;} } 三.结论 3.1 实训过程中遇到的问题及解决措施 在本次实验中,我组在制作的16x16点阵显示汉字“新年快乐”的课程设计中,首先在使用单片机仿真软件找寻相关设备时没有找到16x16的点阵设备,继而用四个8x8的点阵排列组合予以替代。 依据相关教材及指导教师的参考和建议,我组对于本次设计的电路图采用了通用模板设计。 此次课程设计的运行程序是我组在设计中的最大难点,后经多方查资料及参考询问,我组找到了相应汉字在点阵中的排序规律,顺利编写出代码。 3.2 今后的学习展望 经过这次的单片机课程设计,从产生设计想法到实际操作,到最终的设计完成,中间遇到的困难及困难的解决,让我更进一步了解了单片机,让我不再仅仅局限于书本上。 本次的设计经验对于我们日后的学习工作有非常重要的作用,在遇到困难时可以不仅仅从书本上找解决方案,还可以自己亲自动手实践来验证相关问题及找到解决方法。 这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。 四、心得体会 本次的设计经验对于我们日后的学习工作有非常重要的作用,在遇到困难时可以不仅仅从书本上找解决方案,还可以自己亲自动手实践来验证相关问题及找到解决方法。 单片机这门课是一科非常重视动手实践的科目,不能总是看书,但是也不能完全不看书。单片机并不象传统的数字电路或模拟电路那样比较直观,原因是除了“硬件”之外还存在一个“软件”的因素。正是这个“软件”的原因使得许多初学者怎么也弄不懂单片机的工作过程,怎么也不明白为什么将几个数送来送去就能让数码管显示一串字符或控制一个电机的变速。对初学单片机的人来说,需要从书中大概了解一下单片机的各个功能寄存器,如果看的多了反而容易搞乱,现在市场上大多数讲单片机的书一开始就讲解较复杂的内存、地址、存储器什么的,更让初学者感到不知所云、难以入门。如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,能够产生什么实际效果,那么也许用不了几天就会觉得枯燥乏味而半途而废。简单的说,使用单片机实际上就是用我们自己编写的软件去控制单片机的各个功能寄存器。再简单些,就是控制单片机哪些引脚的电平什么时候输出高电平,什么时候输出低电平。由这些高低变化的电平来控制外围电路,实现我们需要的各个功能。 随着电子信息技术的飞速发展,LED点阵显示屏已成为当今社会一种常见的信息发布平台。LED点阵显示系统因其功耗低、亮度高、显示效果醒目、性能稳定、使用寿命长、易小型化、方便拼装等一系列优点,近几年来得到了迅猛的发展并获得广泛的应用。从机场、车站、码头到银行、邮局、商场、体育馆等各种需要发布信息的公共场所,甚至街头巷尾各种大大小小的门面招牌,几乎到处可见LED点阵显示屏的身影。 1 预备知识 LED即发光二极管,它是一种电致发光的半导体电子元件,其发光原理是PN结正向导通时电子与空穴复合幅射出可见光,可作为显示器件使用。LED点阵显示屏是由很多个LED构成,一个8×8LED点阵显示模块是由64只LED按照8行8列的阵列方式组成,同一行上的LED共阴极,同一列上LED共阳极,从而引出8根行线8根列线。将若干个8×8 LED点阵显示模块拼装在一起,把同一行的行线连在一起,再把同一列的列线连在一起,就可以组成规模更大的点阵显示屏。通过编程控制点亮其中某些LED、熄灭其余的LED,点亮的LED就可以显示各种字符、数字和汉字,甚或图形图像。 2 设计背景 当LED点阵显示屏扩大规模时,其行列线必然很多,如果直接与单片机I/O口相连,将导致I/O口不够用,加之由于单片机I/O口内部结构的原因,其输出电流较小,不足以直接驱动LED发光,故LED点阵显示屏不适合与单片机直接相连。 3 总体设计方案 本设计方案建立在单片机串行通信的基础上,通过移位寄存器级联的方式扩大显示屏的尺寸以达到增加显示内容的目的,仅占用少量I/O口,当显示屏进一步扩容时只需按类似的连接方法级联电路即可,并不增加I/O口的使用数量,为系统功能的进一步扩展预留了足够的空间。众所周知,除了4个并行I/O口以外,单片机还有一个功能强大、可编程控制的全双工串行口,用于和外设之间串行通信。串行通信的最大优点在于通信线路简单,节省I/O口线,从而降低通信线路成本,唯一缺点是通信速度不如并行通信方式快。该串行口有四种工作方式,尤以方式0最为简单,只需一根时钟信号线、一根数据线即可实现通信。当串行口工作在方式0时,为8位移位寄存器同步通信方式,通过外接移位寄存器,可达到扩展并行I/O口的目的。 4 硬件设计 (1) 主控制器的选择。在本设计方案中,主控制器采用Atmel公司的AT89S52单片机,它是一款低功耗、高性能的8位单片机,具有较高的性价比,其指令系统、引脚功能及片内硬件资源与MCS-51单片机产品完全兼容;片内含8KB Flash ROM和256字节的RAM,适于存放大量字模数据及数据处理的需要;关键是它所支持的ISP(在系统可编程)功能使得程序写入方便,无需专门的编程器,降低了系统开发的复杂度,节约了开发成本。 (2) 驱动及接口电路的设计。由于在本设计方案中要充分利用单片机的串行通信节约I/O口资源,并使串行口工作在方式0,以达到扩展I/O口的目的。此时需在串行口上外接移位寄存器,移位寄存器同时又作为驱动电路,驱动LED点阵显示器工作。此时,单片机的P3.0 (RXD)引脚作为数据输出端,接移位寄存器的串行数据输入端,P3.1 (TXD)引脚作为移位脉冲输出端,接移位寄存器的移位脉冲输入端。本设计中的移位寄存器采用74HC595,它是一款漏极开路输出的8位移位寄存器,输出端具有可控的三态输出锁存功能,不仅能实现串行输入并行输出功能,亦能串行输出到下一级级联芯片,其输出电流可达35mA,足以驱动LED发光。和其他具有相同逻辑功能的同类电路相比较,其主要优点是具有数据存储功能,在其内部数据移位的过程中可使输出端数据保持不变,这特别适用于串行通信速度较慢的场合,使LED不致发生闪烁现象。 (3) 显示电路及其与驱动电路的接口设计。在本设计方案中,以16×32 LED点阵显示器为例,将8块8×8 LED点阵显示模块按照上下各四块的方式拼装成16×32点阵显示屏,将同一行上的行线连在一起,引出16根行线;将同一列的列线连在一起,引出32根列线。利用四个74HC595控制LED点阵显示屏的32根列线,两个74HC595控制16根行线,并将它们依次级联起来,只将最前端的74HC595的串行数据输入端与单片机的P3.0 (RXD)引脚相连,将所有74HC595的移位脉冲输入端连在一起,与单片机的P3.1 (TXD)引脚相连,再将所有74HC595的锁存脉冲输入端连在一起,与单片机的P3.2引脚相连。 (4) 注意事项。考虑到串行通信时数据的传输是由低位到高位的顺序依次进行的,而移位寄存器74HC595的数位顺序与此相反(最先传送的最后移位到最高位上),因此要注意74HC595与LED点阵显示屏的行线和列线相连时要颠倒高低位的顺序,即用74HC595的高位(Q7)接行线(或列线)的低位,其余位依次类推。 5 软件设计 本系统的软件部分采用C51语言编程,按模块化结构设计,主要包括串行通信发送单字节数据函数、LED点阵显示器的逐行动态扫描显示函数和主函数。 显示函数可采用逐行或逐列方式动态扫描,扫描方式不同,字符的取模方式亦不同,应根据扫描方式采用与之对应的取模方式。 6 结语 本设计方案电路结构简单,充分利用单片机的串行通信,节约了I/O口资源,仅占用少量I/O口,为系统功能的进一步扩展预留了足够的空间,稍加改进即可作为一个实用的信息发布平台应用于实际生活和工作中。 摘要:本文以16×32LED点阵显示器为例介绍了一种基于单片机串行通信的点阵显示系统的设计与实现方法。该系统利用单片机的串行通信功能, 外接移位寄存器, 通过级联方式扩大显示屏的尺寸以达到增加显示内容的目的。点阵显示屏可采用逐行 (或逐列) 动态扫描。单片机选用价格低廉、程序写入方便的AT89S52, 使得整个系统维护方便。该系统电路结构简单, 仅占用少量I/O口, 为系统功能的进一步扩展预留了足够的空间, 稍加改进即可作为一个实用的信息发布平台应用于实际生活和工作中。 随着信息产业的高速发展,LED显示屏作为信息传播的一种重要手段成为现代信息化社会的一个闪亮标志[1,2]。在32×16 LED显示屏上同时显示西文字符与汉字时,由于一个西文是占一个ASCII码的七位二进制,而一个汉字是占二个扩展ASCII码的八位二进制,这样就造成在32×16 LED显示屏上显示宽度不一致的问题,直接影响显示的美观效果[3]。本文巧妙运用“叠加原理”对这个问题予以解决,取得了良好效果。 1 系统设计 1.1 硬件系统设计 本试验以YL236型设备为例,硬件系统由主机模块(含AT89S52)、32×16点阵显示模块、电源模块、YLISP下载器以及导线等构成。 1.1.1 LED点阵显示模块硬件结构 点阵显示屏由点阵显示模块构成,LED点阵显示模块由64个发光二极管组成,这64个发光二极管排列成8行×8列的点阵[4]。在同一行中的8个发光二极管的所有正极连接在一起,由一个引脚引出,在同一列中的8个发光二极管的所有负极连接在一起,由一个引脚引出,这样共有8个行引出脚和8个列引出脚。 1.1.2 点阵显示屏原理图 点阵显示屏由ROW0与ROW1两排,COL0、COL1、COL2、COL3四列组成,两排与四列分别由6片74AC573锁存器进行信号锁存,两排均采用了ULN2803A驱动控制[5]。其原理图如图1所示。 1.1.3 点阵显示屏接线图 该试验中主机、点阵、电源各个模块的接线图如图2所示。 1.2 软件编程设计 1.2.1 循环扫描过程 1)显示西文字符 若要显示一个西文字符,可以按逐列显示或按逐行显示,即一列一列(或一行一行)将要显示的点阵信息显示出来。YL236型8×8点阵模块从左往右由低到高位,且列线均已接地。如果要在16×8(单字节)显示屏上显示一个数字“1”,只占一列(8位),按行显示,则应在行线上输出的字模编码为 “0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00”共16个字节。显示时,开始只在ROW0排A1行线上输出0x00,一段时间后只在A2行线上输出0x00,又一段时间后只在A3行线上输出0x00,再一段时间后只在A4行线上输出0x08,以此类推,一直到只在ROW1排的A8行线上输出0x00。每16行扫描完后再从ROW0排的A1重新扫描,就可以在LED显示屏上显示一个稳定的数字“1”。 2)显示汉字 同理,若要在16×16(一个汉字占两个字节)显示屏上显示一个汉字“和”,要占两列,不妨记为COL0与COL1(8+8位)。按行显示,则应在行线上输出的字模编码为 “0x00,0x00,0x E0,0x00,0x1E,0x00,0x10,0x3E,0x10,0x22,0xFE,0x22,0x10,0x22,0x18,0x22, 0x38,0x22,0x54,0x22,0x D4,0x22,0x52,0x22,0x11,0x3E,0x10,0x22,0x10,0x00,0x10,0x00”共32个字节。显示时,开始只在ROW0排COL0列A1行线上输出0x00,一段时间后只在ROW0排COL1列A1行线上输出0x00,又一段时间后只在ROW0排COL0列A2行线上输出0XE0,再一段时间后只在ROW0排COL1列A2行线上输出0X00;奇偶列逐行轮流输出,以此类推,一直到ROW1排COL1列A8行线上输出0X00。每32行扫描完后再从ROW0排COL0列A1行线重新扫描,就可以在LED显示屏上显示一个稳定的汉字“和”。 1.2.2 叠加原理在混合字符显示上应用 1)叠加原理 在数学与物理中经常出现这样的现象:几种不同原因的综合所产生的效果,等于这些不同原因单独产生效果的累加。例如,物理中几个外力作用于一个物体上所产生的加速度,等于各个外力单独作用在该物体上所产生的加速度的总和,这个原理称为叠加原理。叠加原理适用范围非常广泛,数学上线性方程,线性问题的研究,经常使用叠加原理[6,7]。同理,在LED显示屏上同时显示西文与汉字时也可以采用叠加原理来解决。 2)混合字符显示设计 混合字符显示是指在LED显示屏同一“页”上显示西文与汉字,譬如“082001班加油”可以通过“0820”、“01班”与“加油”三页显示,而在第二页上显示的“01班”既有数字又有汉字,而一个数字占16×8点阵,而一个汉字占16×16点阵,用一般方法很难解决此问题。若引入叠加原理,由图3不难看出“082001班加油”可以由数字串“082001******”(*表示16×8空格)与汉字串“☆☆☆班加油”(☆表示16×16空格)叠加显示而成,而两个不同的字符串可以分别用二维数组shuzi[][16]与hanzi[][32]来表示。 1.2.3 字模编码的提取 采用zimo221软件,在“参数设置”标签“选项”对话框中选择取模方式为“横向取模”、“字节倒序”、“保留”,字体设置“宋体”、“常规”和“小四”,点击“确定”;再在“基本操作”中点击“新建图像”设置宽度“16”或“8”,高度“16”,点击“确定”;再在“文字输入区”中输入数字或汉字,ctrl+Enter后,点击“取模方式”中“C51”即可生成所需要的字模编码[8,9]。 1.2.4 编程流程图 混合字符显示的编程流程图如图4所示。 1.2.5 Keil C51编写的部分参考程序(略) 2 实验结果 试验结果如图5所示。 3 结束语 本文提出了一种基于32×16LED显示屏混合字符显示的设计与实现方法。详细介绍了本试验中用到的硬件模块、LED点阵显示模块硬件结构、点阵显示屏原理图、循环扫描过程、叠加原理在混合字符显示上应用、字模编码的提取、编程流程图、Keil C51部分程序以及试验结果。 本文作者创新点:由于一个西文是占一个ASCII码的七位二进制,而一个汉字是占二个扩展ASCII码的八位二进制,这样就造成在32×16 LED显示屏上显示宽度不一致的问题,直接影响显示的美观效果。该试验中作者引入叠加原理,将要显示的字符串“082001班加油”由数字串“082001******”(*表示16×8空格)与汉字串“☆☆☆班加油”(☆表示16×16空格)叠加显示,而两个不同的字符串分别采用二维数组shuzi[][16]与hanzi[][32]来表示。这种思路在混合字符显示时值得借鉴与应用。试验的结果表明设计的可行性、可靠性与新颖性,实现了混合字符在LED显示屏上的显示。 参考文献 [1]林燕雄,雷堂彩.智能LED点阵亮度等级分选仪研制[J].桂林:桂林电子工业学院学报,1999(3):13-14. [2]李骐,靳桅,等.基于单片机的LED显示屏控制系统设计[J].微计算机信息,2009,5-2:110-112. [3]韩润萍,陈小萍.点阵LED显示屏控制系统[J].微计算机信息,2003(10):26-27. [4]赵才荣,刘金娥,丁铁夫.基于LED图文屏的多灰度图像实现方法[J].液晶与显示,2006(1):5-7. [5]葛金印,商联红.单片机控制项目训练教程[M].北京:高等教育出版社,2010. [6]马秀艳,韩国松.叠加原理的数学基础及其在物理上的应用[J].安阳:安阳师范学院学报,2006(5). [7]李平.叠加原理[J].大学物理.1983(9). [8]简献忠,虞箐,熊晓君,赵虎,居滋培.基于80C51和KEILC51的LED点阵显示系统[J].仪器仪表学报,2005(1):23-24. 【基于单片机的16×16点阵LED电子显示屏的设计报告】推荐阅读: 基于51单片机的数字频率计的设计概要12-01 《数字电路与单片机课程设计》课程设计报告11-01 基于标准的作业设计11-17 基于zigbee的课程设计06-15 基于arcgis的课程设计07-11 基于fpga的交通灯设计07-23 单片机课程设计报警器07-13 单片机课程设计流水灯11-23 基于plc的开题报告10-09基于单片机的16×16点阵LED电子显示屏的设计报告 篇2
基于单片机的16×16点阵LED电子显示屏的设计报告 篇3