Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
21.02.2014
Размер:
135.68 Кб
Скачать

4.1 Система команд микроконтроллера

Все множество команд ОЭВМ можно разбить на пять функциональных групп:

  • команды пересылки данных;

  • команды арифметических операций;

  • команды логических операций;

  • команды передачи управления;

  • команды управления работой ОЭВМ.

Группа команд арифметических операций содержит всего 12 команд. Набор действий ограничен сложением содержимого аккумулятора с регистром, с ячейкой памяти или константой без учета или с учетом переноса, десятичной коррекцией содержимого аккумулятора, командами инкремента и декремента аккумулятора или регистра. Все остальные действия, включая вычитание, должны реализовываться программно.

Команды логических операций позволяют выполнять следующие операции на байтами: логическое И, логическое ИЛИ, исключающее ИЛИ, инверсию, установку в 0 (сброс) и сдвиг. Команды сброса и инверсии могут выполняться и над битами.

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

4.2 Пошаговый режим работы микроконтроллера

Пошаговый режим работы необходим для отладки и проверки программ, для его реализации используются выводы SS и ALE. При работе в пошаговом режиме осуществляется приостанов после выполнения каждой команды (как одно-, так и двухцикловой). После завершения выполнения команды на шинах DB(1-0) и Р(23-20) находится адрес следующей инструкции, что позволяет проверять адресацию в программах. Наиболее целесообразно использовать пошаговый режим при работе с внешней памятью, позволяющей посмотреть и коды команд. При останове БИС данные в порте Р0 и младших разрядах порта Р1 недоступны. Эту информацию можно фиксировать во внешнем регистре по положительному фронту ALE. При подаче на вход SS высокого потенциала микроконтроллер переходит в режим непрерывного исполнения программы.

5 Описание управляющей программы

Наиболее интересной частью программного обеспечения является поддержка сканирования клавиатуры. Порт ввода-вывода Р1 используется для сканирования оптоэлектронной матрицы (разряды Р11…Р15), управления гашением и поджигом светодиодов (VD11…VD40) (разряд Р40), а также для передачи кода нажатой клавиши в последовательном виде (разряд Р16).

После временной задержки, равной 1,6мс, поджигаются светодиоды, соответствующие данному оптоэлектронному каналу. Через 1,4мс контролируется вход ТО. Если канал разомкнут, на ТО устанавливается сигнал низкого уровня. Вход ТО контролируется в каждом канале перед снятием сигнала поджига светодиодов. Сигнал гашения светодиодов поступает через 0,2мс. На сканирование одного оптоэлектронного канала потребуется 3,2мс.

Если канал разомкнут, ОЭВМ выдает код следующего оптоэлектронного канала строк. Как только все оптоэлектронные каналы будут просмотрены, сканирование начнется сначала (с нулевого оптоэлектронного канала строк).

При обнаружении на ТО сигнала высокого уровня, свидетельствующего о перекрытии опрашиваемого оптоэлектронного канала строк, ОЭВМ переходит на сканирование оптоэлектронной матрицы по столбцам. Вход ТО контролируется при каждом изменении опрашиваемого оптоэлектронного канала столбцов. Если на ТО сигнал низкого уровня, ОЭВМ выдает код следующего оптоэлектронного канала столбцов. Если все каналы столбцов опрошены, сканирование завершается.

При обнаружении на ТО сигнала высокого уровня фиксируется код замкнутой клавиши (код клавиши на пересечении оптоэлектронных каналов строк и столбцов). Временная диаграмма сканирования представлена на рисунке 5.

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

Рисунок 5 – Временная диаграмма алгоритма сканирования

На рисунке 6 приведен алгоритм работы контроллера клавиатуры.

После поступления сигнала RST микроЭВМ инициализируется, и контроллер приступает к сканированию матрицы клавиатуры. Если нажатия клавиши не произошло, контроллер клавиатуры выдает запрос на передачу кодов команд со стороны ЭВМ. Тогда при готовности ЭВМ происходят прием инструкции по линии RD и изменение указанных в команде кодов функциональных клавиш. При нажатии одной или нескольких клавиш контроллер дешифрует код нажатой клавиши и записывает его в специальный буфер хранения кодов клавиш, синхронизирующий обмен информацией контроллера клавиатуры с ЭВМ по линии связи. Максимальное число помещаемых в буфер кодов (20) определяется объемом ОЗУ микроЭВМ. При переполнении буфера ввод кодов блокируется. Защита от дребезга контактов и обработка одновременного нажатия нескольких клавиш происходят программно.

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

Рисунок 6 – Алгоритм работы клавиатуры

Фрагмент главной управляющей программы, обеспечивающий сканирование клавиатуры, имеет вид:

; KLAV– стартовый адрес программы обслуживания прерывания от клавиатуры

6:

7:

3:

2:

1:

5:

MOV #KLAV, @#270

CLR @#272

CLR ZBI

EN #200, @#RUPR

CLR MF

MOV #27, R2

MOV R2, @#RKL

MTPS #0

CLR R0

MOV #100, R1

MOV BUFI (R0), R4

EN R1, R4

MOV R4, @#RI

MOV #100, R3

SOB R3, 1

ASL R1

ADD #2, R0

CMP #22, R0

BGE 2

MTPS #200

DIS #1, MF

BEQ 5

TST @#RUPR

BGE 3

BIC #1, MF

SOB R2, 7

BR 6

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

Установка стартового адреса

Установка прерывающей программы

Обнуление указателя заполнения буфера индикатора

Разрешение прерывания клавиатуре

Обнуление ячейки флажков

Занесение счетчика сканирования клавиатуры (ССК)

Запись ССК в РКЛ

Разрешение прерывания в слове состояния процессора

Обнуление указателя считывания буфера индикатора

Начальное значение для динамической индикации

Вывод очередной цифры в разряд индикатора

Временная задержка

Цикл индикации окончен?

Нет

Запрет прерывания в ССК

Прерывание было?

Нет

Клавиша отпущена?

Нет

Сбросить флажок прерывания

Сканирование клавиатуры окончено? – нет

Да

В тексте программы имя BUFI соответствует первой ячейке буфера индикатора, RKL – регистр клавиатуры, RI – регистр индикатора, RUPR – регистр управления.

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

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

ЗАКЛЮЧЕНИЕ

В данной курсовой работе была разработана оптоэлектронная клавиатура на основе микроконтроллера К1816ВЕ35. Было проведено сравнение характеристик микроконтроллеров серии К1816, по результатам которого был выбран конкретный микроконтроллер, наиболее соответствующий требованиям разрабатываемого устройства.

В данной работе были приведены алгоритм работы контроллера клавиатуры и фрагмент управляющей программы, обеспечивающей сканирование клавиатуры.

Была решена основная задача курсовой работы – развитие и закрепление навыков самостоятельной работы при решении конкретной задачи, то есть была разработана оптоэлектронная клавиатура, которая незаменима там, где имеется высокий уровень помех, например, электромагнитные поля, радиационное излучение и др.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. Зеновский А.В., Силагин А.В., Христюк Е.И. Оптоэлектронная клавиатура на однокристальной ЭВМ// Микропроцессорные средства и системы, №6, 1990, с. 16.

  2. Фрунзе А., Хоркин С. Однокристальные микроЭВМ// Радио, №6, 1994, с.17.

  3. Фрунзе А., Хоркин С. Однокристальные микроЭВМ КМ1816ВЕ35, КМ1816ВЕ48, КМ1816ВЕ49. Структурная организация// Радио, №2, 1994, с.16.

  4. Щелкунов Н.Н., Диднов А.П. Организация однокристальных микроконтроллеров// Микропроцессорные средства и системы, №5, 1989, с. 76.

  5. Цифровые и аналоговые интегральные микросхемы: Справочник/ С.В. Якубовский, Л.И. Ниссельсон, В.И.Кулешова и др.; Под ред. С.В.Якубовского. – М.: Радио и связь, 1989.

  6. Алексеенко А.Г., Шагурин И.И. Микросхемотехника: Учебное пособие для вузов/ Под ред. И.П. Степаненко. – М.: Радио и связь, 1982.

  7. Балашов Е.П., Пузанков Д.В. Микропроцессоры и микропроцессорные системы: Учебное пособие для вузов/ Под ред. В.Б. Смолова. – М.: Радио и связь, 1981.

  8. Стрыкин В.В., Щарев Л.С. Основы вычислительной, микропроцессорной техники и программирования : Учебник для учащихся техникумов. – 2-е изд., перераб. и доп. – М.: Высшая школа, 1989.

  9. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1988.

  10. Хвощ С.Т. Микропроцессоры и микроЭВМ в САУ: Справочник/ С.Т. Хвощ, Н.Н. Варлинский, Е.А. Попов; Под ред. С.Т. Хвоща. – Л: Машиностроение, 1987.

УИТС.421ХХХ.004 ПЗ

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.