Микропроцессорныая система. Автоматический чайник
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
PROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCFEEADR, F; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFSTART_HL, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_HL
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_HH, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_HH
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T_ST; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
MOVLWB00000010; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
MOVWFFLAG_R; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSFINTCON, RBIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_STOP; ПРОВЕРКА НАЖАТИЯ КНОПКИ УСТАНОВКА ВРЕМЕНИ
; ВЫКЛЮЧЕНИЯ
BTFSCPORTA, 3; НАЖАТА КНОПКА УСТАНОВКА ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
GOTOB_TIME_CURR; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; УСТАНОВКА ТЕКУЩЕГО ВРЕМЕНИ
BTFSSFLAG_R, 2; РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ ВКЛЮЧЕН
GOTOSTART_UST_T_SP; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BCFFLAG_R, 2; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BSFFLAG_R, 6; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCFINTCON, RBIE; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
;-
; ЗАПИСЬ В EEPROM
BANC2
MOVLW0x06
MOVWFEEADR; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 06h
BANC3
BTFSCEECON1, WR; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO$+1
BANC0
MOVFSTOP_ML, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_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
MOVFSTOP_MH, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_MH
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
MOVFSTOP_HL, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_HL
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
MOVFSTOP_HH, W; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_HH
BANC2
MOVWFEEDATA
BANC3
BCFEECON1, EEPGD; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSFEECON1, WREN; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW0x55EECON20xAAEECON2
BSFEECON1, WR; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCFEECON1, WREN; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T_SP; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ВРЕМЕНИ
; ВЫКЛЮЧЕНИЯ
MOVLWB00000100; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
MOVWFFLAG_R; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSFINTCON, RBIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_CURR; ПРОВЕРКА НАЖАТИЯ КНОПКИ УСТАНОВКА ТЕКУЩЕГО
; ВРЕМЕНИ
BTFSCPORTA, 4; НАЖАТА КНОПКА УСТАНОВКА ТЕКУЩЕГО ВРЕМЕНИ
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
BTFSSFLAG_R, 3; РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ ВКЛЮЧЕН
GOTOSTART_UST_T_CUR; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
BCFFLAG_R, 3; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
BSFFLAG_R, 6; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
MOVLWB00001011; ВКЛЮЧИТЬ МОДУЛЬ CCP1
MOVWFCCP1CON
BCFINTCON, RBIE; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
;-
START_UST_T_CUR; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
CLRFCCP1CON; ВЫКЛЮЧИТЬ МОДУЛЬ CCP1
MOVLWB00001000; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
MOVWFFLAG_R; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
CLRFSEC_L; ОЧИСТИТЬ СЧЕТЧИКИ СЕКУНД
CLRFSEC_H
BSFINTCON, RBIE; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ
GOTOINT_SOURCE; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма обработки прерываний по входам
Данная подпрограмма проверяет нажатие кнопок Установка часов, Установка минут, +1 и -1. Если нажата кнопка +1 или -1, происходит запуск таймера TMR2 и переход к установке соответствующей величины (температуры, времени включения, времени выключения, текущего времени). Если же обе кнопки отпущены, происходит остановка таймера TMR2. Нажатие кнопок Установка часов и Установка минут приводит к включению соответствующего режима.
Листинг подпрограммы приведен ниже.
;-_RB; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДАМ PORTB, 5; НАЖАТА КНОПКА УСТАНОВКА МИНУТ$+4FLAG_R, 5; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ МИНУТFLAG_R, 4; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ЧАСОВ$+5PORTB, 4; НАЖАТА КНОПКА УСТАНОВКА ЧАСОВ$+3FLAG_R, 4; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВ?/p>