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


Взаимодействие МК с объектом управления



2019-12-29 212 Обсуждений (0)
Взаимодействие МК с объектом управления 0.00 из 5.00 0 оценок




 

Пример 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 – Минимальная продолжительность сигнала, которую определяет МК

Подключение датчика к выводам

Минимальная длительность импульса, мкс

(отрицательного) (положительного)
P1, P2, BUS/P0 10/2 12,5/2
T0, Т1 5/2 5/2
ЗПР 10/2 5/2

 

Пример 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 ; старт Т/С0

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 и Т/С0

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

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

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

MOV A, TL1

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

Реализация ЦАП и АЦП

 

Пример 5 Преобразование информации из цифровой формы в аналоговую осуществляется с помощью подключения интегральных микросхем цифроаналогового преобразователя (ЦАП) к одному из портов MCS-51. Выдача информации при этом осуществляется с помощью одной команды, например: MOV P1, А.

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

Пример 58. Аналого-цифровой преобразователь (АЦП) последовательного приближения (рис. 10).

 

Рисунок 10 – Реализация АЦП последовательного приближения

 

МК выдает через порт P1 байт данных, что превращается в аналоговую форму и сравнивается с входным сигналом компаратора, после чего анализируется результат сравнения. В зависимости от значения сигнала на входе Т0 MCS-51 или оставляет старший бит в единичном состоянии, или сбрасывает в 0. Потом аналогично проверяются все остальные биты.

R4 – регистр цифрового эквивалента;

R3 – регистр бегущего значения 1 для указания весового бита.

CONVRT: MOV R5#08Н ; загрузка счетчика циклов

MOV R3,#01Н

MOV R4,#00Н

LOOP: MOV   А, R3    ; сдвиг R3 вправо на 1 разряд

RR A

MOV R3, А

ORL А, R4   ; логическое ИЛИ весового разряда и цифрового эквивалента

MOV Р1, А   ; выдача в Р1

JBC T0, ENDUGH; если Т0=1, то аналоговый эквивалент выданного байта больше чем UBX и сохраняется в R4, если наоборот, то установленный бит запоминается в R4

MOV R4, А

ENDUGH: DJNZ R5, LOOP; декремент R5 и если не 0, то переход к анализу следующего бита

Пример 59. Реализация АЦП методом двойного интегрирования.

Метод двойного интегрирования заключается в следующем (рис. 11). Сначала интегрируется входной опорный сигнал ЕОП. На выходе интегратора устанавливается отрицательный потенциал, после чего интегрируется входной аналоговый сигнал за строго определенное время Т1. Т1 отсчитывается от момента перехода сигнала интегратора через 0. Потом подается UОП и измеряется время интегрирования Т2, которое пропорционально входному сигналу.

 

Рисунок 11 – Реализация АЦП двойного интегрирования

 

Максимальное время преобразования для точности 16 разрядов 2´65.536 мс. Если необходима точность преобразования 8 разрядов, то Т/С0 переключается в режим 8-битного таймера, а время преобразования составляет 2´256 мкс.

 

Рисунок 12 – Временные диаграммы сигналов АЦП
двойного интегрирования

 

MOV TMOD,#01H; настройка Т/С0 на режим 16 бит

MOV TH0,#HIGH (NOT(T1)+1); загрузка Т/С0

MOV TL0,#LOW (NOT(T1)+1)

SETB P1.1     ; настройка Р1.1 на ввод

SETB Pl.0      ; подача ЕОП на интегратор

WAIT: JB        P1.1, WAIT; ожидание появления на выходе интегратора отрицательного уровня сигнала

CLR P1.0     ; подача UBX на интегратор

WAITT0: JNB P1.1, WAIT0; ожидание момента Т0

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

WAITT1: JNB TCON5, WAITT1; ожидание момента Т1

SETB P1.0     ; подача ЕОП на интегратор и начало обратного интегрирования

WAITT2: JB   P1,1, WAITT2; ожидание момента Т2

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

CLR TCON.5 ; сброс флажка TF0

MOV В, TH0 ; формирование результата в регистровой паре А, В

MOV A, TL0

 




2019-12-29 212 Обсуждений (0)
Взаимодействие МК с объектом управления 0.00 из 5.00 0 оценок









Обсуждение в статье: Взаимодействие МК с объектом управления

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

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

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



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

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

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

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

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

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



(0.008 сек.)