《基于51单片机led显示屏的设计学位论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机led显示屏的设计学位论文.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要本文介绍了一款以MSC-51单片机为控制器的LED点阵显示屏系统的设计。该系统可实现中英文字符的显示和动态特效显示。并且可以通过级连的方式来扩大显示屏幕的尺寸以达到增加显示内容的目的。系统采用PC机作为上位机,上位机向单片机发送控制命令和上位机所存储的显示代码,MSC-51单片机接收并处理PC机的控制命令以及显示代码,由显示驱动模块驱动一个1664分辨率的LED点阵显示屏的扫描显示。PC机与单片机之间的通信采用RS232C通信标准来实现。所选用的MSC-51单片机具有价格低廉程序写入方便的特点使得整个系统方便维护和检修。除此之外,该系统只占用了单片机少量的I /O口和内存,为系统留下了功能
2、扩展的空间。关键字:MSC-51单片机;LED点阵显示;软件设计;串行通信 AbstractThis paper introduces a design of the LED lattice display system base on MSC-51. The system can display in both Chinese and English characters of the show and from top to bottom and move around the magic show. And can be cascaded to expand the screen siz
3、e to achieve increased content purposes. The PC sends control commands and displays code to microcontroller, MSC-51 receives control commands from PC and shows the code, Driver module drives a 1664-resolution LED lattice LEDs panel display scan showed. Communication between PC and the microcontrolle
4、r using RS-232C communications standards. the characteristics that MSC-51 microcontroller is cheap and could be coded conveniently makes the whole system Convenient to Maintenance and Repair. In addition, the system will take up only a small amount of the MCU I/O and memory,so that the system has fu
5、nctional space for expansion.Key words: MSC-51; lattice LEDs panel display; serial communicatio第1章 前 言1.1 课题背景1.1.1 选题背景LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万到几十万个半导体发光二极管像素点均匀排列组成。利用不同的材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色。而蓝色和纯绿色LED的开发已经达到了实用阶段。LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶
6、显示屏无法比拟的优点。在短短的十来年中,LED点阵显示屏就以亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定的优点迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展。LED显示屏的应用涉及社会经济的许多领域,主要包括:(1)证券交易、金融信息显示。(2)机场航班动态信息显示。(3)港口、车站旅客引导信息显示。(4)体育场馆信息显示。(5)道路交通信息显示。(6)调度指挥中心信息显示。(7)邮政、电信、商场购物中心等服务领域的业务宣传及信息显示。(8)广告媒
7、体新产品等。1.1.2 LED显示屏的现状及发展趋势(1)我国LED产业发展现状我国的LED显示屏产业经过几年的发展,基本形成了一批具有一定规模的骨干企业。据不完全统计,至2008年底,年度销售总额在5000万元以上的企业有50多家,其销售总额达20亿元左右,占行业市场总额的65%以上。全国从事LED显示屏的各类企业有1000余家,从业人员近20000人,行业年度销售总额近200亿元人民币,2006年、2007年的增长速度均保持40%左右。在国内市场上,国产LED显示屏的市场占有率近100%,国外同类产品基本没有市场,北京奥运会主会场、上海世博会的主会场、广州亚运会的主会场等的LED显示屏,均
8、由国内代表企业中标。技术水平相对领先,我国LED显示屏产业在规模发展的同时,产品技术推陈出新,一直保持比较先进的水平。90年代初即具备了成熟的16级灰度256色视频控制技术及无线遥控等国际先进水平技术,近年在全彩色LED显示屏、256级灰度视频控制技术、集群无经线控制、多级群控技术等方面均有国内先进、达到国际水平的技术和产品出现;LED显示屏控制专用大规模集成电路也已由国内企业开发生产并得到应用。LED显示屏产业培养形成了一批LED显示屏科技队伍,在全国LED显示屏行业的从业人数20000人中,科技人员有9800多人,将近50%。LED显示屏产业正成为我国电子信息产业的重要组成部分,也是平板显
9、示领域唯一立足国内形成的民族高科技产业。 (2)LED显示屏的发展趋势现代信息社会中,作为人一机信息视觉传播媒体的显示产品和技术得到迅速发展,进入高科技时代的显示技术将是平板显示的时代,LED显示屏作为平板显示的主导产品之一无疑会有更大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。高亮度、全彩化蓝色及纯绿色LED产品自出现以来,成本逐年快速降低,已具备成熟的商业化条件。基础材料的产业化。使LED全彩色显示产品成本下降,应用加快。LED产品性能的提高,使全彩色显示屏的亮度、色彩、白平衡均达到比较理想的效果,完全可以满足户外全天候的环境条件要求,同时,由于全彩色显示屏价格性能比的优势,预
10、计在未来几年的发展中,全彩色LED显示屏在户外广告媒体中会越来越多地代替传统的灯箱、霓红灯、磁翻板等产品,体育场馆的显示方面全彩色LED屏更会成为主流产品。全彩色LED显示屏的广泛应用会是LED显示屏产业发展的一个新的增长点。未来LED显示屏会向着标准化、规范化,产品结构多样化的方向发展。(3)选题意义 该设计课题使我们能够掌握LED显示屏的基本显示原理和设计方法,对LED显示屏这个行业有了较为深刻的了解和认识。并且对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。并且通过该设计课题掌握了51单片机的的软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经
11、验。目前我国的信息行业发展迅速,作为主要平面显示媒介的LED显示屏的作用也越练越广泛,相关的从业人员也会越来越紧缺。但同时应该清楚的认识到我国的LED技术虽然发展迅速但和世界先进水平还有一定的差距。因此此课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实与积极的意义。1.2 论文主要内容针对设计题目的特点,对论文的内容和结构将做如下安排:(1)初步方案的论证和选择 搜集题目的有关资料,并参照目前通用的设计思想和设计方法拟定几套设计方案进行分析比较。最终选定了以PC机为上位机,单片机为核心控制器件,外加译码电路和驱动电路的设计方案。(2)方案实现以设计方案为指导思想选择合适的器件来
12、实现这一思想,选择器件时要从功能和电气特性两方面来选择和论证。经过对比选择选定STC12C5A60S2单片机为核心控制器件,由串并转换器74hc595和锁存器74LS373为译码电路器件,三极管8550和ULN2803为驱动电路器件。论文列出了详细的器件参数和在系统中的连接使用方法。 (3)软件编写 根据硬件特点和设计要求,软件选用C语言编写。程序按功能分为静态显示、动态显示、通信等几个功能上相对独立的模块。然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。(4)验证与测试 调试分为硬件调试、软件调试和系统联合调试几步来进行。在硬件调试中发现有单片机端口驱动能力不足、驱动电路工作不
13、稳定等问题。在软件调试中出现程序整合工作不协调等问题。通过分析,查找找出了问题原因并设法将其解决。(5)结论 设计完成后对设计中所遇到的问题、经验教训、以及自己的想法进行总结。第2章 系统硬件方案论证与选择2.1 系统硬件方案大多数的LED显示屏都在户外,所以对硬件的质量要求非常的高。为方便检修和维护硬件电路设计时常常采用模块化的设计方法。硬件的设计采用模块化设计,既要满足模块本身功能又要能够和整个系统兼容。如图2-1所示,根据显示系统的功能特点确定系统硬件由显示屏部分,控制部分,通信系统及上位机四部分组成。上位机通过通信部分向控制部分发送控制指令和显示内容代码,控制部分执行显示指令并将显示代
14、码处理后控制显示部分的显示内容和显示方式。图2-1 系统硬件组成框图2.1.1 显示屏主控制器控制部分是整个系统的核心部分,其功能为与上位机通信接收上位机发送的数据和控制指令处理过后控制显示部分显示内容。其常用的电子设计方法有单片机、DSP、及EDA技术。几种设计方法比较各有其特点:(1)单片机单片机是集成了CPU,ROM,RAM和I/ O口的微型计算机。它有很强的接口性能,非常适合于工业控制,因此又叫微控制器(MCU)。单片机品种齐全,型号多样 CPU 从8,16,32到64位,多采用RISC 技术,片上I/O非常丰富,有的单片机集成有A/ D,“ 看门狗”,PWM,显示驱动,函数发生器,键
15、盘控制等。它们的价格也高低不等,这样极大地满足了开发者的选择自由。除此之外单片机还具有低电压和低功耗的特点。随着超大规模集成电路的发展,NMOS工艺单片机被CMOS代替,并开始向HMOS 过渡。供电电压由5V 降到3V,2V甚至到1V,工作电流由mA降至A ,这在便携式产品中大有用武之地4。(2)DSP 芯片DSP 又叫数字信号处理器。顾名思义,DSP主要用于数字信号处理领域,非常适合高密度,重复运算及大数据容量的信号处理。现在已经广泛应用于通信、便携式计算机和便携式仪表、雷达、图像、航空、家用电器、医疗设备等领域,DSP具有修正的哈佛结构,多总线技术以及流水线结构。将程序与数据存储器分开,使
16、用多总线,取指令和取数据同时进行,以及流水线技术,这使得速度有了较大的提高。DSP区别于一般微处理器的另一重要标志是硬件乘法器以及特殊指令,一般微处理器用软件实现乘法,逐条执行指令,速度慢。而DSP 依靠硬件乘法器单周期完成乘法运算,而且还具有专门的信号处理指令,如TM320 系列的FIRS ,LMS,MACD指令等5。(3)EDAEDA(即Electronic Design Automation) 即电子设计自动化,它是以计算机为工具,在EDA 软件平台上,对用硬件描述语言HDL 完成的设计文件自动地逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片进
17、行适配编译、逻辑影射和编程下载等。设计者只需用HDL 语言完成系统功能的描述,借助EDA工具就可得到设计结果,将编译后的代码下载到目标芯片就可在硬件上实现。由于FPGA/CPLD可以通过软件编程对该硬件的结构和工作方式进行重构,修改软件程序就相当于改变了硬件,软件编写可以采用自顶向下的设计方案,而且可以多个人分工并行工作这样便缩短了开发周期和上市时间,有利于在激烈的市场竞争中抢占先机。而且MCU和DSP都是通过串行执行指令来实现特定功能,不可避免低速,而FPGA/CPLD则可实现硬件上的并行工作,在实时测控和高速应用领域前景广阔;另一方面,FPGA/CPLP器件在功能开发上是软件实现的,但物理
18、机制却和纯硬件电路一样,十分可靠。三种设计方式相比较各有优点且都能够实现控制功能,但单片机的技术门槛较低开发成本也较低非常适合初学者进行学习和锻炼使用。现在市场上常用的单片机主要有MCS-51、AVR、ARM、PIC等。其中应用最广泛的单片机首推Intel的51系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势常作为单片机学习的教材。且51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。所以在控制部分方案的选择中选定51系列单片机作为控制部分的核心器件。
19、2.1.2 通信系统 通信部分要满足的设计要求就是稳定、快速、简单易实现。因为通常情况下显示屏和上位机的距离不会很远,所以通信距离的要求不是很高。计算机数据通信主要采用并行通信和串行通信两种方式。(1)并行通信并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。(2)串行通信串行通信数据是一位一位顺序传送,只用很少几根通信线,串行传送的速度低,但传送的距离长,因此串行适用于长距离而速度要求不高的场合。在串行发送时,数据是一位一位按顺序进行的,而计算机内部的数据是并行的。因此,当计算机向外发送数据时,必须将并行数据转换为串行数
20、据再发送。反之,又必须将串行数据转换为并行数据输入计算机中。这种转换即可以用硬件实现也可以用软件实现。单由软件实现会增加CPU负担,降低其利用率,故目前常采用硬件实现。通用的通用异步接收/发送器,简称UART(Universal Asynchromous Receeiver/Trabsnitter)是完成这一功能的硬件电路。在单片机芯片中,UART已经集成在其中,作为其组成部分,构成一个串行口。 综上所述,题目设计已经选定了单片机为开发方式而单片机的UART已经集成在单片机内,所以通信系统选择串行通信为通信方式。2.1.3 LED点阵显示屏显示部分包括了一块至少可以显示一个汉字的显示屏,以及驱
21、动该显示屏的驱动电路。由于单片机的I/O口有限要不能直接用I/O口来驱动LED显示屏,所以需要对单片机IO口进行扩展增加单片机并行输出的能力。LED显示屏是由一个一个的发光二极管点阵构成的,要构成大屏幕的LED显示屏就需要多个发光二极管。构成LED屏幕的方法有两种,一是由单个的发光二极管逐点连接起来,如图2-2所示;二是选用一些由单个发光二极管构成的LED点阵子模块构成大的LED点阵模块。目前市场上普遍采用的点阵模块有88、1616几种;这两种屏幕构成方法各有有缺点,单个发光二极管构成显示屏优点在于当单个的发光二极管出现问题时只需更换一个二极管即可,检修的成本较低,缺点在于连接线路复杂;而点阵
22、模块构成的方法却正好与之相反,模块构成省约了大量的连线,不过当一个LED出现问题时同在一个模块的所有LED都必须被更换。这就加大了维修的成本。两种方法相比较,决定采取模块构成的方法来制作一个LED点阵显示屏。为了避免模块的缺点,选择点阵数较小的模块来减小出现这一问题的风险。所以构建一个1664的LED点阵屏选用十六块88点阵模块。图 2-2 LED点阵图一个1616的LED显示屏行和列各有16支引脚,不能单靠51单片机的端口驱动所以必须要对单片机的端口个数进行扩展。经常采用的端口扩展方法是用串并转换芯片进行译码。常用的串并转换芯片有74HC595、74LS164(8位串并转换器)、74LS15
23、4(4线-16线译码器)等。51系列单片机端口低电平时,吸入电流可达,具有一定的驱动能力;而为高电平时,输出电流仅数十甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力,所以单片机不能直接驱动LED显示屏显示。在单片机和显示屏之间还需要增加以功能放大位目的的驱动电路。2.1.4 硬件设计方案最终方案如图2-3所示,以PC机作为上位机存储和处理显示内容用串行通信的方式将显示内容和控制指令传输到单片机系统,单片机根据上位机传输来的内容和指令通过端口译码扩展后驱动4块88LED点阵模块构成的1616的LED点阵显示屏。题目将以此方案为指导思想展开具体的硬件电路设计。图2-3 硬件设计方
24、案2.2 系统软件方案软件的设计除了满足设计功能外还必须要满足易读写,方便下载和编译。设计目标和硬件总体结构确定的情况下,软件可以分为主程序,显示子程序,各种特效显示子程序,通信程序三个主要部分组成。软件的编写需要借助软件编辑器和编译软件,编译完成后还需要下载到单片机中执行。编写软件之前得首先选择一种合适的语言以及配套的编辑器和编译软件。最后还要选择一款与所选单片机的下载器或下载软件来把编写的程序下载到单片机中执行。2.2.1 单片机编程语言现在主要运用的单片机编程语言为汇编语言和C语言。两种语言相比较各有优点。汇编语言(Assembly Language)是面向机器的程序设计语言,是一种功能
25、很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。其具有执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号 而不是子和特殊符号的语言。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;程序有规范的结构,可分为不同的函数。这种方式可使程序结构化;将可变的选择与
26、特殊操作组合在一起的能力,改善了程序的可读性;编程及程序调试时间显著缩短,从而提高效率;提供的库包含许多标准子程序,具有较强的数据处理能力;已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同较快地移植过来。基于以上理由决定采用C语言为该显示系统的编程语言。2.2.2 系统软件编译器介绍C语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。因此在系统软件设计中,编译器必不可少。支持MCS51用C语言编程的编译器主要有两种:Franklin C51编
27、译器和KELLC51编译器。目前在单片机开发中普遍都是使用KELL C51来进行编译。因此软件设计最终方案为采用C语言为程序语言,KELLC51为编译工具按照控制、通信、显示等几个功能模块来编写程序。2.2.3 上位机控制传输软件其中系统采用现在已经非常普遍的PC机作为上位机,这样对该显示系统的硬件要求便降低了,增加了系统的通用性。上位机的作用是存储并处理显示内容,然后通过通信系统传送到控制系统驱动显示。LED显示上位机的内容一般有实时显示和存储显示两种方法。实时显示及上位机屏幕上的内容同时显示在LED显示屏上,上位机上内容变化LED显示屏也跟着变化。存储显示是将显示内容处理过后存储在上位机中
28、通过通信系统传输到显示屏显示9。两种显示方法相比较:实时显示屏幕能及时反应上位机内容的变化,显示的效果和内容的实时性好多用于新闻播报、实况转播用,但实时显示硬件开销大,对通信系统要求高,工艺复杂,成本高;存储显示虽实时性不高但硬件开销小,成本低廉。课题设计题目对显示的实时性要求较低且所设计的显示屏尺寸不大同时显示的内容不多,所以实时显示就没有必要。所以上位机选择存储显示的方法,控制LED显示屏的显示内容。第3章 系统软件设计3.1 程序设计系统软件采用C语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现串口通信,静态显示,动态显示三大功能。其功能结构如图2-4所示。通信
29、程序接收上位机数据,交给主程序处理再通过控制程序选择不同的系统初始化从显示数组读取数据到显示寄存器读取显示控制命令选择显示方式调用相应显示程序RI=1?起始位?接收显示数据及控制命令将显示数据移入显示数组将控制命令赋值给控制字符NNYY开 始中断开始中 断 返 回显示程序进行显示。 主程序的工作流程如图3-1所示:图3-1 主程序流程图 图3-2 中断服务程序流程图 程序开始时首先必须对单片机进行初始化,其中初始化的内容包括:中断优先级的设定,中断初始化,串行通信时通信方式的选择和波特率的设定,各IO口功能的设定等。初始化完成后程序进入待机状态等待中断的发生,该程序中主要用到了两个外部中断源和
30、串行中断。外部中断源由按键的电平变化触发,外部中断主要功能是选择LED点阵显示屏的控制方式是由按键控制还是上位机控制和显示状态是静态显示还是动态显示。串行中断包括发送中断和接收中断都是由软件触发。中断产生后由预先初始化时设定跳转执行中断子程序。中断程序设定了LED点阵显示屏所要显示的内容和显示的方式,最后执行的是各种显示程序。按照设定的方式和内容显示出所需要的内容。3.2 显示程序的设计3.2.1 LED显示屏的显示方式 LED点阵屏显示方式主要由静态显示和动态扫描显示两种。 对静态显示来说,每一个发光二极管都需要一套驱动电路,一帧画面输入以后便可一劳永逸地显示,除非我们改变了显示内容,需要重
31、新输出新的点阵数据这种方式系统原理相对简单一些,但所需的译码驱动装量很多,引线多而繁杂,不便于大屏幕的制造,成本高,其可靠性也较低另一种动态扫描显示是把整个LED屏幕分成若干部分,每一幅画面的显示是显示完一部分后,又显示第二部分直到显示完最后一部分又重新开始显示第一部分,重复循环进行在重复扫描速度足够快的情况下,我们看到的就是一幅稳定的画面也就是说采用动态扫描显示需要不断进行画面的刷新在这种方式下其显示驱动电路可重复利用,引线也大大减少,从而使硬件成本降低,且屏幕上的发光二极管轮流发光,使用时的耗电量大大降低大屏幕的制造、维护要容易许多,可靠性也增加了两种显示方式的比较再结合51单片机I/O口
32、数量有限的原因决定采用动态扫描的方式进行显示。动态扫描分为行扫描和列扫描两种方式区别在于选通端和数据输入端分别是行还是列。在该显示系统中扫描显示的工作原理如图3-3所示,先选通列然后再从行送入对应列的数据,这样从第1列到第16列循环往复,只要切换的速度足够的快利用人眼的延时特性就可以看见一幅稳定的画面。图3-3 扫描显示程序原理图3.2.2 点阵数据表达方式该显示系统的显示数据采取纵向取模方向正向的数据存储方式如图3-4, 图3-4 点阵数据原理图 即数据是纵向的,一个像素对应一个位。8个像素对应一个字节,字节的位顺序是上高下低,比如从上到下8个点的状态是“*-*-”(*为黑点,-为白点),则
33、转换的字模数据是0x82(B1000_0010)。如图(4-3)所示,一幅1616的点阵画面点阵数据按照B1B2B3B31B32存储。所以一幅画面的数据量为32字节。画面显示时选通的第i列对应的数组元素为第i和i+16个元素16。3.2.3 显示程序的设计开 始 显示程序分为静态显示程序、左移显示、右移显示、上移显示、下移显示五种种显示方式。其中上下左右移动程序都调用了静态显示程序为子程序。静态显示程序流程图如图3-5所示: 初 始 化读取显示数据依次选通列,行74HC595的CLOCK端置低,锁存器禁止输出对应行数组元素与0X01相与,相与结果写入单片机端口输出数组元素右移一位,对应74HC
34、595 CLOCK端置高N右移次数是否为8?Y锁存器允许输出图3-5 静态显示程序流程图显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第i列对应的行数据为数组中的第i和第i+16个元素。将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与0X01相与,所得结果通过单片机端口输出到串并转换器的A端,锁存在锁存器里完成一列数据移位后再将其输出。如此依次循环选通各列来显示所需画面。图3-6 左右移/上下移程序流程图 动态显示程序流程如图3-6所示,根据显示数据的存储原理通过改变实际LED列与数据逻辑列的方法来实现程序的左右移动。显示数据与列的对应关系为:第i列对
35、应的数据为数组中i和第2i个数据。所以选通时,而送入后一列的数据则相当于画面左移移位,同理送入前一列数据相当于右移一位。如此循环则产生一幅稳定运动的画面。 显示数组中,第1至16个元素的第8至第1位LED显示屏中的第1至第8行。同理第17至32个元素的第8至第1位LED显示屏中的第9至第16行。所以将元素数据进行逻辑位移便能产生上下移动的效果。3.3 通信程序的设计系统采用串行中断的方式进行通信。MCS-51单片机的五个中断源两种类型:一类是外部中断源;另一类是内部中断源,包括两个定时器/计数器(T0和T1)的溢出中断和串行口的接收和发送中断。MCS-51单片机设置了4个专用寄存器用于中断控制
36、,分别为定时器控制寄存器(TCON),串行口中断控制器(SCON),中断允许控制寄存器(IE),中断优先级控制寄存器(IP)。编程时通过设置其状态来管理中断系统。在编辑中断程序时首先是将中断控制寄存器(IE)初始化。其控制位分布如表。EA为中断允许总控制位,EA=1时CPU开发中断;EA1时。CPU屏蔽所有中断。ES、ET、EX1、ET0、EX0为对应的串行口中断、定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、外部中断0中断的中断允许位。对应位为1时允许其中断,对应位为0时,禁止其中断。表3-1 中断允许寄存器格式D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0
37、所以初始化时设定中断允许寄存器初值为0XFF,指令为 IE=0XFF。程序设计时还要考虑到中断优先级的问题。因为不同的中断同时产生而CPU响应的顺序取决于内部查询顺序。设置串口工作方式1,波特率9600,计算可得计数器初值的十六进制表示为0XFD。通信协议如表4-2所示:表3-2 串口通信数据结构数据结构第1个字节第2至第33个字节第34个字节内容起始标志位S显示数据控制指令作用判断是否开始接收数据LED的显示内容控制LED显示方式具体串口中断程序流程图如图3-7所示,在主程序中先进行了串行中断的初始化,初始化内容包括了串行工作方式选择,波特率的设定,计数初值的设定。程序开始进入中断等待,当P
38、C机向单片机发送数据时产生中断接收允许位RI置1,将SBUF(缓冲寄存器)中的值输入到暂存器中进行数据处理。首先判断数据是否设定的起始标志位S如果是则开始接收起始位后的33个字节,不是则中断返回继续等待。接收到第34个字节后便将收到的数据发送回PC机进行验证比较。RI=1?接收串口数据起始位S接收起始位后33位数据接收到第34位?将第2位起的32位数据发回PC机NNNYYY中断开始中断返回 图3-6 通信程序流程图所有软件编写完成后都必须经过编译才能被单片机识别使用。为了减小软件的修改和优化难度,先把各子程序写为一个可单独执行的完整程序。各子程序编译没有错误后再输入单片机进行验证,这两项都通过
39、后再将所有的程序整合到一起形成一个完整的程序再进行编译和验证。第4章 系统调试硬件制作和软件编写过后,完成后必须对其进行调试,检查设计功能是否实现了。软件硬件完成后开始进行调试。调试可分为硬件调试,软件调试和系统联合调试。4.1 系统硬件部分调试方法硬件调试主要是调试各部分的焊接是否合格和各芯片的输出输入电压是否符合设计要求,最后测试各硬件部分能否完成设计功能。因此把硬件调试按照以下四部分分步来进行:(1)测试所有焊点是否有短路和虚焊的现象存在;(2)通电测试所有硬件芯片的输入输出电压是否在设计要求的范围内;(3)测试ISP下栽线的功能是否能够实现;(4)测试串口系统的通信功能是否能够实现。由
40、于最重要的显示系统功能的测试需要软件配合所以在硬件调试部分只测试单片机复位电平,功能部分测试放在系统联合调试部分来完成。4.1.1 短路与虚焊检测 检测工具为万用表,使用万用表的短路报警功能,逐个测试相临的两个焊点检测是否短路。按照电路图检测需要连接的两点是否短路来检测是否已经连接上,以此来检测虚焊的情况。检测和修改完成后为下一步通电检测排除了短路的危险和由于虚焊引起检测结果不真实的麻烦。4.1.2 上电测试由于系统测试时是采用USB电源为系统电源,所以电源输入都为5V。显示系统中单片机、译码器,锁存器,驱动电路的电源电压均要求为5V所以可同时直接接入。上电后首先观察电路是否有过热,异味,冒烟
41、的现象出现。经过观察,没有这些现象出现。然后测试各器件的电源,接地及一些电平应该固定的端口的电压。测试的结果为:各器件电源端在4.3V4.8V之间满足器件的电源电压要求,单片机端口在未接负载时端口电压为4.5V。4.1.3 串口调试 串口部分的作用为单片机与PC机之间通信,要检查硬件是否正常工作可以采用将MAX232芯片的单片机端输出口与输入口直接相连的办法来测试。具体电路图如图5-2所示,将MAX232的第10端和第9端直接短接。功能上表示将单片机的输出口与输入口直接相连,单片机收到数据的同时就将数据发送回PC机。如果发送的数据能够被接收则证明串口通信部分的硬件是正常的。将串口与电脑COM1
42、相接,通过串口调试助手发送不同位数的数据再在把发送的数据与接收数据相比较。图4-2 串口硬件调试4.2 系统软件调试方法由于已经进行了硬件调试,所以软件调试主要是软件编译和将各功能块程序分别写入以验证其功能的可实现性。在进行功能调试前必须用KEIL C对所有程序进行编译,编译成功生产可执行的.hex后方可进行功能测试。其中测试串口程序的功能是否完善不但要连接单片机系统还要借助串口调试工具。串口调试工具选用的是串口调试助手,其功能是按照设定的串口、波特率向单片机发送数据和接收单片机向PC机发送的数据。并且能把发送和接收的数据内容显示在状态栏内。因此只要设定PC机向单片机发送的内容和单片机向PC机
43、发送的内容就可以通过串口调试助手验证串口通信是否准确,是否满足功能要求。串口程序的设计为:设定波特率位9600,以0XAA为起始标志位,单片机接收自起始标志位后的32位十六进制数再发送会PC机。测试程序时设定波特率为9600,选择串口1,无校验,8位数据。PC机向单片机发送的内容为AA 11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF 11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF。PC机收到的数据为 11 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF 11
44、 22 33 44 55 66 77 88 99 00 AA BB CC DD EE FF。测试表明串口程序和串口电路实现了设计目的。再进行数次不同数据的发送,接收到的数据也验证了设计要求的实现。图4-3 串口调试图串口程序测试成功后为显示程序提供了准确的显示内容。余下得各种显示程序和中断程序都编译成功后只有联合硬件才能验证其功能的可行性。4.3 系统联合调试及结果经过硬件调试和软件调试,排除了硬件的连接问题和验证了串口功能的可实现性。其余功能的软件便可以在此基础上调试验证其功能的正确性。联合调试的具体方法如下:(1)编写一个逐点扫描的显示程序,再结合硬件电路运行。这样做的目的在于检测各器件是
45、否能够正常运行和显示屏的各个LED灯是否有损坏。结果显示显示屏中只有边角出有一个LED灯被烧坏,其他器件逻辑功能运行正常。(2)将静态显示子程序与各种动态显示程序结合硬件电路进行调试。系统运行时显示如图5-1所示,显示图像比较清晰,各动态显示效果也能够实现。但显示存在两个问题。一是发光点的下方会出现一个很微弱的亮点,影响了整体的显示效果。二是同一列的LED灯被点亮的数量与其亮度出反比,即如果同一列的灯都被点亮则亮度比只点亮几个时要暗一点。(3)将串口通信,显示,硬件联合调试。按照设定的通信协议,先由PC机向单片机发送起始控制字s,接着再发送32比特的显示数据,最后发送控制显示方式的显示控制字。
46、再发送不同的显示数据和显示控制字,观察各种显示方式的运行情况和各种显示方式之间的切换情况。结果是显示屏执行显示控制指令,显示所发送的内容。4.4 调试结果分析对调试中出现的问题进行了分析,得出以下原因和修改办法。(1)硬件的工作表现出不稳定,主要是表现在LED显示屏的驱动电路部分和单片机系统部分。具体表现为单片机接负载后电压被拉低值1.7V左右,无法满足译码电路的输入要求。显示时会有一些行驱动的输出不够设计指标 ,导致所驱动的那一行在显示屏上表现为选定的点不能够很好区分,图像出现模糊。分析造成这一现象的原因为,焊接时三极管8550遭到了高温损坏以致工作不稳定和焊接的电路不够牢靠,还有就是8550的e端所接电压过高。修改办法为将单片机输出端口外接5K的上拉电阻,替换损坏三极管。(2)虚点的产生与软件和三极管电压有关。修改办法是将软件中的延时时间调至恰当值,将8550的e端电压降至3V左右。经过调试和修改,系统实现了题目所要求的中英文显示,动态显示及上位机通信与控制的要求。 第五章 结 论经过一段时间的工作,终