При тактовой частоте 6 МГц каждый машинных цикл выполняется за 2,5 мкс. Таким образом, подпрограмма выполняется за время 5+5+5X+5=15+5X мкс. Для реализации временной задержки 100 мкс число X = (100-15)/5 = 17.
Пример 4.4
. Временная задержка большой длительности. В качестве примера рассмотрим подпрограмму, реализующую временную задержку 100 мс:
DELAY: MOV R1,#84 ; загрузка X
LOOPEX: MOV R2,#236 ; загрузка Y
LOOPIN: DJNZ R2,LOOPIN ; декремент R2 и внутренний цикл,
; если R2 не равно нулю
DJNZ R1,LOOPEX ; декремент R1 и внешний цикл,
; если R1 не равно нулю
MOV R3,#4 ; точная подстройка временной задержки
LOOPAD: DJNZ R3,LOOPAD ;
RET ;
Числа X и Y выбираются из соотношения T = 5+5+X(5+5Y+5)+5, где T – реализуемый временной интервал в микросекундах. Максимальный временной интервал, реализуемый таким образом, при X=Y=255 составляет 327,69 мс, т.е. приблизительно 0,3 с.
В примере два вложенных цикла реализуют временную задержку длительностью 15+84(10+5*236)=99975 мкс, а дополнительный цикл LOOPAD реализует задержку 25 мкс и тем самым обеспечивает точную подстройку временного интервала.
Временная задержка длительностью 1 с. Секунда является очень большим интервалом времени по сравнению с частотой тактирования микроконтроллера. Такие задержки сложно реализовать методом вложенных циклов, поэтому их обычно набирают из точно подстроенных задержек меньшей длительности. Например, задержку в 1 с можно реализовать десятикратным вызовом подпрограммы, реализующей задержку 100 мс:
ONESEC: MOV R3,#10 ; загрузка в R3 числа вызовов
; подпрограммы DELAY
LOOP: CALL DELAY ; задержка 100 мс
DJNZ R3,LOOP ; декремент R3 и цикл, если R3 не равно 0
Погрешность программы составляет 55 мкс.
Пример 4.5
. Формирование временной задержки на основе таймеров. Недостатком программной реализации временной задержки является нерациональное использование ресурсов микроконтроллера: во время формирования задержки микроконтроллер практически простаивает, так как не может решать задачи управления объектом. В то же время аппаратурные средства микроконтроллера позволяют реализовать временные задержки на фоне основной программы работы.
При использовании таймера в МК48 можно получить временные задержки длительностью от 80 мкс до 20 мс.
Например, для реализации временной задержки 240 мкс необходимо выполнить следующие действия:
MOV A,#NOT(240/80-1) ; загрузка таймера
MOV T,A ;
STRT T ; запуск таймера
EN TCNTI ; разрешение прерывания
Появление сигнала прерывания от таймера соответствует истечению временного интервала 240 мкс. Погрешность будет составлять 7,5 мкс (время выполнения команды передачи управления по вектору прерывания и команды STOP TCNT).
Вывод: изучил структурную схему однокристального микроконтроллера ВЕ48, его центральный процессор, организацию памяти программ и данных, средства расширения памяти программ и данных; рассмотрел систему команд по пересылке и обработке данных; ознакомился с приведенными ниже примерами программ на языке ассемблера; произвел ввод, отладку и трансляцию в объектный код этих программ; выполнил программы по шагам с просмотром результатов выполнения в регистрах и оперативной памяти. Перейти на страницу: 2 3 4 5 6 7
Другое по теме:
Синтез системы автоматического регулирования скорости вращения диска В настоящее время оптические дисковые системы нашли множество применений. Возможность записи значительного объема информации и простота тиражирования делает оптический диск очень привлекательным. В сфере записи и хранения данных системы с прямой ...