点阵式汉字电子显示屏的设计
- 格式:pdf
- 大小:366.55 KB
- 文档页数:12
点阵式汉字电子显示屏的设计
摘要
随着社会的发展,电子显示屏的应用范围越来越广泛,作为一个重要的显示宣传平台,已经受到全社会的普遍认可。
本设计以单片机为控制核心,通过8*8LED点阵显示屏及相关的外围电路,设计制作了一个16×16点阵LED电子显示屏。
本论文介绍了基于AT89S51单片机点阵显示屏的设计方案,阐述了16×16点阵LED显示屏的设计原理与思路,详细叙述了系统硬件电路的连接方式,各部分电路的组成和它们在电路中所实现的功能,简单阐述了软件设计的基本思路和方法。
在显示屏的列驱动电路选择方面,本设计采用了74HC154 4线-16线译码器作为点阵显示屏的列驱动扫描电路,采用16个PNP型8550三极管作为列驱动器件,采用16个NPN型9013三极管作为行驱动器件,通过这样的电路组成能在电源电压一定的情况下提高LED显示屏的亮度。
在程序设计方面,采用汇编语言来实现编程[1]。
关键词AT89S51/单片机/LED显示屏/74HC154译码器/三极管
THE DESIGN OF DOT-MATRIX CHINESE
ELECTRONIC DISPLAY SCREEN
ABSTRACT
With the development of society, the electronic display screen is widely used in the display, as an important platform for propaganda, has been widely accepted by the whole society. This design USES single chip control core, through 8 * 8Destem and related peripheral circuit, design and make a 16×16 lattice LED electronic display screen.This paper introduces the based on AT89S51 dot matrix display design, this paper expounds the 16 * 16 lattice LED display design principle and thinking, this paper describes the system hardware circuit connection way, each part of the circuit, composition and they in a circuit which realize the function of software design, this paper briefly expounds the basic ideas and methods. In the screen column drive circuit choose, I used 74HC154 4-line - 16 line as dot matrix display decoder listed drive scanning circuit, use 16 PNP type 8550 triode, using as listed drive device type 16 NPN transistor as line drive device 9013, through such circuit composed in power supply voltage must increase the LED display brightness. In programming, to realize programming using assembly language.
KEY WORDS A T89S51,SCM,LED display,74HC154 decoder,transistor 目录
摘要I
ABSTRACTII
1 引言1
1.1 课题的背景1
1.2 研究的目的和意义2
1.3 论文研究内容与结构安排2
2 系统方案论证与选择4
2.1 方案论证4
2.2 主控模块选择5
2.3 显示模块选择5
2.4 行列驱动电路的方案选择6
3 系统的硬件电路设计7
3.1 硬件电路的总体设计7
3.2 单片机主控模块的设计7
3.3点阵显示模块设计9
3.4 驱动模块的设计11
4 系统的软件设计14
4.1 点阵显示原理14
4.1.1 点阵的基本显示原理14
4.1.2 点阵的左移显示原理15
4.2 主程序设计16
5 系统调试与分析18
5.1 系统调试18
5.1.1 硬件测试18
5.1.2 软件测试19
5.2 结果分析19
6 总结与展望20
6.1 总结20
6.2 展望20
致谢21
参考文献20
附录1 实做图片21
附录2 硬件电路原理图23
附录3 程序清单24
附录4 元器件清单29
1 引言
1.1 课题的背景
随着显示器件与技术的进一步发展,屏幕显示系统在国民经济中得到了广泛的应用,LED显示屏是信息显示的重要传媒之一。
LED显示屏是利用发光二极管点阵模块或像素单元组成的显示屏幕。
伴随着计算机技术的发展,使得LED 数码管能够在减少驱动器的情况下能够直接被驱动。
而且它具有可靠性高、使用寿命长、性能价格比高、使用成本低、环境适应能力强等特点,所以一直在平板显示领域扮演着重要的角色,并且在今后相当长的一段时期内还有相当大的发展空间[3]。
所以被广泛应用于金融市场、医院、体育场馆、机场、码头、车站、高速公路等公共场所的信息显示和广告宣传。
近几年来我国LED显示的相关技术也取得了较快和较大的发展,早期时曾因LED材料器件的限制,LED显示屏的应用领域没有广泛展开,另一方面,显示屏控制技术基本上是通信控制方式,客观上影响了显示效果。
所以导致早期的LED显示屏在国内很少,产品以红、绿双基色为主,控制方式为通信控制,灰度等级为单点四级调灰,产品的成本比较高。
后来LED显示屏迅速发展,进入九十年代,全球信息产业高速增长,信息技术各个领域不断突破,LED显示屏在LED材料和控制技术方面也不断出现新的成果。
蓝色LED镜片研制成功,全彩色LED显示屏进入市场;电子计算机及微电子领域的技术发展,在显示屏控制技术领域出现了视频控制技术,显示屏的动态显示效果大大提高。
这个阶段,
LED显示屏在我国发展迅速,LED显示屏产业成为新兴的高科技产业。
今天,LED显示屏应用领域更为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展[2]。
1.2 研究的目的和意义
该设计课题使设计者能够掌握LED显示屏的基本显示原理和设计方法,对LED显示屏这个行业有了较为深刻的了解和认识。
并且对大学期间所学习的一些理论进行了实践,使对所学过的理论知识有了新的认识。
并且通过该设计课题掌握了51单片机软硬件开发工具的使用方法,为以后从事相关行业的工作积累了实际工作经验。
目前我国的信息行业发展迅速,作为主要平面显示媒介的LED 显示屏的作用也越练越广泛,相关的从业人员也会越来越紧缺。
但同时应该清楚的认识到我国的LED技术虽然发展迅速但和世界先进水平还有一定的差距。
因此,此课题不论是对自己的就业还是对我国LED显示技术的发展都有非常现实与积极的意义[1]。
1.3 论文研究内容与结构安排
本文首先介绍本设计的相关概念以及目前发展的状况,然后是设计的方案选择与论证,接下来,具体介绍了硬件电路组成模块与简单介绍系统软件的设计。
最后介绍了系统的调试以及设计可扩展性。
本文研究的内容如下:
单片机控制模块:采用A T89S51或其他系列单片机作为控制核心,其它相关的外围电路构成本系统的模块。
时钟信号电路:采用普通晶体时钟源,其中晶体用12MHZ的石英晶振。
复位电路:采用按键与上电复位。
显示模块:显示稳定的图文等信息。
驱动模块:采用74HC154作为点阵LED显示屏的列扫描信号,采用三极管对点阵行列进行驱动。
根据上述的研究内容,论文的结构安排如下:
第二章主要阐述系统方案的选择与论证,根据系统要实现的主要功能,把整个系统分为电源模块、时钟信号电路、复位电路、驱动模块、单片机控制模块、显示模块等,并分别对各模块方案进行了选择与论证。
第三章主要阐述系统硬件电路设计与实现,主要介绍了个硬件电路的设计,并对各单元电路进行说明,主要是对各单元电路的主要元件的结构概念、引脚功能以及特点进行说明。
第四章简单阐述的是系统软件设计。
第五章阐述的是系统调试及结果分析,主要是对硬件和软件进行测试并把遇到的问题和解决方法进行说明,并对设计过程中的主要注意事项进行说明。
第六章阐述的是总结和展望,主要阐述在设计过程中体会和对这个设计一些展望。
2 系统方案论证与选择
2.1 方案论证
从理论上说,不论显示图形还是文字,只要控制这些组成图形或文字的各个
点所在位置相对应的LED器件发光,就可以得到本设计所要求的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很大,因为仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很大的数字。
因此采用另一种称为动态扫描的显示方法。
采用动态扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多,但串行数据传输时,传送一个数据的时间比较长,在显示时可能会出现画面闪烁现象,虽然可以采用行输出锁存器来解决这一问题,但是这样会使系统的整体成本增加,由于本设计设计的是一个16×16的点阵显示屏,可以利用单片机的P0口和P2口进行行数据的并行输出,通过软件上的改动分时对P0口和P2口传输数据,然后再对本列的16行数据进行扫描,然后用三极管进行驱动,只要稍微的设置一下扫描时间就会满足想要显示的结果,所以本设计采用并行数据传输方式进行传输数据。
课题拟以A T89S51单片机为控制核心设计一个简单的数字时钟控制系统,通过硬件电路的设计和焊接和软件上的配合,用单片机、点阵显示屏、加上适当的电路设计,就可以设计一个16×16点阵LED电子显示屏。
系统可以分为电源模块、时钟信号电路、复位电路、驱动模块、单片机控制模块、显示模块等,其中时钟电路是比较重要的一个模块,通过单片机发出的指令进行控制和各个模块的紧密配合,就可以硬件电路在软件的控制下协调的进行工作。
根据上面所列出的各个电路模块和单元电路,可以概括画出其系统结构框图,其系统的方框图如图2-1所示。
图2-1系统结构框图
2.2 主控模块选择
方案一:用可编程控制器PLC做主控芯片,PLC具有强大的逻辑运算和控制能力,速度快,但价格高,增加了整个系统的成本且布线麻烦
方案二:采用AT89S51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,可多次擦写,读写速度快,而且与MCS-51系列单片机完全兼容。
故本设计采用第二种方案。
2.3 显示模块选择
方案一:采用16×16点阵LED显示屏,16×16点阵屏的功能与4块8×8点阵屏构成16×16点阵屏功能相同,更为美观小巧美观,且单块16×16点阵屏和4块8×8点阵屏价格相等。
但它不宜购买,并且自己已有4个8×8的点阵,所以本设计不采用此方案。
方案二:采用4块8×8点阵LED显示屏相连接构成一块16×16点阵LED 显示屏,虽然四块点阵连接比较麻烦,但是它可以自己对实际电路的连接和应用能力,且能完全弄懂点阵显示屏的显示原理,对编写程序有很大的帮助,所以本设计采用此方案。
2.4 行列驱动电路的方案选择
行驱动电路主要是要实现数据扫描功能,下面有2种方案供其选择:
方案一:采用静态锁存方式,将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。
这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。
方案二:采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共阳),LED发光管的另一脚接通用I/O口,控制其亮灭。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
故采用本设计方案[4]。
列驱动电路主要是要实现译码功能,下面有2种方案供其选择:
方案一:采用2块74LS138级联来实现4/16线译码功能,74LS138芯片本身具有3/8线译码功能,但是增加芯片的使用数目,增加连线及所占面积。
所以不采用本方案。
方案二:采用74HC154,74HC154芯片本身具有4/16线译码功能,其功能与2块74LS138级联实现4/16译码一样,但是相比74LS138少用一片芯片。
所以采用本方案。
3 系统的硬件电路设计
3.1 硬件电路的总体设计
本电路是由A T89S51单片机为控制核心,低功耗;时钟源电路有很多种,比如阻容低速时钟源、普通晶体时钟源、带缓冲放大的晶体时钟源等等,考虑到电路稳定及材料选购等方面,决定采用普通晶体时钟源,其中晶体用12MHZ的石英晶振;复位电路结合实际应用功能的实现,采用按键与上电复位;显示部分由16×16点阵LED显示屏显示;行驱动电路采用P0和P2口外接9013三极管进行驱动,列驱动电路采用74HC154 4线-16线译码器外接8550三极管进行驱动。
3.2 单片机主控模块的设计
1、AT89S51单片机介绍
AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的可反复擦写的只读程序存储器和128的随机存取数据存储器,器件采用AEMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,功能强大,可灵活应用于各种控制领域。
图3-1为A T89C51外部封装[4]。
图3-1 A T89S51封装
AT89S51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1
口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1"时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址"1"时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。
当P3口写入"1"后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故[9]。
AT89S51振荡器特性为:XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度[5]。
此外,A T89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,停止芯片其它功能直至硬件复位,直到下一个硬件复位为止。
2、单片机复位原理
单片机刚上电时需要复位一次才能可靠工作,通过电容接VCC,是利用电容充电来提供2个周期的高电平时间让单片机复位,如此单片机可以正常工作。
这之后又不要求单片机复位,所以通过10K左右的电阻下拉接地保证RESET脚维持在低电平状态(即不复位状态)[12]。
3、时钟电路
单片机的18引脚和19引脚接时钟电路,X1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,X2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出[12]。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
31引脚接电源端,如图3-2所示。
图3-2 单片机时钟电路
3.3点阵显示模块设计
1、LED点阵屏介绍
组合型LED点阵显示器自八十年代开始出现,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。
具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。
LED点阵有4×4、4×8、5×7、5×8、8×8等多种。
点阵显示屏有单色和双色两类,可显示红,黄,绿,橙等,本次设计选用单色点阵显示屏[11]。
2、点阵显示屏的组成及显示方式
8×8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的叉点上。
本设计是一种实用的汉字显示屏的制作,制作的是双色点阵。
考
虑到元器件的易购性,没有使用8×8的点阵发光二极管模块,而是直接使用了256个高亮度发光管,组成了16行16列的发光点阵。
实际使用时可以根据这个原理自行扩充显示的字数[10]。
对比下面的8×8单色点阵和8×8双色点阵可以看出,其实8×8双色点阵就是两块8×8单色点阵组合在一起的。
要实现用两种颜色显示,只要在电路的设计中适当的连线就可以了,8×8点阵外观及引脚如图3-3所示。
8×8单色和双色点阵LED结构分别如下图3-4和3-5所示。
图3-3 8×8点阵外观及引脚图
图3-4 8×8单色点阵内部图图3-5 8×8双色点阵内部图
汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等地方都有广泛的应用。
下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。
为了降低成本,使用了四块8×8的LED点阵发光管的模块,组成了一个16×16的LED点阵显示屏,如图3-6所示。
在这里仅做了四个汉字的显示,在实际的使用中可以根据这个原理自行的扩展显示的汉字,下面是介绍汉字显示的原理。
图3-6 四块8×8的LED点阵组成16×16的LED点阵
LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),现对第一列进行扫描,然后经过P0口送出对应第1行16个数据的的前八位,然后再经过P2口送出数据的后八位,然后延时1MS后,然后熄灭;再选通第2列送入数据,延时,然后熄灭……第16列之后,又重新燃亮第1列,反复轮回。
当这样轮回的速度足够(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。
控制方式灵活,该方法针对本设计是非常方便的[6]。
3.4 驱动模块的设计
1、列驱动模块
集成电路74HC154是一种4线-16线译码器,这种4线-16线译码器非常适合用于高性能存储器的译码器。
当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。
实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。
当任何一个选通输入是高时,所有输出都为高。
图3-7为译码器74HC154外形及引脚排列。
图3-7 74HC154的引脚排列
三极管8550是一种常用的普通三极管,是一种低电压,大电流,小信号的PNP型硅三极管,其电流放大倍数为50-300。
图3-8为三极管封装。
1 发射极
2 基极
3 集电极
图3-8 三极管8550
点阵显示屏的列驱动电路就是由集成电路74HC154和PNP型8550三极管构成的,把单片机的P1口的低四位分别接到译码器芯片的A,B,C,D四个译码输入端,选通输入G1 和G2接地,译码后的输出经过16个8550三极管接至16列点阵显示屏的公共阴极,然后接上电源就可以在单片机程序的控制下实现列扫描的功能了。
2、行驱动电路
点阵显示屏的行驱动电路的驱动器件采用16个NPN型9013三极管,数据的显示方式采用的是P0口和P2口轮流送入数据显示,使单片机的16个I/O接口分别通过4.7K的电阻与16个三极管的基极连接,集电极接5V电源,发射极接地,由于P0口在作为普通的I/O口使用时,它的外部必须接上拉电阻来提高P0口带负载的能力。
1 发射极
2 基极
3 集电极
图3-9 三极管9013
通过上面对74HC154译码器及NPN型三极管9013和PNP型8550的介绍,了解了各个元器件的功能和作用,根据电路的工作原理可以利用这些元器件组成点阵显示屏的驱动电路。
主要由译码器芯片、电阻和三极管构成,它的连接方式是:从单片机的P0和P2输出数据经过4.7K的电阻接到9013的基极上,9013的发射极接点阵显示屏的16个共阳极端。
列扫描的信号是由P1口的低四位产生,接到译码器的A、B、C、D选通信号输入端,译码器的16个输出端经过16个4.7K的电阻接到8550的基极,8550的发射极接点阵显示屏的16个共阴极端再通过集电极接地。
通过译码器和三极管的配合就可以组成点阵驱动电路并实现扫描显示功能[13]。
4 系统的软件设计
4.1 点阵显示原理
4.1.1 点阵的基本显示原理
本设计以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
如采用8位的A T89S51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分,如图4-1所示。
图4-1 汉字显示原理
通过列扫描方法获取汉字的代码。
汉字可拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。
本例通过列扫描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口,方向为P00到P07,显示汉字"大"时,P05点亮,由上往下排列,为:P0.0灭,P0.1灭,P0.2灭P0.3灭,P0.4灭,P0.5亮,P0.6灭,P0.7灭。
即二进制00000100,转换为十六进制为04h。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,本设计仍设计成由上往下扫描,即从P27向P20方向扫描,从图4-1可以看到,这一列全部为不亮,即为00000000,十六进制则为00h。
依照这个方法转向第二列、第三列,……直至第十六列的扫描,一共扫描32个8位,可以得出汉字"大"的扫描代码为:04H,00H,04H,02H,04H,02H,04H,04H
04H,08H,04H,30H,05H,0C0H,0FEH,00H
05H,80H,04H,60H,04H,10H,04H,08H
04H,04H,0CH,06H,04H,04H,00H,00H
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析
出其扫描代码从而显示在屏幕上[7]。
4.1.2 点阵的左移显示原理
在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示,要想实现汉字的移动显示,最关键的就是它先能静止的显示一个汉字或图形,可以把点阵屏看成16行LED组成,且每行有16个LED灯,把每一个灯看成一个汉字的一个像素点,这样在一行中有16个像素点,也就是有16个状态的变化,可以用16进制数来表示这些数据,由于点阵有16行16列,所以能提取出16行或16列的16进制的点阵数据,采用列提取的方式运用字模提取软件提取出16列的数据。
显示时,首先让列扫描电路扫描第一列,然后经过P0口和P2口送入行数据,延时后一段时间后,在扫描下一行,这样经过16次循环之后就会在16×16的点阵显示屏上显示一个静止的字或一幅静止的画面,让这个画面显示一段时间后(时间约为1ms)接着把需要显示的汉字偏移一位重新送出,比如要向左移动,原本显示在第一行的数据丢弃了,把第二列的数据送到第一列显示,依次显示一屏,经过16次循环后,显示一段时间后,再将需要显示的汉字编码左移一位重新送出显示一屏,就这样经过16屏的循环显示后就会在点阵显示屏上显示一个汉字移动的效果,通过这样的显示方式就可以轻松的实现汉字的左移、右移的显示效果[8]。
4.2 主程序设计
显示驱动程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
把显示屏的软件系统分成两大层:第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号,配合完成LED显示屏的扫描显示工作[ 9]。
系统设置(初始化)、显示数据的查找与输出、显示效果处理等工作,由主程序来实现。
程序采用汇编语言编写。
系统主程序开始以后首先是对系统环境初始化,包括P0口、P2口,寄存器R5、R6、R7的赋值,扫描指针寄存器R4的赋值和扫描进度和初始值的存储单元的设置等,然后以"左移输出"效果显示一个"郑",接着向左移动显示"郑州科技学院"约24个汉字和两个标点符号,最终将26个汉字以左移的方式全部显示在点阵显示屏上,由于单片机没有停机指令,但所有需要显示的汉字全部显示完毕后,可以设置系统程序不断地循环执行上述显示效果。
通过程序不断地被执行,由显示到循环,再循环显示,这样不断地执行下去,这样就会一直将需要显示的汉字一直显示下去[14]。
下面对主程序中的查询指令进行分析。
CLR A ;A清零
MOVC A,@A+DPTR ;查表送A
MOV P0,A ;送P0口显示
INC DPTR ;取码指针加1
CLR A ;A清零
MOVC A,@A+DPTR ;查表送A
MOV P2,A ;送P2口显示
INC DPTR ;取码指针加1
上面这个子程序共有八条指令,就可以实现点阵显示数据的查找及输出,单。