佳恒武汉LED显示屏该文就LED显示屏的图片显示实验进行了探讨。分析了佳恒武汉LED显示屏的显示原理,以及各个驱动信号之间的时序关系。在显示图片时,先利用字模提取软件提取图片的显示数据,再根据逐行扫描的动态显示原理,将显示数据按照一定的先后顺序送到LED显示屏显示。通过实验可使学生掌握LED显示屏的工作原理,提高驱动程序设计能力。同时将理 论知识的学习和实践环节有机结合,取得了良好的教学效果。
LED是发光二极管( light emitting diode) 的英文缩写。多个发光二极管按照行列排布,可以形成大 尺寸的显示屏幕,由于其亮度较高,因此广泛用于户外显示,用来显示文字、图形、动画和视频等各 种信息。
为了便于学生掌握LED显示屏的驱动电路设计方法、显示原理和显示驱动程序的设计方法,我们研制了LED显示实验箱。该实验箱以LPC1768 微控制器为主控芯片,设计了64( 列) × 48( 行) 的LED显示屏。行驱动电路在设计时一般可以采用两种方法完成设计,一种是利用多个译码器完成每一行的选中,比如48行就可以利用3个四线16线译码器完成设计,但是这个方法所用芯片数量较多,成本较多,程序编写也相对比较麻烦。因此我 们采用了第二种设计方法: 利用多个移位寄存器的级联构成行驱动电路和列驱动电路。具体的行驱动和列驱动电路如图1和图2所示。
1、LED显示屏时序分析
LED显示屏采用动态扫描方法完成显示。显示数据由微控制器提供,通过数据线送去列驱动电路,显示数据在时钟的作用下依次移位,当完成一行的信息显示时,将该行数据锁存,同时进行显示,这样可以避免显示中的“鬼影列”现象。 在显示当前行的时候,开始进行下一行数据的准 备,这样可以提高显示的效率。下一行数据准备好后,行驱动电路选中新的一行进行显示。这样逐行完成整屏显示数据的显示。一屏的显示时间只要小于20ms,或者说扫描频率只要大于50Hz,则利 用人眼的视觉暂留,就会感觉整屏显示内容是同时显示,没有闪烁的效应。LED 显示屏中几个主要的控制信号为列移位时钟( CP) 、行信号( H) 和场信号( V) ,它们之间的时序关系如图3所示。
在设计LED显示实验箱时,为了保证今后实验平台的升级换代,我们使用了NXP 公司生产的主要面向嵌入式系统的微控制器LPC1768。该芯片是LPC1700系列芯片中资源最丰富的一款,内部 集成了512KB的闪存和64 KB的数据存储器,并且具备定时器、串口、网络通信、USB接口和CAN总线接口等多种外设; 且I/O口的切换频率 可达50MHz,完全满足设计需求[4]; 512 KB的程序空间也可以存放大量的显示图片,而不需要外扩 存储器。
2、图片显示数据的获取
在进行字符和图片显示时,要把这些字符和图片进行分解,分解成一个个的点阵。这需要通过字模软件来完成。利用字模软件来生成字模,显示时要用微控制器做一个送数顺序的颠倒。由于取模软 件采用的是正常的显示方式获取显示数据,而LED显示屏的列驱动信号采用移位寄存器来完成, 因此最先送出的数据会出现在屏幕的最右方,最后送出的数据出现在屏幕的最左方,在送数时需要做 一个顺序的变换。一般的LED显示屏基本采用 水平方式扫描,因此取模方式一般是横向取模。
如图4所示,该图片大小为64(列) × 48(行) 。 如果只是横向取模,字节正序,则取模时8个点为 一个字节。1) 在这8点数据中最左边的一点作为该字节的高位,最右边的一点作为该字节的低位。该图片生成的显示数据为: 0xAA,0x00,0x00,如果利用上述数据格式来显示时,必须要求送每一行的数据时要进行颠倒,先送0x11,最后送0xAA,并且每一个字节的送数程序中,必须是低 位在前先送出。
2) 以最左边的一点作为字节低位,最右边的 一点作为字节高位,取模数据为: 0x55,0x00, 0x00,0x00,0x00,0x00,0x00,0x88。
如果利用上述数据格式来显示,只需要在送每 一行的数据时进行颠倒,先送0x88,最后送0x55, 而每一个字节的送数程序,必须是高位在前先送出。
3、显示驱动程序设计
在LED显示屏显示时,由于采用了移位寄存 器,如果直接采用横向取模的话,每行生成的显示数据为8 个字节( 由LED显示屏的实际大小决定) ,该行最左面为第一个字节,最右面的为第八 个字节。因此在送显示数据时,最右面显示的数据 应该最先送,最左面显示的数据应该最后送。
编程时,在每一行送数据时要颠倒一下顺序, 先送第八字节,再送第七个字节,最后送第一个字节。同时对于单个字节显示时,如果没有设置参数为“字节倒序”,则在送每个字节数据时,也要先 送数据字节的最低位,最后送最高位。如果设置参 数为“字节倒序”,则送数时就可以先送数据字节 的最高位,最后送最低位。
我们利用取模软件获取图片的显示数据后,生成一个一维的数组,将该数组复制到源程序中,并以static的关键字定义,这样编译器就会把显示数据放到Flash存储器。
具体步骤如下:
1) 初始化GPIO引脚的方向和初始电平;
2) 取显示数据第一行进行显示,送每一位数据时同步送出移位时钟;
3) 送出一行数据后,送出行选通信号,点亮该行的LED进行显示,并保持1ms左右的时间;
4) 在进行该行显示的同时,开始送下一行数据到列移位寄存器的数据缓冲区( 6B595是双缓冲结构的移位寄存器,在显示的同时可以送入新的显示数据) ;
5) 持续该过程,直到48行数据全部送出;
6) 送出48行显示数据后,表明显示完一次图片的显示数据,即完成了一场的显示,送出场信号。
实际设置中,显示程序往往会设置为一个子函数,该函数只完成一次显示数据的显示,由主程序通过定时中断来调用,定时时间间隔为20ms,确保LED显示屏的扫描频率为50Hz。程序流程图如图5所示。
实际的图片显示效果如图6所示。
4、结束语
LED显示屏的图片显示实验包含了LED显示屏显示原理,LED显示屏驱动电路的设计、LED显示时序的分析、驱动程序的编写以及字模软件的使用等知识点。实验项目具有一定的创新性和综合性,可以使学生更好地理解LED显示屏的工作原理和驱动程序的编写。