Преобразование кодов (1086952), страница 2
Текст из файла (страница 2)
В МК48 для приема последовательного кода удобно использовать тестовый вход Т0. Опрос входа Т0 повторяется через время Т, равное периоду представления бита и смещенное на полпериода относительно его начала. Для синхронизации приема/передачи подпрограмма DELAYT приемника должна реализовать ту же самую задержку, что и подпрограмма DELAYT передатчика:
;версия для МК48
WAIT : |
|
|
Поскольку в системе команд МК48 отсутствует команда установки флага переноса С, установка С выполняется в два этапа: сначала сброс, потом инверсия. Удобно осуществить сброс флага до команды анализа вводимого бита, тогда, если принятый бит является нулем, значение С сохраняется, если единицей - инвертируется.
В МК51 прием последовательного кода в УАПП и его преобразование в параллельный код инициируются старт-битом и выполняются аппаратурными средствами без участия программы. Основная программа МК51 должна только считать содержимое буфера УАПП после завершения приема очередного байта.
Преобразование кодов
3. Цифро-аналоговые и аналого-цифровые преобразования
Цифро-аналоговое преобразование. Преобразование информации из цифровой формы в аналоговую осуществляется путем подключения БИС ЦАП к одному из портов МК. Выдача аналогового управляющего воздействия в этом случае сводится к одной команде, например OUTL Р1, A. При этом на выходе ЦАП появится напряжение (ток), пропорциональное двоичному коду, загруженному в порт 1.
Некоторые объекты управления могут требовать непрерывного управляющего воздействия сложной формы. Для реализации такого воздействия в МК используются цифровые методы интегрирования: на каждом интервале времени dt непрерывная функция изменяется ее средним дискретным значением. Таким образом, управляющее воздействие становится ступенчатым (рис.6.12) и программа его формирования может быть реализована с использованием процедур выдачи кода и временной задержки заданной длительности.
Если предположить, что для управления некоторым объектом требуется сформировать управляющее воздействие, показанное на рис. 6.12, с периодом дискретизации 100 мкс, то прежде всего в ПП следует сформировать таблицу (TABL) двоичных эквивалентов дискретных значений функции для каждого из периодов дискретизации. Если допустить, что длина TABL в байтах хранится в ее первом байте, а выводимые из таблицы двоичные коды не требуют масштабирования, то программа формирования управляющего воздействия в МК48 будет иметь вид:
FANCNV: |
|
|
Аналого-цифровое преобразование. Преобразование аналогового сигнала от датчика в цифровой код, принимаемый и обрабатываемый в МК, можно осуществить несколькими способами:
1) аппаратурным на основе БИС АЦП, подключаемой к порту МК. В этом случае МК только инициирует АЦП и через заданные периоды дискретизации считывает из него цифровой код. Данный способ характеризуется самым высоким быстродействием, но требует использования БИС АЦП, что далеко не во всех применениях МК является оправданным ;
2) аппаратурно-программным на основе БИС ЦАП и программы взвешивания бит (последовательных приближений, побитного уравновешивания) .Данный способ характеризуется хорошим быстродействием и требует использования относительно простых и дешевых микросхем ЦАП и операционного усилителя;
3) программно-аппаратурным на основе метода двойного интегрирования. Это самый дешевый, но и наиболее медленный способ; может обеспечить достижение очень высокой точности преобразования. Из дополнительного оборудования требуются два операционных усилителя и аналоговый мультиплексор на два входа;
4) аппаратурно-программным на основе использования преобразователя <<напряжение-->частота>> и программы измерения периода сигнала.
Наибольший практический интерес представляют способы 2 и 3, так как их использование обеспечивает получение высоких технико-экономических характеристик МК-систем относительно простыми средствами.
Метод последовательных приближений. Из дополнительной аппаратуры в МК-устройстве используются интегральные ЦАП на восемь входов и сравнивающий операционный усилитель (компаратор) , включенные так, как показано на рис.6.13.
На выходе компаратора формируется сигнал 0, если Uцап<Uвх, и сигнал 1, если Uцап>Uвх. Микроконтроллер через порт Р1, работающий в режиме вывода, передает двоичные коды в ЦАП, выход которого подсоединяется к входу "плюс" компаратора. Выход компаратора (двоичный сигнал) заводится на вход тестирования T0.
Программа аналого-цифрового преобразования работает следующим образом: МК выдает через порт 1 байт данных, преобразуемый ЦАП в аналоговый сигнал Uцап и сравниваемый с входным аналоговым сигналом Uвх, а затем анализирует результат сравнения. В зависимости от значения сигнала на входе Т0 МК или оставляет старший бит выводимого байта в 1, если Uцап>Uвх, или сбрасывает его в 0, если Uцап<Uвх . Затем аналогичным образом в порядке убывания весовых значений проверяется каждый бит выводимого байта:
;версия для МК48
;R4 - регистр цифрового эквивалента
;R3 - регистр бегущей страницы для указания
; текущего взвешиваемого бита
CONVRT: MOV R5,#08H ;загрузка счетчика циклов
MOV R3,#1
MOV R4,#0
LOOP : MOV A,R3 ;сдвиг (R3) вправо на 1 разярд
RR A
MOV R3,A
ORL A,R4 ;взвешивание текущего разряда
OUTL P1,A ;выдача промежуточного цифрового
; эквивалента на ЦАП
JT0 ENOUGH ;если Т0=1,то выданный байт больше
;двоичного эквивалента UBX, и
; сохраняется старое значение R4
; если Т0=0,то установленный бит
MOV R4,A ; запоминается в регистре R4
ENOUGH: DJNZ R5,LOOP ;декремент R5 и,если не нуль,
;то переход к анализу
;следующего(j-1)-го бита
Метод двойного интегрирования. Схема подключения к МК дополнительной аппаратуры показана на рис.6.14.
Первоначально на вход интегратора подается положительное напряжение Eоп. При этом на выходе интегратора через некоторое время установится отрицательный уровень, а на выходе компаратора будет сформирован сигнал 0. Процесс преобразования состоит из двух этапов. Сначала производится интегрирование входного аналогового сигнала в течение строго определенного времени Т1. Отсчет интервала Т1 производится от момента t0 перехода напряжения на выходе интегратора через нуль. Входной преобразуемый сигнал (для данной схемы) должен быть отрицательного напряжения. Затем в момент времени t1, на вход интегратора подается опорное напряжение Eоп (противоположной полярности) и измеряется время интегрирования Т2, которое и будет пропорционально входному напряжению (Uвх).
Время Т1 (период первого интегрирования) выбирается так, чтобы при максимальном входном напряжении (Uвх.макс.= -Еоп) интегратор не вошел в насыщение :
;версия для МК51
MOV TMOD,#01H ;настройка Т/С0 на
;режим 16 бит
MOV TH0,#HIGH(NOT(T1)+1);загрузка Т/С0
MOV TL0,#LOW(NOT(T1)+1)
SETB P1.1 ;настройка Р1.1 на ввод
SETB P1.0 ;подача Еоп на вход
;интегратора
WAIT : JB P1.1,WAIT ;ожидание появление на
;выходе интегратора
;отрицательного уровня
CLR P1.0 ;подача Uвх на вход
;интегратора
WAITT0: JNB P1.1,WAITT0 ;ожидание момента Т0