LED显示屏的控制 |
由于AVR单片机内部SRAM相对较大,为此在控制小形LED屏控制方面有很大的优势。 为了举这方面的例子我借了一块LED屏,它是由大型LED屏中拆下来的一个小单元,对其电路的测绘结果如下图: LED显示板电路结构 首先它是一个红绿双色LED屏,即每一个点由一个红色发光管和一个绿色发光管组成,两个发光管的阳极做到了一起引出了两个阴极,驱动是由 74HC595串实现的,其中红色为一串595,绿色为另一串595。他们的控制可以是独立的。每一列的阴极连接到对应的595引脚上,而阳极按行通过一个 大功率三极管控制。由于动太显示内容时任意一时刻只需要导通一行,为此这些三极管的控制从行选通信号3-8译码后得到。 引出来的9根信号线分别为: OE:74HC138片选信号 l0~L3: 行选择地址 0~15 DG:绿色LED控制595串的数据口 DR:红极LED控制595串的数据口 STB:595将缓冲内容写入到引脚的功能引脚 CLK:595时钟输入引脚 为了驱动这个LED屏,我做了一个MEGA8模块与它连接,连接线路图如下: ATMEGA8控制模块与显示板连接图 MEGA8模块实特照片如下,在黄色线路板上部分为M8最小系统,使用了内部RC振荡器。 MEGA8控制模块实物图 下面这张图是测试时候照的照片,这个照片上的屏是上述两个LED屏(即两MEGA8模块)加起来的结果,否则只有一半那么大。另外这个示例 发布的示例程序显示的不是这几个字,那时因为当时的程序在发布前已更改. 设计完成的显示屏 这种显示屏使用的是动太显示技术,将时间分成16个段,分别点亮每一行,当频率超出45Hz时人眼就看不出它是闪烁的了。 实现源程序点击这里下载。 用单片机在LED上显示汉字,通常需要点阵的字库,如果显示有限的汉字可以将这几个汉字的点阵存储到内部FLASH,否则需要一个 专门的存储器来存储字库。 那么如何做这些汉字的点阵呢?显然,从WINDOWS字体中提取是最方便的方法。然而WINDOWS使用的是矢量字体,而不是点阵, 点击这里下载我用VC++做的一个小程序,它将尝试利用WINDOWS矢量字体获取汉字的点阵字模,这里仅作为参考。 2009.06.11 |