Смекни!
smekni.com

Разработка контроллера матричной клавиатуры на микроконтроллере К1816ВЕ48 (стр. 1 из 2)

Введение

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

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

Темой моей курсовой работы является разработка котроллер матричной клавиатуры на микроконтроллере. В качестве него я выбрал микроконтроллер К1816ВЕ48 (МК48) потому, что серия К1816, рис.1, предназначена для построения широкого спектра микроЭВМ и микроконтроллеров с целью их использования для сбора и обработки информации, в системах регулирования технологических процессов, цифровой обработке сигналов в аппаратуре связи и т. д.

Совокупности потребительских параметров, таких, как стоимость, эффективность, энергопотребление, рабочий диапазон температур – представляются достоинствами серии К1816 при ее использовании в различной аппаратуре.

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

Простейший в серии К1816 микроконтроллер К1816ВЕ48 (МК48) имеет на кристалле следующие аппаратные средства: процессор разрядностью 1 байт, стираемое программируемое ПЗУ программ емкостью 1 Кбайт, ОЗУ данных емкостью 64 байта, программи

руемый 8-битный таймер/счетчик, программируемые схемы ввода/вывода (27 линий), блок векторного прерывания от двух источников, генератор, схему синхронизации и управления.

Структура МК48 и его система команд такова, что в случае необходимости функционально-логические возможности контроллера могут быть расширены. С использованием внешних дополнительных БИС постоянной и оперативной памяти адресное пространство МК может быть расширено до 4 Кбайт и 320 байт соответственно, а путем подключения различных интерфейсных БИС число линий связи МК с объектом управления может быть увеличено практически без ограничений.

МК48 требует одного источника питания +5В ± 10%, рассеивает мощность около 1,5 Вт и работает в диапазоне температур от 0 до 700 С. По входам и выходам МК48 электрически совместимы с микросхемами ТТЛ. МК48 может работать в диапазоне частот синхронизации от 1 до 6 МГц, а минимальное время выполнения команды составляет 2,5 мкс.

Из такой характеристики видно, что МК48 обладает значительными функционально-логическими возможностями и представляют эффективное средство компьютеризации (автоматизации на основе применения средств и методов обработки данных и цифрового управления) разнообразных объектов и процессов.

Анализ основных признаков МК48 показывает, что их целесообразно использовать на этапе опытно-конструкторской разработки и отладки систем.

Структурная схема МК48

Рис. 1

1.

Структурная схема и анализ задачи

В структурной схеме отражено взаимодействие микропроцессора, клавиатуры и пользователя.

Рис. 2

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

2.Разработка принципиальной схемы

Рис.3

На рис. 3 изображена принципиальная схема контроллера матричной клавиатуры. Для обеспечения синхронизации работы микропроцессора к выводам CR1, CR2 подключен кварцевый резонатор.

Десять кнопок организованы в матрицу, и при нажатии любой кнопки замыкается строка и столбец. Определив замкнутые строку и столбец, можно определить код нажатой клавиши. Такое сканирование клавиатуры реализуется программно.

Три линии порта 1 Р1.0, Р1.1, Р1.2 образуют три линии кнопок, а к выводам Р2.0, Р2.1, Р2.2, Р2.3 подключены четыре столбца. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши можно нанести обозначения, соответствующие их кодам (от 0 по F) Резисторы R1-R4 ограничивают ток через контакты а диоды обеспечивают защиту от замыкания между собой сканирующих линий в случае одновременного нажатия более чем одной клавиши.

Питание контроллера осуществляется от сети переменного тока с напряжением

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

3. Разработка блок-схемы и алгоритма программы

Принцип работы клавиатуры следующий:

На одну из линий порта выдается логический «0», а на остальные линии «1». Затем происходит считывание с линий столбцов. Если фиксируется «0», его позиция соответствует номеру столбца нажатой клавиши и вместе с номером текущей строки он используется для определения кода нажатой клавиши. Если на всех входах «1», процедура сканирования продолжается для следующей строки.

Для обслуживания клавиатур в МК- системах используются две процедуры: опрос состояния клавиатуры и ввод кода нажатой клавиши.

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

Линии порта 1 используются для сканирования, а линии порта 2 - для опроса матрицы клавиш. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши нанесены обозначения, соответствующие их кодам (от 0 по B).

Для программного ввода информации с клавиатур характерен один недостаток, а именно - срабатывание по отпусканию клавиши, а не по нажатию. Однако при кратковременных нажатиях клавиш этот эффект не имеет особого значения.

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

Последовательность байтов сканирования представляет собой код "бегущий нуль"; формирование очередного байта сканирования осуществляется путем сдвига его предыдущего значения. Направление сдвига определяет последовательность опроса клавиш. Если при полном цикле сканирования не было обнаружено нажатой клавиши, то процедура сканирования повторяется сначала.

Оператор "Есть нажатая клавиша?" реализуется тем, что клавиши, подключенные к каждой линии сканирования, анализируются последовательно. Если после анализа каждой клавиши осуществлять прибавление единицы к счетчику SCANCODE, то процедуру сканирования можно совместить с процедурой идентификации нажатой клавиши (рис. 4).


4. Разработка текста исходной программы

R4 - счетчик кода сканирования

ORG 300H; переход на 300 страницу РПП

DB 7EH,30H, 6DH,79H; коды семисегментного

DB 33H,5BH,5FH,70H; индикатора

DB 7FH,7BH,76H,1EH;

ORG 0; переход в начало программы