米乐m6官网
您现在的位置:首页 > 产品展示 > LED驱动

74HC595驱动88点阵LED的原理剖析

发布时间:2023-12-21 00:12:36 来源:米乐m6官网

  灯的亮灭,比方我想让左上角榜首个LED灯亮起,其它灯全灭,那么需求让h1输出高电平,L1输出低电平就能够了。留意要将L2-L8保持在高电平,不然榜首行的其它灯也会亮。

  上面这种操控方法尽管简略,可是占用单片机的IO口线过多,所以,咱们咱们常常会运用74HC595这样的串并转化

  作为驱动芯片,一个595具有8个驱动输出端(QA-QH),那么咱们这儿需求2个595就够用了。经过榜首片595的SQH管脚进行级联,将数据送至第二片595的数据输入端,这样单片机只需求3根线的输出操控。

  关于编写595的驱动程序来说,看时序图是最直接了当的方法,手册上会说的比较多,简化来说,便是DATA_IN管脚用来输入数据(实践上便是凹凸电平),然后SHIFT-CLK管脚供给

  ,每逢SHIFT-CLK的上升沿到来,595会读入DATA_IN管脚的电平状况,并存储在内部的锁存器中,当8个上升沿读取完毕后,榜首片595的8个数据已悉数读完,可是咱们这儿是级联的接法,所以还要继续读8个上升沿,然后数据从SQH管脚传给第二片595的DATA_IN管脚,到这时,16个上升沿的数据都读进595内部并存储起来了,留意此刻还没有放到QA-QH这16个输出口线上,接下来需求LATCH-CLK给出一个下降沿,才将16个管脚的电平状况进行实践输出。看下时许图,就能够一望而知:

  //先做宏界说,意图是给单片机的管脚起个别号,便于咱们也能够见名知义。共用到3个IO口。

  //这儿是进行点阵的行挑选,为什么是FE,11111110,最低位为0,意图是要选中榜首行的8个LED,

  //每次都将最高位取出来,1000000 & 8位二进制,只要最高位有用

  //假如最高位为高电平,则把DATA-IN输出高电平,这时候咱们就把数据放上去了。

  //数据向左移一位,本来的次高位变为最高位,本来的最低为补0,直到8个位悉数读完。

  //将SHIFT-CLK管脚电平由0变为1,上升沿发生,这时595会读入DATA-IN的电平状况并保存

  //这儿的逻辑是正的,1就代表亮,0代表灭。最左面的灯处于最高位方位。

  //8次循环完毕,那么就即将这一行要显现的数据(要点亮的LED灯)也存到595内部了。

  //将LATCH-CLK拉成低电平,这时下降沿发生,595会把存储的数据实在给到输出口上,对应的LED会亮起。

  、程序编写(动态扫描)****//可是现在有个问题是,咱们方才的代码只能一同操控一行的LED亮灭,假如想一同操控8行来显现图画的话,就要用动态扫描的方法,从第1行到第8行快速切换,然后放入数据,构成视觉暂留的作用,让人眼误以为是一同在显现。

  //也便是说,咱们应该一个守时中止,每次中止过来我都要更新一行的数据。那么咱们要把上面的程序放到中止服务函数里边。

  时遇到的问题,下面是仿真图和程序图,感觉电路和程序都对啊,为什么protuse里的

  个引脚是引出来,所以88运用的是这个原理图里边的1-6个引脚)(注:清翔的

  的几篇使用,照本宣科实在的操作一下,哪知底子不可行,教程都是过错的。所以自己潜心研究

  电路图 /

  电路 /

  显现技能 /

  根据机器视觉的电机检测软件#跟着UP主一同创造吧 #硬声新人方案 #造物大赏

  #跟着UP主一同创造吧 #造物大赏 克己1050W射频功率源的简略介绍