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);}}
最后更新于
这有帮助吗?