Главная » Микроконтроллеры
Призовой фонд
на октябрь 2021 г.
1. Рюкзак Mean Well
Компэл
2. Инвертор авто Mean Well 150 Ватт
Компэл
3. Термос MeanWell
Компэл
4. 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-микроконтроллеров
Конструктор для сборки: предусилитель на лампе 6N3 Ручной фен 450 Вт с регулировкой температуры
вверх