SE – uC: PIC16F84A – Práctica #8

Requisitos del Programa

Realizar un programa que lea cuatro bits del puerto A y muestre su valor en un digito de siete segmentos.

Planeación

Primero definiré los puertos de entrada y salida:

Entradas: PORTA[4:0]

Salidas: PORTB

Para realizar este programa utilizaremos una tabla con el valor correspondiente en siete segmentos.

Diagrama de Flujo

Código Fuente

;--------------------------------------------------------------
;	NOMBRE DEL PROGRAMA: Practica #7
;		
;	DESCRIPCION: Decodificador de un Display de 7 segmentos
;		
;	POR:		Omar Gurrola
;	
;	FECHA:			8/11/06
;--------------------------------------------------------------
;	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
	CLRF	TRISB			;Portb = Salidas
	MOVLW	0xFF
	MOVWF	TRISA			;Porta = Entradas
	BANK_0

INICIO
	MOVLW	0x0F
	ANDWF	PORTA,W			;W = PORTA & 0x0F
	CALL	CONVERTIR_7SEG	;CALL Convert
	MOVWF	PORTB			;PORTB = 7Seg Code
	GOTO	INICIO

CONVERTIR_7SEG
	ADDWF	PCL,F
	RETLW	0x3F			;0
	RETLW	0x06			;1
	RETLW	0x5B			;2
	RETLW	0x4F			;3
	RETLW	0x66			;4
	RETLW	0x6D			;5
	RETLW	0x7D			;6
	RETLW	0x07			;7
	RETLW	0x7F			;8
	RETLW	0x67			;9
	RETLW	0x77			;A
	RETLW	0x7C			;B
	RETLW	0x39			;C
	RETLW	0x5E			;D
	RETLW	0x79			;E
	RETLW	0x71			;F

	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: