基于单片机的led显示屏设计.pdf
《基于单片机的led显示屏设计.pdf》由会员分享,可在线阅读,更多相关《基于单片机的led显示屏设计.pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1绪论绪论随着人们生活环境的不断改善和美化,在许多场合可以看到LED 灯。在大型商场车站,地铁站以及各类办事窗口等越来越多的场所需要用LED点阵显示汉字或者图像。LED 行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。LED 显示屏是利用发光二极管点阵模型或者像素单元组成平面的显示屏幕。不但拥有色彩丰富,组态灵活,能够适应室内外各种环境的特点,还具有发光效率高,使用寿命长的优势。LED 显示屏经历了初期的不可更换显示内容,单色,双色的图文显示到如今的可随时更换显示内容,全彩色的视频显示,历经发展,LED 显示屏得到了广泛的应用和发展。1.11.1LEDLED 点阵显示屏概述点阵显
2、示屏概述目前,国内的 LED 点阵显示屏大部分是单显示,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已经写入显示屏控制系统中的EPROM 芯片中,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用 X 围受到了限制。国内还有另一种 LED 显示屏可编程序型 LED 显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富,信息量大,信息更换速度快的特点。因此传统的LED显示屏控制系统已经越来越不能满足现代社会的需要。而利用 PC 机通信技术控制 LED 显示屏,则
3、具有显示内容丰富,信息更换更灵活等优点。LED 点阵显示屏是通过 PC 机将要显示的汉字字模提取出来,并发送给单片机,然后显示在点阵屏上。单片机具有优异的性价比、体积小、可靠性高、控制功能强,广泛应用在智能仪表、机电一体化、实时过程控制、机器人、家用电器、模糊控制、通信系统等领域。1.2 LED1.2 LED 显示屏控制技术状况显示屏控制技术状况LED 汉字显示的控制系统主要有输入接口电路、信号控制、转换和数字化处理电路及其输出接口电路等,虽然包括的相关技术比较多,但关键技术是串行传输与并行传输技术、动态扫描和静态锁存技术等。1.2.1 串行传输与并行传输技术LED 汉字显示屏的数据传输方式有
4、串行和并行两种。,目前主要采用的是串行控制技术,即显示屏每个单元内部的不同驱动电路和各级联动单元之间,每个时钟只传送1/35一位数据,此方式可有效减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比。1.2.2 动态扫描与静态锁存技术LED 汉字显示屏实现显示信息的刷新技术有动态扫描和静态锁存两种方式。安装在室内的显示屏一般宜采用动态扫描技术,也即是一行放光二极管共用一行驱动寄存器,根据共用一行驱动寄存器的发光二极管像素数目,可以分为 1/4,1/16 扫描等等。而安装在室外的显示屏大多使用静态锁存技术,也就是每一个发光一级管都对应一个驱动寄存器,这样就不需要分时工作,保证了每一个
5、发光一级管的亮度占空比为 100%。因为动态扫描法可以有效减少控制器的 I/O 口,应用广发,本毕业设计也采用动态扫描。1.2.3 自动检测与远程控制控制技术LED 汉字显示屏的构成复杂,安装位置,供电、周围亮度、环境温度等条件都直接影响着显示屏的正常工作与否。所以,在LED 汉字显示屏的控制系统中,不但需要对以上条件进行自动检测控制,还要实现能够远程对显示屏的亮度,色度,垂直位置,显示内容和工作方式的转换的控制。2 2总体方案论证及设计总体方案论证及设计本毕业设计要求利用单片机设计出 LED 汉字显示屏的控制系统,本设计由四个部分构成:LED 点阵显示条屏(LED 驱动模块)、译码驱动电路和
6、移位寄存系统(数据存储模块)、单片机控制系统(PC 机通信模块)。下面对各个模块的设计逐一进行论证比较。2.1 LED2.1 LED 驱动模块驱动模块方案一:采用静态锁存方式,每一个LED 发光管的一端接至单片机的一个 I/O 口,另一端通过电阻连接到电源。此方案可以直接驱动LED,原理简单,驱动能力很强,LED的亮度也可以通过限流电阻进行适当的调节,非常方便,但此方案过于浪费单片机的I/O 口,只适合适用于较小的系统。方案二:采用动态扫描方式,通过三极管驱动并联在一起的 LED 发光管的一端(共阴或者共 2 端),LED 发光管的另一脚连接通用 I/O 口,来控制 LED 亮灭。这种方法能同
7、时驱动较多的 LED,方式灵活,可以节省单片机的 I/O 口资源。比较两种方案,本设计采用方案二。2.22.2 数据存储模块数据存储模块2/35方案一:采用静态 RAM 存储需要显示的内容,尽管静态存储器具有存储内容大,传输速度快的优点,但是断电后,其存储的数据就会消失,所以不适合用于存储固定或者长时间不变的数据。方案二:采用 ROM 存储需要显示的内容,ROM 可以长时间的存储信息,并且掉电后数据不丢失,此种方案适合存储不变的数据。方案三:采用串行 EEPROM 存储需要显示的内容。串行 EEPROM 技术几乎拥有了所有类型存储器的优点:不易丢失、可更新、高性价比、低功耗。普遍适合应用于各类
8、工业测控系统。在速度要求不是很高的情况下,串行 EEPROM(暂定使用 24C256)是比较理想的选择。以上方案,第三种方案有明显的优点,所以选择方案三。2.32.3 本设计任务本设计任务综合以上技术选择的论述和 LED 的发展趋势,本设计将以 AT89C51 单片机为核心,采用串行传输、动态扫描技术、制作一款拥有 PC 机通信功能的,模块化 LED 多功能汉字显示屏。2.42.4 总体硬件组成框图总体硬件组成框图3 3 系统硬件设计系统硬件设计为使该模块化 LED 显示屏显示屏控制系统具有更加方便的实用性和灵活性,需要对系统的各个硬件进行精心设计。其中硬件电路包括LED 点阵显示条屏、译码驱
9、动电路、移位寄存系统、单片机控制系统等。3.1 LED3.1 LED 点阵显示条屏的硬件设计点阵显示条屏的硬件设计LED 驱动模块是 LED 显示屏设计的关键部分,其驱动电路的设计合理与否直接关系到 LED 显示屏的亮度、稳定的重要指标。本设计中 LED 的驱动采用三极管和 74LS1543/35实现的。3.1.174LS154 的简单介绍74LS154 是一个 416 译码器,主要电特性的典型值如下:tpdABCD-output23nsG1、G2-output19ns170mWPd当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。若将 G
10、1 和 G2 中的一个作为数据输入端,由ABCD 对输出寻址,54/74154 还可作 1 线16 线数据分配器真值表如下:输入G1G2DCBA0123456输出789101112131415LLLLLLLLLLLLLLLLLHHLLLLLLLLLLLLLLLLHLHLLLLLHHHHHHHHHHHHHHHLLLHHLHHHHHHHHHHHHHHLLHLHHLHHHHHHHHHHHHHLLHHHHHLHHHHHHHHHHHHLHLLHHHHLHHHHHHHHHHHLHLHHHHHHLHHHHHHHHHHLHHLHHHHHHLHHHHHHHHHLHHHHHHHHHHLHHHHHHHHHLLLHH
11、HHHHHHLHHHHHHHHLLHHHHHHHHHHLHHHHHHHLHLHHHHHHHHHHLHHHHHHHHHHHHLHHHHHHHHHHHHHLHHHHHHLLHHHHHHHHHHHHLHHLHHHHHHHHHHHHHHLHHHLHHHHHHHHHHHHHHLHHHHHHHHHHHHHHHHHHHLXXXXHHHHHHHHHHHHHHHHXXXXHHHHHHHHHHHHHHHHXXXXHHHHHHHHHHHHHHHH74LS154 的真值表3.1.23.1.2 驱动电路的设计驱动电路的设计该系统的驱动电路由 74LS154 与三极管共同组成的,原理图如下:4/35如上图所示,首先采用
12、AT89C51 为本系统的单片机型号。其中,AT89C51 是一种带 4 kb 闪烁可编程可擦除只读存储器(Falsh Programmable and Erasabl ReadOnlyMemory FPEROM)的低电压、高性能 CMOS 型 8 位微处理器,俗称单片机。器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集、输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,能够进行 1000次写擦循环,数据保留时间为 10 年。时钟电路由 AT89C51 的 18,19 脚的时钟端(XTALl 及 XTAL2)以及 12 MHz
13、晶振 X1,电容 C2,C3 组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由电阻 R1,R2,电容 C1,开关 K1 组成,分别接至 AT89C51 的 RST 复位输入端。LED 的行扫描端接到单片机 P0 口,而列扫描接到三极管的发射极。其中列扫描端(B1B8)用于 LED 的数据扫描,凭借 74LS154 的译码和三极管的驱动,使得 LED 能发光。(A1A8)通过 P0 口提供给 LED 的显示数据。考虑到 P0 口必须设置上拉电阻,本设计采用 4.7k 排电阻作为单片机的上拉电阻。下图为 AT89C51 的引脚图:5/353.23.2 数据存储电路的设计数据存储电路的
14、设计本设计由串行的 ROM 24C256 组成数据存储电路。其中,24C256 是一款 1256K 位的支持I2C 总线数据传送协议,可以用电擦拭,可编程自定时写周期的串行 CMOS EEPROM。此芯片有两种写入方式,一种是字节写入方式,另一种是页写入方式。此芯片允许在一个写周期内进行对一个字节到一页的若干个字节的编程写入。24C256 的引脚排列和各个引脚的功能如下图和下表:6/35引脚名称A0 A1 A2SDASCLWAPVccVss功用器件地址选择串行数据/地址串行时钟写保护1.8V 到 6.0V 电源接地数据存储器 24C256 的接口设计原理图如下图所示:该存储电路只由 24C25
15、6 芯片组成,SCL 为串行时钟引脚,用来产生器件所有数据发送或接受的时钟。SDA 是串行数据/地址,这是一个双向的传输端,功能是接收或者发送所有的数据以及传送地址。LED 显示器的控制系统工作时,单片机 89C51 依靠 SDA 引脚与 SCL 引脚读取 24C256 中存储的内容,并在 LED 显示屏上显示出来。当然也可以通过 PC 机(上位机)将已经编辑好的数据内容下载到 24C256 的芯片内。3.3 PC3.3 PC 机(上位机)通信模块的设计机(上位机)通信模块的设计LED 显示屏和电脑的通讯方式采用了标准 RS232 接口,电路原理图如下图所示:7/35通讯方式为 10 位的异步
16、通讯。RS232 接口实际上是一种串行通信标准,是由美国EIA(电子工业联合会)和 BELL 公司一起开发的通讯协议,它对信号线的功能、电气特性、连接器等都有明确的规定。由于 RS-232 接口的 EIA 是用正负电平表示逻辑关系的(-3V-15V 为 1、+3V+15V 为 0)。与 TTL 以高低电平表示逻辑关系不同,因此,为了能够和计算机接口通信,必须在EIA 电平和 TTL 电平之间进行电平转换。MAX232芯片可完成 TTL-EIA 电平转换,且只用单一+5V 电源,因此得到广泛应用。由于采用的是标准 RS232 接口,所以传输距离不能很远,当传输距离超过 15M,就要采用 422或
17、 485 接口,则只要加上一块 RS232 转 422/485 电路模块就可以了。3.4 LED3.4 LED 显示屏的选择显示屏的选择LED 显示屏模块技术指标参数表如下表所示:规格(mm)显示像素/平米模块像素点数显示屏尺寸(mm)面积()8/355173001R1YG(绿红)64*16=1024480*1200.576最大功耗(瓦/平方米)扫描速度视角环境要求供电要求驱动方式使用寿命100(单)/200(双)大于 75Hz水平视觉 160,垂直视觉160-2060220VAC10%50Hz1/16 扫描10 万小时4系统的软件设计系统的软件设计软件也是 LED 汉字显示屏控制系统的重要组
18、成部分。在系统的软件设计中,我同样采用模块化的设计,将系统的各个部分编写出子模块的形式,通过这样的方式,可以增加系统软件的可移植性和可读性。4.14.1 下位机软件流程下位机软件流程本系统的下位机(单片机 89C51)主要作用是用来实现 LED 汉字显示屏上字样的移位、显示和数据的读取等等功能。所以主程序的流程图如下:4.24.2 上位机软件上位机软件9/35本系统的上位机软件主要是编辑 LED 显示屏显示的内容,在设计中采用 Visual Basic语言 LED 显示屏控制系统的内容下载软件。4.2.1 Visual Basic 中串口通讯的应用现在大量的智能仪器或数据采集模块都采用了 RS
19、232 或 485 通讯接口,通过相应的通讯协议,将测试、采集的数据传输给上位机,以满足各种形式的数据处理的要。VisualBasic60(以下简 VB)是许多工程技术人员熟悉和常用的应用程序开发软件,VB 以其简单易学、32 位面向对象的程序设计等特点,倍受广大计算机开发者的青睐,已广泛地应用于各个领域;如何用 VB 编写数据通讯程序,并进行数据处理,意义重大。用 VB 开发串口通讯一般有两种方法:一是采用VB 自身的标准控件 Msm 来实现;另一种是利用 windows 的通讯 API 函数。4.2.2 通讯基础知识一般来说,计算机都有一个或多个串行端口,它们依次为1、2、,这些串口还提供
20、了外部设备与 PC 进行数据传输和通信的通道。这些串口在 CPU 和外设之间充当解释器的角色。当字符数据从CPU 发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给 CPU,再进一步说,在操作系统方面,Windows 用通信驱动程序(M.DRV)调用 API 函数发送和接收数据,当用通信控件或声明调用 API 函数时,他们由 M.DRV 解释并传递给设备驱动程序,作为一个 VB 程序员,要编写通信程序只需知道通信控件提供给 Windows 通信 API 函数的接口即可换句话说,只需设定和监视通信控件的属性和事件即可。4.2.3 数据的发送VB 发
21、送数据有两种:一、发送字符数据;二、发送二进制数据。1.发送字符数据在通讯中以单字符方式逐个发送数据时,每一个数据 X 围是:0128。如发送 58给单片机则可以这样表示:Msm1.Output=Chr(50)发送数据(16 进制)在通讯中以多字符方式发送数据时,发送的是 Ascii 码值。如发送“LED 显示屏”则可以这样表示:Dim data as String 定义发送数据变量data=”LED 显示屏”给变量赋值Msm1.Output=data 发送数据2.发送二进制数据以发送字符方式时,发送的数据 X 围只能是:0128,而单片机经常处理的数据X 围是 0255,那么怎么样发送大于
22、128 的数据呢?方法是采用二进制方式发送数据。首先定义一个二进制类型的数组,然后把要发送的数值赋给二进制数组,再通过 Msm10/35发送。如发送数值 220 的具体过程如下:Dim data(0)as byte 定义发送数据数组Data(0)=220 给数组赋值Msm1.output=data(0)发送数据4.2.4 数据的接收接收数据有两种方式,一、以文本方式接收(InputMode=0);二、以二进制方式接收(InputMode=1)。1.以文本方式接收数据在 InputMode=0 的模式下,是以文本方式接收数据,在接收数据之前,我们必须先定义一个字符串变量,用以接收数据缓冲区里的数
23、据,具体过程如下:Dim receive As String*1 定义接收数据变量Select Case MSm1.mEvent 判断事件类型Case EvReceive 事件类型为接收数据receive=MSm1.Input 接收数据End Select2.以二进制方式接收数据在 InputMode=1 的模式下,是以二进制方式接收数据,在接收数据之前,我们必须先义一个二进制类型的数组,用以接收数据缓冲区里的数据,过程如下:Dim receive(n)As Byte 定义接收数据变量Select Case MSm1.mEvent 判断事件类型Case EvReceive 事件类型为接收数据M
24、sm1.InputMode=1 接收方式为二进制方式For k=0 to nReceive(k)=MSm1.Input 接收数据Next kEnd Select11/354.34.3 编程思想编程思想要实现 LED 汉字显示屏的动态滚动显示效果,其实就是以固定的合适周期,显示一幅幅不同内容的屏幕画面。所以在软件设计上,只需按照一定的时间间隔改变存储于显示缓冲区的信息内容。比如左移的动态效果,就是让显示缓冲区的点阵数据向左移动一列,由于显示缓冲区的所有数据左移一列需要一定的时间,不可能在两次中断间隔时间内实现这一处理过程,鉴于此,就需要设置两个显示缓冲区,一个用于保存当前屏幕正在显示的信息数据,
25、另一个则用来对当前的信息数据进行处理。在到达换屏时间间隔后,切换当前显示缓冲区到数据已经处理的显示缓冲区,然后再对另一显示缓冲区进行数据处理,以此循环下去。要保证动态显示的正常,符合人们的视觉习惯,最根本的问题是如何分配刷新显示屏的定时时间与两个显示缓冲区数据显示、处理的替换。为了二者的处理时间不相互冲突,本设计采用的方法是使显示缓冲区的数据处理在多次多次定时中断程序执行之间的时间间隔内进行并完成。数据处理时间=(定时中断时间-传输数据时间)中断次数这样,只要合理的设定中断次数就能保证刷新屏幕间隔时间内显示缓冲区有足够的时间处理数据。4.44.4 字模处理字模处理从字节长度看,汉字占两个字节(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 led 显示屏 设计
限制150内