[an error occurred while processing this directive] [an error occurred while processing this directive]
С помощью 3 регистров(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено misyachniy 10 июня 2002 г. 13:55
В ответ на: Ответ: это even или odd ? Спасибо за ответ. отправлено Константин Соловьев 06 июня 2002 г. 20:24

В первом регистрe байт для которого считается паритет.
Во втором счетчик бит - число 8
В Третьем счетчик битов установленных в 1. начальное значение 0

Сдвигаете 8 раз исходный байт влево через бит паритета
Если бит = 1 то инкрементируете третий регистр.

После окончания сдвигов младший бит в третьем регистре и есть
бит паритета ODD.

Его инверсия - EVEN.

Если использовать i8051 c битовой адресацией то вместо третьего регистра можно использовать бит.

Но в i8051 в регистре состояния PSW уже есть готовый бит паритета ODD.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru