Разделы сайта

Подпрограмма двоично-десятичной коррекции

; КОНТЕКСТА

;-

Подпрограмма часов

Данная подпрограмма осуществляет счет и вывод на индикацию (в случае включения режима отображения текущего времени) текущего времени. Кроме того подпрограмма проверяет совпадение текущего времени с временем начала и поддержания температуры. В случае их совпадения подпрограмма включает либо выключает режим поддержания температуры. Для счета используется 6 регистров-счетчиков:

SEC_L - счетчик единиц секунд;

SEC_H - счетчик десятков секунд;

MIN_L - счетчик единиц минут;

MIN_H - счетчик десятков минут;

HOUR_L - счетчик единиц часов;

HOUR_H - счетчик десятков часов.

Счетчики SEC_L, MIN_L, HOUR_L инкрементируются от 0х00 до 0х0А. При достижении 0х0А счетчики сбрасываются. Счетчики SEC_H и MIN_H инкрементируются от 0х00 до 0х06. При достижении 0х06 счетчики сбрасываются. Счетчик HOUR_H инкрементируется от 0х00 до 0х02. Счетчик сбрасывается, когда в нем записано значение 0х02, а счетчик HOUR_L досчитал до 0х04.

Листинг подпрограммы часов приведен ниже.

;- ; ПОДПРОГРАММА ТАЙМЕРА PIR1, CCP1IF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ОТ МОДУЛЯ CCP1

;-

; СЧЕТЧИК ЕДИНИЦ СЕКУНД SEC_L, F ; ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК СЕКУНД SEC_L, W ; СЧЕТЧИК ДОСЧИТАЛ ДО 10 0x0A STATUS, Z CURR_TIME ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ SEC_L ; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК СЕКУНД

;-

; СЧЕТЧИК ДЕСЯТКОВ СЕКУНД SEC_H, F ; ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК СЕКУНД STATUS, Z SEC_H, W ; СЧЕТЧИК ДОСЧИТАЛ ДО 6 0x06 STATUS, Z CURR_TIME ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ SEC_H ; ДА - ОЧИСТИТЬ СТАРШИЙ СЧЕТЧИК СЕКУНД

;-

; СЧЕТЧИК ЕДИНИЦ МИНУТ MIN_L, F ; ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ STATUS, Z MIN_L, W ; СЧЕТЧИК ДОСЧИТАЛ ДО 10 0x0A STATUS, Z CURR_TIME ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ MIN_L ; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ

;-

; СЧЕТЧИК ДЕСЯТКОВ МИНУТ MIN_H, F ; ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТ STATUS, Z MIN_H, W ; СЧЕТЧИК ДОСЧИТАЛ ДО 6

XORLW 0x06 STATUS, Z

GOTO CURR_TIME ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ MIN_H ; ДА - ОЧИСТИТЬ СТАРШИЙ СЧЕТЧИК МИНУТ

;-

; СЧЕТЧИКИ ЧАСОВ HOUR_L, F ; ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ STATUS, Z HOUR_H, W ; СТАРШИЙ СЧЕТЧИК ДОСЧИТАЛ ДО 2 0x02 STATUS, Z M3 ; НЕТ - ПЕРЕХОД НА ПРОВЕРКУ МЛАДШЕГО СЧЕТЧИКА

BCF STATUS, Z HOUR_L, W 0x04 STATUS, Z M3 STATUS, Z HOUR_L ; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ

CLRF HOUR_H CURR_TIME ; ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ HOUR_L, W 0x0A ; СЧЕТЧИК ДОСЧИТАЛ ДО 10 STATUS, Z CURR_TIME ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ HOUR_L ; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ HOUR_H ; ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВ

;-_TIME ; ПОДПРОГРАММА УПРАВЛЕНИЯ ВЫВОДОМ ТЕКУЩЕГО

; ВРЕМЕНИ НА ИНДИКАЦИЮ

;-

; ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ РЕЖИМА ПОДДЕРЖАНИЯ ТЕМПЕРАТУРЫ

BCF STATUS, Z START_ML, W MIN_L, W STATUS, Z M4

STATUS, Z START_MH, W MIN_H, W STATUS, Z M4

STATUS, Z START_HL, W HOUR_L, W STATUS, Z M4

STATUS, Z START_HH, W HOUR_H, W STATUS, Z M4

FLAG_R1,0 STATUS, Z STOP_ML, W MIN_L, W STATUS, Z M5

STATUS, Z STOP_MH, W MIN_H, W STATUS, Z M5

STATUS, Z STOP_HL, W HOUR_L, W STATUS, Z M5

STATUS, Z STOP_HH, W HOUR_H, W STATUS, Z M5

FLAG_R1,0

;- FLAG_R, 6 ; ВКЛЮЧЕН РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ INT_SOURCE ; НЕТ - ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ

; -

; ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ РАЗДЕЛЯЮЩЕЙ ТОЧКИ POINT, 2 POINT, 1 ; ДЕЦИМАЛЬНАЯ ТОЧКА ВКЛЮЧЕНА $+3 POINT, 1 ; ДА - ВЫКЛЮЧИТЬ ТОЧКУ $+2 POINT, 1 ; НЕТ - ВКЛЮЧИТЬ ТОЧКУ

; -

MOVF MIN_L, W IND_0 MIN_H, W IND_1 HOUR_L, W IND_2 HOUR_H, W IND_3

GOTO INT_SOURCE ; НЕТ - ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ

;-

Подпрограмма обработки прерываний от таймера

TMR

Перейти на страницу: 1 2 3 4 5 6 7

Самое читаемое:

Разработка микроконтроллерного устройства стабилизации температуры
Эффективная организация контроля информации приобретает всё большее практическое значение, прежде всего как условие успешной практической деятельности людей. Объем информации, необходимой для нормального функционирования современного общества, растёт из года в год. На сегодняшний день складывается ситуация, в которой наряду с самой ...

www.techstages.ru : Все права защищены! 2025