Рисунок 3.4 – Блок-схема управления DS 1820
Программа для управляющего контроллера PIC 16 F877.
#INCLUDE PIС 16F877.IN
OPTIONREQU81H ; OPTION {RP0=l).
PCEQU02H ; счетчик команд
PORTAEQU05H; порт А
PORTBEQU06H; порт В
TRISAEQU85H ; направления порта А
TRISBEQU8 6H ; направления порта В
INTCONEQU0BH ; флагов прерываний
; Регистры общего назначения
TEMPEQU21H ; временный
ZANEQU22H ; счетчик паузы
COUNEQU23H ; счетчик битов
LSBEQU 24Н ; мл. регистр приема отDS
LSBHEQU25H ; ст. регистр приема отDS
; Регистры измеренных температур
EDIEQU2 6H; единицы.
DESEQU27H ; десятки.
LSBZEQU2 АН ; двоичное
; =======================================
; Инициализация DS
; =======================================
INIDS
CALLHYL ; посылка импульса обнуления
MOVLWOxCC ; пропуск номера
CALLPOSIL ; посылка
MOVLW0x4E ; разрешение измерения до градуса
CALLPOSIL ; посылка
MOVLW0x7D ; верхней предел +125.
CALLPOSIL ; посылка
MOVLW0x77 ; нижний предел -55
CALLPOSIL ; посылка
MOVLW 0x7F ; конфигурация 11 до градуса
CALLPOSIL ; посылка
CALLHYL ; посылка импульса обнуления
MOVLWOxCC ; пропуск посылки номера DS
CALLPOSIL ; посылка
MOVLW0x4 4 ; разрешение преобразования
CALLP.OSIL ; посылка
BTFSCFLAG,0 ; если > 30,
BSFPORTС,0 ; то включим двигатель
MOVLW.3 ; пауза 750 мс
MOVWFCOUN ; счетчик паузы
SPLU
MOVLW.255
MOVWFZAN
РLUS
MOVLW.255
NOP
NOP
NOP
NOP
NOP
NOP
ADDLW-1
BTFSSSTATUS,2
GOTO$-2
DECFSZ ZAN, 1
GOTO PLUS
DECFSZ COUN,1
GOTO SPLU
BTFSCFLAG,0 ;если больше 30,
BCFPORTС, 0 ; включение кондиционера
GOTOPRIEM ; на прием температуры.
HUL
CALLWUX ; выход нуля,
MOVLV .125 ; нулевой импульс
ADDLW-1 ; =500мкс
BTFSSSTATUS,2
GOTOS-2
CALLWXO ; выход единицы
MOVLW.125 ; импульс =
ADDLW -1 ; 500мкс
BTFSSSTATUS,2
GOTO$-2
RETURN
; ===============================
; Изменение входа на прием/передачу
; ===============================
WUX
BCF PORTA,DS ; Импульс запроса
BSF STATUS,5 ; переход в банк 1
BCF TRISA,DS ; на выход
BCF ' STATUSES ; переход в банк 0
RETURN
WXO
BSF STATUS,5 ; переход в банк 1
BSF TRISA,DS ; на вход
BCF STATUS,5 ; переход в банк 0
RETURN
; ========================================
; Прием 16 бит из DS
; ========================================
PRIEM
CALL HYL ; посылка импульса обнуления
MOVLW 0хСС ; пропуск номера
CALLPOSIL ; посылка
MOVLW 0xBE ; чтение температуры из блокнота
CALL POSIL ; посылка
CALL PRIE ; наприем
MOVFW LSBH ; переписать в ст. байт
CALL PRIE ; на прием
MOVWF LSB ; в мл. регистр
GOTO CXET ; на пересчет
PRIE
MOVLW .8
MOVWF COUN ; счетчик = 8 бит
CLRF LSBH ; обнуление регистра приема
PRI
CALL WUX ; короткий ноль и ждать отклика
CALL WXO ; на прием
MOVLW .2 ; задержка
CALL X4 ; 8 мкс.
MOVFW PORTA ; скопировать
MOVWF TEMP ; во временный регистр
BTFSS TEMP,DS
BCF STATUS,0 ; установка бита приема в ноль
BTFSC TEMP,DS ;
BSF STATUS,0 ; или 1
RRF- LSBH,1 ; запись в регистр
MOVLW .12 ; пауза 60 мкс
CALL X4
DECFSZ COUN,1 ; уменьшение счетчика
GOTO PRI ; повтор приема
RETURN
; ==================================
; Посылка команды в DS
; ==================================
POSIL
MOVWF TEMP ; переписать во временный
MOVLW .8 ; запишем число бит
MOVWF COUN
POSI
RRF TEMP,1 ; выталкивание мл. бита
BTFSS STATUS,0 ; если он нулевой
GOTO W0 ; посылка импульса 0
GOTOW1 ; или 1
POS
DECFSZ С0UN,1 ; уменьшение счетчика
GOTO POSI ; на след. бит
RETURN
W0
CALL WUX ; установка выхода в ноль
MOVLW .15 ; задержка 60 мкс
CALL Х4
CALL WXO ; на вход = 1 на выходе
GOTO POS ; повтор
W1
CALL WUX ; короткий нулевой импульс
CALL WXO ; на вход = 1 на выходе
MOVLW .15 ; удерживаем 60 мкс
CALLX4
GOTOPOS ; повтор
; ==========================
; СЧЕТ
; ==========================
СХЕТ
BTFSC КОР,4 ; если знак минус
GOTO $ + 6 ; идти на минус
MOVFW КОР I . ; если плюс
ADDWFLSB,1 ; прибавить 1
BTFSCSTATUS, 0 ; если есть перенос
INCF LSBH,1 ; увеличить старший байт
GOTO $+6 ;
BCF КОР,4 ; сброс бита знака
MOVFW КОР ; вычитание из младшего
SUBWFLSB,1 ; байта
BTFSSSTATUS,0 ' ; если нет переноса
DECF LSBH,1 ; уменьшить старший байт
CALL DESATI ; кодировка с округлением
MOVLW .4 ; сдвигом вправо на 4 разряда
MOVWF COUN
BCF STATUS,0 ; выделение целой части
RRFLSBH,1
RRF LSB,1
DECFSZ COUN,1
GOTO $-4
; ===============================
; Сравнение с допуском = 25 градусов
; ===============================
СОМР1
MOVLW .25 ; если температура
SUBWF LSB,0 ; больше 25о
BTFSC STATUS,0 ; то
GOTO ОТК ; включение кондиционера
BSFPORTA, 4
GOTOCOMP2
OTK
BSFPORTC, 0 ; включение двигателя на открытие
GOTOPRIEM
; ======================================
; Сравнение с допуском = 20 градусов
; ======================================
COMP2
MOVW .20 ; если температура меньше
SUBWFLSB, 0 ; 20 градусов
GOTOIND ; идти на ЖКИ
ZAK
BSFPORTC, 1 ; включение на закрытие окон
GOTOPRIEM
; =====================================
; Задержка мкс, умноженная на 4
; =====================================
X4
ADDLW -1
BTFSS STATUS, 2
GOTO $-2
RETURN
ЗАКЛЮЧЕНИЕ
В процессе разработки курсовой работы получены следующие результаты:
- разработана структурная схема системы климат-контроля;
- осуществлен выбор микроконтроллерного термодатчика DS на основе заданных технических условиях эксплуатации;
- разработана оригинальная схема питания системы без использования понижающего трансформатора;
- разработана принципиальная электрическая схема управления системы климат-контроля;
- разработана схема управления LGD;
- разработаны программы управления термодатчиком, кондиционером и LCD на языке Ассемблер;
- рассмотрены вопросы по охране труда обслуживающего персонала;
Таким образом, спроектированная система климат-контроля полностью отвечает заданным требованиям и условиям технической эксплуатации, обладая при этом относительной дешевизной и простотой реализации.
СПИСОК ЛИТЕРАТУРЫ
1. Брей Б. Микропроцессоры INTEL. – СПб.: БХВ – Петербург, 2005. – 1028 с.
2. Вальпа О. Полезные схемы с применением микроконтроллеров и ПЛИС(+СД).- М.: Изд.дом «Додэка-ХХ1», 2006. – 416 с.
3. Казначеев В. Микросхемы для управления электродвигателями. – М.:Додэка, 1999. – 288 с.
4. Костров Б.В. Микропроцессорные системы и микроконтроллеры. – М.: «ТехБук», 2007. – 320 с.
5. Тавернье К. PIC-микроконтроллеры. – М.: ДМК Пресс, 2003. – 272 с.
6. Терехов В.М. Системы управления электроприводов. – М.: Изд. центр «Академия», 2006. – 304 с.
7. Угрюмов Е. Цифровая схемотехника. – СПб.: БХВ – Петербург, 2002. – 528 с.
8. Юров В.И. Assembler.- СПб.: Питер, 2007. – 637 с.
9. MPASM: Руководство пользователя // электронная версия на сайте http://www.microchip.ru
10. MPLABIDE: Интегрированная среда разработки для микроконтроллеров PICmicro компании TechnologyIncorporated // электронная версия на сайте http://www.microchip.ru
11.Однокристальные 8-разрядные FLASHCMOS микроконтроллеры //
электронная версия на сайте http://microchip.ru.