Синхронизация источника и приёмника в соответствии с алгоритмом программирования вольтметра, страница 4

out dx, al                                                               Запись в порт с адресом dx числа al (Установилось ДП=1, ГП=1)

end;                                                                           Конец ассемблерной вставки.

delay (10);                                                                  Необходимая задержка для установления линий.

Asm                                                                           Ассемблерная вставка.

mov dx, Port_C                                                    Записываем в регистр dx адрес порта С.                 

mov al, 00100000B                                             ДП=1, ГП=0

out dx, al                                                              Запись в порт с адресом dx числа al (Установилось ДП=1, ГП=0)

end;                                                                            Конец ассемблерной вставки.

delay (10);                                                                  Необходимая задержка для установления линий.

Проверка СД = 1 (ДА \ НЕТ) отсутствует.

НАЧИНАЕМ ПРИНИМАТЬ ДАННЫЕ.

asm                                                                                Ассемблерная вставка.

mov dx, Port_C                                                      Записываем в регистр dx адрес порта С.

mov al, 00000000B                                              ДП=1, ГП=1

out dx, al                                                                 Запись в порт с адресом dx числа al (Установилось ДП=1, ГП=1)

end;                                                                              Конец ассемблерной вставки.

delay (10);                                                                   Необходимая задержка для установления линий.

Asm                                                                              Ассемблерная вставка.

mov dx, Port_A                                                     Записываем в регистр dx адрес порта А.

in al, dx                                                                  Считываем содержимое порта А.

mov reg,al                                                              Записываем считанные данные в переменную reg.

end;                                                                              Конец ассемблерной вставки.

Далее идет расшифровка принятых данных, расшифровка идет с помощью таблицы кодировки функций.

if (i>=4) and (i<=8) then begin

if reg=207 then write('0');                                           Если переменная reg имеет код =207, тогда выводим на экран 0.

if reg=206 then write('1');                                           Аналогично.

if reg=205 then write('2');                                           Аналогично.

if reg=204 then write('3');                                           Аналогично.

if reg=203 then write('4');                                           Аналогично.

if reg=202 then write('5');                                           Аналогично.

if reg=201 then write('6');                                           Аналогично.

if reg=200 then write('7');                                           Аналогично.

if reg=199 then write('8');                                           Аналогично.

if reg=198 then write('9');                                           Аналогично.

end;

asm                                                                             Ассемблерная вставка.

mov dx, Port_C                                                    Записываем в регистр dx адрес порта С.

mov al, 00010000B                                              ДП=0, ГП=1(Все приёмники приняли данные).

out dx, al                                                               Запись в порт с адресом dx числа al (Установилось ДП=0, ГП=1)

end;                                                                             Конец ассемблерной вставки.

Проверка СД = 0 (ДА \ НЕТ) отсутствует.

end;                                                                             Конец цикла.

gotoxy(10,13);

writeln('Нажмите любую клавишу, чтобы вывести текущие измерения , (n) – для выхода');

w:=readkey;

delay(100);

until w='n';

end.

Проверки специально были исключены  из тела программы, чтобы более ясно показать последовательность обращения к вольтметру, его программирование, а так же  получение и интерпретация данных.