极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13009|回复: 4

OCROBOT入门教程023--shiftOut()介绍

[复制链接]
发表于 2014-4-25 16:20:00 | 显示全部楼层 |阅读模式
本帖最后由 董董soul 于 2016-10-27 11:15 编辑

这节课我们介绍一下怎样使用shiftOut()函数来使用一颗74HC595驱动8颗LED。

74HC595是一种8位移位锁存器。锁存器就是把单片机的输出的数先存起来,可以让单片机继续做其它事。他的用处很多,现在我们户外使用的单色LED屏幕就大量使用。

看一下硬件连接图



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

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

  1. int latchPin = 8;
  2. int clockPin = 12;
  3. int dataPin = 11; //这里定义了那三个脚
  4. void setup ()
  5. {
  6.   pinMode(latchPin,OUTPUT);
  7.   pinMode(clockPin,OUTPUT);
  8.   pinMode(dataPin,OUTPUT); //让三个脚都是输出状态
  9. }
  10. void loop()
  11. {
  12.   for(int a=0; a<256; a++)
  13.     /*这个循环的意思是让a这个变量+1一直加到到256,每次循环都进行下面的活动*/
  14.   {
  15.     digitalWrite(latchPin,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
  16.     shiftOut(dataPin,clockPin,MSBFIRST,a);
  17.     /*这个就是用MSBFIRST参数让0-7个针脚以高电平输出(LSBFIRST 低电平)是dataPin的参数,
  18.      clockPin的参数是变量a,前面我们说了这个变量会一次从1+1+到256,是个十进制数,
  19.      输入到芯片后会产生8个二进制数,达到开关的作用*/
  20.     digitalWrite(latchPin,HIGH); //将ST_CP这个针脚恢复到高电平
  21.     delay(500); //暂停500ms让你看到效果
  22.   }
  23. }
复制代码


看一下具体效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-12-5 20:07:08 | 显示全部楼层
按图上连led的负极两块之间都没连起来,我说怎么没反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-9 20:59:21 | 显示全部楼层
С罗 发表于 2015-12-5 20:07
按图上连led的负极两块之间都没连起来,我说怎么没反应。

汗。。。果真是。。。。示意图有bug,我去修正下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-9 20:59:23 | 显示全部楼层
С罗 发表于 2015-12-5 20:07
按图上连led的负极两块之间都没连起来,我说怎么没反应。

汗。。。果真是。。。。示意图有bug,我去修正下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 05:26 , Processed in 0.044443 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表