按位点亮
1、了解74hc595的原理,每个引脚名称作用
这里我就不多说了,关于74hc595的资料网上有很多,一看就能明白。
2、准备好实验需要的器件
led 8个
230Ω电阻 8个(我没有使用)
arduino uno
导线若干
74hc595的接线:
vcc 5v
GND
WR 5V
HS_CP 12
ST_CP 8
DS 11
OE GND
3、程序代码
int ST = 8;
int HS = 12;
int DS = 11; //这里定义了那三个脚
int num[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//定义一个存放16进制数的数组
//0000 0001 0000 0011 ...... 转换为2进制就是这样的,很清楚操控的哪一位。
void setup ()
{
pinMode(ST,OUTPUT);
pinMode(HS,OUTPUT);
pinMode(DS,OUTPUT); //让三个脚都是输出状态
}
void loop()
{
int i=0;
for(i=0; i<8;i++) //进行8次的循环
{
digitalWrite(ST,LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
shiftOut(DS,HS,LSBFIRST,num[i]);//num[i] 依次把数组的值送给595
//用MSBFIRST参数与LSBFIRST可以改变点亮的顺序
digitalWrite(ST,HIGH); //将ST_CP这个针脚恢复到高电平
delay(1000); //暂停1秒钟让你看到效果
}
for(i=7; i>0;i--) //这里再次循环,与上次的点亮顺序相反、注意这里的i=7,因为数组元素是从0开始计数的
{
digitalWrite(ST,LOW);
shiftOut((DS,HS,LSBFIRST,num[i]);
digitalWrite(ST,HIGH);
delay(1000);
}
}