Автор работы: Пользователь скрыл имя, 05 Июня 2013 в 15:38, курсовая работа
Тем не менее, интерес к архитектуре ЭВМ и программированию на уровне машинных кодов не угасает, но и явно растет по двум причинам. Первая причина заключается в том, что доступность использования ЭВМ для непрофессиональных программистов достигается ценой немалых усилий профессиональных программистов, создающих системное программное обеспечение, для которых знание архитектуры ЭВМ просто необходимы. Происходящий ныне процесс компьютеризации неизбежно увеличивает число специалистов очень высокой квалификации – системных программистов.
Известно, что становятся доступными новые языки программирования высокого уровня, позволяющие в существенной степени избежать зависимости от ЭВМ и облегчить процесс программирования. Широкое распространение персональных компьютеров привлекает к использованию ЭВМ непрофессиональных программистов.
Тем не менее, интерес к архитектуре ЭВМ и программированию на уровне машинных кодов не угасает, но и явно растет по двум причинам. Первая причина заключается в том, что доступность использования ЭВМ для непрофессиональных программистов достигается ценой немалых усилий профессиональных программистов, создающих системное программное обеспечение, для которых знание архитектуры ЭВМ просто необходимы. Происходящий ныне процесс компьютеризации неизбежно увеличивает число специалистов очень высокой квалификации – системных программистов. Вторая причина обусловлена ростом микропроцессорной техники. Современные микропроцессоры обладают такими возможностями, которые соизмеримы, а порой превосходят возможности вычислительных систем, причем обладают меньшими габаритами, потреблением энергии и стоимостью. Программирование микропроцессоров и однокристальных ЭВМ, встраиваемых в какое-либо оборудование, выполняется, как правило, на языке ассемблера, а применение их требует детального знания архитектуры ЭВМ.
Темой моей курсовой работы является
разработка котроллер матричной клавиатуры
Совокупности потребительских параметров, таких, как стоимость, эффективность, энергопотребление, рабочий диапазон температур – представляются достоинствами серии К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 подключена группа кнопок, сгруппированных по матричной схеме, которая представляет собой простую матрицу двоичных переключателей (требуемой размерности), включенных на пересечении строк и колонок матрицы, Идентификация (кодирование) нажатой клавиши в таких клавиатурах выполняется программой.
Рис.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 Гц. Поскольку
напряжение питание
Принцип работы клавиатуры следующий:
На одну из линий порта выдается логический «0», а на остальные линии «1». Затем происходит считывание с линий столбцов. Если фиксируется «0», его позиция соответствует номеру столбца нажатой клавиши и вместе с номером текущей строки он используется для определения кода нажатой клавиши. Если на всех входах «1», процедура сканирования продолжается для следующей строки.
Для обслуживания клавиатур в МК- системах используются две процедуры: опрос состояния клавиатуры и ввод кода нажатой клавиши.
Первая процедура производит однократное обращение к матрице клавиш для определения, Нажата ли хотя бы одна из клавиш. Вторая осуществляет циклический опрос клавиатуры до тех пор, пока не будет нажата (а часто и освобождена) клавиша. Будучи встроена в основную программу, вторая процедура блокирует процесс управления объектом на время ожидания нажатия клавиши, а потому обращение к ней осуществляется только при обнаружении нажатой клавиши процедурой опроса состояния клавиатуры.
Линии порта 1 используются для сканирования, а линии порта 2 - для опроса матрицы клавиш. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши нанесены обозначения, соответствующие их кодам (от 0 по B).
Для программного ввода информации с клавиатур характерен один недостаток, а именно - срабатывание по отпусканию клавиши, а не по нажатию. Однако при кратковременных нажатиях клавиш этот эффект не имеет особого значения.
Частная процедура сканирования служит
для обнаружения нажатой
Последовательность байтов сканирования представляет собой код "бегущий нуль"; формирование очередного байта сканирования осуществляется путем сдвига его предыдущего значения. Направление сдвига определяет последовательность опроса клавиш. Если при полном цикле сканирования не было обнаружено нажатой клавиши, то процедура сканирования повторяется сначала.
Оператор "Есть нажатая клавиша?" реализуется тем, что клавиши, подключенные к каждой линии сканирования, анализируются последовательно. Если после анализа каждой клавиши осуществлять прибавление единицы к счетчику SCANCODE, то процедуру сканирования можно совместить с процедурой идентификации нажатой клавиши (рис. 4).
R4 - счетчик кода сканирования
ORG 300H; переход на 300 страницу РПП
DB 7EH,30H, 6DH,79H; коды семисегментного
DB 33H,5BH,5FH,70H; индикатора
DB 7FH,7BH,76H,1EH;
ORG 0;
START: MOV R4,#0;
MOV R7,#3; загрузка счетчика сканирования
MOV R6,#11111110B; загрузка исходного байта сканирования
LOOP: MOV A,R6
OUTL P1,A; вывод текущего байта сканирования
RL A; сдвиг байта сканирования
MOV R6,A; сохранение текущего байта сканирования
IN A,P2; ввод байта возврата
MOV R5,#4; загрузка счетчика опросов
LOOK: RRC A ; сдвиг байта возврата
JNC NEXT; выход из процедуры при
обнаружении первой нажатой клавиши
INC R4; инкремент SCANCODE
DJNZ R5,LOOK; декремент счетчика опросов и цикл, если не нуль
DJNZ R7,LOOP; декремент счетчика сканирования и цикл, если не 0
JMP START; начать сканирование сначала
next: mov a,r4; загрузка в аккумулятор кода символа
movp3 a,@a; считывание байта индикации из таблицы
outl bus,a; выдача байта индикации на индикатор через порт BUS
end выход из программы
СОДЕРЖАНИЕ
Задание на работу........................
Введение......................
1. Анализ поставленной задачи. Структурная схема МК системы...........6
2. Разработка принципиальной схемы МК
системы.......................
3.Выбор и описание алгоритма программы.....................
3.1 .Разработка общей блок-схемы алгоритма (БСА)
работы контроллера……………………………
4. разработка текста
исходной программы.....................
4.1. Отладка программы с помощью индивидуального задания...........11
5. Таблица «прошивки» РПЗУ…………………………………………….....12
Заключение....................
Список литературы.............
Номер нажатой клавиши |
Порт 1 |
Порт 2 |
Порт ССИ BUS |
«6» |
11111101 |
11111011 |
01011111 |
«А» |
11111011 |
11111011 |
01110110 |
Таблица «прошивки» РПЗУ:
7E |
30 |
6D |
79 |
33 |
5B |
5F |
70 |
7F |
7B |
76 |
1E |
72 |
1a |
00 |
00 |
00 |
bc |
00 |
bf |
03 |
be |
fe |
fe |
39 |
e7 |
AE |
0A |
BD |
04 |
67 |
E6 |
17 |
1C |
ED |
0D |
EF |
06 |
04 |
00 |
FC |
E3 |
02 |
C1 |
00 |
00 |
00 |
01 |
FF |
Для визуального контроля нажатой кнопки, возможно подключение семисегментного индикатора к одному из портов, в данном случае к порту BUS. Вывод кода на ССИ осуществлен программно, тем самым достигается отображение кода нажатой клавиши на ССИ. Для удобства индикации на цифровые клавиши нанесены обозначения, соответствующие их кодам (от 0 по B).
Информация о работе Разработка контроллера матричной клавиатуры на микроконтроллере К1816ВЕ48