Programació en mpasm del PIC 16F690

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Exemple PB - Ús bàsic del polsador

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:

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.

 

 

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