当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 电子设计教程52:16*16LED点阵屏驱动-完整设计

电子设计教程52:16*16LED点阵屏驱动-完整设计

2020年07月29日  | 移动技术网IT编程  | 我要评论

  我尝试通过移位寄存器级联+三八译码器,实现用3跟控制线,驱动16*16LED点阵屏的效果。这是第四篇博客,讲述三电路的原理图。
通过前几篇文章的铺垫,本节课讲述完整的电路原理图设计。在电路设计中首先要关注LED的电流问题。由于LED屏利用了视觉暂留原理,每个灯亮的时间都比较短,为了让屏幕看起来更亮一些,LED应在安全范围内,功率尽可能大一些。电路使用的限流电阻为240R,74HC595芯片的工作电压为5V,设LED工作时的压降为2V(压降可以通过手册查到,不同LED略有不同),那么LED的电流就是3V/240R=12.5mA。查阅74HC595的数据手册,得知每个引脚都可以输出25mA的电流,满足要求。
在这里插入图片描述

由于我们采用逐列扫描,所以同一行的LED不会同时亮起,但是同一列的LED可能同时亮起,那么就必须关注同一列LED的功耗问题:假如同列的8个LED同时亮起,那么电流就达到了100mA。使用74HC238控制某一列,其引脚无法承受这么大的电流。我采用了NMOS,其工作原理与NPN三极管类似,当74HC238输出高电平时导通,相当于LED点阵的某一列接地。但是导通以后,相比于集电极与发射极,源极与栅极之间的电压更小。
在这里插入图片描述

分析来自于单片机的数据,可知LED点阵屏的行需要8+8=16位的数据,列由于采用了三八译码器的级联,所以只需要3个数据位+1个使能控制位,所以一个控制命令最少需要20位。通常单片机的数据发送位数是8的整数倍,故一个控制命令共有24个位。
电路采用3个74HC595级联,前2个各控制1行LED,后1个用于控制三八译码器。前一个三八译码器的低电平使能端接后一个三八译码器的高电平使能端,如此一来,通过一根控制线上的高低电平转换,就可以保持始终只有一个译码器工作,即16列中只有1列LED可以被点亮。
在这里插入图片描述

来自于单片机的控制命令与SPI类似,波形直接用示波器的SPI解码功能也能够识别出来。
在这里插入图片描述

以下是完整的电路图。在这里插入图片描述
需要PDF格式的可以自行下载
以下是效果演示

16*16LED点阵屏驱动效果演示

本文地址:https://blog.csdn.net/geek_monkey/article/details/107622595

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网