Мегаобучалка Главная | О нас | Обратная связь


Битовые операции в MCS -51



2019-12-29 174 Обсуждений (0)
Битовые операции в MCS -51 0.00 из 5.00 0 оценок




 

Пример 31. Операция Исключающее ИЛИ используется очень часто для сравнения бит, или их сброса. В кодах битового процессора такой операции нет, но легко осуществляется наложение логической операции Исключающее ИЛИ на флажок переноса:

JNB bit, LZ ; исключительное ИЛИ для флажка переноса

CPL С         ; инверсия флажка

LZ:                           ; продолжение программы

Пример 32. Преобразовать байт в последовательный код и передать его через Р1.0, не воздействуя при этом на остальные разряды порта. Передачу вести, начиная с младшего бита:

MOV R7,#8D ; инициализация счетчика циклов

LOOP: RRC    А ; присвоение переноса значение бита А.0

MOV Р1.0, С ; передача бита

DJNZ R7, LOOP     ; цикл, если не все биты переданы

Время выполнения программы 41 мкс, время передачи – 5 мкс (скорость передачи – 200 кбит/с).

Пример 33. Вычислить булеву функцию 3-х переменных Y=(X× )+W (X+V). Переменные X, V, W поступают на линии 2, 1, 0 порта 1; результат Y необходимо вывести на линию 3 порта 1. Для сохранения промежуточных значений использовать бит F0H.

Y    BIT      P1.3 ; спецификация бит порта 1

Х    BIT      P1.2

V    BIT      Р1.1

W   BIT      Р1.0

MOV С, X     ; ввод Х

ANL С,/V     ; X×

MOV F0, С   ; запоминание результата в F0

MOV С, Х     ; ввод Х

ORL С, V     ; X+V

ANL С, W    ; W (X+V)

ORL С, F0   ; (W (X+V))+(X× )

MOV Y, С     ; вывод результата

Время выполнения программы 14 мкс.

Пример 34. Организовать последовательную передачу данных из аккумулятора на 0 вывод порта 2. Пересылку вести манчестерским кодом (каждый бит кодируется двумя интервалами: первый интервал имеет инверсию бита, второй – его прямое значение):

MOV R0,#8D ; инициализация счетчика бит

LOOP: RRC    А ; (С)(сдвиг мл. бита из акк-ра в перенос)

CPL С         ; инверсия бита

MOV Р2.0, С ; передача инверсии бита

CPL С         ; восстановление бита

NOP;

NOP                ; выравнивание длины интервалов

NOP;

MOV P2.0, С ; передача прямого значения бита

DJNZ R0, LOOP ; цикл, если счетчик не нулевой

Передача начинается с младших битов. Продолжительность одного интервала 6 машинных циклов (6 мкс), время передачи одного бита – 12 мкс, время передачи байта – 96 мкс (скорость передачи 83 кбит/с, или 10,4 кбайт/с).

Пример 35. Пошаговый режим работы. Для его реализации необходимо:

- запрограммировать одно из внешних прерываний (к примеру INT0) на активизацию по уровню;

- в подпрограмме обработки прерывания ожидать последовательность «1» – «0» на входе INT0 (вывод P3.2), задаваемую, например, с помощью кнопки.

В основной программе необходимо дописать следующее:

SETB ІЕ.0     ; разрешение прерывания уровня 0

CLR TCON.0 ; прерывания разрешены по нулевому уровню

…; продолжение основной программы

Подпрограмма обработки прерывания должна закончиться следующими командами:

…; подпрограмма обработки

L1: JNB     P3.2, L1 ; ожидание уровня 1

L2: JB        P3.2, L2 ; ожидание уровня 0

RETI               ; возвращение и выполнение одной; команды основной программы; после чего снова происходит ; возвращение в подпрограмму.

Пример 36. Обращение к медленным микросхемам внешней памяти. Программным путем можно задать необходимую длительность импульсов WR и RD. Например, если сигнал  должен длиться 50 мкс, то это осуществляется так:

CLR P3.7     ; =0

MOV R3,#24D ; инициализация счетчика (2 мкс)

L0: DJNZ   R3, L0   ; цикл (24*2 мкс)

SETB P3.7     ; =1

 



2019-12-29 174 Обсуждений (0)
Битовые операции в MCS -51 0.00 из 5.00 0 оценок









Обсуждение в статье: Битовые операции в MCS -51

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (174)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)