Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2021-10-05 | 110 |
5.00
из
|
Заказать работу |
|
|
Клавиатура является одним из широко распространенных устройств ввода данных и управляющих воздействии в микро-ЭВМ. С помощью клавиатуры можно вводить программу в ОЗУ, инициировать различные режимы работы микро-ЭВМ (пуск программы с заданного адреса, останов программы, выполнение программы по машинным циклам, вывод содержимого регистров МП БИС на дисплей и т.д. ).
Во всех случаях при организации ввода информации с клавиатуры в микро-ЭВМ перед разработчиком ставится ряд задач, к основным из которых можно отнести:
· определение факта нажатия клавиши на клавиатуре;
· нахождение номера нажатой клавиши;
· осуществление передачи управления на соответствующую подпрограмму.
Программа П.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 | В (малое) | 7С | 0В | П, Л (малое) | 54 | 15 |
2 | 5В | 02 | С | 39 | ОС | 0 (малое) | 5С | 16 |
3.3 | 4F | 03 | D (малое) | 5Е | 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 | 1В |
8 | 7F | 08 | L | 38 | 12 | 1 (левая) | 30 | 1С |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!