Подключение клавиатуры к микро-ЭВМ. — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Подключение клавиатуры к микро-ЭВМ.

2021-10-05 110
Подключение клавиатуры к микро-ЭВМ. 0.00 из 5.00 0 оценок
Заказать работу

Клавиатура является одним из широко распространенных устройств ввода данных и управляющих воздействии в микро-ЭВМ. С помощью клавиатуры можно вводить программу в ОЗУ, инициировать различные режимы работы микро-ЭВМ (пуск программы с заданного адреса, останов программы, выполнение программы по машинным циклам, вывод содержимого регистров МП БИС на дисплей и т.д. ).

Во всех случаях при организации ввода информации с клавиатуры в микро-ЭВМ перед разработчиком ставится ряд задач, к основным из которых можно отнести:

· определение факта нажатия клавиши на клавиатуре;

· нахож­дение номера нажатой клавиши;

· осуществление пере­дачи управления на соответствующую подпрограмму.

Программа П.22

Адрес Машинный код Метка Мнемокод Комментарий
0800 01 0004 DSO LXI В, 0400 ;загрузить в регистры В, С;длительность задержки
0803 AF   XRA А ;очистить аккумулятор
0804 21 0500 CNT 1 LXI Н, 0905 ;указать на адрес кода цифры 5
0807 16 20   MVI D, 20 ;загрузить указатель цифры в регистр D
0809 7E CNT 2 MOV A, M ;получить из ОЗУ код очередной цифры
080A D3 06   OUT DSP ;записать его в регистр сегментов;дисплея
080C 7A   MOV A, 1) ;загрузить в аккумулятор указатель;цифры
080D D3 07   OUT SCAN ;включить нужную цифру
080F 1F   RAR ;указать на следующую цифру
0810 57   MOV D, A ; сохранить указатель цифры в;регистре D
0811 CD 3004   CALL DELB ;вызвать подпрограмму временной;задержки
0814 AF   XRA A ;очистить аккумулятор
0815 D3 07   OUT SCAN ;выключить цифру
0817' 2D   DCRI. ;Уменьшить на 1 содержимое;регистра L
0818 B2   ORA D ;все ли сообщение выведено?
0819 C2 0908   JNZ CNT 2 ;если нет, продолжать
081C C3 0408   JMP CNT 1 ;если да, то начать сначала

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

Наиболее удобно организовывать клавиатуру в виде матрицы размером n X m,

где п и т— соответственно число строк и столбцов.

При таком способе организации к микро-ЭВМ можно подключать m Х n клавиш. Сопряже­ние клавиатуры с микро-ЭВМ производят с помощью устройств ввода — вывода данных.

Для иллюстрации метода сопряжения клавиатуры с микро-ЭВМ рассмотрим клавиатуру 3 Х 3, представленную на рис. 5.17 (где СхДША— схема дешифрации адреса, УВв — устройство ввода, УВыв — устройство вывода), ряды которой подклю­чены к трем младшим разрядам устройства вывода УВыв (символьное обозначение адреса KBDOT), а столбцы подключены к трем младшим разрядам устройства ввода УВв (символьное обозначение адреса KBDIN).

При программном способе дешифрации нажатой кла­виши определение факта нажатия на клавишу может быть осуществлено с помощью такой последовательности опера­ций:

1. Записать нули в разряды выходного устройства.

2. Считать содержимое разрядов входного устройства.

3. Повторить снова, если во всех разрядах входного устройства записаны единицы.

Программа П.23, написанная в соответствии с приведенным алгоритмом, позволяет определить факт нажатия на одну из клавиш, но не указывает номер нажатой клавиши.

Программа П.23

Адрес Машинный код Метка Мнемокод Комментарий
0800 ЗЕ F8 WAITK MVI А, 11111000 ;записать 0 в младшие три;разряда аккумулятора
0802 D3 07   OUT KBDOT ;записать 0 в выходное;устройство (адрес KBDOT -;07)
0804 DB 06   IN KBDIN ;получить число со входного;устройства (адрес KBDIN -;06)
0806 Е6 07   ANI 00000111 ;очистить старшие пять;разрядов аккумулятора
0808 FE 07   СР1 00000111 ;есть ли в младших трех;разрядах аккумулятора 0
080А СА 0008   JZ WAITK ;если нет, то идти на WAITK
080D СЗ 0D08 DONE JMP DONE ;конец

 

Определить номер нажатой клавиши можно с помощью алгоритма, приведенного на рис.5.18. Алгоритм основывается на последовательной записи нуля в каждый из рядов матрицы клавиатуры. При наличии нуля в каждом ряду микро-ЭВМ определяет факт нажатия на клавиши, находящиеся в столбцах клавиатуры, принадлежащих анализируемому ряду. Если какая-либо клавиша нажата, то определяется ее номер по номеру разряда, в котором записан ноль. Программа П.24 реализует описанный выше алгоритм. Номер нажатой клавиши определяется по номеру ряда клавиатуры, в котором обнаружена нажатая клавиша, и номеру разряда входного устройства, в котором записан ноль.

Часто при работе микро-ЭВМ ее операционная система строится таким образом, что информация, вводимая с клавиатуры, отображается на дисплее. С более подроб­ными примерами построения таких программ можно ознакомиться по литературе.

 

Программа П.24

Адрес Машинный код Метка Мнемокод Комментарий
0800 0600   MVI B, 00 обнулить счетчик
0802 0E FE   MVI C,11111110 ;начальная установка маски;сканирования рядов
0804 16 03   MVI D. 08 ;установить счетчик рядов
0806 79 FROW MOV А, С ;записать маску сканирования в;аккумулятор
0807 D3 07   OUT KBDOT ;записать маску сканирования в;выходное устройство (адрес;KBDOT - 07)
0809 07   RLC ;изменить маску сканирования
080A 4F   MOV C. A ;сохранить маску в регистре С
080B DB 06   IN KBDIN ;получить число со входного;устройства (адрес KBDIN - 06)
080D E6 07   ANI 00000111 ;маскировать пять старших его;разрядов
080 F FE 07   CPI 00000111 ;есть ли в трех младших разрядах 0
0811 С2 1F08   JNZ FCOL ;если да, то идти на FCOL
0814 78   MOV А. В ;изменить содержимое
0815 C6 03   ADI 03 ;счетчика
0817 47   MOV B. A ;номера клавиш
0818 15   DCR D ;уменьшить содержимое счетчика;рядов
0819 C2 0608   JNZ FROW ;если не последний ряд, то;повторить для следующего ряда
081С C3 2708   JMP DONE ;идти на окончание
081F 1F FCOL RAR) ;определение
0820 [)2 2708 DONE JNC DONE ;номера разряда, в котором
0823 04   INR B ;записан 0, и определение
0824 C3 1F08   JMP FCOL ;номера нажатой клавиши
0827 C3 2708 DUNI JMP DONE ;конец

 

Задания для домашней подготовки

1. Ознакомьтесь со схемами подключения клавиатуры и дисплея к микро-ЭВМ, приведенными на рис. 5.15 и 5.17.

2. Изучите принцип мультиплексного вывода информа­ции на дисплей.

3. Изучите принцип определения номера нажатой клавиши на клавиатуре.

4. Изучите программы П.21-П.24.

5. Разработайте программу мультиплексного последо­вательного вывода лишь одной цифры, задаваемой со входного устройства микро-ЭВМ на разные ячейки дис­плея. Для задания времени высвечивания цифры на каж­дой ячейке дисплея используйте подпрограмму временной задержки. Определите, на что будет влиять время за­держки.

6. Дополните программу П.24 так, чтобы номер нажатой клавиши отображался в одной из ячеек дисплея.

7. Разработайте программу передачи управления по заданным адресам в зависимости от нажатой клавиши на клавиатуре. Адреса передачи управления в зависи­мости от номера клавиши на клавиатуре задаются табли­цей. Адрес передачи управления записывается в регистры Н. L.

Задания к лабораторной работе

Задание 1.

Исследовать программу П.21.

Порядок, выполнения задания:

1. Ввести в микро-ЭВМ программу П.21.

2. Осуществить пуск программы. Просле­дить изменения во включаемых сегментах пятой цифры дисплея, меняя число на входном устройстве. Заполнить таблицу (табл. 5.3) соответствия кодов числа, записывае­мого в регистр сегментов дисплея, включаемым сегментам.

3. Записать и проверить коды букв Н, А, Ч, Л, О.

Задание 2.

Исследование программы вывода информации на дисплей.

Порядок, выполнения задания:

1. Ввести в микро-ЭВМ программу П.22.

2. Записать по адресам 0900—0905 коды букв для вывода на дисплей сообщения НАЧАЛО.

3. Осуществить пуск программы и проверить правильность вы­вода сообщения на дисплей.

4. Ввести в микро-ЭВМ разработанную в п.5 задания для домашней подготовки про­грамму.

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

6. Установить в программе время включенного состояния цифры на каж­дой ячейке дисплея, равное 1 с (время задается подпро­граммой задержки; проследить изменения в информации, выводимой на дисплей).

Таблица 5.3

Символ Код Относитель-ный адрес Символ Код Относитель-ный адрес Символ Код Относитель-ный адрес
0.0 3F 00 A 77 ОА P 73 14
1 06 01 В (малое) П, Л (малое) 54 15
2 02 С 39 ОС 0 (малое) 16
3.3 4F 03 D (малое) OD (нижняя черта) 08 17
4 66 04 Е 79 ОЕ П, Л 37 18
5.S 6D 05 F 71 OF (средняя черта) 40 19
6.Б 7D 06 ПРОБЕЛ 00 10 Все сегменты FF IA
7 07 07 Н 76 11 R (малое) 50
8 7F 08 L 38 12 1 (левая) 30
9 6F 09 Y 6E 13      

Работа на учебной микро-ЭВМ

В учебной микро-ЭВМ дисплей и клавиатура подключены к магистралям так, как показано на рис 5.15 и 5.19. Ре­гистр сканирования РгСк (адрес 07) используется как для сканирования дисплея, так и для сканирования клавиатуры.

Адрес входного устройства чтения клавиатуры РгЧ К06 (KBDIN). Программы П.21, П.22 могут быть выполнены без каких-либо изменений на учебной микро-ЭВМ без подключения дополнительного дисплея.

В ПЗУ микро-ЭВМ записаны программы, позволяющие определить код нажатой клавиши и выводить на дисплей сообщения. Так, подпрограмма KPU (адрес 0185) определяет, нажата ли клавиша на клавиатуре, и при любой нажатой клавише устанавливает разряд признаков МП БИС “Z” в 0, в противном случае Z=1. Входных параметров программа не имеет.

Подпрограмма KIND (адрес 014B) производит сканирование клавиатуры, определяет факт нажатия клавиши, её код по таблице и возвращает его. Одновременно подпрограмма KIND дешифрирует выдаваемое сообщение в семисегментный код по таблице и выводит его на дисплей. Входным параметром этой подпрограммы является сообщение, выводимое на дисплей, размещенное в ОЗУ по адресам 0BF0-0BF5, выходным параметром - код нажатой клавиши в аккумуляторе. При выводе сообщения на дисплей подпрограмма KIND использует подпрограммы SDS (адрес 01C8) сканирования дисплея и DCD (адрес 01E9) декодирования сообщений для дисплея. Входной параметр SDS - семисегментные коды выводимого сообщения, размещенные по адресам 0BFA-0BFF. Они же являются выходным параметром подпрограммы DCD, а входными ее параметрами - коды выводимого сообщения, размещенные по адресам 0BF0-0BF5. Дешифрирование в семисегментный код осуществляется с помощью специальной табл.5.3 путем прибавления относительного адреса символа к начальному адресу таблицы.

Табл. 5.3 построена так, что при дешифрировании шестнадцатеричных цифр никаких дополнительных преобразований не требуется, так как значение цифры есть ее относительный адрес. Для перезаписи сообщения в область 0BF0-0BF5 применяется подпрограмма, вызываемая командой RST3. Входными параметрами её являются адрес первого байта сообщения, помещённый в паре регистров D, E, и сообщение, записанное с этого адреса. Подпрограмма BLNK (адрес 0297) необходима для очистки дисплея, входных и выходных параметров не имеет.

Программа П.25 производит декодирование и вывод на дисплей сообщения пользователя, записанного по адресу 0900-0905, с использованием подпрограмм RST3, DCD, SDS. Подпрограмма SDS выводит сообщение на дисплей только один раз, т.е. для получения изображения её нужно вызывать многократно.

Программа П.25

Адрес Машинный код Метка Мнемокод Комментарий
0800 11 0009   LXI D, 0900 ;Загрузить адрес начала сообщения
0803 DF   RST3 ;Переписать сообщение по адресам;0BF0-0BF5
0804 CD E901   CALL DCD ;Вызвать подпрограмму декодирования
0807 CD C801 CNT CALL SDS ;Вывести сообщение на дисплей
080A C3 0708   JMP CNT ;Повторять вывод

 

Программа П.26 показывает пример использования подпрограммы KPU. При нажатии на любую клавишу в выходной регистр записывается число с входного устройства.

Программа П.26

Адрес Машинный код Метка Мнемоника Комментарий
0800 CD 8501 CNT CALL KPU ;Нажата ли клавиша?
0803 CA 0008   JZ CNT ;Если нет, продолжать ожидание.
0806 DB 05   IN 05 ;Если да, получить число со входного;устройства
0808 D3 05   OUT 05 ;записать число в выходное устройство
080A C3 0008   JMP CNT ;продолжать

 

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

Программа П.27

Адрес Машинный код Метка Мнемоника Комментарий
0800 CD 9702   CALL BLNK ;Очистить дисплей
0803 CD 4B01 CNT CALL KIND ;Ожидать нажатие клавиши
0806 21 F00B   LXI H, 0BF0 ;Указать на нулевую цифру дисплея
0809 77   MOV M, A ;Записать код клавиши по адресу,;указанных в;регистрах H, L
080A D3 05   OUT 05 ;Вывести код клавиши в выходное;устройство
080C C3 0308   JMP CNT ;Продолжать

 

Задание 3.

Исследовать подпрограммы вывода сообщения на дисплей.

Порядок выполнения задания:

1. Ввести программу П.25. Пользуясь табл. 5.3 (заполненной при задания 1), занести в ОЗУ начиная с адреса 0900 коды сообщения ПРОБА 1.

2. Осуществить пуск программы и убедится, что сообщение выведено верно.

Задание 4.

Исследовать подпрограммы обслуживания клавиатуры.

Порядок выполнения задания:

1. Ввести программу П.26. Осуществить пуск программы и убедиться, что при нажатии на любую клавишу на клавиатуре число со входного устройства записывается в выходное устройство.

2. Спомощью рис.5.21 определите, какой код нужно записать в регистр сканирования для определения нажатой клавиши 0. Какой код при этом поступит в аккумулятор при вводе от регистра чтения клавиатуры?

3. Написать программу, аналогичную программе П.26, но позволяющей микро-ЭВМ реагировать только на нажатии клавиши <0>, ввести и проверить правильность её выполнения.

Задание 5.

Исследовать подпрограммы чтения и дешифрирования клавиатуры.

Порядок выполнения задания:

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

2. Нажимая на клавиши управления исследовать их коды и объяснить происхождение символов, выводимых на дисплей при нажатии на эти клавиши.

3. Переделать, воспользовавшись подпрограммой RST3, программу П.27 так, чтобы на остальные позиции дисплея выводилась сообщение CODE - -.

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

Отчет должен содержать:

1. Схему подключения исследуемой клавиатуры к микро-ЭВМ.

2. Программы, разработанные в п.5, 6, 7 задания для домашней подготовки.

3. Таблицу соответствия кодов чисел, записываемых в регистр сегментов дисплея, включаемых сегментам (таблица заполняется при выполнения задания 1).

4. Программы, разработанные при выполнении заданий 5 и 6 в разделе “Работа на учебной микро-ЭВМ”.

Задание для самопроверки

1. Какие коды необходимо записать по адресам 0900-0905 для вывода на дисплей чисел 1, 2, 3, 4, 5, 6?

2. Как следует изменить программу П.22, чтобы изображение на дисплее начало равномерно перемещаться?

3. Как следует изменить программу П.22 для изменения направления сканирование индикаторов дисплея?

4. Какая из клавиш будет определяться нажатой с помощью программы П.24, если на клавиатуре будут одновременно нажаты: а)клавиши 3 и5; б) клавиши 2 и 8?

5. Видоизмените программу П.24 так, чтобы микро-ЭВМ определяла номер нажатой клавиши в клавиатуре, организованной в виде матрицы 8х3.

6. Видоизмените программу П.24 так, чтобы сканирование клавиатуры происходило постоянно.

 


Поделиться с друзьями:

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.061 с.