Рефераты. Система управления установкой для измерения влажности и давления


Таблица 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.



Список использованных источников


1.       .ADuC812 Data Sheet. Источник: www.analog.com,

2.       Датчик давления www.sensorica.ru

3.       Датчики влажности компании Honeywell. Источник: www.gaw.ru;

4.       HIH-3602. Источник: #"#">www.gaw.ru – 08111hl.pdf

6.       HD44780 Data Sheet. Источник: www.gaw.ru – HD44780.pdf.

7.       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          ;переход к началу основного цикла


Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.