Микропроцессорныая система. Автоматический чайник
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
N_L
;-
; СЧЕТЧИК ДЕСЯТКОВ МИНУТMIN_H, F; ДЕКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТSTATUS, C; ПРОИЗОШЕЛ ЗАЕМSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮSTATUS, C0x05; ДА - ЗАПИСАТЬ НАЧАЛЬНОЕ ЗНАЧЕНИЕMIN_HSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-
FLAG_R, 4; РЕЖИМ УСТАНОВКИ ЧАСОВ ВКЛЮЧЕНSTOP_TMR2_4; ПЕРЕХОД НА ПОДПРОГРАММУ ОСТАНОВКИ ТАЙМЕРА TMR2
;-PORTB, 6; НАЖАТА КНОПКА +1M14; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ - 1
_HOUR
; СЧЕТЧИКИ ЧАСОВHOUR_L, F; ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВSTATUS, ZHOUR_H, W; СТАРШИЙ СЧЕТЧИК ДОСЧИТАЛ ДО 20x02STATUS, ZM15; НЕТ - ПЕРЕХОД НА ПРОВЕРКУ МЛАДШЕГО СЧЕТЧИКА
BCFSTATUS, ZHOUR_L, W0x04STATUS, ZM15STATUS, ZHOUR_L; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
CLRFHOUR_HSET_REG_LCD2; ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
; ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮHOUR_L, W0x0A; СЧЕТЧИК ДОСЧИТАЛ ДО 10STATUS, ZSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮHOUR_L; ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВHOUR_H; ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-PORTB, 6; НАЖАТА КНОПКА - 1SET_REG_LCD2; ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
; ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
; СЧЕТЧИК ЕДИНИЦ ЧАСОВSTATUS, CHOUR_L, F; ДЕКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВSTATUS, C; ПРОИЗОШЕЛ ЗАЕМSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮSTATUS, C0x09; ДА - ЗАГРУЗИТЬ НАЧАЛЬНОЕ ЗНАЧЕНИЕHOUR_L
;-
; СЧЕТЧИК ДЕСЯТКОВ ЧАСОВHOUR_H, F; ДЕКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВSTATUS, C; ПРОИЗОШЕЛ ЗАЕМSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮSTATUS, C0x02; ДА - ЗАГРУЗИТЬ НАЧАЛЬНЫЕ ЗНАЧЕНИЯ В СЧЕТЧИКИ
MOVWFHOUR_H0x04
MOVWFHOUR_LSET_REG_LCD2; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-_TMR2_4T2CON, TMR2ON; ОСТАНОВКА ТАЙМЕРА TMR2
SET_REG_LCD2MIN_L, WIND_0MIN_H, WIND_1HOUR_L, WIND_2HOUR_H, W
MOVWFIND_3POINT, 2; ВЫКЛЮЧИТЬ ТОЧКУ ВО 2-М РАЗРЯДЕPOINT, 1; ВКЛЮЧИТЬ ТОЧКУ В 1-М РАЗРЯДЕINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма обработки прерываний по входу INT
Данная подпрограмма проверяет нажатие кнопок выбора режима. При первом нажатии кнопки включается соответствующий режим и разрешаются прерывания по входам и, при необходимости, производится запись установленных значений в EEPROM память данных.
;-
INT_INT; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДУ INT
;-
BCFINTCON, INTF; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ПО ВХОДУ INT
BTFSCPORTA, 2; НАЖАТА КНОПКА УСТАНОВКА ТЕМПЕРАТУРЫ
GOTOB_TIME_START; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; УСТАНОВКА ВРЕМЕНИ ВКЛЮЧЕНИЯ
BTFSSFLAG_R, 0; РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ ВКЛЮЧЕН
GOTOSTART_UST_T; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ТЕМПЕРАТУРЫ
BCFFLAG_R, 0; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ
BSFFLAG_R, 6; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCFINTCON, RBIE; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
;-
; ЗАПИСЬ В EEPROM
BANC2
CLRFEEADR; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 00h
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFMAX_TL, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА MAX_TL
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCFEEADR, F; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFMAX_TH, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА MAX_TH
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ТЕМПЕРАТУРЫ
MOVLWB00000001; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ
MOVWFFLAG_R; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSFINTCON, RBIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_START; ПРОВЕРКА НАЖАТИЯ КНОПКИ УСТАНОВКА ВРЕМЕНИ
; ВКЛЮЧЕНИЯ
BTFSCPORTA, 2; НАЖАТА КНОПКА УСТАНОВКА ВРЕМЕНИ ВКЛЮЧЕНИЯ
GOTOB_TIME_STOP; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; УСТАНОВКА ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BTFSSFLAG_R, 1; РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ ВКЛЮЧЕН
GOTOSTART_UST_T_ST; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
BCFFLAG_R, 1; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BSFFLAG_R, 6; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCFINTCON, RBIE; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
;-
; ЗАПИСЬ В EEPROM
BANC2
MOVLW0x02
MOVWFEEADR; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 02h
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFSTART_ML, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_ML
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCFEEADR, F; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFSTART_MH, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_MH
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EE