Microntrolador 16f877a pwm, teclado y LCD

#1
Buenas noches amigos foreros me dirijo a ustedes por un problema que tengo. Estoy haciendo un programa que seleccione por medio de la lcd una serie de rutinas utilizando los bloques. Lo que sucede es que cuando simulo no logro hacer nada ya que no me detecta ni el teclado ni la lcd. aqui les dejo lo que he hecho:

//CONFIGURACION///////////////////
#include<16F877.h> //Incluimos los registros del Micro
#fuses hs,NOWDT,NOLVP,NOPROTECT
#include <kbd.c>
#include <lcd.c>



#use delay(clock=8000000) //Reloj Interno trabajando a 8Mhz

unsigned int selection;

void main(void){
char k
port_b_pullups(TRUE);
lcd_init();
kbd_init();

lcd_putc("\fPresione una tecla\n");
k=kbd_getc();
while(TRUE){


switch(k) {
case 1 :
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,119,1); //se configura el PWM
set_pwm1_duty(80);
Delay_ms(1);
set_pwm1_duty(0); //apagado
Delay_us(562);

break;
case 2 :
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,119,1); //se configura el PWM
set_pwm1_duty(80);
Delay_ms(1);
set_pwm1_duty(0); //apagado
Delay_us(2125);
break;
case 3 :
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,119,1); //se configura el PWM
set_pwm1_duty(80);
Delay_ms(1);
set_pwm1_duty(0); //apagado
Delay_us(5250);
break;
case 4 :
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,119,1); //se configura el PWM
set_pwm1_duty(80);
Delay_ms(1);
set_pwm1_duty(0); //apagado
Delay_us(11500);
break;
case 5 :
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,119,1); //se configura el PWM
set_pwm1_duty(80);
Delay_ms(1);
set_pwm1_duty(0); //apagado
Delay_us(24000);
break;
}

}



}

Queria preguntarles si el codigo esta bien echo. Un saludo a todos
 

Adjuntos

Arriba