湖南理工学院基于单片机点阵led电子指示牌的设计
收藏
资源目录
压缩包内文档预览:
编号:512590
类型:共享资源
大小:712.78KB
格式:RAR
上传时间:2015-11-11
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计
- 资源描述:
-
湖南理工学院基于单片机点阵led电子指示牌的设计,毕业设计
- 内容简介:
-
基于单片机点阵 LED电子指示牌的设计 设计者 : 李震 指导老师 :李 波 nts选题的目的和意义: LED显示屏已经广泛应用在信息显示系统中, LED点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。 目前大多数的 LED点阵显示系统自带字库 ,显示内容不能随意更改。本文提出一种利用 PC机和单片机控制的 LED显示系统通讯方法。通过标准的 RS232/485转换模块可以实现对显示系统的远程控制 ,可随时改变显示的内容。 nts实现的主要功能: (1) 数据处理; (2) 串行通讯; (3) LED点阵显示; nts系统方案设计: 基于单片机点阵 LED电子指示牌的系统主要由主控计算机、通信部分、控制部分、显示部分和附属部分五大部分构成 ,结构图如下所示; nts 硬件设计: 总体可以分为四部分: (1).计算机通讯 ; (2).数据存贮 ; (3).列数据锁存 ; (4).行扫描输出 . nts软件设计 本文软件设计分为两大部分 ; 一 .下位机的设计 (单片机显示控制的软件设计 ) 1).单片机串行中断的设计 2).单片机定时中断显示的设计 二 .上位机的设计 nts致 谢 在本论文完成之际,衷心感谢指导老师李波老师在课题的选题、设计、论文的撰写等各方面的悉心指导,和研发过程中提供的资金设备支持;在整个课题的设计和调试过程中,给予我各方的支持和技术上的帮助;最后还要感谢各位领导、老师、同学们的热情相助。 nts上位机串口通讯 流程图 Y 开始 8051串口初始化 与上位机通讯接收数据 数据是否接收完 计算地址偏移量 从字库中取字 固定显示 移动 N nts单片机主程序流程图 Fresh=0 上电初始化 程序入口 WAY=0? WAY=1? WAY=2? 左移 上升 掉下 N N N Y Y Y Fresh=0 Fresh=0 Fresh=1 nts计算机通讯 nts列数据锁存 nts行扫描输出 nts湖南理工学院毕业设计 (论文 ) 第 1 页 共 32 页 1 概述 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 课题来源及研究意义 nts湖南理工学院毕业设计 (论文 ) 第 2 页 共 32 页 随着 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显示屏的应用领域广泛,采用模块化、规范化设计方案,边设计边试验和仿真设计策略,从基本的显示功能入手,逐步完成系统各部分的设计。在设计过程中既保证实施上可行、运行上可靠,又运用专家控制、实时数据库等先进技术提高系统性能,使系统智能化,并充分考虑到应用上的灵活性,系统实现的经济性,使之成为一nts湖南理工学院毕业设计 (论文 ) 第 3 页 共 32 页 个实用的、有效益的系统。 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 nts湖南理工学院毕业设计 (论文 ) 第 4 页 共 32 页 系统的基本组成框图 (图 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(用于共阳方式 )功率三极管,行的逻辑控制可选用三一八译码方式和直接行线控制方式。译码方式是应nts湖南理工学院毕业设计 (论文 ) 第 5 页 共 32 页 用三条行控制线控制一个三一八译码器 (如 74LS138 等 ),八选一顺序控制八条行线。直接行线控制方式是比较简单的,这里就不赘述了。在应用串行控制驱动系统时,尽管串行移位芯片具有级联功能,但设计时要考虑时钟信号、 sB信号、行控制信号的级联驱动向题。另外为提高单元的多级级联的数量,设计时要考感到每个信号的传输延迟,以保证控制时序的正确运行。 2.2 器件选 择 2.2.1 单片机的选择 单片机是单芯片形态作为嵌入式应用的计算机 , 它有惟一的 , 专门为嵌入式应用而设计的体系结构和指令系统 , 加上它的芯片级体积的优点和在现场环境下可高速可靠地运行的特点 , 因此单片机又称之为嵌入式微控制器 (embedded micro controller)。 但是 , 在国内单片机的叫法仍然有着普遍的意义 。 我们已经把单片机理解为一个单芯片形态的微控制器 , 它是一个典型的嵌入式应用计算机系统 。 目前按单片机内部数据通道的宽度 , 把它们分为 4位 , 8位 , 16位及 32位单片机 。 单片机独特的 结构决定了它具有如下特点 。 (1)高集成度 ,高可靠性 。 单片机将各功能部件集成在一块晶体芯片上 , 集成度很高 ,体积自然也是最小的 。 芯片本身是按工业测控环境要求设计的 , 内部布线很短 , 其抗工业噪音性能优于一般通用的 CPU.单片机程序指令 , 常数及表格等固化在 ROM 中不易破坏 , 许多信号通道均在一个芯片内 , 故可靠性高 。 (2)控制功能强 。 为了满足对对象的控制要求 , 单片机的指令系统均有极丰富的条件 : 分支转移能力 , I/O 口的逻辑操作及位处理能力 , 非常适用于专门的控制功能 。 (3)低电压 , 低功耗 。 为了满足广泛使用于便携式系统 , 许多单片机内的工作电压仅为 1.8V 3.6V, 而工作电流仅为数百微安 。 (4)优异的性能价格比 。 单片机的性能极高 。 为了提高速度和运行效率 , 单片机已开始使用 RISC流水线和 DSP等技术 。 单片机的寻址能力也已突破 64KB 的限制 , 有的已可达到 1MB和 16MB, 片内的 ROM容量可达 62MB, RAM容量则可达 2MB。 由于单片机的广泛使用 , 因而销量极大 , 各大公司的商业竞争更使其价格十分低廉 , 其性能价格比极高 。 由于单片机具有体积小、功能强、性能价格比较高、系统扩展方便、硬件设计简单等优点,而且单片机开发工具具有很强的软 、硬件调试功能,使研制单片机应用系统极为方便,加之现场运行环境的可靠性,因此使单片机能满足许多小型对象的嵌入式应用要求。现在 ,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。 nts湖南理工学院毕业设计 (论文 ) 第 6 页 共 32 页 AT89S52单片机主要特性 及引脚图如图 2.3 所示 : 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命: 1000写 /擦循环 数据保留时间: 10 年 全静态工作: 0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O线 两个 16位定时器 /计数器 5 个中断源 可编程串行信道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 范区 图 2.3 2.2.2 时钟电路的选择 采用美国达拉斯 ( 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 nts湖南理工学院毕业设计 (论文 ) 第 7 页 共 32 页 模块 1R1YG(绿红) 显示屏 像素点数 64*16=1024 尺寸(mm) 480*120 面积( ) 0.576 最大功耗 (瓦 /平方米 ) 100(单) /200(双) 扫描速度 大于 75Hz 视角 水平视觉 160,垂直视觉 160 环境要求 -20 60 供电要求 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 的方式传输给单片机,单片机接收到nts湖南理工学院毕业设计 (论文 ) 第 8 页 共 32 页 后再保存到数据存贮器 6264 中。数据接收正确并处理存入显示缓冲区后,即控制显示屏的显示。显示方式采用逐行扫描方式,单片机首先从显示缓冲区中取出第一行点阵数据,通过数据口 (P0)口写入 LED 显示屏的列锁存器 74HC273,由于 74HC273 是采用了首尾级联的方 式连接,所以数据的传输属于并行数据的串行传输。送数据的顺序是,先送该行数据的最后一个,最后送第一个。一行的数据写完后,再启动 74LS154( 4-16译码器)点亮相应的行。 图 3.1 3.2.3 计算机通讯 LED 显示屏和电脑的通讯方式采用了标准 RS232 接口,电路原理图如图 3.2 所示,通讯方式为 10位的异步通讯。 RS232接口实际上是一种串行通信标准,是由美国 EIA(电子工业联合会)和 BELL 公司一起开发的通讯协议,它对信号线的功能、电气特性、连接器等都有明确的规定。由于 RS-232 接口的 EIA 是 用正负电平表示逻辑关系的 (-3V-15V为 1、 +3V +15V 为 0)。与 TTL以高低电平表示逻辑关系不同,因此,为了能够和nts湖南理工学院毕业设计 (论文 ) 第 9 页 共 32 页 计算机接口通信,必须在 EIA 电平和 TTL 电平之间进行电平转换。 MAX232 芯片可完成TTL-EIA电平转换,且只用单一 +5V电源,因此得到广泛应用。由于采用的是标准 RS232接口,所以传输距离不能很远,当传输距离超过 15M,就要采用 422 或 485 接口,则只要加上一块 RS232转 422/485 电路模块就可以了。 图 3.2 3.2.4 列数据锁存 刷新的状态下,整个屏幕分为 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 每写一个字节的数据只占用两个机械nts湖南理工学院毕业设计 (论文 ) 第 10 页 共 32 页 周期,不用等待,速度可以上到很高;同时,连接线只用到 9根,而且显示模块之间的级联变得非常简单。 图 3.3 3.1.5 行扫描输出 由于本系统的显示颜色有 3种,可以任意选择。而改变显示屏显示颜色的方法有两种:一、列数据分为红、绿两种锁存,只要把数据锁存到红色的锁存器里,那么就显示红色,把数据锁存到绿色的锁存器里,那么就显示绿色,把数据同时锁存到红色和绿色的锁存器里 ,那么就显示黄色,这样就可以实现颜色的改变。但由于显示屏比较大,列数据锁存器就需要很多,所以这种方案 的缺点是:硬件电路复杂、布线困难、 电路可靠性差、成本高;二、行扫描分为红色扫描、绿色扫描,当启动红色扫描时就显示红色,当启动绿色扫描时就显示绿色,若同时启动红色、绿色扫描,就显示黄色。由于整个屏幕都是采用 16行扫描的方式,所以行扫描电路(图 3.4)不会受到显示屏大小的影响,经过比较后,本系统最后采用了第二种方案。 nts湖南理工学院毕业设计 (论文 ) 第 11 页 共 32 页 图 3.4 行选通信号,通过两块 74LS154( 4 16 译码器)译码获得,一块选通红 色,另一块选通绿色。通过 P3.4、 P3.5口控制选择颜色: P3.4控制选择红色(低电平有效), P3.5控制选择绿色(你电平有效)。两块 74LS154的数据端口分别相连后挂在单片机的 P1口上(只用到低四位,高四位留空)。 nts湖南理工学院毕业设计 (论文 ) 第 12 页 共 32 页 4软件设计 4.1 Visual Basic 中串口通讯的应用 随着科技的发展,现代化的生产对智能化的要求越来越高,如何迅速获取现场数据以便及时对生产过程进行调控,是其关键所在。现在大量的智能仪器或数据采集模块都采用了 RS 232或 485 通讯接口,通过相应的通讯协议,将测试、采集的数据 传输给上位机,以满足各种形式的数据处理的要。 VisualBasic6 0(以下简 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) 发送字符数据 在通讯中以单字符方式逐个发送数据时,每一个数据范围是: 0 128。如发送 58给单片机则可以这样表示: Mscomm1.Output=Chr(50) 发送数据( 16 进制) 在通讯中以多字符方式发送数据时,发送的是 Ascii码值。如发送“ LED显 示屏”则可以这样表示: Dim data as String 定义发送数据变量 data=” LED显示屏” 给变量赋值 Mscomm1.Output=data 发送数据 nts湖南理工学院毕业设计 (论文 ) 第 13 页 共 32 页 2) 发送二进制数据 以发送字符方式时,发送的数据范围只能是: 0 128,而单片机经常处理的数据范围是 0 255,那么怎么样发送大于 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点阵显示屏可以实现左移、掉下、上升三 种显示方式。软件流程图nts湖南理工学院毕业设计 (论文 ) 第 14 页 共 32 页 (图 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 单片机主程序流程图 nts湖南理工学院毕业设计 (论文 ) 第 15 页 共 32 页 软件流程图 4.2具体作法如下 ; 初始化关串口中断 ,判断 SBUF 是否为 1,如果是则进行联机检测 ,不是再判断 SBUF是否为 2,如果是则进行调速接收速度指数 ,不是再判断 SBUF 是否为 3,如果是则进行调色接收颜色指数 ,不是再判断 SBUF 是否为 4,如果是则进行开 /关显示屏 ,接收开关数据 ,不是再判断 SBUF是否为 5,如果是则进行更新内容接收数据 ,不是再判断 SBUF是否为 6,如果是则进行校对 ,不是则开串口中断并返回。 图 4.2 单片机串行中断流程图 软件流程图 4.3具体作法如下 ; 首先显示 中断入口 (T0),T0 重装初值 ,然后更新一列数据并调用行选通子程序 ,最后中断返回。 nts湖南理工学院毕业设计 (论文 ) 第 16 页 共 32 页 图 4.3 单片机定时中断显示流程图 4.3.1 编程思想 动态显示的效果是由一幅幅不同内容的屏幕画面组成的,因此在软件设计上,只要按一定的时间间隔改变显示缓冲区的内容,如左移则使显示缓冲区的点阵数据左移一列,即可实现动态移位的效果,由于显示缓冲区的所有数据左移 1列需要一定的时间,不可能在两次中断间隔时间内实现这一处理过程,为此需要设置两个显示缓冲区,一个用于保存当前屏幕显示的数据,另一个用于对当前数据的处理。到达换屏 时间间隔后,切换当前显示缓冲区到数据已处理的显示缓冲区,然后对另一显示缓冲区进行数据处理。为了保证动态显示正常,最重要的问题是如何分配刷新显示屏的定时时间和显示缓冲区数据处理时间,保证二者的处理时间不冲突,本文采用的方法是使显示缓冲区的数据处理在多次定时中断程序执行之间的时间间隔内完成。 数据处理时间 = (定时中断时间 传数据时间) * 中断次数 这样只要合理的设定中断次数就可以保证换屏间隔时间内有足够的时间处理数据。 4.3.2 字模处理 从字有长度来看,汉字占两个字节,而数字占一个字节,那么 就有:汉字字模为 32个字节( 16*16个点), ASCII码字符的字模为 16个字节( 8*16个点)。这样字模的长度不同,处理起来就有点困难,针对这种情况,本文提出了一种新型的字模处理方法:把汉字拆分成两半,这样就和 ASCII 码的字模统一起来了,使得处理汉字的和处理 ASCII码一样。字模的存储是按顺次储存在数据存储区里,如屏字的字模 (图 4.4)在数据存储区里是这样存放的: nts湖南理工学院毕业设计 (论文 ) 第 17 页 共 32 页 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。 nts湖南理工学院毕业设计 (论文 ) 第 18 页 共 32 页 图 4.5 图 4.6 4.3.4 上升效果编程 本系统设计的上升显示效果只能显示一屏的内容,效果是:内容从显示屏底部慢慢地上升,整行字出完后,定一会,让人们可以看清显示的内容,接 着闪三下,提醒显示内容即将要退出了,然后显示内容继续向上移,直至消失,这样便完成了一屏内容的显示。实现的方法是:设一个 16 次循环,在第一次循环里,显存只取显示内容的第一行数据,放到显存的最后一行里。在第二次循环里,显存取显示内容的第一行和第二行数据,第一行数据放到显存的第 15行里,第二行数据放到显存的第 16行里,如此下去,循环 16 次之后整行的内容都显示出来了。而退出的方法也是差不多。只不过每次取的行数不同而尔。 程序流程图如 4.6所示 ,具体源程序见附录 2。 4.3.5 掉下效果编程 掉下效果的编程 和上升的编程思想是一样的,也是设一个 16 次的循环,在第nts湖南理工学院毕业设计 (论文 ) 第 19 页 共 32 页 一次的循环里,只取显示内容的最后一行的数据,放到显存的第一行里;在第二次循环里,取显示内容的 15 行数据放到显存的第一行里,而显示的第二行存放显示内容的第16 行数据。如此循环 16 次后,整屏的数据都出来了。退出也是一样的原理, 程序流程图如 4.7所示 ,具体源程序见附录 3。 图 4.7 图 4.6 4.4 上位机软件设计 4.4.1 设计概述 上位机所支持的操作系统有: Windows98、 Windows me、 Windows 2000 和 XP。上位机是整个显示系统的大脑,控制着系统的各种操作,它的主要功能有: ( 1)操作者与系统对话的窗口,操作者通过主程序获得系统信息,向系统发出各种命令。设计采用以人为本的思想,设计出最人性化、图形化的界面,给出详细的系统帮助信息。 nts湖南理工学院毕业设计 (论文 ) 第 20 页 共 32 页 ( 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显示系统。 nts湖南理工学院毕业设计 (论文 ) 第 21 页 共 32 页 ( 1)采用灵活的积木式结构设计,安装快捷,更换、维修方便,采用显示单元板或显示单元箱体,可按 客户要求任拼凑装配所需显示屏尺寸,并且便于维护。 ( 2)模块化电路系统,电路设计按照功能分成不同模块,每个模块之间仅需要极少的连线,大大提高了系统稳定性、可靠性。安装、调试、维护简单方便,难度大大降低。 ( 3)从方案的设计、硬件软件的设计、器件的选取、制造工艺等诸多方面采取有效可行的技术手段,全面考虑各种可能存在的干扰因素,确保系统稳定安全可靠的运行。 ( 4)应用面向对象的编程言语实现了界面友好、图像显示、内容丰富、方便扩展的人机接口。 ( 5)采用了循环冗余校验( CRC)技术,保证上位机与下位机通信 的可靠性,并在上位机通信模块中采用了第三方开发类( Mscomm 控制),简化了串口通信的软件设计,提高了开发效率。 ( 6)超集成控制系统,集中控制的设计思路。将 90%的控制过程集中在主控系统上,而显示屏主体仅有基本的驱动电路,而没有复杂的控制电路,极大的提高了 LED显示系统控制部分的准确性、稳定性、可靠性,从而增加了整个系统的可靠性和可维护性,大大降低了控制线路的费用,降低了 LED显示系统的硬件成本。 ( 7)可实现分布式扫描技术,显示部分的扫描采用扫描控制技术,显示部分可以被分成不同的单元,独立进行扫描。 单元之间的信号传递采用信号锁存技术进行同步移位。显示的稳定性得到了极大的提高。 系统的实际运行结果表明,本系统控制方案合理,工作可靠性高,人机界面友好,操作方便。 nts湖南理工学院毕业设计 (论文 ) 第 22 页 共 32 页 参考文献 1 陈季琪,微机在测控领域的应用,北京,机械工业出版社, 1997 . 2 陈保江等, MCS单片机应用系统实用指南,北京,机械工业出版社, 1997 . 3 马忠梅,单片机的 C语言应用程序设计北京 航空航天大学出版杜, 1999.1 . 4 罗浚民,基于信息分段动态预装的滚动显示:电子技术, 2001 6 . 5 史惠康,中文版 VisualBasic5 0实用编程技术,中国水利水电出版社, 1999 . 6 李鸿吉, Visual Basic 6 0中文版编程方法详解,科学出版社, 2001 . 7 曹素芬,单片微型计算机原理与接口技术 M,东北大学出版社, 1994 2 . 8 何立民,单片机应用文集 (1)C,北京,北京航空航天大学出版社, 1993 7 9 丁爱萍, Visual Basic 程序设计,西安电子科技大学出版社, 2002.1 . 10 李群芳,单片机微型计算机与 接口技术,电子工业出版社, 2001.9 . 11 陆慰民, Visual Basic 程序设计教程( 6.0 版),高等教育出版社, 2000.7 . 12 张毅刚等, MCS51单片机应用设计,哈尔滨工业大学出版社, 1997 . 13 姜志海 ,单片机原理及应用 M,北京 :电子工业出版社 ,2005. 14 王家桢 ,传感器与变送器 M,北京 :清华大学出版社 ,1996. 15 赵文博 ,单片机语言 C51程序设计 M,北京 :人民邮电出版社 ,2005. 16 何立民 ,MCS-51 系列单片机应用系统配 置与接口技术 M,北京 :北京航空航天大学出版社 ,1990. 17 范风强 ,单片机语言 C51应用战集锦 M,北京 :电子工业出版社 ,2003. 18 戢卫平 ,单片机系统开发实例经典 M,北京 :冶金工业出版社 ,2006. 19 (美 )I.Scott MacKenzie,8051微控制器教程 ,清华大学出版社 ,2005. 20 诸昌钤 ,LED 显示屏系统原理及工程技术 ,电子科技大学出版社 ,2000. 21 周志敏 , LED驱动电路设计与应用 /电能变换与应用丛书 ,人民邮电出版社 ,2006. nts湖南理工学院毕业设计 (论文 ) 第 23 页 共 32 页 致 谢 在本论文完成之际,衷心感谢指导老师李波老师在课题的选题、设计、论文的撰写等各方面的悉心指 导,和研发过程中提供的资金设备支持;在整个课题的设计和调试过程 中,给予我各方的支持和技术上的帮助;最后还要感谢各位领导、老师、同学们的热情相助。 nts湖南理工学院毕业设计 (论文 ) 第 24 页 共 32 页 (附录 1) /* 左移 void rtol(void) uchar a,b,i,k,u,n; while(1) /- /判断内容改变没有 ? if(change=1)break; /- for(n=0;n8-i; a|=b; dispd=addr2+u+k*16; *dispd=a; /保存数据 while(jh=0); jh=0; /关交换信号 choose=choose; (附录 2) /* 上升 void rise(void) nts湖南理工学院毕业设计 (论文 ) 第 25 页 共 32 页 uchar i; uint k,g,t,m; /- dea
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。