




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要本文提出了一种实现微机控制LED点阵显示屏的新方案。论文从上位机信息的输入开始,到显示屏的最终显示,详细的给出了电路的设计方案和软件流程。并根据LED显示系统中的具体技术难点讨论了相应的解决方案。用户可以根据需要把要显示的内容通过本系统所配带的 PC 机软件,直接从计算机下载到 LED 显示系统,同时可以设置显示系统显示的颜色、显示内容的移动方式、移动速度等。本系统主要应用于厅堂、车站、广场等公共场所;并详细介绍了在硬件上和软件上的实现过程。 【关键词】: AT89S52 ,单片机,Mscomm 控件,74HC273,LED 显示屏,达林顿管 AbstractThis article puts forward with a kind of new scheme on the LEDdisplay screen controlled by microcomputer. From input of information of epigyny machine to output of ultimate screen display, the various design schemes.and software flow charts are studies in detail. Further more, relative measures are taken according to concrete technology difficulty of LED display system.Consumers can foundation their need to hold the content they must display through the PC software that is qualified by this system,download directly from computer to LED display system, at the same time ,It can set the color of the screen、move fashion of the display content、speed and so on.The system mostly apply to hall、station 、square etc; and particularly introduce the realization course in hardware and software . 【Keywords】: AT89S52 、 singlechip、 Mscomm control、74HC273 、LED display screen、dalindun canal 目录1 概述 11.1 课题来源及研究意义 .11.2 研究的基本内容 .2 基于 PC 机控制的 LED 显示系统设计 22.1 设计方案 .22.1.1 系统总体设计思想 .32.1.2 LED 的驱动方案 .42.2 器件选择 .52.2.1 单片机的选择 .52.2.2 时钟电路的选择 .62.2.3 LED 显示屏的选择 .63.硬件设计 73.1 整机电路介绍 .73.2 下位机(单片机)部分的开发 .73.2.1 下位机的设计及总体结构 .73.2.2 LED 显示屏的驱动设计 .73.2.3 计算机通讯 .83.2.4 列数据锁存 .93.1.5 行扫描输出 .104软件设计 124.1 VISUAL BASIC 中串口通讯的应用 .124.1.1 通讯基础知识 .124. MSCOMM 控制使用示例 .124. 数据的发送 .124. 数据的接收 .134.3 单片机显示控制的软件设计 .134.3.1 编程思想 .164.3.2 字模处理 .164.3.3 左移效果编程 .174.3.4 上升效果编程 .184.3.5 掉下效果编程 .184.4 上位机软件设计 .194.4.1 设计概述 .194.4.3 上位机串口通讯软件 .205 系统设计总结 20参考文献 22致 谢 23(附录 1) 24(附录 2) 24(附录 3) 26(附录 4) 27(附录 5) 311概述LED 显示屏已经广泛应用在信息显示系统中,LED 点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。目前大多数的 LED 点阵显示系统自带字库。其显示和动态效果(主要是显示内容的滚动)的实现主要依靠硬件扫描驱动,该方法虽然比较方便,但显示只能按照预先的设计进行。而实际上经常会遇到一些特殊要求的动态显示,比如电梯运行中指示箭头的上下移动、某些智能幅值的条形显示、广告中厂家的商标显示等。这时一般的显示系统就很难达到要求。另外,由于受到存储器本身的局限,其特殊字符或图案也往往难以显示,同时显示内容也不能随意更改。本文提出一种利用 PC 机和单片机控制的 LED显示系统通讯方法。该方法可以对显示内容(包括汉字和特殊图符)进行实时控制,从而实现诸如左移、掉下、上升、上铺、下铺、打字等多种动态显示效果。该方法同时还可以调节动态显示的速度,同时也可以任意选择显示显示的颜色(红、黄、绿) ,显示内容亦可以即时修改。另外,通过标准的 RS232/485 转换模块还可以实现对显示系统的远程控制。LED 显示系统上位机软件的编程可以利用目前最流行的开发软件:Visual Basic 6.0 , VB 是由 BASIC 发展而来的,对于 Windows 应用程序而言,VB 是目前所有开发言语中最简单、最容易使用的言语。LED 显示屏由于使用环境和用途的不同,有户内显示屏和户外显示屏之分,按大小的不同,又有小型条屏到大面积视频显示屏之分。小型的条形显示屏,一般采用单片机来控制,它具有结构简单、成本低、编程容易的特点。硬件上一般采用扫描显示的方法,只要扫描场频高于 50 帧秒,就可得到稳定的显示图像。在软件设计上,扫描由单片机定时中断来完成,假如扫描中断周期时间为 t 而输出一行数据的操作时间为t1 那么单片机在一个扫描周期里进行数据处理的时间为 t2=t-t1 为了得到稳定的显示效果就要保持足够的扫描频率,如果 t 不变,在显示面积增大的情况下,时间 t1 也增大,这样,时间 t2 必然减少,即造成系统处理数据的速度下降。要有效提高系统的性能就必须提高单片机的速度和设计合理的硬件系统。本文介绍的 LED 显示屏的列数据传输是采用并行数据串行方式传输,这样可以大大提高数据的传输速度,从而可以降低对单片机速度的要求。 1.1课题来源及研究意义随着 LED 技术的不断发展以及 LED 在低功耗、长寿命、环保等方面的优势,LED 应用领域逐渐增多。同时,许多国家在看到 LED 巨大的市场潜力后,纷纷出台各项鼓励措施大力推动 LED 在各领域中的应用。目前,LED 的应用已经从最初的指示灯应用转向更具发展潜力的显示屏,景观照明、背光源、汽车车灯、交通灯、照明等领域,LED 应用正呈现出多样化发展趋势。LED 器件技术和性能不断提高,电子技术发展日新月异,这也为 LED 显示屏产品的技术深化和提高带来良好的基础。同时 LED 显示在社会生活的各个领域得到了广泛的应用,因此,LED 显示市场发展前景乐观。深化技术内涵,丰富产品体系,产品多元化,突出主导产品的优势将是 LED 显示屏产业发展的重要趋势。尤其是 LED 点阵显示的应用尤为广泛,随着信息产业的高速发展,LED 显示作为信息传播的一种重要手成为现代信息化社会的一个闪亮标志。近年 LED 显示已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如电信、邮政大厅、营业部、车站、机场、港口、体育场馆等信息的发布,政府机关政策,政令的发布,各类市场行情信息的发布和宣传等。而且随着科学技术的发展 LED 点阵显示被应用到大、中、小屏幕显示器:各种广告牌、体育记分牌、金融、交通指示牌等,分为全色、三色、单色显示屏。1.2 研究的基本内容本文介绍了基于单片机的 LED 点阵的设计方法。采用 AT89S52 作为主控芯片,实现数据处理,串行通讯,LED 点阵显示电路。主要研究的内容有如下几点:1)单片机与上位机之间的通讯。2)LED 点阵显示的控制。3)日期,温度,标语等等的显示。4)单片机硬件接口相关的电路设计。5)看门狗电路的设计。6)软件程序的设计。本设计中所采用的方案和电路通过具体实验论证,既有典型又有创新型,并分别介绍了各方案的优缺点,并穿插了电路图及方框图,使文章直观明了。 基于 PC机控制的 LED显示系统设计 2.1 设计方案本章针对 LED 显示屏的应用领域广泛,采用模块化、规范化设计方案,边设计边试验和仿真设计策略,从基本的显示功能入手,逐步完成系统各部分的设计。在设计过程中既保证实施上可行、运行上可靠,又运用专家控制、实时数据库等先进技术提高系统性能,使系统智能化,并充分考虑到应用上的灵活性,系统实现的经济性,使之成为一个实用的、有效益的系统。 2.1.1 系统总体设计思想 为了设计并开发出高性能、高可靠性、可行实用的显示系统,采用以下的设计思想: 1) 在系统总体设计中将贯彻学术性与实用性相结合、先进性与可行性相结合、功能性与经济性相结合的原则,尽量采用成熟的技术和已有的科研积累,在关键难点问题上尝试采用相关学科的最新成果,使系统既具有稳定可靠的运行性能又有一定的技术含量和创新价值; 2) 在硬件上采用了完全模块化设计思想,选用通用 IC 芯片,所有电气连线采用接插方式,并各模块都有独立的电源,以保证系统安装方便、运行可靠、维护简单; 3) LED 显示屏的下位机控制用 8 位微处理器(MPC)AT89S52 做控制器,完成字模数据的接收和 LED 显示屏的动态扫描显示,在整个系统中处于下位机的地位;中央控制计算机由通用 PC 机实现,实现显示内容的输入、显示模设置、显示颜色设置和字模数据的传输;中央控制器与下位机的通讯采用成熟的 RS232 接口标准; 4) 在软件编制上,采用结构化设计思想,下位机采用适应于 MCS-51 系列单片机的 C51 语言进行编程,中央控制计算机程序的编制采用面向对象的可视化编程言语VB。 基于单片机点阵LED电子指示牌的系统主要由主控计算机、通信部分、控制部分、显示部分和附属部分五大部分构成。这五大部分都是各自相对独立的自治系统,虽然它们各自完成各自的功能,但相互间还有联系及数据信息的交换,各种条件相互制约,在系统的协调下统一工作。系统的基本框图如图2.1所示,结构图如2.2所示。图2.1系统的基本组成框图(图2.2)2.1.2 LED的驱动方案 目前以圆半导体发光器件为显示介质的大型显示屏已广泛地被应用。其控制驱动方式各种各样,也各具特色。在 LED 发光管的驱动设计上也有许多的方式。由于大型的点阵显示屏是由上万个或几十万个 LED 发光象元组成,这也就需要大量的驱动电路来支持。那么驱动电路设计的好坏就直接影响系统的生产制造成本和显示的效果及系统的运行性能。设计一个即能满足控制驱动要求,同时使用器件少成本底的单元控制驱动方案是必要的。下面我们就以 LED8*8 点阵模块(共阳极)为显示器件的显示屏为例,来论述一下串行控制驱动方式。 所谓串行控制驱动方式就是显示的数据是通过串行方式送入点(列)驱动电路。其特点是单元内的线路连接简单,这给印刷电路板的设计带来了方便。同时也减少了印刷电路板的布线密度,从而为生产和调试带来了有利的一面。当然,单元的可靠性也相应的提高了。串行控制驱动方式可选用的芯片有:MC4094、74LS595、74HC595、6B595、9094 等等。其中 MC4094、74HC595 均为 CM05 芯片,应与功串芯片结合使用;例如使用 2803 驱动芯片。建议采用 6B595 或9094(74LS595 也可用),因为这几种芯片都具有一定的驱动能力可直接驱动 LED 发光管而无须另外添加驱动芯片。同时,串行移位并行功率输出的芯片(6B595、9094)自身具有级联功能,为单元的级联提供了支持。关于行的控制和驱动是相对容易的,因为行的工作方式是分时顺序工作的。由于行的组成是几个模块并联形成的,因此驱动的功率要求是比较大的。行的驱动一般是采用 PNP(用于共阳方式)功率三极管,行的逻辑控制可选用三一八译码方式和直接行线控制方式。译码方式是应用三条行控制线控制一个三一八译码器(如 74LS138 等),八选一顺序控制八条行线。直接行线控制方式是比较简单的,这里就不赘述了。在应用串行控制驱动系统时,尽管串行移位芯片具有级联功能,但设计时要考虑时钟信号、sB 信号、行控制信号的级联驱动向题。另外为提高单元的多级级联的数量,设计时要考感到每个信号的传输延迟,以保证控制时序的正确运行。 2.2 器件选择2.2.1单片机的选择单片机是单芯片形态作为嵌入式应用的计算机,它有惟一的,专门为嵌入式应用而设计的体系结构和指令系统,加上它的芯片级体积的优点和在现场环境下可高速可靠地运行的特点,因此单片机又称之为嵌入式微控制器(embedded micro controller)。但是,在国内单片机的叫法仍然有着普遍的意义。我们已经把单片机理解为一个单芯片形态的微控制器,它是一个典型的嵌入式应用计算机系统。目前按单片机内部数据通道的宽度,把它们分为 4 位,8 位,16 位及 32 位单片机。单片机独特的结构决定了它具有如下特点。(1)高集成度,高可靠性。单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的 CPU.单片机程序指令,常数及表格等固化在 ROM 中不易破坏,许多信号通道均在一个芯片内,故可靠性高。(2)控制功能强。为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O 口的逻辑操作及位处理能力,非常适用于专门的控制功能。(3)低电压,低功耗。为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为 1.8V3.6V,而工作电流仅为数百微安。(4)优异的性能价格比。单片机的性能极高。为了提高速度和运行效率,单片机已开始使用 RISC 流水线和 DSP 等技术。单片机的寻址能力也已突破 64KB 的限制,有的已可达到 1MB 和 16MB,片内的 ROM 容量可达 62MB,RAM 容量则可达 2MB。由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。由于单片机具有体积小、功能强、性能价格比较高、系统扩展方便、硬件设计简单等优点,而且单片机开发工具具有很强的软、硬件调试功能,使研制单片机应用系统极为方便,加之现场运行环境的可靠性,因此使单片机能满足许多小型对象的嵌入式应用要求。现在,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。AT89S52 单片机主要特性及引脚图如图 2.3 所示:与 MCS-51 兼容4K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源可编程串行信道低功耗的闲置和掉电模式片内振荡器和时钟电路范区 图 时钟电路的选择采用美国达拉斯(Dallas)公司的 DS12C887 来作为实时时钟芯片,为系统提供了详细的年、月、日、星期和小时、分钟等时间信息。DS12C887 是一款 COMS 技术实时时钟芯片,其主要功能性能如下: 带有内部晶体振荡器并内置有锂电池,可以在无外部供电的情况下保存数据 10年以上。 具有秒、分、时、星期、日、月、年计数,并有闰年修正功能 时间显示可以选择 24 小时模式或者带有“AM”和“PM”指示的 12 小时模式 时间、日历和闹钟均具有二进制码和 BCD 码两种形式 内部具有闹钟中断、周期性中断、时钟更新周期结束中断,且 3 个中断源可分别由软件屏蔽 内部有 128BRAM,其中,15B 为时间和控制存储器,113B 为通用 RAM。所有 RAM单元都具有掉电保护功能,因此可被用作非易失性 RAM 可输出可编程的方波信号2.2.3 LED显示屏的选择LED 显示屏模块技术指标参数表如下表所示;LED显示屏模块技术指标参数一览表:规格(mm) 5显示像素/平米 17300模块 1R1YG(绿红)像素点数 64*16=1024尺寸(mm)480*120显示屏面积()0.576最大功耗(瓦/平方米) 100(单)/200(双)扫描速度 大于 75Hz视角 水平视觉 160,垂直视觉 160环境要求 -2060供电要求 220VAC10% 50Hz驱动方式 1/16 扫描使用寿命 10 万小时3.硬件设计3.1 整机电路介绍通过单片机 AT89S52 的控制,在 LED 上显示上位机传来的信息并可同时显示时钟。具体硬件电路连接图见附 7。3.2 下位机(单片机)部分的开发 3.2.1 下位机的设计及总体结构 LED 显示系统由单片机构成主控部分,主要负责数据接收、数据处理和扫描显示。总体可以分为四部分:计算机通讯、数据存贮、列数据锁存、行扫描输出,整理原理图见附录 5 所示。 3.2.2 LED显示屏的驱动设计整个显示系统,由微机和 LED 点阵显示屏组成,LED 显示屏主控部分原理图如图 3.1所示,微机通过串行口传送显示内容。点阵显示屏接收微机传送的数据,并控制 LED点阵显示屏的显示。由于 AT89S52 片内只有 8K 的 EEPROM,无法存贮大量的汉字点阵字模。因此,本系统采用由微机传送汉字或字符的点阵字模的方式来控制显示屏的显示内容。微机传送的点阵字模经过计算机的处理后以 8*16 的方式传输给单片机,单片机接收到后再保存到数据存贮器 6264 中。数据接收正确并处理存入显示缓冲区后,即控制显示屏的显示。显示方式采用逐行扫描方式,单片机首先从显示缓冲区中取出第一行点阵数据,通过数据口(P0)口写入 LED 显示屏的列锁存器 74HC273,由于 74HC273 是采用了首尾级联的方式连接,所以数据的传输属于并行数据的串行传输。送数据的顺序是,先送该行数据的最后一个,最后送第一个。一行的数据写完后,再启动74LS154(4-16 译码器)点亮相应的行。 图 计算机通讯 LED 显示屏和电脑的通讯方式采用了标准 RS232 接口,电路原理图如图 3.2 所示,通讯方式为 10 位的异步通讯。RS232 接口实际上是一种串行通信标准,是由美国EIA(电子工业联合会)和 BELL 公司一起开发的通讯协议,它对信号线的功能、电气特性、连接器等都有明确的规定。由于 RS-232 接口的 EIA 是用正负电平表示逻辑关系的(-3V-15V 为 1、+3V+15V 为 0)。与 TTL 以高低电平表示逻辑关系不同,因此,为了能够和计算机接口通信,必须在 EIA 电平和 TTL 电平之间进行电平转换。MAX232芯片可完成 TTL-EIA 电平转换,且只用单一+5V 电源,因此得到广泛应用。由于采用的是标准 RS232 接口,所以传输距离不能很远,当传输距离超过 15M,就要采用 422 或485 接口,则只要加上一块 RS232 转 422/485 电路模块就可以了。 图 列数据锁存 刷新的状态下,整个屏幕分为 16 行扫描显示,以屏最大时为例:一屏可以显示 24个字,在一行中,每个字占两个字节数据,则扫描一行的时候要传输 48 个字节的数据,而扫描行与行之间的时间间隔不能大于 1.25ms(刷新率 50Hz) 。为了保证 LED 的显示亮度,则传完数据后要有时间让 LED 发亮,所以传输数据的时间最好不能大于行与行之间的扫描间隔时间的一半。因此数据的传输速度直接影响到 LED 显示屏的面积大小和显示的好坏,同时考虑到主机和显示模块的连接,和显示模块之间的级联,连线越少越好,针对这种情况,本系统采用了并行数据串行传输的方案,原理图如图 3.3 所示。数据锁存器取用 74LS373(为了电路板简洁美观,74LS373 采用的是贴片封装) 。74LS373 是采用首尾相连的方式,即:每块的 74LS373 的输出端除了接入列驱动电路模块以外,还作为下一块 74LS373 的数据输入来源。其中第一块 74LS373 的输入端是通过一片总线驱动器 74LS373 直接挂在单片机的数据口(P0 口)上,单片机把 74LS373作为外部存贮器一样的访问(只写,不读),为了不存储器的地址混淆,由于外部存储器为 8Kbyte,所以 74LS373 的地址不能低于 8Kbyte,即要在:0x2000(2000H)以上;访问时都是用语句:MOVX DPTR,A ,为了区分是写存储器操作还是写 74HC273 操作,每一块 74LS373 的时钟(CLK)端相连在一齐连到或门的输出端,或门的输入端接单片机的 P3.3 口和写信号 P3.6 口,其中 P3.3 口作为或门的控制信号,当 P3.3 口为高电平时,或门关闭,此时写存储器时就不会干扰 74LS373;当 P3.3 为低电平时,或门打开,此时 CLK 和 P3.6 口相通,此时就可以写 74LS373,由于写之前已经把它的地址定为 8Kbyte 以上,所以也不会影响存储器。经过这样处理后,CPU 向 74LS373 每写一个字节的数据只占用两个机械周期,不用等待,速度可以上到很高;同时,连接线只用到 9 根,而且显示模块之间的级联变得非常简单。 图 行扫描输出 由于本系统的显示颜色有 3 种,可以任意选择。而改变显示屏显示颜色的方法有两种:一、列数据分为红、绿两种锁存,只要把数据锁存到红色的锁存器里,那么就显示红色,把数据锁存到绿色的锁存器里,那么就显示绿色,把数据同时锁存到红色和绿色的锁存器里,那么就显示黄色,这样就可以实现颜色的改变。但由于显示屏比较大,列数据锁存器就需要很多,所以这种方案 的缺点是:硬件电路复杂、布线困难、 电路可靠性差、成本高;二、行扫描分为红色扫描、绿色扫描,当启动红色扫描时就显示红色,当启动绿色扫描时就显示绿色,若同时启动红色、绿色扫描,就显示黄色。由于整个屏幕都是采用 16 行扫描的方式,所以行扫描电路(图 3.4)不会受到显示屏大小的影响,经过比较后,本系统最后采用了第二种方案。 图 3.4行选通信号,通过两块 74LS154(416 译码器)译码获得,一块选通红色,另一块选通绿色。通过 P3.4、P3.5 口控制选择颜色:P3.4 控制选择红色(低电平有效) ,P3.5 控制选择绿色(你电平有效) 。两块 74LS154 的数据端口分别相连后挂在单片机的P1 口上(只用到低四位,高四位留空) 。4软件设计 4.1 Visual Basic 中串口通讯的应用 随着科技的发展,现代化的生产对智能化的要求越来越高,如何迅速获取现场数据以便及时对生产过程进行调控,是其关键所在。现在大量的智能仪器或数据采集模块都采用了 RS232 或 485 通讯接口,通过相应的通讯协议,将测试、采集的数据传输给上位机,以满足各种形式的数据处理的要。VisualBasic60(以下简 VB)是许多工程技术人员熟悉和常用的应用程序开发软件,VB 以其简单易学、32 位面向对象的程序设计等特点,倍受广大计算机开发者的青睐,已广泛地应用于各个领域;如何用 VB 编写数据通讯程序,并进行数据处理,意义重大。 用 VB 开发串口通讯一般有两种方法:一是采用 VB 自身的标准控件 Mscomm 来实现;另一种是利用 windows 的通讯 API 函数。4.1.1 通讯基础知识 一般来说,计算机都有一个或多个串行端口,它们依次为 com1、Com2、,这些串口还提供了外部设备与 PC 进行数据传输和通信的通道。这些串口在 CPU 和外设之间充当解释器的角色。当字符数据从 CPU 发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给 CPU,再进一步说,在操作系统方面,Windows 用通信驱动程序(COMM.DRV)调用 API 函数发送和接收数据,当用通信控件或声明调用 API 函数时,它门由 COMM. DRV 解释并传递给设备驱动程序,作为一个 vB 程序员,要编写通信程序只需知道通信控件提供给 Windows 通信 API 函数的接口即可换句话说,只需设定和监视通信控件的属性和事件即可。 4. Mscomm 控制使用示例 4. 数据的发送 VB 发送数据有两种:一、发送字符数据;二、发送二进制数据。 1) 发送字符数据 在通讯中以单字符方式逐个发送数据时,每一个数据范围是:0128。如发送 58给单片机则可以这样表示: Mscomm1.Output=Chr(50) 发送数据(16 进制) 在通讯中以多字符方式发送数据时,发送的是 Ascii 码值。如发送“LED 显示屏”则可以这样表示: Dim data as String 定义发送数据变量 data=” LED 显示屏” 给变量赋值 Mscomm1.Output=data 发送数据 2) 发送二进制数据 以发送字符方式时,发送的数据范围只能是:0128,而单片机经常处理的数据范围是 0255,那么怎么样发送大于 128 的数据呢?方法是采用二进制方式发送数据。首先定义一个二进制类型的数组,然后把要发送的数值赋给二进制数组,再通过Mscomm 发送。如发送数值 220 的具体过程如下: Dim data(0) as byte 定义发送数据数组 Data(0)=220 给数组赋值 Mscomm1.output=data(0) 发送数据 4. 数据的接收 接收数据有两种方式,一、以文本方式接收(InputMode=0) ;二、以二进制方式接收(InputMode=1) 。 1) 以文本方式接收数据 在 InputMode=0 的模式下,是以文本方式接收数据,在接收数据之前,我们必须先定义一个字符串变量,用以接收数据缓冲区里的数据,具体过程如下: Dim receive As String * 1 定义接收数据变量 Select Case MSComm1.CommEvent 判断事件类型 Case comEvReceive 事件类型为接收数据 receive = MSComm1.Input 接收数据 End Select 2) 以二进制方式接收数据 在 InputMode=1 的模式下,是以二进制方式接收数据,在接收数据之前,我们必须先义一个二进制类型的数组,用以接收数据缓冲区里的数据,过程如下: Dim receive(n) As Byte 定义接收数据变量 Select Case MSComm1.CommEvent 判断事件类型 Case comEvReceive 事件类型为接收数据 Mscomm1.InputMode=1 接收方式为二进制方式 For k=0 to n Receive(k) = MSComm1.Input 接收数据 Next k End Select 4.3 单片机显示控制的软件设计 本文设计的 LED 点阵显示屏可以实现左移、掉下、上升三种显示方式。软件流程图(图 4.1),有红色、绿色、黄色三种颜色可选。其中只有左移方式可以实现多于一屏内容的显示,其它的显示方式只能显示一屏的内容。显示方式和显示颜色的设置由微机控制,串行中断软件流程图(图 4.2)微机在传送点阵字模数据时,先传显示颜色,再传送显示方式,最后传送点阵数据。显示过程由单片机定时中断程序控制,显示流程图(图 4.3),每定时中断一次点亮一行,定时中断时间为 0.8ms,每中断 16 次,即可对整个显示屏扫描一次,完成一屏信息的刷新,每秒显示画面数达 78 屏,可保证画面无闪烁感。编程采用的是 C 言语,应用 C51 编程具有以下优点: C51 管理内部寄存器和存储器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题。 程序由若干函数组成,具有良好的模块结构。 有丰富的子程序库可直接引用,从而大大减少用户编程的工作量。 C 言语和汇编言语可以交叉使用,汇编言语程序代码短、运行速度快,但复杂运算编耗时。用汇编言语编写与硬件有关的部分,用 C 言语编写与硬件无关的运算部分程序,充分发挥两种言语的长处,提高开发效率。 软件流程图 4.1 具体作法如下;首先进行初始化,然后判断 WAY 是否为 0,如果是则进行左移,不是再判断 WAY 是否为 1,如果是则进行上升移动,不是再判断 WAY 是否为 2,如果是则进行掉下移动,不是则返回。图 4.1 单片机主程序流程图软件流程图 4.2 具体作法如下;初始化关串口中断,判断 SBUF 是否为 1,如果是则进行联机检测,不是再判断 SBUF是否为 2,如果是则进行调速接收速度指数,不是再判断 SBUF 是否为 3,如果是则进行调色接收颜色指数,不是再判断 SBUF 是否为 4,如果是则进行开/关显示屏,接收开关数据,不是再判断 SBUF 是否为 5,如果是则进行更新内容接收数据,不是再判断 SBUF 是否为 6,如果是则进行校对,不是则开串口中断并返回。图 4.2 单片机串行中断流程图软件流程图 4.3 具体作法如下;首先显示中断入口(T0),T0 重装初值,然后更新一列数据并调用行选通子程序,最后中断返回。图 4.3 单片机定时中断显示流程图4.3.1 编程思想 动态显示的效果是由一幅幅不同内容的屏幕画面组成的,因此在软件设计上,只要按一定的时间间隔改变显示缓冲区的内容,如左移则使显示缓冲区的点阵数据左移一列,即可实现动态移位的效果,由于显示缓冲区的所有数据左移 1 列需要一定的时间,不可能在两次中断间隔时间内实现这一处理过程,为此需要设置两个显示缓冲区,一个用于保存当前屏幕显示的数据,另一个用于对当前数据的处理。到达换屏时间间隔后,切换当前显示缓冲区到数据已处理的显示缓冲区,然后对另一显示缓冲区进行数据处理。为了保证动态显示正常,最重要的问题是如何分配刷新显示屏的定时时间和显示缓冲区数据处理时间,保证二者的处理时间不冲突,本文采用的方法是使显示缓冲区的数据处理在多次定时中断程序执行之间的时间间隔内完成。 数据处理时间 = (定时中断时间 传数据时间)* 中断次数 这样只要合理的设定中断次数就可以保证换屏间隔时间内有足够的时间处理数据。4.3.2 字模处理 从字有长度来看,汉字占两个字节,而数字占一个字节,那么就有:汉字字模为32 个字节(16*16 个点) ,ASCII 码字符的字模为 16 个字节(8*16 个点) 。这样字模的长度不同,处理起来就有点困难,针对这种情况,本文提出了一种新型的字模处理方法:把汉字拆分成两半,这样就和 ASCII 码的字模统一起来了,使得处理汉字的和处理 ASCII 码一样。字模的存储是按顺次储存在数据存储区里,如屏字的字模(图4.4)在数据存储区里是这样存放的: uchar code tab32= 0x00,0x3f,0x20,0x20,0x3f,0x22,0x21,0x2f, 0x22,0x22,0x3f,0x22,0x22,0x42,0x84,0x08, 0x08,0xfc,0x08,0x08,0xf8,0x20,0x48,0xfc, 0x20,0x24,0xfe,0x20,0x20,0x20,0x20,0x20; 图 4.4字模处理4.3.3 左移效果编程 在显示屏幕比较小的情况下,为了能显示更多的内容,普遍采用的方法是移位显示,移位显示广泛应用于条型显示屏,它的特点是可以显示的内容比屏幕大、显示效果良好、编程简单等。以下将以条型显示屏(16*128 点)的左移方式编程为例,说明左移的实现方法: 一屏的数据为 256 个字节,那么我们先在数据存贮区里开辟 512 个字节的显示缓冲区(分为两个显存) ,一个用以保存当前要显示的内容,另一个用以数据处理。要实现左移的效果,原理是,每隔一段时间向显示缓冲区里加入一列一数据,那么怎么实现加入一列的数据呢?其实就是,第一个字节左移一位,保存于变量 A 中,第二个字节右移 7 位,保存于变量 B 中,A 和 B 变量相或,再把结果保存于 A 中,这样就完成了第一个字节数据的处理,一行有 16 个字节的数据要处理,所以我们要设一个 16 次循环,如此循环 16 次后,便处理完了一行的数据,而每个字又有 16 行,所以我们再 16次循环里再设一个 16 次的外循环,如此循环 16 次后,整屏的数据都处理完了,我们便启动更新信号,便可以交换显存了,显示程序就显示刚才处理好了的内容,而些时CPU 又对另一个显存作数据处理了,处理完后再交换显示。这样便可能动态的实现左移的效果了。程序流程图如图 4.5 所示,具体源程序见附录 1。 图 4.5 图 上升效果编程 本系统设计的上升显示效果只能显示一屏的内容,效果是:内容从显示屏底部慢慢地上升,整行字出完后,定一会,让人们可以看清显示的内容,接着闪三下,提醒显示内容即将要退出了,然后显示内容继续向上移,直至消失,这样便完成了一屏内容的显示。实现的方法是:设一个 16 次循环,在第一次循环里,显存只取显示内容的第一行数据,放到显存的最后一行里。在第二次循环里,显存取显示内容的第一行和第二行数据,第一行数据放到显存的第 15 行里,第二行数据放到显存的第 16 行里,如此下去,循环 16 次之后整行的内容都显示出来了。而退出的方法也是差不多。只不过每次取的行数不同而尔。程序流程图如 4.6 所示,具体源程序见附录 2。 4.3.5 掉下效果编程 掉下效果的编程和上升的编程思想是一样的,也是设一个 16 次的循环,在第一次的循环里,只取显示内容的最后一行的数据,放到显存的第一行里;在第二次循环里,取显示内容的 15 行数据放到显存的第一行里,而显示的第二行存放显示内容的第 16 行数据。如此循环 16 次后,整屏的数据都出来了。退出也是一样的原理,程序流程图如 4.7 所示,具体源程序见附录 3。 图 4.7 图 4.64.4 上位机软件设计 4.4.1 设计概述 上位机所支持的操作系统有:Windows98、Windows me、Windows 2000 和 XP。上位机是整个显示系统的大脑,控制着系统的各种操作,它的主要功能有: (1)操作者与系统对话的窗口,操作者通过主程序获得系统信息,向系统发出各种命令。设计采用以人为本的思想,设计出最人性化、图形化的界面,给出详细的系统帮助信息。 (2)串口通讯模块(波特率为:9600b/s) ,实现各种数据的发送和接收,并应用CRC 检错算法处理通讯数据,保证数据传输的正确性。 (3)修改字模信息功能,本系统的字库是自带的,并非 Windows 自带的,是结合实际情况,另行开发而来的,字体为标准的宋体,系统软件具有修改字模的功能,以满足特殊场合显示的需求。 (4)定时更新显示功能,系统软件具有 10 段定时更新功能,以适应一些显示内容和显示时间已经固定的场合。如:汽车站里的班车时间显示系统。 4.4.3 上位机串口通讯软件 (1)界面设计 新建一个窗体 From1,在上面添加以下控件: 1、ProgressBar1 2、Commad1、Commad2 3、Frame1、Frame2 4、Combo1、Combo2 其属性设置如表 1: 表 1对象 属性 属性值 说明ProgressBar1 指示传输进程Commad1 Caption 启动 启动数据传输Command2 Caption 退出 退出窗体Frame1 Caption 颜色 标签标题Frame2 Caption 方式 标签标题Combo1 Style 2 下拉列表框Combo2 Style 2 下拉列表框(2)传输函数编程流程图如图 4.8 所示,首先对 8051 串口进行初始化,与上位机通讯接收数据,判断数据是否接收完,如果没有继续接收,如果接收完则计算地址偏移量然后从字库中取字,最后固定显示并移动。源程序见附录 4。5 系统设计总结 本设计针对显示内容可任意修改、显示方式和颜色可调、显示屏大小可任意设定等要求,采用了显示板模块化、产品化设计,设计出一套适用范围广、显示效果好、质量可靠的智能 LED 显示系统。 (1)采用灵活的积木式结构设计,安装快捷,更换、维修方便,采用显示单元板或显示单元箱体,可按客户要求任拼凑装配所需显示屏尺寸,并且便于维护。 (2)模块化电路系统,电路设计按照功能分成不同模块,每个模块之间仅需要极少的连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源部部门工作总结
- 扶手涂氟碳油漆施工方案
- 诊所运营方案范本
- 人防工程出让方案范本
- 华夏保险岗前培训考试及答案解析
- 青岛驾驶员安全考试题库及答案解析
- 护理学导论题库简答题及答案解析
- 分子影像成像技术
- 边坡沟渠施工方案范本
- 对绿化施工方案的点评
- 医院死亡报卡培训课件
- catia考试图纸题目及答案
- pos机风险管理办法
- 2025年京东集团招聘笔试指南与面试技巧
- 起重机械定期检查与维护方案
- 2025年行业机器人边缘计算技术应用与场景分析
- 国际物流运输合同(标准版)
- 动物样品采集培训课件
- (2025年)医疗机构工作人员廉洁从业九项准则考核试题(+答案)
- 手机桌面市场深度解析
- 2025年江西省高考物理真题
评论
0/150
提交评论