- •Содержание
- •Список сокращений
- •Введение
- •Структура микроконтроллера
- •Процессор микроконтроллера
- •Адресное пространство микроконтроллера
- •Подключение erom и eram к микроконтроллеру
- •Периферийные устройства микроконтроллера
- •Параллельные порты ввода-вывода
- •Таймер-счетчик т/с0
- •Таймер-счетчик т/с1
- •Последовательный порт
- •Контроллер прерываний
- •Система команд микроконтроллера
- •Общие сведения о языке Ассемблер для микроконтроллеров стандарта mcs-51 и о программном пакете фирмы 2500 a.D.
- •Синтаксис языка Ассемблер
- •Определители основания системы счисления
- •Макроопределения
- •Сообщения о некоторых ошибках ассемблирования
- •Рекомендуемая процедура инициализации микроконтроллера
- •Типичные применения микроконтроллеров
- •Ввод информации с датчиков
- •Опрос двоичного датчика
- •Ожидание события
- •Ожидание импульсного сигнала
- •Устранение дребезга контактов
- •Подсчет числа импульсов
- •Подсчет числа импульсов за интервал времени между двумя событиями
- •Подсчет числа импульсов за заданный промежуток времени
- •Опрос группы двоичных датчиков
- •Ввод информации с матричной клавиатуры
- •Вывод управляющих сигналов из микроконтроллера
- •Формирование статических сигналов
- •Формирование импульсных сигналов
- •Генерация меандра
- •Формирование сигнала с заданной скважностью
- •Вывод и отображение информации
- •Динамический вывод информации на дисплей из семисегментных индикаторов
- •Реализация функций реального времени
- •Программное формирование временной задержки
- •Формирование временной задержки с использованием таймеров
- •Измерение временных интервалов
- •Преобразование кодов
- •Преобразование унитарного кода в двоичный позиционный
- •Преобразование двоичного позиционного кода в унитарный
- •Преобразование кодов из одной системы счисления в другую
- •Преобразование данных из параллельного кода в последовательный и обратно
- •Цифро-аналоговое преобразование
- •Аналого-цифровое преобразование
- •Метод последовательного приближения
- •Метод двойного интегрирования
- •Операции с памятью
- •Тестирование озу
- •Программа тестирования пзу
- •Обмен данными по шине i2с
- •Общие положения и введение в логику работы шины i2с
- •Пример обмена данными по шине i2c
- •Приём данных по протоколу Centronics
- •Литература
Метод последовательного приближения
При использовании данного способа преобразования аналогового сигнала в код, из дополнительной аппаратуры в микроконтроллерном устройстве используются ЦАП и сравнивающий компаратор. Схема включения приведена на рисунке 4.22.
Рисунок 4.22 – Структурная схема аналого-цифрового преобразования по методу последовательного приближения
Микроконтроллер через порт Р1, работающий в режиме вывода, передает двоичные коды в ЦАП, выход которого соединяется с одним из входов компаратора. На второй вход компаратора подаётся преобразуемое напряжение. Сигнал с выхода компаратора подаётся на вход микроконтроллера.
На выходе компаратора формируется логический 0, если напряжение на выходе ЦАП (Uцап) меньше преобразуемого напряжения (Ux). Если Uцап>Ux, на выходе компаратора формируется логическая единица.
Программа аналого-цифрового преобразования (листинг 4.37) работает следующим образом: МК выдает через порт P1 байт данных, преобразуемый ЦАП в аналоговый сигнал Uцап и сравниваемый с входным аналоговым сигналом Ux, а затем анализирует результат сравнения. В зависимости от значения сигнала на входе INT0 МК или оставляет старший бит выводимого байта в 1, если Uцап<Ux, или сбрасывает его в 0, если Uцап>Ux. Затем аналогичным образом в порядке убывания весовых значений проверяется каждый бит выводимого байта.
Листинг 4.37 – Программа аналого-цифрового преобразования методом последовательного приближения
NEXT:
ENOUGH: |
.ORG 0000H MOV R0,#08H MOV R1, #01H MOV R2, #00H
MOV A, R1 RR A MOV R1, A ORL A, R2
MOV P1, A
JB INT0, ENOUGH
MOV R2, A
DJNZ R0, NEXT |
; Адрес начала программы ; Инициализация счётчика битов ; Инициализация регистра сдвига ; Инициализация регистра ; результата
; Ротация регистра сдвига
; Логическое сложение регистра ; сдвига и регистра результата ; (Результат сохраняется в ; аккумуляторе) ; Выдача в порт результата ; сложения ; Проверка результата сравнения ; Если на выходе компаратора 1, ; то регистр результата не ; изменяется (переход), ; иначе результат логического ; сложения сохраняется в R2 ; Переход на начало цикла |
Метод двойного интегрирования
Схема подключения к МК дополнительной аппаратуры показана на рисунке 4.23, временные диаграммы, поясняющие принцип метода двойного интегрирования, приведены на рисунке 4.24.
Рисунок 4.23 – Структурная схема аналого-цифрового преобразования по методу двойного интегрирования
Рисунок 4.24 – Временные диаграммы, поясняющие принцип метода двойного интегрирования
Первоначально на вход интегратора подается отрицательное напряжение Eоп. При этом на выходе интегратора через некоторое время установится отрицательный уровень, а на выходе компаратора будет сформирован сигнал логического 0.
Процесс преобразования состоит из двух этапов. Сначала производится интегрирование входного аналогового сигнала в течение строго определенного времени Т1. Отсчет интервала Т1 производится от момента t0 перехода напряжения на выходе интегратора через нуль. Входной преобразуемый сигнал (для данной схемы) должен быть положительным. Затем в момент времени t1 на вход интегратора подается опорное отрицательное напряжение Eоп и измеряется время интегрирования Т2, которое и будет пропорционально входному напряжению (Uвх).
Время Т1 выбирается так, чтобы при максимальном входном напряжении интегратор не вошел в насыщение.
Листинг 4.38 содержит программу аналого-цифрового преобразования методом двойного интегрирования. После выполнения программы результат сохраняется в регистрах TH0:TL0.
Листинг 4.38 – Программа аналого-цифрового преобразования методом двойного интегрирования
TIME: |
.EQU #7FFFH |
; Время интегрирования |
|
|
|
|
.ORG 0000H |
; Адрес начала программы |
|
CLR EA |
; Запрет всех прерываний |
|
MOV TMOD,#01H |
; Настройка таймер-счётчика Т/С0 |
|
MOV TL0, #<TIME MOV TH0, #>TIME |
; Загрузка Т/С0 |
|
SETB P1.1 |
; Настройка Р1.1 на ввод |
|
SETB P1.0 |
; Подача Еоп на вход интегратора |
|
JB P1.1, $ |
; Ожидание появления на выходе ; интегратора отрицательного ; уровня |
|
CLR P1.0 JNB P1.1, $ SETB TR0 JNB TF0,$ |
; Подача Uвх на вход интегратора ; ожидание момента Т0 ; Запуск Т/С0 ; Ожидание момента Т1 |
; НАЧАЛО ОБРАТНОГО ИНТЕГРИРОВАНИЯ |
||
|
SETB P1.0 |
; Подача Еоп на вход интегратора |
|
MOV TL0, #00H MOV TH0, #00H JNB P1.1, $
CLR TR0 … |
; Загрузка Т/С0
; Ожидание появления на выходе ; интегратора отрицательного ; уровня ; Остановка счётчика Т/С0 |
Контрольные вопросы
Для чего необходимо преобразование кодов в микроконтроллерных устройствах?
Преобразование каких кодов наиболее часто выполняется микроконтроллером?
Для чего необходим двоично-десятичный код?
Как организуется преобразование из двоичного кода в двоично-десятичный и обратно?
Для чего необходимо преобразование последовательного кода в параллельный и обратно?
Что такое цифро-аналоговое преобразование и для чего оно нужно?
Опишите методы аналого-цифрового преобразования, применяемые в микроконтроллерных устройствах.