Разработка микропроцессорной системы климат-контроля
СОДЕРЖАНИЕ: ВВЕДЕНИЕ Быстрорастущие потребности современного общества требуют широкомасштабного, тотального использования новейших технологий в различных отраслях экономики, так называемого Hi-Tec (High Technogy). Разработка современных систем автоматизации технологического процесса производства является одной из актуальнейших задач развития экономики любого государства.ВВЕДЕНИЕ
Быстрорастущие потребности современного общества требуют широкомасштабного, тотального использования новейших технологий в различных отраслях экономики, так называемого Hi-Tec(HighTechnogy). Разработка современных систем автоматизации технологического процесса производства является одной из актуальнейших задач развития экономики любого государства.
Крупнейший специалист в области информатики академик Е.П.Велихов в одной из своих статей высказал гениальную по своей простоте мысль: «Тот, кто умеет делать компьютеры, владеет миром». В России и странах СНГ развитие микроэлектроники в настоящее время находится в кризисном состоянии. В силу объективных исторических обстоятельств конца 90-х годов переход на производство субмикронных интегральных микросхем не был освоен, что привело к катастрофическому отставанию от мировой техники.
Все разнообразные средства цифровой техники: персональные компьютеры, микропроцессорные системы измерений и автоматизация технологических процессов, цифровая связь, телевидение, бытовая техника и т.д. строятся на единой элементной базе, в состав которой входят чрезвычайно разные по сложности микросхемы – от логических элементов, выполняющих простейшие операции, до сложнейших программируемых кристаллов, содержащих миллионы логических элементов.
С появлением микропроцессоров и СБИС с программируемой структурой произошло качественное изменение подхода к методам проектирования и изготовления средств автоматики.
Микропроцессор способен выполнять команды, входящие в его систему команд. Меняя последовательность команд (программу), можно решать различные задачи на одном и том же микропроцессоре. Иначе говоря, в этом случае задачи структура аппаратных средств не связана с характером решаемой задачи. Это обеспечивает микропроцессорам массовое производство с соответствующим снижением стоимости.
Данная работа посвящена разработке системы климат-контроля в квартирах и офисах, предусмотренной в так называемых «интеллектуальных» зданиях, в которых помимо нее предусмотрены:
- автономное питание от дизель-генераторной установки и солнечных батарей;
- системы охранной безопасности, включая пожарную, и блокировки лифтов;
- системы видеонаблюдения;
- системы телекоммуникации – интернет, спутниковая связь и TV.
1 ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
1.1 Этапы разработки системы
1.1.1 Задачи и принципы управления.
Задача управления – изменять протекающие в объекте управления процессы посредством соответствующих команд для достижения поставленной цели.
Фундаментальными принципами управления являются:
- принцип разомкнутого управления;
- принцип компенсации – управление по возмущению;
- принцип обратной связи.
Таким образом, САУ – это система, стремящаяся сохранить в допустимых пределах рассогласование (ошибку) (t) между требуемыми х(t) и действительными у(t) значениями управляемых переменных с помощью их сравнения на основе принципа ОС и использования получаемых при этом сигналов управления.
Система, в которой входной сигнал х(t) – известная функция (детерминированный сигнал) на всем промежутке управления, называется системой программного управления.
Система, в которой задающий входной сигнал х(t) =const, называется системой стабилизации.
Система, в которой задающий входной сигнал x(t)– случайная функция, называется следящей системой. Система, управляющая только одной выходной величиной, называются одномерной. Одномерные системы могут быть системами программного управления, системами стабилизации и следящими системами.
Кроме того, на практике используются:
- системы с поиском экстремума показателя качества;
- системы оптимального управления;
- адаптивные системы.
1.1.2 Классификация САУ.
Системы автомаического управления (САУ) можно классифицировать по классам и принципам действия.
По классам дифференциальных уравнений:
Линейными системами называются систмы, описываемые линейными дифференциальными уравнениями, в противном случае система входит в класс нелинейных. Линейные и нелинейные дискретные системы описываются соответсвеннно линейными и нелинейными разностными уравнениями или системами разностных уравнений.
Линейные и нелинейные стационарные системы описываются дифференциальными уравнениями с постоянымикоэффициентами, а нестационарные системы с переменными коэффициентами.
Сосредоточенные системыили системы со средоточенными параметрами, описываются обыкновенными дифференциальными уравнениями.
Распределенныесистемы или системы с распределенными параметрами, описываются дифференциальными уравнениями в частных производных.
Существуют два закона управления: по отклонению выходной велины и по возмущению.
САУ по отклонению – принцип И.И.Ползунова, предложенная им в 1765г. В настоящее время используется в 90% промышленных САУ.
Достоинством САУ по отклонению является то, что она компенсирует влияние любого возмущающего воздействия, которое вызвало изменение значения ее выходного сигнала у от заданного значения. Это изменение фиксирует датчик и через цепь отрицательной обратной связи, сигнал контролируемого параметра поступает на вход сравнивающего устрйства, которое, в свою очередь, вырабатывает сигнал отклонения = х - хос , поступающего на регулятор (рисунок 1.1). Недостаток состоит в том, что сначала должно появиться отклонение выходного сигнала у (параметра) от заданного ззначения и только затем регулятор компенсирует возмущающе воздействие.
Рисунок 1.1 - Структурная схема САУ по отклонению
САУ по возмущению – принцип Ж.Понселе, предложеннй им в 1830г. Если f возмущающее действие на объект, его измеряют и подают на регулятор для сравнения с заданным значением и выработки управляющего сигнала, изменяющего значение входного сигнала (рисунок 1.2).
Рисунок 1.2 - Структурная схема САУ по возмущению
При таком принципе управления изменение возмущающего воздействия компенсируется регулятором до того, как оно нарушит технологический режим работы объекта. Однако есть существенный недостаток – неспособность компенсировать влияние других возмущающих воздействий.
САУ по возмущению является разомкнутой, т.е. без обратной связи по выходному сигналу.
Комбинированные САУ совмещают оба закона управления и лишены многих недостатков рассмотренных схем.
По закону изменения выходного сигнала задатчика различают САУ стабилизации, программные и следящие.
По закону изменения выходного сигнала регулятораразличают САУ дискретные (двух, трехпозиционные) и непрерывные (аналоговые).
Двухпозиционные (вкл. – выкл.) системы надежны (холодильные установки), дешевы, но мала точность регулирования.
Трехпозиционные (больше-норма-меньше) системы обладают качеством выше, но надежность мала.
В аналоговых системах выходной сигнал регулятора непрерывно изменяется во времени в определенном стандартизированном диапазоне.
1.1.3 Основные элементы автоматики.
Элементами автоматики называются устройства, выполняющие определенные функции преобразования сигнала в системах автоматического управления и контроля. Элементы автоматики могут быть соединены электрическими, механическими и другими связями, а на чертежах изображают в виде кинематических, электрических, гидравлических и
пневматических схем.
Каждый элемент в системе выполняет определенную функцию, которая заключается в получении, преобразовании и передаче информации в виде сигналов.
По назначению элементы автоматики делятся на: датчики, регуляторы, усилители, стабилизаторы, реле, распределители, двигатели и т.д.
Датчик – устройство, предназначенное для преобразования информации, поступающей на его вход в виде некоторой физической величины, на выходе в другую физическую величину, более удобную для воздействия на последующие элементы.
Основной характеристикой датчика является зависимость выходной величины у от входной х, т.е. у = f(x) или просто выходной характеристикой.
Различают два вида датчиков: параметрические, в которых изменение контролируемой величины сопровождается соответствующим изменением параметра электрической цепи (активного, индуктивного и емкостного сопротивления) и наличие источника питания и генераторные, в которых изменение контролируемой величины сопровождается соответствующим изменением ЭДС на выходе.
В зависимости от вида используемой энергии различают механические, тепловые, оптические и другие типы датчиков.
Основной характеристикой элементов является зависимость выходной величины у от входной х, т.е. у = f(x) или просто выходной характеристикой, помимо которой существуют частотные и временные характеристики.
Реле - элемент автоматики, в котором при достижении входной величины х определенного значения выходная величина у изменяется скачком. Существуют различные типы реле, но основными являются электромеханические (электромагнитные, магнитоэлектрические, электродинамические и т.д.), в которых изменение входной электрической величины вызывает замыкание или размыкание контактов. Бывают бесконтактные магнитные реле (герконы) и бесконтактные реле электронного типа (триггеры).
Распределитель (мультиплексор) – элемент автоматики, осуществляющий поочередное подключение одной входной величины к одному входу других цепей. Распределители используются при необходимости управления несколькими объектами от одного и того же управляющего органа.
Исполнительные устройства- это электромагниты с втяжным и поворотным якорями, электромагнитные муфты, а также электродвигатели.
Используя выходную характеристику элемента y = f(x), можно получить коэффициент преобразования или коэффициент передачи, представляющий собой отношение выходной величины у к входной х
К = у/х (1.1)
при х = constназываемый статическим коэффициентом преобразования.
Например, у датчика коэффициентом преобразования является чувствительность, а для усилителя - коэффициент усиления.
Отношение приращения выходной величины у (или dy) к приращению входной величины х (или dx)
К = у/х dy/dx (1.2)
при х 0 называется динамическим коэффициентом преобразования.
Динамическим режимом называется процесс перехода элементов и систем из одного установившегося состояния в другое, т.е. такое условие их работы, когда входная величина х, а, следовательно, и выходная величина у изменяются во времени.
1.2 Показатели качества регулирования
САУ должна обеспечивать требуемое качество работы установки в переходных режимах при изменении задающего или возмущающего воздействия. Качество регулирования оценивается следующими показателями: перерегулирование, быстродействие (время регулирования) и число колебаний регулируемой величины за время переходного процесса.
Перерегулированием называется отношение разности между максимальным и установившимся отклонениями регулируемой величины к установившемуся отклонению. На рисунке 1.3 показано изменение регулируемой величины при ступенчатом воздействии. Перерегулирование равно
(1.5)
где xmax – максимальное отклонение регулируемой величины;
x() – установившееся отклонение регулируемой величины.
Рисунок 1.3 – Показатели качества регулирования
Допустимое перерегулирование обычно равно m = 18…25%.
Быстродействие или время регулированияtp представляет время, в течение которого отклонение регулируемой величины от x(t) превышает некоторое допустимое значение, обычно принимаемое = 5%.
Число колебаний регулируемой величины Nза время переходного процесса tp должно быть ограниченным. Обычно принимают N 3.
Работа САУ характеризуется точностью , под которой понимается степень приближения действительного выходного сигнала x к его заданному значению х0 .
Величина x = х0 – х называется ошибкой САУ. Установившаяся ошибка отработки постоянного сигнала называется статической ошибкой. Текущая ошибка отработки переменного сигнала называется динамической ошибкойСАУ. Динамическая ошибка изменяется в течении времени и зависит от структуры, параметров и характера изменения воздействия. Статическая ошибка определяется структурой, параметрами и величиной постоянного воздействия.
1.3 Структурная схема системы климат-контроля
Учитывая условия функционирования с заданными показателями качества переходных процессов, а также требуемые выходные характеристики системы можно представить структурную схему системы климат-контроля (СКК) в строгом соответствии с техническим заданием и техническими условиями эксплуатации.
Рисунок 1.4 – Структурная схема цифровой системы
Структурная схема состоит из следующих основных элементов: Д - датчик температуры; АЦП – аналого-цифровой преобразователь; Н – норма (допустимая величина температуры); СМР – компаратор; СУ – схема управления кондиционером; ИМ – исполнительный механизм (кондиционер); ОУ – объект управления (помещение); И – жидко-кристаллический индикатор.
Датчик температуры осуществляет преобразование температуры в помещении в электрический сигнал аналоговой формы.. Прием сигнала и преобразование аналогового в цифровой и сравнение с допустимой величиной производится микроконтроллером, который в свою очередь управляет цепью включения кондиционера и контроллером жидко-кристаллического дисплея LCD.
Таким образом, разработав структурную схему системы улимат-контроля на первом этапе, далее необходимо выбрать ее элементы, согласовать уровни сигналов между ними, осуществить разработку схему управления электроприводом и программу управления внешними устройствами.
2 КОНСТРУКТОРСКАЯ ЧАСТЬ
2.1 Микроконтроллер как основной элемент
Характеристика микроконтроллера PIC16F877:
- высокоскоростная RISCархитектура;
- 35 инструкций;
- команды выполняются за один цикл, выполняемых за два цикла.
- тактовая частота: DC - 20МГц, тактовый сигнал DC - 200нс;
- до 8к х 14 слов FLASH памяти программ, до 368 х 8 байт памяти данных (ОЗУ) До 256 х 8 байт EEPROM памяти данных;
- система прерываний (до 14 источников);
- 8-уровневый аппаратный стек;
- прямой, косвенный и относительный режим адресации;
- выбор параметров тактового генератора;
- программирование в готовом устройстве;
- широкий диапазон напряжений питания от 2.0В до 5.5В.
Рисунок 2.1 - Внешний вид микроконтроллера PIC16F877
2.1.1 Характеристика периферийных модулей.
Микроконтроллер имеет следующие периферийные модули:
- таймер 0: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем;
- таймер 1: 16-разрядный таймер/счетчик с возможностью подключения внешнего резонатора;
- таймер 2: 8-разрядный таймер/счетчик с 8-разрядным программируемым предделителем и выходным делителем;
- два модуля ССР;
- многоканальное 10-разрядное АЦП.
- последовательный синхронный порт MSSP;
- последовательный синхронно-асинхронный приемопередатчик USART с поддержкой детектирования адреса.
Рисунок 2.2 - Структурная схема микроконтроллера PIC16F877
2.1.2 Организация памяти.
В микроконтроллерах PIC16F87X имеется три вида памяти. Память программ и память данных имеют раздельные шины данных и адреса, что позволяет выполнять параллельный доступ.
Рисунок 2.3 - Организация памяти в микроконтроллере PIC16F877
Микроконтроллеры PIC16F87X имеют 13-разрядный счетчик команд PC, способный адресовать 8К х 14 слов памяти программ. Физически реализовано FLASH памяти программ 8К х 14 в PIC16F877. Обращение к физически не реализованной памяти программ приведет к адресации реализованной памяти.
Адрес вектора сброса – 0000h. Адрес вектора прерываний – 0004h.
Память данных разделена на четыре банка, которые содержат регистры общего и специального (SFR) назначения. Биты RP1 (STATUS6) и RPO (STATUS5) предназначены для управления банками данных. В таблице показано состояние управляющих битов при обращении к банкам памяти данных.
Таблица 2.1 – Банки памяти
RP1:RP0 | Банк |
00 | 0 |
01 | 1 |
10 | 2 |
11 | 3 |
Объем банков памяти данных до 128 байт (7Fh). В начале банка размещаются регистры специального назначения, затем регистры общего назначения выполненные как статическое ОЗУ. Все реализованные банки содержат регистры специального назначения. Некоторые, часто используемые регистры специального назначения могут отображаться и в других банках памяти.
2.1.3 Регистры.
Обратиться к регистрам общего назначения можно прямой или косвенной адресацией, через регистр FSR.
С помощью регистров специального назначения выполняется управление функциями ядра и периферийными модулями микроконтроллера. Регистры специального назначения реализованы как статическое ОЗУ.
Врегистре STATUS содержатся флаги состояния АЛУ, флаги причины сброса микроконтроллера и биты управления банками памяти данных.
Регистр STATUS может быть адресован любой командой, как и любой другой регистр памяти данных. Если обращение к регистру STATUS выполняется командой, которая воздействует на флаги Z, DC и С, то изменение этих трех битов командой заблокирована. Эти биты сбрасываются или устанавливаются согласно логике ядра микроконтроллера. Команды изменения регистра STATUS также не воздействуют на биты -ТО и -PD. Поэтому, результат выполнения команды с регистром STATUS может отличаться от ожидаемого. Например, команда CLRFSTATUS сбросит три старших бита и установит бит Z (состояние регистра STATUS после выполнения команды 000uu1uu, где u - не изменяемый бит).
При изменении битов регистра STATUS рекомендуется использовать команды, не влияющие на флаги АЛУ (SWAPF, MOVWF, BCF и BSF).
Таблица 2.2 - Регистр STATUS
R/W-0 | R/W-0 | R/W-0 | R-1 | R-1 | R/W-x | R/W-x | R/W-x |
IRP | RP1 | RPO | -ТО | -PD | Z | DC | с |
Бит 7 | Бит0 |
бит 7: IRP: Бит выбора банка при косвенной адресации
1 = банк 2, 3(100h-1FFh)
0 = банк 0, 1 (000h - 0FFh)
биты 6-5: RP1:RP0: Биты выбора банка при непосредственной адресации
11 = банк 3(180h-1FFh)
10 = банк 2(100h-17Fh)
01= банк 1 (080h - 0FFh)
00= банк 0 (000h - 07Fh)
бит 4: -ТО: Флаг переполнения сторожевого таймера
1 = после POR или выполнения команд CLRWDT, SLEEP
0 = после переполнения WDT
бит 3: -PD: Флаг включения питания
1 = после POR или выполнения команды CLRWDT
0 = после выполнения команды SLEEP
бит 2: Z: Флаг нулевого результата
1 = нулевой результат выполнения арифметической или логической операции
0 = не нулевой результат выполнения арифметической или логической операции
бит 1: DC: Флаг десятичного переноса/заема (для команд ADDWF, ADDWL, SUBWF, SUBWL), заем имеет инверсное значение
1 = был перенос из младшего полубайта
0 = не было переноса из младшего полубайта
бит 0: С: Флаг переноса/заема (для команд ADDWF, ADDWL, SUBWF, SUBWL), заем имеет инверсное значение
1 = был перенос из старшего бита
0 = не было переноса из старшего бита
Рисунок 2.4 - Запись значения в счетчик команд PC
13-разрядный регистр счетчика команд PC указывает адрес выполняемой инструкции. Младший байт счетчика команд PCL доступен для чтения и записи. Старший байт РСН, содержащий 12:8 биты счетчика команд PC, не доступен для чтения и записи. Все операции с регистром РСН происходят через дополнительный регистр PCLATH. При любом виде сброса микроконтроллера счетчик команд PC очищается. На рисунке 2-5 показано две ситуации загрузки значения в счетчик команд PC. Пример сверху, запись в счетчик команд PC происходит при записи значения в регистр PCL (PCLATH 4:0 — РСН).
2.1.4 Порты ввода/вывода.
Некоторые каналы портов ввода/вывода мультиплицированы с периферийными модулями микроконтроллера. Когда периферийный модуль включен, вывод не может использоваться как универсальный канал ввода/вывода.
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 Система команд.
Каждая команда микроконтроллеров PIC16F87X состоит из одного 14-разрядного слова, разделенного на код операции (OPCODE), определяющий тип команды и один или несколько операндов, определяющие операцию команды. Команды разделены на следующие группы: байт ориентированные команды, бит ориентированные команды, команды управления и операций с константами [22, 23]. Описание полей кода операции смотрите в таблице 4.6.
Для байт ориентированных команд ‘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 Термодатчик DS 1820
Термодатчики типа DS18x20, выпускаемые фирмой DallasSemiconductor, предназначены для совместной работы с микроконтроллерными устройствами. Разработанный фирмой однопроводной интерфейс (l-WireBus) использует одну линию передачи данных, которые удобно обрабатывать микроконтроллерами [2].
Датчик температуры DSl820 представляет собой специализированный микроконтроллер, который имеет установку конфигурации, вычислительное устройство, память программ, память данных и реакцию на внешнее воздействие. При этом внешнее управляющее воздействие выполняет микропроцессор PIC16 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 (SearchROM) - команда выдается управляющим микроконтроллером для определения числа и типа термодатчиков, подключенных к одной линии.
33h - чтение ROM (ReadROM) - команда инициализирует термодатчик для генерации в линию идентификационного номера. Эту команду нельзя посылать, если к одной линии связи подключено несколько термодатчиков. Прежде чем подключить несколько датчиков на одну линию, необходимо для каждого датчика определить его личный номер с использованием данной команды.
55h - идентификация ROM (MatchROM) - команда выдается перед 64-битным идентификационным номеромподтверждает обращение именно к этому термодатчику. Все последующие команды будут восприниматься только одним датчиком до команды обнуления линии.
CCh - пропуск ROM (SkipROM) - команда может использоваться, когда необходимо обратиться ко всем датчикам, расположенным на одной линии, или когда к линии подключен только один датчик. Общей для многих датчиков может быть команда начала преобразования температуры. При обращении к одному термодатчику команда позволяет упростить программу за счет того, что пропускается громоздкая подпрограмма идентификации кода и вычисления кода четности.
ECh - поиск аварии (AlarmSearch) - действие команды аналогично команде «Поиск ROM», но отвечает на нее термодатчик, если измеренная температура выходит за пределы предварительных установок по максимуму и минимуму.
44h - начало преобразования температуры (Convert Т) - команда разрешает преобразование температуры и запись результата в блокнот. От подачи этой команды до считывания необходимо выдержать паузу, необходимую для преобразования с установленной точностью.
Beh - чтение блокнота (ReadScratchpad) - в блокноте содержится 8 байт информации (рисунок 2.6). Если нужна информация только о температуре, то считывается 9 бит. Термодатчик будет выдавать информацию до тех пор, пока управляющий микроконтроллер не выдаст в линию нулевой импульс.
Рисунок 2.6 – Карта памяти термодатчика DS 1820
4Eh - запись в блокнот (WriteScratchpad) - после этой команды управляющий микроконтроллер должен послать два байта для записи в блокнот максимальной ТН и минимальной TL температуры ограничения по максимуму и минимуму. Все 16 бит необходимо передавать непрерывно без обнуления линии.
48Н - копирование блокнота (CopyScratchpad) - после этой команды минимальная (TL) и максимальная (ТН) установленные значения температур переписываются в энергонезависимую память (EEPROM). После отключения напряжения питания записанные значения! сохранятся в памяти.
B8h - восстановление (Recall В2 ) - команда необходима для копирования значений температуры из. EEPROM в рабочую зону блокнота. При выполнении восстановления термодатчик выдает в линию низкий уровень, а после окончания записи — высокий.
B4h - питание от линии (ReadPowerSupply) - после этой команды термодатчик переходит к питанию от линии. В составе термодатчика имеется конденсатор, который заряжается от высокого уровня линии.
Перед опросом термодатчика управляющим микроконтроллером необходимо выдержать время, необходимое для заряда конденсатора.
Микроконтроллерный термодатчик тактируется внутренним генератором частотой 4 МГц и рассчитан на работу с управляющим микроконтроллером, который должен тактироваться такой же частотой.
Термодатчик работает на пониженных частотах из-за большого разброса длительности импульсов принятого в интерфейсе формата обмена данными между термодатчиком и управляющим микроконтроллером.
Передача данных по однопроводной шине выполняется импульсами нулевого уровня, но различной длительности. Импульс воспринимается как логическая 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 мкс.
Обмен данными и командами начинается с младшего бита. Формат регистров термодатчика показан на рисунке 2.9.
Младший регистр температуры LS
26 | 25 | 24 | 23 | 22 | 21 | 20 | 2-1 |
Старший регистр температуры MS (знаковый)
S | S | S | S | S | S | S | S |
Регистры установки ограничения температуры TH , TL
S | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
Рисунок 2.9 – Формат регистров термодатчика DS 1820
Младший регистр температуры (LS) несет информацию о температуре. В нулевой бит записана информация о десятых долях температуры. Если нулевой бит единичный, то десятые доли равны 0,5°С.
Старший регистр температуры (MS) содержит информацию о знаке температуры, Дели значения регистра нулевые, то знак температуры положительный, и наоборот.
Поскольку все биты регистра MS одинаковы, то достаточно считать только младший бит, т.е. длина слова от термодатчика составляет 9 бит = 8 бит (температура LS) + 1 бит знаковый (MS).
Регистры установки ограничения температуры Тн , TL несут информацию только о целых значениях температуры. В седьмом бите записывают информацию знаке температуры. При отрицательной температуре в седьмой бит необходимо записать единицу.
Таблица 2.5 – Значения кодов термодатчика при различной температуре
Температура | Формируемый двоичный код |
Шестнадцатиричный код |
+85,0о С +25,0o C +0,5o C 0o C -0,5o C -25,0o C -55,0o C |
0000 0000 1010 1010 0000 0000 0011 0010 0000 0000 0000 0001 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1100 1110 1111 1111 1001 0010 |
00ААh 0032h 0001h 0000h FFFFh FFCEh FF92h |
В таблице 2.5 приведен пример принимаемых кодов при различных температурах. Для того чтобы получить значение температуры при минусовых температурах, необходимо принятую информацию перевести в дополнительный код. Для перевода в дополнительный код необходимо принятый код инвертировать и прибавить единицу. Например, для значения 1111 1111 получим 0000 0001, т. е. 0.5°С, но со знаком минус.
Последовательность действий управляющего микроконтроллера PIC при считывании температуры с одного термодатчика DS 1820:
1) послать сигнал обнуления линии (480…960 мкс);
2) принять импульс присутствия или заполнить паузой (60…240 мкс);
3) послать команду пропуска идентификации 0хССh;
4) послать команду начала преобразования 0х44h;
5) пауза не менее 500 мкс для завершения процесса преобразования;
6) обнулить линию;
7) послать команду пропуска идентификации 0хССh;
8) послать команду считывания блокнота 0х0Вh;
9) принять 9 байт;
10) проанализировать бит знака;
11) если знак отрицательный, то перевести значение температуры в дополнительный код.
Программа управления термодатчиком приведена в параграфе 3.2.
2.3 Схема стабилизатора напряжения питания
Предлагается схема стабилизации напряжения питания в допустимых пределах изменения рабочих напряжений от 180 до 250 В, т.е. ± 10% от 220В. Необычность и оригинальность схемы состоит в отсутствии понижающего трансформатора, что, естественно, приводит к уменьшению размеров схемы, но приводит к ограничению температурных условий эксплуатации из-за наличия электролитических конденсаторов.
Схема устройства показана на рисунке 2.10. Источник питания для микроконтроллера, термодатчика и ЖКИ построен по схеме, предложенной О. Ховайко. Конденсаторы С1 и С2, СЗ выполняют роль делителя входного переменного напряжения. Напряжение на электролитических конденсаторах С2, СЗ будет равно 5,5 В, а после диодного моста VD1—VD4 и фильтрации конденсатором С4 повышается до 11 В, подаваемое на регулируемый стабилизатор тока и напряжения ДА1 (КР 142ЕН12А). Стабилизатор с регулируемым выходным напряжением на микросхеме КР142ЕН12А установлен для того, чтобы была возможность точно выставить напряжение питания, равное 5,12 В. Точную регулировку напряжения выполняют переменным резистором R5.
Рисунок 2.10 – Схема стабилизации напряжения и тока источника питания
2.4 Схема системы климат-контроля
На основании структурной схемы, полученной в первой главе, выбранных элементов и схемы источника питания можно приступить к разработке системы климат-контроля. Будем считать заданным электродвигатель постоянного тока с независимым возбуждением и жидкокристаллический индикатор типа МТ-16S2H.
Рисунок 2.11 – Схема системы климат-контроля
Микроконтроллер DD2 через вывод 5 порта А соединен с микросхемой DD1 термодатчика на вывод 2, по которому передаются данные о температуре. Соединение с микросхемой DD3 жидкокристаллического индикатора осуществляется через выводы RB0-RB7 порта В, а управление индикатором через выводы RE0-RE2 порта Е. Регистр R1 индикатора служит для изменения подсветки табло. Микроконтроллер осуществляет управление включением кондиционера через гальваническую связь – оптронную пару U1 типа MOC 3043. Замыкание якорной цепи двигателя происходит с помощью контактов управляющего пускового реле К1 типа РПУ-2. Система начинает функционировать после нажатия кнопки «Пуск». Программы измерения температуры, управление индикацией и двигателем постоянного тока (ДПТ) приведены в третьей главе.
3 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
3.1 Программа управления ЖКИ типа MT -16 S 2 DH
Жидкокристаллические индикаторы (ЖКИ), иначе, жидкокристаллические дисплеи (ЖКД) или LCD-индикаторы (liquidcrystaldisplay) практически полностью заменили светодиодные индикаторы во многих устройствах. Единственным недостатком ЖКИ является то, что им трудно пользоваться при малой освещенности.
В настоящее время широко применяется двухстрочный ЖКИ MT-16S2DHс контроллером HD44780 фирмы Hitachi. Если необходим дисплей на четыре строки по 40 символов, то можно включить блок управления М50530 или пару контроллеров HD44780. Индикатор имеет 14 выводов.
Таблица 3.1 - Выводы подключения ЖКИ
вывод | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
Функ. | Gnd | Vdd | V0 | RS | R/W | E | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
Напряжение питание нормировано и составляет 5В. На вывод V0 подается напряжение регулировки контрастности табло через подстроечный резистор 10 кОм, включенный между «землей» и выводом Vdd . Модуль HD44780 содержит два регистра: регистр команд IR (InstractionRegister) и регистр данных DR (DataRegister).
Выбор регистров осуществляется путем подачи сигнала управления от микроконтроллера на вывод RS: если RS = 0, то будет подключен регистр команд, а если RS = 1, то регистр данных. Вывод R/W – чтение - 1/запись - 0, а вывод Е (Enable) – для строб-сигнала положительной полярности (+5В) длительностью не менее 450 нс, в течение которого записываются передаваемые биты.
Рисунок 3.1 – Схема подключения ЖКИ к микроконтроллеру
Как правило, в микроконтроллерных системах управления для задания режимов функционирования ЖКИ используется порт Е (Е0, Е1 и Е2), питание и подсветка подключаются напрямую - +5В, а данные или команды подаются от любого свободного порта.
Регистр команд IR выполняет следующие функции: смещение курсора, гашение табло или установку адреса индикатора. Регистр данных DR служит для промежуточного хранения данных, которые затем с помощью внутренних операций автоматически передаются впамять отображаемых данных (DD — DisplayData) или в память знакогенератора (CG — CharacterGenerator).
В начале каждого сброса данных на ЖКИ необходимо убедится в его свободности по флагу занятости (разряд 7). Установленный флаг занятости (лог. 1) означает, что модуль HD44780 занят выполнением внутренней операции и в данный момент к приему не готов.
Считывание данных из памяти DD или CG выполняется через регистр данных DR. После того как микроконтроллер записывает некоторый адрес в регистр IR, байт данных, расположенный в памяти по этому адресу, с помощью внутренней операции переписывается в регистр DR. Процесс чтения завершается считыванием байта данных из этого регистра. Когда текущая операция чтения завершена, с помощью функции автоинкремента в регистр данных DR записывается байт данных, извлеченный из памяти по следующему адресу, который будет использован при очередном считывании.
Счетчик адреса, по сути, состоит из двух частей и содержит текущий адрес как в памяти DD-RAM, так и в памяти CG-RAM. После того как в регистр IR записана команда установки адреса DD-RAM или CG-RAM, этот адрес с помощью внутренней операции автоматически переносится в соответствующий счетчик. Когда запись в память DD/CG (или чтения из нее) завершена, соответствующий счетчик автомата инкрементируется.
В модуле HD44780 используется две разные памяти:
- DD-RAM- для хранения отображаемых данных;
- CG-RAM- для хранения битовых комбинаций, которые соответствуют матрице размером 5x8 или 5x10 (определяет форму символа).
Доступ как к одной, так и к другой памяти осуществляется по текущему адресу, хранимому в счетчике адреса.
Емкость памяти DD-RAM составляет 80 знаков, представленных в 8-разрядной ASCII-кодировке. Из них на двухстрочном табло могут быть одновременно отображены 16 символов в каждой строке, однако с помощью операции сдвига последующие символы также могут оказаться в отображаемой области (выделено жирным).
Таблица 3.2 – Двухстрочное табло ЖКИ
Позиция | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 39 | 40 | |
Адрес DD-RAM | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F | 10 | .. | 26 | 27 |
Адрес DD-RAM | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 4B | 4C | 4D | 4E | 4F | 50 | .. | 66 | 67 |
Первая строка начинается с адреса 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_DATAEQUPORTB
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 B11000000
CALL SEND_CMD
MOVLW hA8
CALL SEND_CHAR
MOVLW h50’
CALL SEND_CHAR
MOVLW hA5’
CALL SEND_CHAR
MOVLW h4 2
CALL SEND_CHAR
MOVLW h45
CALL SEND_CHAR
MOVLW h54
CALL SEND_CHAR
MOVLW h21
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
BSFSTATUS,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
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.