Разработка принципиальной схемы микропроцессорной системы. Модуль процессора. Разработка основного алгоритма работы программы, страница 2


1.4  Подключение контроллера клавиатуры – дисплея и внешних устройств.

По заданию для обработки данных поступающих с клавиатуры и вывода этих данных на семи сегментный индикатор используется контроллер клавиатуры – дисплея (ККД). Для осуществления вышеописанного применим микросхему КР580ВД79.

Данная БИС ККД позволяет в зависимости от режима ее работы выбираемого программным путем осуществить сканирование матрицы клавиш (датчиков) размером 8 х 8 штук. Существует возможность двойного изменения регистра клавиатуры. Для вывода возможно использование до 32х индикаторов.

В разрабатываемом курсовом проекте необходимо использовать 12 клавиш клавиатуры и 6 семи сегментных индикаторов.

Для обеспечения упрощения работы с клавиатурой (подключим клавиши таким образом, что не потребуется перекодировка) и для  упрощенного подключения всех шести индикаторов на сканирующие выводы SL0-SL3 подключим дешифратор три на восемь.

Для обеспечения сброса ККД вывод RESET подключим через инвертор к схеме сброса микропроцессора.

ККД необходимо тактировать, для этого предназначен вход CLK

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

Для инициализации ККД при общении с ним используются входы А0 – адрес и CS – выбор кристалла. Подключим их соответственно к А14 и через инвертор к А15 микропроцессора.

Это обеспечит возможность работы с ККД по адресам – 8000h для чтения / записи данных и С000h для чтения байта состояния ККД / записи  УС. По входам WR, RD определяется действие – чтение или запись данных, они подключаются к аналогичным выводам микропроцессора.

На рис  1.5. представлена схема подключения ККД.

 


На рисунке 1.6. представлено подключение к ККД индикатора составленного из линейки семи сегментных индикаторов.

 


Рис. 1.6. Подключение к ККД индикаторов.

Вывод выходных импульсов микропроцессорной системы осуществим также через микропроцессор, подключив на выход для выбора портов 10/М и заблокировав в это же время микросхему ОЗУ. Для фиксации выхода используем триггер. Как информационный вход используем АD0 шины данных. Так как запись данных осуществляется по стробу WR, поэтому используем его как второй управляющий сигнал.

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

 


Рис. 1.7. Подключение выходного каскада.

Выбираем резисторы по 100 кОм, диоды с падением напряжения 1В.

2  Разработка программного обеспечения для микропроцессорной системы.

2.1  Разработка основного алгоритма работы программы

Блок-схема алгоритма работы программы представлена на рис.2.1.

Рассмотрим работу каждого блока.

Блок Инициализации. На этом этапе программа инициализирует работу ККД, очищает индикатор.

Чтение байта состояния клавиатуры.  В байте состояния клавиатуры содержится информация о наличии нажатых клавиш.

Чтение кода клавиши. При нажатии клавиши происходит запись ее SCAN – кода в память клавиатуры. По этому коду можно определить какая клавиша была нажата.

Цифра?. Возможно нажатие клавиш с цифровой информацией,  которая необходима для задания временных промежутков выходного импульса или клавиш «Старт» и «Стоп». В этом условном операторе отсеиваются события нажатия цифровых клавиш.

Старт?. Проверяется, нажата ли клавиша «Старт». Если нажата - то запускается процедура Work. Нажатие клавиши «Стоп» в основной программе игнорируется

Процедура Work. Отвечает непосредственно за создание выходного импульса и будет описана ниже.

Запоминание и занесение на дисплей. Полученный код нажатой цифры преобразуется и выводится в соответствующую позицию индикатора. Ввод производится последовательно для всех шести позиций индикатора.