## Arduino实作74HC595

Arduino实作74HC595

## Arduino实作74HC595
16脚:电压输入
Q0~7脚:并行输出引脚,一般是5v
13脚:OE,需要接GND
10脚:MR,需要接高电压
12脚:ST,上升,数据从移位寄存器转存到存储寄存器。(大平台)
11脚:SH,上升时移位寄存器整体数据后移,并接受新的bit(活塞)
14脚:DS,数据输入脚位。

## Arduino实作74HC595

代码如下:
<
int big=2; //宣告大平台为脚位2(ST)
int push=3; //宣告活塞为脚位3(SH)
int data=4; //宣告资料为脚位4(DS)

void setup() {
pinMode (big,OUTPUT);
pinMode (push,OUTPUT);
pinMode (data,OUTPUT);
}

void loop() {
digitalWrite(big,LOW); //先放下平台

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,1); //资料放上1
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,0); //资料放上0
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,0); //资料放上0
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,0); //资料放上0
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,1); //资料放上1
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,1); //资料放上1
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,0); //资料放上0
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(push,LOW); //活塞后拉
digitalWrite(data,1); //资料放上1
digitalWrite(push,HIGH); //放好资料,推出活塞

digitalWrite(big,HIGH); //大平台上推

}

代码改进:
<
int big=2; //宣告大平台为脚位2(ST)
int push=3; //宣告活塞为脚位3(SH)
int data=4; //宣告资料为脚位4(DS)
int dataput[8]={1,0,1,0,1,0,1,0};

void setup() {
pinMode (big,OUTPUT);
pinMode (push,OUTPUT);
pinMode (data,OUTPUT);
}

void loop() {
digitalWrite(big,LOW); //先放下平台

for(int i=0;i<8;i++){
putsomething(dataput[i]);
}

digitalWrite(big,HIGH); //大平台上推
}

void putsomething(int number){
digitalWrite(push,LOW);
digitalWrite(data,number);
digitalWrite(push,HIGH);
}