前面我們介紹了利用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量身定製的。