;
;					EJEMPLO 1.10
;
;				Autor: Mikel Etxebarria
;			(c) Microsystems Engineering (Bilbao)
;
;Ejemplo para simulación
;
;Convierte el valor binario presente en posición 0x10, comprendido entre 0 y 9, en su
;equivalente en código GRAY
;
;Este ejemplo pretende familiarizar al usuario con el manejo de tablas
		
		List	p=16F84		;Tipo de procesador
		include	"P16F84.INC"	;Definiciones de registros internos

Bcd		equ	0x10		;Valor BCD inicial
Gray		equ	0x11		;Valor obtenido en código GRAY

		org	0x00		;Vector de Reset
		goto	Inicio

		org	0x05		;Salva el vector de interrupción

Tabla		addwf	PCL,F		;Calcula desplazamiento sobre la tabla
		retlw	b'00000000'	;Codigo GRAY del dígito 0
		retlw	b'00000001'	;Codigo GRAY del dígito 1
		retlw	b'00000011'	;Codigo GRAY del dígito 2
		retlw	b'00000010'	;Codigo GRAY del dígito 3
		retlw	b'00000110'	;Codigo GRAY del dígito 4
		retlw	b'00000111'	;Codigo GRAY del dígito 5
		retlw	b'00000101'	;Codigo GRAY del dígito 6
		retlw	b'00000100'	;Codigo GRAY del dígito 7
		retlw	b'00001100'	;Codigo GRAY del dígito 8
		retlw	b'00001101'	;Codigo GRAY del dígito 9

Inicio	        movf	Bcd,W		;Carga el valor BCD original
		call	Tabla		;Convierte a GRAY
		movwf	Gray		;Guarda el resultado

Stop		nop	   		;Poner breakpoint de parada
		nop

		end			;Fin del programa fuente
