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

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

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

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>