Микропроцессорныая система. Автоматический чайник
Функциональная схема микропроцессорной системы управления, алгоритм ее работы. Инициализация микроконтроллера и листинг соответствующей программы. Преобразование напряжения от датчика температуры. Обработка прерываний. Расчет электрических параметров.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 23.05.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-
M14
BTFSC PORTB, 6 ; НАЖАТА КНОПКА «- 1»
GOTO SET_REG_LCD2 ; ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
; ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
; СЧЕТЧИК ЕДИНИЦ ЧАСОВ
BCF STATUS, C
DECF HOUR_L, F ; ДЕКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
BTFSS STATUS, C ; ПРОИЗОШЕЛ ЗАЕМ
GOTO SET_REG_LCD2 ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
BCF STATUS, C
MOVLW 0x09 ; ДА - ЗАГРУЗИТЬ НАЧАЛЬНОЕ ЗНАЧЕНИЕ
MOVWF HOUR_L
;-
; СЧЕТЧИК ДЕСЯТКОВ ЧАСОВ
DECF HOUR_H, F ; ДЕКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВ
BTFSS STATUS, C ; ПРОИЗОШЕЛ ЗАЕМ
GOTO SET_REG_LCD2 ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
BCF STATUS, C
MOVLW 0x02 ; ДА - ЗАГРУЗИТЬ НАЧАЛЬНЫЕ ЗНАЧЕНИЯ В СЧЕТЧИКИ
MOVWF HOUR_H
MOVLW 0x04
MOVWF HOUR_L
GOTO SET_REG_LCD2 ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
; ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-
STOP_TMR2_4
BCF T2CON, TMR2ON ; ОСТАНОВКА ТАЙМЕРА TMR2
SET_REG_LCD2
MOVF MIN_L, W
MOVWF IND_0
MOVF MIN_H, W
MOVWF IND_1
MOVF HOUR_L, W
MOVWF IND_2
MOVF HOUR_H, W
MOVWF IND_3
BCF POINT, 2 ; ВЫКЛЮЧИТЬ ТОЧКУ ВО 2-М РАЗРЯДЕ
BSF POINT, 1 ; ВКЛЮЧИТЬ ТОЧКУ В 1-М РАЗРЯДЕ
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма обработки прерываний по входу INT
Данная подпрограмма проверяет нажатие кнопок выбора режима. При первом нажатии кнопки включается соответствующий режим и разрешаются прерывания по входам <RB4:RB7> от кнопок «Установка часов», «Установка минут», «+1» и «-1». При повторном нажатии этой же кнопки происходит выключение соответствующего режима, запрет прерываний по входам <RB4:RB7> и, при необходимости, производится запись установленных значений в EEPROM память данных.
;-
INT_INT ; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДУ INT
;-
BCF INTCON, INTF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ПО ВХОДУ INT
BTFSC PORTA, 2 ; НАЖАТА КНОПКА «УСТАНОВКА ТЕМПЕРАТУРЫ»
GOTO B_TIME_START ; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; «УСТАНОВКА ВРЕМЕНИ ВКЛЮЧЕНИЯ»
BTFSS FLAG_R, 0 ; РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ ВКЛЮЧЕН
GOTO START_UST_T ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ТЕМПЕРАТУРЫ
BCF FLAG_R, 0 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ
BSF FLAG_R, 6 ; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCF INTCON, RBIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
;-
; ЗАПИСЬ В EEPROM
BANC2
CLRF EEADR ; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 00h
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF MAX_TL, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА MAX_TL
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF MAX_TH, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА MAX_TH
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T ; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ТЕМПЕРАТУРЫ
MOVLW B'00000001' ; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ
MOVWF FLAG_R ; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSF INTCON, RBIE ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_START ; ПРОВЕРКА НАЖАТИЯ КНОПКИ «УСТАНОВКА ВРЕМЕНИ
; ВКЛЮЧЕНИЯ»
BTFSC PORTA, 2 ; НАЖАТА КНОПКА «УСТАНОВКА ВРЕМЕНИ ВКЛЮЧЕНИЯ»
GOTO B_TIME_STOP ; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; «УСТАНОВКА ВРЕМЕНИ ВЫКЛЮЧЕНИЯ»
BTFSS FLAG_R, 1 ; РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ ВКЛЮЧЕН
GOTO START_UST_T_ST ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
BCF FLAG_R, 1 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BSF FLAG_R, 6 ; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCF INTCON, RBIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
;-
; ЗАПИСЬ В EEPROM
BANC2
MOVLW 0x02
MOVWF EEADR ; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 02h
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF START_ML, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_ML
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF START_MH, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_MH
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF START_HL, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_HL
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF START_HH, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА START_HH
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T_ST ; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
MOVLW B'00000010' ; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ
MOVWF FLAG_R ; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSF INTCON, RBIE ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_STOP ; ПРОВЕРКА НАЖАТИЯ КНОПКИ «УСТАНОВКА ВРЕМЕНИ
; ВЫКЛЮЧЕНИЯ»
BTFSC PORTA, 3 ; НАЖАТА КНОПКА «УСТАНОВКА ВРЕМЕНИ ВЫКЛЮЧЕНИЯ»
GOTO B_TIME_CURR ; НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ
; «УСТАНОВКА ТЕКУЩЕГО ВРЕМЕНИ»
BTFSS FLAG_R, 2 ; РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ ВКЛЮЧЕН
GOTO START_UST_T_SP ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BCF FLAG_R, 2 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
BSF FLAG_R, 6 ; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
BCF INTCON, RBIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
;-
; ЗАПИСЬ В EEPROM
BANC2
MOVLW 0x06
MOVWF EEADR ; УСТАНОВКА НАЧАЛЬНОГО АДРЕСА 06h
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF STOP_ML, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_ML
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF STOP_MH, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_MH
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF STOP_HL, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_HL
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ АДРЕС НА 1
BANC3
BTFSC EECON1, WR ; ПРОВЕРКА ОКОНЧАНИЯ ЗАПИСИ В EEPROM
GOTO $+1
BANC0
MOVF STOP_HH, W ; ЧТЕНИЕ ДАННЫХ ИЗ РЕГИСТРА STOP_HH
BANC2
MOVWF EEDATA
BANC3
BCF EECON1, EEPGD ; ЗАПИСЬ БУДЕТ ПРОИЗВОДИТЬСЯ В EEPROM
BSF EECON1, WREN ; РАЗРЕШЕНИЕ ЗАПИСИ В EEPROM
MOVLW 0x55
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1, WR ; ИНИЦИАЛИЗАЦИЯ ЗАПИСИ
BCF EECON1, WREN ; ЗАПРЕТ ЗАПИСИ ВEEPROM
BANC0
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
START_UST_T_SP ; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ВРЕМЕНИ
; ВЫКЛЮЧЕНИЯ
MOVLW B'00000100' ; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
MOVWF FLAG_R ; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
BSF INTCON, RBIE ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
B_TIME_CURR ; ПРОВЕРКА НАЖАТИЯ КНОПКИ «УСТАНОВКА ТЕКУЩЕГО
; ВРЕМЕНИ»
BTFSC PORTA, 4 ; НАЖАТА КНОПКА «УСТАНОВКА ТЕКУЩЕГО ВРЕМЕНИ»
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
BTFSS FLAG_R, 3 ; РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ ВКЛЮЧЕН
GOTO START_UST_T_CUR ; НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ ВКЛЮЧЕНИЯ РЕЖИМА
; УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
BCF FLAG_R, 3 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
BSF FLAG_R, 6 ; ВКЛЮЧИТЬ РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИ
MOVLW B'00001011' ; ВКЛЮЧИТЬ МОДУЛЬ CCP1
MOVWF CCP1CON
BCF INTCON, RBIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
;-
START_UST_T_CUR ; ПОДПРОГРАММА ВКЛЮЧЕНИЯ РЕЖИМА УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
CLRF CCP1CON ; ВЫКЛЮЧИТЬ МОДУЛЬ CCP1
MOVLW B'00001000' ; ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ
MOVWF FLAG_R ; ОСТАЛЬНЫЕ ВЫКЛЮЧИТЬ
CLRF SEC_L ; ОЧИСТИТЬ СЧЕТЧИКИ СЕКУНД
CLRF SEC_H
BSF INTCON, RBIE ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма обработки прерываний по входам <RB4:RB7>
Данная подпрограмма проверяет нажатие кнопок «Установка часов», «Установка минут», «+1» и «-1». Если нажата кнопка «+1» или «-1», происходит запуск таймера TMR2 и переход к установке соответствующей величины (температуры, времени включения, времени выключения, текущего времени). Если же обе кнопки отпущены, происходит остановка таймера TMR2. Нажатие кнопок «Установка часов» и «Установка минут» приводит к включению соответствующего режима.
Листинг подпрограммы приведен ниже.
;-
INT_RB ; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДАМ <RB4:RB7>
BCF INTCON, RBIF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7>
BTFSC PORTB, 5 ; НАЖАТА КНОПКА «УСТАНОВКА МИНУТ»
GOTO $+4
BSF FLAG_R, 5 ; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ МИНУТ
BCF FLAG_R, 4 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ЧАСОВ
GOTO $+5
BTFSC PORTB, 4 ; НАЖАТА КНОПКА «УСТАНОВКА ЧАСОВ»
GOTO $+3
BSF FLAG_R, 4 ; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ЧАСОВ
BCF FLAG_R, 5 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ МИНУТ
BTFSC PORTB, 6 ; НАЖАТА КНОПКА «+1»
GOTO $+2
GOTO $+3
BTFSC PORTB, 7
GOTO $+3
BSF T2CON, TMR2ON ; ЗАПУСК ТАЙМЕРА TMR2
GOTO DOWN_BUTT ; ПЕРЕХОД НА ПРОВЕРКУ СОСТОЯНИЙ КНОПОК
BCF T2CON, TMR2ON ; ОСТАНОВКА ТАЙМЕРА TMR2
CLRF COUNTER
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма приема / передачи данных через USART
Данная подпрограмма проверяет данные, записанные в буфер приемника USART, и, если они соответствуют коду запроса чтения EEPROM (константа CONST_COD), читает данные из EEPROM, а затем осуществляет передачу этих данных во внешнее устройство, используя модуль USART.
;-
SERIAL_PRT ; ПОДПРОГРАММА ПРИЕМА/ПЕРЕДАЧИ ДАННЫХ ЧЕРЕЗ USART
BANC1
BCF PIE1, RCIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART
BANC0
;-
; ПРОВЕРКА НА ОТСУТСТВИЕ ОШИБОК КАДРА
BTFSS RCSTA, OERR ; ПРОИЗОШЛА ОШИБКА КАДРА
GOTO $+3 ; НЕТ - ПЕРЕХОД К ИДЕНТИФИКАЦИИ КОДА ЗАПРОСА
; ПЕРЕДАЧИ ДАННЫХ
BCF RCSTA, OERR ; СБРОСИТЬ ФЛАГ ОШИБКИ КАДРА
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
; ИДЕНТИФИКАЦИЯ КОДА ЗАПРОСА ПЕРЕДАЧИ ДАННЫХ
BCF STATUS, Z
MOVF RCREG, W ; ЧТЕНИЕ ДАННЫХ ИЗ БУФЕРА ПРИЕМНИКА
BCF PIR1, RCIF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART
XORLW CONST_COD ; СРАВНИТЬ КОД
BTFSS STATUS, Z ; КОД ВЕРНЫЙ
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
; ЧТЕНИЕ ДАННЫХ ИЗ EEPROM И ПЕРЕДАЧА ЧЕРЕЗ USART
BANC2
CLRF EEADR ; ОЧИСТИТЬ РЕГИСТР АДРЕСА
READ
BANC3
BCF EECON1, EEPGD; УСТАНОВИТЬ ЧТЕНИЕ ИЗ EEPROM
BSF EECON1, RD ; НАЧАТЬ ЧТЕНИЕ
BANC2
MOVF EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ
BANC0
MOVWF TXREG ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ
; В БУФЕР ПЕРЕДАТЧИКА
BANC1
BSF TXSTA, TXEN ; РАЗРЕШИТЬ ПЕРЕДАЧУ
BANC2
INCF EEADR, F ; УВЕЛИЧИТЬ НА 1 АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ
MOVF EEADR, W
XORLW 0x0A
BANC0
BTFSC PIR1, TXIF ; ОЖИДАТЬ ОКОНЧАНИЕ ПЕРЕДАЧИ
GOTO $-1
BTFSS STATUS, Z
GOTO READ
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма восстановления контекста
Данная подпрограмма осуществляет восстановление содержимого аккумулятора и регистра STATUS перед выходом из обработчиков прерываний.
Листинг программы приведен ниже.
;-
END_INT ; ВОССТАНОВЛЕНИЕ АККУМУЛЯТОРА И РЕГИСТРА STATUS
BANC1
BSF PIE1, RCIE ; РАЗРЕШИТЬ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART
BANC0
SWAPF STATUS_TEMP, W ; ВОССТАНОВИТЬ РЕГИСТР STATUS
MOVWF STATUS
BTFSS STATUS, RP0 ; ОПРЕДЕЛЕНИЕ ТЕКУЩЕГО БАНКА
GOTO REST_WREG
BCF STATUS, RP0 ; ВЫБОР БАНКА 0
SWAPF W_TEMP, F ; ВОССТАНОВИТЬ АККУМУЛЯТОР
SWAPF W_TEMP, W
BSF STATUS, RP0 ; ВЫБОР БАНКА 1
RETURN
REST_WREG
SWAPF W_TEMP, F ; ВОССТАНОВИТЬ АККУМУЛЯТОР
SWAPF W_TEMP, W
RETURN ; ВЕРНУТЬСЯ ИЗ ПРЕРЫВАНИЯ
;-
3. Расчет электрических параметров МПС
Рассчитаем мощность, потребляемую микроконтроллером:
;
программа микропроцессорный управление датчик
где - напряжение относительно ;
- максимальный ток вывода ;
- выходное напряжение высокого уровня;
- ток I/O канала;
- выходное напряжение низкого уровня;
- ток I/O канала.
Рассчитаем мощность, рассеиваемую всеми резисторами схемы:
;
где - напряжение на i-м резисторе;
- сопротивление i-го резистора.
;
Рассчитаем мощность, рассеиваемую светодиодами:
;
где - напряжение на i-м светодиоде;
- ток в i-м светодиоде.
;
Рассчитаем мощность, рассеиваемую светодиодными индикаторами:
;
где - напряжение на i-м индикаторе;
- ток в i-м индикаторе.
Ток определяется суммой токов всех сегментов, .
;
Токи, потребляемые микросхемами, приведены в таблице 3.
Таблица 3 - Токи, потребляемые микросхемами
Напряжение питания, В |
Микросхема |
Потребляемый ток, мА |
||
Обозначение |
Наименование |
|||
+15 |
DA2 |
AD210 |
50 |
|
Итого |
50 |
|||
+5 |
DD1 |
К155ЛН1 |
33 |
|
DD2 |
PIC16F873 |
43 |
||
DD3 |
MAX6958 |
150 |
||
DD4 |
MXL1543 |
150 |
||
DA1 |
АОТ101АС |
5 |
||
Итого |
381 |
Таким образом, суммарная потребляемая мощность будет равна:
4. Разработка блока питания
Для питания проектируемой микропроцессорной системы управления необходим блок питания, отдающий в нагрузку мощность не менее 2,81 Вт. Максимальный выходной ток по цепи +5В должен быть не менее 381 мА, по цепям +15В - не менее 50 мА. Схема блока питания приведена на рисунке 16.
В качестве трансформатора T1 выбран унифицированный трансформатор ТПП232-127/220-50. Этот трансформатор имеет габаритную мощность 9 В·А. Напряжения на обмотках следующие: U11-12 = U13-14 = 5,04В; U15-16 = U17-18 = 10В; U19-20 = U20-22 = 2,63В. Максимальный ток каждой обмотки 0,255А.
Для стабилизации напряжения +5В используется интегральный стабилизатор LM7805, рассчитанный на максимальный ток 1,5 А. Для стабилизации напряжения +15В используется интегральный стабилизатор LM7815. Он рассчитан на максимальный ток 0,15 А.
Рисунок 15 - Принципиальная электрическая схема блока питания
Список использованных источников
программа микропроцессорный управление датчик
1. Сташин В.В. Проектирование цифровых устройств на однокристальных микроконтроллерах / Сташин В.В. - М.:Энергоатомиздат, 1990. 189-224 с
2. Щелкунов Н.Н. Микропроцессорные средства и системы / Щелкунов Н.Н., Дианов А.Н. - М.:Радио и связь, 1989. - 117-152 c
3. Официальный сайт компании Maxim Integrated Products and Dallas Semiconductor [Электронный ресурс] MAX6958/MAX6959 2-Ware Interfaced, 3V to 5,5V, 4-Digit, 9-Segment LED Display Drivers with Keyscan. Режим доступа: http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3638
Размещено на Allbest.ru
Подобные документы
Функциональная спецификация и преимущества термометрического датчика. Структурная схема микроконтроллера РIС16F84A. Алгоритм работы программы, описание функциональных узлов, выбор элементной базы и принципиальная схема терморегулятора для аквариума.
курсовая работа [4,7 M], добавлен 27.12.2009Структурная схема микропроцессорной системы управления. Разработка принципиальной схемы блока чтения информации с датчиков. Алгоритм работы блока обмена данными по последовательному каналу связи. Электрические параметры системы, листинг программы.
курсовая работа [1,4 M], добавлен 21.11.2013Структурная схема системы управления кондиционером. Выбор пульта управления, датчика температуры, вентилятора, микроконтроллера и компрессора. Внутренняя структура и система команд транспортного уровня микросхемы DS18B20. Алгоритм работы кондиционера.
курсовая работа [2,1 M], добавлен 14.11.2010Проектирование системы регулирования дорожного движения на перекрестке (системы управления светофорами) на основе микроконтроллера группы PIC 16F84. Принцип действия устройства, функциональная схема и описание ее элементов. Алгоритм и листинг программы.
курсовая работа [361,4 K], добавлен 24.12.2012Проектирование устройства, измеряющего температуру в помещении. Выбор датчика температуры, микроконтроллера и отладочной платы. Изучение работы встроенного датчика температуры. Разработка программного обеспечения. Функциональная организация программы.
курсовая работа [2,0 M], добавлен 26.12.2013Разработка микропроцессорной системы на основе микроконтроллера. Методы и средства совместной отладки аппаратных и программных средств. Структурная схема и функциональная спецификация устройства - регулятора яркости ламп накаливания. Алгоритм управления.
дипломная работа [1,4 M], добавлен 15.07.2010Микропроцессорная система (МПС) сбора и обработки информации от объекта, характеризуемого непрерывными (аналоговыми) сигналами. Исходные данные для разработки МПС. Функциональная схема системы, характеристика ее основных элементов, листинг программы.
курсовая работа [961,2 K], добавлен 21.10.2012Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.
курсовая работа [3,3 M], добавлен 26.06.2016Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Разработка принципиальных схем блоков чтения информации с датчиков. Сопряжение с цифровыми и аналоговыми датчиками. Алгоритм работы блока чтения информации с цифровых датчиков. Расчет электрических параметров микропроцессорной системы управления.
дипломная работа [760,0 K], добавлен 27.06.2016