Дата последнего обновления файла 4.10.2012

Лабораторная работа 3. Ввод информации в микроконтроллер с клавиатуры

Лабораторная работа выполняется с помощью учебного лабораторного стенда LESO1.

Цель работы: Ознакомиться с особенностями работы параллельных портов микроконтроллера семейства MCS-51. Научиться подключать одиночные кнопоки и клавиатуру к микроконтроллеру. Разобраться с принципом опроса состояния кнопок клавиатуры. Научиться определять состояние кнопок при помощи программы. Ознакомиться со способами отладки программ для микроконтроллеров на примере лабораторного стенда LESO1.

Подготовка к лабораторной работе

По конспекту лекций изучить схемы параллельных портов микроконтроллеров семейства MCS51 и их особенности в микроконтроллере ADuC842, особенности работы с клавиатурой, схему подключения клавиатуры к параллельным портам микроконтроллера ADuC842 в схеме лабораторного стенда LESO1 и определить к каким портам микроконтроллера в данной схеме подключены линии опроса и линии возврата кода кнопки клавиатуры. По принципиальной схеме стенда LESO1, пользуясь кратким описанием микроконтроллера ADuC842 или полным описанием микроконтроллера ADuC842 на английском языкеопределить адреса портов линий опроса и возврата. Изучить особенности объявления переменных, связанных с регистрами специальных функций, в языке программирования C-51. Научиться формировать импульсы опроса столбцов кнопок клавиатуры и считывать код возврата. Научиться заносить программу во внутреннюю память программ микроконтроллера ADuC842. Написать программу опроса клавиатуры, которая будет зажигать комбинацию светодиодов, соответствующую двоичному коду номера кнопки.

Задание к работе

При нажатии на любую кнопку клавиатуры стенда LESO1 должна светиться комбинация светодиодов, соответствующая номеру кнопки в двоичном виде, при отпускании кнопки, светодиоды должны погаснуть. Код кнопки '0' соответствует 10, код кнопки '*' соответствует 11, код кнонки '#' соответствует 12;

Рекомендации к составлению программы

Программа для микроконтроллера жестко зависит от принципиальной схемы разрабатываемого устройства. Невозможно написать программу для микроконтроллерного устройства не имея перед глазами его схемы. Поэтому, перед началом работы по принципиальной схеме учебного стенда LESO1 следует определить, к каким портам микроконтроллера подключены светодиоды, столбцы и строки клавиатуры. Затем по таблице SFR нужно узнать адреса задействованных портов ввода-вывода.

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

При написании программы нужно помнить об особенности параллельного порта P1 в микроконтроллере ADuC842. Этот порт по умолчанию настроен на ввод аналоговых сигналов (функция АЦП). Для того чтобы перевести порт в режим цифрового входа, в соответствующий бит порта необходимо записать логический ноль. Сделать это нужно один раз при инициализации микроконтроллера. Порт не имеет внутреннего усиливающего транзистора, и потому при вводе дискретной информации через него не требуется записывать в разряды логическую единицу.

Порядок выполнения работы

  1. Войдите в интегрированную среду программирования Keil-C;
  2. Создайте и настройте программный проект;
  3. Введите подготовленный дома текст программы;
  4. Оттранслируйте программу, и исправьте синтаксические ошибки;
  5. Загрузите полученный *.hex файл в лабораторный стенд LESO1;
  6. Убедитесь, что программа функционирует должным образом;
  7. Если программа не выполняет все или часть функций, то найдите логические ошибки, исправьте их и перейдите к пункту 3;

Содержание отчета

  1. Цель работы;
  2. Эквивалентная схема подключения кнопки к параллельным портам микроконтроллера;
  3. Временные диаграммы напряжений на портах микроконтроллера, подключенных к клавиатуре;
  4. Принципиальную схему подключения клавиатуры и светодиодов к микроконтроллеру (без элементов неиспользующихся в работе);
  5. Порядок выполнения работы;
  6. Графическую схему алгоритма работы программы;
  7. Содержимое файла листинга программного проекта;
  8. Выводы по выполненной лабораторной работе;

5 Контрольные вопросы

  1. Что такое параллельный порт?
  2. Какие виды параллельных портов вы знаете?
  3. Для чего применяются параллельные порты?
  4. Как настраиваются параллельные порты микроконтроллера?
  5. Что такое альтернативные функции параллельных портов микроконтроллера?
  6. Что такое вытекающий ток параллельного порта? Для чего нужен этот параметр?
  7. Что такое втекающий ток параллельного порта? Для чего нужен этот параметр?
  8. Как увеличить выходной ток параллельного порта микроконтроллера?
  9. Какое максимальное и минимальное напряжение выдерживает параллельный порт микроконтроллера? Как увеличить эти напряжения?
  10. Что такое подтяжка порта микроконтроллера?
  11. Как превратить замыкание и размыкание контактов кнопки или датчика в логические уровни?
  12. Как определить адрес порта в адресном пространстве микроконтроллера?
  13. Как выдать на выход параллельного порта микроконтроллера логическую единицу?
  14. Как выдать на выход параллельного порта микроконтроллера логический ноль?
  15. Что такое клавиатура?
  16. Какие особенности работы с клавиатурой?
  17. Что такое скан-код?
  18. Из каких частей состоит скан-код?
  19. Что можно определить по скан-коду?
  20. Как выглядят временные диаграммы сигналов на выводах клавиатуры?

Литература:

  1. М. Рафикумазан. Микропроцессоры и машинное проектирование микропроцессорных систем 1988
  2. В.В. Сташин А.В. Урусов О.Ф. Мологонцева Проектирование цифровых устройств на однокристальных микроконтроллерах 1990
  3. В.Я. Нерода В.Э. Торбинский Е.Л.. Шлыков Однокристальные микроЭВМ MCS-51 Архитектура 1995
  4. В.И. Сединин, А.В. Микушин. Однокристальный микроконтроллер семейства MCS-51 фирмы INTEL 8xC51GB 2001
  5. В.И. Сединин, А.В. Микушин. Программирование микропроцессорных систем на языке C-51 Москва, "Горячая линия – Телеком", 2009. — 216с.

Вместе с лабораторной работой "Ввод информации в микроконтроллер с клавиатуры" выполняют:

Лабораторная работа 1. Знакомство с интегрированной средой программирования keil-C
http://digteh.ru/MCS51/lab/1/

Лабораторная работа 2. Ввод и вывод информации через параллельные порты микроконтроллера
http://digteh.ru/MCS51/lab/2/

Лабораторная работа 4. Исследование работы таймеров микроконтроллеров MCS-51
http://digteh.ru/MCS51/lab/4/

Лабораторная работа 5. Работа с последовательным портом микроконтроллера ADuC842
http://digteh.ru/MCS51/lab/5/

Лабораторная работа 6. Вывод информации на жидкокристаллический дисплей
http://digteh.ru/MCS51/lab/6/


Автор Микушин А. В. All rights reserved. 2001 ... 2015

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

пЕИРХМЦ@Mail.ru


Rambler's Top100