Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Работа №3 цифровые системы на базе микроконтроллера atmega103: контроль внешних устройств через параллельные порты - работа с клавиатурой

Поиск

Цель работы: получение практических навыков программирования процедур опроса состояния внешних устройств (на примере подключения клавиатуры).

Введение

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

На плате лабораторного макета смонтирована простая 12-кнопочная клавиатура, которая подключена к выводам PD0 - PD6 порта PD микроконтроллера. Клавиатура имеет вид матрицы 4x3, кнопки обозначены А1 - A3, В1 - ВЗ, С1 - СЗ, D1 - D3, где цифры 1, 2, 3 определяют номер столбца, а буквы А, В, С, D указывают позицию кнопки в столбце. Подключение кнопок клавиатуры к выводам порта PD показано на рисунке 1 Приложения. Для контроля состояния кнопки в строке необходимо подать низкий потенциал (логический «0») на вывод микроконтроллера PD0 (PD1, PD2, PD3). В этом случае на выводе PD4, PD5 или PD6, подключенном к нажатой кнопке, установится «0».

Для определения текущего состояния клавиатуры микроконтроллер должен периодически считывать состояния выводов PD4 - PD6, последовательно устанавливая на выводах PD0 - PD3 состояние "0". Для этого служит процедура опроса клавиатуры, посредством выполнения которой микроконтроллер определяет позицию нажатой кнопки. В реальных системах опрос клавиатуры производится периодически по сигналам таймера или осуществляется по запросу прерывания, формируемому клавиатурой. Основной проблемой при обслуживании клавиатуры является защита от дребезга контактов, который может привести к формированию ложной информации. Для защиты применяются как аппаратные, так и программные средства. На плате лабораторного макета аппаратных средств защиты от дребезга контактов нет, поэтому должны применяться исключительно программные методы, все варианты которых сводятся к повторному чтению состояния клавиатуры.

Нажатие клавиши должно вызывать ввод в цифровую систему определенного 8-разрядного символа. Кодировка клавиш, которая должна быть реализована при выполнении данной работы на лабораторном макете, задается преподавателем.

У микроконтроллеров ATmega103 имеется 6 параллельных портов ввода/вывода.

Порт А. Порт А является 8-разрядным двунаправленным портом ввода/вывода, оснащен встроенными нагрузочными резисторами.

Взаимодействие с портом А осуществляется через три расположенных в пространстве ввода/вывода (памяти данных) регистра: регистр данных - PORTA $1В($ЗВ), регистр направления данных - DDRA $1А($ЗА) и регистр входных данных - PINA, $19($39). Регистр входных данных обеспечивает только возможность чтения, регистры данных и направления данных обеспечивают возможность и чтения и записи.

Все выводы порта А оснащены индивидуально подключаемыми встроенными нагрузочными резисторами. Выходные буферы порта А обеспечивают ток до 20мА, что достаточно для прямого управления светодиодными индикаторами. Если выводы РА0 - РА7 используются в качестве входов и внешним сигналом удерживаются на низком уровне, то вытекающий ток обеспечивается подключением внутренних нагрузочных резисторов.

Выводы порта А могут выполнять альтернативную к основной функцию. При взаимодействии с внешней памятью данных они могут работать как младшие разряды мультиплексированной шины адреса/данных. Альтернативная функция включается установкой бита SRE (разрешение внешней памяти данных) в регистре MCUCR, при этом установки регистра направления данных игнорируются.

 

Рисунок 3.1 – Регистры данных пора А – PORTA

 

PINA - не является регистром в полном смысле слова, обращение по этому адресу обеспечивает чтение физического состояния каждого вывода порта. При чтении регистра PORTA читается состояние защелок данных порта А, а при чтении PINA читаются непосредственно логические состояния на выводах.



Поделиться:


Последнее изменение этой страницы: 2019-11-02; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.94.189 (0.006 с.)