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


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


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

Для выделения переменной воспользуемся директивой equ. Выделим для делителя ячейку с адресом 8. Это ячейка находится непосредственно после нулевого банка регистров. Кроме того, теперь потребуется изменить первоначальное значение указателя стека, равное 8, иначе при первом же вызове подпрограммы содержимое делителя будет уничтожено. Новый вариант программы приведен на рисунке 9.20.

В этом тексте не приведена подпрограмма инициализации таймера, так как она не отличается от приведенной ранее. Подпрограмма-заглушка счетчика секунд вызывается точно один раз в секунду. В этой подпрограмме-заглушке можно разместить счётчик секунд, но для его работы естественно потребуется ещё одна ячейка памяти.

Учитывая, что программа изменится незначительно, приведем исходный текст только изменённых участков программы. Эти участки программы приведены на рисунке 9.20. В первой части объявляется переменная SEC будет осуществляться счёт секунд. Во второй части этой переменной присваивается первоначальное значение, а переключение счётчика производится непосредственно в подпрограмме Clock

;-------------ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ---------------------------------- Delit equ 8 ;Номер ячейки памяти делителя SEC equ 9 ;Номер ячейки памяти счётчика секунд NachStek equ 9 ;Номер начальной ячейки памяти стека ... ;-------------ИНИЦИАЛИЗАЦИЯ МИКРОКОНТРОЛЛЕРА------------------------- init: mov SP,#NachStek ;Изменить размер стека call Timer0_Init ;Настроить таймер T0 на прерывания с периодом 50мс mov Delit,#20 ;Настроить делитель на коэффициент деления 20 mov SEC,#60 ;Настроить счётчик секунд на коэффициент деления 60 ... ;******************************************************************** ;Подпрограмма реализации часов ;******************************************************************** Clock: DJNZ SEC,ExitClock;Если прошла одна минута, то mov SEC,#60 ;настроить счётчик секунд на коэффициент деления 60 ExitClock: ret

Рисунок 9.21. Исходный текст участков программы, отвечающих за организацию счётчика секунд.




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