Технология цифровой связи

Проектирование цифровой линии

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

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 Перейти на страницу: 1 2 3 4


Другое по теме:

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