基于单片机的LED点阵显示器设计说明.doc

上传人:可****阿 文档编号:43256355 上传时间:2022-09-17 格式:DOC 页数:30 大小:1.30MB
返回 下载 相关 举报
基于单片机的LED点阵显示器设计说明.doc_第1页
第1页 / 共30页
基于单片机的LED点阵显示器设计说明.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《基于单片机的LED点阵显示器设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的LED点阵显示器设计说明.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 毕业设计(论文)题 目:院 (系):专 业:姓名:学号:指导二一 三年十二月二日毕业设计(论文)任务书学生学号专 业院(系)毕业设计(论文)题目基于单片机的LED点阵显示器设计任务与要求论文任务:本文将应用所学的专业知识,理论联系实际,对苹果产品在当前竞争环境下的优势进行深入分析和探讨。具体研究任务包括:(1)单片机的发展。(2)LED的介绍。(3)各种LED在特定环境下的工作状态以与报警类型。(4)LED的使用意义以与发展前景。论文要求:(1)资料要充分,结构要完整,论述要清晰;(2)重要数据与引用他人成果要说明出处;(3)符合我校毕业论文书写规;(4)字数不少于6000字;(5)按时完成

2、毕业论文各阶段工作,不突击、不抄袭;(6)每周主动向指导教师汇报工作进度,探讨研究容;(7)形成书面论文周记、论文初稿、论文终稿。完成时间段指导教师单位职称院(系)审核意见毕业设计(论文)进度计划表日 期工 作 容执 行 情 况指导教师签 字2013.6.15-2013.6.28查找资料,选题2013.6.29-2013.8.30完成论文的初稿2013.8.31-2013.9.30完成论文二稿的写作2013.10.1-2013.10.20完成论文的终稿与格式修改2013.10.21-2013.11.20进一步修改论文、定稿,打印论文,做好答辩准备20113.11.21-2013.12.5做好论

3、文答辩准备教师对进度计划实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一22 / 30毕业设计(论文)中期检查记录表学生填写毕业设计(论文)题目:基于单片机的LED点阵显示器设计学生: 学号专业: 指导教师:职称: 检查教师填写毕业设计(论文)题目工作量饱满一般不够毕业设计(论文)题目难度大适中不够毕业设计(论文)题目涉与知识点丰富比较丰富较少毕业设计(论文)题目价值很有价值一般价值不大学生是否按计划进度独立完成工作任务学生毕业设计(论文)工作进度填写情况指导次数学生工作态度认真一般较差其他检查容:存在问题与采取措施:检查教师签字: 年 月 日院(系)意见(加盖公章): 年 月

4、 日摘 要本设计使用AT89C51系列高速单片机作为主控制模块,利用简单的外围电路来驱动1616的点阵LED显示屏。并能利用软件方便的进行显示容的多样变化,另一方面点阵显示屏广泛的应用于医院、机场、银行等公共场所,所以本设计具有很强的现实应用性。本LED显示屏能够以动态扫描的方式滚动显示汉字,把字符码存储在空闲的单片机程序存储器空间,支持所有的国标字符和ASCII标准字符的显示与自定义图片的显示。本文从LED的显示原理入手,详细阐述了LED动态显示的过程,以与硬件电路的设计、计算和软件的算法。关键词:动态显示 单片机 点阵字库Abstract:This design uses AT89C51

5、series MCU as a main controller, and depends on a simple external circuit to drive 1616 the lattice LED display. data transmission equipment ,and it also can be used conveniently to show a variety of content changes. The other dot matrix display is widely used in hospitals, airports, banks and other

6、 public places. Therefore, the design has a strong practical application. The LED Display dynamic scan can show 16 16 dot matrix Chinese characters, Because serial transmission used, so that the system can be enhanced scalability, for a number of display units of the cascade. This article from the s

7、tart LED display principle, elaborated on the LED display dynamic process, as well as hardware circuit design, computing and software algorithms.Key Words: MCUSerial Data TransferLlattice Llibrary目 录第一章绪言1第二章显示原理与控制方式分析3第一节 LED点阵模块结构3第二节 LED 动态显示原理4第三节 LED常见的控制方式5第三章硬件电路设计7第一节系统硬件概述7第二节1616LED点阵的部结构

8、与工作原理8第三节主控单片机的接口说明11第四节 LED显示驱动电路13第四章字模生成14第一节字模简介14第二节字模存储技术16第三节字库生成16第五章软件设计18第一节程序设计总体思路18第二节系统初始化19结论21致22参考文献23附录24第一章 绪言LED(Light Emitting Diode),发光二极管,简称LED,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端

9、是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。多个 LED发光灯组成固定的字符或图形进行显示,即形成LED点阵图文显示屏。其主要特征是只控制LED点阵中各发光器件的通断(发光或熄灭),而不控制LED的发光强弱。LED点阵的汉字显示方式是先根据所需要的汉字提取汉字点阵(如1616 点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示

10、。LED点阵显示具有如下特点:(1) 电压:LED使用低压电源,供电电压在6-24V之间,根据产品不同而异,所以它是一种比使用高压电源更安全的电源。(2) 效能:消耗能量比同光效的白炽灯减少80%。(3) 适用性:每个单元LED小片是3-5mm的正方形,所以可以制备成各种形状的器件,并且适合于易变的环境。(4) 稳定性:10万小时,光衰为初始的50%。(5) 响应时间:其白炽灯的响应时间为毫秒级,LED灯的响应时间为纳秒级。(6) 对环境污染:无有害金属汞。(7) 颜色:改变电流可以变色,发光二极管方便地通过化学修饰方法,调整材料的能带结构和带隙,实现红黄绿兰橙多色发光。由于LED的众多优势,

11、在市场中得到了广泛的应用,主要应用领域有:(1)、信号指示应用:信号照明是LED单色光应用比较广泛也是比较早的一个领域,约占LED应用市场的4%左右。(2)、显示应用:指示牌、广告牌、大屏幕显示等, LED用于显示屏幕的应用约占LED应用的20%25%,显示屏幕可分为单色和彩色。(3)、照明应用:便携灯具,汽车用灯,特殊照明。由于LED尺寸小,便于动态的亮度和颜色控制,因此比较适合用于建筑装饰照明。背光照明:普通电子设备功能显示背光源、笔记本电脑背光源、大尺寸超大尺寸LCD显示器背光源等。以与投影仪用RGB光源。第二章 显示原理与控制方式分析第一节 LED点阵模块结构八十年代以来出现了组合型L

12、ED点阵显示器模块,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。这种一体化封装的点阵LED模块,具有高亮度、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。LED点阵规模常见的有44、48、57、58、88、1616等等。根据像素颜色的数目可分为单色、双基色、三基色等。像素颜色不同,所显示的文字、图象等容的颜色也不同。单色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示容的颜色由像素不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图2.1示出

13、最常见的88单色LED点阵显示器的部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。图2.1 88单色LED模块部电路LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字与符号如5x7点阵显示器用于显示西文字母58点阵显示器用于显示中西文,8x8点阵可以用于显示简单的中文文字,也可用于简单图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过PC机或单片机控制驱动。第二节 LED 动态显示原理LED点阵显示系统中各模块的显示方式: 有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的

14、方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。以88点阵模块为例,说明一下其使用方法与控制过程。图2.1中,红色水平线Y0、Y1Y7叫做行线

15、,接部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1X7叫做列线,接部每列8个LED的阴极,相邻两列线间绝缘。在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的LED就会有电流流过而发光。比如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图2.2图2.2 用动态扫描显示字符“B”的过程第三节 LED常见的控制方式目前常见的是并行传输方式

16、,通过8位锁存器将8位总线上的列数据进行锁存显示,各8位锁存器的片选信号由译码器提供。此种方式的优点是传输速度快,对微控制器(MCU)的通信速度要求较低。但是这种方案最大的缺点是不便于随意扩展显示单元的数目。每增加一个1616点阵的全角汉字显示单元,就需要在之前的电路上多增加两根地址线,这就要求在PCB布线的时候要留有充足的地址线冗余量。再一个缺点是,每个单元的PCB随着安放位置的不同,布线结构也不相同,不利于厂家批量生产。并行传输需要的芯片较多,因此市场上已经出现用FPGA,CPLD等高密度可编程逻辑器件(PLD)来取代传统锁存器IC的方案。成本有所下降,但可扩展性仍旧较差。因此,并行传输方

17、式适用于显示单元数目确定的条屏。随着广告屏显示容的多媒体化,对控制器传输速度,运算能力的要求越来越高。因此控制器的种类也在不断发展以适应要求,从最初的8051单片机,到PIC单片机,又到FPGA,直到现在的ARM处理器。不同功能档次的广告屏对应着不同的处理器。一以传统8051单片机为控制器的LED显示屏。因受到单片机运算速度与通信速率的限制,LED动态显示的刷新率不可能做得太高。对显示效果和移动算法的处理也比较吃力,在实际显示效果上有比较明显的闪烁感。除此之外,传统8051单片机的部资源贫乏,仅128字节的数据存储器,几K字节的程序存储器,无E2PROM,SPI。这就需要对单片机扩展外设,无疑

18、增加了硬件成本。因此,8051控制的条屏只能用于显示容与其简单,不需要经常更改显示容的场合。二以PIC单片机为控制器的LED显示屏。因PIC单片机是RISC架构的工业专用单片机,处理指令的速度有所增加,抗干扰能力优秀,型号种类繁多。作为条屏的控制器,可以明显的改善显示效果,同时PIC单片机部的资源较丰富,可节省外部电路设计难度,同时降低了硬件成本。因此,以PIC单片机为控制器的条屏目前仍是单色条屏市场的主流。三以FPGA(复杂可编程逻辑门阵列)为控制器的LED显示屏。FPGA以高速、并行著称。是近年来新兴的可编程逻辑器件。用他作为LED显示屏的控制器,能够高速的处理色阶PWM信号、高速的完成动

19、态扫描逻辑、高速的完成字符移动算法。因此被运用于双基色、三基色的显示系统。但是其成本较高,开发难度较大。四以ARM(32位RISC架构高性能微处理器)为控制器的LED显示屏。ARM有着极高的指令效率,极高的时钟频率。因此其运算能力非常强大,部资源也十分丰富,极大的简化了硬件设计的难度,缩短了开发周期。在条屏的运用中,能用ARM来实现花样繁多的显示方式,以与高色阶,多像素的全彩屏驱动。ARM与FPGA的组合更是功能强大,除了海量存储技术,无线更新技术外,还能实时地显示视频信号。因此,以ARM为控制器的显示屏常为视频全彩屏。第三章 硬件电路设计第一节 系统硬件概述整个电路由单片机89C51,16个

20、9015三极管4个1616的LED。该电路所设计的电子屏可滚动显示多个汉字。AT89C51是一种带4KB可编程可擦除只读存储器的低电压,高性能微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51引脚即外观如图3.1所示。图3.1 AT89C51的管脚图LED,5

21、0年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。LED是英文light emitting diode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧7树脂密封,即固体封装,所以能起到保护部芯线的作用,所以LED的抗震性能好该电路的显示采用逐行扫描方式。工作时,由单片机取出第一行需要显示的容经延时一段时间后再进行下一行点阵数据的显示。需要注意的是,每次只能选通一行数据,即要通过不断的逐行扫描来实现汉字或字符的显示。第二节1616LED点阵的部结构与工作原理以UCDOS中文宋体字库为例,每一个字由16行16列的

22、点阵组成显示。即国家标准汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素围的任何图形。这里我们以“祝”字说明,如图3.2所示。图3.2 16*16LED汉字显示用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般把它拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p1.7p1.0口。方向为p1.7到p1.0 ,显示汉字“祝”时,P2.0点亮。P1口由上往下排列,为p1

23、.7 灭,p1.6 灭, p1.5 灭, p1.4 亮, p1.3 灭, p1.2 亮,p1.1灭,p1.0 灭。即二进制00010000,转换为16进制为 10h。我们用8421法来计算“祝”字的左上半部分的点阵数据,使用纵向取模。从上到下黑方块用“1”表示,白方块用“0”表示,则:第1列 00010000 (8*0+4*0+2*0+1*1) (8*0+4*0+2*0+1*0)=10h第2列 00010000 (8*0+4*0+2*0+1*1) (8*0+4*0+2*0+1*0)=10h第3列 10010001 (8*1+4*0+2*0+1*1) (8*0+4*0+2*0+1*1)=91h)

24、第4列 01110011 (8*0+4*1+2*1+1*1) (8*0+4*0+2*1+1*1)=73h第5列 00010101 (8*0+4*0+2*0+1*1) (8*0+4*1+2*0+1*1)=15h)第6列 00011000 (8*0+4*0+2*0+1*1) (8*1+4*0+2*0+1*0)=18h第7列 00000000 (8*0+4*0+2*0+1*0) (8*0+4*0+2*0+1*0)=00h第8列 01111111 (8*0+4*1+2*1+1*1) (8*1+4*1+2*1+1*1)=7Fh上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往

25、下扫描,即从p3.7向p3.0方向扫描,从上图可以看到,这一列P3.6亮,即为01000000,16进制则为40h。 然后单片机转向上半部第二列,为p2.1点亮,依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“祝”的扫描代码为: 10h 10h 91h 73h 15h 18h 00h 7Fh 41h 41h 41h 41h 7Fh 00h 00h 00h 40h 80h 00h 0FFh 00h 0C1h 02h 0Ch 0F0h 00h 00h 0FEh 01h 01h 0Fh 00h由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示

26、在屏幕上。不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。用88LED点阵构成1616LED点阵Proteus中只有57和88等LED点阵,并没有1616LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要1616点阵。下面我们就首先介绍使用88点阵构建1616点阵的方法,并构建一块1616LED点阵,用于本例的显示任务。首先,从Proteus7.1的元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90,使其水平放置,那么此时它的左面8个

27、引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。连接好的1616点阵如图3.3所示。成如上图的1616点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块88点阵,然后拖动并使其与左侧的两块相并拢,成如上图的1616点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两

28、块88点阵,然后拖动并使其与左侧的两块相并拢。图3.3 点阵模块组合图4.3 1616点阵如上图的1616点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块88点阵,然后拖动并使其与左侧的两块相并拢,如图3.4图3.4 1616点阵构成可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如图3.5所示。看到,原来杂乱的连线现在已经几乎全部隐藏了,一块1616的LED点阵做成了。需要注意,做成的LED点阵的行线为左侧的16个引脚,

29、下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。然后,我们将其保存,以便以后使用。图3.5第三节 主控单片机的接口说明P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复制用口,作为输入口时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写入“1可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期激活部上拉电阻。在Flash编程时,PO口接收指令节,而在程序校检时,输出指令字节,校检时,要求外接上拉电阻。 P1口:P1口是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电

30、流)4个TTL逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。Flash编程和程序校检期间,P1接收低8位地址。P2口:P2口是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问外部数据存储器或16位地址的外部数据存储(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数

31、据存储器(如执行MOVXRI指令)时,P2口线上的容(也即特殊功能寄存器(SFR)区中R2寄存器的容),在整个访问期间不改变。Flash编程和校检时,P2亦接收高位地址和其他控制信号。P3口:P3口是一个带部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被部上拉电阻拉高并可作输入端口,作输入端时,被外部拉低的P3口将用上拉电阻,输出电流I。P3口还接收一些用于Flash闪速存储器编程和程序校检的控制信号。RST:复位输入,当震荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储

32、器或数据存储器时,ALE(地址锁存允许)输出脉冲用于所存地址的低8位字节。即使不访问外部存储器,ALE乃以时钟振动频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。第四节 LED显示驱动电路LED显示驱动电路如图3.6所示。图3.6 显示驱动电路图第四章 字模生成第一节 字模简介文字的字模是一组数字,但它的意义却与数字的意义有着根本的变化,它是用数字的各位信息来记载英文或汉字的形状1。在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有码(将ASCII表的高128个很少用到的数值以两个为一组来表示汉

33、字,即汉字的码。而剩下的低128位则留给英文字符使用,即英文的码)。如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字。在硬件系统,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符。而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)。4.1 LED显示屏领域字模实现技术在通过软件实现的技术中,目前有许多字模生成软件,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要

34、的竖排数据复制到我们的程序中即可。在通过硬件实现字模提取的技术中,有在单片机系统中增加硬汉字库的方法,主控器发送的汉字是其机码,用两个字节来表示一个汉字。根据机码,显示单元控制模块从汉字库中查取显示字模,实现汉字显示。由于带有硬汉字库,进行动态文字显示时,通用智能显示单元仅承受汉字的机码即可,这样数据通讯量大大减少。因此,“动态文字显示速度快”。4.1.1 软件控制系统字模提取的分析与设计而在LED显示屏控制系统具体应用的Windows操作系统下如何提取字模信息是设计的核心。软件控制系统在实际编辑过程中,要求各种字体、字号的文字都能被编辑、保存。所以系统在设计时,把文本区理解为由众多的显示屏的

35、大小对应,所以采用1616点阵为单位,把文本区的每个像素点都看成一个二维数组,由于系统中各种颜色都有对应的值,赋予每个不同颜色的像素点不同的对应值,再把每个点赋予一个int型的值,这样保存下来的信息就是二进制数据。通过这样的设计,我们不仅可以把任何字型,任何大小的文字保存下来,还可以显示以256个像素点阵为单位的任何图形。在软件控制系统中实现字模的提取,也就避免了在单片机中加载硬汉字库模块,从而简化了硬件模块的设计。以下以单色屏为例,介绍系统采用字模保存的算法设计:定义COLORREF zimo_ color为像素点的颜色,判断某个点的颜色值。如果值为Oxffffff,说明此点为白色,赋予此点

36、值0。由于单色屏只有红色和不显色两种,所以可以简单赋值为除白色外其余点赋值为1CClientDC dc(this);CFile myfile;unsigned int zimo192 384=0;unsigned char zimo_data19248=0;COLORREF zimo_color;int row, col ;this -HideCaret();for (row=0;row192;row+)for (col=0;col384;col+)zimo_color=do.GetPixel (col, row);if (zimo color = =Oxffffff)zimo row col

37、=0;elsezimo row col=1;定义unsigned int zimo192384=0;/文本区像素点以8位为一字节(因为在随后的串行通讯中,传输的数据是8位的二进制数据)定义 unsigned char zimo_data19248=0第二节 字模存储技术目前使用最广泛的技术是,通过上位机软件将待显示的字符串转换为对应的点阵字模数据,通过烧写的方式将这些字模数据按一定的顺序编址后存储在E2PROM中。在条屏显示的过程中按规定的方式取出E2PROM中的字模数据进行处理。对于一个1616点阵的汉字字模数据,需要连续32字节的E2PROM空间来存储。照此计算,若有256个需要显示的字符

38、,则至少需要32B256=8192字节(8KB)的E2PROM存储空间。通常的单片机部没有集成这么大容量的E2PROM。因此这种方案,需要在单片机外部扩展大容量的E2PROM,增加硬件成本。上位机程序设计由于涉与到汉字取模,取模算法的难度较大。在多字下载的时候传输时间也较长。诸多弊端使本设计放弃了传统方案。而本设计创新使用了专用的点阵字库芯片,成本仅为8元,含各种点阵规格的GB2312、ASCII等标准字库。专用字库芯片采用微型SO-8封装,使用高速同步串行SPI接口进行读写操作,节省了控制器的I/O。在本设计中,单片机部的小容量E2PROM,用于存储待显示汉字的GB2312标准机码,每个全角

39、字符的码占2字节,则在同样需要显示256个汉字的情况下,这种方案仅占用512字节的E2PROM空间。第三节 字库生成因为本设计中为行扫描,列输入,所以“郭洪丽”的字模代码为:;一、文字: 郭 -;- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -DB 0FFH,0DFH,0D1H,55H,95H,0D5H,0D1H,0DFH,0FFH,80H,0BFH,0BBH,0A5H,9EH,0FFH,0FFHDB 0FFH,0F7H,77H,75H,76H,41H,2FH,6FH,0FFH,00H,0FFH,0EFH,0EFH,0F7H,0FH,0FFH二、 文字: 洪 -;- 宋体12; 此

40、字体下对应的点阵为:宽x高=16x16 -DB 0EFH,0F3H,7FH,98H,0E7H,0FFH,0F7H,80H,0F7H,0F7H,0F7H,80H,0F7H,0F7H,0FFH,0FFHDB 0DFH,0DFH,00H,0FFH,0BEH,0BDH,0B3H,0FH,0BFH,0BFH,9FH,2FH,0B3H,0B8H,0BFH,0FFH三、文字: 丽 -;- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -DB 0BFH,0B0H,0B6H,0B7H,0B7H,0B7H,0B0H,0BFH,0B0H,0B5H,0B6H,0B7H,0B7H,0B0H,0BFH,0FFHD

41、B 0FFH,01H,0FFH,1FH,0BBH,0F9H,03H,0FFH,01H,0FFH,3BH,7BH,0F9H,03H,0FFH,0FFH第五章 软件设计第一节 程序设计总体思路用简短的汇编程序设计,实现LED点阵显示容,并使显示的容在屏幕上从左到右的滚动显示。系统采用模块化结构,包括主程序、延时程序、显示子程序和串行口中断程序。用AT89C51、9015三极管和4个1616LED点阵显示器构成一个完整的16位点阵LED显示系统。程序流程图程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如图5.1所示。图5.1 单片机汉字显示程序流程图第二节 系统初始化ORG 0

42、000HAJMP STARTORG 000BHLJMP TIME0ORG 0030HSTART:MOV R1,#00HMOV R2,#00HMOV R3,#00HMOV R4,#00HMOV R5,#00HLED动态显示:显示要求汉字在显示屏上按从左到右的顺序一个个的出现。设计时可采用如下方法:首先将LED显示屏对应的显示缓冲区全部清零,即 LED显示空白,然后每间隔一个“软定时器”设定的动态显示时间,显示缓冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到动态显示的效果。实现LED从左向右移动显示程序:TIME0:INC R5CJNE R5,#3,NEXTMOV R5,#0INC DP

43、TRINC DPTRINC R1CJNE R1,#144,NEXTMOV R1,#0MOV DPTR,#TABNEXT: MOV TH0,#3CHMOV TL0,#0B0HRETI汉字显示的原理:我们以中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字, 也可以显示在256像素围的任何图形。LED点阵汉字显示程序:MAIN: MOV P1,R2MOV A,R3MOVC A,A+DPTRMOV P2,AINC R3MOV A,R3MOVC A,A

44、+DPTRMOV P0,AINC R3MOV P3,R4LCALL DELAY1MSINC R2CJNE R2,#16,MAINMOV R2,#0INC R4CJNE R4,#3,MAINMOV R3,#0MOV R4,#0LJMP MAIN结 论在本设计中我用简短的汇编程序在LED显示屏实现了汉字的左移滚动显示。在设计中采用的芯片有AT89C51、9015三极管和4个1616LED点阵显示器。其特点:1.容能从右向左浮动显示。2.硬件结构简单,应用广泛。3.LED数码管动态扫描显示,工作效率高,价格低廉等。通过本次(1616位点阵LED)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用

45、所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规以与电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以与对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习和工作奠定的基础。致 在完成此设计过程中,我曾多次去找我的指导老师,每次在遇到实验中遇到困难或者程序看不懂的时候,我都去找老师,不管上班下班时间,老师每次都不厌其烦,不辞辛苦的给我细心讲解指导,我才能在实验室完成实验,在写论文过程中老师也给了我很大帮助,在此,我由衷的对老师对我的指导和教育。参考文献1建忠编著.单片机原理与应用.:电子科技大学,20022群芳,肖看编著.单片机原理、接口与应用.:清华大学,20053于海生编著.微型计算机控制技术.:清华大学,20084戴梅萼,史嘉权编著.微型计算机技术与应用(第3版).:清华大学,20085江晓安,董秀峰编著.数字电子技术(第二版).:电子科技大学,2005附 录

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁