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

Функциональная схема микропроцессорной системы управления, алгоритм ее работы. Инициализация микроконтроллера и листинг соответствующей программы. Преобразование напряжения от датчика температуры. Обработка прерываний. Расчет электрических параметров.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид дипломная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.