基于单片机16X16点阵显示系统的设计与研究_第1页
基于单片机16X16点阵显示系统的设计与研究_第2页
基于单片机16X16点阵显示系统的设计与研究_第3页
基于单片机16X16点阵显示系统的设计与研究_第4页
基于单片机16X16点阵显示系统的设计与研究_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、编号: 毕业设计说明书 题 目: 点阵显示系统 的设计与实现 学 院: 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师单位: 信息对抗系 姓 名: 职 称: 副教授 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2014年 5 月 20 日摘 要随着社会现代信息技术的发展,视觉信息传播媒体的显示技术和产品得到了迅速发展。平板显示技术将会作为二十一世纪的主流技术,而作为平板显示技术主导产品之一的LED显示屏无疑会有更大的发展空间。本文设计与实现了一个以STC12C5A60S2单片机为主控制器的LED点阵显示屏系统。系统主要包括:串口通信模块、STC12C

2、5A60S2单片机处理模块、74HC595驱动控制点阵模块、DC12C887时钟芯片模块、按键控制模块以及点阵显示模块。该系统可实现中英文字符动态滚动显示和实时(包括日历、星期、时分秒)滚动显示等功能。 系统采用PC机作为上位机,由上位机向单片机发送控制命令和上位机所存储的显示数据,STC12C5A60S2单片机接收并处理PC机的控制命令以及显示数据,通过由4块74HC595串并转换芯片级联而成的驱动模块驱动一个1616分辨率的LED点阵显示屏的扫描显示。单片机与PC上位机之间的串口通信是采用RS232C通信标准来实现。另外,系统通过88点阵级联的方式来扩大显示屏幕的尺寸来达到增加显示内容的目

3、的。系统中所选用的STC12C5A60S2单片机不仅具有强抗干扰和静电作用,而且具有高速可靠、价格低廉、程序写入方便的特点。除此之外,系统添加了74HC595外围驱动电路之后,单片机的内存和I /O口占用数量大大减少了,为单片机最小系统留下了其它功能扩展的空间。关键字:STC12C5A60S2;LED点阵显示;串口通信;74HC595驱动AbstractWith the social development of modern information technology, visual information media display technology and products has

4、 been developing rapidly. Flat panel display technology as a twenty-first century will be the mainstream technology, and as one of the leading products of flat panel display technology LED display will undoubtedly have more room for development.This paper design and implementation of a microcontroll

5、er-based controller with STC12C5A60S2 LED dot matrix display systems. The system includes: serial communication module, STC12C5A60S2 microcontroller processing module, 74HC595 drive control dot matrix module, DC12C887 clock chip module, key control module and dot matrix display module. The system ca

6、n be realized in English characters and real-time dynamic scrolling display (including calendar, week, minutes and seconds) scrolling.System uses a PC as the host computer, the host computer sends control commands and display data stored by PC to the microcontroller .STC12C5A60S2 microcontroller rec

7、eives and processes the control commands and display data from PC then by the four 74HC595 serial to parallel conversion chip cascade scanning from the driver module to drive a 16 16 resolution LED dot matrix screen display. MCU and PC serial communication between the host computer using RS-232C com

8、munication standard to achieve. In addition, by 8 8 matrix system cascade way to expand the size of the display screen of the display to achieve the purpose of the increase.The characteristics that STC12C5A60S2 chosen microcontroller with high-speed, reliable,and strong anti-static, interference and

9、 inexpensive price, program writing and convenient features makes chosen in this systerm. In addition,the system adds 74HC595 peripheral drive circuit, microcontroller memory and I / O ports occupied by greatly reducing the number for the smallest single-chip system leaves room for other extensions.

10、Key words: STC12C5A60S2; LED dot matrix display; serial communication ;74HC595 drive目 录引 言51 设计要求61.1 毕业设计题目61.2 设计的主要功能62 系统工作原理和系统结构63 硬件设计83.1 系统总电路图83.2 控制与数据处理模块83.2.1STC12C5A60S2介绍93.3 串口通信下载模块113.4 驱动电路模块123.4.174HC595介绍143.5 点阵显示模块153.6 时钟芯片模块173.6.1DS12C887介绍184 系统软件设计194.1 Keil uVision 4软件

11、介绍194.2 系统主程序的设计204.3 LED显示模块程序的设计214.4 时钟模块程序的设计255 系统调试265.1 调试环境与工具265.2 16x16点阵的测试275.3 单片机STC12C5A60S2的测试275.4 上电测试285.5 联合调试流程285.5.1电路连接运行步骤285.5.2主要的调试功能295.5.3遇到的问题及解决方法295.5.4调试的结果306 结论30谢 辞31参考文献32附 录33引 言LED显示屏是上世纪八十年代后期在全球迅速发展起来的新型信息显示媒体,它是由几万到几十万个半导体发光二极管像素点均匀排列组成。而且,不同色彩的LED像素点可以通过利用

12、不同的材料制造。目前市场广泛应用的色彩包括红色、绿色、蓝色、黄色等,而红色和纯绿色LED显示屏在现社会已经是通用阶段。LED显示屏不仅可以显示变化的数字、文字、图形图像,还可以用于室内环境和室外环境的显示,具有投影仪、电视墙、液晶显示屏无法比拟的优点1。 在这几十年的蓬勃发展中,LED点阵显示屏本着功耗小且亮度高,耐冲击且寿命长,小型化和性能稳定的优势已经发展为平板显示的主导产品,并在信息显示领域得到了广泛的应用。在目前的信息显示技术发展中,LED发展正朝着亮度和发光密度更高,发光均匀性和耐气候性更稳定,性能操作和像素着色化更可靠的方向发展。随着社会经济的发展,LED显示屏涉及了越来越多的应用

13、领域,主要包括:(1)证券交易公司金融信息显示。(2)机场航班动态信息显示。(3)港口、车站旅客引导信息的显示。(4)体育场馆信息显示。(5)道路交通信息显示。(6)公交车站点信息显示。(7)银行、通信、电商购物中心等服务领域的业务宣传及信息显示。(8)广告媒体新产品发布信息显示等2。 本课题设计使我们能够掌握LED显示屏的基本显示原理和设计方法,对LED显示屏的行业发展有了较为深刻的了解和认识。并且让我有效地结合大学期间所学理论知识进行了实践操作,使我认识到了自己在知识方面的局限性。通过该设计课题,我掌握了STC12系列单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工

14、作经验。现阶段正是我国信息行业的迅速发展阶段,而作为平板显示媒介主导产品的LED显示屏的应用也越来越广泛,相关技术的从事人才也面临越来越紧缺,而且我国的LED显示技术仍和世界的先进水平还有相当大的差距。因此,此课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实与积极的意义。 1 设计要求1.1 毕业设计题目 点阵显示系统的设计与实现1.2 设计的主要功能 本设计是PC机为上位机,STC12C系列单片机为控制核心,两者通过串口通信,外加外围驱动电路来实现LED点阵显示系统的设计与实现,系统主要功能如下:(1)LED显示屏的面积必须满足至少显示一个汉字的标准,并且显示要清晰;(2)可

15、以实现中英文字符循环切换显示;(3)实现滚动显示;(4)可以实时显示(包括日历,星期,时分秒);(5)通过系统按键来控制系统显示操作。2 系统工作原理和系统结构 根据本次设计系统要求,本课题是基于单片机的点阵显示系统的设计与实现,系统主要分为六个模块,包括:串口通信模块,STC12C5A60S2单片机处理模块,74HC595驱动控制点阵模块,DC12C887时钟芯片模块,按键控制模块以及点阵显示模块。 系统总体结构框图如图2-1所示。图2-1 系统总体设计框图(1)串口通信模块 系统采用PC机作为上位机,STC12C5A60S2单片机作为下位机,二者通过CH340将PC机的USB口转成RS23

16、2的串行口接收或上传数据。单片机部分的程序采用C语言编程,用KeiluVision4编译后产生HEX文件下载到单片机内,从而实现数据收发。另外,PC端需要采用串口调试助手(STC-ISP)软件把控制命令和显示代码下载至单片机数据处理模块中。(2)单片机处理器模块系统采用STC12C5A60S2单片机芯片作为本设计的核心处理模块,主要负责对其它模块部分进行数据处理和控制外围电路来实现点阵显示屏工作。(3)74HC595移位寄存器驱动控制模块 该模块由4块串并转换芯片74HC595通过级联的方式组成一个驱动控制模块,主要利用其具有数据串行输入和并行输出这一特性对16x16点阵显示屏模块进行列和行驱

17、动扫描显示。 (4)DC12C887时钟芯片模块 在本系统中,时钟芯片模块的作用是获取时间(包括日历,星期,时分秒)通过单片机系统读取处理再控制点阵显示模块进行实时显示。(5)按键控制模块 系统可以通过按键模块,实现可以调节点阵显示模块的字幕滚屏速度快慢操作,切换字幕滚动和实时滚动操作,同时可对系统复位操作。(6) 点阵显示模块该模块由4块8x8子点阵模块通过级联的方式构架成一个16x16的点阵显示屏模块,这样点阵方可达到完整显示一个汉字的尺寸,主要负责实现字幕滚动和实时滚动显示功能。3 硬件设计3.1 系统总电路图 系统主要由STC12C5A60S2单片机和两个独立功能按键构成控制与数据处理

18、模块;由拨动开关供电和max232,DB9串口母头构成下载模块;由DC12C887构成时钟芯片模块;由四块74HC595芯片和由用于稳压限流的8050三极管和上拉电阻构成驱动电路模块;由4块8x8LED点阵级联构成一块16x16的LED点阵显示模块几部分组成。系统总电路图如图3-1所示。图3-1 系统总电路图3.2 控制与数据处理模块控制与数据处理电路设计采用了由STC12C5A60S2单片机芯片以及其它元件构成的单片机最小系统(指单片机可以实现的最小配置工作系统)部分作为设计的主要控制和数据处理模块。STC12C5A60S2单片机的最小系统包括了单片机芯片、复位电路和晶振电路,选定一定数量的

19、IO口作为控制口控制外部的各种器件和数据的输入输出。根据设计功能要求选择一定的单片机端口添加外围器件的电路,比如:通过外接端口连接外接按键模块电路可实现控制点阵显示系统动态显示的滚屏速率,切换显示,复位显示操作;还有74HC595驱动模块电路、DS12c887时钟芯片模块电路和16x16点阵显示屏模块电路,下文会具体分析这几个模块电路,控制与数据处理电路模块如图3-2所示。图3-2 控制与数据处理模块电路3.2.1 STC12C5A60S2介绍STC12C5A60S2单片机是美国STC公司最新推出的一种STC系列新型51内核的单片机。它是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码

20、完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合3。 单片机的主要性能、功能参数如下:(1) 增强型8051CPU,1T(1024G),1280字节RAM,工作电压 3.5-5.5V,单时钟/机器 周期;(2) 内部集成MAX810专用复位电路,外部掉电检测电路,2路PWM,有EEPROM、看门 狗功能;(3) 通用I/O口,通用全双工异步串行口(UART)复位后为:准双向口/弱上拉,可设 置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯

21、片最大不要超过120mA;(4)时钟源:外部高精度晶体/时钟,内部R/C振荡器,常温下内部R/C振荡器频率为: 5.0V单片机为:1117MHz,3.3V 单片机为:812MHz;(5)4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1;(6)3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1 输出时钟,独立波特率发生器可以在P1.0口输出时钟;(7)外部中断I/O口7路,传统的下降沿中断或电平触发中断,并新增支持上升沿中 断的PCA模块,Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3, T0/

22、P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3,CCP0/P1.3;(8)A/D转换,10位精度ADC,共8路,转换速度可达250K/S;(9)双串口:RxD2/P1.2和TxD2/P1.3;(10)工作范围:-40-85;(11)封装:LQFP-48,LQFP-44,PDIP-40,PLCC。管脚说明如下:(1)P0.0-P0.7 P0口:作输入/输出口,还可以作为地址/数据复用总线使用。当P0口 作为输入/输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电 阻;当P0作为地址/数据复用总线使用时,是低8位地址线A0-A7,数据线D0-D7;(2)P1.0/A

23、DC0/CLKOUT2:标准IO口/ADC输入通道0/独立波特率发生器的时钟输出;(3)P1.2/ADC2/ECI/RxD2:标准IO口/ADC输入通道2/PCA计数器的外部脉冲输入脚/第 二串口数据接收端;(4) P1.3/ADC3/CCP0/TxD2:外部信号捕获/高速脉冲输出及脉宽调制输出/第二串口数据 发送端;(5)P1.4/ADC4/CCP1/SS非:SPI同步串行接口的从机选择信号;(6)P1.5/ADC5/MOSI:SPI同步串行接口的主出从入(主器件的输入和从器件的输出);(7)P1.6/ADC7/SCLK:SPI同步串行接口的主入从出;(8)P2.0-P2.7:P2口内部有上

24、拉电阻,既可作为输入输出口(8位准双向口),也可作 为高8位地址总线使用;(9)P3.0/RxD:标准IO口/串口1数据接收端;(10)P3.1/INT0非:外部中断0,下降沿中断或低电平中断;(11)P3.3/INT1/P3.4/T0/INT非/CLKOUT0,定时器计数器0外部输入、定时器0下降沿中断、定时计数器0的时钟输出。 单片机STC12C5A60S2芯片4引脚图如图3-3所示。图3-3 STC12C5A60S2引脚图3.3 串口通信下载模块由于STC12C5A60S2单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地通过下载模块进行串口通信。进行串行通讯时需要满足一定

25、的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,所以两者之间必须有一个电平转换电路,系统采用了MAX232专用芯片进行电平转换,该模块采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第2脚的RXD、第3脚的TXD、第5脚的GND即可。电路如图3-4所示,MAX232的第9脚和单片机的10脚连接,第10脚和单片机的11脚连接。通过外接电源接入电源部分接口提供的+5V电压供电,有源晶振输入时钟,单片机处理模块能够正常工作;通过个人电脑连接PCDB9串口母头下载口,可实现程序的下载并支持在线调程序,但是调试需要借助串口调试助手等Window软件来观察5。

26、图3-4 串口通信模块图3.4 驱动电路模块由于16x16点阵显示屏具有16行和16列共32个引脚,即需要单片机的32个I/O端口输出控制,如果系统完全依靠一块单片机的I/O端口输出控制1616的LED点阵屏显示,这明显是本系统采用的单片机不能够实现的。因此,本设计采用了4块移位寄存器74HC595通过级联的方式构成驱动电路模块控制16x16点阵显示屏的行、列扫描显示来解决这个问题,本模块采用了74HC595芯片构成的驱动电路后仅仅用到单片机的3个I/O端口便可实现控制点阵模块的动态扫描显示,从而大大减少了单片机I/O口的占用数量,为单片机扩展其他功能(比如加入外围时钟芯片模块电路)预留下了空

27、间6。74HC595驱动电路模块如图3-5所示。图3-5 驱动电路模块图 由上图可以看到该模块中,只用到74HC595的14、11、12脚分别与单片机的I/O口P20、P21、P22脚连接即能解决单片机端口不足的问题。而利用595第9脚串行数据输出管脚与其它595第14脚串行数据输入管脚连接的方式把4块595级联成一个模块来分别驱动16x16点阵的行扫描和列扫描显示。如果直接用595的O0-O7脚连接点阵管脚进行驱动行扫描显示,由于电路内部结构不平行会导致595各管脚输出电流不均匀,而且点阵的行扫描是利用高电平有效和列扫描利用低电平有效来触发点阵各像素点亮灭的,从而会导致点阵各点显示亮度不均匀

28、以及亮度不够现象。为了达到驱动点阵行扫描的2块级联595并行数据输出管脚输出能力提高并稳流的情况,需要引进由8050三极管和1K电阻构成上拉驱动稳流模块与这2块级联595并行数据输出管脚连接。由于点阵列扫描是低电平有效这一特性,故另外两块级联595的并行数据输出管脚只需分别接1K电阻对其进行限流即可,具体电路如图3-6所示。图3-6 稳流电路图3.4.1 74HC595介绍74HC5957是一款典型的兼容低电压TTL电路,遵守JEDEC标准的串并转换芯片。74HC595具有8位移位寄存器和一个存储存储器,并且具备三态输出(具有高电平、低电平、高阻抗三种输出状态的门电路)功能。移位寄存器和存储存

29、储器是相互独立的时钟触发器,数据在SHCP(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STCP(存储器时钟输入)的上升沿输入到存储寄存器中去。当两个时钟触发器连在一起时,移位寄存器总是比存储寄存器早一个脉冲。移位寄存器还有一个串行移位输入(Ds),一个串行输出(Q7)和一个异步的低电平复位,存储寄存器有一个具备三态输出的并行8位,要使存储寄存器的数据输出到总线,则使能OE应置低电平。引脚功能说明如下:(1)Q0-Q7:8位并行数据输出管脚,其中Q0是第15脚;(2) GND:第8脚 接地管脚;(3)Q7:第9脚 串行数据输出管脚; (4) MR:第10脚 主复位(低电平)管脚; (5)

30、 SHCP:第11脚 移位寄存器时钟输入管脚; (6) STCP:第12脚 存储寄存器时钟输入管脚; (7) OE:第13脚 使能端输出,低电平有效; (8) DS:第14脚 串行数据输入管脚; (9) VCC:第16脚 电源管脚。 74HC595引脚图如图3-7所示:图3-7 74HC595引脚图 3.5 点阵显示模块LED点阵显示屏是由一个个相连的发光二极管构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来,如图3-8所示。二是选用一些同样是由单个发光二极管构成的小尺寸LED点阵模块来构成尺寸较大的LED点阵模块。目前市场

31、上普遍采用的点阵模块有88、1616、1632等几种;这两种屏幕构成方式各有优缺点,单个发光二极管构成所需尺寸的LED显示屏优点在于当单个发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而采用小尺寸点阵模块构成大尺寸点阵模块的构成方式却与第一种方式的优缺点正好相反,模块化的构成方式大大节省了复杂的线路连接,不过当一个发光二极管出现问题时整个点阵子模块都必须被更换掉,这就增加了维修的成本8。两种方法相比较,再结合本次课题设计的系统所采用的芯片和元器件因素决定采用模块化的构成方式来制作一块LED点阵显示屏。为了避免模块构成方式的缺点,需要尽量选择级数较小的点阵作为

32、子模块来减小出现这一缺点的风险。所以本系统需要构建一个1616的LED点阵显示屏选用了四块88点阵子模块构成。图3-8 LED点阵图 同时,本设计是用点阵的方式显示字符,要显示汉字或字符则需要用到字模,字模就是汉字或英文字符在点阵上显示时对应的编码。以字模的方式存储图形或者文字,每一个点都需要一个位来存储,该位为0代表该像素点不显示,为1代表显示,即利用点阵的每个像素点行高电平有效而列是低电平有效来点亮的。这样,一个字节就可以存储8个像素点的显示情况。一般采用宋体小四号的字符来做显示,这样一个英文字符刚好占8x16个像素;而汉字需要两倍,即16x16像素来显示一个汉字。这样,存储一个英文字符每

33、行8个点需要1个字节存储,一共16行需要16个字节, 同理一个汉字需要32个字节9。 课题要求显示部分包括了一块至少可以显示一个汉字的显示屏,故本系统显示模块是1块由4块8x8点阵子模块构成16x16的点阵模块以及驱动该显示屏的驱动电路。由于单片机的I/O口有限不能直接用其I/O口来驱动LED显示屏,所以需要引进上面所述的由4块74HC595通过级联方式组成的驱动电路模块直接驱动LED显示屏来解决单片机端口不足的问题。点阵级联方式具体电路连接如图3-9所示。图3-9 16x16点阵模块图3.6 时钟芯片模块该模块采用的实时时钟芯片是DS12C887,这种实时时钟芯片具备年、月、日、星期、时、分

34、、秒计时功能和多点定时功能,计时数据的更新属于每秒自动进行一次,不需要程序干预。DS12C887时钟芯片是一款纯数字式的芯片,接线时,它只需要与单片机的I/O口直接相连就可以正常操作。操作DS12C887时钟芯片共需要13条接线,分别是并行数据地址复用线AD0-AD7、CS、AS、R/W、DS和IRQ。然后将RESET引脚固定接高电平,MOT引脚固定接GND,再将DS12C887芯片的VCC和GND引脚正确连接即可10。具体电路连接如图3-10所示。图3-10 DS12C887电路连接图3.6.1 DS12C887介绍DS12C88711是由美国Dallas半导体公司推出的一款采用CMOS技术

35、制成,具有内部晶振和时钟芯片备份锂电池并行接口的实时时钟日历芯片,同时它可与计算机常用的时钟芯片DS1302和MC146818的管脚兼容,甚至可直接替换。采用DS12C887芯片设计的时钟电路不需要其它外围电路和器件,并且具有良好的微机接口效果。除此之外,DS12C887芯片具有极低功耗,简单的外围接口,较高的运算精度,运行稳定可靠等优点,广泛应用于精度较高的实时时钟系统中。DS12C887芯片主要性能介绍如下:(1)芯片内置锂电池,断电后可以独立运行十年以上数据不丢失;(2)计年、月、日、星期、时、分、秒,并有闰年补偿功能;(3)日历、时间和闹钟设定可用二进制码或者BCD码表示;(4)可以自

36、行设置24或12小时制,而且是具有PM和AM指示的12小时制时钟模式, 并且具有夏令时功能;(5)有Motorola和Intel两种总线时序可供选择;(6)有128字节的软件接口单元和RAM单元,其中包括时钟和控制寄存器的12字节和 通用RAM的114字节,并且所有RAM单元数据都具有掉电保护功能;(7)可编程方波信号输出;(8)可分别进行测试或软件屏蔽周期性中断、时钟更新周期结束中断和定闹中断,而 且中断信号输出(IRQ)和总线兼容。 DS12C887时钟芯片管脚说明如下:(1)A0-A7:复用地址/数据总线总线采用了时分复用技术,在总线的前半个周期,AD0AD7上出现的是地址信息,此时可用

37、作片内RAM的选通;而要使AD0AD7上出现的是数据信息则需要在总线的后半个周期。(2)MOT:模式选择引脚 需要选用Motorola工作模式时,MOT需要接VCC;需要选用Intel工作模式时,MOT需要接GND,本系统采用了Intel工作模式。(3)AS:地址选通输入引脚 在进行读写操作时,使AD0AD7上地址信息锁存到时钟芯片上的是AS出现上升沿,而使AD0AD7上的地址信息被清除是在AS开始下降沿的时候,但此操作不管是否有效,时钟芯片都执行。(4)DS:读允许输入脚该引脚是读(RD)允许信号输入端,即Read Enable。当DS所置电平有效时,时钟芯片会向总线输出数据。RD信号线在存

38、储器芯片上又被用作使能信号线。(5)R/W:读/写输入端该引脚用作写允许输入时,即写(WR)信号输入端。此时,选用的是Intel工作模式。(6) /CS:片选输入,低电平有效(7) /IRQ:中断请求输入,低电平有效,中断请求输入时不会影响时钟芯片内的日历、 星期、时钟和RAM单元的内容,仅仅影响芯片内部的控制寄存器。(8) RESET:复位端。很多典型的设计中,为了使时钟芯片内部控制寄存器在芯片掉电 时不受影响,通常采用RESET接Vcc端。4 系统软件设计4.1 Keil uVision 4软件介绍 Keil uVision 412是美国Keil Software公司在09年推出的基本完全

39、兼容51系列单片机芯片的C语言整合发展环境(IntegratedDevelopmentEnvironment,IDE),由于窗口管理系统的灵活引入到Keil uVision4,使得编程人员可以同时使用多台监视器,并在视觉上提供了语言环境桌面对窗口位置可以控制在任何地方。该版本在原用户界面基础上的创新使得屏幕空间更有效地利用和多个窗口更有效地组织,为应用程序开发用户提供了一个整洁,高效的环境。而且这个版本能够支持更多类型的ARM芯片,并添加了一些其它功能。同时,ARM公司在2011年3月推出的最新集成开发环境RealView MDK开发工具集成了最新版本的Keil uVision4。Keil u

40、Vision4的编译器和调试工具都完美匹配了绝大多数类型的ARM芯片。C语言与汇编语言相比较,可看出前者无论在功能和结构性上,还是在可读性和可维护性上都有着明显的优势,大多数编程用户在用过汇编语言后再使用C语言开发,能更加深刻地体会到C语言的易学易用性。Keil C51软件13使用了全Windows操作界面,并且它还包含了功能强大的集成开发调试工具以及丰富的库函数。除此之外更重要的是,从Keil C51软件编译后生成汇编代码的速率可以看到其生成的目标代码效率之高,并且大部分语句生成的汇编代码很紧凑而不杂乱,让用户一目了然,容易理解。Keil C51软件的工具包结构齐全,其中uVision和Is

41、heU分别是C51 for Windows和for Dos的集成开发环境(IDE),两种环境都可以实现编辑、编译、连接、调试、仿真等整个开发流程。首先C或汇编源文件可以通过IDE本身或其它编译器编辑,然后其目标文件(.OBJ)可分别通过C51或A51编译器编译生成,再利用LIB51把目标文件创建生成库文件,同时经LIB51连接定位把目标文件和库文件一起生成绝对目标文件(.ABS),最后通过OH51把绝对目标文件转换成标准的Hex文件来供软件调试助手STC-ISP进行源代码级调试以及烧录。其它调试方法还有利用仿真软件直接对目标硬件系统仿真调试,还可以把目标程序直接写入存储器(如EPROM)中。4

42、.2 系统主程序的设计本系统软件编程环境采用C语言编写,按照模块化编程的思路设计,即是将一个大的整体程序划分为若干个小的子程序部分,且每个子程序功能模块都具有其相对的独立性,主程序与子程序模块之间通过函数调用的方式相关联。这种模块化的编程方式有助于程序的调试、修改和维护,并且思路清晰有条理,便于阅读。本系统软件设计采用C语言作为编程语言,其最大的优点就是程序结构清晰、移植性好,可读性强。软件设计涉及到的环境如下:PC机操作系统环境为Windows 7,单片机开发平台为keil uVision,程序下载软件为STC_ISP_V6.63。首先分析程序所要实现的功能,整个程序主要围绕着实现LED显示

43、屏动态显示这个功能,其中动态显示包括中英文的动态显示和实时动态显示两大功能。主要是通过通信程序接收上位机显示数据,交给主程序处理再通过控制程序选择不同方式的显示程序进行调用显示。主程序工作流程图如图4-1所示。结束图4-1 主程序工作流程图4.3 LED显示模块程序的设计 LED点阵屏显示方式主要由静态显示和动态扫描显示两种。 (1)静态显示 工作原理是通过驱动电路向每个发光二极管输入画面对应的数据帧后以达到的显示效果,只有重新输出新的点阵数据才能改变静态显示内容。这种方式的优点是系统原理相对简单,但在硬件设计中所需的译码驱动电路装量很大,接线也多且繁杂,导致其可靠性低而成本高,故不利于大屏幕

44、的制造。具体程序工作流程如图4-2所示。 结束图4-2 静态显示流程图 (2)动态扫描显示14 这种显示方式是把整个LED显示屏分成若干个部分,每一幅画面的显示是显示完第一部分后,又显示第二部分,如此下去,直到显示完最后一部分又重新开始显示第一部分,重复循环显示。在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面。也就是说采用动态扫描显示需要不断进行画面的刷新,在这种方式下其显示驱动电路可重复利用,从而引线大大的减少了,这样即可使硬件成本降低,且屏幕上的发光二极管轮流发光,使用的时耗电量也大大降低,可靠性也就得到大幅度提高,所以对于大屏幕的制造和维护更简单可行。两种显示方式的比较再结合

45、51单片机I/O端口数量有限等因素决定本系统采用动态扫描方式进行显示。对于动态滚动显示,本模块程序的编写由于左右移动原理相同故只涉及了字幕左移滚动显示程序的编写。动态滚动原理是根据行列显示数据的逻辑关系存储原理,即通过改变实际LED列扫描与选通逻辑数据列的方法来实现显示内容的左右移动。要想达到移动的效果则每次响应中断扫描时当前列扫描显示数据与逻辑数据列的对应关系为:第i列对应的数据为第i+1列对应的数据。所以当74HC595输出时,只是向点阵的第i列送入了i+1列的数据则相当于画面向左移动,同理向点阵第i列送入第i-1列数据相当于右移一位,如此循环则产生一幅稳定运动的画面。本次系统设计的动态显

46、示方式是左移动态显示,具体程序工作流程如图4-3所示。结束图4-3 动态显示流程图 动态显示模块的核心程序如下:void T0_time() interrupt 1 /定时器/计数器0中断 TH0=(65536-12000)/256; / 1ms进一次中断刷新显示一列 TL0=(65536-12000)%256; if(flag=1) /显示时间代码 Input(outdataL+x&0xff); /对列输入字模数组中的第L+x个数 Input(outdataL+x+1&0xff); /对列输入字模数组中的第L+x+1个数 Input(table_HH); /对行输入字模数组中的第H个数 In

47、put(table_HH+1); /对行输入字模数组中的第H+1个数 Output(); L+=2; H+=2; if(H=32) H=0; L=0; ; t+; if(t=speed) t=0;x=x+2; /为滚动设置逻辑参数if(x16) r+;if(r=6) r=0;x=0; else /显示汉字代码 Input(table_LL+x); Input(table_LL+x+1); Input(table_HH); Input(table_HH+1); Output(); L+=2; H+=2; if(H=32) H=0; /重新扫描点阵 L=0; ; t+; if(t=speed) t

48、=0;x=x+2; if(xm-32)x=0; /字幕扫描结束 显示驱动程序在进入中断后首先要对定时器T0重新赋初值以保证显示屏刷新率的稳定,1/16扫描的显示屏的刷新率(帧频)的计算公式10如下: 其中fosc为晶振频率,t0为定时器T0初值(工作在16位定时器模式)。4.4 时钟模块程序的设计进入主程序后,首先对DS12C887进行初始化,当其寄存器串行口存入数据时,则通过单片读取处理时钟芯片获取的时间、日期信息,再通过调用显示函数把时间、日期信息通过LED点阵显示屏显示出来,如此重复进行。本模块程序包括对DS12C887写时序、读时序的函数和对DS12C887初始设定时间(程序详见附录)

49、,需要注意的是,由于时钟芯片自带内置电池,系统断电后时钟芯片仍会自动更新时间,所以在程序中只需运行设定时间一次便可标为注释,不然每次运行都只会显示初始设置的时间15。时钟模块程序工作流程如图4-4所示:图4-4 时钟模块程序流程图5 系统调试5.1 调试环境与工具调试所需要的软件环境有:Keil uVision 4 程序编写软件和STP-ISP-V6.63串口调试助手。调试所需要用到的工具有:STC12C5A60S2单片机,一块DS12C887时钟芯片,4块74HC595芯片,一个5V开关电源,一根下载线和34根杜邦线。5.1.1STC_ISP_V663软件的使用编写好程序后,则需要STC_I

50、SP_V6.63软件进行烧录工作,即把编译成功后的程序下载到单片机中处理。其中需要注意的有2点:第一点是需要在单片机型号中选择相应的单片机芯片型号;第二点是要在串口号中选择下载线把硬件系统与上位机连接对应的COM口。在设置好各个参数后,点击下载/编译便可进行下载,并观察右边的空白处,看看是否达到了预期的效果。具体操作结果如图5-1所示。图5-1 串口调试助手操作图5.2 16x16点阵的测试本设计主要是设计点阵显示系统的设计,所以首先要测试点阵模块能不能正常工作即测试点阵是否有坏点。这个不难,主要是利用编程器写程序通过单片机和595驱动系统控制点阵管脚把所有点阵像素点点亮即可验证。5.3 单片

51、机STC12C5A60S2的测试单片机是本系统中最主要的中央处理器模块,该芯片模块是否能正常运行决定了系统设计是否能实现之关键。所以必须测试单片机芯片是否损坏和单片机最小系统是否能正常运行。首先,确定单片机没有损坏,利用Keil编程器和串口调试助手对单片机进行程序的下载和清除都能成功,并且通过校验即可确定单片机没有损坏。其次,要测试单片机最小系统是否能正常工作主要是测试其晶振电路是否正常工作即可。具体方法是给单片机最小系统上电后,用万用表给检测晶体振荡器两端的电压,如果电压为2V左右,说明晶振电路供电正常。然后用示波器观察晶体振荡器两端的输出波形,如果能产生稳定的脉冲波形即可说明晶振电路工作正

52、常。5.4 上电测试由于硬件系统的调试的环境是采用杜邦线接5V直流电源,由于单片机系统,时钟电路,驱动电路的电源电压均要求5V,所以可以同时对硬件系统输入。给系统上电后,首先要认真观察电路以及各元件是否有过热,异味,冒烟等现象出现。经过观察,在没有这些现象出现之后。再利用万能表测试各芯片器件的电源、接地以及端口电平是否为固定值的电压。测试的结果应为:各芯片器件电源端在4.2V4.8V之间满足器件的电源电压要求,单片机端口在未接负载时端口电压为4.5V。5.5 联合调试流程5.5.1电路连接运行步骤(1) 用32跟杜邦线把16x16点阵模块与单片机控制模块连接起来构成整个点阵显示系统硬件模块。(

53、2) 用2根杜邦线把点阵显示硬件系统与5V直流电源连接,暂且不需要按下电源开关给硬件系统供电。(3) 用下载线把硬件系统与PC上位机连接好,打开串口调试助手,选好下载线接上位机的驱动端口和单片机芯片类型。(4) 利用串口调试助手下载/编译Keil编程器编写好的程序下载至单片机中运行处理控制外围电路驱动点阵显示。按照上面步骤执行之后,仔细观察电路连接情况没问题再按下电源开关给硬件系统上电。上电后,首先观察硬件系统电路工作状态是否正常,再观察硬件系统能否顺利实现其功能。具体硬件系统工作如图5-2所示。图5-2 硬件系统运行实物图5.5.2主要的调试功能本设计硬件系统主要的功能是实现中英文的滚动显示

54、和实时滚动显示,可以通过按键K1选择中英文字幕显示和实时显示两种模式,通过按键K2可以加快显示的滚动速率,还有一个复位按键对系统复位所用。5.5.3遇到的问题及解决方法在硬件系统的调试中遇到的问题是:点阵显示屏的各像素点显示亮度低且不均匀的问题。通过分析得知,问题的原因是由于8x8点阵是利用其8行8列所对应的行扫描置高电平、列扫描置低电平的方式来点亮各个行列对应像素点的,而直接利用74HC595的管脚并行输出驱动点阵的行、列扫描会由于595芯片内部电路结构不平行导致管脚输出电流过小且不稳定,从而导致驱动点阵行、列扫描时显示效果出现亮度低且不均匀的现象。解决方法是:把4块级联595的32个并行输出引脚接上一个1K的电阻用作限流来解决显示亮度不均匀的问题;根据驱动点阵行扫描需要置高电平这一特性,把用作驱动点阵行扫描的2块级联595的16个并行输出管脚分别与由1K电阻和8050三极管组成的上拉驱动部分来提高管脚输出能力并且能起到稳压稳流的作用来解决显示亮度低的问题,而点阵列扫描是低电平有效,故不需要提高对应控制管脚的输出能力。5.5.

温馨提示

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

评论

0/150

提交评论