Компьютерные технологии в физике. Часть 2. Эксперимент с компьютерной поддержкой. Артамонов М.Ф - 37 стр.

UptoLike

36
3. Организовать цикл ожидания готовности, для чего необходим ана-
лиз сигнала «Готовность». Отметим, что в данной ИВС используется деся-
тиразрядный АЦП, тогда как регистры, адресуемые портами, являются
восьмиразрядными (однобайтовыми). Поэтому для записи выходного сиг-
нала АЦП необходимо использовать два регистра адресуемые портами 1 и
2 (см табл.3.1). Содержимое этих регистров представляет собой разделен-
ное на два байта 16-ти разрядное слово состояния интерфейса.
Значения отдельных битов этого слова иллюстрирует табл.3.2, из которой
видно, что значение сигнала готовности (бит Г –“Готовность”) находится
во втором разряде старшего байта этого слова, биты D0-D9 содержат дан-
ные, получаемые с выхода АЦП, а остальные биты не используются. При
этом D0-D7 находятся в регистре, адресуемом по адресу 1000 (порт 1); D8,
D9, Г в регистре по адресу 1001 (порт 2).
Таблица 3.2
Порт 1001 Порт 1000
1
15
1
14
1
13
1
12
1
11
Г
10
D9
9
D8
8
D7
7
D6
6
D5
5
D4
4
D3
3
D2
2
D1
1
D0
0
Для того, чтобы выделить бит готовности, используется стандартная
операцияand» (побитовое умножение). Для этого необходимо произве-
сти операцию побитового умножения содержимого регистра (порт 1001) и
двоичного числа 00000100 (так называемое «наложение маски»). В деся-
тичной записи это будет число 2
2
= 4. Алгоритм выделения сигнала «Го-
товность» имеет следующий вид:
inport(1001,datah);
ready:=(datah and 4);
Значение переменной
ready
будет равно 0, если АЦП готов к считыванию
и равно 4 если не готов. Для корректного считывания данных цикл ожи-
дания готовности следует организовать следующим образом:
repeat
inport(1001,datah);
until (datah and 4)<>0;.
4.Чтобы получить выходные данные АЦП, необходимо из слова со-
стояния интерфейса выделить десятибитный выходной код (слово дан-
ных). Для его формирования необходимо выделить младшие два бита из
байта порта 2, сдвинуть их на 8 бит влево (умножить на 256) и прибавить к
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
                    3. Организовать цикл ожидания готовности, для чего необходим ана-
              лиз сигнала «Готовность». Отметим, что в данной ИВС используется деся-
              тиразрядный АЦП, тогда как регистры, адресуемые портами, являются
              восьмиразрядными (однобайтовыми). Поэтому для записи выходного сиг-
              нала АЦП необходимо использовать два регистра адресуемые портами 1 и
              2 (см табл.3.1). Содержимое этих регистров представляет собой разделен-
              ное на два байта 16-ти разрядное слово состояния интерфейса.
              Значения отдельных битов этого слова иллюстрирует табл.3.2, из которой
              видно, что значение сигнала готовности (бит Г –“Готовность”) находится
              во втором разряде старшего байта этого слова, биты D0-D9 содержат дан-
              ные, получаемые с выхода АЦП, а остальные биты не используются. При
              этом D0-D7 находятся в регистре, адресуемом по адресу 1000 (порт 1); D8,
              D9, Г – в регистре по адресу 1001 (порт 2).

                                                                                    Таблица 3.2
                              Порт 1001                             Порт 1000

                1   1    1     1    1     Г    D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
               15   14   13    12   11    10   9   8   7    6   5    4    3     2      1   0



                    Для того, чтобы выделить бит готовности, используется стандартная
              операция-«and» (побитовое умножение). Для этого необходимо произве-
              сти операцию побитового умножения содержимого регистра (порт 1001) и
              двоичного числа 00000100 (так называемое «наложение маски»). В деся-
              тичной записи это будет число 22= 4. Алгоритм выделения сигнала «Го-
              товность» имеет следующий вид:

                    inport(1001,datah);
                    ready:=(datah and 4);

              Значение переменной ready будет равно 0, если АЦП готов к считыванию
              и равно 4 – если не готов. Для корректного считывания данных цикл ожи-
              дания готовности следует организовать следующим образом:

                    repeat
                    inport(1001,datah);
                    until (datah and 4)<>0;.

                    4.Чтобы получить выходные данные АЦП, необходимо из слова со-
              стояния интерфейса выделить десятибитный выходной код (слово дан-
              ных). Для его формирования необходимо выделить младшие два бита из
              байта порта 2, сдвинуть их на 8 бит влево (умножить на 256) и прибавить к

                                                       36


PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com