// Define Connections to 74HC595
int dt595 = 2;
int ck595 = 3;
int ld595 = 4;
// Define Connections to 74HC595
int dt165 = 5;
int ck165 = 6;
int ld165 = 7;
//==================inox,s are switches data register
byte inox1 = 0;
byte inox2 = 0;
void setup()
{
// Setup Serial Monitor
Serial.begin(9600);
// Setup 74HC595 connections
pinMode(dt595, OUTPUT);//74595 datapin " 14 "
pinMode(ld595, OUTPUT); //74595 loadpin " 12 & 13 "
pinMode(ck595, OUTPUT);//74595 clockpin " 11 "
// Setup 74HC165 connections
pinMode(dt165, INPUT);//74165 datapin " 9 "
pinMode(ld165, OUTPUT);//74165 loadpin " 1 "
pinMode(ck165, OUTPUT);//74165 clockpin " 2 "
digitalWrite(ck165, LOW);
digitalWrite(ld165,HIGH);
digitalWrite(ck595, LOW);
digitalWrite(ld595, LOW);
}
void loop()
{
digitalWrite(ld165, LOW);
//delayMicroseconds(5);
digitalWrite(ld165, HIGH);
//delayMicroseconds(5);
// خواندن یک بایت و ذخیره در رجیستر اینکامینگ
byte inox1 = shiftIn(dt165, ck165, MSBFIRST);
//digitalWrite(ck165, HIGH);
byte inox2 = shiftIn(dt165, ck165, MSBFIRST);
digitalWrite(ck165, HIGH);
// }
//inox = incoming;
shiftOut(dt595, ck595, MSBFIRST, inox2);
// delay(100);
shiftOut(dt595, ck595, MSBFIRST, inox1);
digitalWrite(ld595, HIGH);
// delay(100);
digitalWrite(ld595, LOW);
// delay(100);
//inox = incoming;
Serial.print("inox1:");
Serial.println(inox1, BIN);
Serial.print("inox2:");
Serial.println(inox2, BIN);
Serial.print("inox1:");
Serial.println(inox1, HEX );
Serial.print("inox2:");
Serial.println(inox2, HEX);
//Serial.print("incoming:");
//Serial.println(incoming, BIN);
}