Смекни!
smekni.com

Система управления установкой для измерения влажности и давления (стр. 6 из 6)

Из допустимых для размещения в 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 фирмы AnalogDevices. Данный микроконтроллер удовлетворяет следующим требованиям:

наличие встроенного АЦП,

высокая надежность,

высокая степень миниатюризации,

работоспособность в жестких условиях эксплуатации;

достаточная производительность для выполнения всех требуемых функций

Датчик давления реализован в виде 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. Источник: http://www.aly.ru-HIH-3602-L_HON.pdf

5. HDM08111H-L Data Sheet. Источник: www.gaw.ru – 08111hl.pdf

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

7. ADuC812 Assembler Examples. Источник: www.analog.com


Приложение А. Текст разрабатываемого фрагмента программы

MOVA, wremia;wremia - текущее значение времени TIC

CJNEA, TCHECK, ne1

ne1: JBC, loop; ;переход к началу цикла если wremia<TCHECK

readT: MOVSPIDAT, A;начало обмена данными с SPI

l1: JNBISPI, l1 ;ожидание конца обмена

MOVA, SPIDAT

MOVR1, SPIDAT;занесение текущего давления в R1

MOVSPIDAT, A;повторный обмена данными с SPI - для

l2: JNBISPI, l2 ;завершения цикла приема 16 бит с датчика

last: CLRTCEN;остановка TIC, сброс регистров времени

SETBTCEN

MOVA, R1 ;преобразование давления перед выводом

JNB R1.7, ne2

SJMP out

ne2: JB C, out

out: SWAPA;для последующей записи давления в P1.(4..7)

MOV R2, A

MOV A, P1

ANLA, #0Fh ;обнуление A.(4..7)

ADDA, R2 ;P1.(0..3) не изменены, на P1.(4..7) – Давление.

AJMPloop ;переход к началу основного цикла