Электроника и МП техника. Китаев Ю.В. - 80 стр.

UptoLike

Составители: 

80
периодической последовательности - D3,D2,D1 = 111) и N2 представлен
двоичным кодом ( D0 = 0).
Вторые две команды выводят по адресу 61Н = 0110 0001(ВIN)
А7 А6 А5 А4 А3 А2 А1 А0
0 1 1 0 0 0 0 1
байт 91Н = 1001 0001(ВIN).
D7 D6 D5 D4 D3 D2 D1 D0
режим 0 РА РСст
режим
0
РВ РСмл
1 0 0 1 0 0 0 1
Бит А2 шины адреса равен нулю, а бит А6 = 1, поэтому
активизирован будет программируемый периферийный интерфейс - РРI
(~СS=0). Бит РСмл управляющего байта показывает, что как и требуется в
задаче линия РС2 настроена на ввод сигнала от фотоприемника.
Далее рассмотрим работу фрагмента программы:
W: IN АL,0ВН;
АND АL,04;
JNZ W;
По-видимому этот
цикл должен опрашивать состояние линии РС2
(если РС2 = 1, то луч не прерван, РС2=0 - свидетельствует о пересечении
луча). Другой подходящей версии о назачении этого фрагмента придумать
трудно. Тогда команда IN АL,0ВН должна считывать код из порта РС
(линия РС2). Рассмотрим адрес 0В(НЕХ) = 0000 1011(ВIN).
А7 А6 А5 А4 А3 А2 А1 А0
0 0 0 0 1 0 1 1
Бит А2=0, что активизирует ППИ для обращения к нему
микропроцессора, но биты ША А6,А0 = 01, что соответствует чтению из
порта РВ, а не РС. Кроме того, бит А5 также равен 0, поэтому
одновременно будет активизирован и РIТ. Следовательно, адрес 0В
является ошибочным. Для чтения из порта РС биты ША А6,
А0 должны
быть равны 10(ВIN). Поэтому возможным адресом порта РС вместо 0В
явится адрес с битами А6=1,А5=1,А0=0,А2=0, например 60(НЕХ). Это
первое исправление и первый ответ.