Узнать стоимость написания работы
Оставьте заявку, и в течение 5 минут на почту вам станут поступать предложения!
Реферат

Реферат по предмету "Коммуникации и связь"


Обработка сигналов на основе MCS-51

--PAGE_BREAK--4. Битовые операции в
MCS
-51
Пример 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
5. Взаимодействие МК с объектом управления
Пример 3Опрашивание двоичного датчика, например, конечного выключателя.

Ключ подключен к входу MCS-51: порт 1, разряд 3.

WAIT0: JNB         P1.С, WAIT0; ожидание размыкания датчика

WAITC: JB          P1.3, WAITC; ожидание замыкания датчика

Пример 38.Опрашивание группы двоичных датчиков (аналогично нахождению заданного кода или комбинации датчиков).

WTCODE: MOV A,#10D        ; загрузка в А эталонного кода 00001010В

WAIT:CJNE        A, P1, WAIT; если кодовая комбинация не совпала с заданной, то ждать

EXIT:                            ; вывод

Пример 39.При достижении значения параметра равного 135, передать управление на подпрограмму с меткой LABEL А, иначе LABEL В.

MOV   A,#135D   ; загрузка значения параметра

CJNE   A, P1, LABEL В; сравнение и передача управления

LABEL А:

LABEL В:

Пример 40.Зафиксировать импульс, поступающий на вход ОМЭВМ (P1.3) и его окончание.

WAITC: JB          P1.3, WAITC; ожидание Р1.3=0

WAIT0: JNB         P1.3, WAIT0; ожидание Р1.3=1

Зафиксированный импульс имеет вид .

Для импульса обратного вида  нужно поменять WAIT0 и WAITC местами.
Таблица 1 – Минимальная продолжительность сигнала, которую определяет МК



Пример 41.Передать управление на метку TEST и установить Р3.7, если на Т0 поступит 30 импульсов.

MOV   R1,#30D   ; загрузка числа импульсов

L1:       JB             P3.4, L1      ; ожидание нуля

L0:       JNB           P3.4, L2      ; ожидание единицы

JMP     L0

L2:       DJNZ        R1, L1        ; повторить 30 раз

JMP     TEST

TEST:SETB        Р3.7  ; установление бита

Пример 42.Схема для фиксации короткого импульса: D-триггер устанавливается коротким импульсом, а сбрасывается программно, после определения наличия сигнала на входе Т0.

Пример 43.Устранение дребезжания контактов. Дребезжание состоит в том, что благодаря упругим свойствам контактов возможен отрыв контактов, который приводит к переходному процессу. При этом сигнал может быть прочитан многократно как случайная последовательность нулей и единиц. Это можно устранить с помощью триггера (рис. 6).

Чаще всего с помощью MCS51 это делается программно так, как показано на рис. 7 и рис. 8.
Реализация первого метода, количество совпадений задано в R3.

DBNC:MOV        R3,#3         ; инициализация счетчика

DBNC1: JB           P3.4, DBNC; если контакт замкнутый,
                                      ; то начать отсчет опрашиваний
                                      ; сигнала сначала

DJNZ   R3, DBNC1        ; повторять, пока значение в R3

; не станет равным 0

JB        P3.4, DBNC; конечная проверка

Временная задержка подбирается экспериментальное (1–10 мс) в зависимости от типа датчика.

Пример 44.Формирование импульсных сигналов делается по принципу включен / выключен с необходимой временной задержкой:

PULLS:ON:          ANL P1,#11110111B; выдача импульса в линию 3 порта 1

CALL  DELAY     ; временная задержка

OFF:   ORL         Р1,#00001000В; сброс

Пример 45.Считывание данных из таймера. Для устранения возможных сбоев при считывании сначала читается старший байт, потом – младший, после чего подтверждается, что старший байт за это время не изменился.

RDTIME: MOV A, TH0

MOV   R0, TL0

CJNE   A, TH0, RDTIME

MOV   R1, А

RET

Пример 46.Подсчет числа импульсов, например, радиодеталей, которые движутся по конвейеру, зафиксированных фотоэлементом (рис. 9).

MOV   TMOD,#01000000B; настройка счетчика 1

MOV   TH1,#00H; сброс счетчика

WAIT0: JB           P3.4, WAIT0; ожидание включения транспортера

SETB  TCON.6    ; запуск счетчика 1

WAITC: JNB        P3.4, WAITC; ожидание отключения транспортера

CLR    TCON.6    ; остановка счетчика 1

MOV   A.TH1       ; A ¬число деталей

EXIT:                            ; выход

Максимальное число радиодеталей – 255.

Пример 4Реализация функций времени на основе таймеров.

В MCS-51 при частоте генератора тактовых импульсов 12 МГц таймер / счетчик изменяет свое значение с частотой 1 Мгц (в режиме таймера), или при поступлении сигнала от внешнего источника через счетный вход T0, T1 (в режиме счетчика).

Если использовать таймер / счетчик в режиме 1 полного формата (16 бит), то получим задержки в границах (1 – 65536 мкс).

Программа задержки на 50 мс в MCS-51, прерывание разрешено. Организация перехода к метке NEXT при переполнении Т/С0:

ORG   0ВН          ; адреса вектора прерываний от Т/С0

CLR    TCON.4    ; остановка Т/С0

RETI                    ; выход из подпрограммы обработки прерываний

ORG   100H         ; начальный адрес программы

MOV   TMOD, #01Н; настройка Т/С0

MOV   TL0, #LOW (NOT(50000) – 1); загрузкатаймера

MOV   TH0, #HIGH (NOT(50000) – 1)

SETB  TCON.4    ; стартТ/С

SETB  IE.1           ; разрешение прерываний от Т/С0

SETB  PCON.0    ; перевод в режим холостого хода

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

Пример 48.Организация задержки программным путем:

DELAY: MOV      R2, Х          ; (R2)¬(Х)

COUNT: DJNZ R2, COUNT; декремент R2 и цикл, если не нуль

RET                     ; возвращение из подпрограммы

Пример 49.Подпрограмма задержки на 50 мс, используя Т/С0, погрешность не превышает 2 мкс.

DELAY: MOV      TMOD,#00000001B; настройка Т/С0

MOV   TH0,#HIGH (NOT(50000–16))

MOV   TL0,#LOW (NOT(50000–16))

SETB  TCON.4    ; запуск Т/С0

JNB     TCON.5,$; ожидание

ANL    TCON,#NOT(30H); остановка Т/С0, сброс TF0

RET                     ; возвращение из подпрограммы

Пример 50.Подпрограмма задержки на 1 секунду. Погрешность не больше, чем 123 мкс.

OS:      MOV        R3,#20D     ; счетчик циклов

S1:       ACALL DELAY; задержка на 50 мс

DJNZ   R3, S1       ; организация цикла

RET                     ; возвращение из подпрограммы

Пример 51.Измерение временных интервалов. При применении таймера используется вход разрешения счетчика (). Тогда измеренный сигнал подается на вход , а измерение продолжительности выполняется в Т/С0.

«Положительный» импульс:

MOV   TMOD,#00001001В; настраивание Т/С0

MOV   TH0,#0     ; сбрасывание таймера

MOV   TL0,#0


SETB  TCON.4    ; запуск Т/С0

WAIT0: JNB         P3.2, WAIT0; ожидание единичного уровня

WAITC: JB          P3.2, WAITC; ожидание нулевого уровня

CLR    TCON.4    ; остановка Т/С0

RET                     ; выход из процедуры

Управление программе должно передаваться при условии =0. Прерывание от Т/С0 и внешние от  – должны быть запрещены. По завершению программы в Т/С0 будет находиться число, пропорциональное продолжительности импульса на входе . Максимальная продолжительность импульса 65536 мкс, погрешность 1 мкс.

Если необходимо измерять большую продолжительность импульса, то можно программным путем подсчитывать число переполнений от таймера.

Пример 52.Преобразование параллельного кода в последовательный в MCS-51 сводится к передаче одного байта в буфер приемо-передатчика:

MOV   SBUF, А

Пример 53.Обратное преобразование последовательного кода в параллельный инициируется стоповым битом и выполняется аппаратно без участия программы. Основная программа должна выполнить команду

MOV   A, SBUF.

Пример 54.Преобразование однобайтовых чисел в дополнительный код и наоборот. Числа со знаком можно представить в дополнительном коде в границах от -128 к +12 Алгоритмы перевода чисел из прямого кода со знаком в дополнительный и обратное преобразование одинаковы:

DOD-PR: JNB А.7, EXIT; проверка знакового разряда

CPL    А              ; инверсия аккумулятора

ADD    A, #1         ; добавление единицы

SETB  А.7            ; установление знака

EXIT:                            ; выход

Пример 55.Преобразование чисел из одной системы исчисления в другую методом «двух счетчиков». При этом методе из начального кода отнимается, а к новому коду прибавляется единица до обнуления начального кода. Причем отнимание осуществляется в старой системе счисления, а добавление – в новой.

Программа перевода двоичного числа в двоично-десятичное.

MOV   R5, А        ; передача начального числа в R5

CLR    А              ; сброс аккумулятора

REV:   ADD         A,#1  ; добавление единицы

DA      A              ; десятичная коррекция

DJNZ   R5, REV   ; декремент начального кода и цикл, если не нуль

Результат преобразования находится в аккумуляторе.

Пример 56.Подсчет числа импульсов за заданный промежуток времени. Решается 4-я способами:

1. Программная реализация временного интервала и программный подсчет числа импульсов.

2. Программная реализация временного интервала и аппаратный подсчет числа импульсов (на внутреннем таймере / счетчике).

3. Аппаратная реализация временного интервала и программный подсчет числа импульсов.

4. Аппаратная реализация временного интервала и аппаратная реализация подсчета импульсов.

Реализация на MCS-51: в таймере-счетчике Т/С1 осуществляется подсчет числа импульсов; в Т/С0 заданный временной интервал. Датчик импульсов должен быть подключен к Т1.

TIME:  EQU         NOT(10000)+1; определение константы TIME для отсчета времени в 10 мс

MOV   TMOD,#01010001B; настройка таймеров-счетчиков:

1-й – счетчик 16 бит, 0-й – таймер

CLR    A              ; сброс аккумулятора

MOV   ТН1, А      ; сброс Т/С1

MOV   ТL1, А;

MOV   ТН0,#НІGH(ТIМE); загрузка в Т/С0 константы TIME

MOV   TL0,#LOW (TIME);

ORL    TCON,#50H; запускТ/С1 иТ/С

WAIT:JBC           TCON.5, EXIT; проверка переполнения Т/С0

SJMP  WAIT       ; цикл, если TF=0

EXIT: MOV          В, ТН1       ; (В) – (А), число импульсов за время 10 мс

MOV   A, TL1

программный команда управление микроконтроллер

    продолжение
--PAGE_BREAK--


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Современные тенденции развития журнального бизнеса
Реферат Вредное влияние телевидения
Реферат Статус профессионального бухгалтера
Реферат Программа Консультант Плюс в экономике и бухгалтерском учёте
Реферат Изучение типологических особенностей спортсменов разной специализации
Реферат Красивая грудь – символ женственности
Реферат Война и экология
Реферат Бухгалтерская отчетность предприятия 5
Реферат Референдум как институт народовластия
Реферат Особенности гендерных ролей музыкантов
Реферат Электронная цифровая подпись
Реферат Аудит основных средств 24
Реферат Проведение аудиторской проверки бухгалтерской финансовой отчетности на примере ООО ГрандСерви
Реферат Сценарий физкультурного праздника "Не нужен и клад, когда в семье лад"
Реферат Создание и внедрение новых моделей внутришкольного управления для повышения эффективности работы образовательных учреждений в Красноярском Крае