已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽建筑工业学院毕 业 设 计 (论 文)专 业 班 级 学生姓名 学 号 课 题 户外点阵LED显示屏的设计和实现 总体设计及现场调试 指导教师 2012年 6月摘要LED显示屏作为一种新兴的显示媒体,随着大规模集成电路和计算机技术的高速发展,得到了广泛应用。显示屏节能环保,全天候工作,完全适应户外各种恶劣性环境,具有防腐、防水、防潮、防雷、抗震整体性能强、性价比高、显示性能好等特点,在公共场合有较为广泛的应用。本课题设计运用了一种以STC89C52单片机为控制器的LED点阵显示屏系统设计。本设计介绍了在单片机控制下,由10个16*32 LED点整显示屏模块组成了32*160点阵模块为显示屏的设计,并给出了各个硬件的设计原理和其原理图,并写出了软件的总流程图。该设计具有设计简单,字符清晰,可靠性高等特点。关键词:LED显示屏、STC89C52、原理图AbstractThe LED display as a new show media, along with large scale integrated circuit and the rapid development of computer technology, to a wide range of applications. Display energy conservation and environmental protection, all-weather work, fully adapt to all kinds of outdoor ELieXing environment , have anticorrosive, waterproof, moistureproof, lightning protection, overall seismic performance is strong, cost-effective, to display performance is good wait for a characteristic, in public places have a wide range of applications.This subject is the design uses a AT89S51 for the controller system destem design. This design was introduced in the single-chip microcomputer control, the 10 16 * 32 LED PM screen module, 32 * 160 dot matrix display module design, and gives the various hardware design principle and its principle diagram, and write the software flow chart of the total. This design has the design is simple, clear character, high reliability characteristics.Keywords:LED display,STC89C52,Principle diagram目录1 绪论11.1 选题背景11.2 LED显示屏的特点及优势11.3选题意义22 系统硬件设计32.1 32160 LED显示屏总体方案设计32.2 单片机系统设计32.2.1 STC89C52引脚功能说明52.2.2 复位电路52.2.3 时钟电路62.2.4 行驱动电路72.2.5 列驱动电路72.2.6 电源模块83 系统软件设计103.1 系统软件流程103.2 软件功能的实现114 系统调试184.1 系统硬件调试184.2 系统软件调试184.3 系统测试结果19总结20参考文献21致谢22附图23安徽建筑工业学院毕业设计(论文)户外点阵LED显示屏的设计和实现总体设计及现场调试1 绪论1.1 选题背景LED(light emitting diode,发光二极管)是六十年代末发展起来的一种半导体显示器件。七十年代,随着半导体材料合成技术、单晶制造技术和PN结形成技术的研究进展,发光二极管在发光颜色、亮度等方面得以提高,并迅速进入批量化和实用化。八十年代,LED在发光波长范围和性能方面大大提高,并开始形成平面显示产品即LED显示屏。LED电子显示屏是由几百至几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。利用不同的半导体材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色,而蓝色和纯绿色LED的开发已经到了实用阶段。LED显示屏是一种通过控制半导体发光二极管的亮度方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。LED显示屏分为图文显示屏和条幅显示屏,均由LED矩阵块构成。图文显示屏可与计算机同步显示汉字、英文文本和图形;而条幅显示屏则适用于小容量的字符信息显示。LED显示屏因为其像素单元是主动发光的,具有亮度高、视角广、功耗低、寿命长、耐冲击和性能稳定等优点。因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。1.2 LED显示屏的特点及优势组合型LED点阵显示器以发光二极管体为图素,它用高亮度LED芯片进行阵列组合后,再透过环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点整有4x4,、4x8、8x8、16x16等多种;根据图素的数目分为单原色、双原色、三原色等,根据图素颜色的不同所显示的文字、图像等内容的颜色也不同,单原色点阵只能显示固定色彩如红、绿、黄等单色,双原色和三原色点内容的颜色由图素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极体的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。LED显示屏产品的优势主要有:1. 高的换帧频率(不小于300Hz)极大的提高了图像的稳定性。2. 高的灰度级,使常规真彩数据RGB各8位(256级数据)分别扩展为14位,并通过局部控制扫描的方式,将14位数据量完全转换为214=16384个亮度档次,从而实现16384级灰度。3. 通过人眼视觉特性,根据白天及晚间环境光的变化,进行最高亮度及最低亮度值的改变(根据查色表)不论差值如何改变,在该亮度范围内可实现16384级灰度,从而极大的提高了图像显示的清晰度。4. 合理的结构、简单的组合,是显示屏体重达到最低。5. 合理的工作电流,既不降低亮度,又提高了工作效率,是显示屏可在不用空调降温的条件下正常工作。6. 采用数据分块处理,各块同步并行通讯的方式,极大的提高通讯速度。7. 显示屏可通过计算机网络系统进行远程控制。1.3选题意义本设计课题是89C52单片机为核心,采用动态扫描的方式驱动电路,并用74LS154作为译码器单元提供所需要端口,另外,在软件编程中采用C语言,显示时采用点阵显示。在设计本课题是查询了大量的书籍和相关知识使我们能够掌握LED显示屏的基本显示原理和设计方法,对LED显示屏这个行业有了较为深刻的了解和认识。并对大学期间所学习的一些理论进行了实践,使我们对所学过的理论知识有了新的认识。目前我国信息行业发展迅速,作为主要平面显示媒介的LED显示屏的作用也越来越广泛,相关的从业人员也会越来越紧缺。但同时应该清楚的认识到我国的LED技术虽然发展迅速但河世界先进水平还有一定的差距。因此本设计课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实与积极的意义。232 系统硬件设计2.1 32160 LED显示屏总体方案设计通过对LED 主控电路、亮度连续可调电路、驱动电路、键盘电路等硬件电路做全面的分析,选择出比较适合的方案,从而实现对32*160 点阵显示屏的驱动, 完成电子显示屏的电路设计方案。本设计电子显示屏系统的由STC89C52 单片机及相关外围电路具体包括时钟电路、复位电路、上位机、显示控制电路和电子显示屏等部分组成,具体如图1 所示:图1 系统总体框图由10个16*32 点阵LED 显示模块组成点阵显示屏。10片16*32点阵LED 显示模块利用总线形组成一个32*160的LED 点阵,用于同时显示多个点阵汉字、字母、字符或数字。根据实际需要,显示板可扩展至更多的显示单元,从而显示更多的内容2.2 单片机系统设计STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM,32位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。若将LED点阵的行列端口全部直接接入89C52单片机,则需要使用32条I/O口,这样会造成I/O口资源耗尽,系统也再无扩充的余地,因此,我们在实际应用中只是将LED点阵4-16线译码器74HC154来选择控制,至于列选扫描信号则是由74HC595译码器来选择,这样一来列选择控制只使用了单片机的4个I/O口,节约了I/O口资源,为单片机系统扩充使用功能提供了条件。该电路总共用到12个I/O口,采用PI口作为输出行数据和控制信号。P2口的4个口与“写”控制信号配合,输出列控制信号。P2口的另外4个I/O口是用作按键开关。单片机模块电路如图2所示 图2 89C52单片机模块电路图2.2.1 STC89C52引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口,作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入;在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线,此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节,验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入,对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口,P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入,对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口,P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入,对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口,P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。2.2.2 复位电路为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般单片机正常工作所需要的供电电压为+5V,由于单片机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC在特定的工作电压范围内以及晶体振荡器稳定工作时,复位信号才被删除,单片机开始正常工作。VCC上电时,C充电,形成RC回路,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下S、C放电,S松手,C又充电,在10K电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。复位电路工作原理图如图3所示:图3 复位电路工作原理图2.2.3 时钟电路内部时钟,是用芯片内部振荡电路,精度不高,温漂也较大,不需要外部振荡器件。外部时钟,分RC振荡和石英晶振,RC精度不高,成本低;石英晶振精度高,稳定性好,根据使用场合选择适合的时钟方式。STC89C52内部有一个用于构成振荡电器的高增益反相放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或搪瓷谐振器一起构成了一个自激振荡器,这种方式形成的时钟信号成为内部时钟方式。利用芯片内部的振荡电路,在XTAL1和XTAL2两端跨接晶体(或陶瓷)振荡器和两个电容就构成了一个稳定的自激振荡器。晶体振荡频率可在1.2MHz12MHz之间选择。电容值无严格要求,但其取值对振荡频率输出的稳定性、大小、振荡电路起振速度稍有影响,C1、C2可在20pF100pF之间取值。一般当外接晶体时,电容选为30pF。本设计采用内部时钟电路,时钟电路图如图4所示: 图4 时钟电路2.2.4 行驱动电路此电路采用4/16译码器74HC154作为点阵的行驱动。将从RAM输出的四个信号分别输入到74HC154译码器,然后输出16为行号,经过16个1K的电阻,再输入16个PNP8550三极管的B极来进行对行信号的放大,其中所有的三极管的E极相连接+5V的电源,所有的C极接16个1K欧姆的电阻,得到的信号作为点阵LED的行输入信号,通过对154的四个输入信号进行控制,改变行信号.由154和595的信号,控制二极管的亮、灭来显示出所要求的字符、汉字。每个LED管亮需要7mA的电流,那么32个同时亮就需要224mA的电流,所以我们要对行进行驱动,我们采用晶体管8550对信号进行放大,使LED点阵能够正常显示。其行电路驱动如图5所示:图5 行驱动电路2.2.5 列驱动电路16行32列作为一个基本单元,则列驱动需要用8片74HC595,其工作原理为:将8片74HC595级连,共用一个串行时钟CLK及数据锁存信号STR。当第一行需要显示的数据经过84=32个CLK时钟后将全部移入74HC595中,此时产生一个数据锁存信号STR,使数据锁存在74HC595的后级锁存器中,同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高平,显然第一行LED管子的亮、灭取决于74HC595中锁存的信号;在第一行LED管子点亮的同时,在74HC595中移入第二行需要显示的数据,随后将其锁存,并同时由行扫描控制电路将第一行扫描管关闭而接通第二行,使第二行LED管子点亮,以此类推,当第十六行扫描过后再回到第一行,只要扫描速度够高,就可形成一幅完整的文字或图像,其列驱动电路如图6所示:图6 列驱动电路2.2.6 电源模块本设计采用的是5伏特40安培的开关电源,开关电源大致由输入电路、变换器、控制电路、输出电路四个主题组成。如果细致划分,它包括:输入滤波、输入整流、开关电路、采样、基准电源、比较放大、振荡器、V/F转换、基极电路、输出整流、输出滤波电路等。实际的开关电源还有保护电路、功率因数校正电路、同步整流驱动电路及其它一些辅助电路等。输入电路:包括线性滤波电路、浪涌电流抑制电路、整流电路三部分,作用是把输入电网交流电源转化为符合要求的开关电源直流输入电源。功率电路:电网220V的交流电经输入电路整流滤波后,已变为直流电(带脉动),从该直流电到输出之间的电路可简单等效为一个单管隔离降压变换器。电流极限保护:由于隔离变压器原边开关管是单向驱动,所以只做正极限保护即可。变压器第三边绕阻单向脉动信号经过二极管整流及RC滤波,送CLM+端,作为正极限过流保护;负电流极限CLM-端被直接接地,不起作用。3 系统软件设计3.1 系统软件流程程序初始化后将存储在ROM内部的站点信息读出,送至单片机的RAM,初步的进行汉字点阵转换,转换后的数据处理送至行驱动和列驱动,一般的行驱用74LS154,列用74LS595控制,工作原理是当154扫描到某一行时,595决定哪一列该亮,就这样快速扫描,形成了图像。它是用动态显示的原理工作,即每个时刻只有一个LED被点亮,因为它的工作频率很高,所以人的眼睛看不出来它是动态的,LED点阵输入端有行和列,在不同的行和列之间接入信号相应的LED就会被点亮,但同时只能有一个行和列被接入信号,否则会乱码,为让人眼能看清楚字的显示,对它进行延时以控制显示效果,使其循环处理。当按下不同的按键时,即可让字不同的滚动,当显示完毕就可结束。其流程图如图7所示:图7 系统软件流程图3.2 软件功能的实现主控软件主要进行两个方面的设计:一个是串口通过主控计算机对显示屏的控制显示功能主要是通过计算机的串口实现;一个是对汉字字库的提取显示。(1) 开发控件的选择Visual Basic 6.0 (简称VB)是Windows系统开发的一种高效、易学、易用的主要语言。它支持面向对象程序设计,支持结构化的事件驱动编程模式,并可使用无限扩增的控件。它使得大量的外界控件有了自己的生存空间。VB也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。在讨论Visual Basic时,你可以经常可以听到以下这些术语:1)控件简单的说,控件就是构成或者说建造Visual Basic应用程序的图形化工具,包括窗体、按钮、复选框、列表框、数据控件、表格控件和图片控件等。 2)事件由用户或操作系统引发的动作。事件的示例有击键、单击鼠标(Click)、双击鼠标(DblClick)、一段时间的限制,或从端口接收数据。 3)方法嵌入在对象定义中的程序代码,它定义对象怎样处理信息并响应某事件。例如,数据库对象有打开纪录集并从一个记录移动到另一个记录的方法程序的基本元素,它含有定义其特征的属性,定义其任务和识别它可以响应的事件的方法。控件和窗体是Visual Basic中所有对象的示例。 4)对象一个控件、窗体等都可被看作一个对象。 5)过程为完成某些特定的任务而编写的代码段,过程通常用于响应特定的事件,也可以当作应用程序的用户自定义函数来使用。 6)属性属性是组成用户界面的各对象的性质的具体描述。例如上述“对象”中所提到的尺寸、位置、颜色、宽度、高度等等都称为控件的 属性。属性决定对象的外观,有时也决定对象的行为。对象的属性绝大部分是VB中已经事先定义好的,但也有的属性是需要在应用 过程中才去定义的。属性即可为对象提供数据,也能从对象取回信息。(2) VB与数据库的连接本毕业设计上位机软件程序在系统登录模块通过SQL Server2000与VB连接,实现了本软件的保密性、可靠性,用户可以进入基本信息管理区,进行用户名和密码的修改、删除、添加等基本信息。在与数据库连接过程中需要使用ADO数据控件,其中ADO(ActiveX Data Object)数据访问接口是Microsoft处理数据库信息的最新技术。ADO对象模型定义了个可编程的分层对象集合,主要由三个对象成员Connection、Command和Recordset对象。在使用ADO数据控件前,必须先通过“工程/部件”菜单命令选择Microsoft ADO Data Control 6.0(OLEDB)”选项,将ADO数据控件添加到工具箱。使用ADO开发时,连接数据库具体方法是:在控制面板管理工具数据源(ODBC)下面进行配置。(3) 串行通信问题的解决在Visual Basic中通过提供功能强大的通信控件以使串行通信程序设计方便且高效。通信控件的文件名是MSCOMM32.OCX,其对象名称是MSComm,利用它可以灵活地编写串行通信程序。因此只要熟悉和掌握通信控件的结构和使用方法,就可以毫不费劲地设计有关的通信程序。VB中的每个控件都有其相应的事件和属性。通信控制只提供一个事件OnComm,该事件的触发可导致对串口的通信事件及错误进行处理。MSComm处理数据是通过检查MSComm控件的CommEvent属性的值来判断所发生的事件或者错误。当有事件或错误发生的时候,事件OnComm由MSComm控件解发,被执行程序捕捉后,依据CommEvent属性的值,系统就可以知道如端口状态改变,新字符到达,发生错误等所发生的事件。通常所说的查询法,同样是通过检查CommEvent属性的值来确定事件和发生的错误。只不过后者是在执行一段程序,经过一定时间后才检查CommEvent属性的值从而做出响应,而前者是即时查阅即时处理,二者只是程序设计上的不同无本质区别。事件驱动法的优点是程序响应及时、可靠性高、应用广泛。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。VB 开发串口通信程序常用的方法是利用 VB 自身提供的控件 MScomm 来实现 ,该控件隐藏了大部分串口通信的底层运行过程和许多烦琐的处理过程 ,将串口封装起来 ,操作容易、易实现,同时支持查询法和事件驱动通信的机制。具体的来说,MSComm控件提供了两种处理通信问题的方法:一是事件驱动(Eventdriven)方法;一是查询法。1)事件驱动方式事件驱动法是利用 MScomm 控件的 OnComm 事件触发机制来完成的。每当有通信错误或通信数据发生时 ,就会产生此事件。该方法能自动判断通信的发生并触发中断响应 ,只有通信发生时才响应中断 ,通信未发生时不占用 CPU 资源 ,此时能够进行其他工作。事件的处理是通过判断 CommEvent 属性值获得事件类型 ,再根据事件类型进行相应数据处理。大部分通信程序都使用该方法 ,但对于不同的通信要求 ,该方法的使用也有所不同。事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。2)查询方式查询法是通过周期性地读取缓冲区的信号来发现是否有事件发生并进行处理的方法。它不使用端口的硬件中断 ,必须在足够频繁地查询端口的情况下才能保证不会遗失任何数据或者事件 ,查询的频率取决于缓存的大小、数据量和对快速响应的要求。查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。(4) 传送字符格式问题的解决这个问题在整个上位机软件中起着非常重要的作用,这个问题解决好了将对整个软件系统的设计起着事半功倍的效果。要想解决这个问题,我们首先要知道计算机中汉字和西文字符的字模读写和存储的机理。在本毕业设计中我们使用16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。不过后来又有了HZK12、HZK24,HZK32和HZK48字库及黑体、楷体和隶书字库。虽然汉字库种类繁多,但都是按照区位的顺序排列的。HZK16字库里的1616汉字一共需要256个点来显示,也就是说需要32个字节才能达到显示一个普通汉字的目的。前一个字节为该汉字的区号,后一个字节为该字的位号。每一个区记录94个汉字,位号则为该字在该区中的位置。因此,汉字在汉字库中的具体位置计算公式为:94*(区号-1)+位号-1。减1是因为数组是以0为开始而区号位号是以1为开始的。这仅为以汉字为单位该汉字在汉字库中的位置,那么,如何得到以字节为单位得到该汉字在汉字库中的位置呢?只需乘上一个汉字字模占用的字节数即可,即:(94*(区号-1)+位号-1)*一个汉字字模占用字节数,而按每种汉字库的汉字大小不同又会得到不同的结果。以16*16点阵字库为例,计算公式则为:(94*(区号-1)+(位号-1)*32。汉字库文该从该位置起的32字节信息即记录了该字的字模信息。1) 字符的字模读写和存储的机理计算机是以编码的方式来处理和使用字符的。西文字符采用一个字节表示,即ASCII码,一般只用七位来表示128个字符,而把最高位用作奇偶校验(或者不用)。我国国标规定汉字用内码表示,内码为两个字节。为了保证中西文兼容,也就是说汉字系统的内码必须同时允许ASCII码和汉字的使用,两者之间不应发生冲突。目前规定每个字节只用七位,若两个字节的最高位均为1,则该字符为汉字。国标对汉字字库的结构作了统一规定,即将字库分成若干个区,每个区有94个汉字,每个汉字在字库中有确定的区和位,因此每个汉字各有一个区位码,知道了区位码也就相当于知道了汉字在字库中的位置。由于汉字的内码与区位码有一定的关系,所以只要通过汉字的内码就可得到该汉字的区位码,也就得到了该汉字的字模。查找一个汉字字模数据的算法为: 汉字内码 - 区位码 - 记录号 - 字模数据 一个16点阵汉字其字模数据共有32字节,可以看作是一条记录,在程序中可以用一个数组存放。汉字点阵的提取如图8所示:图8 汉字点阵提取图对于西文字符,一个16点阵字符其字模数据有16字节,因为习惯上的16点阵西文字符为16x8点阵,在程序中可以利用字符的ACSII值查找出其字模纪录,用一个数组存放。2) VB6中实现汉字字模转换的技巧在许多工程控制的应用环境中,经常需要对标准的汉字字模进行调整和转换。要对汉字字模进行转换首先应该正确地读出16点阵汉字在字库中的32字节的字模数据。设某一汉字的内码为ddff,其中dd表示区内码,ff表示位内码,则dd-&Ha1为该汉字的区码,ff-&Ha1为该汉字的位码。则该汉字在字库中的位置为: Location = (dd-&Ha1)94 + (ff-&Ha1)32需要注意的是,以何种方式从字库文件中读取这32字节也是一个关键问题。由于二进制(Binary)方式访问文件可以直接查看文件中指定的字节,而且二进制方式也是唯一支持用户到文件的任何位置读写任意长度数据的方法。因而以二进制方式打开汉字字库文件是最适合的。但尤其需要注意的是当把二进制数据写入文件中时,必须使用Byte数据类型的数组变量,而不是 String 变量。 String 被认为包含的是字符,而二进制型数据可能无法正确地存在 String 变量中。特别注意:在二进制文件中汉字内码占两个字节、西文占一个字节;在vb中使用的是unicode编码,汉字、西文字符都占两字节。VB6虽然提供了较强的位运算功能,但是对于在字模转换中使用较多的反位、移位等操作,却没有提供对应的运算符、指令或函数。其实通过and(与)、or(或)二个位运算符即可编制一个自定义子函数来实现对应的运算。3)本软件中字模转换程序框图如图9所示:图9 本软件中字模转换程序框 (5) 友好的人机界面问题的解决这个问题在一开始设计这个软件时就想到了,一个专门为某一系统所开发的控制软件,除了能实现控制目的以外,最主要的就是友好的人机界面,能够具有傻瓜功能,即操作者不用认真熟悉软件,就能进行操作,这是我设计此软件时一直所追求的目标。在设计此软件时,不断更新软件性能,让本设计小组成员不断测试,找出软件存在的不足以及bug,一旦出现问题,我就立即着手分析,找出问题的解决方案。我认为这应该是软件程序员要遵守的最基本的规则,一旦软件有bug就要及时解决,否则,到最后一起解决时,那就很难彻底的除去bug了。对于此次设计的软件感觉还不深,我想那些经历过大型软件设计的人感觉就应该比较深吧。(6) 其他附加功能等问题的解决在本软件设计中,不仅完成了基本的16x16点阵字符的输出功能,还实现了输入字符的模拟显示,屏幕编辑等功能。屏幕编辑模块程序框图如图10所示:图10 屏幕编辑模块框图在本次毕业设计过程中,需利用VB系统对数据开发采集,或对文件进行低级操作时,常需要对字节进行移位操作,但VB系统中没有提供字节移位操作的指令和函数,只提供了And(与)、Or(或)、Xor(异或)、Equ(同或)、Not(非)等几个逻辑运算指令。我在通信部分的电路设计及程序编写调试的过程中,就遇到了这个问题,于是利用VB中已有的逻辑运算指令,模拟汇编语言的字节移位指令,编制了七个字节移位函数:逻辑左移、逻辑右移、算术右移、循环左移、循环右移、进位循环左移和进位循环右移。4 系统调试4.1 系统硬件调试首先:看看电源线与地线有无断裂,电源线与地线有无短路。在设计PCB时这一情况一般都会被排除。电源与地一旦出错,PCB板肯定是不能用了。其次:查看铜铂有没有腐蚀干净造成两条线路连接,必须把有问题的印刷电路板处理后才能插件、焊接,避免装配焊接后造成不必要的故障。在焊接时按照先焊贴片元件,再焊直插元件,先焊小元件,再焊大元件的原则进行操作,最后焊接插件的原则。首先是将电源部分焊好,以便当焊好一个功能模块时对其进行测试,发现问题后,进行分析问题产生的原因,最后找出问题的解决方案。使用此方法可以保证整个电路板焊接完成后所有的模块组合在一起时基本上不会出错。即使有错也能很方便的找到问题出在那个功能模块上。焊接完成后,对PCB进行清洗,准备上电测试。上电测试:给定规定的上电电源,保证此电源电压一定要合适,所能的最大电流超过电路板加上负载后的的最大电流。在焊接时已对每个功能模块进行了测试,可以放心的使用。下载测试程序,观察结果是否与理论相符,出现异常后。先检查芯片的电源引脚上的电压是否正常,再检查测试的目标是否是问题。但对整个LED显示屏进行联合测试的时候,先对LED显示屏进行测试,然后是LED显示屏与信号驱动板联合测试,最后是LED显示屏、信号驱动板和信号分配与传输板的组合测试。将可能出现的问题从源头处解决。4.2 系统软件调试本系统在Visual Basic 6.0环境中进行软件调试。首先依据各功能模块的功能要求和工作过程画出程序的流程图,然后根据流程图和系统硬件的连接写出详细的汇编程序,接着对各个子程序进行编译,调试,运行,看看是否能达到其功能,然后再将整个程序糅合在一起进行整体软件调试。在整体调试中,需注意寄存器组不能重复,在进入中断时,哪些寄存器内容和参数需入栈保护,以及调用子程序时各个参数必须统一,在编译通过时,最好能把整个系统程序再单步执行一遍。单步执行时,最好打开CPU窗口和数据窗口,看看每步执行完成后数据各个特殊功能寄存器中数据的变化,这样才能确保整个系统程序按照系统的工作过程和功能要求执行。在编写汇编程序时,有一些容易出错的地方往往被忽视,有以下几点:程序的标号一定不要重复,在整个程序中不允许有两个名字相同的标号。语句中间的标点符号必须在英文输入环境下,中文环境下的标点翻译软件不识别,这一点需特别注意。中断子程序的标号不能使用INTO。在存储程序段时,必须符合文件储存格式如.ASM格式,否则下次将不能正常打
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 普阳电工考试题库及答案
- 2025年现代农业行业现代农业发展模式研究报告及未来发展趋势预测
- 产品市场分析SWOT矩阵模板
- 2025年数字化金融服务创新模式研究报告及未来发展趋势预测
- 跨行业合同管理工具风险控制辅助
- 岗位技能标准定义文件标准化工作流程模板
- 2025年物流行业物流科技创新对物流行业影响分析报告
- 恪守学术诚信声明书(5篇)
- 行政文件归档模板机关工作工作版
- 企业知识管理体系建设方案模版
- 钢厂机械回收合同范本
- 废旧轮胎回收利用综合汇报
- 2026步步高六册同步物理必修3-第十二章 3 第2课时 伏阻法和安阻法测电池的电动势和内阻
- 全国大学生职业规划大赛《土木工程》专业生涯发展展示
- 2023年同等学力申硕英语3000核心词汇
- 舞蹈老师职业介绍
- 临时起降点管理办法
- 心理健康教育自我成长报告
- 附件:佛山市房屋市政工程生产安全重大事故隐患排查、判定、治理、处罚工作指引
- 蛋品冷链物流配送服务创新创业项目商业计划书
- 货代操作标准化流程
评论
0/150
提交评论