Управление барокамерой
Алгоритм работы микропроцессорной системы управления барокамерой. Подпрограмма контроля температуры. Разработка схемы сопряжения для подключения датчика уровня воды. Подключение светодиодов "Нагрев" и "Низкий уровень воды". Разработка блока питания МПС.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.05.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
BTFSS FLAG_R,2 ;РЕЖИМ УСТАНОВКИ ТЕКУЩЕГО ВРЕМЕНИ ВКЛЮЧЕН
GOTO INT_SOURCE ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
BTFSS FLAG_R,5 ;РЕЖИМ УСТАНОВКИ МИНУТ ВКЛЮЧЕН
GOTO SET_HOUR ;НЕТ - ПЕРЕХОД К УСТАНОВКЕ ЧАСОВ
BTFSC PORTB,6 ;НАЖАТА КНОПКА "+1"
GOTO M13 ;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"
;-----------------------------------------------------------------
;СЧЕТЧИК ЕДИНИЦ МИНУТ
INCF MIN_L,F ;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ
BCF STATUS,Z
MOVF MIN_L,W ;СЧЕТЧИК ДОСЧИТАЛ ДО 10
XORLW 0x0A
BTFSS STATUS,Z
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
CLRF MIN_L ;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ
;----------------------------------------------------------------
;СЧЕТЧИК ДЕСЯТКОВ МИНУТ
INCF MIN_H,F ;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТ
BCF STATUS,Z
MOVF MIN_H,W ;СЧЕТЧИК ДОСЧИТАЛ ДО 6
XORLW 0x06
BTFSS STATUS,Z
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
CLRF MIN_H ;ДА - ОЧИСТИТЬ СТАРШИЙ СЧЕТЧИК МИНУТ
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
;-----------------------------------------------------------------
M13
BTFSC PORTB,7 ;НАЖАТА КНОПКА "-1"
GOTO STOP_TMR2_4 ;ПЕРЕХОД НА ПОДПРОГРАММУ ОСТАНОВКИ ТАЙМЕРА TMR2
;-----------------------------------------------------------------
;СЧЕТЧИК ЕДИНИЦ МИНУТ
BCF STATUS,C
DECF MIN_L,F ;ДЕКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ
BTFSS STATUS,C ;ПРОИЗОШЕЛ ЗАЕМ
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
BCF STATUS,C
MOVLW 0x09 ;ДА - ЗАГРУЗКА НАЧАЛЬНОГО ЗНАЧЕНИЯ
MOVWF MIN_L
;----------------------------------------------------------------
;СЧЕТЧИК ДЕСЯТКОВ МИНУТ
DECF MIN_H,F ;ДЕКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТ
BTFSS STATUS,C ;ПРОИЗОШЕЛ ЗАЕМ
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
BCF STATUS,C
MOVLW 0x05 ;ДА - ЗАПИСАТЬ НАЧАЛЬНОЕ ЗНАЧЕНИЕ
MOVWF MIN_H
GOTO SET_REG_LCD2;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
;ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-----------------------------------------------------------------
BTFSS FLAG_R,4 ;РЕЖИМ УСТАНОВКИ ЧАСОВ ВКЛЮЧЕН
GOTO STOP_TMR2_4 ;ПЕРЕХОД НА ПОДПРОГРАММУ ОСТАНОВКИ ТАЙМЕРА TMR2
;-----------------------------------------------------------------
BTFSC PORTB,6 ;НАЖАТА КНОПКА "+1"
GOTO M14 ;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"
SET_HOUR
;СЧЕТЧИКИ ЧАСОВ
INCF HOUR_L,F ;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
BCF STATUS,Z
MOVF HOUR_H,W ;СТАРШИЙ СЧЕТЧИК ДОСЧИТАЛ ДО 2
XORLW 0x02
BTFSS STATUS,Z
GOTO M15 ;НЕТ - ПЕРЕХОД НА ПРОВЕРКУ МЛАДШЕГО СЧЕТЧИКА
BCF STATUS,Z
MOVF HOUR_L,W
XORLW 0x04
BTFSS STATUS,Z
GOTO M15
BCF STATUS,Z
CLRF HOUR_L ;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
CLRF HOUR_H
GOTO SET_REG_LCD2 ;ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮ
M15
MOVF HOUR_L,W
XORLW 0x0A ;СЧЕТЧИК ДОСЧИТАЛ ДО 10
BTFSS STATUS,Z
GOTO SET_REG_LCD2 ;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
;ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
CLRF HOUR_L ;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
INCF HOUR_H ;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВ
GOTO SET_REG_LCD2 ;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ
;ВЫВОДОМ ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮ
;-----------------------------------------------------------------
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 ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
2.10.5 Подпрограмма обработки прерываний по входу 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 ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
2.10.6 Подпрограмма обработки прерываний по входам <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 ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
2.10.7 Подпрограмма приема/передачи данных через 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 ;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
2.10.8 Подпрограмма восстановления контекста
Данная подпрограмма осуществляет восстановление содержимого аккумулятора и регистра 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
Подобные документы
Описание алгоритма работы и разработка структурной схемы микропроцессорной системы управления. Разработка принципиальной схемы. Подключение микроконтроллера, ввод цифровых и аналоговых сигналов. Разработка блок-схемы алгоритма главной программы.
курсовая работа [3,3 M], добавлен 26.06.2016Разработка структурной и принципиальной схемы микропроцессора. Подключение шины адреса, данных и управления к соответствующим блокам на схеме. Формирование блока устройства памяти (ОЗУ и ПЗУ) и подключение его к шинам блока центрального процессора.
контрольная работа [220,5 K], добавлен 08.07.2012Разработка схемы блока чтения информации с датчиков, устройства сопряжения с аналоговым датчиком. Расчет электрических параметров микропроцессорной системы управления. Алгоритмы работы блока взаимодействия с оператором и обработки аварийных ситуаций.
курсовая работа [2,0 M], добавлен 06.03.2016Структурная схема микропроцессорной системы управления. Разработка принципиальной схемы блока чтения информации с датчиков. Алгоритм работы блока обмена данными по последовательному каналу связи. Электрические параметры системы, листинг программы.
курсовая работа [1,4 M], добавлен 21.11.2013Создание микропроцессорной системы на базе микроконтроллера, предназначенного для функциональной диагностики цифровых и интегральных микросхем. Разработка и расчёт блоков микроконтроллера, сопряжения, управления, питания, цифровой и диодной индикации.
курсовая работа [1,5 M], добавлен 28.01.2016Анализ существующих систем контроля и управления доступом (СКУД). Разработка структурной схемы и описание работы устройства. Выбор и обоснование эмулятора для отладки программы работы СКУД. Отладка программы системы управления охранной сигнализацией.
курсовая работа [2,1 M], добавлен 23.03.2015Разработка микропроцессорной системы для контроля и индикации параметров изменяющегося по случайному закону 8-ми разрядного двоичного кода. Проектирование принципиальной схемы микроконтроллера, описание работы схемы. Разработка блок-схемы программы.
курсовая работа [752,4 K], добавлен 10.01.2013Структурная схема системы управления кондиционером. Выбор пульта управления, датчика температуры, вентилятора, микроконтроллера и компрессора. Внутренняя структура и система команд транспортного уровня микросхемы DS18B20. Алгоритм работы кондиционера.
курсовая работа [2,1 M], добавлен 14.11.2010Функциональная схема микропроцессорной системы управления, алгоритм ее работы. Инициализация микроконтроллера и листинг соответствующей программы. Преобразование напряжения от датчика температуры. Обработка прерываний. Расчет электрических параметров.
дипломная работа [1,7 M], добавлен 23.05.2012Разработка принципиальных схем блоков чтения информации с датчиков. Сопряжение с цифровыми и аналоговыми датчиками. Алгоритм работы блока чтения информации с цифровых датчиков. Расчет электрических параметров микропроцессорной системы управления.
дипломная работа [760,0 K], добавлен 27.06.2016