int i=0;
int Potenciometro = A7;
int tiempo=50;
void setup() {
pinMode(22, OUTPUT); // A0
pinMode(23, OUTPUT); // A1
pinMode(24, OUTPUT); // A2
pinMode(25, OUTPUT); // A3
pinMode(26, OUTPUT); // A4
pinMode(27, OUTPUT); // A5
pinMode(28, OUTPUT); // A6
pinMode(29, OUTPUT); // A7
pinMode(30, OUTPUT); // A15
pinMode(31, OUTPUT); // A14
pinMode(32, OUTPUT); // A13
pinMode(33, OUTPUT); // A12
pinMode(34, OUTPUT); // A11
pinMode(35, OUTPUT); // A10
pinMode(36, OUTPUT); // A9
pinMode(37, OUTPUT); // A8
pinMode(42, OUTPUT); // D7
pinMode(43, OUTPUT); // D6
pinMode(44, OUTPUT); // D5
pinMode(45, OUTPUT); // D4
pinMode(46, OUTPUT); // D3
pinMode(47, OUTPUT); // D2
pinMode(48, OUTPUT); // D1
pinMode(49, OUTPUT); // D0
pinMode(41, OUTPUT); // PHI2
pinMode(62, OUTPUT); // RESET
pinMode(63, OUTPUT); // GAME
pinMode(64, OUTPUT); // EXROM
pinMode(65, OUTPUT); // IO2
pinMode(66, OUTPUT); // IO1
pinMode(67, OUTPUT); // WRITE
pinMode(68, OUTPUT); // IRQ
pinMode(69, OUTPUT); // NMI
pinMode(10, OUTPUT); // JP4 ENABLE ADDRESS A0-A7
pinMode(11, OUTPUT); // JP3 ENABLE ADDRESS A8-A15
pinMode(12, OUTPUT); // JP2 ENABLE DATA
pinMode(13, OUTPUT); // JP1 ENABLE SIGNAL
}
void loop() {
PORTA = 255; // Enciende todos los LEDs del puerto A.
Pulso();
PORTC = 255; // Enciende todos los LEDs del puerto C.
Pulso();
PORTL = 255; // Enciende todos los LEDs del puerto L.
Pulso();
PORTK = 0; // Enciende todos los LEDs del puerto K (NIVEL BAJO)
delay(500);
digitalWrite(10, HIGH); // Deshabilita ADDRESS A0-A7
delay(500);
digitalWrite(11, HIGH); // Deshabilita ADDRESS A8-A15
delay(500);
digitalWrite(12, HIGH); // Deshabilita DATA
delay(500);
digitalWrite(13, HIGH); // Deshabilita SIGNAL
delay(500);
digitalWrite(10, LOW); // Habilita ADDRESS A0-A7
digitalWrite(11, LOW); // Habilita ADDRESS A8-A15
digitalWrite(12, LOW); // Habilita DATA
digitalWrite(13, LOW); // Habilita SIGNAL
PORTA=0; // Apaga todos los puertos.
Pulso();
PORTC=0;
Pulso();
PORTL=0;
Pulso();
PORTK = 255;
Pulso();
delay(500);
PORTK = 0; // Enciende todos los LEDs del puerto K (NIVEL BAJO)
delay((analogRead(Potenciometro)));
PORTK = 255; // Apaga todos los LEDs del puerto K (NIVEL BAJO)
for (i=0;i<2;i++){ // Enciende todos los LEDs del puerto A.
PORTA = 255;
Pulso();
delay(500);
PORTA = 0; // Apaga todos los LEDs del puerto A.
Pulso();
delay(500);
}
for (i=0;i<2;i++){ // Enciende todos los LEDs del puerto C.
PORTC = 255;
Pulso();
delay(500);
PORTC = 0; // Apaga todos los LEDs del puerto C.
Pulso();
delay(500);
}
for (i=0;i<2;i++){ // Enciende todos los LEDs del puerto L.
PORTL = 255;
Pulso();
delay(500);
PORTL = 0; // Apaga todos los LEDs del puerto L.
Pulso();
delay(500);
}
for(i=0;i<8;i++){ // LED deslizandose Puerto A. <--
digitalWrite(22+i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(22+i,LOW); //apaga led
Pulso();
delay(analogRead(Potenciometro)/2);
}
for(i=7;i>=0;i--){ // LED deslizandose Puerto A. -->
digitalWrite(22+i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(22+i,LOW); //apaga led
Pulso();
delay(analogRead(Potenciometro)/2);
}
for(i=0;i<8;i++){ // LED deslizandose Puerto C. <--
digitalWrite(37-i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(37-i,LOW); //apaga led
Pulso();
delay(analogRead(Potenciometro)/2);
}
for(i=0;i<8;i++){ // LED deslizandose Puerto C. -->
digitalWrite(30+i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(30+i,LOW); //apaga led
Pulso();
delay((analogRead(Potenciometro)/2));
}
for(i=0;i<8;i++){ // LED deslizandose Puerto L. <--
digitalWrite(49-i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(49-i,LOW); //apaga led
Pulso();
delay((analogRead(Potenciometro)/2));
}
for(i=0;i<8;i++){ // LED deslizandose Puerto L. -->
digitalWrite(42+i,HIGH); //enciende led
Pulso();
delay((analogRead(Potenciometro)/2));
digitalWrite(42+i,LOW); //apaga led
Pulso();
delay((analogRead(Potenciometro)/2));
}
for(i=0;i<8;i++){ // LED deslizandose Puerto K. <--
digitalWrite(62+i,LOW); //enciende led
delay((analogRead(Potenciometro)/2));
digitalWrite(62+i,HIGH); //apaga led
delay((analogRead(Potenciometro)/2));
}
for(i=0;i<8;i++){ // LED deslizandose Puerto K. -->
digitalWrite(69-i,LOW); //enciende led
delay((analogRead(Potenciometro)/2));
digitalWrite(69-i,HIGH); //apaga led
delay((analogRead(Potenciometro)/2));
}
for(int Dir_Baja=0;Dir_Baja<255;Dir_Baja++){ // Contador 8 bits en todos los puertos.
PORTA=Dir_Baja;
Pulso();
PORTC=Dir_Baja;
Pulso();
PORTL=Dir_Baja;
Pulso();
PORTK=Dir_Baja;
delay((analogRead(Potenciometro)/2));
}
PORTA=0; // Apaga todos los puertos.
Pulso();
PORTC=0;
Pulso();
PORTL=0;
Pulso();
PORTK = 255;
}
void Pulso() { // Funcion para que el 74HCT573 cargue
digitalWrite(41, HIGH); // los datos presentes en su entrada
digitalWrite(41, LOW); // haciendo un pulso en su entrada Load
}