ch4_2七段顯示器閃爍顯示
老蔡mytsaii教學網頁,hi 你好,我是老蔡mytsaii
數字5678,約先亮2秒,約再閃2秒,使用delay200延遲
使用74HC595串列轉並列
dataPin=10
latchPin=11
clockPin=12
dp, g, f, e, d, c, b, a 低電位作動解碼
0xC0,//0,11000000
0xF9,//1,11111001
0xA4,//2,10100100
0xB0,//3,10110000
0x99,//4,10011001
0x92,//5,10010010
0x82,//6,10000010
0xF8,//7,11111000
0x80,//8,10000000
0x90//9,10010000
//ch4_2
const int scan[4]={5,6,7,8};//pin5~pin8 = scan[0]~scan[3]
const int dataPin=10;//串列資料
const int latchPin=11;//栓鎖訊號
const int clockPin=12;//接腳移位脈波訊號
const int segCode[10]= {
0xC0,//0,11000000
0xF9,//1,11111001
0xA4,//2,10100100
0xB0,//3,10110000
0x99,//4,10011001
0x92,//5,10010010
0x82,//6,10000010
0xF8,//7,11111000
0x80,//8,10000000
0x90//9,10010000
};
const int dispData[4]={5,6,7,8};
void setup()
{
for(int i=0;i<4;i++)
{
pinMode(scan[i],OUTPUT);
digitalWrite(scan[i],1);
}
pinMode(dataPin,OUTPUT);
pinMode(clockPin,OUTPUT);
pinMode(latchPin,OUTPUT);
digitalWrite(latchPin,0);
}
void loop()
{
for(int j=0;j<500;j++)
{
for(int i=0;i<4;i++)
{
digitalWrite(latchPin,0);//解除栓鎖
shiftOut(dataPin,clockPin,MSBFIRST,segCode[dispData[i]]);
digitalWrite(latchPin,1);
digitalWrite(scan[3-i],0);
delay(1);
digitalWrite(scan[3-i],1);
}
}
for(int j=0;j<5;j++)
{
for(int k=0;k<50;k++)
{
for(int i=0;i<4;i++)
{
digitalWrite(latchPin,0);//解除栓鎖
shiftOut(dataPin,clockPin,MSBFIRST,segCode[dispData[i]]);
digitalWrite(latchPin,1);
digitalWrite(scan[3-i],0);
delay(1);
digitalWrite(scan[3-i],1);
}
}
delay(200);
}
}
留言
張貼留言