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);
}
#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);
}