- •Содержание
- •Список сокращений
- •Введение
- •Структура микроконтроллера
- •Процессор микроконтроллера
- •Адресное пространство микроконтроллера
- •Подключение erom и eram к микроконтроллеру
- •Периферийные устройства микроконтроллера
- •Параллельные порты ввода-вывода
- •Таймер-счетчик т/с0
- •Таймер-счетчик т/с1
- •Последовательный порт
- •Контроллер прерываний
- •Система команд микроконтроллера
- •Общие сведения о языке Ассемблер для микроконтроллеров стандарта mcs-51 и о программном пакете фирмы 2500 a.D.
- •Синтаксис языка Ассемблер
- •Определители основания системы счисления
- •Макроопределения
- •Сообщения о некоторых ошибках ассемблирования
- •Рекомендуемая процедура инициализации микроконтроллера
- •Типичные применения микроконтроллеров
- •Ввод информации с датчиков
- •Опрос двоичного датчика
- •Ожидание события
- •Ожидание импульсного сигнала
- •Устранение дребезга контактов
- •Подсчет числа импульсов
- •Подсчет числа импульсов за интервал времени между двумя событиями
- •Подсчет числа импульсов за заданный промежуток времени
- •Опрос группы двоичных датчиков
- •Ввод информации с матричной клавиатуры
- •Вывод управляющих сигналов из микроконтроллера
- •Формирование статических сигналов
- •Формирование импульсных сигналов
- •Генерация меандра
- •Формирование сигнала с заданной скважностью
- •Вывод и отображение информации
- •Динамический вывод информации на дисплей из семисегментных индикаторов
- •Реализация функций реального времени
- •Программное формирование временной задержки
- •Формирование временной задержки с использованием таймеров
- •Измерение временных интервалов
- •Преобразование кодов
- •Преобразование унитарного кода в двоичный позиционный
- •Преобразование двоичного позиционного кода в унитарный
- •Преобразование кодов из одной системы счисления в другую
- •Преобразование данных из параллельного кода в последовательный и обратно
- •Цифро-аналоговое преобразование
- •Аналого-цифровое преобразование
- •Метод последовательного приближения
- •Метод двойного интегрирования
- •Операции с памятью
- •Тестирование озу
- •Программа тестирования пзу
- •Обмен данными по шине i2с
- •Общие положения и введение в логику работы шины i2с
- •Пример обмена данными по шине i2c
- •Приём данных по протоколу Centronics
- •Литература
Типичные применения микроконтроллеров
Ввод информации с датчиков
Опрос двоичного датчика
В устройствах и системах логического управления объектами события фиксируются с использованием датчиков цифрового и аналогового типов. Наибольшее распространение имеют двоичные датчики, например, концевые выключатели, которые подключаются к МК так, как показано на рисунке 4.1. Все нижеприведенные листинги написаны для сигнала датчика с рисунка 4.1б.
а) структура датчика; б) сигнал на выходе
Рисунок 4.1 – Концевой датчик |
Ожидание события
Типовая процедура ожидания события состоит из следующих действий: ввода сигнала от датчика, анализа значения сигнала и передачи управления в зависимости от состояния датчика. Программа, реализующая эту процедуру, зависит от того, каким образом датчик подключен к МК. Он может быть подключен к одной из линий портов МК или к специальным входам прерываний (INT0, INT1).
Например, при подключении датчика к третьему разряду порта P1 программа реализации процедуры ожидания размыкания, а затем замыкания контакта представлена в листинге 4.1):
Листинг 4.1 – Регистрации события |
||
|
.ORG 0000H SETB P1.3
|
; Адрес начала программы ; Настройка разряда 3 порта ; P1 на ввод сигнала |
MAIN:
|
JNB P1.3, $
…
JB P1.3,$
…
JMP MAIN
|
; Ожидание размыкания ; контакта датчика ; Подпрограмма обработки ; размыкания ; Ожидание замыкания ; контакта датчика ; Подпрограмма обработки ; размыкания ; Переход на регистрацию ; размыкания контакта |
При подключении датчика к входу INT0, в режиме прерывания возможно отслеживание только замыкания контакта. Программа, реализующая регистрацию замыкания контакта, имеет следующий вид (листинг 4.2):
Листинг 4.2 – Регистрация события с использованием входа прерывания |
||
|
.ORG 0000H JMP BEGIN |
; Адрес начала программы ; Переход к основной части ; программы |
|
.ORG 0003H
JMP EXT0 |
; Адрес процедуры ; обработчика прерываний ; по входу INT0 ; Переход к процедуре ; обработчика |
BEGIN: |
MOV TCON, #01H
|
; Настройка контроллера на ; режим прерываний по ; заднему фронту сигнала ; на входе INT0 |
|
MOV IE, #81H |
; Разрешение обработки ; прерываний по входу INT0 |
|
JMP $ |
; Остановка основной ; программы («команда ; перехода на саму себя») ; для ожидания прерывания |
EXT0: |
…
|
; Подпрограмма обработки ; замыкания контакта |
|
RETI |
; Выход из процедуры ; обработки прерывания |
Следует отметить, что:
– режим прерывания целесообразно использовать для опроса особо важных датчиков с целью уменьшения времени реакции на исключительную ситуацию в объекте управления. При этом соответственно должна быть спроектирована схема;
– использование прерываний позволяет «избавить» основную программу от необходимости регулярно опрашивать и анализировать состояние порта, так как при использовании прерываний этот процесс реализован аппаратно, а «высвободившееся» время может быть использовано для выполнения других операций.