
- •Содержание
- •Список сокращений
- •Введение
- •Структура микроконтроллера
- •Процессор микроконтроллера
- •Адресное пространство микроконтроллера
- •Подключение erom и eram к микроконтроллеру
- •Периферийные устройства микроконтроллера
- •Параллельные порты ввода-вывода
- •Таймер-счетчик т/с0
- •Таймер-счетчик т/с1
- •Последовательный порт
- •Контроллер прерываний
- •Система команд микроконтроллера
- •Общие сведения о языке Ассемблер для микроконтроллеров стандарта mcs-51 и о программном пакете фирмы 2500 a.D.
- •Синтаксис языка Ассемблер
- •Определители основания системы счисления
- •Макроопределения
- •Сообщения о некоторых ошибках ассемблирования
- •Рекомендуемая процедура инициализации микроконтроллера
- •Типичные применения микроконтроллеров
- •Ввод информации с датчиков
- •Опрос двоичного датчика
- •Ожидание события
- •Ожидание импульсного сигнала
- •Устранение дребезга контактов
- •Подсчет числа импульсов
- •Подсчет числа импульсов за интервал времени между двумя событиями
- •Подсчет числа импульсов за заданный промежуток времени
- •Опрос группы двоичных датчиков
- •Ввод информации с матричной клавиатуры
- •Вывод управляющих сигналов из микроконтроллера
- •Формирование статических сигналов
- •Формирование импульсных сигналов
- •Генерация меандра
- •Формирование сигнала с заданной скважностью
- •Вывод и отображение информации
- •Динамический вывод информации на дисплей из семисегментных индикаторов
- •Реализация функций реального времени
- •Программное формирование временной задержки
- •Формирование временной задержки с использованием таймеров
- •Измерение временных интервалов
- •Преобразование кодов
- •Преобразование унитарного кода в двоичный позиционный
- •Преобразование двоичного позиционного кода в унитарный
- •Преобразование кодов из одной системы счисления в другую
- •Преобразование данных из параллельного кода в последовательный и обратно
- •Цифро-аналоговое преобразование
- •Аналого-цифровое преобразование
- •Метод последовательного приближения
- •Метод двойного интегрирования
- •Операции с памятью
- •Тестирование озу
- •Программа тестирования пзу
- •Обмен данными по шине i2с
- •Общие положения и введение в логику работы шины i2с
- •Пример обмена данными по шине i2c
- •Приём данных по протоколу Centronics
- •Литература
Формирование временной задержки с использованием таймеров
Недостатком программного способа реализации временной задержки является нерациональное использование ресурсов МК: во время формирования задержки МК практически простаивает, так как не может решать никаких задач управления объектом. В то же время аппаратные средства МК позволяют реализовать временные задержки на фоне выполнения основной программы.
Временные задержки можно получить при использовании таймера-счетчика.
Если использовать таймер-счётчик в режиме таймера, то временную задержку можно реализовать следующим образом (листинг 4.24):
Листинг 4.24 – Программа временной задержки с использованием таймера-счётчика
F:
COUNT:
|
.EQU 18432000
.EQU 65535-(F/(1000*12))
.ORG 0000H JMP BEGIN
.ORG 000BH
JMP TIME |
; Частота кварцевого ; резонатора ; Число, определяющее ; время счёта таймера от ; момента его загрузки до ; переполнения (1 мс)
; Адрес начала программы ; Переход к основной части
; Адрес обработки ; прерывания таймера ; Переход на процедуру ; обработки прерывания |
BEGIN:
|
MOV SP, #30H
MOV IE, #00H CLR TR0 CLR 20H.0 MOV R0, #10
MOV TL0, #<COUNT MOV TH0, #>COUNT
MOV TMOD, #01H SETB TR0 JNB 20H.0, $ CLR TR0 … |
; Переопределение ; вершины стека ; Запрет прерываний ; Запрет счёта ; Сброс флага конца паузы ; Загрузка счетчика ; прерываний ; Загрузка регистров таймера ; счетчика TC0
;Настройка таймера-счетчика ; на режим 1 ; Ожидание конца паузы ; Запрещение работы таймера ; Продолжение программы ; В любом месте программы ; достаточно очистить флаг ; 20h.0, загрузить числа в ; TL0,TL1 и запустить счет, ; чтобы получить требуемую ; задержку |
TIME:
EXIT: |
CLR TR0
MOV A, TL0 ADD A, #13 ADD A, #<COUNT MOV TL0, A MOV A, TH0 ADDC A, #>COUNT MOV TH0, A
SETB TR0 DJNZ R0, EXIT
SETB 20H.0 RETI |
; Запрещение работы таймера
; Добавление к содержимому ; регистров TL0 TH0 ; коэффициента счёта и ; времени, затраченного на ; выполнение данного ; суммирования
; Разрешение работы таймера ; Декремент счётчика ; прерываний и выход из ; прерывания, если значение ; счётчика не равно нулю ; Установка флага конца паузы ; Выход из прерывания |