【通信工程专业优秀论文】LED显示屏控制系统的分析与设计
毕业论文(设计) 题 目 LED显示屏控制系统的分析与设计 学生姓名 学 号 院 系 专 业 通信工程 指导教师 年 月 日前言一、问题的提出:用于图文显示的LED显示屏,如果只显示一些图形、文字,而对图像、动画以及信息的实时显示要求不高,而且信息的内容和屏与屏切换相对比较稳定,不需要固定计算机实时服务,只需要在控制显示屏的单片机中加入存储块,实现信息的保存功能通过无线发射机和无线接收机进行数据的传输,达到对LED显示屏的控制二、论文的主要研究内容:通过软件编辑实现图文编辑与传输采用习惯的Windows窗体,开启文本编辑区,完成图形和文字的编辑工作在控制系统中实现字模的提取与保存,无需在单片机中加入汉字库通过采用PC与无线发射机串行通讯方式,无线接受机接收信息发送给LED显示屏,从而完成信息的传输。
通过对点阵模块和控制电路的分析,确定LED显示屏的部件构成;通过对单片机及智能控制模块的分析,确定LED显示屏的组成结构和扫描驱动方式,实现LED显示屏的显示无线发射机硬件控制模块无线接收机硬件控制模块RS-232串口通信发射信息PC机控制系统单片机系统LED点阵显示屏行列扫描驱动三、本课题系统图四、论文的组织论文分为三个部分,分别是:系统的控制部分,无线数据传输系统部分以及LED显示屏工作部分具体组织安排如下:第一部分:LED显示屏控制系统的分析与设计这一部分主要由司红君同学设计,在这一部分中主要介绍以下内容:1、根据具体应用环境的要求,对整个系统进行详细的分析主要介绍: 1)整体分析对软件的整体结构、框架进行分析; 2)软件控制系统分析在本节中,对系统的编辑、保存、预览功能进行详细的分析与设计;2、核心控制系统的设计与实现,具体如下: 1)编辑功能设计与实现; 2)字模; 3)图像预处理的设计与实现; 4)在核心功能初步实现的基础上,对系统进行开发3、设备通讯,利用RS-232C串行通信实现PC机与无线传输机之间的数据传输第二部分:基于PIC的无线数据传输系统设计。
这一部分主要由王丽霞同学设计,在这一部分中主要介绍以下内容:1. 简单介绍PIC系列单片机2.无线数据传输发射机的设计1)以PIC16F84芯片为基本部件的无线数据传输发射机的各部原理2)发送信机控制Code码信号3)发送信机端的程式设计框图3.无线数据传输接收机的设计1)高频放大电路2)遥控接收机接收编码ST0、ST1和ST2的原理4.系统的调试1)发送信机的安装调试2)接收机调测,动作确认5.小结第三部分:LED显示屏工作原理这一部分主要由邓成富同学设计,在这一部分中主要介绍:1、介绍LED的历史、现状及发展2、单片机概述及LED显示屏的系统概述3、根据设计的要求,对LED显示屏系统整体结构框架进行分析,并介绍工作过程1、硬件设计主要完成LED显示屏的驱动任务,采用MCS51系列单片机控制,单片机主要负责与上位机间的通讯接收文件信息并保存,通过行列驱动器控制完成LED点阵的驱动和控制信号2、软件设计主要介绍LED点阵汉字的显示原理,并通过字模提取软件将1616点阵的汉字字模转换成832的编码,进行编辑语言输入目 录前 言 1摘 要 5第1章 绪论 51.1 LED显示屏的研究背景及意义 51.2 软件开发工具C++概述 6第2章 LED显示屏控制系统的系统分析 72.1 整体分析 82.2 计算机软件模块分析与设计 8第3章 串行接口 103.1 串行通信的工作原理 103.2 RS-232C串行通信简介 103.3 RS-232C引脚及使用 113.4 MAX-232介绍 12第4章 软件控制系统设计与实现 134.1编辑功能设计与实现 144.2字模提取 164.3效果添加与预览功能的设计与实现 184.4控制系统软件设计 20第5章 总 结 26参考文献 27致 谢 28Abstract 29LED显示屏控制系统的研究与设计司红君南京信息工程大学电子与信息工程学院,南京 210044摘要:本文根据LED图文显示屏系统的具体要求,通过查阅资料,分析并归纳出具体设计方案。
即系统体系结构、系统整体工作流程、软件控制系统的设计以及串行通信设计这个系统的工作流程是:通过软件控制系统提供的编辑工具完成图文编辑工作,对编辑的信息实现字模提取,然后可以根据系统提供的显示模式加载显示效果,确认为欲显示信息后保存文件,然后通过程序调用Windows函数,并采用RS-232C串口通信,实现数据到无线发射机的传输本文具体设计了三个模块:编辑功能模块,字模提取模块,效果添加及预览模块系统是否需要更新以及现有设计是否能够满足要求都有待于进一步的研究关键词: LED C++ 字模 串行通信第1章 绪论1.1 LED显示屏的研究背景及意义在当今现代信息化社会的高速发展过程中,大屏幕显示已经从公共信息展示等商业应用向消费类多媒体应用渗透随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的大屏幕显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心与传统的显示设备相比,这种未来的巨大需求让大屏幕显示技术成为众人目光的焦点:(1) LED显示屏色彩丰富,显示方式变化多样(图形、文字、三维、二维动画、电视画面等)、亮度高、寿命长,是信息传播设施划时代的产品。
2) LED显示屏是集光电子技术、微电子技术、计算机技术、信息处理技术于一体的高技术产品,可用来显示文字、计算机屏幕同步的图形它以其超大画面、超强视觉、灵活多变的显示方式等独居一格的优势,是目前国际上使用广泛的显示系统3) LED显示屏应用广泛,金融证券、银行利率、商业广告、文化娱乐等方面,有巨大的社会效益和丰厚的经济效益在其历史的演变过程中,出现了多种信息传播媒体:但就其性能看:如阴级管(crt)或石英管(dv)大型电视,成本非常昂贵,在不需要超大画面且在室内使用时效果尚可;彩色液晶显示同样成本昂贵、电路复杂,面积有限,受视频角的影响非常大,可视角度很小;影象投影设备亮度小、清晰度差(画面受光不均匀);电视墙表面有分割线,视觉上有异物感,室外应用时亮度效果差而LED显示屏以其受空间限制较小,并可以根据用户要求设计屏的大小,具有全彩色效果,视角大,可以用于显示文字、图案、图象、动画、视频、录象信号等各种信息的特点得到了突飞猛进的发展 LED显示屏的发展主要经历了三个阶段:1、1990年以前LED显示屏的成长时期一方面,受LED材料器件的限制,LED显示屏的应用领域没有广泛开展;另一方面,显示屏控制技术基本上是通讯控制方式,客观上影响了显示效果。
这一时期的LED显示屏在国外应用较广,国内很少,产品以红、绿双基色为主,控制方式为通讯控制,灰度等级为单点4级调灰,成本较高2、1990-1995年,这一段是LED显示屏迅速发展的时期进入九十年代,全球信息产业高速增长,信息技术各个领域不断突破,LED显示屏在LED材料和控制技术方面也不断出现新的成果蓝色LED晶片研制成功,全彩色LED显示屏进入市场;电子计算机及微电子领域的技术发展,在显示屏控制技术领域出现了视频控制技术,显示屏灰度等级实现16级灰度和64级灰度调灰,显示屏的动态显示效果大大提高,产品应用领域涉及金融证券、体育、机场、铁路、车站、公路交通、商业广告、邮电电信等诸多领域,特别是1993年证券股票业的发展更引发了LED显示屏市场的大幅增长LED显示屏在平板显示领域的主流产品局面基本形成,LED显示屏产业成为新兴的高科技产业3、 1995年以来,LED显示屏的发展进入一个总体稳步提高产业格局调整完善的时期进入新世纪,光电子产业得到广泛的重视,中国加入WTO、北京申奥成功等,成为LED显示屏产业发展的契机,LED显示屏必将得到飞跃发展[5] 1.2 软件开发工具C++概述 C++语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。
C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性 VC++作为一个面向对象的开发工具,而不同于传统的基于过程的编程工具,所以在本文中必须明确以下几个概念:1、对象 从概念上讲,对象代表着正在创建的系统中的一个实体例如,在一个学校管理系统中,像学生、教师、成绩单等都是对象,这些对象对于实现系统的完整功能都是必要的从实现形式上讲,对象一个属性(状态)和操作(方法或行为)的封装体属性是由对象中变量的内容和值定义的,例如学生有年龄、性别、入学日期等属性各个对象的属性值互不相同操作是一系列的实现步骤,它能够完成特定的功能,例如对学生可以有选课、毕业等操作在C++中,对象的状态由成员变量的值表示,操作由对象的成员函数完成对象实现了信息隐藏,对象与外部是通过操作接口联系的,操作的具体实现外部是不可见的封装的目的就是阻止非法的访问,操作接口提供了这个对象的功能对象是通过消息与另一个对象传递信息的,每当一个操作被调用,就有一条消息被发送到这个对象上,消息带来将被执行的这个操作的详细内容。
在C++中,向对象发送消息就是调用对象的成员函数,从而获取对象的状态信息或是对对象的状态进行修改2、类类是对象的模板,它包含所创建对象的状态描述和方法的定义类的完整定义包含了外部接口和内部算法以及数据结构的形式由一个特定的类所创建的对象被称为这个类的实例,因此类是对象的抽象及描述,它是具有共同行为的若干对象的统一描述体类是抽象数据类型的实现一个类的所有对象都有相同的数据结构,并且共享相同的实现操作的代码,而各个对象有着各自不同的状态,即私有的存储因此,类是所有对象的共同的行为和不同状态的集合体3、继承类提供了说明一组对象结构的机制,再借助于继承扩充类的定义方式,从而体现代码可重用的优越性继承提供了创建新类的一种方法,这种方法就是说,一个新类可以通过对已有类进行修改或扩充来满足新类的要求新类共享已有类的行为,而自己还具有修改的或额外添加的行为因此,可以说继承的本质特征是行为共享从一个类继承定义的新类将继承已有类的所有方法和属性,并且还可以添加所需要的新的方法和属性新类被称为已有类的子类,而已有类称为父类,又叫基类,新类又叫派生类面向对象的3个要素是对象、类和继承在C++中,类是主要的编程对象,程序员需要设计类的成员变量和成员函数,以及类与外界的接口。
对象即类的实例化,类是对象的模板同一个类的对象具有相同的行为,但状态可以不同继承是创建新类的一种重要方法,派生类按照继承类型的不同可以从基类继承到不同的成员,同时派生类还可以添加新的成员,通过这种继承和扩充得到新的类第2章 LED显示屏控制系统的系统分析根据LED显示屏控制系统的应用,本章设计了LED图文显示屏的体系结构和工作流程其中软件系统与无线传输控制硬件主系统之间采用串行通讯方式完成程序下载,实现文本信息的传输2.1 整体分析LED显示屏系统组成LED图文显示屏系统由软件控制系统、无线传输系统、设备主控制器、LED显示点阵、电源等部分组成基本结构如下图:PC软件控制系统单片机各功能模块 行驱动器 LED显示点阵 列驱动器 无线发射机无线接受机图4-1 LED显示屏总体框架系统工作过程:软件控制系统主要完成的任务为图文编辑、字模提取与保存、图像预览与文件传输;无线传输系统主要完成文件信息由PC机传输至LED显示器,硬件控制系统中LED点阵主要任务是通过电流控制完成信息显示,通过单片机的扫描驱动方式的控制对LED点阵行列驱动,实现设备的驱动并最终实现接收的图文显示功能。
2.2 计算机软件模块分析与设计软件模块分为编辑部分和控制通讯部分,编辑部分实现图文文件的编辑功能,通讯部分通过RS-232C串口通讯完成文件到单片机存储模块的传输通讯部分将在第三章做详细的介绍系统设计采用Windows操作系统下,开启文本编辑窗口,客户区内像素点采用与实际LED点阵显示屏像素点相同,功能类似Word文档编辑工具,包括编辑模块、绘图模块、文字编辑模块、颜色控制模块、显示效果加载模块、预览模块、信息下载模块1、编辑模块 1)除Windows自生成的剪贴、复制、粘贴功能,系统加入了撤消、重复功能 (1)选中撤消功能可以实现之前编辑工作的一步步取消功能 (2)选中重复功能可以实现之前编辑工作的最近的一条操作命令 2)绘图:包括直线、矩形、椭圆、圆等在内的图形绘制功能 3)文字编辑:包括各种字体、字形、字号、效果、颜色的文字的编辑,并且根据应用的特殊用途,加入指定位置文字的编辑 (1)选中文字功能,弹出字体选择框体,可以选择各种字体的文字进行编辑 (2)调出具体文字位置编辑对话框,输入文字和要求显示位置的横坐标和纵坐标。
4)颜色控制模块:由于应用领域的具体特点,主要采用了红、绿、黄三种颜色,可以实现颜色控制2、增添效果模块:通过增添显示效果和传输通讯中多屏文件单屏传送,完善了控制系统的功能 1)普通效果,静态的显示屏幕上的信息 2)滚动效果,可以实现从左向右的信息滚动显示,可以与静态信息穿插显示 3)单屏信息传输,实现编辑待传输信息的保存 4)多屏信息传输,实现编辑保存好的单屏信息合并保存成一个文件,大大减少传输文件时的烦琐3、图像预览模块:在文件传输之前实现字模信息的预览功能,可以实现预览传输前所保存的任何形式的字模信息,并且直接集成到工具栏文件打开功能键按钮 1)显示效果,通过文件传输前的预览,可以调整静态与滚动显示效果的排列顺序 2)显示时间,显示不同屏幕显示信息之间的时间间隔软件模块结构图如下:控制模块编辑模块增添效果模块图像预览模块设备通讯模块文字编辑图形编辑颜色控制滚动效果多屏文件合并显示效果显示时间设备通讯文件传输图3-2软件模块结构图第3章 串行接口3.1 串行通信的工作原理在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS接收器等,都会遇到怎样与PC机进行通讯的问题。
微机的主板通过并行口和串行口等与外设交换数据,并行口主要进行短距离的数据传送,传送速率较快,通常用作打印机的输出而长距离的数据传送只能采用串行口,串行口只需一根数据线进行数据传送,传送距离较长,投资较少,但传送速率较低因此,在数据量不大、传输要求不高的情况下,一般都采用串行通讯方式,即通过与PC机配置的RS-232标准串行接口COMl, COM2等相连接来实现应用系统与PC机之间的数据交换为了能使微机与单片机之间能通信,必须遵守相同的通信协议由于单片机的串行口以TTL电平进行输入输出,而微机的RS-232接口则采用+12V和的-12V电平方式,与PC机RS-232标准串行接口的电气规范不一致,因此要实现单片机与PC机之间的数据通读,必须进行电平转换一般常用的平转换器件有MC1488, MC1489及MAX232等,但MC1488, MC1489需要+-12V电源,这对于不具备+-12V电源的单片机系统是非常不便的,而双路RS-232收发器MAX232就是基于这一功能开发的新型器件[4]3.2 RS-232C串行通信简介串行通信接口标准经过使用和发展,目前已经有几种但都是在RS-232标准的基础上经过改进而形成的。
RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议它适合于数据传输速率在0~20000b/s范围内的通信这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS-232的最新一次修改(1969在这之前,有RS232B ,RS232A)它规定连接电缆和机械、电气特性、信号功能及传送过程RS-232C规定标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是: (1)联络控制信号线:数据装置准备好(Data set ready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态数据终端准备好(Data set ready-DTR)——有效时(ON)状态,表明数据终端可以使用。
这两个信号有时连到电源上,一上电就立即有效这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定请求发送(Request to send-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送它用来控制MODEM是否要进入发送状态允许发送(Clear to send-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TXD发送数据这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换在全双工系统中作发送方式和接收方式之间的切换在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高接收线信号检出(Received Line detection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RXD送到终端。
此线也叫做数据载波检出(Data Carrier dectection-DCD)线振铃指示(Ringing-RI)——当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫 (2)数据发送与接收线:发送数据(Transmitted data-TXD)——通过TXD终端将串行数据发送到MODEM,(DTE→ DCE)接收数据(Received data-RXD)——通过RXD线终端接收从MODEM发来的串行数据,( DCE→DTE) (3)地线有两根线SG,PG——信号地和保护地信号线,无方向3.3 RS-232C引脚及使用从机械特性而言,RS-232C包括标准的25针及简化的9针引脚排列实际上,RS-232C的25条引脚中有许多是很少使用的,要完成最基本的串行通信功能,只需要RXD , TXD和GND即可表1为常用的9针接口各引脚的信号功能 引脚信号信号源类型描述1DCDDCE控制载波信号检测2RXDDCE数据数据接收3TXDDTE数据数据接收4DTRDTE控制数据终端准备好5GND信号地6DSRDCE控制数据设置准备好7RTSDTE控制请求发送8CTSDCE控制清除发送9RIDCE控制振铃指示表1从电气特性而言,RS-232总线的逻辑电平与TTL电平完全不兼容,因此必须进行电平转换。
目前常使用的电平转换电路为MAX2323.4 MAX-232介绍MAX232是双路驱动/接收器,内部包括电容型的电压生成器,可以将单5V电源转换成符合EIA/TIA-232-E的电压等级接收器将EIA/TIA-232-E标准的输入电平转换成SVTTL/CMOS电平接收器的典型临界值是1.3V,典型磁滞是0.5 V,可以接收+-30V的输入信号驱动器(发送器)将TTL/CMOS输入电平转换成EIA/TIA-232-E电平图2.4为其管脚分布图其特性如下[6] 图3-1 MAX232管脚图 (1)单5V电源 (2) LinBiCMOS工艺 (3)两个驱动器和两个接收器 (4)+-30V的输入电平 (5)低工作电流:8mA典型值 (6)满足和超过ANSI EIA/TIA-232-E和ITU推荐标准V.28其工艺技术如下: (1)两个驱动器及两个接收器 (2)+-30V输入电平 (3)低电源电流:典型值是8mA (4)符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V. 28 (5)可与Maxim公司的MAX232互换 (6)ESD保护大于MIL-STD-883(方法3015)标准的2000V注意事项: (1)工作温度(自然通风)范围内的极限参数(除非另有说明) (2)输入电源电压范围,Vcc -0. 3V至6V (3)正输出电源电压范围,VS+ Vcc-0. 3V至15V (4)负输出电源电压范围,VS- -0. 3V至-15V (5)输入电压范围,VI:驱动器 -0. 3v至Vcc + 0. 3V (6)接收器 +-30V (7)输出电压范围,V0:T10UT, T20UT VS- -0. 3V至VS++O. 3V (8) RlOUT,R20UT -0. 3V至Vcc +O. 3V (9)短路持续时间:T10UT, T20UT未限制 (10)工作温度(自然通风)范围,TA:MAX232 0℃至70 ℃ (11)MAX232I -40℃至85℃ (12)存储温度范围,Tstg -65℃至150 ℃ (13)引线温度,离外壳1.6mm(1/16英寸),10秒260 ℃强度超出所列的极限参数可能导致器件的永久性损坏。
这些仅仅是极限参数,并不意味着在极限参数条件下或在任何其它超出推荐工作条件所示参数的情况下器件能有效地工作延长在极限参数条件下的工作时间会影响器件的可靠性[7]第4章 软件控制系统的设计与实现在LED显示屏的软件控制系统中,文本信息的编辑、字模信息的保存、显示效果的处理、图像预览以及设备通讯是设计的核心上作下面就这四个核心功能做详细的研究与设计4.1 编辑功能设计与实现在LED显示屏上展现所要显示的内容以及效果,编辑工作是最重要的环节之一本系统在设计时采用VC 6. 0开发工具,用VC++完成整个设计工作 基于MFC AppWizard建立工程,以单文档View的形式开启文本区下面对工程进行分析和设计:1、文本区的开启:由于所应用的LED显示屏的像素点数量已定,而计算机屏幕的分辨率显然远远高于显示屏,这样造成逻辑坐标的不同,即而显示的图像会有扭曲、拉长甚至失真情况所以可以通过选择开启窗口的计算机屏幕像素点与显示屏像素数之间恰当的比例来减小误差现在用来解决此问题的方法很多例如点阵数据的压缩方法,由于在Windows环境下,系统默认的每个汉字为4000多点,而1616点阵一个字的大屏幕,每个汉字为256点,所以根据计算,可以采用间隔取点的方式,在横向和纵向每隔12个点取一个点,每个汉字256个点组成的原理来压缩数据。
但为了图像不失真,本系统采用所开启文本区与显示屏像素数完全相同的方式,从而避免了圆变椭圆,正方形变矩形,甚至连划斜线时的斜率也不会变CMainFrame::PreCreateWindow函数用来设置整个窗口的大小,但是窗口外框还包括菜单,工具栏,状态栏与客户区而系统定义的文本区要求精确的client area,用于字模信息保存所以表示客户区大小的纵坐标要加上状态栏与工具栏的高度,甚至菜单与窗口外框的边缘也要扣除[1]SetClientSize() //设置客户区大小的函数 {CRect rect; CSize winSize; int cx, cy = 0; CControlBar* pBar; pBar = GetControlBar(AFX_IDW_STATUS_BAR); if((pBar ! =NULL) && (pBar -> IsWindowVisible())){ pBar ->GetWindowRect (rect); winSize = rect. Size (); cy+=(winSize. cy);} pBar=GetControlBar(AFX_IDW_ TOOLBAR); if((pBar!=NULL)&&(pBar ->IsWindowVisible())){ pBar -> GetWindowRect(rect); winSize = rect.Size (); cy+=(winSize. Cy*2);} cx = 384+(384-m_clientSize. cx); cy += (192+(192-m_clientSize. cy)); GetWindowRect(rect); SetWindowPos(this,rect. left,rect.top, cx, cy, SWP_ NOZORDER);}OnViewStatusBar(){ CFrameWnd::OnBarCheck(ID_VIEW_STATUS_BAR); SetClientSize();}通过对客户区的精确控制,可以真正的使文本区的像素点数与显示屏的平面发光点数对应,而且为了编辑操作过程中不至于因为失误造成文本区内的象素改变,所以系统限制了窗体最大化控制[3] [9]。
cs. style& = ~WS_MAXIMIZEBOX; //取消最大化使窗体大小固定2、编辑功能设计:在控制系统中,把文字与图形的输入通通想象成是图像的编辑,这样就像在画板上一样,随心所欲的完成编辑工作MFC的绘图都是通过Device Context(它是设备与数据之间的媒介,可以缩写为DC)来将绘图输出到一个设备上DC中存储设备的属性与输出绘图的数据在MFC中要输出绘图数据至一个设备上,必须准备一个针对此设备的DC对象,它是继承于CDC的类的对象这个DC对象可以使用CDC类的一些绘图函数(如画线、圆、方形等)每个DC必须附着一些所谓的GDI object (GD工对象,如常见的画笔、画刷、字形、位图等画图上具)以配合DC的绘图函数系统通过编写Line()函数画直线、Rectangle()函数画矩形、Ellipse ()函数画椭圆、Circle ()函数完成图形的编辑[2] [3]需要指出的是将newPen析构:调用newPen. DeleteObject)方法GDI对象的析构很重要,特别是自己创建的对象,一定要在适当的时机(GDI对象已经不在附着在DC时)去掉解除附着的方法只有以SelectObject函数选择别的新的对象(旧的对象会自动被消除)。
可以选择MFC预存的对象来解除对象的依附关系,因为MFC预存的对象会在不用的时候自动析构DeleteObject是CGdiObject类公开的成员函数,所以它的子类都可以使用 文字的输入:通过CFontDialog类生成一个选择字体类型(font)的对话框 CDC* pDC=GetDC(); LOGFONT m _lFont; COLORREF m_cTextColor; CFont myFont; CFont* pOldFont; CFontDialog FontDlg; FontDlg. m_cf. lpLogFont=&m_lFont; FontDlg.m_cf.rgbColors=m_cTextColor; FontDlg. m_cf. Flags!=CF_INITTOLOGFONTSTRUCT;if ( FontDlg. DoModal() = =IDOK){FontDlg.GetCurrentFont(&m_1Font);m_cTextColor = FontDlg.GetColor(); }调用系统自带的输入法,包括文字的字体、字形、颜色、效果等。
系统加载TextDialog对话框,以文本编辑区左上顶点为坐标原点,向右为X轴正方向,向下为Y轴正方向建立逻辑坐标系,实现文字指定位置的编辑: CString str; CTextDlg TextDlg; //CRect rect (TextDlg. m_ctrEdit. GetClientRect()); if ( TextDlg. DoModal)==IDOK ) { CRect rect (TextDlg. m_iPosX, TextDlg. m_iPosY, TextDlg.m_iPosX+1000, TextDlg.m_iPosY+1000); Str=TextDlg. m_sText; myFont.CreateFontIndirect (&m lFont); pOldFont=pDC->SelectObject(&myFont); pDC->SetTextColor(m_cTextColor); pDC->DrawText (str, rect, 0); pDC->SelectObject(pOldFont); SaveInStack();}在OnFont()函数中嵌入TextDialog()函数,DDX_ Text(pDX,IDC_ POS-X, m_iPosX); //文本区内文字输入X轴DDX_ Text(pDX,IDC_ POS_ Y, m_iPosY); //文本区内文字输入Y轴颜色的控制:在Windows系统中,色彩是以ture color来定义的,即COLORREF它是一个四字节字,其中的3个字节分别代表红,绿,蓝三种基本单色,也就是每一个基本单色由一个字节来表示,亦即每一个基本单色有256种色阶。
所以True color有16777216种色彩变化虽然计算机内定义了这么多颜色,但是对于应用与现实生活中的LED显示屏来说无须也无法达到因为人眼对不同颜色光线的敏感程度不同,并且红、绿和黄三种颜色是人眼视觉细胞最敏感的,所以这三种颜色成为基色,通过其不同比例的混合就能实现从白到黑的各种颜色所以也正是应用于交通警视最为普遍的颜色LED显示屏应用于交通指挥大厅的法律宣传,为公众传输信息以及服务,基于特殊的应用领域,图文显示屏都只有三种颜色的变化所以控制系统在上具栏内只添加了以上三种颜色满足今后扩展的要求4.2 字模提取4.2.1字模简介文字的字模是一组数字,但它的意义却与数字的意义有着根本的变化,它是用数字的各位信息来记载英文或汉字的形状[1]在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有——内码(将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码而剩下的低128位则留给英文字符使用,即英文的内码)如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字。
在硬件系统内,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)4.2.2 LED显示屏领域字模实现技术在通过软件实现的技术中,目前有许多字模生成软件,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可在通过硬件实现字模提取的技术中,有在单片机系统中增加硬汉字库的方法,主控器发送的汉字是其机内码,用两个字节来表示一个汉字根据机内码,显示单元控制模块从汉字库中查取显示字模,实现汉字显示由于带有硬汉字库,进行动态文字显示时,通用智能显示单元仅接受汉字的机内码即可,这样数据通讯量大大减少因此,“动态文字显示速度快”4.2.3软件控制系统字模提取的分析与设计而在LED显示屏控制系统具体应用的Windows操作系统下如何提取字模信息是设计的核心软件控制系统在实际编辑过程中,要求各种字体、字号的文字都能被编辑、保存所以系统在设计时,把文本区理解为由众多的象素点构成,而把不同字体、字号的文字理解为一幅图像。
因为所开启的文本区大小与LED显示屏的大小对应,所以采用1616点阵为单位,把文本区内的每个像素点都看成一个二维数组,由于系统中各种颜色都有对应的值,赋予每个不同颜色的像素点不同的对应值,再把每个点赋予一个int型的值,这样保存下来的信息就是二进制数据通过这样的设计,我们不仅可以把任何字型,任何大小的文字保存下来,还可以显示以256个像素点阵为单位的任何图形在软件控制系统中实现字模的提取,也就避免了在单片机中加载硬汉字库模块,从而简化了硬件模块的设计以下以单色屏为例,介绍系统采用字模保存的算法设计:定义COLORREF zimo_ color为像素点的颜色,判断某个点的颜色值如果值为Oxffffff,说明此点为白色,赋予此点值0由于单色屏只有红色和不显色两种,所以可以简单赋值为除白色外其余点赋值为1 CClientDC dc(this); CFile myfile; unsigned int zimo[192] [384]={0}; unsigned char zimo_data[192][48]={0}; COLORREF zimo_color; int row, col ; this ->HideCaret(); for (row=0;row<192;row++){ for (col=0;col<384;col++){ zimo_color=do.GetPixel (col, row); if (zimo color = =Oxffffff) {zimo [row] [col]=0;}else {zimo [row] [col]=1;}}}定义unsigned int zimo[192][384]={0};//文本区像素点以8位为一字节(因为在随后的串行通讯中,传输的数据是8位的二进制数据)定义 unsigned char zimo_data[192][48]={0}; this->ShowCaret(); int i,j,k; for(i=0;i<192;i++){ for(j=0;j<48;j++){ for (k=0;k<8;k++){zimo_data[i] [j]+=zimo[i] [8=}j+k]*((int) pow (2, (7-k)));}}}4.3 效果添加与预览功能的设计与实现在当今高度信息化的社会,图形图像等形象性信息所占比例日益提高,计算机在各种信息处理中正发挥着重要作用。
由于数字化技术、计算机技术的介入,传统的模拟图像为主的电视界已开始全面进入数字化的数字广播时代从电子显微镜下的微观世界,到卫星图像所拍广阔领域,图像处理在实际生活中广泛应用:把文档、图形等图像化的办公图像处理;医用X射线CT (Computer Tomography,计算机断层摄影)机为代表的医用图像处理;用于人造卫星拍摄的遥感图像处理以及广播电视、电影界中的图像处理等 为了增强显示效果,LED显示屏也可以有多种显示模式1、硬件模块处理显示模式技术LED图文显示屏可以增添多种显示模式,从而增强显示效果产生不同显示模式的方法,主要是随时间变化不断控制刷新显示数据但对于显示数据的刷新,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成可以按顺序调整行号,使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;同时调整行列顺序,就能得到对角线平移的效果2、软件模块直接加载效果技术如果对于信息数据的刷新算法过于复杂,可以考虑直接生成带有显示模式的数据经过系统的分析与设计,采用在文本区内,完成对文字及图形的编辑工作,完成字模的提取与保存后,通过算法设计,增添滚动显示模式。
1)滚动显示模式的设计与实现屏幕显示滚动效果在PreviewDialog内,加入button选项,即实现多屏信息保存时,根据需要普通效果与滚动效果穿插选择达到最终保存的目的: for (unsigned char i=0;i 研究与设计:定义unsigned char dis_type_pre = 0;//表示普通方式定义unsigned char dis_type_pre = 1;//表示滚动方式当设置方式为滚动时: if (roll_number! = 399){ for (row=0;row<192;row++){ for (col=0;col<=roll number;col++){ if (zimo [row] [383-roll_number+col」= = 1){ dc. SetPixel (col,row, 0); }}} else{ dis_type_pre=0; roll_number=-1; KillTimer (1); for (row=0;row<192;row++){ for(col=0;col<383;col++){ if (zimo [row] [col]==1){ dc. SetPixel (col,row, 0);}}}4.4 控制系统软件设计软件控制主界面及功能1)主界面 主界面采用标准Windows窗体风格,菜单栏上文件、编辑、绘图、文字、效果、发送等按键分别用来控制编辑图文时的文字及图形的编辑,增添静态及滚动效果,与下位机的文件传输。 Windows窗体基本功能在控制系统中均能实现图4-1控制系统主界面2)基本的文件新建,打开,保存,另存为;菜单栏中的剪切,复制,粘贴功能;另外系统增设了撤销,重复功能,使文件编辑功能更完善图4-2控制系统文件功能图4-3控制系统编辑功能3) 绘图的添加可以使图文编辑过程中绘制简单图形,如直线,矩形,圆,椭圆;并可以在颜色上具栏中选择颜色:图4-4控制系统绘图功能4) 文字的输入功能可以实现系统提供的所有字型,字体,字号的编写,点击菜单栏中的文字按钮及可实现:图4-5控制系统文字编辑功能点击文字按键后,弹出如下Windows自带文字编辑复选框图4-6文字编辑复选框选择正确的字体、字形、大小后,控制系统提供文字输入窗体系统增设的对话框可以根据文本区内的逻辑坐标,输入X轴与Y轴的位置,可以在编辑区内任意准确的位置输入中文或英文确定编辑所需要文字的各项设置后,就可以输入了图4-7文字输入复选框具体效果如下图:4-8文字编辑效果图5) 由于LED显示屏的字模提取工作是在软件控制系统实现的,算法己经在前面章节介绍,具体通过采用更改工具栏中的保存按钮的功能程序,实现字模的提取保存,下图为字模文件的效果:图4-9字模文件效果图6)系统完善显示效果,增设了静态显示与滚动显示模式。 用鼠标点击效果按钮弹出的下拉菜单设置按钮,在弹出的对话框内可以通过设置各项参数,完成滚动模式的添加,如普通方式,滚动方式;并将实现多个单屏信息文件合并保存功能点击对话框上面的打开文件按键,可以打开保存好的字模文件;在效果栏内选择普通(静态)模式或者滚动模式,确定后电击添加按钮,在对话框左栏会显示出具体信息,如下图:图4-10控制系统效果设置功能控制系统增设预览功能点击工具栏上的打开文件按钮,可以预览增添效果后的信息显示效果图4-11控制系统预览功能控制系统通过效果添加功能可以实现多屏文件合并保存7)通过以上操作,基本完成了图文信息的编辑,处理,保存各项预期功能;通过点击系统菜单栏发送按钮,打开所要传输的文件,实现信息的传输,在文件传输过程中,可以观察发送状态,发送进度等参数:图4-12控制系统发送数据功能点击右上角的打开文件按键打开要传输的文件,确定与下位机的串行线路连接完毕后,可以通过发送按键实现与下位机的通讯功能图4-13文件下载过程图4-14文件下载成功显示图第5章 总结LED显示屏控制系统涉及到操作系统、设备通讯、软件和硬件等各方面问题本论文主要完成了以下工作:1、基于Windows操作系统下,软件控制系统采用Windows标准风格窗体,通过对文本区的开启,满足对应LED显示屏象素点数,实现基本功能:如文字图形的编辑、颜色的选择、动态显示效果的添加、显示信息的预览功能以及串行通讯文件的下载功能。 2、通过查阅资料,了解了字模保存技术发展现状系统在分析设计后,采用软件控制保存方式 ,在文件保存时直接提取字模信息,不必再增设汉字库,从而简化了硬件模块的设计3、在PC机与无线发射记得的数据传输通讯方面,PC机通过RS-232C串口,遵循串行通讯协议,完成数据的传输论文完成了LED显示屏软件控制系统的整体设计,确定了系统上作流程,完成了系统软件控制功能系统的工作流程:在计算机显示屏上开启文本窗口(大小可根据具体对应大屏的象素点数,调整系统参数实现),在工具栏选择具体工具完成文字、图形的编辑,并采用图像处理算法完成信息的优化及显示效果的处理,并实现预览功能在完成整体编辑、设计后应用系统设计的字模信息保存方法实现文本信息的保存根据具体设备通讯要求,采用串口通讯技术,通过介绍端口通讯以及串口通讯协议的相关知识,实现控制系统与硬件设备部分的通讯,完成实现LED显示屏的文本信息传输功能参考文献:[1] 胡哲源.《掌握Visual C++ --MFC程序设计与剖析》.清华大学出版社.2001第一版[2] 木林森,高峰霞,罗丽琼.《Visual C++6.0使用与开发》.清华大学出版社.1999第一版[3] 陈必红。




