74HC595秒懂

  Arduino学习过程中很多童鞋都对74HC595表示晦涩难懂,今天我就来整理一下基本功能,让童鞋们呢能快速上手!

  74HC595是一个8位串行输入、并行输出的位移缓存器。
  其本质就是 行输 (一个端口 输入)、 行输 (8个端口 输出)。
74HC595秒懂_第1张图片        
                               引脚图
   74HC595秒懂_第2张图片

74HC595共有16个引脚,按照逆时针顺序排列。(74HC595有凹陷处,可以很快区分引脚。)

先来一张引脚功能图(百度到的),让大家先了解一下引脚的功能,然后用自己的理解来解释。74HC595秒懂_第3张图片

自我理解:

 

  • VCC(16引脚)接Arduino5V,GND(8引脚)接ArduinoGND,没什么可说的。
  • Q0-Q7 是8位并行输出引脚。
  • DS(Data Serial) 是串行数据输入引脚,595数据来源口,一次只能输入一个位,连续输入8次,就积攒为一个字节。(通过此引脚输入数据有专用的函数shiftOut)
  • SH_CP(Shift register ClockPin)移位寄存器时钟引脚  控制移位动作 高电平触发,做一次移位

    一次移位过程过程:SH_CP LOW;

                                   DS x(0/1);

                                   SH_CP HIGH;                                                                                                                       

  • 当DS有数据输入,且Sh_CP为高电平,则触发一次移位过程。 

  •  ST_CP 并行输出控制开关   高电平触发。

  • OE 输出有效(低电平触发)--默认接GND,若接到5V上,Q0-Q7输出都是0。

  • MR 复位开关-低电平有效(默认接到GND)  

  • Q7’串行输出引脚 (若输入位数比8多,则通过此引脚连接下一个74HC595,作为下一个的DS(极连),两个595的SH_CP 和ST_CP 连接,连接方式如下图,程序中两个shiftOut就可以了。)                                                                      74HC595秒懂_第4张图片                                    

  summary      
 因为串行转并行        需要DS和Q0-Q7
因为移位(串入)      需要SH_CP

     因为并行输出             需要ST_CP         

假如我们要输出11011101=221,此时就需要用一个函数shiftOut(DS,Sh_CP,MSBFIRST,221)

int latchPin=5;
int clockPin=4;
int dataPin=2;//这里定义了那三个脚
void setup()
{
  pinMode(latchPin,OUTPUT);
  pinMode(clockPin,OUTPUT);
  pinMode(dataPin,OUTPUT); //让三个脚都是输出状态
}
void loop()
{
   for(int a=0;a<=256;a++)//这个循环的意思是让a这个变量+1一直加到到256,每次循环都进行下面的活动
  {
       digitalWrite(latchPin,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
       shiftOut(dataPin,clockPin,MSBFIRST,a);
       /*这个就是用MSBFIRST参数让0-7个针脚以高电平输出(LSBFIRST 低电平)是dataPin的参数,
       clockPin的参数是变量a*/
       digitalWrite(latchPin,HIGH); //将ST_CP这个针脚恢复到高电平
       delay(500); //暂停1秒钟让你看到效果
}
}

 

最后,向大家推荐一个讲解74HC595视频,对大家绝对有用哦!!!

点击打开链接




 
 

你可能感兴趣的:(Arduino,Arduino,74Hc595)