Курсовая работа: Система управления установкой для измерения влажности и давления
В таблице 2.1 приведено расположение контактов контроллера ADuC812.
Таблица 2.1– Расположение контактов ADuC812
Использование памяти данных
Память данных пользователя состоит из 640 байт, которые составляют 160 (от 00Н до 9FН) четырехбайтовых страниц, как показано на рисунке 2.3. Как и для прочей периферии, доступ к этой памяти производится через SFR регистры. Группа из 4-х регистров (EDATA1-4) используется для хранения данных четырех байт страницы из последнего обращения. EADRL используется для хранения адреса страницы, куда будет осуществляться доступ. И, наконец, ECON – 8-разрядный регистр управления, в который записывается одна из пяти команд управления доступом к памяти, допускающие различные операции чтения, записи, стирания и верификации. Блок-схема регистрового интерфейса к памяти показана на рисунке 2.4.
Рисунок 2.3– Конфигурация 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 осуществляется при помощи следующих регистров: