Programa de prender y apagar un led.

#1
Miren lo que pasa es que tengo una tarea, que se trata de encender y apagar un led, tengo el programa lo hice en pic c , con el microcontrolador pic16f877a , pero cuando lo simulo en proteus apachurro el boton y prende, pero cuando lo vuelvo a apachurrar se apaga, o a veces no se apaga, a si que en el programa hay un descontrol, ya que aveces lo tengo que apachurrar varias veces para que pueda funcionar 0_o , a qui esta el programa.

#include "C:\Users\asus\Documents\Proyecto\Programas 2\Prueba de encender un led con un boton.h"
#BYTE puerto_b=0x06
#BYTE puerto_a=0x05
#define b0 bit_test (puerto_a,0)
void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

// TODO: USER CODE!!
set_tris_b(0x00);
puerto_b=0;

set_tris_a(0b00000001);
puerto_a=0;


do{
if(b0){
puerto_b=00000001;
do{

}while(b0);
}//hasta este punto, esta prendido el led.

if(b0){
puerto_b=00000000;
do{
}while(b0);
} // presiono el boton y se apaga el led.

}while(true);
}
 
#3
Prueba agregando en paralelo a cada botón un capacitor de 0.1uF. Si sigue con fallas deberías implementar una rutina antirrebotes.

Un saludo!
 
#4
Hola a todos soy nuevo en el foro y en el tema, jejeje lo que pasa es que me la he pasado buscando la programacion para este proyecto(encender un led y apagarlo) pero en PIC C ya que he intendado varias cosas pero nada me sale alguien me podra ayudar



Saludos
 
Arriba