四个1616点阵广告牌控制器的设计Word文档格式.docx
《四个1616点阵广告牌控制器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《四个1616点阵广告牌控制器的设计Word文档格式.docx(44页珍藏版)》请在冰豆网上搜索。
Abstract:
Asapopulardisplaydevicecomponent,LEDdot-matrixdisplayboardconsistsofseveralindependentLED(LightEmittingDiode).TheLEDdot-matrixdisplayboardcandisplaythenumberorsign,anditisusuallyusedtoshowtime,speed,thestateofsystemetc.
Thisdesignis416×
16latticeLEDelectrondisplaymonitordesign.Thewholeequipmentiswiththe40-pinSTC89C52MCU(MicroControllerUnit)producedbytheAmericanSTCcompanyatthecore,introducedtakeitasthecontrolsystemLEDlatticeelectrondisplaymonitordynamicdesignandthedevelopmentprocess.Controlsgooddriver74HC164andeightrowdriver74HC595throughthischipactuatesthedisplaymonitordemonstration.Theelectronicscreencanshowallkindsofwrittenormonochromeimages,onefullscreendisplayChinesecharacters,sixteenpiecesof8x8dot-matrixLEDdisplaymodulestoformthe16x16dotmatrixdisplaymode.Showdynamicshowthatmakesstaticgraphicortextcanbeachieved,shiftedoutofvariousformats.ThispaperdescribesthehardwaredesignoftheLEDdotmatrixdisplay,andtheprinciplefunctionofthevariouspartsofthecircuit,thecorrespondingsoftwareprogramdesignandtheuseofsomesuch.
Keywords:
STC89C52MicroControllerUnit;
LatticeDisplay;
DynamicDisplay
颜志伟
1背景与意义
1.1背景
LED显示屏的发展可分为以下几个阶段:
第一阶段为1990年到1995年,主要是单色和16级双色图文屏。
用于显示文字和简单图片,主要用在车站、金融证券、银行、邮局等公共场所,作为公共信息显示工具。
第二阶段是1995年到1999年,出现了64级、256级灰度的双基色视频屏。
视频控制技术、图像处理技术、光纤通信技术等的应用将LED显示屏提升到了一个新的台阶。
LED显示屏控制专用大规模集成电路芯片也在此时由国内企业开发出来并得以应用。
第三阶段从1999年开始,红、纯绿、纯蓝LED管大量涌入中国,同时国内企业进行了深入的研发工作,使用红、绿、蓝三原色LED生产的全彩色显示屏被广泛应用,大量进入体育场馆、会展中心、广场等公共场所,从而将国内的大屏幕带入全彩时代。
随着LED原材料市场的迅猛发展,表面贴装器件从2001年面世,主要用在室内全彩屏,并且以其亮度高、色彩鲜艳、温度低的特性,可随意调整的点间距,被不同价位需求者所接受,在短短两年多时间内,产品销售额已超过3亿元,表面贴装全彩色LED显示屏应用市场进入新世纪。
为了适应2008年奥运会的“瘦身”计划,利亚德开发了表面贴装双基色显示屏,大量用于训练馆和比赛计时计分系统。
在奥运场馆全彩屏方面,为紧缩投资,全彩屏大部分采用可拆卸方式,奥运期间可作为实况转播工具,赛事结束后可用于租赁,作为演出、国家政策发布等公共场合应用工具,通过这种方式可尽快收回成本。
单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。
1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。
因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;
因此,专用单片机的发展自然形成了SOC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
单片机可以从以下几个方面分类:
1.按应用领域可分为:
家电类、工控类、通信类和个人信息终端类等。
2.按通用性可分为:
通用型和专用型。
3.按总线结构可分为总线型和非总线型。
4.按指令运行的振荡周期可分为标准型和改进型。
1.2意义
目前,单片机正朝着高性能和多种方向发展,其趋势将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展,其功能也将越来越丰富,速度也越来越快,甚至有些方面并不逊于ARM或DSP。
随着LED显示屏在广告传媒领域逐渐崭露头角,其控制系统也如雨后春笋,层出不穷。
由于它的控制系统均是基于嵌入式微处理器开发,所以单片机在其中也占有一席之地。
但是,由于LED显示屏控制较复杂,特别是对于显示特殊效果,如循环移动、覆盖霓虹灯效果,要求处理器运算速度快、执行效率高,所以很多控制卡生产厂家采用高端嵌入式系统进行设计。
这样做虽然能在一定程度上提高数据处理速度,但是并不能完全满足所有显示效果要求,而且开发和产品成本也会随之成倍增加,甚至由于其设计不当可能在显示时出现抖动、闪烁、重影等现象。
归根结底,LED显示屏控制卡的设计中硬件是一方面因素,同时还要考虑到显示数据组织方式,通过软硬件结合的方法才能设计出一款性价比较高的控制卡。
本论文提出基于普通51系列单片机实现LED显示屏控制的原理及方法。
2方案比较与论证
2.1设计任务与要求
本方案设计一个电子显示屏,具体要求满足以下条件:
1.要求采用51单片机作为微控制器;
2.通过四个16x16的点阵LED进行文字显示;
3.在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。
4.文字显示具有每排字有滚动和逐排等显示方式。
2.2方案比较与论证
四个8×
8的点阵构成一个16×
16的点阵。
行和列的交叉处有一个LED,共由256个LED构成,如果LED的阳极与行相连,而阴极与列相连,那么只要给该LED对应的行以高电平,列以低电平,那么对应的LED就发光。
图1画出了室内直插式8×
8点阵双基色LED模块实物图。
这种模块由64个发光LED芯片以8×
8的形式构成一个正方形模块,然后用2列8针引脚将内部电路接口引出,供驱动电路使用。
图1LED点阵显示原理图
行对应的给LED的阳极,先给第一行以高电平,如果送给16列的代码为EFFF,则第一行的第4个LED被点亮,再给第二行以高电平,如果送给16列的代码为EF07,则第二行的第4、9、10、11、12、13个被点亮,接着给第三行以高电平,同时给列以驱动代码,这样不断地进行行行的扫描,只要速度够快,由于人的视觉暂留作用,就不会感觉到明显的闪烁感。
点阵上会看到一个清晰的“机”字。
LED数码管结构简单,价格便宜。
本文所述的是LED的数据显示方式,这种方式通常使用8段LED或者16段LED。
在实际应用中,点亮LED数码管的方式有静态和动态2种方法。
本文以8段LED作为示例来论证方案
1.静态显示方式
静态显示方式,即8段LED数码管在显示某一个数码时,加在数码管上的段码保持不变,直至换显其他数码为止。
这样数码管的每一段均应由一条输出线来控制,每显示以为数码需要8根输出线,当N位显示则需N×
8根输出控制线。
占用较多I/O资源。
2.动态显示方式
为解决静态显示占用较多I/O资源的问题,在多位显示时通常采用动态显示方式,动态显示是将所有数码管的段码线对应并联在一起,由一个8位的输出口控制,每位数码管的公共端分别出一位I/O线控制。
显示不同数码时,由位线控制各位轮流显示。
位线控制某位选通时,该位应显示数码的段码同时加在段码线上,即每一时刻仅仅有一位数码管是被点亮的,当轮流显示的速度较快(每秒24次以上),由于人眼的视觉暂留现象,看起来就像所有位同时显示一样,这时,我们就能看到稳定的图像了
由于单片机的特性,我们将采用方案2:
动态显示方式,采用动态显示方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
2.3数据传输方案论证
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并出的移位功能;
对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
图2为显示屏电路实现的结构框图。
图2显示屏电路结构框图
3系统硬件设计
3.1总体电路框图
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。
如图3所示。
图3总体电路图
3.2单元电路设计
3.2.1单片机系统及外围电路
单片机采用89C-51或其兼容系列芯片,采用12MHZ或更高频率晶振,以获得较高的刷新频率,使其显示更稳定。
单片机的串口与列驱动器相连,用来送显示数据。
P1口低2位与行驱动器相连,送出行选信号;
P1.5~P1.6口则用来发送控制信号。
P0口空着,在有必要的时候可以扩展系统的ROM和RAM。
图489C51单片机最小系统
MSC51单片机管脚说明如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
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.2列驱动电路
列驱动电路由集成电路74HC595构成。
它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
图574HC595结构图表
74HC595的外形及内部结构如图5所示。
它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。
引脚SI是串行数据的输入端。
引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。
74HC595引脚说明见表1。
列驱动电路见图6。
表174HC595引脚说明
符号
引脚
描述
QA~QH
1~7
并行数据输出
GND
8
地
QH’
9
串行数据输出
/SRCLR
10
主复位(低电平)
SRCLK
11
移位寄存时钟输入
RCLK
12
存储寄存时钟输入
/G
13
输出有效(低电平)
SER
14
串行数据输入
VCC
16
电源
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。
RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。
引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。
SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。
由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。
但因为QH受输出锁存器的输入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。
将8片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。
这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输出位对应的场驱动管处于放大或截止状态;
同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭就取决于74HC595中的锁存信号;
此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整的文字或图像。
图6列驱动电路
3.2.3行驱动器
由于4个点阵显示器有16行,为充分利用单片机的接口,本电路中加入了2个译码器74HC164,其串行输入,解码输出为低态扫描信号。
8位串入、并出移位寄存器
74HC164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。
74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;
任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
图774HC164结构图
74HC164引脚说明如表2
表274HC164引脚说明
说明
DSA
1
数据输入
DSB
2
Q0~Q3
3~6
输出
7
地(0V)
CP
时钟输入(低电平到高电平边沿触发)
/M/R
中央复位输入(低电平有效)
Q4~Q7
10~13
正电源
图8行驱动电路
如图8所示的行驱动电路中,输入A、B在SCK时钟脉冲作用下移入寄存器。
A、B是与的输入,电路将其合并做一个输入,移位寄存器的最后一位输出Q7接入下一个74HC164的输入AB,组成16位移位寄存器。
就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出,即会有16路输出。
如果一行64点全部点亮,则通过74HC164的电流将达640mA,而实际上,74HC164译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74HC164每一路输出端与16x64点阵显示器对应的每一行之间用一个三极管来将电流信号放大,本文选用的是三极管8550。
这样,74HC164某一输出脚为低电平时,对应的三极管发射极为高电平从而使点阵显示器的对应行也为高电平。
位的输出经过三极管放大电流加到点阵共阳端,即做为点阵的行控制.
4系统软件设计
4.1总体软件框图
本文设计的系统软件能使系统在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
系统主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断和端口;
然后以“卷帘出”效果显示图形,停留约3s;
接着向上滚动显示“我爱单片机”这5个汉字及一个图形,然后以“卷帘入”效果隐去图形。
由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果。
单元显示屏可以接收来自控制器(主控制电路板)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容。
图9是系统主程序流程图。
图9系统主程序流程图
4.2各模块程序设计
4.2.1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=
×
溢出率=
其中fosc位晶振频率,t0为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前点亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据输入到输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图10为显示驱动程序(显示屏扫描函数)流程图。
图10显示驱动程序流程图
5系统调试与测试
5