附录Ⅱ:产品图片
LED点阵广告牌在大街小巷随处可见,它的应用领域现在极其广泛。LED显示屏需求量都是非常大的。而这些LED的最基本单元都是8*8的点阵,它是组成汉字及其其它图形的基础。
本次的设计就是采用单片机作为主要控制单元核心,来实现一个简单的LED点阵汉字显示系统。通过单片机对行列扫描的控制,配合程序的运用,来实现显示、滚动、暂停以及调速。汉字的显示就是字模以极快的速度在屏幕上循环,超过一定的速度,由于人眼的暂留效应,就会认为是完整地显示了汉字。把字模按一定的速度依次调用显示,在我们视线中就好像字体在滚动。
在本次的设计中,主要用到了单片机的串口通信技术,这样不仅节省了单片机IO口的数目,而且是程序更加简洁。
LED显示汉字技术相信在将来还会得到更加广泛的应用,它在我们日常生活中占得地位相信也会愈来愈重要。
目录
第一章 绪论
1.1 课题研究背景
1.2 研究现状及发展趋势
1.3 文档主要内容
第二章 方案论证与选择
2.1 系统硬件方案
2.1.1 显示屏主控制器
2.1.2 通信系统
2.1.3 硬件设计方案
2.2 系统软件方案
2.2.1 单片机编程语言
2.2.2 系统软件编译器介绍
第三章 硬件设计
3.1 硬件系统的总体设计
3.2 单片机系统设计
3.2.1 STC89S52RC简介
3.2.2 STC89S52RC单片机引脚功能
3.2.3 复位电路设计
3.2.4 时钟电路
3.2.5 电源电路
3.3 控制单元设计
3.4 驱动电路设计
3.4.1 列驱动
3.4.2 行驱动
3.4.3 点阵屏分类
3.4.4 点阵工作原理
3.5 系统总电路图
第四章 软件设计
4.1 主程序设计思想及流程图
4.2 显示驱动程序设计
第五章 制作与调试
5.1 系统硬件部分调试
5.1.1 短路与虚焊检测
5.1.2 上电测试
5.2 系统软件调试
5.3 总结
参考文献
致谢
第一章 绪论
1.1 课题研究背景LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万到几十万个半导体发光二极管像素点均匀排列组成。利用不同的材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色。而蓝色和纯绿色LED的开发已经达到了实用阶段。LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。
在短短的十来年中,LED点阵显示屏就以亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定的优点迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展。LED显示屏的应用涉及社会经济的许多领域
现代信息社会中,作为人-机信息视觉传播媒体的显示产品和技术得到迅速发展,进入二十一世纪的显示技术是平板显示的时代,LED显示屏作为平板显示的主导产品之一无疑会有更大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。高亮度、全彩化蓝色及纯绿色LED产品自出现以来,成本逐年快速降低,已具备成熟的商业化条件、基础材料的产业化。使LED全彩色显示产品成本下降,应用加快。LED产品性能的提高,使全彩色显示屏的亮度、色彩、白平衡均达到比较理想的效果,完全可以满足户外全天候的环境条件要求,同时,由于全彩色显示屏价格性能比的优势,预计在未来几年的发展中,全彩色LED显示屏在户外广告媒体中会越来越多地代替传统的灯箱、霓红灯、磁翻板等产品,体育场馆的显示方面全彩色LED屏更会成为主流产品。全彩色LED显示屏的广泛应用会是LED显示屏产业发展的一个新的增长点。
未来LED显示屏会向着标准化、规范化,产品结构多样化的方向发展。
3. 选题意义
该设计课题使我们能够掌握LED显示屏的基本显示原理和设计方法,对LED显示屏这个行业有了较为深刻的了解和认识。并且对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。并且通过该设计课题掌握了51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。目前我国的信息行业发展迅速,作为主要平面显示媒介的LED显示屏的作用也越练越广泛,相关的从业人员也会越来越紧缺。但同时应该清楚的认识到我国的LED技术虽然发展迅速但和世界先进水平还有一定的差距。因此此课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实与积极的意义。
1.3 文档主要内容针对设计项目的特点,作者对文档的内容和结构将做如下安排:
搜集项目的有关资料,并参照目前通用的设计思想和设计方法拟定几套设计方案进行分析比较。最终选定了以单片机为核心控制器件,外加行驱动电路和列驱动电路的设计方案。
以设计方案为指导思想选择合适的器件来实现这一思想,选择器件时要从功能和电气特性两方面来选择和论证。经过对比选择选定STC89S52RC单片机为核心控制器件,由74LS154和SDM495为行驱动电路器件,74HC595为列驱动电路器件。文档列出了详细的器件参数和在系统中的连接使用方法。
根据硬件特点和设计要求,软件选用C语言编写。程序按功能分为静态显示、动态显示、通信等几个功能上相对独立的模块。然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。
设计完成后对设计中所遇到的问题、经验教训、以及自己的想法进行总结。
第二章 方案论证与选择2.1 系统硬件方案大多数的LED显示屏都在户外,所以对硬件的质量要求非常的高。为方便检修和维护硬件电路设计时常常采用模块化的设计方法。硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。如图2-1所示,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统三部分组成。单片机通过通信部分发送控制指令和显示内容代码,执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式。
图2-1 系统硬件组成框图
2.1.1 显示屏主控制器控制部分是整个系统的核心部分,其功能为发送数据和控制指令处理后控制显示部分显示内容。其常用的电子设计方法有单片机、DSP、及EDA技术。几种设计方法比较各有其特点:
单片机是集成了CPU,ROM,RAM和I/ O口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。单片机品种齐全,型号多样 CPU 从8,16,32到64位,多采用RISC 技术,片上I/O非常丰富,有的单片机集成有A/ D,“ 看门狗”,PWM,显示驱动,函数发生器,键盘控制等。它们的价格也高低不等,这样极大地满足了开发者的选择自由。除此之外单片机还具有低电压和低功耗的特点。随着超大规模集成电路的发展,NMOS工艺单片机被CMOS代替,并开始向HMOS 过渡。供电电压由5V 降到3V,2V甚至到1V,工作电流由mA降至μA ,这在便携式产品中大有用武之地。
DSP 又叫数字信号处理器。顾名思义,DSP主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域,DSP具有修正的哈佛结构,多总线技术以及流水线结构。将程序与数据存储器分开,使用多总线,取指令和取数据同时进行,以及流水线技术,这使得速度有了较大的提高。DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。而DSP 依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令,如TM320 系列的FIRS ,LMS,MACD指令等。
EDA(即Electronic Design Automation) 即电子设计自动化,它是以计算机为工具,在EDA 软件平台上,对用硬件描述语言HDL 完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进行适配编译、逻辑影射和编程下载等。设计者只需用HDL 语言完成系统功能的描述,借助EDA工具就可得到设计结果,将编译后的代码下载到目标芯片就可在硬件上实现。由于FPGA/CPLD可以通过软件编程对该硬件的结构和工作方式进行重构,修改软件程序就相当于改变了硬件,软件编写可以采用自顶向下的设计方案,而且可以多个人分工并行工作这样便缩短了开发周期和上市时间,有利于在激烈的市场竞争中抢占先机。而且MCU和DSP都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,FPGA/CPLP器件在功能开发上是软件实现的,但物理机制却和纯硬件电路一样,十分可靠。
三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用。现在市场上常用的单片机主要有MCS-51、AVR、ARM、PIC等。其中应用最广泛的单片机首推Intel的51系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势常作为单片机学习的教材。且51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。所以在控制部分方案的选择中选定51系列单片机作为控制部分的核心器件。
2.1.2 通信系统通信部分要满足的设计要求就是稳定、快速、简单易实现。计算机数据通信主要采用并行通信和串行通信两种方式。
并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。
串行通信数据是一位一位顺序传送,只用很少几根通信线,串行传送的速度低,但传送的距离长,因此串行适用于长距离而速度要求不高的场合。在串行发送时,数据是一位一位按顺序进行的,而计算机内部的数据是并行的。因此,当计算机向外发送数据时,必须将并行数据转换为串行数据再发送。反之,又必须将串行数据转换为并行数据输入计算机中。这种转换即可以用硬件实现也可以用软件实现。单由软件实现会增加CPU负担,降低其利用率,故目前常采用硬件实现。通用的通用异步接收/发送器,简称UART(Universal Asynchromous ReceeiverTrabsnitter)是完成这一功能的硬件电路。在单片机芯片中,UART已经集成在其中,作为其组成部分,构成一个串行口。
综上所述,项目设计已经选定了单片机为开发方式而单片机的UART已经集成在单片机内,所以通信系统选择串行通信为通信方式。
2.1.3 硬件设计方案最终方案如图2-2所示,以单片机机作为核心控制器件存储和处理显示内容,用串行通信的方式将显示内容和控制指令传输到单片机系统,单片机根据传输来的内容和指令通过端口译码扩展后驱动16块8×8LED点阵模块构成的16×64的LED点阵显示屏。项目将以此方案为指导思想展开具体的硬件电路设计。
图2-2 硬件设计方案
2.2 系统软件方案软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。设计目标和硬件总体结构确定的情况下,软件可以分为主程序,显示子程序,各种特效显示子程序,通信程序三个主要部分组成。具体结构如图2-3所示。
图2-3 软件功能结构框图
软件的编写需要借助软件编辑器和编译软件,编译完成后还需要下载到单片机中执行。编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。
2.2.1 单片机编程语言现在主要运用的单片机编程语言为汇编语言和C语言。两种语言相比较各有优点。
汇编语言(Assembly Language)是面向机器的程序设计语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。其具有执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。
C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号{ }而不是子和特殊符号的语言。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;程序有规范的结构,可分为不同的函数。这种方式可使程序结构化;将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;编程及程序调试时间显著缩短,从而提高效率;提供的库包含许多标准子程序,具有较强的数据处理能力;已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同较快地移植过来。
基于以上理由决定采用C语言为该显示系统的编程语言。
2.2.2 系统软件编译器介绍C语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。因此在系统软件设计中,编译器必不可少。支持MCS-51用C语言编程的编译器主要有两种:Franklin C51编译器和KEILC51编译器。目前在单片机开发中普遍都是使用KEIL C51来进行编译。
第三章 硬件设计3.1 硬件系统的总体设计本设计采用STC89S52RC单片机为核心控制器件,用16块8*8点阵相连组成16*64点阵屏,作为显示部分。用74LS154作为行驱动控制,控制点阵屏的行控制信号,有十六根数据线接在点阵屏的十六个行控制信号端上,用74HC595作为列驱动控制,控制点阵屏的列控制信号,同样有三根数据线接在点阵屏的十六个列控制信号端。系统方框图如图3-1所示。
图 3-1 系统方框图
3.2 单片机系统设计3.2.1 STC89S52RC简介本设计使用的是STC89S52RC单片机,原因是此款单片机具有众多优点。
加密性强,难解密
超强抗干扰
超低功耗 掉电模式:<0.1μA
空闲模式:2mA
正常工作模式:4mA~7mA
提供STC-ISP在线编辑系统,无需编辑器,无需仿真器,可省去购买编辑器,仿真器的昂贵资金,适合大众使用
内置看门狗
STC89S52RC的基本结构与8051相同,但是比传统的8051单片机拥有更多的内部Flash,最高可达64KB。片内SRAM容量同样是非常吸引的数字,最高可拥有1280Byte的SRAM。而且还内置EEPROM存储器、AD转换等功能。另外它还可以用串口直接仿真程序,不需要另外加用仿真器或者下载线。
3.2.2 STC89S52RC单片机引脚功能VCC:接电源正极,一般输入电压为5V。
GND:接电源地端。
P0口:P0口为一个8位漏级开路双向I/O口,每个脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(计数器0外部输入)
P3.5 T1(计数器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
3.2.3 复位电路设计为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般单片机正常工作所需要的供电电压为+5V,由于单片机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC在特定的工作电压范围内以及晶体振荡器稳定工作时,复位信号才被撤除,单片机开始正常工作。
目前为止,单片机复位电路主要有四种类型:(1)微分型复位电路;(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。
复位电路工作原理如图3-2所示,VCC上电时,C充电,在10k电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10k电阻上电流降为零,电压也为零,使得单片机进入工作状态。工作期间,按下S、C放电。S松手,C又充电,在10k电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。
图3-2 复位电路
3.2.4 时钟电路内部时钟,是用芯片内部振荡电路,精度不高,温飘也较大,不需要外部振荡器件。
外部时钟,分RC振荡和石英晶振,RC精度不高,成本低,石英晶振,精度高,稳定性好,根据使用场合选择,适合的时钟方式。
STC89S52RC内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或搪瓷谐振器一起构成了一个自激振荡器,这种方式形成的时钟信号称为内部时钟方式。利用芯片内部的振荡电路,在XTAL1和XTAL2两端跨接晶体(或陶瓷)振荡器和两个电容就构成了一个稳定的自激振荡器。晶体振荡频率可在1.2MHz~12MHz之间选择。电容值无严格要求,但其取值对振荡频率输出的稳定性、大小、振荡电路起振速度稍有影响,C1、C2可在20pF~100pF之间取值。一般当外接晶体时,电容选为30pF。本设计采用外部时钟电路,电路图如图3-3所示。
图3-3 时钟电路
3.2.5 电源电路电源电路不单单是为单片机运行提供工作电压,还需要对单片机的外围电路提供工作电源。这里提供2种电源供电方案:
USB接口供电
具有USB接口的设备一般工作电压都为5V。计算机上的USB接口(图3-4)可以输出稳定的+5V电压,最大额定电流为500mA,不足以满足本设计的要求,所以需加上外接电源。在设计的时候,需要注意电路不能出现短路,以免损坏电脑的USB接口。
图3-4 USB接口
要注意,接口上的电源为五只引脚的最旁边的两个,而中间的三个引脚是USB的差分数据线,在本设计中不需要使用。
3.3 控制单元设计控制单元是整个显示系统的核心,该系统中采用51系列单片机为核心器件,用来发送控制指令和显示内容,并且直接输出数据通过译码电路控制LED显示屏的显示内容和显示状态。
在51系列单片机中选定一款合适的机型来作为控制单元的主控芯片。根据项目的要求该芯片必须要具有的就是方便的编程能力,因为在软件设计时方便的程序下载对程序的验证和编写非常有用。还有就是为了提高LED显示屏的扫描速度,单片机的执行速度要尽可能的快。根据这两点要求,选择STC89S52RC为控制单元的主控芯片。
STC89S52RC的最小系统包括了外界时钟电路和复位电路,选定一定数量的I\O口作为控制口控制外部的各种器件和数据的输出。根据功能选择一定的单片机端口添加外围的器件,具体电路如图3-5所示。
在该系统中,P0各口主要用作LED显示数据的控制输出。由于端口的驱动能力有限所以该端口外接了10K的上拉电阻来提高驱动能力。具体接法为:P0.0,P0.1,P0.2,P0.3分别接四块74HC154的ABCD端,向74HC154送入串行数据经过其转换后并行输出; P3.1接 74HC595的SCK,上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。;P1.1接74HC595的RCK端,上升沿时数据寄存器的数据移位,QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变。引脚29,EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。因为没有扩展外部程序存储器所以将EA置为高电平。
图3-5 控制部分电路图
3.4 驱动电路设计3.4.1 列驱动列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。
图3-7 74HC595结构图表
74HC595的外形如图3-7所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚DS是串行数据的输入端。引脚ST是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。74HC595引脚说明见表3-1。列驱动电路见图3-8。
表3-1 74HC595引脚说明
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。
图3-8列驱动电路
将8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全 部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输 出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭 就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控 制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整 的文字或图像。
3.4.2 行驱动本设计采用74LS154作为点阵屏列控制信号,因为154可以输出16位的控制信号,所以只要扫描频率可以,点阵屏就可以看成是稳定平滑过渡,没有闪烁的感觉,给人以正常的视觉效果。74LS154引脚图3-9如图所示。
图3-9 74LS154
74LS154可以将4 个二进制编码输入译成16 个彼独立的输出之一,还可以将数据从一个输入线分配到16 个输出的任意一个而实现解调功能。图3-10和3-11是74LS154内部逻辑连接图和管脚功能示意图。
图3-10 内部逻辑连接 图3-11 管脚功能
74LS154为4线——16线译码器,可以实现地址的扩展。
该译码器采用先进的硅结构CMOS技术,并适合内存地址译码和数据路由应用。它抗噪声能力强,低功耗,并与低电压TTL电路兼容。
功能特性:传输延迟:21ns
电源提供静态电流:80μA
电源电压范围:2―6V
低电平输入电流:最大1μA
引脚功能说明:
1-11 13-17 :输出端。(outputs (active LOW))
12:Gnd电源地 (ground (0 V))
18-19:使能输入端 (enable inputs (active LOW))
20-23地址输入端 (address inputs)
24:VCC电源正 (positive supply voltage)
地址/全能输入对应输出表
功能真值表注意:
H = 高电平(HIGH voltage level)
L = 低电平(LOW voltage level)
X = 任意电平(don’t care)
只要控制端G1、G2任意一个为高电平,A、B、C、D任意电平输入都无效。
74LS154是此集成电路的TTL版本,其功耗更小,功能一样。译码器在单片机系统中一般起扩展I/O的作用,当外设比较多,单片机的引脚不够用的时候,就可以由74LS154把4个单片机I/O口扩展为16个。增强了单片机控制外设的能力。这种单片 4 线—16 线译码器非常适合用于高性能存储器的译码器。当两个选通输入E1 和E2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线(A、B、C、D)写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。
3.4.3 点阵屏分类1. 按颜色基色分:
单基色显示屏:单一颜色(红色或绿色)。
双基色显示屏:红和绿双基色,256级灰度、可以显示65536种颜色。
全彩色显示屏:红、绿、蓝三基色,256级灰度的全彩色显示屏可以显 示一千六百多万种色。
2. 按显示器件分: LED数码显示屏:显示器件为7段码数码管,适于制作时钟屏、利率屏等,显示数字的电子显示屏。
LED点阵图文显示屏:显示器件是由许多均匀排列的发光二极管组成的点阵显示模块,适于播放文字、图像信息。
LED视频显示屏:显示器件是由许多发光二极管组成,可以显示视频、动画等各种视频文件。
3. 按使用场合分类
室内显示屏:发光点较小,一般Φ3mm--Φ8mm,显示面积一般几至十几平方米。
室外显示屏:面积一般几十平方米至几百平方米,亮度高,可在阳光下工作,具有防风、防雨、防水功能。
4. 按发光点直径及间距分类
室内屏(按直径分):Φ3mm、Φ3.75mm、Φ5mm、
室外屏(按间距分):PH10、PH12、PH14、PH16、PH20、PH25、PH31.25、PH37.5......
3.4.4 点阵工作原理图3-12为8*8点阵LED等效电路,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。
一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。也就是说得用四个8*8点阵组合成一个16*16的点阵。
图3-12 点阵原理图
LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来,如图3-12所示;二是选用一些由单个发光二极管构成的LED点阵子模块构成大的LED点阵模块。目前市场上普遍采用的点阵模块有8×8、16×16几种;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。
两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险。所以构建一个16×64的LED点阵屏选用块8×8点阵模块。
如图3-13所示,本设计采用了16个8*8的点阵发光二级管模块,组成了16*64的LED点阵显示屏。LED驱动显示采用的动态驱动扫描方法,动态扫描方式是逐行轮流点亮,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其点亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其点亮相同的时间,然后熄灭;…第十六行之后,又重新点亮第一行,反复轮回。当这样的轮回速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
图3-13点阵显示电路
3.5 系统总电路图
第四章 软件设计如果说硬件是一个人的身体躯干,那么,软件就是一个人的灵魂、思想。只有合理并且完美的程序才能使指导一个人成功地去完成一项任务。对于单片机来说更是如此,基础的硬件电路焊接好后,就需要从软件设计来下手,想要实现硬件电路的正常工作,往往需要对软件进行系统的设计,设计的思想、设计的目标、设计方案、代码的编写、软件的测试等对软件设计的成功有着非同一般的指导意义。
4.1 主程序设计思想及流程图显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
本设计从单片机上电开始,先进行初始化操作,单片机执行显示程序后,点阵屏可以输出显示结果,此过程单片机要对74HC595的触发端进行调整,为下一次重新执行做好准备工作;数据在SCHcp的上升沿把单片机端口输出的8位串行数据输入移位寄存器中,在STcp的上升沿到来后再把数据输送到到存储寄存器中去。若显示程序成功执行一个周期,则重新跳回到初始化状态进行下一周期的显示,若没有显示完全,则一直在显示程序内执行,直到本次显示完全实现。流程图如图4-1所示。
图4-1 主程序流程图
4.2 显示驱动程序设计显示程序分为静态显示程序、左移显示2种种显示方式。其中左移动程序调用了静态显示程序为子程序。
对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据.这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低。
另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分……直到显示完最后一部分又重新开始显示第一部分,重复循环进行.在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面.也就是说采用动态扫描显示需要不断进行画面的刷新.在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低.大屏幕的制造、维护要容易许多,可靠性也增加了.
两种显示方式的比较再结合51单片机IO口数量有限的原因决定采用动态扫描的方式进行显示。
动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。在该显示系统中扫描显示的工作原理如图4-2所示,先选通列然后再从行送入对应列的数据,这样从第1列到第16列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。
图4-2 扫描显示程序原理图
显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第i列对应的行数据为数组中的第i和第i+16个元素。将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与0X01相与,所得结果通过单片机端口输出到串并转换器的A端,锁存在锁存器里完成一列数据移位后再将其输出。如此依次循环选通各列来显示所需画面。
图4-3 左移程序流程图
动态显示程序流程如图4-5所示,根据显示数据的存储原理通过改变实际LED列与数据逻辑列的方法来实现程序的左移。显示数据与列的对应关系为:第i列对应的数据为数组中i和第2×i个数据。显示数组中,第1至16个元素的第8至第1位LED显示屏中的第1至第8行。同理第17至32个元素的第8至第1位LED显示屏中的第9至第16行。所以将元素数据进行逻辑位移便能产生左移动的效果。
第五章 制作与调试软件硬件完成后开始进行调试。调试可分为硬件调试,软件调试和系统联合调试。
5.1 系统硬件部分调试硬件调试主要是调试各部分的焊接是否合格和各芯片的输出输入电压是否符合设计要求,最后测试各硬件部分能否完成设计功能。因此把硬件调试按照以下四部分分步来进行:
1. 测试所有焊点是否有短路和虚焊的现象存在;
2. 通电测试所有硬件芯片的输入输出电压是否在设计要求的范围内;
3. 测试USB下载的功能是否能够实现;
4. 测试覆铜板上的线路是否存在短路断路;
由于最重要的显示系统功能的测试需要软件配合所以在硬件调试部分只测试单片机复位电平,功能部分测试放在系统联合调试部分来完成。
5.1.1 短路与虚焊检测检测工具为万用表,使用万用表的短路报警功能,逐个测试相临的两个焊点检测是否短路。按照电路图检测需要连接的两点是否短路来检测是否已经连接上,以此来检测虚焊的情况。检测和修改完成后为下一步通电检测排除了短路的危险和由于虚焊引起检测结果不真实的麻烦。
5.1.2 上电测试由于系统测试时是采用USB电源为系统电源,所以电源输入都为5V。显示系统中单片机、译码器,锁存器,驱动电路的电源电压均要求为5V所以可同时直接接入。
上电后首先观察电路是否有过热,异味,冒烟的现象出现。经过观察,没有这些现象出现。然后测试各器件的电源,接地及一些电平应该固定的端口的电压。测试的结果为:各器件电源端在4.3V~4.8V之间满足器件的电源电压要求,单片机端口在未接负载时端口电压为4.5V。
5.2 系统软件调试由于已经进行了硬件调试,所以软件调试主要是软件编译和将各功能块程序分别写入以验证其功能的可实现性。在进行功能调试前必须用KEIL C对所有程序进行编译,编译成功生产可执行的.hex后将程序烧入芯片中。如图5-1,5-2所示:
图5-1生成.hex文件
图5-2下载
5.3 总结经过一段时间的工作,终于完成了基于51单片机的LED显示系统的设计,设计所要求的功能全部达到。通过这次设计收获颇多,不仅是所作项目涉及到的软硬件知识还有更为重要的实际经验和过程中所发现的问题。
接手项目之后从互联网上对LED进行了详细的资料收集,从技术和产业的两方面对LED进行了了解。通过了解我认识到LED是一门当今应用非常广泛的技术,整个产业每年都会有巨大的产值而且技术还在不断发展和创新。
从设计之初就确定了参照大屏幕显示屏的实现方法和实际情况设计一款小屏幕的LED点阵显示屏。在查阅了大量的大屏幕显示屏资料后确定了项目的设计方案。整个设计采用STC89S52RC做核心控制器,74LS154做成译码电路,74HC595做成列驱动。在实现这一设计的过程中所遇到的问题和困难给我留下了宝贵的经验和深刻教训。这些经验和教训是:
1. 设计之前应该进行大量的资料收集和分析,确定一个清晰的设计思路;
2. 器件选择时要详细阅读器件使用手册,不但要考虑器件的功能实现还要考虑器件在整个系统中的兼容性;
3. 硬件的系统的建立必须合理和稳定,实物建立之前最好进行仿真这样才能为软件提供一个可靠的试验平台;
4. 软件的编写不但要实现功能还要不断的优化、简练、易读。
5. 电路板的制作过程中要不断自己的去实践和发现捷径,从而更快更好的完成整个设计的制作。
随着课题的进行,对LED的了解也越来越深入。认为LED技术也会进一步发展,LED应用将会更加广泛。可以设想利用LED的高稳定性和低能耗,再与无线通信技术相结合在沙漠深处或者人迹罕至的雪山之颠树立一块依靠太阳能充电,通过无线传输方式更改显示内容的信息板为登山者提供指示和天气信息,为沙漠迷路的人指引方向。
设计结束了,但学习还在继续。我相信通过此次设计所得到的知识、心得、经验乃至感受都会让我在以后的日子里受益匪浅。