Skip to content

Instantly share code, notes, and snippets.

@vduenasg
Last active May 6, 2016 19:36
Show Gist options
  • Select an option

  • Save vduenasg/3157972 to your computer and use it in GitHub Desktop.

Select an option

Save vduenasg/3157972 to your computer and use it in GitHub Desktop.
Tablas - Binario Gray
// * Author: Victor Dueñas Guardia
// * Info: www.netzek.com
// @Ejemplo1:
// Ingresar un valor en Binario Natural y obtener su equivalente en Código Gray.
// Pseudocódigo:
// - Cargo el valor en binario.
// - Cargo la dirección de la tabla.
// - Calculo la posición del código correspondiente en gray.
.INCLUDE "M16DEF.INC" //Incluye definicion archivos ATmega16
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16 //Coloco la Pila al final de la RAM
LDI R16,0B00001100 //Coloco en R16 la cifra binario (12)
LDI ZL,LOW(TablaGRAY<<1)
LDI ZH,HIGH(TablaGRAY<<1) //Cargo en el puntero Z la dirección de la tabla TablaGRAY
ADD ZL,R16
LDI R16,0
ADC ZL,R16
LPM R16,Z //Cargo el R16 el código correspondiente
BUCLE: RJMP BUCLE //Bucle infinito
//......TABLAS
.CSEG
.ORG 0x100
TablaGRAY:
.DB 0B0000,0B0001,0B0011,0B0010 //0,1,2,3
.DB 0B0110,0B0111,0B0101,0B0100 //4,5,6,7
.DB 0B1100,0B1101,0B1111,0B1110 //8,9,10,11
.DB 0B1010,0B1011,0B1001,0B1000 //12,13,14,15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment