#fuses INTRC,NOWDT,PUT,NOPROTECT // declaramos los fusibles del micro controlador
#use delay(clock=8000000) // definimos el reloj interno del micro
#define use_portb_lcd TRUE // definir el puerto b para poder trabajar con la LCD
#include
#define salida input(pin_c0) // definimos el pin C0 con el nombre de salida (subrutinas)
#define incr2 input(pin_a0) // definimos el pin A0 con el nimbre de incre2 (subrutinas)
#define reset input(pin_a1) // definimos el pin A1 con el nombre de reset (subrutinas)
#define incre input(pin_a2) // definimos el pin A2 con el nombre de incre (subrutinas)
#define decre input(pin_a3) // definimos el pin A3 con el nombre de decre (subrutinas)
#define guardar input(pin_a4) // definimos el pin A4 con el nombre de guardar (subrutinas)
#define mostrar input(pin_a5) // definimos el pin A5 con el nombre de mostrar (subrutinas)
// pulsadores
int con=0; // declaramos la variable con (contador) la ponemos en cero
void main(){
setup_oscillator(osc_8MHz); // oscilador interno para no colocar crystal en la vaquela
lcd_init();
set_tris_a(0xff); // declaramos el puerto A como entrada para resivir los pulsadores
set_tris_b(0x00); // declaramos el puerto B como salida para manejar la LCD
set_tris_c(0x00); // declaramos el puerto C como salida
lcd_gotoxy(1,1);
lcd_putc(" BIENVENIDOS ");
lcd_gotoxy(1,2);
lcd_putc(" SENA-SANTANDER ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" C I M I ");
lcd_gotoxy(1,2);
lcd_putc(" GIRON ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc("MTO. ELECTRONICO");
lcd_gotoxy(1,2);
lcd_putc("INST. RICARDO C.");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" GRUPO 23216 ");
lcd_gotoxy(1,2);
lcd_putc(" APRENDICES : ");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc("CRISTIAN TORRES ");
lcd_gotoxy(1,2);
lcd_putc(" JHON BURITICA ");
delay_ms(2000);
printf(lcd_putc,"\f");
con=read_EEPROM(10);
lcd_gotoxy(1,1);
printf(lcd_putc,"\f");
printf(lcd_putc,"Vlr.INICIAL %u ",con);
output_high(pin_c1);
// bienvenida y saludo ¡¡¡¡¡¡
inicio:
if (incre==1){ // si incrememto es = 1
delay_ms(400); // retardo de 400 micro segundos
con++; // comieza a ahumentar la variable con
lcd_gotoxy(1,1); // muestra el incremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"INCREMENTO %u ",con);
output_high(pin_c1);
} // este bloque es para hacer el ahumento
if (decre==1){ // si decremento es = 1
delay_ms(500); // retardo de 400 ms
con--; // comieza a disminuir la variable con
lcd_gotoxy(1,1); // muestra el decremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"DECREMENTO %u ",con);
output_high(pin_c1);
} // este bloque es para hacer el decremento
if (reset==1){ // si reset es = 1
delay_ms(400); // retardo de 400 micro segundos
con=0; // me coloca el contador en 0
lcd_gotoxy(1,1); // muestra el contador en 0 en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"RESET %u ",con);
output_high(pin_c1);
} // este bloque es para ponerme en 0 el contador
if (guardar==1){ // si guardar es = 1
delay_ms(500); // retardo de 400 micro segundos
write_eeprom(10,con); // me guarda en la posicion 10 de la memoria EEPROM el numero q halla en el contador
lcd_gotoxy(1,1); // me muestra la palabra guardado y el numero q guardo en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"GUARDADO %u ",con);
} // este bloque es para guardar
if (mostrar==1){ // si mostrar es = 1
delay_ms(400); // retardo de 400 micro segundos
con=read_EEPROM(10); // lee la memoria EEPROM
lcd_gotoxy(1,1); // muestra el dato q habia en la EEPROM en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"Vlr. INICIAL %u ",con);
output_high(pin_c1);
} // este bloque es para mostrar el dato que esta guardado en la EEPROM
IF(salida==1){ // salida es = 1
delay_ms(500); // retardo de 400 micro segundos
con--; // disminuye la variable con
lcd_gotoxy(1,2); //muestra el contador en decremento en la parte 1.2 de la LCD
printf(lcd_putc,"Vlr.ACTUAL %u ",con);
if(con==0){ // si el contador llega a 0
con=1; //
output_low(pin_c1); // ponemos el pin C1 en bajo para desactivar el rele
lcd_gotoxy(1,1); // muesrta el fin del proceso en la parte 1.1de la LCD
lcd_putc(" FIN DE PROCESO ");
}
}
if (incr2==1){ // si incre2 = 1
delay_ms(500); // retardo de 400 micro segundos
con=con+10; // para que el contador ahumente de a 10 en 10
lcd_gotoxy(1,1); // muestra el contador en incremento en la parte 1.1 de la LCD
printf(lcd_putc,"\f");
printf(lcd_putc,"INCREMENTO %u ",con);
output_high(pin_c1);
} //este bloque es para ahumentar de 10 en 10
goto inicio;
}
No hay comentarios:
Publicar un comentario