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


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


Подпрограмма коррекции показания часов будет выглядеть так, как это приведено на рисунке 9.31.

Если такая скорость коррекции показаний часов пять раз в секунду покажется слишком высокой, то можно изменить соотношение коэффициентов деления таймера и делителя, например: 32*31250. Тогда можно будет выбрать скорость коррекции показания часов из набора вариантов два или четыре раза в секунду.

;******************************************************************** ;Подпрограмма блока коррекции часов ;******************************************************************** CorrClock: Mov A,SostKn ;Считать переменную состояния кнопок JB ACC.0,TstKnMin ;Если нажата кнопка "уст сек", Mov SEC,#0 ;то обнулить переменную SEC TstKnMin: Mov A,Delit ;Если в предделителе ANL A,#3 ;число кратно 2, CJNE A,#2,ExitCorrClock; Mov A,SostKn ;то считать переменную состояния кнопок. JB ACC.1,TstKnChs ;Если нажата кнопка "уст мин", Call IncMin ;то увеличить содержимое счётчика минут TstKnChs: JB ACC.2, ExitCorrClock;Если нажата кнопка "уст мин", Call IncChas ;то увеличить содержимое счётчика часов ExitCorrClock: ret

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

В приведенном варианте программы проверяется два младших бита делителя. Для выделения двух младших бит используется логическое умножение содержимого переменной Delit с маской 00011b. Так как эти биты принимают значение 10b пять раз в секунду, то, соответствующее количество раз, будет вызываться подпрограмма увеличения значения содержимого счётчика минут (или часов).

[ ] [ ] [ ]




- Начало -  - Назад -