LED显示屏 毕业论.doc_第1页
LED显示屏 毕业论.doc_第2页
LED显示屏 毕业论.doc_第3页
LED显示屏 毕业论.doc_第4页
LED显示屏 毕业论.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

40清远职业技术学院机电工程学院毕业论文毕 业 论 文论文题目: LED显示屏 专 业: 电子信息工程技术 班 级: 10电子信息工程技术 学 号:02021001019、02021001063学生姓名: 黄忠强 郑晓雄 指导教师: 褚丽丽老师 机电工程学院2013年 月 日摘要本文介绍了一款以单片机AT89S51为控制器的LED点阵显示屏系统的设计。该系统可实现中英文字符的显示和动态特效显示。并且可以通过级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。采用程序烧录器,把编辑的程序烧录到单片机AT89S51中,然后利用最小系统控制LED显示屏的字符显示,单片机接收并处理PC机的控制命令以及显示代码,由显示驱动模块驱动一个1616分辨率的LED点阵显示屏的扫描显示。关键词:电子信息工程技术、单片机、串行通信、LED显示屏论文目录摘要功能设计方案硬件设计方案软件设计方案系统硬件设计控制部分列驱动行驱动显示屏系统软件设计总计参考文献致谢附录1. 设计方案1.1. 系统硬件方案大多数的LED显示屏都在户外,所以对硬件的质量要求非常的高。为方便检修和维护硬件电路设计时常常采用模块化的设计方法。硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。如图2-1所示,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统及上位机四部分组成。上位机通过通信部分向控制部分发送控制指令和显示内容代码,控制部分执行显示指令并将显示代码处理后控制显示部分的显示内容和显示方式。1.1.1. 显示屏主控制器(1)单片机单片机是集成了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 ,这在便携式产品中大有用武之地4。(2)DSP 芯片DSP 又叫数字信号处理器。顾名思义,DSP主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域,DSP具有修正的哈佛结构,多总线技术以及流水线结构。将程序与数据存储器分开,使用多总线,取指令和取数据同时进行,以及流水线技术,这使得速度有了较大的提高。DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。而DSP 依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令,如TM320 系列的FIRS ,LMS,MACD指令等5。(3)EDAEDA(即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系列单片机作为控制部分的核心器件。1.1.2. 通信系统 通信部分要满足的设计要求就是稳定、快速、简单易实现。因为通常情况下显示屏和上位机的距离不会很远,所以通信距离的要求不是很高。计算机数据通信主要采用并行通信和串行通信两种方式。(1)并行通信并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。(2)串行通信串行通信数据是一位一位顺序传送,只用很少几根通信线,串行传送的速度低,但传送的距离长,因此串行适用于长距离而速度要求不高的场合。在串行发送时,数据是一位一位按顺序进行的,而计算机内部的数据是并行的。因此,当计算机向外发送数据时,必须将并行数据转换为串行数据再发送。反之,又必须将串行数据转换为并行数据输入计算机中。这种转换即可以用硬件实现也可以用软件实现。单由软件实现会增加CPU负担,降低其利用率,故目前常采用硬件实现。通用的通用异步接收/发送器,简称UART(Universal Asynchromous Receeiver/Trabsnitter)是完成这一功能的硬件电路。在单片机芯片中,UART已经集成在其中,作为其组成部分,构成一个串行口6。 综上所述,题目设计已经选定了单片机为开发方式而单片机的UART已经集成在单片机内,所以通信系统选择串行通信为通信方式。1.1.3. LED点阵显示屏显示部分包括了一块至少可以显示一个汉字的显示屏,以及驱动该显示屏的驱动电路。由于单片机的I/O口有限要不能直接用I/O口来驱动LED显示屏,所以需要对单片机IO口进行扩展增加单片机并行输出的能力。LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来,如图2-2所示;二是选用一些由单个发光二极管构成的LED点阵子模块构成大的LED点阵模块。目前市场上普遍采用的点阵模块有88、1616几种;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险。所以构建一个1616的LED点阵屏选用四块88点阵模块。图 2-2 LED点阵图一个1616的LED显示屏行和列各有16支引脚,不能单靠51单片机的端口驱动所以必须要对单片机的端口个数进行扩展。经常采用的端口扩展方法是用串并转换芯片进行译码。常用的串并转换芯片有74LS154(4线-16线译码器)、74LS164(8位串并转换器)、74HC595等。51系列单片机端口低电平时,吸入电流可达,具有一定的驱动能力;而为高电平时,输出电流仅数十甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力,所以单片机不能直接驱动LED显示屏显示。在单片机和显示屏之间还需要增加以功能放大位目的的驱动电路。1.1.4. 硬件设计方案最终方案,以51单片机存储和处理显示内容用串行通信的方式将显示内容和控制指令传输到单片机系统,单片机指令通过端口译码扩展后驱动4块88LED点阵模块构成的1616的LED点阵显示屏。题目将以此方案为指导思想展开具体的硬件电路设计。1.2. 系统软件方案软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。设计目标和硬件总体结构确定的情况下,软件可以分为主程序,显示子程序,各种特效显示子程序,通信程序三个主要部分组成。具体结构如图2-4所示。 软件功能结构框图软件的编写需要借助软件编辑器和编译软件,编译完成后还需要下载到单片机中执行。编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。1.1.5. 单片机编程语言现在主要运用的单片机编程语言为汇编语言和C语言。两种语言相比较各有优点。汇编语言(Assembly Language)是面向机器的程序设计语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。其具有执行速度快,占内存空间少等优点。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号 而不是子和特殊符号的语言。对于目前普遍使用的RISC架构的8bit MCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。基于以上理由决定采用汇编语言为该显示系统的编程语言。1.1.6. 系统软件编译器介绍汇编语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。因此在系统软件设计中,编译器必不可少。支持MCS51用C语言编程的编译器主要有两种:Franklin C51编译器和KEILC51编译器。目前在单片机开发中普遍都是使用KEIL C51来进行编译。因此软件设计最终方案为采用汇编语言为程序语言,KELC为编译工具按照控制、通信、显示等几个功能模块来编写程序。2. 系统硬件设计2.1. 控制部分1.1.7. AT89S51简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT989S51具有以下特点:与MCS-51产品指令系统完全兼容4k字节在系统编程(ISP)Flash闪速存储器1000次擦写周期4.05.5V的工作电压范围全静态工作模式:0Hz33MHz三级程序加密锁1288字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模唤醒系统看门狗(WDT)及双数据指针掉电标识和快速编程特性灵活的在系统编程(ISP字节或页写模式) AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。1.1.8. 控制系统设计控制电路设计中采用的是单片机系统,该系统必须要是工作在一个最小系统(指单片机的可以的最小配置系统)。AT89S51的最小系统包括了外界时钟电路和复位电路,选定一定数量的IO口作为控制口控制外部的各种器件和数据的输出。根据功能选择一定的单片机端口添加外围的器件,具体电路如图3-2所示。在该系统中,P1各口主要用作LED显示数据的控制输出。由于端口的驱动能力有限所以该端口外接了5K的上拉电阻来提高驱动能力。具体接法为:P1口连接74HC154,P1.0到P1.3分别连接74HC154的A、B、C、D 端译码地址输入端(低电平有效), 端口30,EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。因为没有扩展外部程序存储器所以将EA置为高电平。 控制部分电路图由于P3口是特殊功能口,在该系统中基本是采用其第二功能。其第二功能和实际运用如表3-1所示:表3-1 AT89S51P3口第二功能的应用端口第二功能实际作用P3.0RXD(串行输入口)与上位机通信的数据输入口P3.1TXD(串行输出口)与上位机通信的数据输出口P3.2外部中断0做按键中断,控制显示状态P3.3外部中断1做按键中断,控制运行模式AT89S51单片机的P1在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,P2口在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。所以P1和P2口留为外部数据存储器和程序存储器的扩展用,以备内部存储器和程序存储器不够用的情况时使用。2.2. 列驱动1.1.9. 驱动电路本设计中,每个1616点阵的列驱动电路由两个串联的8位移位锁存器74HC595构成。74HC595,是为Motorola的SPI总线开发的一款串并转换芯片。由于74HC595的输入输出电平兼容LSTTL,NMOS,CMOS电平,且具有较强的输出负载能力,而被广泛地运用于MCU(微控制器)、MPU(微处理器)的I/O口扩展。74HC595在5V供电的时候能够达到30MHz的时钟速度,每个并行输出端口均能承受20mA的灌电流和拉电流。这个特点保证了不用增加额外的扩流电路即可轻松的驱动LED。它输入端允许500nS的上升(下降)时间,对严重畸形的时钟脉冲仍能检测。这样就可以容纳较大的传输线对地电容,使本设计的抗干扰能力增强。74HC595并行输出端与LED模块列线之间通过电阻连接,这里电阻起到分压,去除红色LED的并联嵌位作用。使红绿两组LED均能正常发光。由于LED显示屏的工作电流时刻在变化,造成了系统电压的波动。这种电压波动有高频成分,也有低频成分。轻则对周围无线电环境造成电磁污染,重则使系统时钟紊乱,逻辑错误。为避免此,在每个74HC595的电源VCC和GND旁边都并联了两个电容,用于滤波和退耦。稳定系统电压,旁路掉电源中的高频脉动成份。消除自激,减小对外杂散电磁辐射,提高EMI电磁兼容性。1.1.10. 7HC595介绍74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态。三态特点,8位行输入 8位串行或并行输出 存储状态寄存器,三种状态 输出寄存器可以直接清除 100MHz的移位频率 输出能力 并行输出,总线驱动 串行输出;标准 中等规模集成电路应用 串行到并行的数据转换 Remote control holding register. 描述 595是告诉的硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。CPD决定动态的能耗, PDCPDVCCf1+(CLVCC2f0) F1输入频率,CL输出电容 f0输出频率(MHz) Vcc=电源电压 引脚说明符号引脚描述 内部结构74595的数据端:QA-QH: 八位并行输出端,可以直接控制数码管的8个段。QH: 级联输出端。我将它接下一个595的SI端。SI: 串行数据输入端。74595的控制端说明:/SRCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。SRCK(11脚):上升沿时数据寄存器的数据移位。QA-QB-QC-.-QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。(通常我将RCK置为低电平,) 当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。/G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。3)595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,在正常使用时SCLR为高电平, G为低电平。从SER每输入一位数据,串行输595是串入并出带有锁存功能移位寄存器,它的使用方法很简单,如下面的真值表,在正常使用时SCLR为高电平, G为低电平。从SER每输入一位数据,串行输入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。入时钟SCK上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。2.3. 行驱动1.1.11. 驱动原理共集驱动方式, 又称射极跟随器,当电源电压足够时,在负载上获得的电压始终等于基极对地电压Ub减去发射结压降Ube。硅管的Ube一般为0.7V左右,因此在5V供电系统中,在负载上最多能获得4.3V的电压,若Ic=1 A 则在三极管上的管耗为1A0.7V=0.7W,管耗较大,需选用中功率的管子。还有一个重要的特点,共集电路的基极是用高电平驱动,而单片机在复位期间,所有I/O口都呈现高电平。这样的话,在开机上电复位的瞬间,在所有的行线上都会获得电压。而造成开机瞬间全屏显示或造成巨大的浪涌电流冲击,使电源电压跌落,单片机工作异常。而使用共射驱动方式的话,同样的电源电压下,负载端能获得4.7V的电压,Ic=1A时的管耗只有0.3W。因此可选用小功率器件。共射电路的基极驱动是用低电平,这就不会造成上述共集电路的浪涌电流影响。同时,大部分单片机的I/O是弱上拉输出,也即是单片机能承受较大的灌电流,而只能提供微弱的拉电流。74HC154介绍4线16线译码器,可以实现地址的扩展。 引脚说明:1-11 13-17 :输出端。12:Gnd电源地 18-19:使能输入端、低电平有效20-23地址输入端 24 VCC电源正74HC154是一款高速CMOS器件,74HC154引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。任选一个使能输入端作为数据输入,74HC154可充当一个1-16的多路分配器。当其余的使能输入端置低时,地址输出将会跟随应用的状态。74HC154 特性16线多路分配功能 74HC154 参数74HC154 基本参数电压2.06.0V驱动电流+/-5.2 mA传输延迟11 ns5V74HC154 其他特性逻辑电平CMOS功耗考量低功耗或电池供电应用74HC154 封装与引脚SO24, SSOP24, DIP24, TSSOP244位二进制码输入译码至16个互斥输出 兼容JEDEC标准no.7A 温度范围 -40+85 -40+125 ESD保护 HBM EIA/JESD22-A114D超过2000 V MM EIA/JESD22-A115-A超过200 V74HC154 4线-16 线译码器/解调器将4个二进制编码输入译成16个彼独立的输出之一将数据从一个输入线分配到16个输出的任意一个而实现解调功能输入箝位二极管简化了系统设计与大部分TTL和DTL电路完全兼容74154这种单片4 线16 线译码器非常适合用于 HYPERLINK /高性能存储器的译码器。当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。2.4. LED显示屏1.1.12. LED显示屏结构设计时必须掌握点阵工作原理方能进行更深层设计。16x16LED点阵其实就是4块8x8点阵LED级联而成的,因此特给出 88 点阵LED的工作原理。图(1)为88点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。而16x16就是在8x8原理的基础上将四块8x8级联而成,如图(3)。 图(1)88点阵LED外观及引脚图图(2)88点阵LED等效电路图(3)四块8x8点阵LED级联成16x16点阵1.1.13. LED点阵的显示文字原理汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为了降低成本,使用了四块88的LED点阵发光管的模块,组成了一个1616的LED点阵显示屏,如图(3)所示。在这里仅做了二十五个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;.第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。显示数据可通过单片机的P0,P2口接驱动电路传输到点阵行引脚。LED点阵显示模块进行的方法有两种:1)水平方向(X方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个P口输出列码决定哪一列能亮(相当于位码),用另一个P口输出行码(列数据),决定该列上哪个LED亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。(2)竖直方向(Y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个P口输出决定哪一行能亮(相当于位码),另一个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些LED灯亮(相当于段码)。能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。本设计应用的是第一种的扫描方法,即水平方向(X方向)扫描。每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的1616的点阵宋体字库,即所谓的1616,是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。LED点阵屏显示方式主要由静态显示和动态扫描显示两种。 对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重新输出新的点阵数据这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分直到显示完最后一部分又重新开始显示第一部分,重复循环进行在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面也就是说采用动态扫描显示需要不断进行画面的刷新在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低大屏幕的制造、维护要容易许多,可靠性也增加了两种显示方式的比较再结合51单片机IO口数量有限的原因决定采用动态扫描的方式进行显示。动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。在该显示系统中扫描显示的工作原理如图4-2所示,先选通列然后再从行送入对应列的数据,这样从第1列到第16列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。从数据中读取第1列对应的行数据从数据中读取第16列对应的行数据从数据中读取第2列对应的行数据选通第1列选通第2列选通第16列16*16LED16*16LED16*16LED选通LED第1列选通LED第2列选通LED第16列按数据导通相应行按数据导通相应行按数据导通相应行读取所需要显示的数据至显示寄存器扫描显示程序原理图3. 系统软件设计系统软件采用汇编语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现串口通信,静态显示,动态显示三大功能。其功能结构如图2-4所示。通信程序接收数据,交给主程序处理再通过控制程序选择不同的显示程序进行显示。主程序的工作流程如图4-1所示开始系统初始从显示数组读取数据到显示寄存读取显示控制命令选择显示调用相应显示程序图4-1 主程序流程图程序开始时首先必须对单片机进行初始化,其中初始化的内容包括:串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。按照设定的方式和内容显示出所需要的内容。程序:;显示字用查表法,不占内存,用四个16*16共阳LED点阵显示,;效果:向上滚动显示字,每次四个,重复循环。;R2:行扫描地址(从00-0FH)。;R3:滚动显示时控制移动速度,也可控制静止显示的时间。;*;中断入口程序;*;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;*; 初始化程序 ;*;*; 主程序 ;*;START: MOV 20H,#00H ;清标志位为0,00H=(20h.0)为1帧扫描结束标志MOV A,#0FFH ;端口初始化MOV P1,AMOV P2,AMOV P3,AMOV P0,ACLR P1.6 ;串行寄存器打入输出端控制位MOV TMOD,#01H ;使用T0作16位定时器,行扫描用。MOV TH0,#0FCH ;1ms初值(12MHZ)MOV TL0,#18HMOV SCON,#00H ;串口方式0MOV IE,#82H ;T0中断允许,总中断允许 MOV SP,#70H ;修改堆栈底部为70H单元LCALL DIS1 ;显示准备,黑屏,1.6秒MAIN: MOV DPTR,#TABLCALL MOVDISP ;逐排显示,每排四字,共六排 MOV DPTR,#TAB LCALL MOVDISP1 ;滚动显示,每排四字) AJMP MAIN;*; 四字逐排显示子程序 ;*;每次四字移入移出显示方式,入口时定义好DPTR值;MOVDISP: MOV R1,#6 ;显示6排字,每排四字(R1=排数)DISLOOP: MOV R3,#100 ;每排显示时间16ms*100=1.6SDISMOV: MOV R2,#00H ;第0行开始 SETB TR0 ;开扫描(每次一帧)WAITMOV: JBC 00H,DISMOV1 ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒) AJMP WAITMOVDISMOV1: DJNZ R3,DISMOV ;1帧重复显示(控制显示时间) MOV A,#128 ;显示字指针移一排(每排4字*32=128) ADD A,DPL ; MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A DEC R1 ;R1为0,显示完 MOV A,R1 JZ MOVOUT ; AJMP DISLOOP ;MOVOUT: RET ;移动显示结束;*; 四字滚动显示子程序 ;*;每排四字向上移出显示方式,入口时定义好DPTR值;MOVDISP1: MOV R1,#96 ;向上移动显示6排字,每排四字(R1=排数*16)DISLOOP1: MOV R3,#10 ;移动速度1.6*10=0.16SDISMOV2: MOV R2,#00H ;第0行开始 SETB TR0 ;开扫描(每次一帧)WAITMOV1: JBC 00H,DISMOV3 ;标志为1扫描一帧结束(16毫秒为1帧,每行1毫秒) AJMP WAITMOV1DISMOV3: DJNZ R3,DISMOV2 ;1帧重复显示(控制移动速度) INC DPTR ;显示字指针移一行(二字节位置) INC DPTR DEC R1 ;R1为0,显示完 MOV A,R1 JZ MOVOUT1 ; AJMP DISLOOP1 ;MOVOUT1: RET ;移动显示结束;*; 四个字显示子程序 ;*;静止显示表中某四个字(黑屏)DIS1: MOV R3,#100 ;静止显示时间控制(16MS*#5ah=1.6秒)DIS11: MOV R2,#00H ;一帧扫描初始值(行地址从00-0FH) MOV DPTR,#TAB ;取表首址 SETB TR0 ;开扫描(每次一帧)WAIT11: JBC 00H,DIS111 ;为1,扫描一帧结束 AJMP WAIT11DIS111: DJNZ R3,DIS11 RET;*; 扫描程序 ;*;1MS传送一行,每行显示1毫秒,一次传送四个字的某行共8个字节.;INTT0: PUSH ACC MOV TH0,#0FCH ;1ms初值重装 MOV TL0,#18H MOV A,#97 ;指向第四个字行右字节(#tab+97) ADD A,DPL MOV DPL,A MOV A,#0 ADDC A,DPH MOV DPH,A MOV A,#0 MOVC A,A+DPTR ;查表(0+#tab+97) MOV SBUF,A ;串口0方式发送WAIT: JBC TI,GO ;等待发送完毕 AJMP WAIT ;GO: MOV A,DPL ;指向第四个字行左字节 SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR MOV SBUF,AWAIT1: JBC TI,GO1 AJMP WAIT1;GO1: MOV R0,#03HMLOOP: MOV A,DPL ;指向前三个字行右字节 SUBB A,#31 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR ;查表 MOV SBUF,A ;串口0方式发送WAIT2: JBC TI,GO2 ;等待发送完毕 AJMP WAIT2 ;GO2: MOV A,DPL ;指向前三个字行左字节 SUBB A,#1 MOV DPL,A MOV A,DPH SUBB A,#0 MOV DPH,A MOV A,#0 MOVC A,A+DPTR MOV SBUF,AWAIT3: JBC TI,GO3 AJMP WAIT3GO3: DJNZ R0,MLOOP ;执行三次; SETB P1.7 ;关行显示,准备涮新 NOP ;串口寄存器数据稳定 SETB P1.6 ;产生上升沿,行数据打入输出端 NOP ; NOP ; CLR P1.6 ;恢复低电平 MOV A,R2 ;修改显示行地址 ORL A,#0F0H ;修改显示行地址a=0f0h MOV R2,A ;修改显示行地址r2=0f0h MOV A,P1 ;修改显示行地址a=10111111b=0bfh ORL A,#0FH ;修改显示行地址a=10111111b=0bfh ANL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论