Введение
Известно, что становятся доступными новые языки программирования
высокого уровня, позволяющие в существенной степени избежать зависимости от
ЭВМ и облегчить процесс программирования. Широкое распространение
персональных компьютеров привлекает к использованию ЭВМ непрофессиональных
программистов.
Тем не менее, интерес к архитектуре ЭВМ и программированию на уровне
машинных кодов не угасает, но и явно растет по двум причинам. Первая
причина заключается в том, что доступность использования ЭВМ для
непрофессиональных программистов достигается ценой немалых усилий
профессиональных программистов, создающих системное программное
обеспечение, для которых знание архитектуры ЭВМ просто необходимы.
Происходящий ныне процесс компьютеризации неизбежно увеличивает число
специалистов очень высокой квалификации – системных программистов. Вторая
причина обусловлена ростом микропроцессорной техники. Современные
микропроцессоры обладают такими возможностями, которые соизмеримы, а порой
превосходят возможности вычислительных систем, причем обладают меньшими
габаритами, потреблением энергии и стоимостью. Программирование
микропроцессоров и однокристальных ЭВМ, встраиваемых в какое-либо
оборудование, выполняется, как правило, на языке ассемблера, а применение
их требует детального знания архитектуры ЭВМ.
Темой моей курсовой работы является разработка котроллер матричной клавиатуры на микроконтроллере. В качестве него я выбрал микроконтроллер К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
[pic]
Рис. 1
Структурная схема и анализ задачи
В структурной схеме отражено взаимодействие микропроцессора, клавиатуры и пользователя.
[pic]Рис. 2
К порту 1 подключена группа кнопок, сгруппированных по матричной схеме,
которая представляет собой простую матрицу двоичных переключателей
(требуемой размерности), включенных на пересечении строк и колонок матрицы,
Идентификация (кодирование) нажатой клавиши в таких клавиатурах выполняется
программой.
2.Разработка принципиальной схемы
[pic] Рис.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).
[pic]
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; сброс SCANCODE
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 выход из программы
СОДЕРЖАНИЕ
Задание на
работу......................................................................
..................3
Введение.............................................................
..........................................4
1. Анализ поставленной задачи. Структурная схема МК системы...........6
2. Разработка принципиальной схемы МК системы..................................7
3.Выбор и описание алгоритма программы...............................................8
3.1 .Разработка общей блок-схемы алгоритма (БСА) работы контроллера……………………………………………………...........9
4. разработка текста исходной программы...............................................10
4.1. Отладка программы с помощью индивидуального задания...........11
5. Таблица «прошивки» РПЗУ…………………………………………….....12
Заключение...........................................................
.....................................12
Список
литературы..................................................................
..................13
Отладка программы:
|Номер нажатой |Порт 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).
Таким образом применение микропроцессорных систем в устройствах
различного типа, позволяет сократить кол-во элементов в схеме, сделать
устройство более качественным, а также позволяет осуществить наиболее
“дружелюбный” интерфейс с пользователем.
Список литературы
Лин. В. PDP-11 и VAX-11. Архитектура ЭВМ и программирование на языке
ассемблера. М. Радио и связь, 1989.-315 с.
Варламов И.В., Касаткин И.Л. Микропроцессоры в бытовой технике. М. Радио
и связь, 1990.-102 с.
Калабеков Б.А. Цифровые устройства и микропроцессорные системы. М. Радио
и связь, 1997.-336 с.
Министерство Российской Федерации по транспорту и связи
Новосибирский колледж телекоммуникаций и информатики
Сибирского государственного университета телекоммуникаций и информатики
КУРСОВОЙ ПРОЕКТ
По дисциплине «Вычислительная техника»
На тему: «Разработка контроллера матричной клавиатуры на микроконтроллере
К1816ВЕ48 »
Выполнил: Баталов Д. Ю.
Гр. М-31
Проверил: Иванов В. С.
2005
-----------------------
Пользователь
Клавиатура
Микропроцессор
Реценз.
КТИ гр. М-31
Листов
Контроллер матричной клавиатуры на микроконтроллере
Утверд.
Н. Контр.
Т. Контр.
Иванов В.С.
Провер.
Баталов Д.Ю
Разраб.
1
Лис
Дата
Подпись
№ докум.
Лист
Изм.
4
Лист
Дата
Подпись
№ докум.
Лист
Изм.
5
Лист
Дата
Подпись
№ докум.
Лист
Изм.
6
Лист
Дата
Подпись
№ докум.
Лист
Изм.
7
Лист
Дата
Подпись
№ докум.
Лист
Изм.
КТИ.000.000.001.ПЗ
8
Лист
Дата
Подпись
№ докум.
Лист
Изм.
9
Лист
Дата
Подпись
№ докум.
Лист
Изм.
10
Лист
Дата
Подпись
№ докум.
Лист
Изм.
Изм.
Лист
№ докум.
Подпись
Дата
Лист
11
12
Лист
Дата
Подпись
№ докум.
Лист
Изм.
13
Лист
Дата
Подпись
№ докум.
Лист
Изм.