Разработка микропроцессорной системы климат-контроля

Автор работы: Пользователь скрыл имя, 14 Марта 2011 в 17:40, курсовая работа

Описание работы

Данная работа посвящена разработке системы климат-контроля в квартирах и офисах, предусмотренной в так называемых «интеллектуальных» зданиях, в которых помимо нее предусмотрены:

- автономное питание от дизель-генераторной установки и солнечных батарей;

- системы охранной безопасности, включая пожарную, и блокировки лифтов;

- системы видеонаблюдения;

- системы телекоммуникации – интернет, спутниковая связь и TV.

Файлы: 1 файл

4 - 38 стр.doc

— 574.00 Кб (Скачать файл)
 

      Первая  строка начинается с адреса 00Н, а вторая — с адреса 40Н. Память разбита на две половины по 40 байт каждая, причем между последним адресом первой строки и первым адресом второй строки есть разрыв в 24d байта.

      После сдвига влево первая строка начинается с адреса $01, а вторая строка —  с адреса $41, а после сдвига вправо первая строка начинается с адреса $27, а вторая строка — с адреса $67.

           Знакогенератор — это память типа ROM, предназначенная для хранения битовых комбинаций, соответствующих матрице размерами 5x8 или 5x10. В этой памяти можно хранить информацию о 208 символах (матрица 5x8).

      В модуле HD44780 реализуются следующие функции:

- начальная  инициализация: DL = 1 - 8-разрядный интерфейс, N = 1 -

  двухстрочное табло, F = 0 - матрица 5x8;

- управление табло: D = 0 - табло отключено, С = 0 — курсор отключен,

   В = 0 - мерцание отключено;

- очистка табло;

- режим ввода данных: I/D = 1 — инкремент на 1; S = 0 — нет сдвига тa6ло.

      Блок  – схема программы инициализации  ЖКИ имеет вид, представленный на рисунке 3.2.

    Рисунок 3.2 – Блок-схема инициализации  ЖКИ

      Прежде  чем разрабатывать программу инициализации необходимо привести полный перечень команд/инструкций для ЖКИ, которые приведены в таблице 3.3.

      Таблица 3.3 - Система команд HD44780

Команда Код Описание Время

выполнения

Очистка индикатора 
 

Возврат курсора 

Установка режима ввода 
 

Вкл/выкл индикатора 
 
 

Сдвиг курсора или

позиции знакоместа 
 
 

Функциональная настройка 
 
 
 

 Установка адреса CGRAM

Установка адреса DRAM     

Считывание флага

занятости

Запись данных 
 

Считывание данных

0000 0001  
 

  0000 0010  

0000 0AS0 
 
 

0000 1DCB 
 
 

0001 SR00 
 
 
 

001L NF00 
 
 
 
 

01ХХХХХХ 

10ХХ  ХХХХ 

В000 0000 

Данные 
 

Данные

                                

Очищает   индикатор   и   возвращает курсор в исходное положение

Возвращает курсор в исходное положение

Устанавливает   направление   перемещения (А = 1 приращение) и сдвига (S = 1 сдвиг) курсора

Включает/выключает индикатор (D = 1 вкл) (С = 1 курсор включен) (В = 1 курсор мигает)

Устанавливает перемещение курсора и сдвиг позиции знакоместа (S =1 сдвиг позиции) (S = 0 R = 1 перемещения курсора вправо

Программирование  знакоместа (L = 1 восемь разрядов, L = 0 четыре), (N - 1 две строки) (F = 1 матрица 5x10 точек, F = 0 матрица 5x7 точек)

Устанавливает адрес ОЗУ генератора символов (CG)

Устанавливает адрес ОЗУ LCD

Считывает   флаг   занятости   (В = 1 занят)

Записывает   данные   на LCD

 или в ОЗУ  генератора символов

Считывает данные с LCD или

ОЗУ генератора символов                       

1,64 мс 
 

1,б4 мс 

40 мкс 
 
 

40 мкс 
 
 

40 мкс 
 
 
 

40 мкс 
 
 
 
 

40 мкс 

40 мкс 

0 

40 мкс 
 

40 мкс

 

      Ниже  приводится программа управления ЖКИ: инициализация, затем опрос занятости и сброс на первую строку дисплея слова «PRIVET.», пользуясь DD-RAM и слова «Привет!» с помощью символов CG-RAM.

include   <p!6f377.h>

include  <lmO321.h>

; ===================================

; Переменные   управления   индикатором

; ===================================

;

LCD_DATA EQU         PORTB

LCD_   DATA   TRIS EQU         TRISB

LCD_CNTL EQU         PORTЕ

E EQU         1

RRW EQU         0

RS EQU         2

TEMPI1 EQU 0x0 30

; =========================================

; Начало кода

; =========================================

ORG RESET_V

nор

RESET   GOTO      START

; =========================================

; Начало   исполняемого   кода   с   адреса   100h

; =========================================

ORG        100h

START

CLRF      STATUS

CLRF  PORTB

CLRF  FORTE

BSF STATUS, RPO

CLRF TRISB

CLRF TRISE

BCF STATUS, RPO

; ==========================================

; Инициализация индикатора

; ==========================================

CLRF         LCD_CNTL

DISPLAY_INIT

    MOVLW 0x038                  ; Выбираем 8-ми битный интерфейс

    MOVWF LCD_DATA

    BSF LCD_CNTL, E 

    BCF LCD_CNTL, E

LCD_DELAY

    MOVLW LCD_INIT_DELAY

    MOVWF MSD

       CLRF LSD 
               CLRF LSD 
LOOP 2

       DECFSZ LSD, F        ; Delay time = MSD * ((3 * 256) + 3) * Тсу

       GOTO LOOP2

       DECFSZ MSD,F 
END_LCD_DELAY

       GOTO LOOP2 
CMD_SEQ

       MOVLW 0x38

       MOVWF  LCD_DATA

       BSF LCD_CNTL, E

       BCF LCD_CNTL, E

MOVLW    DISP_ON

CALL         SEND_CMD

MOVLW   CLR_DISP

CALL  SEND_CMD

MOVLW    ENTRY_INC

CALL         SEND_CMD

MOVLW    DD_RAM_ADDR

CALL         SEND_CMD

; ====================================

; Начало работы

; ====================================

CALL         FUNCTION

GOTO         START

FUNCTION

      MOVLW 'P'

      CALL         SEND_CHAR

      MOVLW 'R’

      CALL         SEND_CHAR

      MOVLW 'I'

      CALL        SEND_CHAR

      MOVLW 'V'

      CALL         SEND_CHAR

      MOVLW 'E’

      CALL         SEND_CHAR

      MOVLW 'T’

      CALL         SEND_CHAR

      MOVLW '.’

      CALL         SEND_CHAR

      MOVLW       B'11000000'

      CALL        SEND_CMD

      MOVLW h'A8'

      CALL         SEND_CHAR

      MOVLW h'50’

      CALL        SEND_CHAR

      MOVLW h'A5’

      CALL         SEND_CHAR

      MOVLW h'4 2'

      CALL         SEND_CHAR

      MOVLW h'45'

      CALL         SEND_CHAR

      MOVLW h'54 '

      CALL         SEND_CHAR

                   MOVLW h'21'

RETURN

; =====================================

; Подпрограмма  вывода символа на экран ЖКИ

; =====================================

SEND_CHAR

      MOVWF CHAR

      CALL  BUSY_CHECK

      MOVF  CHAR, W

      MOVWF LCD_DATA

      BCF LCD_CNTL, RRW

      BSF LCD_CNTL, RS

      BSF LCD_CNTL, E

      BCF LCD_CNTL, E

RETURN

; ===================================

; Подпрограмма  передачи команды на ЖКИ

; ===================================

SEND_CMD

MOVWF CHAR

CALL         BUSY_CHECK

MOVF  CHAR, W

MOVWF  LCD_DATA

BCF LCD_CNTL, RRW

BCF LCD_CNTL, RS

BSF LCD_CNTL, E

BCF LCD_CNTL,E 
RETURN

; ===================================================

; Подпрограмма  ожидания разрешения от ЖКИ  на передачу 

; символа или команды

; ================================================== 

BUSY_CHECK

BSF STATUS,RPO

MOYLW 0xFF

MOVWF LCD_DATA_TRIS

BCF STATUS, RPO

BCF LCD_CNTL, RS

BSF LCD_CNTL, RRW

BSF LCD_CNTL, E

BCF LCD_CNTL, E

MOVF LCD_DATA, W                                                   

MOVWF TEMPI

BCF TEMPI, 7

BTFSC TEMPI, 7

GOTO      BUSY_CHECK

BCF LCD_CNTL, RRW

BSF STATUS, RPO

MOVLW 0x00

MOVWF LCD_DATA_TRIS

BCF STATUS, RPO

RETURN

end 

      3.2 Программа управления  термодатчиком и  двигателем 

      Согласно  заданным условиям эксплуатации проектируемой  системы температура в теплице  должна поддерживаться пределах 20 - 30 градусов. Алгоритм программы управляющего микроконтроллера, реализующий контроль температуры в заданных пределах путем естественной вентиляции и нагрева: открытие окон происходит при превышении температуры и закрытие при понижении температуры, показан на рисунке 3.3.

Рисунок 3.3 – Блок-схема алгоритма работы управляющего контроллера

      Блок-схема  алгоритма управления термодатчиком  DS 1820, описанного в параграфе 2.3. имеет вид, показанный на рисунке 3.4.

Рисунок 3.4 – Блок-схема управления DS 1820

      Программа для управляющего контроллера PIC 16 F877.

#INCLUDE PIС 16F877.IN

OPTIONR EQU 81H                                ; OPTION {RP0=l).

PC           EQU 02H                                ; счетчик команд

PORTA          EQU               05H            ; порт А

PORTB          EQU               06H  ; порт В

TRISA                    EQU               85H    ; направления порта А

TRISB                          EQU               8 6H     ; направления порта В

INTCON         EQU               0BH ; флагов прерываний

              ; Регистры общего назначения

TEMP EQU        21H  ; временный

ZAN                  EQU                22H ; счетчик паузы

COUN EQU 23H ; счетчик битов

LSB                  EQU                         24Н ; мл. регистр приема от DS

LSBH EQU 25H ; ст. регистр приема от DS

                    ; Регистры измеренных температур

Информация о работе Разработка микропроцессорной системы климат-контроля