Автор работы: Пользователь скрыл имя, 14 Марта 2011 в 17:40, курсовая работа
Данная работа посвящена разработке системы климат-контроля в квартирах и офисах, предусмотренной в так называемых «интеллектуальных» зданиях, в которых помимо нее предусмотрены:
- автономное питание от дизель-генераторной установки и солнечных батарей;
- системы охранной безопасности, включая пожарную, и блокировки лифтов;
- системы видеонаблюдения;
- системы телекоммуникации – интернет, спутниковая связь и TV.
Первая строка начинается с адреса 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.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
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
; Регистры измеренных температур
Информация о работе Разработка микропроцессорной системы климат-контроля