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


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


Исходный текст программы с подпрограммой реализации часов приведен на рисунке 9.23.

;-------------ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ---------------------------------- Delit equ 8 ;Номер ячейки памяти делителя SEC equ 9 ;Номер ячейки памяти счётчика секунд MIN equ 10 ;Номер ячейки памяти счётчика минут Chas equ 11 ;Номер ячейки памяти счётчика минут NachStek equ 11 ;Номер начальной ячейки памяти стека ... ;-------------ИНИЦИАЛИЗАЦИЯ МИКРОКОНТРОЛЛЕРА------------------------- init: mov SP,#NachStek ;Изменить размер стека call Timer0_Init ;Настроить таймер T0 на прерывания с периодом 50мс mov Delit,#20 ;Настроить делитель на коэффициент деления 20 mov SEC,#60 ;Настроить счётчик секунд на коэффициент деления 60 mov MIN,#0 ;Обнулить счётчик минут mov Chas,#0 ;Обнулить счётчик часов ... ;******************************************************************** ;Подпрограмма реализации часов ;******************************************************************** Clock: DJNZ SEC,ExitClock;Если прошла одна минута, то mov SEC,#60 ;настроить счётчик секунд на коэффициент деления 60 Call IncMin JC ExitClock Call IncChas ExitClock: ret ;******************************************************************** ;Подпрограмма увеличения содержимого счётчика минут ;******************************************************************** IncMin: mov A,MIN ; add A,#1 ;Переключить счётчик минут DA A ; mov MIN,A ; CJNE A,#60h,ExitIncMin ;Если прошло 60 минут, mov MIN,#0 ;то обнулить счётчик минут ExitIncMin: ret ;******************************************************************** ;Подпрограмма увеличения содержимого счётчика часов ;******************************************************************** IncChas: mov A,Chas ; add A,#1 ;Переключить счётчик часов DA A ; mov Chas,A ; CJNE A,#24h,ExitIncHr;Если прошло 24 часа, mov Chas,#0 ;то обнулить счётчик часов ExitIncHr: ret

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

Для того чтобы полностью воспользоваться преимуществами структурного программирования, операторы, выполняющие увеличение показаний счётчика минут, оформлены в виде подпрограммы.


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