您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于Arduino的一种电子显示屏控制系统设计
《学术论文写作》课程论文基于Arduino的一种电子显示屏控制系统设计姓名:学院(系):专业:自动化班级:学号:基于arduino的一种简易电子显示屏设计摘要:LED显示屏因其工作稳定可靠、寿命长、亮度高等优点,在许多场合中应用广泛。加强显示屏控制系统的可靠性研究意义重大。基于Arduino单片机,研究设计了一种新的电子显示屏控制系统。以PC机为上位机,向单片机发送显示代码和控制命令,单片机控制显示驱动模块驱动LED点阵显示屏进行扫描显示。PC机与单片机之间的通信采用ISP下载编程器来实现。利用按键模块通过单片机对显示屏的显示内容进行翻页和更新控制。关键词:显示屏;可靠性;Arduino;控制TheDesignofElectronicDisplayControlSystembasedonArduinoAbstract:LEDdisplaysiswidelyusedinmanyoccasionsbecauseofitsadvantagessuchasstable,reliableandlonglife.Itisofgreatsignificancetostrengthentheresearchofthereliabilityofelectronicdisplaycontrolsystem.HereintroducesanewkindofelectronicdisplaycontrolsystembasedonArduinomicrocontroller.SystemusesPCasuppercomputer.PCsendcontrolcommandsanddisplaycodeithasstoredtotheArduinomicrocontroller.AndarduinomicrocontrollerreceivesanddealswithcontrolcommandanddisplaycodewhicharefromPC.Thendrivesscandisplayofthedisplayscreen.CommunicationbetweenPCandthemicrocomputercanbeimplementedbyusingISPdownloadprogrammer.Atlast,pageandupdatethecontentwhichisdisplayedofthebillboardbyusingthekeymoduleandallisbasedonthesinglechipmicrocomputer.Keywords:electronicdisplay;reliability;Arduinomicrocontroller1.系统整体设计本系统硬件的设计采用模块化设计,既能满足模块本身功能又要能够和整个系统兼容,如图1.1所示。系统硬件由Arduino控制系统,显示扫描电路,显示屏,键盘扫描电路及数据传输部分以及上位机六部分组成。上位机通过数据传输部分向MCU系统发送显示代码和控制命令,MCU系统执行显示命令并将显示代码处理后控制显示部分的显示内容和显示方式。而按键也可以通过键盘扫描电路对显示进行控制。图1.1系统硬件组成框图2.控制系统设计控制系统的核心是Arduino单片机。Arduino是一个基于开放原始码的软硬件平台,具有使用类似Java、C语言的Processing/Wiring开发环境。ArduinoUNO是系列的一个版本。UNO的处理器核心是ATmega328,具有14路数字IO口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSPheader和一个复位按钮。选定一定数量的IO口作为控制口,控制外部的各种器件和数据的输出【2】。根据功能选择一定的单片机端口添加外围的器件,具体电路如图2.1所示。在该系统中,数字接口主要用作LED显示数据的行控制输出以及矩阵键盘的控制。具体接法为:矩阵键盘的x1、x2、x3、x4、y1、y2、y3、y4分别接10、11、12、A0、A1、A2、A3、A4接口,点阵模块的连接如图2.2所示。图2.1控制部分电路图图2.2点阵—单片机连接图3.驱动单元3.1行驱动单元译码电路的功能是为了解决单片机I/O端口不足。行译码所用器件为串并转换器74HC138和锁存器74HC573。四个138级联成8线-32线译码器,三级管Q1-Q16接显示屏H1-H8解决了显示屏供电不足的问题。锁存器573的Q3,Q7分别接138的G2B,G2A使能端,实现对138的使能控制,达到锁存功能,Q4,Q5,Q6分别接138的A,B,C端,A,B,C为138译码器的三个地址输入。具体电路如图3.1所示图3.1行驱动单元电路行译码采用的是芯片74HC138。如果不采用译码电路完全依靠单片机的端口输出来控制LED显示屏显示,需要很多个端口。而采用了译码电路后仅仅需要少量端口便可实现控制显示。大大减少了I/O口的占用数目,为单片机扩展其他功能预留下来了空间。74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)【4】。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。表174HC138集成译码器功能表3.2列驱动单元列驱动电路由74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,达到重叠处理的目的【5】。各管脚说明见表3-2。数据在SH_CP的上升沿输入,在ST_CP的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲【6】。移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线1。表3.274HC595管脚说明管脚编号管脚名说明1、2、3、4、5、6、7、15QA-AH三态输出管脚8GND电源地9SQH串行数据输出管脚10SCLR移位寄存器清零端11SCK数据输入时钟线12RCK输出存储器锁存时钟线1引用自《ATmega128通用实验板手册》13OE输出使能14SI数据线15VCC电源端工作顺序:单片机先送1个8位数据到第一个595的内部移位寄存器-然后数据会送到内部的输出寄存器-输出,当MR(10引脚)为高电平,OE(13引脚)为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。具体电路如图3.2所示图3.2列驱动单元电路3.3按键模块矩阵键盘用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个,它能够有效地提高单片机系统中I/O口的利用率。矩阵键盘的编程方法:(1)先读取键盘的状态,得到按键的特征编码。先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。使用上述方法我们得到16个键的特征编码。(2)根据按键的特征编码,查表得到按键的顺序编码。将16个按键的特征编码按照按键排列的顺序排成一张特征编码与顺序编码的对应关系表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它所在的位置就是对应的顺序编码。矩阵键盘电路如图3.3所示。图3.3矩阵键盘电路4.程序设计设计目标和硬件总体结构确定的情况下,软件可以分为主程序,通信程序,静态显示子程序,各种特效显示子程序,键盘控制程序等五个主要部分组成。具体结构如图4.1所示。图4.1软件功能结构框图4.1主程序系统软件采用C语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现静态显示,动态显示,按键控制三大功能。其通信程序接收上位机数据,交给主程序处理再通过控制程序选择不同的显示程序进行显示。主程序的工作流程如图4.2所示。静态显示程序特效显示程序主程序键盘控制程序通信程序图4.2主程序流程图4.2左移显示程序显示程序分为静态显示程序、左移显示2种种显示方式。其中左移程序调用了静态显示程序为子程序。显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第i列对应的行数据为数组中的第i和第i+16个元素。将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与0X01相与,所得结果通过单片机端口输出到串并转换器的A端,锁存在锁存器里完成一列数据移位后再将其输出。如此依次循环选通各列来显示所需画面。动态显示程序流程如图4.3所示,根据显示数据的存储原理通过改变实际LED列与数据逻辑列的方法来实现程序的左右移动。显示数据与列的对应关系为:第i列对应的数据为数组中i和第2×i个数据。显示数组中,第1至16个元素的第8至第1位LED显示屏中的第1至第8行。同理第17至32个元素的第8至第1位LED显示屏中的第9至第16行。所以将元素数据进行逻辑位移便能产生左移动的效果。图4.3左移程序流程图4.3矩阵按键程序的设计4*4矩阵键盘有8个引脚,4个一组,分别对应行和列,通过按键扫描的方法,对不同行(列)分别输入高低电平,然后读取不同列(行)上的电平,从而知道键盘上的某一按键按下。例如,当第1行输出低电平,其他行输出高电平,分别读取依次列上的状态,如果第1列为低,结果为(1,1),按键为1,如果第2列为低,则结果为(1,2)按键为2。5系统调试对矩阵键盘进行调试,利用简单的控制程序测试矩阵按键是否能控制13号数字接口上的LED等的亮灭。发现有时控制不了,说明焊接存在虚焊情况,然后及时补救,将觉得可能虚焊的点又重新焊了一次,再次测试,没有问题了。然后矩阵按键与单片机的连接进行了检查,方法是接入电源试运行,发现有时运行不稳定,说明接线有时会存在接触不良现象,于是换用了插口比较紧的接线,也解决了这一问题。在软件调试过程中,配合对应硬件电路单独运行某程序功能块,检查是否正确,发现有开始读入显示数组显示显示数组元素逻辑左移一位移位次数是否为16NY些模块执行结果和预想的不一致,于是通过单步运行以及设置断点等方法,找到原因并加以改正,最终得到正确的运行结果。6.结语为了在传统设计的基础上增强电子广告屏系统的可靠性,基于Arduino为核心,以串并转换器74HC138和锁存器74HC573为行驱动器,串并转换器74HC138和锁存器74HC573为列驱动器,以4×4矩阵键盘为控制键盘重新设计一个电子显示屏控制系统,通过上位机软件将控制代码和显示代码发送到Arduino单片机中,然后由Arduino单片机和矩阵键盘控制电子显示屏的显示。通过实践,本控制系统的稳定性、实时性及易操作性能够满足电子显示屏的显示要求。引用文献:[1]张校珩.单片机C语言编程100例[M].北京:中国电力出版社,2014.01:56~57.[2]戴禄君,刘战峰.基于单片机的LED点阵显示系统的设计[J].计算机与数字工程,2014:735~736[3]张耿,张晶.基于Arduino的电子广告牌设计[J].信息通信,2014,3:46~47[4]赵龙,郝润科,王磊,邱银,胡骞.基于单片机的数字式智能饮水机设计[M].现代电子技术,2012,17:112~113.[5]顾晓莉,杨少萍,张萌萌,范涛,刘占杰.基于8051微控制器的广告牌设计[J].大众科技,2011:35(10):112~115.[6]杜树春.基于Proteus和KeilC51的单片机设计与仿真[M].北京:电子工业出版社,2012:78~79.
本文标题:基于Arduino的一种电子显示屏控制系统设计
链接地址:https://www.777doc.com/doc-2533426 .html