shiftOut(dataPin, clockPin, bitOrder, value)

将一个数据的一个字节一位一位的移出。

参数

参数名

描述

dataPin

输出每一位数据的引脚(int)

clockPin

时钟脚,当dataPin有值时此引脚电平变化(int)

bitOrder

输出位的顺序,最高位优先或最低位优先

value

要移位输出的数据(byte)

注意

dataPin和clockPin要用pinMode()配置为输出。 shiftOut目前只能输出1个字节(8位),所以如果输出值大于255需要分两步。

//最高有效位优先串行输出int 数据= 500;
//移位输出高字节s
hiftOut(dataPin, clock, MSBFIRST, (data >> 8));  
//移位输出低字节
shiftOut(data, clock, MSBFIRST, data);
//最低有效位优先串行输出data = 500;
//移位输出低字节
shiftOut(dataPin, clock, LSBFIRST, data);  
//移位输出高字节
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));

例子

相应电路,查看tutorial on controlling a 74HC595 shift register

// ************************************************ ************** ////  Name    : shiftOut代码, Hello World                         ////  Author  : Carlyn Maw,Tom Igoe                               ////  Date    : 25 Oct, 2006                                      ////  版本 : 1.0                                               ////  注释:使用74HC595移位寄存器从0到255计数         ////// ************************************************ ****************//引脚连接到74HC595的ST_CPint latchPin = 8;//引脚连接到74HC595的SH_CPint clockPin = 12;//引脚连接到74HC595的DSint dataPin = 11;void setup() {//设置引脚为输出  pinMode(latchPin, OUTPUT);  pinMode(clockPin, OUTPUT);  pinMode(dataPin, OUTPUT);}void loop() {  //向上计数程序   (J = 0; J <256; J + +){     //传输数据的时候将latchPin拉低digitalWrite(latchpin, LOW);     shiftOut的 (dataPin,clockPin,LSBFIRST,J);    //之后将latchPin拉高以告诉芯片     //它不需要再接受信息了digitalWrite(latchpin, HIGH);     delay(1000);}}

最后更新于