Реферат
Курсовой проект направлен на создание системы управления установкой для измерения влажности и давления, сочетающей в себе точность работы и доступность элементной базы.
В ходе работы над курсовым проектом были выполнены следующие пункты:
Разработана структурная схема системы управления измерителем влажности и давления;
Произведен выбор элементной базы;
Разработана функциональная схема системы;
Спроектирован алгоритм работы;
Разработан фрагмент программного продукта.
Определения, обозначения и сокращения
ЖК – жидкокристаллический;
АЦП – аналогово-цифровой преобразователь;
ЦАП – цифро-аналоговый преобразователь;
ОЗУ – оперативное запоминающее устройство;
ИОН – источник опорного напряжения;
TIC – Time Interval Counter – счетчик временных интервалов;
SPI – Serial Peripheral Interface – последовательный периферийный интерфейс;
TSSOP – Thin Shrink Small Outline Package – вид миниатюрного корпуса;
MSOP – Mini Small Outline Package – вид миниатюрного корпуса.
Введение
Регулирование и автоматизация многих промышленных процессов требует точного и достоверного измерения влажности. Управляемые микропроцессором датчики влажности и давления представляет собой универсальное решение для измерение влажности и давления в экстремальных условиях эксплуатации. Благодаря простоте обслуживания, обширному набору функций и возможности расширения эти датчики доказывает свою надежность в различных технологических процессах. Данные приборы используются в промышленных процессах сушки, системах контроля и управления, климатических установках стерильных и складских помещений, лабораториях и др.
Потребности различных отраслей промышленности покрываются за счет семи различных типов применения. Возможно использование датчиков совместно с прочным алюминиевым корпусом со степенью защиты IP 65,коротрый обеспечивает защиту датчиков от пыли и брызг воды. Корпус также обеспечивает электромагнитную совместимость при напряженности поля до 10 В/м. По конструкции датчики различаются на модели с настенным вариантом монтажа и модели с длиной кабеля 2, 5 или 10 м, позволяющего устанавливать датчики в вентиляционных каналах или других технологических линиях. Специальные варианты сенсоров позволяют использовать датчики в вакууме и при избыточном давлении от 0 до 100 бар и рабочей температуре до 180°С. Первичные выходные значения датчиков представляют собой измерения давления и относительной влажности. Микропроцессор с помощью дополнительного программного обеспечения позволяет выполнять расчет абсолютных величин, таких как относительное давление в помещении, абсолютная влажность а (г/мі), содержание влаги х (г/кг), теплосодержание h (кДж/кг). Датчики имеют два аналоговых выхода, по которым можно в любой комбинации передавать измеренные значения. Имеется возможность масштабирования диапазона измерения и выходных сигналов в пределах заданных границ. Датчики могут оснащаться ЖК-дисплеем/ панелью управления, предназначенными для отображения измеряемых значений и выполнения различных операций, например, калибровки. Имеется также конфигурация с последовательным интерфейсом и возможность управления датчиком с компьютера, на котором установлена любая программа терминала (ОС Windows). Дополнительно вместо последовательного интерфейса датчики могут оборудоваться токовой петлей 20 мА, что позволяет подключать их к сети. Используемые сенсоры отличаются повышенной точностью, надежностью и стабильностью. Большое значение в технологических процессах имеет стойкость к загрязнениям частицами пыли и различными химическими веществами. Кроме того, с помощью дополнительной функции восстановления имеется возможность восстановления сенсора после воздействия высококонцентрированных химических веществ, которые могут повредить сенсоры. Восстановление выполняется с помощью программируемой процедуры кратковременного нагрева, во время которой с поверхности сенсора испаряются молекулы посторонних веществ.
1. Разработка структурной схемы
Структурная схема представлена на рисунке 1.1.
Рисунок 1.1 – Структурная схема
Условные обозначения рисунка 1.1:
ДД – датчик давления;
ДВ – датчик влажности;
МК – микроконтроллер.
2. Выбор элементной базы
2.1 Выбор микроконтроллера
В данной задаче будет использоваться микроконтроллер 51 семейства от фирмы Analog Devices ADuC 812.
Общие сведения о микроконтроллере ADuC812 [1]
ADuC812 - интегральная 12-разрядная система сбора информации, включающая в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП и программируемое 8-битное микропроцессорное ядро (совместимое с 8051, MCU). MCU поддерживается внутренними 8К FLASH ЭРПЗУ программ, 640 байт ЭРПЗУ памяти данных и 256 байт статической памяти данных с произвольной выборкой (RAM).
MCU поддерживает следующие функции: сторожевой таймер, монитор питания и канал прямого доступа к памяти для АЦП. Для мультипроцессорного обмена и расширения ввода/вывода имеются 32 программируемые линии, I2C, SPI и UART интерфейсы. Для гибкого управления в приложениях с низким потреблением в MCU и аналоговой части предусмотрены 3 режима работы: нормальный, холостой и дежурный. Продукт специфицирован для +3/+5В работы в индустриальном диапазоне температур и поставляется 52-выводном пластмассовом корпусе (PQFP).
На рисунке 2.1 приводится функциональная блок схема используемого микроконтроллера.
Рисунок 2.1 – Функциональная блок схема
На рисунке 2.2 приводится внешний вид корпуса микроконтроллера ADuC812.
Рисунок 2.2 – Внешний вид корпуса ADuC812
В таблице 2.1 приведено расположение контактов контроллера ADuC812.
Таблица 2.1 – Расположение контактов ADuC812
Использование памяти данных
Память данных пользователя состоит из 640 байт, которые составляют 160 (от 00Н до 9FН) четырехбайтовых страниц, как показано на рисунке 2.3. Как и для прочей периферии, доступ к этой памяти производится через SFR регистры. Группа из 4-х регистров (EDATA1-4) используется для хранения данных четырех байт страницы из последнего обращения. EADRL используется для хранения адреса страницы, куда будет осуществляться доступ. И, наконец, ECON – 8-разрядный регистр управления, в который записывается одна из пяти команд управления доступом к памяти, допускающие различные операции чтения, записи, стирания и верификации. Блок-схема регистрового интерфейса к памяти показана на рисунке 2.4.
Рисунок 2.5 – Конфигурация FLASH/EE памяти пользователя
Рисунок 2.4 – Управление FLASH/EE памятью пользователя
Для управления памятью используется регистр ECON, который является интерпретатором команд и в него можно записать одну из пяти чтения, программирования и стирания, как указано в таблице 2.2.
Таблица 2.2 – Регистр управления памятью ECON
При использовании данная память может быть запрограммирована в составе системы побайтно, при этом, она предварительно должна быть стерта страничными блоками. Типовой цикл доступа к FLASH/EE памяти включает в себя установку адреса страницы доступа EADRL SFR, запись данных для программирования в EDATA 1-4 (в случае чтения - не записываются) и, наконец, запись команды в ECON, инициирующей действие в соответствие с таблицей 2.2.Следует отметить, что заданный режим работы инициируется по записи слова команды в ECON SFR. При этом микропроцессорное ядро переходит в холостой режим и находится там до тех пор, пока выполнение команды не завершится.На практике это означает, что даже если режим работы с FLASH/EE памятью инициируется двумя машинными циклами (инструкция MOV для записи в ECON SFR), следующая инструкция будет выполнена только после окончания цикла обслуживания FLASH/EE памяти (т.е. спустя 250 мкс или 20 мс). Это означает, что ядро не будет обслуживать запросы на прерывание до тех пор, пока операция с FLASH/EE памятью не завершится, хотя функции управления ядра периферией будет выполняться, как, например, продолжение счета времени/событий Счетчиками/Таймерами на протяжении всего псевдохолостого режима.
Для программирования одного байта в FLASH/EE памяти необходимо чтобы сначала этот байт был стерт, т.е. в ячейке записано FFH. Вследствие особенности архитектуры FLASH/EE памяти, стирание можно производить только для 1 страницы (минимум 4-байта) при инициировании Команды Стирания.
Пример процесса побайтного программирования графически показан на рисунке 2.5. В этом примере во второй байт на странице 03Н пользовательской FLASH/EE памяти записывается код F3H. Однако страница 03Н уже содержит данные в четырех байтах, а пользователю требуется изменить только содержимое одного байта; всю страницу следует сначала прочитать с тем, чтобы можно было стереть содержимое этой страницы без потери данных. Затем новый байт записывается в EDATA SFR вслед за циклом стирания. Если попытаться начать цикл Программирования (ECON=02H), не выполняя цикла Стирания (ECON=05H), то в этом случае будут модифицированы только те разряды, которые содержат единицы, т.е. для правильной записи массива необходимо выполнить его предварительное стирание. Следует отметить, что циклы стирания страницы и всей памяти имеют одинаковую длительность – 20 мс.
Рисунок 2.5 – Пример программирования байта памяти пользователя
Ассемблерный код приведенного примера выглядит следующим образом:
MOV EADRL, #03H ;Установка указателя страницы MOV ECON, #01H ;Команда чтения страницы MOV EDATA2, #0F3H ;Запись нового байта MOV ECON, #02H ;Команда стирания страницы MOV ECON, #05H ;Команда программирования страницы
Использование прерываний
ADuC812 обеспечивает восемь источников и два уровня прерываний. В таблице 2.3 приводятся адреса векторов прерываний и уровни приоритетов.
Таблица 2.3 – Адреса векторов прерываний
Для обработки любого из прерываний следует предпринять следующие три действия:
1. Расположить процедуру обслуживания прерывания по адресу соответствующего прерывания.
2. Установить бит разрешения всех прерываний (ЕА) «1» в регистре IE SFR.
3. Установить бит разрешения индивидуального прерывания в «1» в IE или IE2 SFR.
Для разрешения и установки приоритета различных прерываний используются три регистра SFR.
Счетчик временных интервалов TIC
Важной особенностью прибора является наличие счетчика временных интервалов (TIC), позволяющего отсчитывать временные интервалы большие, чем способны стандартные таймеры – длительностью до 255 часов. Упрощенная схема TIC представлена на рисунке 2.6.
Работа с TIC осуществляется при помощи следующих регистров:
TIMECON – регистр управления TIC (назначение битов TIMECON и набор режимов работы представлены в таблице 2.4);
INTVAL – регистр пользовательского временного интервала;
HTHSEC – регистр сотых долей секунды (инкрементируется через каждую 1/128 секунды, после значения 127 сбрасывается, инкрементируя регистр SEC);
SEC - регистр секунд (после значения 59 сбрасывается, инкрементируя регистр MIN);
MIN – регистр минут (после значения 59 сбрасывается, инкрементируя регистр HR);
HOUR – регистр часов (сбрасывается на 0 после значения 23 или 255 – в зависимости от режима работы).
Рисунок 2.6 - Упрощенная схема TIC
Таблица 2.4– Назначение битов TIMECON
№ бита | обозначение | назначение |
7 | -- | Зарезервирован |
6 | TFH | Бит выбора 24-часового режима (Twenty-Four Hour Select Bit). Если установлен – регистр HOUR сбрасывается после значения 23, иначе – после значения 255. |
5-4 | TS1, TS0 |
Биты выбора единиц измерения интервалов (Interval Timebase Selection Bits). Определяют частоту обновления 8-битного счетчика временных интервалов. TS1 TS0 0 0 1/128 секунды 0 1 секунды 1 0 минуты 1 1 часы |
3 | STI | Бит единичного временного интервала (Single Time Interval Bit). Устанавливает режим единичного временного интервала, когда бит TIEN сбрасывается при первом таймауте. |
2 | TII | Бит прерывания TIC (TIC Interrupt Bit). Устанавливается когда значение 8-битного счетчика временных интервалов совпадает с INTVAL. |
1 | TIEN | Бит включения 8-битного счетчика временных интервалов (Time Interval Enable Bit). |
0 | TCEN | Бит включения таймера (Time Clock Enable Bit). |
2.2 Выбор датчика давления
Цифровые датчики давления газов (или воздуха) серии ASDX [2] выпускаются в стандартных DIP корпусах и предоставляют информацию о чувствительности, температурном коэффициенте и нелинейности в цифровом виде.
Цифровые датчики давления калиброваны и, наряду со специальной микросхемой (ASIC), имеют схему температурной компенсации. Цифровой датчик давления поддерживает SPI совместимый интерфейс, что делает его совместимым практически с любым микроконтроллером и микропроцессором.
Датчики давления имеют точность ±2,5% полной шкалы и предназначены для использования в корозионно-устойчивых неионногенных газовых средах, например, в воздухе или в сухих газах.
Датчики серии ASDX DO предназначены для измерений абсолютного, дифференциального и относительного давления в широком диапазоне до 100 psi, серия датчиков избыточного и дифференциального давления ASDXL DO измеряет малые давления в дюймах водяного столба.
Датчики абсолютного давления измеряют давление относительно внутреннего опорного значения. Датчики дифференциального давления измеряют давление, приложенное к разным сторонам измерительной диафрагмы и могут использоваться для измерений избыточного или дифференциального давления.
Особенности:
абсолютные датчики давления
датчики для измерения дифференциального и избыточного давления
калиброванный и компенсированный выходной сигнал
SPI- совместимый последовательный интерфейс
диапазоны измеряемого давления 0…±5, 0…10, 0…±10 д.вод.ст.
время отклика 8 мс
стандартный DIP корпус
Таблица 2.5- серийные свойства
Внешний вид |
Серия |
Диапазон измеряемого давления |
Метод измерения* |
Напряжение питания, В пост. тока |
Максимальная погрешность, % |
ASDX DO |
0…100 psi | А, Д, И | 5,25 | ±2,0 | |
ASDXL DO |
±5" вод.ст. ±10" вод.ст. 0…10" вод.ст. | Д, И | 5 | ±2,0 |
*А – абсолютное, И – избыточное (относительное), Р – разрежения, Д – дифференциальное
Основные характеристики представлены в таблице 2.6
Таблица 2.6
Параметр |
ASDXL DO |
ASDX DO |
Макс. допустимое давление | 3 PSI | 100 PSI |
Напряжение питания | 4,75…5,25 В пост. тока | |
Макс. напряжение питания | 6,5 В пост. тока | |
Потребляемый ток | 6 мА | |
Выходной ток | 2 мА | |
Высокий уровень входа | 4,5 В | |
Низкий уровень входа | 0,5 В | |
SCL частота | 100 кГц | |
Виброустойчивость | 10 g в диапазоне 20…2000 Гц | |
Добротность | 1 млн. циклов в минуту | |
Температурная компенсация | 0…85°С | |
Диапазон рабочих температур | -20…105°С |
Выберем датчик ASDX100G24R-DO серии ASDX DO как предназначенный для измерений абсолютного, дифференциального и относительного давления в широком диапазоне до 100 psi.
Внешний вид датчика представлен на рисунке 2.7
Его параметры представлены в таблице 2.7
Таблица 2.7
Параметр | Обозначение | Условия | Min. | Typ. | Max. | Unit |
Input High Level | VIH | 4.5 | – | 1 | Vs | |
Input Low Level | VIL | 0 | – | 0.5 | Vs | |
Output Low Level | VOL | Open Drain IOL = -4 mA | – | 0.1 | Vs | |
Pull up Current | VOH | Pin SCL and SDA | 5 | – | 20 | μA |
Load Capacitance SDA | CL_SDA | - | – | 400 | pF | |
SCL clock frequency | fSCL | - | – | 100 | kHz | |
Bus free time between STOP and START condition | tBUF | 4.7 | – | – | μs | |
Hold time (repeated) START condition | tHD,STA | To first clock pulse | 4.0 | – | – | μs |
LOW period of SCL | tLOW | 4.7 | – | – | μs | |
High period of SCL | tHIGH | 4.0 | – | – | μs | |
Setup time repeated START condition | tSU, STA | 4.7 | – | – | μs | |
Data hold time | tHD, DAT | 0 | – | – | ns | |
Data setup time | tSU, DAT | 250 | – | – | ns | |
Rise time of both SDA and SCL | tR | – | – | 300 | ns | |
Fall time of both SDA and SCL | – | – | 300 | ns | ||
Setup time for STOP condition | tSU, STO | 4 | – | – | μs | |
Input filter spike suppression | tsp | Spikes on SDA or SCL of that length are suppressed | – | – | 50 | μs |
2.3 Выбор датчика влажности
В настоящее время на практике для измерения относительной влажности применяется несколько технологий, использующих свойство различных структур изменять свои физические параметры[3] (емкость, сопротивление, проводимость и температуру) в зависимости от степени насыщения водяным паром. Каждой из этих технологий свойственны определенные достоинства и недостатки (точность, долговременная стабильность, время преобразования и т.д.). В таблице 2.8 приведен сравнительный анализ характеристик емкостных и резистивных датчиков относительной влажности, при производстве которых применяются различные материалы.
Таблица 2.8.
Технология производства HONEYWELL | Технологии производства других производителей | ||||||
Активный материал | Термо- реактивный полимер | Термо- реактивный пластик | Термо- реактивный пластик | Однородный термо- пластик | Однородная триокись алюминия | Хлорид литиевая пленка | Испари- тельный психрометр |
Подложка | керамическая или кремниевая | керамическая, кремниевая или стеклянная | полистирол или майлар | нет | нет | керамическая | нет |
Изменяющийся параметр | емкость | емкость | емкость | сопро- тивление | сопро- тивление | прово- димость | темпе- ратура |
Измеряемый параметр | % RH | % RH | % RH | % RH | % RH | % RH | Температура влажной и сухой колбы |
Диапазон измерения | 0…100 % RH | 0…100 % RH | 0…100 % RH | 20…100 % RH | 2…90 % RH | 15…< 100 % RH | 20…100 % RH |
Точность | ±1,0…±5,0% | ±3,0…±5,0% | ±3,0…±5,0% | ±3,0…±10,0% | ±1,0…±5,0% | ±5,0% | 3,0…4,0% |
Взаимозаменяемость | ±2,0…±10,0% RH | ±3,0…±20,0% RH | ±2,0…±20,0% RH | ±5,0…±25,0% RH | плохая | ±30…±10,0% RH | отличная |
Гистерезис | < 1,0…3,0 % | 2,0…5,0% | 2,0…5,0% | 3,0…6,0% | < 2% | очень высокий | высокий |
Линейность | ±1,0% | ±1,0% | ±2,0% | плохая | плохая | очень плохая | плохая |
Время отклика | 15,0…60,0 сек | 15,0…90,0 сек | 15,0…90,0 сек | 2,0…5,0 мин | 3,0…5,0 мин | 3,0…5,0 мин | 2,0…5,0 мин |
Диапазон рабочих температур | -40…+185°C | -30…+190°C | -25…+100°C | +10…+40°C | -10…+75°C | - | 0…+100°C |
Температурный эффект | -0,0022%RH/°C | 0,3/%RH/°C | < 0,3/%RH/°C | >1,0/%RH/°C | >1,0/%RH/°C | >1,0/%RH/°C | < 0,5/%RH/°C |
Долговременная стабильность | ±1,0%RH/5лет | ±1,0%RH/1год | ±1,0%RH/1год | ±3,0%RH/1год | >1,0/%RH/°C | >1,0%RH/год | ±0,1%RH/1год |
Стойкость к загрязнению | отличная | хорошая | очень хорошая | очень хорошая | очень хорошая | ±1,0/%RH/°C | очень хорошая |
Стойкость к конденсату | отличная | очень хорошая | хорошая | очень хорошая | очень хорошая | очень хорошая | очень хорошая |
Среди всех типов емкостные датчики, благодаря полному диапазону измерения, высокой точности и температурной стабильности, получили наибольшее распространение как для измерения влажности окружающего воздуха, так и применения в производственных процессах.
Компания Honeywell производит семейство емкостных датчиков влажности, применяя метод многослойной структуры (рис. 2.8), образуемой двумя плоскими платиновыми обкладками и диэлектрическим термореактивным полимером, заполняющим пространство между ними. Термореактивный полимер, по сравнению с термореактивной пластмассой, обеспечивает датчику более широкий диапазон рабочих температур и высокую химическую стойкость к таким агрессивным жидкостям и их парам, как изопропил, бензин, толуол и аммиак. В дополнение к этому датчики на основе термореактивного полимера имеют самый большой срок службы в этиленоксидных стерилизационных процессах.
Рисунок 2.8 Метод многослойной структуры, применяемый при изготовлении датчиков влажности
В процессе работы водяной пар проникает через верхнюю пористую обкладку конденсатора (рис. 2.8) и уравновешивается с окружающим газом. Одновременно эта обкладка защищает электрические процессы, протекающие в полимерном слое, от внешних физических воздействий (света и электромагнитного излучения). Слой полимера, покрывающий пористый платиновый электрод сверху, служит защитой конденсатора от пыли, грязи и масел. Такая мощная фильтрационная система, с одной стороны, обеспечивает датчику длительную бесперебойную работу в условиях сильной загрязненности окружающей среды, с другой — снижает время отклика.
Выходной сигнал любого (емкостного или резистивного) абсорбционного датчика влажности представляет собой функцию от температуры и влажности, поэтому для получения высокой точности измерения в широком диапазоне рабочих температур требуется температурная компенсация характеристики преобразования. Компенсация особенно необходима, когда датчик используется в индустриальном оборудовании для измерения влажности и точки росы. Именно для этих целей некоторые модели датчиков Honeywell имеют встроенный платиновый терморезистор сопротивлением 1000 Ом, который расположен с обратной стороны подложки (рис. 2.9).
Рисунок 2.9 Структура датчика влажности со встроенным платиновым датчиком температуры
Датчики влажности Honeywell — это интегрированные приборы. Помимо чувствительного элемента и термосенсора, на той же подложке расположена схема обработки сигнала, которая обеспечивает преобразование сигнала, его усиление и линеаризацию. Выходной сигнал датчика Honeywell является функцией от напряжения питания, окружающей температуры и влажности. Чем выше напряжение питание, тем больше размах выходного сигнала и, соответственно, чувствительность. Связь же между измеренной датчиком влажностью, истинной влажностью и температурой показана на объемной диаграмме (рис. 2.10).
Рисунок 2. 10 Связь между измеренной датчиком влажностью, истинной влажностью и температурой
Она легко аппроксимируется с помощью комбинации двух выражений:
Прямая наилучшего соответствия при 25 °C (жирная линия на диаграмме), описывается выражением Uвых = Uпит(0,0062 · (%RH25) + 0,16). Из этого уравнения определяется процент RH25 при температуре 25 °C.
Далее производится температурная коррекция и вычисляется истинное значение RH: RHистинная = (%RH25) · (1,0546 - 0,00216T), где T измеряется в °C.
Выражения выше соответствуют характеристикам реальных датчиков со следующими отклонениями:
Рисунок 2.11 Характеристики преобразования датчика влажности Honeywell при различных температурах
Особенности применения датчиков серии HIH-3602 [4]
Для работы в суровых климатических условиях и наиболее точного определения значения влажности вблизи точки росы фирма Honeywell выпускает серию HIH-3602 с модификациями. Датчики выпускаются в корпусе ТО-5, в который встроен датчик температуры, для модели HIH-3602-A это NTC термистор номиналом 100кОм, для HIH-3602-С платиновый датчик температуры номиналом 1кОм. Возможны ситуации, когда при высоком значении относительной влажности (более 95%) при понижении температуры возможна конденсация паров воды, что влечет за собой «залипание» показаний на уровне 100% относительной влажности. Для предотвращения этого случая в датчиках серии HIH-3602 предусмотрен гидрофобный фильтр, выполненный из специально обработанной нержавеющей стали. Вывести из «спящего» состояния также помогает подача на датчик несколько повышенного напряжения питания, однако при этом возможно некоторое смещение калибровки на 2…3 %. Сама по себе конденсация и последующее испарение влаги не оказывает влияния на калибровку датчиков.
Основные преимущества серии HIH-3602
- наличие встроенного датчика температуры
- корпус с гидрофобным фильтром
- каждый датчик снабжен паспортом с индивидуальными данными
- лазерная подгонка элементов
- высокая устойчивость к воздействию химических веществ (кроме паров ацетона или этанола).
Выберем датчик HIH-3602-L .
Таблица 2.9
2.4 Выбор индикатора
В данной задаче для вывода информации будет достаточно, чтобы ЖК экран позволял вывести до 8 символов. Таким требования удовлетворяет алфавитно-цифровой ЖК экран производства фирмы Hantronix HDM 08111H-L[5], размером 8х1 символ. Размер каждого символа 5х10 пикселей.
Данный экран имеет встроенный контроллер HD 44780 от фирмы Hitachi.
На рисунке 2.12приводятся размеры экрана и символов.
Рис. 2.12 – Размеры экрана и символов
В таблице 2.10 приведены назначения выводов ЖК экрана HDM 08111H-L.
Таблица 2.10
Назначение выводов | ||
№ вывода | Название | Функция |
1 | Vss | Общий (GND) |
2 | Vdd | Напряжение питания |
3 | Vo | Контрастность |
4 | RS | Команды/Данные |
5 | R/W | Чтение/запись |
6 | E | Выбор модуля |
7 | DB0 | Линия данных 0 |
8 | DB1 | Линия данных 1 |
9 | DB2 | Линия данных 2 |
10 | DB3 | Линия данных 3 |
11 | DB4 | Линия данных 4 |
12 | DB5 | Линия данных 5 |
13 | DB6 | Линия данных 6 |
14 | DB7 | Линия данных 7 |
Для подсветки данного экрана будет использована светодиодная подсветка зеленого цвета. Данный тип подсветки долговечен – наработка до 50000 часов, не требует инвертора напряжения. Рабочий диапазон температур от -30С до +70С.
2.5 Контроллер ЖК экрана Hitachi HD 44780
Контроллер HD44780[6] фирмы Hitachi фактически является промышленным стандартом и широко применяется при производстве алфавитно-цифровых ЖКИ-модулей. Аналоги этого контроллера или совместимые с ним по интерфейсу и командному языку микросхемы, выпускают множество фирм, среди которых: Epson, Toshiba, Sanyo, Samsung, Philips. Еще большее число фирм производят ЖКИ-модули на базе данных контроллеров. Эти модули можно встретить в самых разнообразных устройствах: измерительных приборах, медицинском оборудовании, промышленном и технологическом оборудовании, офисной технике – принтерах, телефонах, факсимильных и копировальных аппаратах.
Алфавитно-цифровые ЖКИ-модули представляют собой недорогое и удобное решение, позволяющее сэкономить время и ресурсы при разработке новых изделий, при этом обеспечивают отображение большого объема информации при хорошей различимости и низком энергопотреблении. Возможность оснащения ЖКИ-модулей задней подсветкой позволяет эксплуатировать их в условиях с пониженной или нулевой освещенностью, а исполнение с расширенным диапазоном температур (-20°С...+70°С) в сложных эксплуатационных условиях, в том числе в переносной, полевой и даже, иногда, в бортовой аппаратуре.
Контроллер HD44780 потенциально может управлять 2-мя строками по 40 символов в каждой (для модулей с 4-мя строками по 40 символов используются два однотипных контроллера), при матрице символа 5x7 точек. Контроллера также поддерживает символы с матрицей 5x10 точек.
Существует несколько различных более-менее стандартных форматов ЖКИ-модулей (символов х строк): 8 х 2, 16 х 1, 16x2, 16 х 4, 20 х 1, 20 х 2, 20 х 4, 24 х 2, 40 х 2, 40 х 4. Встречаются и менее распространенные форматы: 8 х 1, 12 х 2, 32 х 2 и др., – принципиальных ограничений на комбинации и количество отображаемых символов контроллер не накладывает – модуль может иметь любое количество символов от 1 до 80, хотя в некоторых комбинациях программная адресация символов может оказаться не очень удобной.
В рамках одного формата могут производиться ЖКИ-модули нескольких конструктивов, отличающихся как габаритами ЖКИ (и, как следствие, размерами символов), так и размерами платы и посадки. Например, фирма Powertip предлагает алфавитно-цифровые ЖКИ-модули 11-ти форматов (от 8 х 2 до 40 х 4) в 37-ми различных конструктивах, 16 х 1 в 6-ти, а модули формата 16 х 2 в 11-ти.
В рамках одного конструктива ЖКИ-модуль может иметь еще ряд модификаций. В частности, могут применяться несколько типов ЖКИ, отличающихся цветом фона и цветом символов, а также по применяемым ЖК-материалам и структуре: TN, STN и FSTN типа. ЖКИ STN и FSTN типа имеют более высокую стоимость, но одновременно обладают повышенной контрастностью и вдвое большим максимальным углом обзора, причем ЖКИ FSTN типа имеют лучшие характеристики, чем STN.
ЖКИ-модули могут оснащаться задней подсветкой, размещаемой между ЖКИ и печатной платой, для чего ЖКИ производятся с полупрозрачным или прозрачным задним слоем (в последнем случае считывание информации возможно только при наличии подсветки). Собственно подсветка может быть реализована несколькими способами: с помощью электролюминесцентной панели, представляющей собой тонкую пленку, излучающую свет при прикладывании переменного тока повышенного напряжения порядка 100ч150В. Люминесцентной лампой с холодным катодам (также работающей при повышенном напряжении), излучение которой равномерно распределяется по всей площади ЖКИ с помощью отражателя или плоского световода. И третий вариант – подсветка на основе светодиодной матрицы.
Первые два способа подсветки обеспечивают высокую яркость и могут иметь белый тон свечения при относительно низком потреблении, потребуют наличия источника повышенного напряжения, что создает некоторые трудности при создании аппаратуры с автономным питанием. Напротив, светодиодная подсветка не требует высоковольтного источника (прямое падение напряжения составляет 4,2 В) и при использовании несложного источника тока позволит производить питание от источника с напряжением 5В. Кроме того, светодиодная подсветка имеет значительно большее (в десятки раз) время наработки, а также только она допустима к эксплуатации в расширенном диапазоне температур (-20°С..+70°С).
Для соединения ЖКИ-модуля с управляющей системой используется параллельная синхронная шина, насчитывающая 8 или 4 (выбирается программно) линий данных DB0...DB7, линию выбора операции R/W, линию выбора регистра RS и линию стробирования/синхронизации Е. Кроме линий управляющей шины имеются две линии для подачи напряжения питания 5В – GND и Vсс, и линия для подачи напряжения питания драйвера ЖКИ – V0.
Указанные выше названия линий шины являются стандартными, но существует множество различных вариантов расположения контактов у каждого конкретного конструктива ЖКИ-модуля. На самом деле, единственным реально стандартным вариантом расположения контактов является двухрядное 14-ти контактное поле, расположенное вертикальное левой части модуля, а также совпадающее с ним двухрядное 16-ти контактное поле, содержащее дополнительную пару контактов с подключенными к ней выводами питания подсветки. В любом случае, для получения достоверной информации необходимо воспользоваться соответствующей справочной литературой изготовителя модуля.
На начальном этапе необходимо подать питание на ЖКИ-модуль и добиться от него признаков работоспособности. Схема включения модуля, рассчитанного на стандартный диапазон температур, показана на рисунке 2.13а. Построечный резистор R1 позволяет плавно менять напряжение питания драйвера ЖКИ, что приводит к изменению угла поворота жидких кристаллов. Этим резистором можно отрегулировать фактическую контрастность при некотором преимущественном угле наблюдения (снизу-вверх или сверху-вниз).К сожалению, включение в данную схему ЖКИ-модуля, рассчитанного на расширенный диапазон температур, не приведет к успеху, так как из-за особенностей применяемых в них ЖК-материалов, эти ЖКИ требуют повышенного напряжения питания и при питании напряжением 5В изображение либо будет отсутствовать совсем, либо будет слабоконтрастным. Для преодоления ситуации необходимо подать на вывод V0 отрицательное напряжение (напряжение на ЖКИ определяется разностью Vcc и V0), составляющее в предельном случае – 5В. Если в схеме отсутствует источник отрицательного напряжения, то не составляет труда собрать простейший преобразователь, например, по схеме на рисунке 2.13.
Рисунок 2.13 – Подача питания на ЖКИ-модуль
Для активизации ЖКИ-модуля подайте напряжение питания и повращайте движок резистора R1 (рисунок 2.13). После окончания цикла внутренней инициализации модуль включается в режим развертки одной верхней строки. При изменении напряжения на выводе V0 сегменты этой строки должны менять свое состояние от прозрачного до непрозрачного, что является свидетельством правильного подключения питания модуля и работоспособности контроллера и драйверов ЖКИ. Установите движок в такое положение, при котором изображение сегментов в верхней строке едва проступает на основном фоне ЖКИ. Теперь ЖКИ-модуль готов к приему и отображению информации. После того, как вы добьетесь отображения на индикаторе какого-либо текста, то сможете более точно отрегулировать изображение в соответствии с необходимой контрастностью и требуемым углом наблюдения. Для соединения модуля с управляющей системой можно выбрать один из двух вариантов: по 8-ми или 4-х разрядной шине. В первом случае потребуется 11 сигнальных линий, во втором – только 7. Сам процесс обмена также может быть организован двояко. Можно подключить ЖКИ-модуль к системной шине (если таковая имеется) и выполнить обмен в синхронном режиме с максимальной скоростью. Этому широко распространенному в прошлые годы способу присущ ряд недостатков. Во-первых, большинство современных устройств выполняется с применением однокристальных микро-ЭВМ без использования дополнительной внешней памяти и, как следствие, системная шина у этих устройств просто отсутствует. Во-вторых, в современных системах повышенной сложности и производительности, у которых присутствует дополнительная память и, естественно, системная шина, скорость операций на шине находится за пределами возможностей контроллера HD44780 (2 МГц при питании 5 В и 1 МГц при 3 В). Это может потребовать введения дополнительных схем для замедления скорости работы шины при выполнении операций обмена с ЖКИ-модулем. В-третьих, подключение к системной шине в большинстве случаев потребует вводить схемы дешифрации и формирования сигналов Е и R/W, что опять приведет к дополнительным затратам. Все сказанное выше не означает, что вариант с подключением к шине принципиально неэффективен. В какой-то конкретной системе этот способ, наоборот, может быть самым оптимальным. Кроме того, некоторые современные процессоры, имеют встроенные средства для формирования сигналов выборки (CS), с возможностью программно определить скорость обмена с каждым конкретным устройством.
Другой вариант – очень простой путь – обмен с ЖКИ-модулем выполняется чисто программными средствами, через порты ввода-вывода управляющей микро-ЭВМ. В дальнейшем мы сконцентрируем внимание именно на этом варианте, так как он позволяет рассмотреть общий случай, абстрагируясь от конкретной системы. Вариант соединения с системной шиной, напротив, требует рассмотрения конкретных устройств, поэтому в случае необходимости можно рекомендовать изучить временные диаграммы операций чтения и записи, приведенные на рисунках 2.16 и 2.17, а также значения временных параметров, приведенные в таблицах 2.13 и 2.14 и сконструировать соответствующие управляющие схемы.
Нa рисунке 2.15а приведена схема подключения ЖКИ-модуля с 8-ми разрядной шиной к некоторой абстрактной микро-ЭВМ XYZ. Эта микро-ЭВМ содержит два порта: 8-ми разрядный двунаправленный РАО…РА7, к которому подключена шина DBO...DB7 ЖКИ-модуля, и 3-х разрядный РВО...РВ2, к которому подключены линии управляющих сигналов: Е, RS,R/W. На рисунке 2.15б можно видеть схему подключения ЖКИ-модуля к этой же микро-ЭВМ в 4-х разрядном режиме. Обратите внимание, что для обмена в 4-х разрядном режиме используется старшая тетрада шины данных – DB4...DB7.
Рисунок 2.15 – Схема подключения
В соответствии с временной диаграммой (рис. 2.16 и 2.17) в исходном состоянии сигнал Е = 0, сигнал R/W = 0, значение сигнала RS – произвольное, шина данных DBO...DB7 в состоянии высокого импеданса (HI). Такое состояние управляющих сигналов (Е и R/W) должно поддерживаться все время в промежутках между операциями обмена с ЖКИ-модулем. Шина данных в эти моменты в принципе свободна, и может использоваться в мультиплексном режиме для каких-либо других целей, например, для сканирования матрицы клавиатуры. Естественно, необходимо позаботиться об исключении конфликтов на шине данных в момент совершения операций обмена с ЖКИ-модулем.
Последовательности действий, которые необходимо выполнять управляющей системе при совершении операций записи и чтения для 8-ми и 4-х разрядной шины приведены соответственно в таблицах 2.11- 2.14.
Таблица 2.11 – Операции записи для 8-ми разрядной шины
Таблица 2.12– Операции чтения для 8-ми разрядной шины
Таблица 2.13– Операция записи для 4-х разрядной шины
Таблица 2.14 – Операция чтения для 4-х разрядной шины
Рисунок 2.16– Временная диаграмма операции записи
Рисунок 2.17 – Временная диаграмма операции чтения
Приведенные в таблицах 2.11-2.14 операции подразумевают, что время выполнения каждого шага составляет не менее 250 нс. При использовании современных быстродействующих микро-ЭВМ это условие может быть легко нарушено, поэтому необходимо тщательно контролировать минимальные значения временных интервалов, чтобы они всегда находились в области допустимых значений, указанных в таблицах 2.15 и 2.16, и при необходимости вводить задержки.
Таблица 2.15 – Значения временных характеристик. Операция записи
Таблица 2.16 – Значения временных характеристик. Операция чтения
Описанные выше операции записи/чтения байта являются базовыми для осуществления обмена с ЖКИ-модулем. Реализация этих двух операций – единственное, что отличает процесс обмена по 8-ми разрядной шине от обмена по 4-х разрядной шине. Нa основе этих двух операций, реализованных программно (когда модуль подключен к портам микро-ЭВМ), или аппаратно (когда модуль подключен к системной шине), строятся все виды операций программирования и управления.
Несколько слов о подключении ЖКИ-модулей формата 40 х 4. Эти модели содержат два контроллера НD44780 и фактически представляют собой два модуля 40 х 2. Для сокращения числа соединений все сигналы обоих контроллеров соединены параллельно, исключение составляет только сигнал Е, одновременно выполняющий роль тактового сигнала и сигнала выборки микросхемы CS, поэтому обмен с каждым из контроллеров ведется попеременно.
Перед началом рассмотрения принципов управления ЖКИ-модулем, обратимся к внутренней структуре контроллера HD44780, чтобы понять основные принципы построения ЖКИ-модулей на его основе. Эта информация позволит понять способы организации модулей различных форматов с точки зрения программной модели, а также мотивации конструкторов ЖКИ-модулей.
Упрощенная структурная схема контроллера приведена на рисунке 2.18. Можно сразу выделить основные элементы, с которыми приходится взаимодействовать при программном управлении: регистр данных (DR), регистр команд (IR), видеопамять (DDRAM), ОЗУ знакогенератора (CGRAM), счетчик адреса памяти (АС), флаг занятости контроллера.
Рисунок 2.18 – Упрощенная структурная схема контроллера HD44780
Другие элементы не являются объектом прямого взаимодействия с управляющей программой – они участвуют в процессе регенерации изображения на ЖКИ: знакогенератор, формирователь курсора, сдвиговые регистры и драйверы (напоминаем, что приведенная схема – упрощенная, и многие не важные для получения общей картины промежуточные элементы на ней опущены).
Управление контроллером ведется посредством интерфейса управляющей системы. Основными объектами взаимодействия являются регистры DR и IR. Выбор адресуемого регистра производится линией RS, если RS = 0 – адресуется регистр команд (IR), если RS = 1 – регистр данных (DR).
Данные через регистр DR, в зависимости от текущего режима, могут помещаться (или прочитываться) в видеопамять (DDRAM) или в ОЗУ знакогенератора (CGRAM) по текущему адресу, указываемому счетчиком адреса (АС). Информация, попадающая в регистр IR, интерпретируется устройством выполнения команд как управляющая последовательность. Прочтение регистра IR возвращает в 7-ми младших разрядах текущее значение счетчика АС, а в старшем разряде флаг занятости (BF).
Видеопамять, имеющая общий объем 80 байтов, предназначена для хранения кодов символов, отображаемых на ЖКИ. Видеопамять организована в две строки по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению. Другими словами, независимо от того, сколько реальных строк будет иметь каждый конкретный ЖКИ-модуль, скажем, 80 х 1 или 20 х 4, адресация видеопамяти всегда производится как к двум строкам по 40 символов.
Будучи устройством с динамической индикацией, контроллер циклически производит обновление информации на ЖКИ. Сам ЖКИ организован как матрица, состоящая в зависимости от режима работы из 8-ми (одна строка символов 5x7 точек), 11-ти (одна строка символов 5x10 точек) или 16-ти (две строки символов 5x7 точек) строк по 2(Х) сегментов (когда строка насчитывает 40 символов) в каждой. Собственный драйвер контроллера HD44780 имеет только 40 выходов (SEG1...SEG40) и самостоятельно может поддерживать только 8-ми символьные ЖКИ. Это означает, что ЖКИ-модули форматов до 8x2 реализованы на одной единственной микросхеме HD44780, модули, имеющие большее количество символов, содержат дополнительные микросхемы драйверов, например, HD44100, каждая из которых дополнительно предоставляет управление еще 40-ка сегментами.
Особняком стоят ЖКИ-модули формата 16x1. Они также реализованы с помощью одной единственной микросхемы HD44780, но одна 16-ти символьная строка в них фактически составлена из двух 8-ми символьных. И хотя это усложняет программное управление, ведь строка оказывается логически разорванной посередине, тем не менее, экономически это оправдано, ибо позволило создать ЖКИ-модуль, содержащий всего одну микросхему. Другой вариант пространственной адресации встречается в 4-х строчных модулях. Из-за проблем разводки токоведущих дорожек, первая и вторая строки этих модулей являются таковыми как обычно, третья же является продолжением первой строки, а четвертая – второй.
У контроллера HD44780 существует набор внутренних флагов, определяющих режимы работы различных элементов контроллера (таблица 2.17). В таблице 2.18 приведены значения управляющих флагов непосредственно после подачи на ЖКИ-модуль напряжения питания. Переопределение значений флагов производится специальными командами, записываемыми в регистр IR, при этом комбинации старших битов определяют группу флагов или команду, а младшие содержат собственно флаг.
Таблица 2.17 – Флаги, управляющие работой контроллера HD44780
Таблица 2.18 – Значения управляющих флагов после подачи питания
Список управляющих комбинаций битов регистра IR и выполняемые ими команды приведены в таблице 2.19. Так как на момент включения ЖКИ-модуль ничего не отображает (флаг D = 0), то для того, чтобы вывести какой-либо текст необходимо, как минимум, включить отображение, установив флаг D = 1. Вот пример широко распространенной последовательности для инициализации ЖКИ-модуля: $38, $ОС, $06 (знак «$» перед числом указывает на шестнадцатеричное основание). $38 устанавливает режим отображения 2-х строк с матрицей 5x8 точек и работу с 8-ми разрядной шиной данных; $ОС включает отображение на экране ЖКИ-модуля, без отображения курсоров; $06 устанавливает режим автоматического перемещения курсора слева-направо после вывода каждого символа.
Таблица 2.19 – Управляющие комбинации битов регистра IR
Контроллер HD44780 поддерживает как операции записи так и операции чтения. Чтение регистра DR приводит к загрузке содержимого DDRAM или CGRAM, в зависимости от текущего режима, при этом курсор смещается на одну позицию, как и при записи. Чтение регистра IR возвращает 8 значащих разрядов, причем в 7-ми младших содержится текущее значение счетчика АС (7 разрядов, если адресуется DDRAM, и 6 -если CGRAM), а в старшем – флаг занятости BF. Этот флаг имеет значение 1 когда контроллер занят и 0 – когда свободен. Необходимо учитывать, что большинство операций, выполняемых контроллером, занимают значительное время, около 40 мкс, а время выполнения некоторых доходит до единиц миллисекунд, поэтому цикл ожидания снятия флага BF должен обязательно присутствовать в программах драйвера ЖКИ-модуля и предшествовать совершению любой операции (естественно, кроме операции проверки флага BF), поэтому он весьма удобен для отечественных применений. Это свойство контроллеров фирмы Epson обеспечило им заслуженную популярность на российском рынке, поэтому в последнее время основная масса импортируемых в нашу страну ЖКИ-модулей оснащены именно этим контроллером; в качестве примера в таблице 2.20 приведен набор символов этого контролера.
Один важный момент! После совершения операции записи или чтения DDRAM и появления после нее признака готовности (BF = 0), прочитанное в этом же цикле (вместе с флагом BF) значение АС скорее всего не будет достоверным. Дело в том, что между появлением признака готовности и вычислением контроллером нового значения АС существует некоторый временной интервал, составляющий около 4 мкс при тактовой частоте контроллера 270 кГц. Поэтому, если необходимо получить истинное значение АС, нужно совершить повторную операцию прочтения IR спустя не менее чем 4 мкс (если контроллер работает на частоте 270 кГц время ожидания необходимо пропорционально увеличить). Вывод на экран символа производится записью его кода в регистр DR. При этом символ размещается в DDRAM по текущему адресу, указываемому АС, а значение АС увеличивается или уменьшается на 1. Чтобы произвести переустановку курсора на нужную позицию, необходимо присвоить АС соответствующее значение (см. таблицу 2.20). Здесь есть одна тонкость. Когда производится последовательная запись символов и в результате заполняется вся строка, курсор автоматически переходит на вторую строку, но если необходимо принудительно установить курсор, скажем, на начало второй строки, то будет неверным присвоить АС казалось бы логичное значение $28 (40), правильным является значение $40 (64). Значения адресов DDRAM в диапазоне $28...$3F (а равно и $68...$7F) являются неопределенными и результаты работы с ними могут быть непредсказуемыми. Необходимо учитывать, что контроллеры, устанавливаемые на ЖКИ-модули, могут иметь различные наборы символов, причем это может зависеть как от производителя контроллера, так и от модификации данной конкретной модели. Например, фирма Powertip выпускает ЖКИ-модули с четырьмя базовыми модификациями наборов символов: японской, европейской, французской и русской.Более того, существует как минимум два варианта русского набора символов: контроллер фирмы Hitachi (Н2 по маркировке фирмы Powertip) и контроллер фирмы Epson (EH по маркировке Powertip). Контроллер фирмы Hitachi обладает существенным недостатком – у него весьма ограниченный набор русских символов, фактически у него имеются только прописные русские буквы, и даже среди них отсутствует символ «Ф». Напротив, контроллер фирмы Epson содержит полный набор русских символов в прописном и строчном вариантах, поэтому он весьма удобен для отечественных применений. Это свойство контроллеров фирмы Epson обеспечило им заслуженную популярность на российском рынке, поэтому в последнее время основная масса импортируемых в нашу страну ЖКИ-модулей оснащены именно этим контроллером; в качестве примера в таблице 2.19 приведен набор символов этого контролера.
Из допустимых для размещения в DDRAM кодов символы с кодами $(Х)...$07 (и их дубликат с кодами $08...$OF) имеют специальное назначение – это переопределяемые символы, графическое изображение которых может назначить сам потребитель, разместив соответствующую информацию в области CGRAM. Для программирования доступны 8 переопределяемых символов в режиме с матрицей 5x7 точек и 4 с матрицей 5 х 10 (в режиме 5x10 переопределяемые символы адресуются кодами DDRAM через один: $00, $02, $04, $06). Для кодирования матрицы используются горизонтально «уложенные» байты, пять младших битов которых несут информацию о рисунке (причем 1 означает, что сегмент будет включен), 4-й разряд каждого из 8-ми (или 11-ти в режиме 5x10) байтов матрицы определяет левую колонку символа, а 0-й – правую. Старшие три бита не используются, равно как и старшие пять байтов, составляющих полную область матрицы символа (16 байтов) в режиме 5x10 (обратите внимание, что матрица программируемых символов допускает использование полной высоты строки (8 строчек для режима 5 х 7 и 11 строчек для режима 5 х 10), то есть можно размещать точки в области подчеркивающего курсора). Чтобы определить собственный символ необходимо установить счетчик АС на адрес начала матрицы требуемого символа в CGRAM – $00, $08, $10 и т.д. ($00, $10, $20 для режима 5 х К) точек) – произвести перезапись всех байтов матрицы, начиная с верхней строки. После этого, записав в DDRAM код запрограммированного символа: $00, $01, $02 ($00, $02, $04 для режима 5x10 точек), на экране в соответствующем месте будет отображаться переопределенный символ.
Таблица 2.20 – Таблица кодов символов контроллера Epson, набор «Russian»
Несколько слов о процессе инициализации ЖКИ-модуля. Производитель контроллера рекомендует выполнять следующую последовательность действий для инициализации. Выдержать паузу не менее 15 мс между установлением рабочего напряжения питания (> 4,5 В) и выполнением каких-либо операций с контроллером. Первой операцией выполнить команду, выбирающую разрядность шины (это должна быть команда $30 независимо от того, какой разрядности интерфейс вы собираетесь использовать в дальнейшем), причем перед выполнением этой операции не проверять значение флага BF. Далее опять выдержать паузу не менее 4,1 мс и повторить команду выбора разрядности шины, причем перед подачей команды вновь не производить проверку флага BF. Следующим шагом необходимо вновь выдержать паузу, на этот раз 100 мкс, и в третий раз повторить команду установления разрядности шины, вновь без проверки BF. Эти три операции являются инициализирующими и призваны вывести контроллер в исходный режим работы (то есть перевести в режим работы с 8-ми разрядной шиной) из любого состояния. Следом за ними нормальным порядком (без выдерживания пауз, но с проверкой флага BF) выполняется инициализация режимов работы с выдачей инициализирующей последовательности, аналогичной указанной в таблице 2.19 (содержащей в том числе команду выбора необходимой разрядности шины).
Необходимо помнить, что когда Вы объявляете режим работы с 4-х разрядной шиной, то есть выдаете команду $20, то делаете это обычно из 8-ми разрядного режима, который устанавливается автоматически после подачи напряжения питания, а значит вы не сможете адекватно объявить необходимое значение флагов N и F, располагающихся в младшей тетраде команды установки разрядности шины. Поэтому команду необходимо повторить в уже установившемся 4-х разрядном режиме путем последовательной передачи двух тетрад, то есть для 4-х разрядного режима образом.
3. Описание функциональной схемы
Рисунок 3.1 - Функциональная схема
На рисунке 3.1 представлена функциональная схема СУ датчиками влажности и давления. Её принципиальное отличие от структурной схемы, представленной ранее, заключается в том, что на данном этапе уже выбран микроконтроллер,датчики и Жк дисплей
В данном курсовом проекте был выбран микроконтроллер ADuC812 фирмы Analog Devices. Данный микроконтроллер удовлетворяет следующим требованиям:
наличие встроенного АЦП,
высокая надежность,
высокая степень миниатюризации,
работоспособность в жестких условиях эксплуатации;
достаточная производительность для выполнения всех требуемых функций
Датчик давления реализован в виде MLH050PGP06A
Датчик влажности в виде HIH-3602-L.
Для отображения многосимвольной информации используется ЖК-дисплей, который будет обмениваться информацией через порт P2, а управление передачей будет производится используя 3 выхода в порту P3.
4. Проектирование алгоритма работы
Основной алгоритм работы представлен на рисунке 4.1.
Рис. 4.1
Как видно из рисунка 4.1, замер данных происходят не при каждом цикле работы программы, а через некоторые интервалы времени. Эти интервалы замеряются при помощи счетчика временных интервалов TIC.
5. Разработка программы
В рамках курсового проекта будем разрабатывать фрагмент программы, реализующий часть основного режима работы системы, начинающийся с проверки наступления времени замера давления.
Для хранения различной рабочей текущей информации будем использовать банк регистров №1, для выбора которого при инициализации запишем в регистр флагов (PSW) значение #08h. В регистре R1 будем хранить текущее значение давления.
Для хранения флага режима работы воспользуемся пользовательским флагом регистра PSW (PSW.5 или F0).
Длительность интервалов замера давления определим как константу TCHECK
При начальной инициализации SPI выполним следующие действия [7]:
Установим бит CFG814.0 – для включения выводов P3.6 и P3.7 в режим MISO и MOSI;
Установим бит SPE – для выбора SPI вместо I2C;
Сбросим биты CPOL и CPHA – для согласования режимов обмена по SPI микроконтроллера и датчика давления..
Установим бит SPIM - для работы микроконтроллера в Master Mode.
Текст разрабатываемого фрагмента программы представлен в приложении А.
Заключение
В ходе выполнения данного курсовым проектом были получены знания о принципах построения и разработки систем на основе микроконтроллеров семейства 8051, о порядке и процессе выбора элементной базы, и построения единой системы на ее основе. При разработке фрагмента программы были получены навыки в написании программ на ассемблере семейства 8051. При помощи документации-первоисточника от производителя были изучены принципы соединения микроконтроллеров с периферийными устройствами посредством интерфейса SPI, принципы программной и технической реализации обмена данными между устройствами посредством интерфейса SPI. Для реализации в программе работы с длительными интервалами времени была освоена работа с счетчиком временных интервалов TIC.
Список использованных источников
.ADuC812 Data Sheet. Источник: www.analog.com,
Датчик давления www.sensorica.ru
Датчики влажности компании Honeywell. Источник: www.gaw.ru;
HIH-3602. Источник:
HDM08111H-L Data Sheet. Источник: www.gaw.ru – 08111hl.pdf
HD44780 Data Sheet. Источник: www.gaw.ru – HD44780.pdf.
ADuC812 Assembler Examples. Источник: www.analog.com
Приложение А. Текст разрабатываемого фрагмента программы
MOV A, wremia ;wremia - текущее значение времени TIC
CJNE A, TCHECK, ne1
ne1: JB C, loop; ;переход к началу цикла если wremia<TCHECK
readT: MOV SPIDAT, A ;начало обмена данными с SPI
l1: JNB ISPI, l1 ;ожидание конца обмена
MOV A, SPIDAT
MOV R1, SPIDAT ;занесение текущего давления в R1
MOV SPIDAT, A ;повторный обмена данными с SPI - для
l2: JNB ISPI, l2 ;завершения цикла приема 16 бит с датчика
last: CLR TCEN ;остановка TIC, сброс регистров времени
SETB TCEN
MOV A, R1 ;преобразование давления перед выводом
JNB R1.7, ne2
SJMP out
ne2: JB C, out
out: SWAP A ;для последующей записи давления в P1.(4..7)
MOV R2, A
MOV A, P1
ANL A, #0Fh ;обнуление A.(4..7)
ADD A, R2 ;P1.(0..3) не изменены, на P1.(4..7) – Давление.
AJMP loop ;переход к началу основного цикла