用户工具

站点工具


ocrobot:kit:arduino_star_kit:tutorial023

shiftOut()介绍

这个例程展示了怎样使用shiftOut()函数来使用一颗74HC595驱动8颗LED

74HC595是一种8位移位锁存器。锁存器就是把单片机的输出的数先存起来,可以让单片机继续做其它事。

搭建电路

代码

int latchPin = 8;
int clockPin = 12;
int dataPin = 11; //这里定义了那三个脚
 
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,前面我们说了这个变量会一次从1+1+到256,是个十进制数,
    输入到芯片后会产生8个二进制数,达到开关的作用*/
   digitalWrite(latchPin,HIGH); //将ST_CP这个针脚恢复到高电平
    delay(500); //暂停500ms让你看到效果
 }
}

shiftOut() 描述 将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 注意:如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, LOW)。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。

语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 value: 要移位输出的数据(byte)

返回上一级

ocrobot/kit/arduino_star_kit/tutorial023.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1