16×16点阵LED电子显示屏的设计
4.2建立LED点阵
从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。16x16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。本显示屏采用列扫描、直接送
行显示码的方式工作,基本显示原理在后面的软件设计部分提及。分辨率为32X16的显示屏由8个共阳型LED点阵单元构成。共阳型LED点阵单元(8X8)的结构示意图如图1,由行输入高电平点亮。
图4.2.1 LED点阵单元结构示意图
4
16×16点阵LED电子显示屏的设计
图4.2.2 LED点阵单元焊接示意图
图4.2.2是1个LED点阵接线图。R1~R16是限流电阻,用来保护LED的安全;VT1~VT16是16只PNP型三极管,在这里起到开关的作用:通过控制B01~B16来使得在任何时刻只有唯一的列导通以点亮该列,当列切换的速度足够快时,由于人眼的视觉暂留现象,看上去整个屏都是亮的,这就是动态扫描的基本原理。
4.3 驱动电路
行驱动电路使用两片74HC573(图4.3.1),这是比较常用的驱动芯片,当DIR接高电平时,D端为输入、Q端为输出。
列扫描电路则利用了两片4-16线译码器74LS154(图4.3.2),U4、U5分别对应左、右屏。A、B、C、D为输入、Y0~Y15为输出、CS1为使能。
图4.3.3是AT89S52单片机最小系统电路。
图4.3.1 行驱动电路
5
16×16点阵LED电子显示屏的设计
图4.3.2 译码器扫描电路
图4.3.3 单片机电路
6
16×16点阵LED电子显示屏的设计
五、程序说明 5.1 系统程序流程图
5.2 程序原理说明
完成一个图形移动的方法,也可以看成是移动16个不同的字形。如图5.1所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型······依此类推,即可产生该文字的左移的感觉。
开始 初始化 加载ROM的数据到RAM 加载缓存数据 按键扫描 移动处理都中断完成 显示 图5.1 系统主程序流程图
图5.1字形法左右移动示意图
7
相关推荐: