Смекни!
smekni.com

Проектирование микропроцессорной системы на основе микроконтроллера К1816ВЕ31 (стр. 4 из 5)

В системе имеются так же аппаратные прерывания, в результате которых должны выполнятся какие-либо действия, после чего основная программа продолжает свое выполнение. Такие прерывания обслуживают подпрограммы обработки прерываний (в системе их две: подпрограмма обработки прерываний от таймера и подпрограмма обработки прерывания от последовательного интерфейса).

Программу функционирования условно можно разделить на две части: инициализацию и рабочий цикл.

Инициализация представляет собой запись в определенные регистры некоторых констант, определяющих режимы работы процессора и отдельных частей системы.

Рабочий цикл – это набор процедур и операторов, выполняемых в бесконечном цикле, и обеспечивающих выполнение возложенных на систему функций. Граф-схема алгоритма работы и подпрограмм, приведенные на листе 4 графической части.

Подпрограмма инициализации контроллера клавиатуры и индикации

В разработке использован ПККИ типа КР580ВВ79. Его настройка осуществляется загрузкой управляющего слова «установка режима работы контроллера клавиатуры и индикации» в соответствующий регистр блока управления. Режим работы блока интерфейса клавиатуры: последовательный опрос матрицы клавиш с дешифрированием состояния счетчика сканирования и запрещением 2-х или более нажатых клавиш. Режим работы блока индикации: вывод символов на 8-разрядную индикацию с размещением их слева направо.

7 6 5 4 3 2 1 0

0 0 0 0 0 0 0 1

Рисунок 6.1 – Формат управляющего слова ПККИ.

Разряды D4 и D3 – определяют режим работы интерфейса индикации;

Разряды D2-D0 – определяют режим работы интерфейса клавиатуры.

7 6 5 4 3 2 1 0

1 1 0 0 0 0 0 0

Рисунок 6.2 – Формат управляющего слова «программный сброс»

Разряды D7 – D5 – адрес управляющего слова «программный сброс»;

Разряды D4 = 0 – коды находящиеся во внутреннем ОЗУ индикации выдаются на выходы OUT; D1 = 1 – обнуление регистра состояния ОЗУ клавиатуры и на выходе IRQ – сигнал низкого уровня; D0 ºD4.

Загрузка управляющего слова «программирование синхронизацией» выполняется каждый раз перед функционированием ПККИ для согласования внешней синхросерии с внутренней частотой ПККИ.


7 6 5 4 3 2 1 0

0 0 1 1 1 1 1 0

Рисунок 6.3 – Формат управляющего слова «программирование синхронизацией»

Разряды D4-D0 – коэффициент пересчета.

После загрузки управляющего слово «запись в ОЗУ индикации» микропроцессор может записывать информацию в ОЗУ индикации по адресу указанному в разрядах D3-D0. при D4 = 1 адрес ячейки ОЗУ после каждой операции будет увеличиваться на единицу.

7 6 5 4 3 2 1 0

1 0 0 1 х х х х

Рисунок 6.4 – Формат управляющего слова «запись в ОЗУ индикации»

Разряды D7-D5 – адрес управляющего слова; D3-D0 – адрес ячейки ОЗУ индикации.

Формат управляющего слова «Чтение многорежимного ОЗУ клавиатуры» аналогичен формату управляющего слова «Чтение из ОЗУ индикации», за исключением содержимого битов D7-D5.

7 6 5 4 3 2 1 0

0 1 0 1 х х х х

Рисунок 6.5 – Формат регистра управляющего слова клавиатуры

Разряды D7-D5 – адрес управляющего слова; D4 – признак автоинкремента; D3-D0 – адрес ячейки ОЗУ клавиатуры.

Подпрограмма инициализации программируемого параллельного интерфейса

Настройка ППИ осуществляется загрузкой управляющего слова в регистр управляющего слова. Настройка производится следующим образом: порт А работает в режиме ввода информации с датчиков через АЦП, а порт В работает в режиме вывода информации на ЦАП. Порт С будет управлять процессами приема и выдачи информации.

В разработанной системе ППИ работает в 0 режиме. Функции этого режима:

1) Два 8-ми разрядных и два 4-х разрядных порта.

2) Все порты могут быть как входными, так и выходными.

3) Выходные порты защелкиваются, входные – нет.

Формат регистра управляющего слова ППИ представлен на рис. 6.6.

7 6 5 4 3 2 1 0

1 0 0 1 0 0 0 0

Рисунок 6.6 – Формат управляющего слова ППИ.

Разряды D0 = 0 – C0-C3 работают на вывод; D1 = 0 – порт В работает на вывод;

D2 – выбор режима; D3 = 0 – C4-C7 работают на вывод; D4 = 1 – порт А работает на ввод; D5 и D6 – определяют режим работы; D7 – управляющее слово.

Подпрограмма инициализации последовательного порта

Управление режимом работы УАПП осуществляется через специальный регистр с символическим именем SCON.

7 6 5 4 3 2 1 0

1 0 0 1 0 0 0 0

Рисунок 6.7 – Формат регистра SCON.

SM1 и SM0 (D7, D6) – определяют режим работы последовательного порта (Режим 2: 9-ти разрядный асинхронный приемопередатчик, фиксированная скорость приемопередачи);

SM2 (D5) = 0;

REN (D4) – флаг управления разрешением приема;

TB8 (D3) – установка состояния 9-го бита принимаемых данных;

RB8 (D2) – анализ состояния 9-го бита принимаемых данных;

TI (D1) – бит прерывания по передачи;

RI (D0) – бит готовности.

Подпрограмма опроса клавиатуры

Программируемый контроллер клавиатуры и индикации настраивается на режим чтения многорежимного ОЗУ клавиатуры с автоинкрементом, в счетчик заносим количество ячеек ОЗУ клавиатуры. Происходит последовательный опрос клавиатуры, после чего данные о нажатых функциональных клавишах записываются в ОЗУ клавиатуры.

Подпрограмма выдача данных на индикаторы

При обращении в данную подпрограмму сначала происходит обнуление счетчика, а затем наращивание его до заданного количества индикаторов. Программируемый контроллер клавиатуры и индикации настраивается на режим записи в ОЗУ индикации и происходит последовательный вывод информации на индикаторы. Выход из подпрограммы произойдет после выдачи всех кодов символов на индикаторы.

Опрос датчиков и выдача выходных сигналов

Опрос датчиков и выдача выходных сигналов происходит по следующему алгоритму:

1) в счетчик заносится количество опрашиваемых датчиков;

2) информация считывается с датчиков в порт А, который ранее был проинициализирован на прием данных;

3) принятая информация переписывается через аккумулятор в специально отведенную для информации с датчиков ячейку ОЗУ;

4) уменьшение счётчика количества датчиков на 1;

5) если произошел опрос всех датчиков, то ППИ перестраивается на выдачу информации из порта В;

6) в счетчик заносится количество выходных сигналов;

7) информация из ячейки ОЗУ через аккумулятор заносится в порт В;

8) производится вывод информации.

Подпрограмма обмена информацией с центральной ЭВМ

В этой подпрограмме вначале производится чтение регистра состояния УАПП. После этого выполняется проверка: установлен ли пятый бит регистра в 1. Если установлен, то это означает, что УАПП готов к передаче информации и происходит побитная передача данных в линию связи до тех пор, пока счетчик передаваемых информационных разрядов не будет равен нулю. Как только все информационные разряды передадутся в линию связи, произведутся новые начальные установки (начальный адрес ОЗУ, количество информационных разрядов) и подпрограмма закончит свое выполнение. Если же еще на первом этапе пятый бит регистра не будет установлен в 1, следовательно произойдет выход из подпрограммы, т. к. УАПП в этом случае не готов передавать информацию.

Подпрограмма инициализации таймера

Для управления режимами работы таймера / счетчика и для организации взаимодействия таймеров с системой прерывания используют два специальных регистра: TCON и TMOD.

7 6 5 4 3 2 1 0

а 1 а 0 а 0 а 0

Рисунок 6.8 – Формат регистра TCON

7-й бит регистра TCON – флаг переполнения таймера 1. Устанавливается аппаратно при переполнении Т/С.

6-й бит – бит управления таймера 1. Устанавливается/ сбрасывается программой для пуска / останова.

4-й бит – флаг запроса внешнего прерывания (бит управления таймера 0).

0 0 0 1 0 0 0 0

Т/С1 Т/С0

Рисунок 6.9 – Формат регистра TMOD.

Регистр TMOD задает режимы работы Т/С0 и Т/С1. Устанавливаем для Т/С1 первый режим работы: 16-битный таймер / счетчик. TH1 и TL1 включены последовательно. При переходе из состояния» все единицы» в состояние «все нули» устанавливается флаг прерывания от таймера TF1. Входной синхросигнал таймера 1 разрешен (поступает на вход Т/С), когда управляющий бит TR1 установлен в 1 и либо управляющий бит GATE (блокировка) равен 0, либо выход запроса прерывания

поступает уровень 1.), блокировка отключена, таймер работает от внутреннего источника сигналов синхронизации.