Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Простейшая микро-ЭВМ. Проектирование. Наладка. Использование.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Расширение возможностей

ПМ-ЭВМ

10.1. Клавиатура и индикация

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

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

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

Заметим, что некоторые из этих недостатков легко устрани­мы. В частности, нарастив порты ввода и вывода 003, обслужи­вающие клавиатуру до полных восьми разрядов, получим кон­тактную сетку 8x8, образующую клавиатуру из 64 кнопок, достаточную для ввода алфавитно-цифровой информации. В связи с этим потребуется переделать программу-монитор и использовать специальные программы для обработки алфа­витно-цифровой информации.

Для вывода информации можно нарастить порты 002, 001, 000 схемами преобразования двоичного кода в семисегмент-ный (рис. 10.1), при этом индикация на семисегментных инди­каторах будет представлена восьмеричными или же десятич­ными числами. Из тех же портов вывода можно организовать динамическую систему индикации, обеспечивающую вывод любых знаков (цифр, значков и некоторых букв как русско­го, так и латинского алфавитов) на дисплейное устройство, содержащее до 16 семисегментных индикаторов (рис. 10.2). Программы для индикации обычно включают в состав про­граммы-монитора. В целях изучения способов обслуживания устройств динамической индикации введем в ПМ-ЭВМ следую­щую программу:

014000001 Ml: LXI В, TAB

014 001 060

014002 014

014003041 LXIH, OOOQ001Q

014 004 001

014 005 000

014006012 М2: LDAX В

014007323 OUT, 002Q

014010002

014011 174 MOV A, H

014012323 OUT, 001Q

014 013 001

014014175 MOV A, L

014015323 OUT, OOOQ

014016 000

014017003 INX В

014 020 026 MVI D, 100Q

014021 100

014022315 M3: CALL DL

014023 277

014 024 000

014025025 DCRD

014 026 302 JNZ, M3

014 027022

014030014

014031051 DADH

014032322 JNC.M2

014033 006

014 034 014

014035303 JMP, Ml

014 036 000

014037 014

014 060 000 TAB:

014061 001

014 062002

014063 003

014 064 004

014 065 005

014 066 006

014067 007

014 070010

014071 O1l

014 072012

014073 013

014 074 014

014 075 015

014 076 016

014077017

Рис. 10.1. Схемы преобразования двоичного кода в семисегментный

Нажмем кнопки СБРОС и П. В портах 000 и 001 погаснут все индикаторы, за исключением младшего разряда порта 000. Через полсекунды загорится индикатор следующего разряда, а предыдущий погаснет и т. д., пока не загорится индикатор старшего разряда порта 001. При этом каждому зажженному индикатору соответствует код го таблицы TAB, индицируемый портом 002. Цикл сканирования повторяется до тех пор, пока не будет нажата кнопка СБРОС.

Эта программа демонстрационная. Она позволяет отладить схему, изображенную на рис. 10.2, устанавливая рабочий ток индикаторов подбором резисторов и задавая время сканирова­ния значением параметра, хранимого в регистре D (ячейка 014Q 021Q). В программе используются почти все регистры МП, поэтому при применении ее в качестве стандартной ПП вывода на индикацию следует вначале поместить команды PUSH PSW, PUSH В, PUSH D, PUSH H, а в конце программы — команды XRA A, OUT OOOQ, OUT 001Q, OUT 002Q, POP H, POP D, POP B, POP PSW, RET, исключив команду CALL DL вызова ПП времен­ной задержки и команду возврата к началу программы JMP, Ml.

В соответствии со схемой рис. 10.2 каждому сегменту семи-сегментного индикатора соответствует определенное число, выводимое через порт 002: сегменту а - 0000 0001 (001Q), b - 0000 0010 (002Q), с- 0000 0100 (0040), d-0000 1000 (010Q), е - 0001 0000 (020Q), f - 0010 0000 (040Q), £- 0100 0000(1000), h - 1000 0000 (200Q). Следовательно, изображаемый индикато­ром символ (цифра, буква или другой знак) представляется восьмиразрядным двоичным числом, являющимся суммой чи­сел, соответствующих горящим сегментам индикатора. Напри­мер, десятичные числа от 0 до 9 представляются следующими числами: 0-0011 1111 (077Q), 1 - 0000 ОНО (006Q), 2 -0101 1011 (133Q), 3 - 0100 1111 (117Q), 4 - 01100110(1460), 5 - ОНО 1101 (155Q), 6 - 0111 1101 (175Q), 7 - 0000 0111 (007Q), 8 - 0111 1111 (177Q), 9 - ОНО 1111 (157Q). С опреде­ленными условностями могут быть изображены также буквы латинского и русского алфавитов и различные знаки.

Рис. 10.2. Дисплейное устройство из 16 семисегментных индикаторов

Подключим к ПМ-ЭВМ схему, изображенную на рис. 10.2, и введем следующую программу:

014000001 Ml: LXI В, TAB

014 001 060

014 002 014

014 003 305 PUSH B

014 004 036 MVI Е, 040Q

014 005 040

014006301 М2: POP В

014007041 LXIH, OOOQ001Q

014010001

014011 000

014012012 M3: LDAX В

014 013 323 OUT, 0020

014014002

014015 174 MOV A, H

014016323 OUT, 001Q

014017 001

014020175 MOV A, L

014021323 OUT, OOOQ

014022000

014 023 003 INX В

014 024 026 MVI D, 2000

014 025 200

014026025 M4: OCR D

014027302 JNZ, M4

014 030026

014031 014

014032051 DADH

014033322 JNC, M3

014034 012

014035 014

014036035 DCRE

014037302 JNZ,M2

014 040 006

014041 014

014 042 073 OCX SP

014 043 073 DCX SP

014 044 301 POP В

014 045 003 INX В

014 046 305 PUSH В

014047012 LDAX В

014 050 376 CPI, 060Q

014 051 060

014052312 JZ, Ml

014 053 000

014 054 014

014055303 JMP, M2

014 056 006

014057 014

014 060 077 TAB:

014 061 006

014062133

014063 117

014064 146

014 065 155

014 066 175

014 067 007

014070177

014071 157

014 072 000

014 073 000

014 074 060

Рис. 10.3. Схема гашения индикаторов

Программа, построенная на базе предыдущей, выводит на дисплей, образованный 16 семисегментными индикаторами, движущийся текст (в данном примере цифры от 0 до 9 и два пробела), хранимый в ОЗУ, начиная с ячейки 014Q 060Q. Конец текста помечается символом, не использованным для обозначе­ния букв и цифр (в данном примере символ II, его код 060Q). Он хранится в ячейке 014Q 051Q и сравнивается с символом текста, выводимым на крайний левый индикатор дисплея. Как только опознан символ конца текста, программа возвра­щается к началу текста. Время цикла сканирования задается числом в ячейке 014Q 025Q, а время, на которое текст останав­ливается, — числом в ячейке 014Q 005Q.

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

Во избежание перегорания индикаторов при непредусмот­ренном прекращении сканирования схему, изображенную на рис. 10.2, следует дополнить устройством гашения индикато­ров, построенным на основе одновибратора (рис. 10.3). Устрой­ство отключает индикацию через заданный цепочкой RC интер­вал времени после подачи импульса выборки порта 002. Таким образом, индикаторы непрерывно (для глаза наблюдателя) горят только при периодической выдаче информации в порт 002.

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