这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版 | |||
zh:reference:language:shiftout [2014/08/10 13:45] – [例子] 弘毅 | reference:language:shiftout [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== shiftOut() ====== | ||
+ | |||
+ | ===== 描述 ===== | ||
+ | |||
+ | 将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 | ||
+ | |||
+ | **注意:**如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, | ||
+ | |||
+ | **注意:**这是一个软件实现;ocrobot提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 | ||
+ | ===== 语法 ===== | ||
+ | |||
+ | shiftOut(dataPin, | ||
+ | ===== 参数 ===== | ||
+ | |||
+ | dataPin:输出每一位数据的引脚(int) | ||
+ | \\ clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) | ||
+ | \\ bitOrder:输出位的顺序,最高位优先或最低位优先 | ||
+ | \\ value: 要移位输出的数据(byte) | ||
+ | ===== 返回 ===== | ||
+ | |||
+ | 无 | ||
+ | ===== 注意 ===== | ||
+ | |||
+ | dataPin和clockPin要用pinMode()配置为输出。 | ||
+ | shiftOut目前只能输出1个字节(8位),所以如果输出值大于255需要分两步。 | ||
+ | <code cpp> | ||
+ | // | ||
+ | int 数据= 500; | ||
+ | // | ||
+ | shiftOut(dataPin, | ||
+ | // | ||
+ | shiftOut(data, | ||
+ | |||
+ | // | ||
+ | data = 500; | ||
+ | // | ||
+ | shiftOut(dataPin, | ||
+ | // | ||
+ | shiftOut(dataPin, | ||
+ | </ | ||
+ | ===== 例子 ===== | ||
+ | |||
+ | 相应电路,查看tutorial on controlling a 74HC595 shift register | ||
+ | <code cpp> | ||
+ | // ************************************************ ************** // | ||
+ | // Name : shiftOut代码, | ||
+ | // Author | ||
+ | // Date : 25 Oct, 2006 // | ||
+ | // 版本 : 1.0 // | ||
+ | // 注释:使用74HC595移位寄存器从0到255计数 | ||
+ | // | ||
+ | // ************************************************ **************** | ||
+ | |||
+ | // | ||
+ | int latchPin = 8; | ||
+ | // | ||
+ | int clockPin = 12; | ||
+ | // | ||
+ | int dataPin = 11; | ||
+ | |||
+ | void setup() { | ||
+ | // | ||
+ | pinMode(latchPin, | ||
+ | pinMode(clockPin, | ||
+ | pinMode(dataPin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // | ||
+ | (J = 0; J <256; J + +){ | ||
+ | // | ||
+ | digitalWrite(latchpin, | ||
+ | | ||
+ | // | ||
+ | // | ||
+ | digitalWrite(latchpin, | ||
+ | | ||
+ | |||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||