Estimados,
Luego de leer por un tiempo el foro me interese por empezar a hacer algunas pruebas. Lo que he intentado (Sin mucho éxito la verdad) es hacer algo simple para entender los rudimentos y utilizar ese conocimiento como plataforma de aprendizaje.
En si tome distintos códigos de los varios ejemplos que hay posteados y los he alterado para probar sus consecuencias.
El problema que me he encontrado es que no logro hacer que el PIC reciba un 1 desde el pulsador.
Ya que carezco totalmente de conocimientos de electrónica, no se si me esta faltando algún componente (resistencia por ejemplo) para lograr lo que quiero.
Descripción del circuito.
Asumo que no hace falta pero, considerando que lo que abunda no daña, describo lo que he montado en la Protoboard.
• Pic: PIC16F628A
• Leds: dos, conectados a RB7 y RB6 compartiendo una línea común de vss con una resistencia de 200 ohms (aquí aclaro que no entiendo que función cumplen las resistencias, pero me han dicho que ponga una, así que cual chimpancé entrenado, lo he hecho)
• Pulsador: Conectado a Vdd y RB5
• Alimentación: 4.5 v (tres pilas AAA)
Programa:
Objetivo: Simplemente en su estado inicial enciende el led conectado a RB7 y RB6 queda apagado. Al detectar la pulsación del botón conectado a RB5 debe invertir el estado de los leds.
#include <16F628A.h>
#fuses INTRC_IO,WDT,NOPROTECT,NOMCLR,BROWNOUT
#use delay (clock=4000000)
#use fast_IO(B)
void main(void)
{
set_tris_b(0x20); //Habilito RB5 como entrada
disable_interrupts(GLOBAL);
output_high(PIN_B7);
output_low(PIN_B6);
for(;

{
if(input(PIN_B5))
{
output_high(PIN_B6);
output_low(PIN_B7);
}
}
}
Independientemente de lo mejorable del código, no logro hacer que el botón afecte a los leds y es aquí donde necesito ayuda.
¿Alguien podra decirme que estoy haciendo mal?
Desde ya muchísimas gracias.