SE – uC: PIC16F84A – Práctica #2

Descripción del Programa

Programa que almacena 0x11 en quince posiciones continuas de memoria de datos utilizando direccionamiento indirecto. Empezando en la dirección 0x10.

Para realizar este programa utilizaremos un contador para incrementar la posición de memoria y llevar la cuenta de las quince posiciones donde escribiremos el dato 0x11.

Para utilizar el direccionamiento indirecto debemos poner la dirección inicial en el registro FSR e ir incrementándolo y para escribir el dato en esa posición de memoria debemos utilizar el registro INDF.

Diagrama de Flujo

Código Fuente

;--------------------------------------------------------------
;	NOMBRE DEL PROGRAMA:
;			Practica #2
;	DESCRIPCION: 
;			Programa que pone 11h en 15 posicione usando Direccionamiento Indirecto
;	POR:
;			Omar Gurrola
;	FECHA:	Miercoles 11/10/06
;	HORA:	11:48 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

Contador	EQU	0x0C	;Contador interno
Primera		EQU	0x10	;Posicion Inicial
;--------------------------------------------------------------
;	Vectores de Interrupcion

	ORG	0			;Ensamblar en la Dir 0
	GOTO	PROGRAMA	
	ORG 5			;Ensamblar en la Dir 5
;--------------------------------------------------------------
;	PROGRAMA
;--------------------------------------------------------------
PROGRAMA
	MOVLW	0x0F		;W = 15
	MOVWF	Contador	;Contador = W = 15
	MOVLW	Primera		;W = 10h
	MOVWF	FSR			;FSR = W = 10h
	MOVLW	0x11		;W = 11h

BUCLE
	MOVWF	INDF		;INDF = 11h
	INCF	FSR,F		;FSR = FSR + 1
	DECFSZ	Contador,F	;Contador = Contador - 1, si Contador = 0 salta
	GOTO	BUCLE		;
STOP
	NOP
	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: