资源描述
LED显示器控制系统分析和设计
摘要
本文依据LED图文显示器系统具体要求,经过查阅资料,分析并归纳出具体设计方案。即系统体系结构、系统整体工作步骤、软件控制系统设计和串行通信设计。这个系统工作步骤是:经过软件控制系统提供编辑工具完成图文编辑工作,对编辑信息实现字模提取,然后能够依据系统提供显示模式加载显示效果,确定为欲显示信息后保留文件,然后经过程序调用Windows函数,并采取RS-232C串口通信,实现数据到无线发射机传输。
本文具体设计了三个模块:编辑功效模块,字模提取模块,效果添加及预览模块。系统是否需要更新和现有设计是否能够满足要求全部有待于深入研究。
关键词: LED 字模 串行通信
目 录
1 绪论
1.1 LED显示器研究背景及意义 5
1.2 软件开发工具C++概述 6
2 LED显示器控制系统系统分析
2.1 整体分析 8
2.2 计算机软件模块分析和设计 8
3 串行接口
3.1 串行通信工作原理 10
3.2 RS-232C串行通信介绍 10
3.3 RS-232C引脚及使用 11
3.4 MAX-232介绍 12
4 软件控制系统设计和实现
4.1编辑功效设计和实现 14
4.2字模提取 16
4.3效果添加和预览功效设计和实现 18
4.4控制系统软件设计 20
5 总 结 26
参考文件 27
致 谢 28
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~0b/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-232C25条引脚中有很多是极少使用,要完成最基础串行通信功效,只需要RXD , TXD和GND即可。表1为常见9针接口各引脚信号功效。
引脚
信号
信号源
类型
描述
1
DCD
DCE
控制
载波信号检测
2
RXD
DCE
数据
数据接收
3
TXD
DTE
数据
数据接收
4
DTR
DTE
控制
数据终端准备好
5
GND
信号地
6
DSR
DCE
控制
数据设置准备好
7
RTS
DTE
控制
请求发送
8
CTS
DCE
控制
清除发送
9
RI
DCE
控制
振铃指示
表1
从电气特征而言,RS-232总线逻辑电平和TTL电平完全不兼容,所以必需进行电平转换。现在常使用电平转换电路为MAX232。
3.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)标准V
注意事项:
(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多点,而16×16点阵一个字大屏幕,每个汉字为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显示器大小对应,所以采取16×16点阵为单位,把文本区内每个像素点全部看成一个二维数组,因为系统中多种颜色全部有对应值,给予每个不一样颜色像素点不一样对应值,再把每个点给予一个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<file_number;i++)
CString tempFieldl,tempField2, tempField3;
unsigned char file_length, file_ distype,file_ distime;
tempFieldl = m_listCtrl.GetItemText(i,0);
tempField2 = m_listCtrl.GetItemText(i,1);
tempField3 = m_listCtrl.GetItemText(i,2);
file_length=(unsigned char)temp
展开阅读全文