//8-Bit serial. in = parallel out shhift
int DS_Pin1 = 19;//8-Bit serial in = parallel out shhift //المسول عن اخراج البيانات وتتم عملية الازحه
int STCP_Pin1 = 18;
int SHCP_Pin1 = 5;
int DS_Pin2 = 26;//هيستلم البيانات من ال espا
int STCP_Pin2 = 25;//latch//stroge//لازم يكون بlow//وبعدين يبقى بhigh علشان ينقل
int SHCP_Pin2 = 33;//مسول النبضات للازاحه//cloc//المسولة عن الاشارة
const byte Dec_Digits[10] = // Describe each digit in terms of display segments 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
{
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B10111110, //6
B11100000, //7
B11111110, //8
B11110110, //9
};
void setup()
{
pinMode(DS_Pin1, OUTPUT);
pinMode(STCP_Pin1, OUTPUT);
pinMode(SHCP_Pin1, OUTPUT);
pinMode(DS_Pin2, OUTPUT);
pinMode(STCP_Pin2, OUTPUT);
pinMode(SHCP_Pin2, OUTPUT);
}
void loop()
{
for(int i=0;i<99;i++){
show(i);
delay(200);
}
}
void show(int num){
int d1;
int d2;
d2=num%10;
d1=num/10;//العشرات
for(int i=0; i<7; i++)
{
digitalWrite(STCP_Pin2, LOW);//علشان ابدا عملية النقل
shiftOut(DS_Pin2, SHCP_Pin2, LSBFIRST, Dec_Digits[d2]);//lsb نقل البيانات من على اليمين
digitalWrite(STCP_Pin2, HIGH);
delay(30);
}
for(int i=0; i<7; i++)
{
digitalWrite(STCP_Pin1, LOW);
shiftOut(DS_Pin1, SHCP_Pin1, LSBFIRST, Dec_Digits[d1]);//Dec_Digits[d1] دا اللى هيظهر على الداتا pin//lsb نقل البيانات من على اليمين
digitalWrite(STCP_Pin1, HIGH);//علشان تعمل تحديث
delay(30);
}
}