Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
#include <16f84a.h>
#fuses XT ,NOWDT //¿QUE ME FALTARIA PONER AQUI?????????
#use delay(clock=4000000)
#define LED0 pin_B0
#define LED1 pin_B1
int i=1;
int c=1;
void main()
{
#byte TRISB =0b0000000; //pin de Rb se declaran como salidas.
#byte TRISA =0b11111; //pin de Ra se declaran como entradas
Inicio: //inicio de programa
SECUENCIA1: //inicio secuencia 1
if (input_state(PIN_A0)==1){
for(i=0; i<1; i++){
output_high(LED0) ; // Encender LED en salida B0.
delay_ms(300) ; // Esperar 300msegundos.
output_low(LED0) ; // Apagar LED en salida B0.
delay_ms(10) ; // Esperar 10msegundos.
}
delay_ms(1) ; // Esperar 1msegundos de retraso.
for(c=0; c<1; c++){
output_high (LED1) ; // Encender LED en salida B1.
delay_ms(300) ; // Esperar 300msegundos.
output_low(LED1) ; // Apagar LED en salida B1.
delay_ms(10) ; // Esperar 10msegundos.
}//fin de for.
if (input_state(PIN_A0)==1){ GOTO SECUENCIA1; }
}//fin de if
else{
GOTO SECUENCIA2; //pasa a la siguiente secencia
}
SECUENCIA2: //inicio de secuencia 2
if (input_state(PIN_A1)==1){
// debes hacerlo con un input_state(*pin);
for(i=0; i<5; i++){
output_high (LED0) ; // Encender LED en salida B0.
delay_ms(50) ; // Esperar 50msegundos.
output_low(LED0) ; // Apagar LED en salida B0.
delay_ms(50) ; // Esperar 50msegundos.
}
for(c=0; c<5; c++){
output_high (LED1) ; // EEncender LED en salida B1.
delay_ms(50) ; // Esperar 50msegundos.
output_low(LED1) ; // Apagar LED en salida B1.
delay_ms(50) ; // Esperar 50msegundos.
}//fin de for.
if (input_state(PIN_A1)==1){ GOTO SECUENCIA2; }
}//fin de if
else{
GOTO SECUENCIA3; //pasa a la secuencia 3
}
SECUENCIA3: //inicio de secuencia 3
if (input_state(PIN_A0)==0){
if (input_state(PIN_A2)==1){
for(c=0; c<5; c++){
output_high (LED0) ; // Encender LED en salida B0.
output_high (LED1) ; // Encender LED en salida B1.
delay_ms(50) ; // Esperar 50msegundos.
output_low(LED0) ; // Apagar LED en salida B0.
output_low (LED1) ; // Apagar LED en salida B1.
delay_ms(50) ; // Esperar 50msegundos.
}//fin de for.
delay_ms(100) ; // Esperar 100msegundos de retraso.
for(i=0; i<3; i++){
output_high (LED0) ; // Encender LED en salida B0.
output_high (LED1) ; // Encender LED en salida B1.
delay_ms(100) ; // Esperar 150msegundos.
output_low(LED0) ; // Apagar LED en salida B0.
output_low (LED1) ; // Apagar LED en salida B1.
delay_ms(100) ; // Esperar 150msegundos.
}//fin de for
if (input_state(PIN_A2)==1){ GOTO SECUENCIA3;}
}//fin de segundo if
}//fin de primer if y termina la sentencia 3
delay_ms(10) ; // Esperar 350msegundos que sumados al
// anterior me da medio segundo de retraso
GOTO SECUENCIA4; //pasa a la secuencia 4
SECUENCIA4: //inicio de secuencia 4
if (input_state(PIN_A0)==0){
if (input_state(PIN_A3)==1){
for(c=0; c<5; c++){
output_high (LED0) ; // Encender LED en salida B0.
output_high (LED1) ; // Encender LED en salida B1. AQUI TENGO PROBLEMAS
// YA QUE UNA DE ESTAS DOS SALIDAS NO SE ENCIENDEN AL
//SIMULARLA EN PROTEUS, QUIERO QUE SE ENCIENDAN LAS DOS AL MISMO TIEMPO
delay_ms(100) ; // Esperar 100msegundos.
output_low(LED0) ; // Apagar LED en salida B0.
output_low (LED1) ; // Apagar LED en salida B1.
delay_ms(100) ; // Esperar 100msegundos.
}//fin de for.
if (input_state(PIN_A3)==1){ GOTO SECUENCIA4; }
delay_ms(400) ; // Esperar 450msegundos que sumados al
// anterior me da medio segundo de retraso
}//fin de segundo if
}//fin de primer if y fin de secuencia 4
GOTO Inicio; //pasa a Inicio
}// fin de void main.
#byte TrisPORTB = 0x86
#byte TrisPORTA = 0x85
void main (void){
TrsPORTB = 0b0000000; // Al hacer esto, pone cero en la dirección 0x86 del registro que es donde se ubica el TRISB.
...
...
}