Микропроцессорныая система. Автоматический чайник

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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