ВУЗ:
51
нии данной задачи, информацию. Для выделения нужного бита использу-
ется стандартная операция-«
and
» (побитовое умножение).
Для того чтобы получить сигнал STAT из регистра состояния необ-
ходимо произвести операцию побитового умножения содержимого регист-
ра и двоичного числа 00001000 (так называемое «наложение маски»). В де-
сятичной записи это будет число 2
3
= 8. Алгоритм получения сигнала
STAT имеет следующий вид.
1.Содержимое регистра состояния записывается в переменную a
с помощью процедуры inport(865,a).
2. В двоичной записи переменной а выделяется третий разряд - (a
and 8).
3. Проверяется условие того, что он равен единице: (a and 8) = 8.
Ожидание единицы организуется следующим образом:
repeat
inport(865,a)
until ( (a and 8) = 8 );
т.е. цикл будет выполняться до тех пор, пока выражение в скобках ложно.
Аналогично формируется задержка перед ожиданием нуля в третьем раз-
ряде регистра состояния:
repeat
inport(865,a)
until ( (a and 8) <> 8 );
Для того, чтобы быть уверенными в готовности ССД, нам необхо-
димо последовательно «пропустить» 8 единиц и 8 нулей, т.е. создать цикл
следующего вида:
for i:=1 to 8 do
begin
repeat
inport(865,a)
until ( (a and 8) = 8 );
repeat
inport(865,a)
until ( (a and 8) <> 8 );
end;
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
нии данной задачи, информацию. Для выделения нужного бита использу- ется стандартная операция-«and» (побитовое умножение). Для того чтобы получить сигнал STAT из регистра состояния необ- ходимо произвести операцию побитового умножения содержимого регист- ра и двоичного числа 00001000 (так называемое «наложение маски»). В де- сятичной записи это будет число 2 3 = 8. Алгоритм получения сигнала STAT имеет следующий вид. 1.Содержимое регистра состояния записывается в переменную a с помощью процедуры inport(865,a). 2. В двоичной записи переменной а выделяется третий разряд - (a and 8). 3. Проверяется условие того, что он равен единице: (a and 8) = 8. Ожидание единицы организуется следующим образом: repeat inport(865,a) until ( (a and 8) = 8 ); т.е. цикл будет выполняться до тех пор, пока выражение в скобках ложно. Аналогично формируется задержка перед ожиданием нуля в третьем раз- ряде регистра состояния: repeat inport(865,a) until ( (a and 8) <> 8 ); Для того, чтобы быть уверенными в готовности ССД, нам необхо- димо последовательно «пропустить» 8 единиц и 8 нулей, т.е. создать цикл следующего вида: for i:=1 to 8 do begin repeat inport(865,a) until ( (a and 8) = 8 ); repeat inport(865,a) until ( (a and 8) <> 8 ); end; 51 PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »