Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Преобразование рефлексного кода в позиционный двоичный

Очень редко может возникнуть необходимость в преобразовании чисел, представленных в рефлексном коде (коде Грея) в позиционный код. В приложениях на основе микроконтроллеров данные в коде Грея могут поступать от некоторых датчиков старого типа.

Для преобразования числа B, представленного в позиционном двоичном коде, в число G записанное в двоичном рефлексном коде необходимо произвести операцию “исключающее ИЛИ” между самим числом B и частным, полученным от деления B/2:
G = B ^ (B/2) = bn-1*2n-1 + (bn-2^bn-1)*2n-2 + … + (b2^b1)*21 + b1^b0

Преобразование из рефлексного кода в позиционный (сводится к последовательному определению разрядов bn двоичного числа). Как видно, старший коэффициент bn-1 в позиционном двоичном и рефлексном кодах всегда совпадают. Для определения bn-2 необходимо произвести битовую операцию bn-1^(bn-2^bn-1). Точно также по известному bn-2 определяется bn-3 = bn-2^(bn-3^bn-2) и т.д. Подпрограмма преобразования 16-разрядного числа в коде Грея в его двоичный эквивалент:

; R17:R16 <- R17:R16
; R17:R16 – число в рефлексном коде при входе 
; и в двоичном позиционном коде при выходе 
; R18,R19 – вспомогательные регистры

gr16_pos16:
    ldi   R18,0x80
	ldi   R19,16   ;инициализируем счётчик сдвигов    
	clc            ;обнуляем флаг C при входе в цикл   
gr1: rol   R16      ;сдвигаем число R17:R16 на 1 разряд влево
    rol   R17
	brcc  PC+2     ;находим очередной разряд bn 
	eor   R17,R18  
    dec   R19      
	brne  gr1      ;повторяем операцию n раз
	rol   R16
    rol   R17
	ret

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Печатная плата для усилителя "LM3886 + AD825" LC-измеритель LC100-A
вверх