En aquest exemple volem veure com llegir l'estat del polsador que porta la placa (entrada RA3).
El programa inicialment encén el LED 0. Si es prem el polsador apaga el LED 0 i encén els altres tres. Si deixem anar el polsador tornem a tenir el LED 0 encès.
#include <p16F690.inc> __config (_INTRC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_OFF&_MCLRE_OFF&_CP_OFF&_BOR_OFF&_IESO_OFF&_FCMEN_OFF)
org 0 Inici bsf STATUS,RP0 ; Tria el banc 1 movlw 0xFF ; Posa l'acumulador a FFh (tot uns) movwf TRISA ; Posa tots els bits del port A com a entrada clrf TRISC ; Posa tots els bits del port C com a sortida bcf STATUS,RP0 clrf PORTC ; Inicialment tots els LED apagats Bucle btfss PORTA,3 ; Mira si està activada l'entrada A3 ; Si està activada, no fa la instrucció següent ; Fa la instrucció si l'entrada està desactivada ; És a dir, si el polsador està premut goto Premut ; Si està premut, anem a encendre els tres LED movlw b'00000001' ; Encén el LED 0 movwf PORTC goto Bucle ; Repetim-ho... Premut movlw b'00001110' ; Encén els tres LED movwf PORTC goto Bucle ; Repetim-ho... end
Aquesta forma de treballar és útil per veure l'estat del polsador però no per a comptar les activacions o fer coses que depenguin del número de pulsacions. Si aquest fos el cas, consulteu com filtrar els rebots d'un polsador i l'exemple CP - Comptador amb polsador.
Si el polsador no funciona, assegureu-vos que heu marcat 3-State on 'Release from Reset' a la finestra de propietats del PICkit 2:

Quan activem aquesta casella li estem dient al programador que es desconnecti del microcontrolador quan acabi de programar. Aquesta desconnexió, però, no és instantània i això pot produir funcionaments inesperats en aquells programes que comprovin l'estat del polsador poc després de que s'iniciï el programa. Per evitar aquests problemes podem posar un retard (per exemple, un segon) entre les inicialitzacions i el tros del programa on es mira el polsador.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.