SE – uC: PIC16F84A – Práctica #4

Requisitos del Programa

Realizar un programa que monitorice el estado de un botón y lo muestre en un LED.

Planeación

Primero definiré los puertos de entrada y salida:

Entradas: PORTA

Salidas: PORTB

La forma más fácil de resolver este problema sería: PORTB = PORTA, pero como el problema establece que debemos monitorizar el estado del botón utilizaremos la técnica de “polling” que consiste en un ciclo infinito.

Diagrama de Flujo

Código Fuente

;--------------------------------------------------------------
;	NOMBRE DEL PROGRAMA:	PRACTICA4
;			
;	DESCRIPCION:			Programa que monitorea el estado de
;							un interruptor conectado a RA0 y lo
;							muestra en un LED conectado en RB0
;
;	POR:					Omar Gurrola
;
;	FECHA:					Martes 17/10/06
;	HORA INICIO:			10:52 AM
;	HORA FIN:				11:00 AM
;--------------------------------------------------------------
;	Configuracion para el GRABADOR

	__CONFIG	_CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
	
;_CP_ON / _OFF		Proteccion del Codigo
;_PWRTE_ON / _OFF	Reset mediante Power-Up Timer
;_WDT_ON / _OFF		WatchDog
;_LP_OSC			Oscilador de bajo Consumo (35Khz a 200Khz)
;_XT_OSC			Oscilador de Cristal (100khz a 4Mhz
;_HS_OSC			Oscilador de Alta velocidad (4Mhz a 20Mhz)
;_RC_OSC			Oscilador Resistencia-Capacitor ()
;--------------------------------------------------------------
;	Definiciones y Declaracion del Micro
	LIST	P=16F84A		;Procesador utilizado
	INCLUDE	<P16F84A.INC>	;Definicion de algunos operandos
;--------------------------------------------------------------
;	Declaracion de Constantes, Variables y Base
	RADIX	HEX		;Base Hexadecimal
	
	#DEFINE	BANK_0	BCF	STATUS,RP0	;Ir al banco 0
	#DEFINE	BANK_1	BSF	STATUS,RP0	;Ir al Banco 1
;--------------------------------------------------------------
;	Vectores de Interrupcion
	ORG	0			;Ensamblar en la Dir 0
	GOTO	PROGRAMA	
	ORG 5			;Ensamblar en la Dir 5
;--------------------------------------------------------------
;	PROGRAMA
;--------------------------------------------------------------
PROGRAMA	
	BANK_1			;Ir al banco 1
	CLRF	TRISB	;TRISB = 0 Salidas
	MOVLW	0xFF	;W=0xFF
	MOVWF	TRISA	;TRISA = 0xFF Entradas
	BANK_0			;Ir al banco 0
CICLO
	BTFSS	PORTA,0
	GOTO	NINT
	GOTO	INT
INT
	BSF		PORTB,0
	GOTO	CICLO
NINT
	BCF		PORTB,0
	GOTO	CICLO
	END				;Fin del programa

Galería

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: