Por aca dejo un pequeño código muy interesante, puede controlar hasta 5 interruptores para el control de un led, funciona como los llamados 3 way, que usan dos interruptores para el apagado y encendido de un bombillo, ahora este tiene 5 y cualquiera de los 5 puede cambiar el estado del led, si esta prendido lo apaga y si esta apagado lo enciende, esta echo con un pic12F675 y el código realmente no es código, es mas configuración que código cuando lo vean se daran cuenta que únicamente tiene la instrucción GOTO inicio, y es solo ese loop lo que hace, lo interesante es que se trata de interrupciones por cambio de estado, al cambiar el estado de cualquiera de las entradas cambia el estado del led.
Cuando abran el archivo del código pbp, verán que esta full comentado para que vean cual es el truco del código, les dejo la simulación y el codigo...
Código:
@ DEVICE PIC12F675
@ DEVICE INTRC_OSC_NOCLKOUT
@ DEVICE WDT_OFF
@ DEVICE PWRT_OFF
@ DEVICE MCLR_OFF
@ DEVICE BOD_OFF
@ DEVICE PROTECT_OFF
@ DEVICE CPD_OFF
DEFINE OSCCAL_1K 1
DEFINE OSC 4
INTCON = %10001000 'INTERRUPCIONES ACTIVADAS
OPTION_REG = %00000000
WPU = %00110110 'TODOS LOS PINES CON PULL-UP MENOS GPIO.0 y GPIO.3
IOC = %00111110 'TODOS LOS PINES COMO INTERRUPCION MENOS GPIO.0
ANSEL = %00000000 'ADC DESABILITADO
CMCON = %00000111 'COMPARADOR DESABILITADO
SYMBOL LED = GPIO.0
TRISIO =%00111110 'TODOS COMO ENTRADA MENOS GPIO.0
GPIO = %00000000
ON INTERRUPT GOTO SWCHIT
INTCON = %10001000
INICIO:
GOTO INICIO
Disable
SWCHIT:
TOGGLE LED
PAUSE 400
INTCON = %10001000
Resume
Enabl
Cuando abran el archivo del código pbp, verán que esta full comentado para que vean cual es el truco del código, les dejo la simulación y el codigo...