Автор работы: Пользователь скрыл имя, 14 Марта 2011 в 17:40, курсовая работа
Данная работа посвящена разработке системы климат-контроля в квартирах и офисах, предусмотренной в так называемых «интеллектуальных» зданиях, в которых помимо нее предусмотрены:
- автономное питание от дизель-генераторной установки и солнечных батарей;
- системы охранной безопасности, включая пожарную, и блокировки лифтов;
- системы видеонаблюдения;
- системы телекоммуникации – интернет, спутниковая связь и TV.
PORTA - 6-разрядный порт ввода вывода. Все каналы PORTA имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал как вход или выход. Запись Т в TRISA переводит соответствующий выходной буфер в 3-е состояние. Запись '0' в регистр TRISA определяет соответствующий канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).
RA4 - имеет триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым входом TOCK1. Все остальные каналы PORTA имеют TTL буфер на входе и полнофункциональные выходные КМОП буферы.
Каналы PORTA мультиплицированы с аналоговыми входами АЦП и аналоговым входом источника опорного напряжения VREF. Биты управления режимов работы каналов порта ввода/вывода PORTA находятся в регистре ADCON1.
Биты
регистра TRISA управляют направлением каналов
PORTA, даже когда они используются как аналоговые
входы. Пользователь должен удостовериться,
что соответствующие каналы PORTA настроены
на вход при использовании их в качестве
аналоговых входов.
Таблица 2.3 - Функциональное назначение выводов PORTA
Обозначение вывода | №бита | Тип буфера |
|
RA0/AN0 | Бит0 | TTL | Двунаправленный порт ввода/вывода или аналоговый вход |
RA1/AN1 | бит 1 | TTL | Двунаправленный порт ввода/вывода или аналоговый вход |
RA2/AN2 | бит 2 | TTL | Двунаправленный порт ввода/вывода или аналоговый вход |
RA3/AN3 | Бит3 | TTL | Двунаправленный порт ввода/вывода или аналоговый вход |
RA4/TOCK1 | бит 4 | ST | Двунаправленный порт ввода/вывода, может использоваться как ТОСК1, выход с открытым стоком |
RA5/-SS/AN4 | бит 5 | TTL | Двунаправленный порт ввода/вывода или вход выбора синхронного последовательного порта или |
Обозначение: ST = вход с триггером Шмидта; TTL = входной буфер TTL.
2.1.5 Система команд.
Каждая
команда микроконтроллеров
Для байт ориентированных команд ‘f’ является указателем регистра, а ‘d’ указателем адресата результата. Указатель регистра определяет, какой регистр должен использоваться в команде. Указатель адресата определяет, где будет сохранен результат. Если 'd'=0, результат сохраняется в регистре W. Если 'd'=1, результат сохраняется в регистре, который используется в команде.
Система команд аккумуляторного типа, ортогональна и разделена на три основных группы:
- байт ориентированные команды;
- бит ориентированные команды;
- команды управления и операций с константами.
Все
команды выполняются за один машинный
цикл, кроме команд условия, в которых
получен истинный результат и инструкций
изменяющих значение счетчика команд
PC. В случае выполнения команды за два
машинных цикла, во втором цикле выполняется
инструкция NOP. Один машинный цикл состоит
из четырех тактов генератора. Для тактового
генератора с частотой 4 МГц все команды
выполняются за 1мкс, если условие истинно
или изменяется счетчик команд PC, команда
выполняется за 2мкс.
Таблица 2.4 - Описание полей кода операции
Поле |
|
f | Адрес регистра (от 0x00 до 0x7F) |
w | Рабочий регистр (аккумулятор) |
b | Номер бита в 8-разрядном регистре |
k | Константа (данные или метка) |
X | Не имеет значения (0 или 1 ). Ассемблер генерирует х=0 для совместимости программы микроконтроллера с инструментальными средствами |
d | Указатель адресата
результата операции:
d = 0 - результат сохраняется в регистре w d = 1 - результат сохраняется в регистре f По умолчанию d = 1 |
label | Имя метки |
dest | Приемник, регистр w или регистр памяти |
[] | Дополнительные параметры |
0 | Содержимое |
-> | Присвоение |
< > | Битовое поле |
Структура команд имеет следующий вид:
Рисунок
2.5 - Форма команд трех основных групп
2.2
Термодатчик DS1820
Термодатчики типа DS18x20, выпускаемые фирмой Dallas Semiconductor, предназначены для совместной работы с микроконтроллерными устройствами. Разработанный фирмой однопроводной интерфейс (l-Wire Bus) использует одну линию передачи данных, которые удобно обрабатывать микроконтроллерами [2].
Датчик температуры DSl820 представляет собой специализированный микроконтроллер, который имеет установку конфигурации, вычислительное устройство, память программ, память данных и реакцию на внешнее воздействие. При этом внешнее управляющее воздействие выполняет микропроцессор PIC 16 F 877 приема и обработки данных.
Термодатчики DS1820 имеют следующие технические характеристики:
- индивидуальный 64-битный идентификационный номер;
- напряжение питания от +3 до +5,5 В;
- измеряемая температура от -55 до + 125°С;
- погрешность измерения температуры в диапазоне -10...+85°С не более 0,5°С;
- информация о температуре выдается 9-битным кодом;
- установка пороговых значений температуры по максимуму и минимуму;
- максимальное время преобразования температуры в код 750 мс;
- возможность питания от высокого уровня шины данных;
- термодатчики
не требуют индивидуальной
Термодатчики выпускают в двух типах корпусов: ТО-92 и SOIC. Наиболее удобный для применения в выносном варианте трехвыводной корпус ТО-92.
Назначение выводов: 1 (5) — общий (земля), 2 (4) — вход/выход, 3 (3) — плюс питания. В скобках указаны номера выводов для восьмивыводного корпуса SOIC.
Принцип работы термодатчика основан на сравнении частот двух внутренних генераторов. Один генератор выдает постоянную частоту независимо от температуры, а частота второго генератора изменяется в зависимости от температуры корпуса термодатчика. Путем вычислений формируется выходной код, который включает и информацию о знаке температуры.
Для начала работы с термодатчиком управляющий микроконтроллер должен инициализировать его посылкой необходимых команд. Перечень основных команд термодатчика:
F0h - поиск ROM (Search ROM) - команда выдается управляющим микроконтроллером для определения числа и типа термодатчиков, подключенных к одной линии.
33h - чтение ROM (Read ROM) - команда инициализирует термодатчик для генерации в линию идентификационного номера. Эту команду нельзя посылать, если к одной линии связи подключено несколько термодатчиков. Прежде чем подключить несколько датчиков на одну линию, необходимо для каждого датчика определить его личный номер с использованием данной команды.
55h - идентификация ROM (Match ROM) - команда выдается перед 64-битным идентификационным номером подтверждает обращение именно к этому термодатчику. Все последующие команды будут восприниматься только одним датчиком до команды обнуления линии.
CCh - пропуск ROM (Skip ROM) - команда может использоваться, когда необходимо обратиться ко всем датчикам, расположенным на одной линии, или когда к линии подключен только один датчик. Общей для многих датчиков может быть команда начала преобразования температуры. При обращении к одному термодатчику команда позволяет упростить программу за счет того, что пропускается громоздкая подпрограмма идентификации кода и вычисления кода четности.
ECh - поиск аварии (Alarm Search) - действие команды аналогично команде «Поиск ROM», но отвечает на нее термодатчик, если измеренная температура выходит за пределы предварительных установок по максимуму и минимуму.
44h - начало преобразования температуры (Convert Т) - команда разрешает преобразование температуры и запись результата в блокнот. От подачи этой команды до считывания необходимо выдержать паузу, необходимую для преобразования с установленной точностью.
Beh - чтение блокнота (Read Scratchpad) - в блокноте содержится 8 байт информации (рисунок 2.6). Если нужна информация только о температуре, то считывается 9 бит. Термодатчик будет выдавать информацию до тех пор, пока управляющий микроконтроллер не выдаст в линию нулевой импульс.
Рисунок 2.6 – Карта памяти термодатчика DS 1820
4Eh - запись в блокнот (Write Scratchpad) - после этой команды управляющий микроконтроллер должен послать два байта для записи в блокнот максимальной ТН и минимальной TL температуры ограничения по максимуму и минимуму. Все 16 бит необходимо передавать непрерывно без обнуления линии.
48Н - копирование блокнота (Copy Scratchpad) - после этой команды минимальная (TL) и максимальная (ТН) установленные значения температур переписываются в энергонезависимую память (EEPROM). После отключения напряжения питания записанные значения! сохранятся в памяти.
B8h - восстановление (Recall В2) - команда необходима для копирования значений температуры из. EEPROM в рабочую зону блокнота. При выполнении восстановления термодатчик выдает в линию низкий уровень, а после окончания записи — высокий.
B4h - питание от линии (Read Power Supply) - после этой команды термодатчик переходит к питанию от линии. В составе термодатчика имеется конденсатор, который заряжается от высокого уровня линии.
Перед опросом термодатчика управляющим микроконтроллером необходимо выдержать время, необходимое для заряда конденсатора.
Микроконтроллерный
термодатчик тактируется
Термодатчик работает на пониженных частотах из-за большого разброса длительности импульсов принятого в интерфейсе формата обмена данными между термодатчиком и управляющим микроконтроллером.
Передача данных по однопроводной шине выполняется импульсами нулевого уровня, но различной длительности. Импульс воспринимается как логическая 1, если его длительность не превышает 15 мкс (рисунок 2.7). Если длительность импульса больше 15 мкс, то он воспринимается как логический 0.
Рисунок 2.7 – Импульсы логического 0 и 1
Длительность одного бита информации принята равной 60 мкс. Отсюда и разброс возможных длительностей импульсов: лог. 0 — I...15 мкс, лог. 1 — 15...60 мкс. Для того чтобы термодатчик подготовить к приему информации, управляющий микроконтроллер должен послать в линию импульс обнуления (Reset) (рисунок 2.8).
Рисунок
2.8 – Импульс обнуления
Импульс обнуления должен иметь длительность 480...960 мкс. В ответ на обнуление линии термодатчик посылает импульс присутствия (Presence). Если в устройстве не предусмотрено отключение датчика, то импульс присутствия для упрощения программы можно не проверять, а заполнить это время (около 100 мкс) паузой. Длительность импульса Presence может быть в пределах 60...240 мкс.
Если к одной линии подключено несколько термодатчиков, то проверка импульса присутствия обязательна. Перед приемом каждого бита информации с датчика, микроконтроллер управления PIC должен послать короткий импульс готовности (запроса) длительностью 1...3 мкс.
Информация о работе Разработка микропроцессорной системы климат-контроля