前面我们介绍了利用595控制LED的方法(具体参考《proteus中仿真arduino利用74hc595控制LED》),这里我们继续前面的话题,介绍一下在proteus中仿真arduino利用74HC595控制单个数码管的方法,对数码管还不熟悉的童鞋可以参考《用arduino控制数码管》中对数码管的详细介绍。
一、电路
用到的器件:Atmega328P、74HC595、7SEG-DIGITAL、Resistor、LED-RED
二、代码
int latchPin=12;
int clockPin=8;
int dataPin=11;
int mseg[10]={0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0xBF};
void setup () {
pinMode(latchPin,OUTPUT);
pinMode(clockPin,OUTPUT);
pinMode(dataPin,OUTPUT);
}
void loop()
{
for(int x=0; x<10; x++)
{
digitalWrite(latchPin,LOW);
//这个for循环的作用等同于shiftOut一个函数的作用
for(int i=0;i<8;i++)
{
digitalWrite(dataPin,bitRead(mseg[x],7-i));
digitalWrite(clockPin,HIGH);
delay(1);
digitalWrite(clockPin,LOW);
}
//shiftOut(dataPin,clockPin,MSBFIRST,mseg[x]);
digitalWrite(latchPin,HIGH);
delay(100);
}
}
这里的shiftout可以完全替代内层的for循环及内部的语句,可见shiftout是专门为595量身定制的。