资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,任务九 点阵显示应用,一、任务背景知识,1.点阵屏的内部结构及扫描原理,LED点阵屏的内部结构可以分为共阴型和共阳型两种类型,本任务系统设计采用的是共阳型的LED点阵屏。其硬件电路如图8.1所示,我们只选取了一个8*8的LED矩阵做模型,当行上有一正选通信号时,列选端四位数据为0的发光二极管便导通点亮。根据这个原理,当我们需要某图形或文字时,只需要将要显示的文字或图形的编码作为列信号跟对应的行信号进行逐次扫描,就可以逐行点亮点阵。当扫描速度大于24Hz,由于扫描时间很快,人眼的视觉有暂留效应,就可以看到显示的是完整的图形或文字,这样就到达了显示的效果。,图9-1 8*8共阳极LED点阵,例如,假设要图中所示64个LED显示一个“0字的方框,那么首先在列18上写入列编码的信号,接着应将对应的行上加选通信号,即在行、列的信号端分别加上如图8.2所示数据,这样,假设显示数字为“0时:,1 2 3 4 5 6 7 8,00 00 3E 41 41 41 3E 00,图9-2 在点阵上所加的行信号以及列选择信号,因此,形成的列代码为00H,00H,3EH,41H,41H,41H,3EH,00H;只要把这些代码分别送到相应的列线上面,即可实现“0的数字显示。,送显示代码过程如下所示:,送第一列线代码到P3端口,同时置第一行线为“0,其它行线为“1,延时2ms左右;,送第二列线代码到P3端口,同时置第二行线为“0,其它行线为“1,延时2ms左右;,如此下去,直到送完最后一列代码,又从头开始送。如此循环下去,当刷新频率足够高时大于24Hz,由于人眼的视觉暂留特性,便可得到一个稳定的“0字。这就简单的描叙了一下的点亮LED的扫描原理。,2.字库知识,在PC机的文本文件中,汉字是以机内码的形式存储的,每个汉字占用两个字节长度,计算机就是根据机内码的值把对应的汉字从字库中提取出来。而每个汉字在字库中是以点阵字模形式存储的,如一般采用16x16 点阵形式,每个点用一个二进制位表示,存1 的点当显示时可以在屏上显示一个亮点,存0 的点那么在屏上不显示,这样就把存某字的16x 16 点阵信息直接用来在显示器上按上述原那么显示那么将出现对应的汉字,如一个“亚字的16x 16,点阵字模如以下图8.3所示,当用存储单元存储该字模信息时将需32 个字节地址,在图的右边写出了该字模对应的字节值。其规那么是:把字分成左右两局部,第一行的左半部八位数据占用一个字节存储,右半局部八位数据占用一个字节存储,依次类推,16行共使用了16*232个字节。,图 9-3 亚字点阵字模(a),图9-4 亚字点阵字模(b),依据此原理,把需要用到的汉字的字模以表格的形式存储到单片机当中,每一行以适当的速度分两次送数据左半局部和右半局部,等16行全部送完后,就可显示出一帧汉字。,3.显示屏知识,同一切能够显示图像的设备一样LED显示屏也需要一定的数据刷新率,如电视机的速率是50帧/秒,计算机显示器是85帧/秒。实训证明,只有不低于50帧/秒,人眼是感觉不到闪烁的。所以,由人的视觉暂留效应设计要求是每秒最低扫描LED屏50次。,另外,LED具有一定的响应时间和余辉效应,如果给它的电平持续时间很短,例如1us将不能充分点亮,一般要求电平持续时间是1ms。当LED点亮后撤掉电平,它不会立即熄灭。这样从左到右扫描完一帧,看起来就是同时亮的。,4.YL-236实验台点阵显示,(1)点阵驱动电路分析,YL-236实验台32列16行的点阵显示屏,由8个88共阴点阵器件构成。显示屏实物如图8-4所示,电路原理如图8-5所示。,图9-5 3216点阵显示模块实物图,图9-6 3216点阵显示模块电路图,U1、U2分别锁存上半屏和下半屏数据,并由ULN2803反相缓冲驱动,U3U6锁存列数据并直接驱动LED显示。使用该显示屏编程时,注意以下几点:,向点阵发送数据时,首先将数据送总线DOD7,然后给相关集成块发送所锁存信号。当74HC573的LE(ROW0,ROW1,COL0,COL1,COL2,COL3)脚为高电平时,D端数据被传递到其输出端Q。当LE为低电平时,Q端数据被保持,不受D端影响。,要点亮点阵LED,发送的行列数据都是高电平有效。,行线数据是低位在上,列线数据是低位在前。,例如,要点亮第1行第3列交叉处的LED。送Ox01到数据线,用ROWO锁存数据先,置1再清0,R1线变为低电平,再送0 x04到数据线,用col0锁存数据,那么C3线变为高,电平,R1C3交叉处的LED即亮。,(2)显示屏电路实现的结构框图9-7所示。,二、任务分析,1工程任务,用8块88点阵显示模块完成依次显示数字07。,2分析,(1)可以利用前面扫描一个88点阵的程序。写8个显示函数,分别对应一块88点阵,分别独立进行扫描。调用时,不同的显示函数传不同参数,就能显示各自的内容。这种方法全部显示一遍,共需扫描64次。,(2)可以把8块88点阵作为一个整体扫描。这时,水平扫描一遍需32次,纵向扫描一遍需要16次。显然采用纵向扫描效率更高。纵向扫描时,每一行需送4字节数据,每个数据对应1块88点阵。要显示多种字符,同样需要采用二维数组。,(3)由于8块88点阵分别进行扫描,效率不高,且不能兼顾亮度及闪屏问题。因此本程序用整体扫描程序方法。,(4)任务所需模块:MCU01 主机模块、MCU02 电源模块、MCU04 显示模块。,三、任务实施,1.根据任务的具体分析,其接线图如图9-8。,点阵,显示模块,+5V,GND,row0 row1 col0-col3 D0-D7,电源,模块,+5V,GND,P1.0 P1.1 P1.2-P1.5 P0-P7 主机模块,+5V,GND,2.程序代码,#include reg51.h,#include intrins.h,#define uchar unsigned char,#defineuint unsigned int,sbit row0=P10;sbit row1=P11;sbit col0=P12;,sbit col1=P13;sbit col2=P14;sbit col3=P15;,void delay(uint i)while(-i);,/字模数组,一个8*8字符占1行,/字模数组,一个8*8字符占1行,uchar code zm8=,0 x1C,0 x22,0 x32,0 x2A,0 x26,0 x22,0 x1C,0 x00,/-0-,0 x08,0 x0C,0 x08,0 x08,0 x08,0 x08,0 x1C,0 x00,/-1-,0 x1C,0 x22,0 x20,0 x18,0 x04,0 x02,0 x3E,0 x00,/-2-,0 x3E,0 x20,0 x10,0 x18,0 x20,0 x22,0 x1C,0 x00,/-3-,0 x10,0 x18,0 x14,0 x12,0 x3E,0 x10,0 x10,0 x00,/-4-,0 x3E,0 x02,0 x1E,0 x20,0 x20,0 x22,0 x1C,0 x00,/-5-,0 x38,0 x04,0 x02,0 x1E,0 x22,0 x22,0 x1C,0 x00,/-6-,0 x3E,0 x20,0 x10,0 x08,0 x04,0 x04,0 x04,0 x00,/-7-,0 x1C,0 x22,0 x22,0 x1C,0 x22,0 x22,0 x1C,0 x00,/-8-,0 x1C,0 x22,0 x22,0 x3C,0 x20,0 x10,0 x0E,0 x00,/-9-,;,uchar buf8;,void display(),uchar i,n;,uint row=0 x01;,for(i=0;i16;i+),n=i8?0:1;,P0=zmbuf0+4*ni-8*n;col0=1;col0=0;,P0=zmbuf1+4*ni-8*n;col1=1;col1=0;,P0=zmbuf2+4*ni-8*n;col2=1;col2=0;,P0=zmbuf3+4*ni-8*n;col3=1;col3=0;,P0=row%0 x100;row0=1;row0=0;,P0=row/0 x100;row1=1;row1=0;,delay(50);,row=_irol_(row,1);,P0=0;,row0=row1=col0=col1=col2=col3=1;,row0=row1=col0=col1=col2=col3=0;,void main(),buf0=0;buf1=1;buf2=2;buf3=3;,buf4=4;buf5=5;buf6=6;buf7=7;,while(1),display();,3.实验结果,经过程序的调试,编译,并下载到单片机,可以在设备上显示,也可用仿真软件仿真,得出仿真效果图8.8。,9-9 实验显示结果,四、任务自评,通过前面的讲解,相信你已经完成了该任务,那么该任务你是否完美的完成了?那就通过下面的表格来反映吧!,项目内容,完成要求,分值,完成情况,自评分值,点阵显示应用,流程设计正确,20,程序编写正确,30,实物连线正确,20,调试结果正确,30,五、知识衔接,1.取模软件,为了节省时间,且不会出错的话,采用取模软件,可以实现。如下图,“LcmZimo就是一个很好的字模提取工具。用“LcmZimo可以自动生成0 x200 x7f的ASCII字符字模,最后一个0 x7f为自定义符号。,设置取模方式,生成字模数据,2.反白显示,反白就是LED原来亮的变为不亮,原来不亮的变为亮的。实现反白很简单,只要在送数据到I/O口前进行位取反即可。为便于控制显示数据,在显示缓存中增加“附加信息。,3.反白扫屏,利用上面的程序可以实现反白扫屏效果。它是在正常显示和反白显示中交替扫描显示的一种模式,为了测试,在缓存数组中经常会先放入一些初始数据,以便验证显示效果。,9-10 LcmZimo 取模软件,4.拉幕特效,利用缓存附加信息的方法,在显示程序中加以利用,可以实现很多显示特效。把显示函数中的“位异或运算改为“位与或者“位或运算,然后控制“附加信息的变化,可以实现“进入,“退出、“拉幕等特效。,5.闪烁显示的技巧,闪烁显示,可以利用“空格的字模数据,显示内容在“正常与“空洛之间交替。,还可以利用上一节控制“附加信息的方法短暂“屏蔽显示内容。,六、作业,1.点阵上下滚屏显示;,2.点阵闪烁显示;,3.反白显示文字;,4.点阵拉幕显示效果。,
展开阅读全文