毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc

上传人:仙人指路1688 文档编号:4136076 上传时间:2023-04-07 格式:DOC 页数:40 大小:7.24MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc_第1页
第1页 / 共40页
毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc_第2页
第2页 / 共40页
毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc_第3页
第3页 / 共40页
毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc_第4页
第4页 / 共40页
毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的Led点阵显示控制器设计.doc(40页珍藏版)》请在三一办公上搜索。

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

2、ies MCU as a main controller, and depends on a simple external circuit to drive 16x16 the lattice LED display. data transmission equipment ,and it also can be used conveniently to show a variety of content changes. Therefore, the design has a strong practical application. The LED Display dynamic sca

3、n can show 16 x 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 start LED display principle, elaborated on the LED display dynamic process, as well as hardware circ

4、uit design, computing and software algorithms.Key Words: MCU;Serial Data Transfer;Lattice Library目 录第1章 LED概述61.1 LED电子显示屏概述61.2 LED电子显示屏的分类6第2章 显示原理及控制方式分析82.1 LED点阵模块结构82.2 LED 动态显示原理92.3 LED常见的控制方式10第3章 硬件电路设计123.1 系统硬件概述123.2 16x16LED点阵显示制作133.2.1 16x16LED点阵的内部结构及工作原理133.2.2 用8x8LED点阵构成16x16LED点

5、阵143.3主控单片机的接口说明163.4 LED显示驱动电路17第4章 字模生成194.1 字模简介194.1.1 LED显示屏领域字模实现技术194.1.2 软件控制系统字模提取的分析与设计194.2 字模存储技术214.3 字库生成21第5章 软件设计235.1 程序设计总体思路和结构235.1.1 程序设计总体思路235.1.2 程序流程图235.2 各模块程序设计245.2.1 系统初始化245.2.2 LED动态显示245.2.3 汉字显示的原理25第6章 编程及写入简介27总 结29参考文献31附 录32绪 论Light Emitting Diode,发光二极管,简称LED,是一

6、种能将电能转化为可见光的固态半导体元件,可以把电转化为光,LED的核心是一个半导体晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极使整个晶片被环氧树脂封装起来,半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子,但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是发光的原理【2】。多个 LED发光灯组成固定的字符或图形进行显示,即形成LED点阵图文显示屏。特征是只控制各发光器件的通断,而不控制发光强弱

7、。LED点阵的汉字显示方式是先根据所需要的汉字提取汉字点阵(如16x16 点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。LED点阵显示具有如下特点:(1) 电压:LED使用低压电源,供电电压在624V,根据产品不同而异,是一中比较安全的电源。(2) 效能:消耗能量比同光效的白炽灯减少80%。(3) 适用性:每个单元LED是3-5mm的正方形,可以制备成各种形状的元件,适合各种环境。(4) 稳定性:10万小时,光衰为初始的50%。(5) 响应时间:其白炽灯的响应时间为毫秒级,LED灯的响应时间为纳秒级。

8、(6) 对环境污染:无有害金属汞。由于LED的众多优势,在市场中得到了广泛的应用,主要应用领域有:(1)、信号指示应用:信号照明是LED单色光应用比较广泛也是比较早的一个领域,约占LED应用市场的4%左右。(2)、显示应用: LED用于显示屏幕的应用约占LED应用的20%25%,显示屏幕可分为单色和彩色。(3)、照明应用:便携灯具,汽车用灯,特殊照明。由于体积小,便于动态亮度和色彩控制,因而LED更适合于建筑照明。背光照明:普通电子设备功能显示背光源、笔记本电脑背光源、大尺寸超大尺寸LCD显示器背光源等。以及投影仪用RGB光源。第1章 LED概述1.1 LED电子显示屏概述LED电子显示屏是将

9、众多半导体发光二极管按矩阵均匀排列组成均匀的像素点,利用不同的半导体材料可以制造不同色彩的LED像素点。目前应用最广的是红色、绿色、黄色,蓝色和绿色的LED开发已经达到了实用阶段, LED显示屏是一种通过控制半导体发光二极管的亮度的方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕 【3】。LED显示屏有图文显示屏和条幅显示屏之分,他们都是由LED矩阵块组成。图文显示屏与计算机相连可以同步显示汉字、英文文本和图形;而条幅显示屏则适用于小容量的字符信息显示。LED显示屏具有各种优点,比如亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等优点。因而被广泛应用于

10、各种公共场所。 LED显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展【4】。1.2 LED电子显示屏的分类(1)按颜色分类:单基色显示屏:单一颜色(红色或绿色)。 双基色显示屏:有红绿两种基色,256级灰度、可以显示65536种颜色。 彩色显示屏:由红绿蓝构成三种基色,256级灰度,可以显示一千六百多万种颜色【5】 。 (2)按显示器件分类: LED数码管显示屏LED点阵图文显示屏(3)按使用场合分类: 室内显示屏:一般3mm-8mm,显示面积一般零点几至十几平方米。 室外显示屏:由于显示器亮度比较高,可在阳光下工作。而且

11、具有防风、防雨、防水功能。 (4)按发光点直径分类: 室内屏:3mm、3.75mm、5mm、 室外屏:10mm、12mm、16mm、19mm、21mm、26mm 室外屏幕的发光的发光管,发光管原理的基本单位是一组红,绿和蓝色发光二极管中的塑料管接头的发光亮度增强密封。第2章 显示原理及控制方式分析2.1 LED点阵模块结构八十年代以后出现了用用环氧树脂和塑模封装高亮度发光二极管芯阵列而成的新型组合型LED点阵显示器模块,这种一体化封装的点阵LED模块,具有高亮度、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点【6】。LED点阵规模常见的有4x4、4x8、5x7、5x8、8x8、16x16等

12、等。根据像素颜色的数目可分为单色、双基色、三基色等。像素颜色不同,所显示的文字、图象等内容的颜色也不同。单色点阵:固定显示红、绿、黄等单色双基色和三基色点阵:由不同颜色发光二极管点亮组合控制显示颜色,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示【7】。图2.1最常见的8x8点阵显示器的电路结构。 图2.1 8x8单色LED模块内部电路LED点阵显示器单独使用时,既可以像数码晶体管一样显示数字,也可以以像素方式显示文字及符号如显示西文字母用5x7点阵显示器,显示中西文用5x8点阵显示器,显示简单的中文文字用8x8点阵,也可显示简

13、单图形。用多块点阵显示器组合构成的大屏幕显示器,可以显示更为复杂的内容,但是需要通过单片机或者计算机来进行驱动。2.2 LED 动态显示原理LED点阵显示方式分为静态和动态,静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息【8】。点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性,将连续的几帧画面高速的循环显示,只要帧速率高于24帧

14、/秒,人眼看起来就是一个完整的,相对静止的画面【9】。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。以8x8点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平线Y0、Y1Y7叫做行线,与发光二极管的阳极相连接,所有LED的阳极都连接在行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的LED就会有电流流过

15、而发光。比如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED全点亮。现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图2.2图2.2 用动态扫描显示字符“B”的过程2.3 LED常见的控制方式并行传输是最常見的控制方式,它是通過由各译码器提供8位锁存器的片選信号,将8位总线上的列数据通過8位锁存器进行锁存显示。此种方式的优点是传输速度快,对微控制器(MCU)的通信速度要求较低。但是这种方案最大的缺点是不便于随意扩展显示单元的数目。在电路布线的时候要预留充足的位置来添加地址线,每增加两个地址线才可以多驱动一个16x16汉字显示点阵单

16、元.不同厂家生产的PCB单元不同,所以每个PBC单元的布线结构和安放位置都不相同。市场上已经出現用FPGA,CPLD等高密度可编程逻辑器件(PLD)来取代并行传输需要的芯片较多的传统锁存器IC。通过降低扩展性来达到降低成本的目的。因此,并行传输方式适用于显示单元数目确定的条屏。随着广告屏显示内容的多媒体化,对控制器传输速度,运算能力的要求越来越高。从最初的8051系列單片机,到PIC系列單片机,又到FPGA,直到现在的ARM處理器,控制器的种类也在飛速发展以适应要求。不同功能档次的广告屏对应着不同的处理器。(1)以传统8051系列单片机为控制器的LED显示屏。显示效果上有比较明显的闪烁感是由于

17、LED动态显示的刷新率不可能做得太高才使得实际单片机运算速度及通信速率的限制,对显示效果和移动算法的处理也比较吃力,。除此之外,传统8051系列单片机仅128字节的数据存储器使得内部资源贫乏,没有E2PROM,SPI,并且只有几K字节的程序存储器。这就需要对单片机扩展外设,无疑增加了硬件成本。因此显示内容简单,且不需要经常更改显示内容的场合可以使用8051控制的条屏。(2)以PIC单片机为控制器的LED显示屏。在传统工业专用单片机上添加RISC架构的PIC单片机,型号种类繁多,处理指令的速度有所增加,作为条屏的控制器,可以明显的改善显示效果,抗干扰能力优秀。同时PIC单片机内部的资源较丰富,可

18、节省外部电路设计难度,同时降低了硬件成本。因此,以PIC单片机为控制器的条屏目前仍是单色条屏市场的主流。(3)以FPGA(复杂可编程逻辑门阵列)为控制器的LED显示屏。FPGA以高速、并行著称。是近年来新兴的可编程逻辑器件。用他作为LED显示屏的控制器,能够高速的处理色阶PWM信号、高速的完成动态扫描逻辑、高速的完成字符移动算法。因此被运用于双基色、三基色的显示系统。但是其成本较高,开发难度较大。(4)LED显示屏以ARM(32位RISC架构高性能微处理器)为控制器,ARM有着极高的指令效率,极高的时钟频率。因此其运算能力非常强大,内部资源也十分丰富,极大的简化了硬件设计的难度,缩短了开发周期

19、,在条屏的运用中,能用ARM来实现花样繁多的显示方式,以及高色阶,多像素的全彩屏驱动,ARM与FPGA的组合更是功能强大,除了海量存储技术,无线更新技术外,还能实时地显示视频信号【9】。因此,以ARM为控制器的显示屏常为视频全彩屏。第3章 硬件电路设计3.1 系统硬件概述整个电路由单片机89C51,16个9015三极管4个8x8的LED组成。该电路所设计的电子屏可滚动显示多个汉字。AT89C51俗称單片机,是一种带4KB可编程可擦除只讀存储器的低电压,高性能微處理器。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集

20、和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51引脚即外观如图3.1所示。图3.1 AT89C51的管脚图LED,50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。LED是英文light emitting diode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧7树脂密封,即固体封装,所以能起到保护内部芯线的作用,所

21、以LED的抗震性能好该电路的显示采用逐行扫描方式【10】。工作时,单片机一次选取一行数据进行扫描,然后经过短暂的延时才能继续进行下一次的扫描。 3.2 16x16LED点阵显示制作3.2.1 16x16LED点阵的内部结构及工作原理以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国家标准汉字库中的每一个字均由256点阵来表示。我们把每个字符看做一个由像素构成的位图,那么点阵中的每一个单元就是一个像素。在16x16的点阵屏上可以显示汉字以及简单的图形。这里我们以“祝”字说明,如图3.3所示。 图3.3 16*16LED汉字显示用8位的AT89C51单片机控制,由于单片机的总

22、线为8位,我们把一个字想上图一样拆分为两个8x16的点阵,由两个点阵组成该汉字。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p1.7p1.0口。方向为p1.7到p1.0 ,显示汉字“祝”时,P2.0点亮。P1口由上往下排列,为p1.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

23、*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)第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

24、*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上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p3.7向p3.0方向扫描,从上图可以看到,这一列P3.6亮,即为01000000,16进制则为40h。 然后单片机开始扫描上半部分第二列,此时p2.1点亮,以此类推,进行后续点阵的扫描,一共需要扫描32个8位,可以得出汉字“祝”的扫描代码为: 10h 10h91h73h 15h 18h00h7Fh41h 41h41h 41h7Fh00h

25、00h00h40h80h00h0FFh00h0C1h02h 0Ch0F0h00h00h0FEh01h01h0Fh00h 它可以从这个原理中可以看出,尽管字体或图像各不相同,则可以使用这是什么方法来分析扫描码来在屏幕上显示它。我们可以通过使用字符模拟软件将汉字生成点阵代码,免去了自己计算的繁杂过程。3.2.2 用8x8LED点阵构成16x16LED点阵显示一个完整的汉字至少需要16x16的点阵,而Proteus中只有5x7和8x8等LED点阵,并没有16x16LED点阵,所以我们就需要用8x8点阵构建16x16点阵的方法,并构建一块16x16LED点阵,用于本例的显示任务。首先,从Proteus

26、7.1的元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。应当指出,在这个时候,如果该组件保持初始位置(无旋转方向),我们首先必须将它旋转90,使得其位于水平方向,然后它左边的八个引脚引导行线右边八个引脚引导列线(当然,如果你要右转,则对应相反)。我们将四个组件连接起来,使它们的行线和列线对应,并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。连接好的16x16点阵如图3.4所示。图3.4 点阵模块组合连接好之后我们会发现,在实际应用中上图的点阵拍俩方式显示效果并不好所以我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的

27、两块8x8点阵,然后拖动并使其与左侧的两块相并拢,如图3.5所示。图3.5可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如图3.6所示。图3.6隐藏掉复杂的连线,我们只需要显示屏和主要的行列线就可以了,需要注意,次16x16点阵左侧的引脚为行线,行线仅为高电平有效,下侧的引脚为列线,列线仅为低电平有效。然后,我们将其保存,以便以后使用。3.3主控单片机的接口说明P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复制用口,作为输入口时,每位能吸收电流的方式驱动8个TTL逻辑门电路,

28、对端口写入“1可作为高阻抗输入端用,在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期激活内部上拉电阻。在Flash编程时,PO口接收指令节,而在程序校检时,输出指令字节,校检时,要求外接上拉电阻,P0口作为I/O口输出的时候,输出低电平为0,输出高电平为组态。也就是说P0口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一点组连接到VCC),由电源通过这个拉电阻给负载提供电流。由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力有多大,相当于他是没有电源的,需要外部的电路提供,绝大多数情况下P0口必须加上拉电阻的。P1口:P1口是一个

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

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

31、RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于所存地址的低8位字节,即使不访问外部存储器,ALE乃以时钟振动频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。3.4 LED显示驱动电路LED显示驱动电路如图3.7所示。 图3.7 显示驱动电路图第4章 字模生成4.1 字模简介文字的字模是一组记载点阵显示位置的编码。在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有内码(将ASCII表的高128个很少用到的

32、数值以两个为一组来表示汉字,即汉字的内码,而剩下的低128位则留给英文字符使用,即英文的内码),如果你用启动盘启动系统后用DIR命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动UCDOS或其他的汉字系统后,就会看到那是一个个熟悉的汉字,在硬件系统内,英文的字模信息一般固化在ROM里,即使在没有进入系统的CMOS里,也可以让你看到英文字符,而在DOS下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)【11】。4.1.1 LED显示屏领域字模实现技术将汉字转化成为代码的过程可以通过很多软件来实现。软件打开后输入汉字,选取合适的单片机型

33、号,设置相关的现实方式,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可,在通过硬件实现字模提取的技术中,有在单片机系统中增加硬汉字库的方法,主控器发送的汉字是其机内码,用两个字节来表示一个汉字【12】。根据机内码,显示单元控制模块从汉字库中查取显示字模,实现汉字显示。由于带有硬汉字库,进行动态文字显示时,通用智能显示单元仅接受汉字的机内码即可,这样数据通讯量大大减少。因此,“动态文字显示速度快”。4.1.2 软件控制系统字模提取的分析与设计而在LED显示屏控制系统具体应用的Windows操作系统下如何提取字模信息是设计的核心,软件控制系统在实际编辑

34、过程中,要求各种字体、字号的文字都能被编辑、保存,所以系统在设计时,把文本区理解为由众多的显示屏的大小对应,所以采用16x16点阵为单位,把文本区内的每个像素点都看成一个二维数组,由于系统中各种颜色都有对应的值,赋予每个不同颜色的像素点不同的对应值,再把每个点赋予一个int型的值,这样保存下来的信息就是二进制数据,通过这样的设计,我们不仅可以把任何字型,任何大小的文字保存下来,还可以显示以256个像素点阵为单位的任何图形,在软件控制系统中实现字模的提取,也就避免了在单片机中加载硬汉字库模块,从而简化了硬件模块的设计【13】。以下以单色屏为例,介绍系统采用字模保存的算法设计:定义COLORREF

35、 zimo_ color为像素点的颜色,判断某个点的颜色值。如果值为Oxffffff,说明此点为白色,赋予此点值0。单色屏时能显示亮或者不亮两种状态,我们给亮的点赋值为1。 C Client DC dc(this); C File my file;unsigned int zimo192 384=0;unsigned char zimo_data19248=0; COLORREF zimo_color; int row, col ; this -Hide Caret(); for (row=0;row192;row+) for (col=0;col384;col+) zimo_color=do

36、.Get Pixel (col, row); if (zimo color = =Oxffffff) zimo row col=0;else zimo row col=1;定义unsigned int zimo192384=0;/文本区像素点以8位为一字节(因为在随后的串行通讯中,传输的数据是8位的二进制数据)定义 unsigned char zimo_data19248=04.2 字模存储技术通过上位机软件将待显示的字符串转换为对应的点阵字模数据,通过烧写的方式将这些字模数据按一定的顺序编址后存储在E2PROM中是目前使用最广泛的技术【14】。在条屏显示的过程中按规定的方式取出E2PROM中

37、的字模数据进行处理。需要连续32字节的E2PROM空间才能储存一个16x16点阵的汉字字模数据。照此计算,若需要显示256个字符,则至少需要32Bx256=8192字节(8KB)的E2PROM存储空间。通常的单片机内部没有集成这么大容量的E2PROM。因此实现这种方案,需要在外部扩展大容量的E2PROM,增加硬件成本。上位机程序设计由于涉及到汉字取模,取模算法的难度较大。在多字下载的时候传输时间也较长。诸多弊端使本设计放弃了传统方案。而本设计创新使用了专用的点阵字库芯片,成本仅为8元,内含各种点阵规格的GB2312、ASCII等标准字库。专用字库芯片采用微型SO-8封装,使用高速同步串行SPI

38、接口进行读写操作,节省了控制器的I/O。在本设计中,我们使用了GB2312内码,从而降低了单片机储存字符所需的空间。4.3 字库生成;- 文字: 点 -;- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -DB 00H,00H,03H,02H,02H,02H,0FEH,12H,12H,12H,12H,13H,10H,10H,00H,00HDB 01H,02H,0ECH,20H,20H,28H,26H,20H,28H,26H,20H,0E0H,08H,07H,00H,00H;- 文字: 阵 -;- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -DB 00H,7FH,40H,44

39、H,5BH,60H,10H,13H,1DH,0F1H,17H,11H,11H,11H,10H,00HDB 00H,0FFH,10H,08H,10H,0E0H,10H,10H,10H,10H,0FFH,10H,10H,10H,10H,00H第5章 软件设计5.1 程序设计总体思路和结构5.1.1 程序设计总体思路用简短的汇编程序设计,实现LED点阵显示内容,并使显示的内容在屏幕上从左到右的滚动显示。系统采用模块化结构,包括主程序、延时程序、显示子程序和串行口中断程序。5.1.2 程序流程图程序主要由开始,初始化,主程序,字库组成。其中主程序和子程序的流程图如图5.1所示。图5.1 单片机汉字显示

40、程序流程图5.2 各模块程序设计5.2.1 系统初始化ORG 0000H 伪指令告诉编译程序在将程序代码加载到内存时,指定下一条指令的代码的偏移地址为0000HAJMP START 跳到标号START执行ORG 000BHLJMP TIME0ORG 0030HSTART:MOV R1,#00H给定最初显示位置MOV R2,#00HMOV R3,#00HMOV R4,#00HMOV R5,#00H5.2.2 LED动态显示显示要求汉字在显示屏上按从左到右的顺序一个个的出现。设计时可以先将LED显示屏对应的显示缓冲区全部清零,即 LED显示空白,然后每间隔一个“软定时器”设定的动态显示时间,显示缓

41、冲区依次加入一个汉字点阵数据并进行扫描显示,这样就可达到动态显示的效果【15】。实现LED从左向右TIME0:INC R5CJNE R5,#3,NEXTMOV R5,#0INC DPTRINC DPTRINC R1CJNE R1,#144,NEXTMOV R1,#0MOV DPTR,#TABNEXT: MOV TH0,#3CHMOV TL0,#0B0HRETI5.2.3 汉字显示的原理我们用16x16的点阵显示屏来显示中文字体,这样每个汉字就需要256个点阵构成。我们把每个汉字看做一个位图图像,构成这个图像的每个点我们成为像素。这样,不论是汉字还是图像,是要能够用位图来表示,我们就可以将它显示

42、在LED点阵显示器上。LED点阵汉字显示程序:MAIN: MOV P1,R2堆栈入口地址MOV A,R3MOVC A,A+DPTR寄存器间接寻址MOV P2,AINC R3R3加1MOV A,R3MOVC A,A+DPTRMOV P0,AINC R3MOV P3,R4LCALL DELAY1MS 调用延时程序INC R2CJNE R2,#16,MAIN 检验显示是否完成MOV R2,#0INC R4CJNE R4,#3,MAINMOV R3,#0MOV R4,#0LJMP MAIN第6章 编程及写入简介使用单片机编程软件可以设计编制程序,常用编程软件如 keil uvision 等。你可以使用

43、我们提供的单片机程序设计软件设计程序。不管你是使用哪种开发环境或开发语言,只要将程序调试成功。并输出一个二进制文件bin或十六进制文件hex,就可以将这个文件通过编程器或下载线写入到单片机里边运行。总 结在本设计中我用简短的汇编程序在LED显示屏实现了汉字的左移滚动显示。在设计中采用的芯片有AT89C51、9015三极管和4个16x16LED点阵显示器。其特点:1. 内容能从右向左浮动显示。2. 硬件结构简单,应用广泛。3. LED数码管动态扫描显示,工作效率高,价格低廉等。通过本次(16x16位点阵LED)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问

44、题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习和工作奠定的基础。致 谢在完成此设计过程中,我曾多次去找我的指导老师,舒杰老师,每次在遇到实验中遇到困难或者程序看不懂的时候,我都去找舒老师,不管上班下班时间,舒老师每次都不厌其烦,不辞辛苦的给我细心讲解指导,我才能在实验室完成实验,在写论文过程中老师也给了我很大帮助,在此,我由衷的向老师对我的指导和教育致以最诚挚地感谢。参考文献1. 篇名:基于51单片机的LED显示屏仿真设计2011年2. 篇名:L

45、ED半导体照明技术及在企业中的应用出处: 中国科技博览 2012年3. 篇名:点阵式LED汉字广告屏的设计与制作_百度文库4. 篇名:天津力诺科技发展有限公司 LED显示屏5. 江晓安,董秀峰编著.数字电子技术(第二版).西安:西安电子科技大学出版社,20056. 篇名:c8051f实验系统的设计与开发 出处: 硕博学位论文 2007年7. 篇名:单片机控制LED数码点阵显示屏完整版新-豆丁网8. 篇名:基于单片机的灯箱设计出处: 科技创新导报 2011年9. 篇名:LED点阵电子显示屏的应用设计论文-豆丁网10. 篇名:led是什么意思11. 篇名:16x16点阵LED循环显示汉字汇编语言设计12. 篇名:毕业设计led显示屏控制系统的分析与设计13. 篇名:基于ARM的LED广告牌系统设计- 道客巴巴14. 篇名:Led点阵广告牌设计0_中华文本库15. 篇名:列车旅客信息系统中的led显示单元和供电监控平台的设计 出处: 硕博学位论文 2007年附 录1、试验样品 2、电路原理图3、程序源代码代码ORG 0000H ; LJMP START ;字模 黑白反显 START:LCALL OFFLED

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号