基于单片机的LED点阵显示课程设计
基于AT89C51单片机的LED点阵显示系统设计

基于AT89C51单片机的LED点阵显示系统设计一、选取硬件平台本设计选取了AT89C51单片机作为主控芯片,其具有易于编程和接口丰富的特点,适合用于控制LED点阵显示系统。
通过单片机的IO口与LED点阵进行连接,并通过相应的驱动电路控制LED的亮灭,实现点阵显示功能。
二、软件设计在单片机上,我们需要编写相应的程序来控制LED点阵的显示。
以下是基本的软件设计功能:1. 点阵数据存储:在单片机的内部RAM中,设计一块存储区域,用来存放LED点阵的数据。
每个存储单元代表一个LED的亮灭状态,通过将相应的数据写入或读取出来,来实现相应的显示效果。
2. 数据刷新和循环:通过定时器中断,定时触发点阵数据的刷新。
在每次刷新时,通过逐行扫描点阵的方式,将相应的数据输出到点阵对应的LED上。
为了实现流畅的显示效果,需要进行快速的循环刷新,并及时更新点阵数据。
3. 外部控制:为了方便控制点阵的亮灭,可以设计外部按键或开关来实现一些功能,如调整亮度、改变显示内容等。
通过单片机的IO口读取外部的输入信号,进一步控制点阵显示的效果。
三、硬件设计除了单片机之外,还需要设计相应的硬件电路来实现LED点阵的驱动和控制。
1. 驱动电路:通过行选和列选的方式,来控制点阵中的每个LED的亮灭状态。
在每个行选时,通过给相应的引脚输出高电平,从而使得该行上的LED亮起;在每个列选时,通过给相应的引脚输出低电平,从而使得该列上的LED亮起。
2. 电流限制:为了保证LED在正常工作范围内,需要在驱动电路中加入适当的电流限制元件,如电流限制电阻或恒流源。
通过限制电流,在避免烧坏LED的同时,也可进一步控制LED的亮度。
3. 外部控制接口:为了实现外部控制功能,可以设计相应的按钮或开关与单片机的IO口相连接,通过读取按钮或开关的状态,来实现相应的操作。
同时,也需要设计合适的电平转换电路,以兼容单片机和外部控制信号之间的电平差异。
四、实验结果和分析经过硬件和软件的设计与调试,我们成功地实现了基于AT89C51单片机的LED点阵显示系统。
基于单片机的LED点阵显示屏的设计

基于单片机的LED点阵显示屏的设计LED点阵显示屏是一种常见的显示设备,它通过控制各个LED的亮灭来显示文字、图形或动画。
在这篇文章中,我们将介绍基于单片机的LED 点阵显示屏的设计。
一、设计目标设计一个基于单片机的LED点阵显示屏,使其能够显示各种文字、图形和动画。
同时,要求显示屏的显示效果清晰、稳定,能够满足日常使用的需求。
二、设计方案1.硬件设计(1)点阵屏:选择合适的点阵屏作为显示屏的输出设备。
点阵屏的种类有很多,常见的有8x8、16x16和32x32等不同尺寸的点阵屏。
根据实际需求选择合适的尺寸。
(2)单片机:选择一块适合的单片机作为控制器。
单片机的选择需要考虑其计算能力、扩展性和易用性等因素。
(3)扩展模块:根据需要,可以选择添加一些额外的扩展模块,如按键模块、声音模块等,以增加显示屏的功能。
(4)电源模块:为显示屏提供稳定的电源,以保证其正常工作。
2.软件设计(1)驱动程序:编写驱动程序,通过单片机控制各个LED的亮灭。
根据点阵屏的不同类型,编写相应的驱动程序。
(2)显示程序:编写显示程序,将要显示的文字、图形或动画转换成相应的点阵数据,然后通过驱动程序显示在点阵屏上。
(3)用户界面:设计一个用户界面,使用户能够方便地输入要显示的文字、选择图形或动画等,然后通过单片机控制显示屏显示出来。
三、实施步骤1.硬件部分(1)按照设计方案选择合适的点阵屏、单片机和扩展模块,并连接它们。
(2)根据点阵屏的引脚定义,设计相应的电路板,并进行制作。
(3)将单片机和扩展模块焊接到电路板上,并连接好相应的引脚。
(4)连接电源模块,为整个系统提供电源。
2.软件部分(1)根据点阵屏的类型,编写相应的驱动程序。
(2)编写显示程序,将要显示的文字、图形或动画转换成点阵数据。
(3)设计用户界面,编写相应的程序,将用户输入的内容转换成可显示的数据。
(4)将驱动程序、显示程序和用户界面程序上传到单片机。
四、测试与调试完成硬件和软件的设计后,进行测试与调试。
基于单片机的LED点阵显示课程设计

摘要当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。
因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
由于LED 电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所.该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术.我国经济发展迅猛,对信息传播有越来越高的要求.可以相信,LED电子显示屏以其色彩鲜亮夺目,大的显示信息量,寿命长,耗电量小,重量轻,空间尺寸小,稳定性高,易于操作,安装和维护等特点,将在社会经济发展中扮演越来越重要的角色。
利用单片机对整个系统进行总体控制,进行显示所要显示的字符。
显示方式分为三种:逐字显示、上滚显示、左滚显示,其中显示字模数据由单片机输入显存,点阵的点亮过程有程序控制,由驱动电路完成,点阵采用单色显示,该显示器电路的特点是:点阵的动态显示过程占用时间比较短,亮度比较高,而且亮度可以改变电阻进行调节。
本文以Proteus为软件平台,设计制作一套51系列单片机实验系统。
关键词:单片机点阵 LED电子显示屏Proteus Keil目录1 绪论 (1)1.1 LED点阵显示屏背景 (1)1.2 LED显示屏控制技术状况 (1)1.2.1 串行传输与并行传输技术 (1)1.2.2 动态扫描与静态锁存技术 (1)1.2.3自动检测及远程控制技术 (1)2 LED点阵显示屏单片机概述 (2)2.1 LED点阵显示系统简介 (2)2.2 AT89C51单片机的结构 (2)2.3 管教说明 (2)2.4 振荡器特性 (4)3 系统概述及设计 (6)3.1 整体结构 (6)3.2 单片机系统作用 (6)3.3 单片机的应用 (7)3.4 发展趋势 (8)4 硬件设计 (11)4.1 总体设计 (11)4.2. 系统硬件选择 (12)4.3 LED驱动模块 (12)4.4 数据存储模块 (12)4.5各部分电路 (12)4.6数据存储电路设计 (13)4.7 74LS138简介 (14)4.8 系统总体电路图 (14)5 常用软件基础知识 (15)5.1 KEIL软件使用方法 (15)5.1.1 使用Keil软件建立一个工程 (15)5.2 Proteus 综述 (19)6 系统的软件设计 (21)6.1 软件流程 (21)6.2 软件的程序实现 (21)6.2.1 51系列单片机的指令 (21)6.2.2 伪指令 (22)6.3主程序设计 (23)总结 (27)参考文献 (28)1 绪论1.1 LED点阵显示屏背景LED点阵显示屏的构成型式有多种,其中典型的有两种。
基于51单片机的LED点阵显示屏系统的设计与实现

基于51单片机的LED点阵显示屏系统的设计与实现一、引言随着科技的发展,LED点阵显示屏已经成为了广告、公告栏、车载显示屏等各个领域的重要组成部分。
本文将基于51单片机,设计并实现一个LED点阵显示屏系统。
二、系统设计1.系统硬件设计系统硬件由以下组成部分构成:-51单片机:作为系统的控制中心,负责控制点阵的亮灭以及显示内容的刷新。
-LED点阵:采用常用的8×8点阵显示屏,共64个LED灯,用于显示文字、图形等内容。
-驱动电路:由8个NPN型晶体管构成的列激活电路和8个PNP型晶体管构成的行激活电路,用于控制点阵灯的亮灭。
-电源:为系统提供工作电压,需要稳定的直流电源。
2.系统软件设计系统软件主要包括以下功能:-初始化:对系统硬件进行初始化,包括设置I/O引脚的方向、初始化计时器等。
-显示内容控制:通过控制51单片机的I/O口,向LED点阵发送要显示的内容,包括文字、图形等。
-刷新显示:通过定时器中断,控制点阵的显示周期,使得点阵灯在适当的时间内亮灭,实现流畅的显示效果。
三、系统实现1.硬件实现根据系统硬件设计,搭建相应的电路板,包括51单片机、LED点阵、驱动电路等。
根据电路原理图进行布线,并进行必要的焊接工作。
2.软件编程使用汇编语言或C语言编写单片机程序,实现系统软件设计中的各个功能。
具体步骤包括:-配置51单片机的I/O口,设置为输出端口,并连接到LED点阵和驱动电路。
-初始化计时器,设置定时器中断的周期,用于刷新点阵显示。
-编写显示内容的控制函数,通过对I/O口的控制,向LED点阵发送相应的数据。
-编写中断服务函数,在每次中断发生时,刷新点阵显示。
-编译、烧录程序到51单片机,并将其与其它硬件模块连接。
3.系统测试与优化通过实际测试,检验系统硬件和软件是否正常工作。
根据系统的实际表现进行调整和优化,确保点阵显示的效果稳定而流畅。
四、结论本文基于51单片机,设计并实现了LED点阵显示屏系统。
单片机课程设计之LED点阵电子显示屏设计

LED点阵电子显示屏的设计一、选用器材AT89C52单片机1个,74LS138型号3线-8线译码器1个,74LS373三态输出的八D透明锁存器型号,+5V电源1个,Led8*8点阵屏绿色5个,tPd PD5个,带公共端的8电阻排(排阻)1个,电容30pF3个,电阻10K欧1个,按钮6个,石英晶振1MHz1个二、设计方案1、实验功能本实验要实现的功能就是,显示时分秒,年月日,且可修改。
实现实时时间的显示,显示屏数字显示,时:分:秒;星期的显示;年月日的显示。
显示屏通过按键切换显示星期,年月日,时间。
2、总体方案(1)工作原理用单片机AT89S52控制,写入程序,将数据传输到显示模块,即点阵LED 电子显示屏显示器,实现日历的显示。
(2)总体设计电路图LED和52单片机配合实现时间显示功能。
显示模块为点阵LED电子显示屏显示器,把单片机中的数据显示出来。
该电路是通过按键来切换各种显示要求。
3、方案论证(1)显示部分:显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:静态显示,即将每个二极管的状态分别用1和0表示,0则无电流,为暗,1则有电流,为亮。
若给每个二极管一个驱动电路,一个图像输入后,所有LED的状态保持到下一个图像。
对于静态显示方式,所需的译码驱动装置很多,引线多而负责,成本高,可靠性也低。
动态显示,即对每一个LED屏进行分割,对组成图像的各个部分分别显示,这样利用人眼的暂留效应和发光二极管发光时间的长短,也同样可以实现显示功能,这样就可以避免静态显示出现的问题。
但是,设计上如果处理不当,容易造成图像闪烁的问题,因此合理的涉及要保证驱动电路容易实现而且保证图像稳定补闪烁。
本实验采用软件实现数字时钟。
原理为:在单片机内部存储器分别存放时钟的年、月、日、时、分、秒、星期的信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则清零且相应的分值加1;若分值达到60,则清零且相应的时值加1;若相应的时值达到24,则清零且相应的日值加1;若相应的日值分别达到29,30,31时,根据判断来增加月值;若相应的月值达到12时,清零且年值加1。
基于单片机的LED点阵显示屏的设计报告

基于单片机的LED点阵显示屏的设计报告设计报告:基于单片机的LED点阵显示屏一、设计背景随着科技的不断进步和人们对信息的需求日益增长,LED点阵显示屏逐渐成为一种常见的信息显示方式。
它广泛应用于各种领域,如室内外广告、公告牌、交通信号灯等。
本设计报告旨在介绍一种基于单片机的LED 点阵显示屏的设计方案。
二、设计原理本设计采用了以常用的Arduino单片机为控制核心,结合LED点阵显示屏模块,通过控制单片机的GPIO口,实现对LED点阵显示屏的控制。
三、设计流程1.硬件设计:选择合适的LED点阵显示屏模块,并了解其接口定义和控制方式;根据LED点阵显示屏模块的接口定义,设计相应的电路连接,并进行连线布局;为单片机提供稳定的电源,并确保单片机与LED点阵显示屏之间的数据线路连接正确。
2.软件设计:编写单片机的控制程序,采用合适的编程语言(如C语言);根据LED点阵显示屏的控制方式,编写相应的模块以实现对显示内容的控制,如亮度控制、位选控制等;通过单片机的GPIO口与LED点阵显示屏模块进行数据传输,根据需要的显示内容进行相应的控制。
四、关键技术1.单片机控制:通过单片机的GPIO口与LED点阵显示屏模块进行数据传输,实现对其显示内容的控制。
2.显示内容控制:根据具体需求,编写合适的控制程序,通过控制单片机的GPIO口,实现对LED点阵显示屏模块的亮度、显示内容等进行控制。
3.位选控制:通过控制LED点阵显示屏模块的位选引脚,实现多个LED点阵模块的级联显示,以扩展显示屏的显示面积。
五、实验结果及优化经过系统的实验和调试,基于单片机的LED点阵显示屏实现了预期功能,能够正常显示所需的内容,并且具备一定的亮度控制和位选控制功能。
同时,根据实际应用需求,对设计方案进行优化,如增加红外遥控功能、集成温度传感器等,以提升用户体验和功能扩展性。
六、总结与展望本设计报告介绍了一种基于单片机的LED点阵显示屏的设计方案。
基于单片机的LED点阵显示屏的设计报告

燕京理工学院基于单片机的8*8LED点阵显示屏的设计报告课程名称proteus班级自控1404学号140240116XX X爽指导教师贾超课设时间2017.8.28-2017.9.282017年9月28 日LED点阵显示屏采用1个8*8共64个象素的点阵,通过LED点阵资料判断出该点阵的引脚分布,如图3.1所示。
8*8的LED点阵为单色共阳模块,单点的工作电压为正向(Vf)=1.8v,正向电流(if)=8-10MA。
静态点亮器件时(64点全亮)总电流为640mA。
总电压为1.8v,总功率为1.15w.动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达80-160mA点阵LED扫描法介绍点阵LED一般采用扫描式显示,实际运用分为三种方式:(1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于16*64=1024HZ,周期小于1MS即可。
若使用第二和第三种方式,则频率必须大于16*8=128HZ,周期小于7.8MS即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。
但是若将LED点阵的行列端口全部直接接入AT89S52单片机,单片机无法提供可以让LED点亮的电流。
因此,我们在实际应用中是将LED点阵的8条行线直接接在74hc573,至于列选扫描信号则是由AT89S52单片机IO口来选择控制。
汉字或字母扫描显示的基本过程是这样的:通电后由于电阻R1,电容C1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C2,C3,X1以及单片机内部时钟电路的作用下,单片机AT89S52按照设定的程序在行接口输出与内部汉字对应的代码电平送至LED点阵的行选线,同时在单片机接口输出列选扫描信号,从而选中相应的象素LED发仿真图:三、结论(总结课程设计的心得体会,提出建议、设想、尚待解决问题等。
单片机课程设计--+16x16点阵LED电子显示屏的设计

单片机课程设计-- 16x16点阵LED电子显示屏的设计第一章系统总体方案设计LED驱动显示采用动态扫描方法, 动态扫描方式是逐行轮流点亮, 这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例, 把所有同一行的发光管的阳极连在一起, 把所有同一列的发光管的阴极连在一起(共阳的接法), 先送出对应第1行发光管亮灭的数据并锁存, 然后选通第1行使其燃亮一定的时间, 然后熄灭;再送出第2行的数据并锁存, 然后选通第2行使其燃亮相同的时间, 然后熄灭;…第16行之后, 又重新燃亮第1行, 反复轮回。
当这样轮回的速度足够快(每秒24次以上), 由于人眼的视觉暂留现象, 就能看到显示屏上稳定的图形。
该方法能驱动较多的LED, 控制方式较灵活, 而且节省单片机的资源。
显示数据传输采用串行传输的方法, 控制电路可以只用一根信号线, 将列数据一位一位传往列驱动器, 在硬件方面无疑是十分经济的。
但串行传输过程较长, 数据按顺序一位一位地输出给列驱动器, 只有当一行的各列数据都已传输到位之后, 这一行的各列才能并行地进行显示。
对于串行传输方式来说, 列数据准备时间可能相当长, 在行扫描周期确定的情况下, 留给行显示的时间就太少了, 以致影响到LED的亮度。
采用串行传输中列数据准备和列数据显示的时间矛盾, 可以采用重叠处理的方法。
即在显示本行各列数据的同时, 传送下一行的列数据。
为了达到重叠处理的目的, 列数据的显示就需要有锁存功能。
对于列数据准备来说, 它应能实现串入并出的移位功能。
这样, 本行已准备好的数据打入并行锁存器进行显示时, 串行移位寄存器就可以准备下一行的列数据, 而不会影响本行的显示。
系统框图如图一图一点阵显示器硬件系统框图第二章系统硬件电路的设计硬件电路大致上可以分为单片机系统及外围电路、列驱动电路和行驱动电路三部分。
一. 单片机系统及外围电路单片机采用89C51或更高频率的晶振, 以获得较高的刷新频率, 使得显示更稳定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 LED电子显示屏原理1.1 L ED电子显示屏概述LED电子显示屏(Light Emitting Diode Panel)是由几百--几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。
利用不同的半导体材料可以制造不同色彩的LED像素点。
目前应用最广的是红色、绿色、黄色。
而蓝色和纯绿色LED的开发已经达到了实用阶段。
LED显示屏是一种通过控制半导体发光二极管的亮度的方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块组成。
图文显示屏可与计算机同步显示汉字、英文文本和图形;而条幅显示屏则适用于小容量的字符信息显示。
LED显示屏因为其像素单元是主动发光的,具有亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等优点。
因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
1.2 LED显示屏动态显示原理LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。
点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。
将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。
最典型的例子就是电影放映机。
在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。
以8×8点阵模块为例,说明一下其使用方法及控制过程。
图1中,水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。
相邻两行线间绝缘。
同样,竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。
在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。
则行线和列线的交叉点处的LED就会有电流流过而发光。
比如,Y7为1,X0为0,则右下角的LED点亮。
再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。
图1: (8×8)点阵LED显示模块结构原理及引脚图LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5x7点阵显示器用于显示西文字母.5×8点阵显示器用于显示中西文,8x8点阵可以用于显示简单的中文文字,也可用于简单图形显示。
用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过PC机或单片机控制驱动。
1.3 Proteus简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus软件具有其它EDA工具软件(例:multisim)的功能。
这些功能是:(1)智能原理图设计(ISIS)(2)完善的电路仿真功能(Prospice)(3)独特的单片机协同仿真功能(VSM)(4)实用的PCB设计平台2 硬件设计2.1 总体设计思路设计思路如图2:图2:总体思路框图2.2 设计论证图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中16x16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
2.3系统硬件选择由图2可知此次设计的硬件选择如下:AT89C52单片机1个, 锁存器74LS373芯片1片,非门74LS04芯片1片,4线-16线译码器741454芯片2片,移位寄存器74LS595芯片2片,最后需要构成16*32点阵的MATRIX-8X8-RED芯片4片以及电源和地。
2.4 电路设计原理图本设计的电路设计原理图如图3所示:图3:16*32 LED点阵设计电路原理图由于proteus里没有现成的16*32的点阵芯片,所以我选择4片MATRIX-8X8-RED芯片拼成一块16*32的点阵芯片。
3 软件设计显示屏软件模块包括:初始化程序、主程序、多字滚动、显示程序、扫描程序。
显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
3.1 显示驱动程序设计显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/16×T0溢=1/16×f/12(65536-t)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
显示驱动程序(显示屏扫描函数)流程图如图4所示:图4:显示驱动程序流程图3.2 系统主程序设计本设计的系统软件能使系统LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;然后以“卷帘出”效果显示图形,停留约几秒;接着向上滚动显示“--------”这几个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
如果想改变些事内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。
系统主程序流程图如图5所示:图5:系统主程序流程图3.3 源程序;主程序如下:ORG 0000HSJMP START ;程序开始从START执行ORG 0030H ;程序从0030H单元开始存放START : MOV 60H , #0 ;60H单元清0,60H单元用于软件延时时的计数MOV 61H , #0 ;61H单元清0,61H单元用于软件延时时的计数D0: MOV R0,#165 ;中文字幕往左滚动一次需要读取数据165次MOV DPTR,#TABLE1 ;字模表1首址赋指针ACALL DISPLAY ;调用显示子程序MOV R0 , #256 ;英文部分往左滚动显示完一次需读取数据256次MOV DPTR,#TABLE2 ;字模表2首址赋指针ACALL DISPLAY ;调用显示子程序AJMP D0 ;反复显示;显示程序如下:DISPLAY: MOV R2 , #10 ;每屏字幕扫描显示10次LOOP0: MOV R3 , #32 ;总共扫描32列CLR P3.2 ;移位寄存器74LS595锁存信号无效(为0)MOV R5,#00H ;列序号送寄存器,从第0列开始显示SCAN1: MOV R1,#00H ;偏移量初值为0LOOP1: MOV R4,#2 ;每列显示数据有两字节,每次发送一字节,发两次LOOP2: MOV A,R1 ;偏移量寄存器内容送AMOVC A,@A+DPTR ;取字模数据送AMOV SBUF,A ;A中内容送串行口输出JNB TI,$ ;检查数据是否已发送完,没发送完,继续等待CLR TI ;发送完毕,清串行口中断标志INC R1 ;偏移量加1DJNZ R4,LOOP2 ;还没发送完两字节,继续发送NOPSETB P3.2 ;移位寄存器74LS595数据锁存信号有效(为1),锁存单片机送出的数据CLR P3.3 ;移位寄存器74LS595输出允许信号有效,将锁数据输出NOPNOPMOV P1 , R5 ;列编号送P1口,使该列显示数据MOV 60H , #5 ;开始软件延时,60H单元置初值5DL1: MOV 61H , #20 ;61H单元置初值20DL2: DJNZ 61H , DL2DJNZ 60H , DL1 ;软件延时,让一列数据的显示维持一点时间INC R5 ;列编号加1CLR P3.2 ;移位寄存器74LS595锁存信号无效(为0)SETB P3.3 ;移位寄存器74LS595输出允许信号无效(为1)DJNZ R3,LOOP1 ;32列还没扫完,继续扫描DJNZ R2,LOOP0 ;每屏字幕没扫完10次,继续INC DPTR ;指针加1INC DPTR ;指针加1,使显示字幕往左移动DJNZ R0,DISPLAY ;R0不为0,继续读取数据扫描显示RET ;子程序返回TABLE1:;黑屏DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;天DB 02H,01H,42H,01H,42H,02H,42H,04H,42H,08H,42H,30H,42H,0C0H,7FH,00H, DB 42H,0C0H,42H,30H,42H,08H,42H,04H,0C2H,02H,46H,03H,02H,02H,00H,00H ;道DB 02H,00H,42H,02H,22H,04H,33H,0FH,00H,04H,20H,02H,0AH,0FDH,6DH,25H, DB 35H,25H,25H,25H,25H,25H,65H,25H,0AFH,0FDH,24H,03H,00H,02H,00H,00H ;酬DB 4FH,0FEH,48H,0A4H,7FH,24H,48H,24H,7FH,DB 24H,48H,0A4H,0DFH,0FFH,48H,02H,DB 02H,0CH,0FFH,0F0H,02H,00H,3FH,0FCH,DB 02H,00H,0FFH,0FFH,00H,00H,00H,00H;勤DB 40H,02H,47H,0A2H,0F4H,0AAH,54H,0AAH, DB 5FH,0FEH,54H,0AAH,0F4H,0AAH,47H,0A3H, DB 48H,02H,08H,0CH,0FFH,0F0H,08H,02H,DB 08H,01H,1FH,0FEH,08H,00H,00H,00H TABLE2:;hDB 00H,00H,00H,00H,30H,04H,7FH,0FCH,DB 0FFH,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH,01H, DB 0FCH,00H,04H,00H,00H,00H,00H;nDB 00H,00H,00H,00H,03H,04H,03H,0FCH,DB 03H,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH,DB 01H,0FCH,00H,04H,00H,00H,00H,00H;iDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,DB 00H,00H,04H,03H,04H,1BH,0FCHDB 1BH,0FCH,1BH,0FCH,00H,04H,00H,04H,00H, DB 00H,00H,00H,00H,00H,00H,00H;eDB 00H,00H,00H,00H,01H,0F0H,03H,0F8H,DB 06H,0CCH,0CH,0CCH,0CH,0CCH,0CH,0CCH DB 0CH,0CCH,0CH,0CCH,0CH,0CCH,06H,0CCH, DB 03H,0C8H,01H,0C0H,00H,00H,00H,00H4 Proteus仿真本课程设计仿真利用proteus仿真步骤如下:(1)选择设计图纸的到小(2)选取仿真所需的元器件选取元器件的方式是,单击元器件放置按钮“P”。