Курс лекций - Микропроцессоры

Написание программы для разрабатываемого микропроцессорного устройства - часть 3


Исходный текст программы с 50мс циклом.

Исходный текст варианта программы c 50 мс циклом приведен на рисунке 9.19. Этот вариант программы можно тщательно проверить на работоспособность на программном эмуляторе или непосредственно на собранном устройстве. При измерении тока микроконтроллера будут отчётливо видны импульсы повышенного тока с периодом 50мс.

Программа, приведенная на рисунке 9.19, реализует генератор эталонных интервалов времени с периодом 50мс. Нам же требуется генератор с периодом 1с. То есть, нужен ещё один делитель с коэффициентом деления 20. Его можно реализовать на одиночной ячейке внутренней памяти микроконтроллера.

;-------------ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ---------------------------------- Delit equ 8 ;Номер ячейки памяти делителя NachStek equ 8 ;Номер начальной ячейки памяти стека ;-------------СБРОС МИКРОКОНТРОЛЛЕРА--------------------------------- ORG 0 jmp init ;Переход на начало выполнения программы ;-------------ВЕКТОР ПРЕРЫВАНИЯ ТАЙМЕРА T0--------------------------- ORG 0Bh mov TH0, #HIGH(-50000) ;Загрузить старший байт таймера mov TL0, #LOW(-50000) ;Загрузить младший байт таймера reti ;-------------ИНИЦИАЛИЗАЦИЯ МИКРОКОНТРОЛЛЕРА------------------------- init: mov SP,#NachStek ;Изменить размер стека call Timer0_Init ;Настроить таймер T0 на прерывания с периодом 50мс mov Delit,#20 ;Настроить делитель на коэффициент деления 20 ;-------------ОСНОВНАЯ ПРОГРАММА МИКРОКОНТРОЛЛЕРА-------------------- Begin: DJNZ Delit,Sleep ;Если прошла одна секунда, то mov Delit,#20 ;настроить делитель на коэффициент деления 20 call Clock ;и вызвать подпрограмму реализации часов. Sleep: orl PCON,#1;Перевести микроконтроллер в пониженный режим ;потребления тока и подождать переполнения таймера jmp begin ;Переход на начало выполнения программы ;-------------КОНЕЦ ОСНОВНОЙ ПРОГРАММЫ МИКРОКОНТРОЛЛЕРА-------------- ;******************************************************************** ;Подпрограмма реализации часов ;******************************************************************** Clock: ret

Рисунок 9.20.


- Начало -  - Назад -  - Вперед -