Está en la página 1de 3

#include <16f887.

h>
#fuses XT, NOWDT
#use delay(clock = 4000000) // se escoge frecuencia oscilador interno ene este c
aso de pic a trab
#include <lcd.c> // libreria que permite controlar lcd
#BYTE PORTB=0x06
#BYTE PORTC=0x07
#BYTE PORTD=0x08
#BYTE TRISB=0x86
#BYTE TRISC=0x87
#BYTE TRISD=0x88
#BYTE OPTION_REG=0x81
#BIT PIN=PORTB.0
#BIT PIN1=PORTB.1
#BIT PIN2=PORTB.2
#BIT PSTA=PORTB.3
#BIT PSTO =PORTB.4 /// DETENER PSTO
#BIT MUL1=PORTB.5
#BIT MUL2=PORTB.6
#BIT MUL3=PORTB.7
#BIT LED=PORTC.0
#BIT LED1=PORTC.1
#BIT LED2=PORTC.2
#use
#use
#use
#use

standard_io(A)
standard_io(B)
standard_io(C)
standard_io(D)

/*
int main(){
option_reg=0;
delay_ms(50);
}
*/
enum funciones {medi,cali,inic};
void medir(void){
output_toggle(pin_c0);
//LED=1;
//delay_ms(100);
}
void calibar(void){
output_toggle(pin_c1);
//LED1=1;
//delay_ms(100);
}
void inicializar(void){
output_toggle(pin_c2);
//LED2=1;
//delay_ms(100);
}

void run_func(int numfunc){ /// asignacion de fuciones o items a realizar


switch(numfunc){
case medi:
medir();
break;
case cali:
calibar();
break;
case inic:
inicializar();
break;
}
}
void main(){
char item; //variables de fucniones
char n_menus =3;//numero de fucniones
option_reg=0;
lcd_init();
delay_ms(50);
lcd_gotoxy(0,1);//Referencio la posicion
printf (lcd_putc," MENU PARA INICIAR");//visualizar en portd como salida
delay_ms(5000);

while(1){
if (PIN==0){
item++;//aumenta la variable al pulsar
delay_ms(10);//Una espera
lcd_putc('\f');
if (item> (n_menus-1)){
item=0;
}
switch(item){
case 0:
lcd_gotoxy(0,1);//Referencio la posicion
printf (lcd_putc," MEDIR ");//visualizar en portd como salida
lcd_gotoxy(5,2);//Referencio la posicion
printf(lcd_putc," ");
delay_ms(1000);//Una espera
break;
case 1:
lcd_gotoxy(0,1);//Referencio la posicion

printf (lcd_putc," CALIBRAR ");//visualizar en portd como salida


lcd_gotoxy(0,1);//Referencio la posicion
printf(lcd_putc," calibrando ");
delay_ms(1000);//Una espera
break;
case 2:
lcd_gotoxy(0,1);//Referencio la posicion
printf (lcd_putc," INICIALIZAR ");//visualizar en portd como salida
lcd_gotoxy(0,1);//Referencio la posicion
printf(lcd_putc," ");
delay_ms(1000);//Una espera
//break;
///default:
//item=0;
/////item++;//aumenta la variable al pulsar
break;
}
if (PIN1==0){
delay_ms(10);//Una espera
run_func(item);
}
}
}
}

También podría gustarte