Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Реализация диалогового режима




 

Диалоговый режим реализует

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

 

014000041 Ml: LXI H, TAB

014001 110

014002 014

014003257 М2: XRA А

014 004 323 OUT, OOOQ

014005 000

014006323 OUT.001Q

014007 001

014010323 OUT, 003Q

014011 003

014012107 MOV В, А

014 013 117 MOVC, A

014 014 057 CMA

014015323 OUT, 002Q

014 016 002

014017176 MOV A, M

014 020 267 ORA A

014021312 JZ,M1

014 022 000

0140243-15 M3: CALL DL

014025 277

014 026 000

014027075 DCRA

014030302 JNZ, M3

014031 024

014 032014

014033323 OUT, 002Q

014034 002

014035333 M4: IN, 003Q

014 036 003

014037057 CMA

014 040 267 ORA A

014041312 JZ.M6

014 043 014

014044171 MOV А, С

014045323 OUT, OOOQ

014 046 000

014047170 MOV А, В

014050323 OUT, 001Q

014051 001

014052333 M5: IN, 003Q

014 053 003

014 054 057 CMA

014055267 ORA A

014056302 JNZ,M5

014 057 052

014 060014

014061315 M6: CALLDL

014 063 000

014064171 MOV А, С

014 065 074 INR A

014 066 047 DAA

014067117 MOVC, A

014070170 MOV А, В

014071316 ACI, OOOQ

014 072 000

014073047 DAA

014074107 MOVB.A

014075376 CPI,005Q

014077332 JC, M4

014 100035

014 101 014

014102043 INXH

014 103 303 JMP, M2

014 104 003

014 105 014

014110377 TAB:

014 111 200

014 112300

014 113 330

014 114000

 

После ввода программы нажмем кнопки СБРОС и П. Порт 002 высветит число 377Q (все единицы), а индикаторы портов 001 и 000 погашены. Через неизвестный оператору интервал времени индикаторы порта 002 гаснут. В этот момент оператор должен нажать любую (кроме СБРОС) кнопку клавиатуры. В портах 001 и 000 высветится выраженное в двоично-десятич­ном коде время задержки между погасанием индикаторов пор­та 002 и нажатием кнопки. Порт 001 индицирует десятки и еди­ницы секунд (считая слева), а порт 000 — десятые и сотые доли секунды. После отпускания кнопки через заданный интервал времени индикаторы портов 001 и 000 гаснут, а индикаторы порта 002 снова загораются, чтобы погаснуть через неизвестный интервал времени. Если ни одна кнопка не нажата после погаса­ния индикаторов порта 002, через заданный интервал времени они снова загорятся. Если кнопка нажата до погасания индикато­ров, то портами 001 и 000 индицируется нулевая задержка, т. е. не загорается ни один индикатор.

Оценки времени реакции оператора (в секундах):

 

0,00 — 0,09 — ошибочное значение, Вы поторопились, попро­буйте снова;

0,10 — 0,14 — исключительная, почти фантастическая реакция;

0,15 — 0,19 — очень хорошая;

0,20 — 0,24 -нормальная;

0,25 — 0,29 -посредственная;

0,30 — 0,34 — плохая;

0,35 — 5,00 - Вы, вероятно, уснули.

 

Программа может быть использована как для оценки, так и для тренировки реакции. Время задержки гашения индикаторов порта 002 задается количеством циклов задержки, начинающих­ся с метки МЗ. В аккумулятор при каждом замере заносятся последовательно числа из таблицы, хранящейся в ячейках памя­ти, начиная с адреса, задаваемого командой LXIH. Длина табли­цы практически неограниченная. Если в таблице помещено число OOOQ, то при его занесении в аккумулятор на очередном шаге происходит возврат к началу программы и, следовательно, к началу таблицы. Цена младшего разряда, задающего задержку числа, равна задержке, вырабатываемой ПП DL, т. е. 10 мс. После того как индикаторы порта 002 погашены (команда по адресу 014Q 033Q) и до нажатия кнопки с помощью счетчика, организованного на регистровой паре В, подсчитывается коли­чество циклов обращения к ПП DL (команды, начиная с мет­ки Мб). В счетчиках используется команда DAA, поэтому ре­зультат получается в двоично-десятичном коде. При нажатии кнопки содержимое регистровой пары В выводится в порты 001 и 000. Счетчик циклов снова задействуется после отпуска­ния кнопки, и после достижения заданного числа циклов проис­ходит возврат к метке М2 программы, при этом регистровая пара Н инкрементируется, в результате чего при следующем замере в качестве параметра задержки извлекается следующее число из таблицы. Параметры, определяющие работу програм­мы, помещаются по следующим адресам: 014Q 001Q, 014Q 002Q — адрес начала таблицы; 014Q 076Q — время, в те­чение которого индикаторы порта 002 погашены; цена млад­шего разряда — около 1 с.

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

РАСШИРЕНИЕ

ВОЗМОЖНОСТЕЙ

ПМ-ЭВМ

КЛАВИАТУРА И ИНДИКАЦИЯ

 

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

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

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

Заметим, что некоторые из этих недостатков легко устрани­мы. В частности, нарастив порты ввода и вывода 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

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

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

 

Рис. 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

014011 000

014012012 M3: LDAX В

014 013 323 OUT, 0020

014015 174 MOV A, H

014016323 OUT, 001Q

014017 001

014020175 MOV A, L

014021323 OUT, OOOQ

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

014063 117

014064 146

014 065 155

014 066 175

014 067 007

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.

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

ВНЕШНЯЯ ПАМЯТЬ

 

Постепенно осваивая методы программирования и приемы работы на ПМ-ЭВМ, читатель рано или поздно столкнется с необходимостью, во-первых, увеличе­ния объема памяти для размещения все более длинных про­грамм и, во-вторых, сохранения уже отработанных программ в памяти при многократном включении и выключении питания. Поскольку ПМ-ЭВМ построена в соответствии со стандартной архитектурой вычислительных систем на базе МП типа КР580ИК80А, ее прямо адресуемая память может быть легко расширена до максимального объема 64 Кбайта.

Непосредственно на плате ПМ-ЭВМ могут быть дополнительно установлены микросхемы памяти на 2 Кбайта. При этом не потребуется никакого дополнительного оборудования, так как для выдачи сигналов выборки микросхем ОЗУ используются ранее не задействованные выводы дешифратора К155ИД4 (микросхема D11).

Память большего объема потребует для своего размещения дополнительной платы, на которой должны быть установлены свои адресные дешифраторы и другие микросхемы (кроме микросхем памяти), обеспечивающие нормальную работу устройства. В этом случае на плате ПМ-ЭВМ необходимо уста­новить шинные буферы-формирователи для умощнения шин адреса и данных (например, на микросхемах типа К589АП16), причем буферы шины данных должны быть двунаправленными. Аналогично внутреннему буферу шины данных (микросхемы D9 и D10) для управления направлением передачи данных используется буферированный сигнал DBIN.

Для формирования энергонезависимой части памяти могут быть применены микросхемы ПЗУ с однократной записью ин­формации, например типа КР556РТ4, которые уже использованы в ПМ-ЭВМ для хранения программы-монитора. Более удобными могут оказаться микросхемы ППЗУ с электрической записью и ультрафиолетовым стиранием типов К573РФ1, К573РФ2, К573РФ4, К573РФ5. Наконец, могут быть использованы микро­схемы ППЗУ с электрической записью и стиранием информации, например типов КР558РР1 и КР558РР11.

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...