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

Страницы работы

Содержание работы

uses crt, dos;                                                   Подключаем необходимые программные модули.

Const                                                              Описание констант:

Port_RUS= $303;                                         Адрес регистра управляющего слова.

Port_A= $300;                                              Адрес порта А.

Port_B= $301;                                              Адрес порта В.

Port_C= $302;                                              Адрес порта С.

Var                                                                  Описание переменных:

reg, i:byte;

w:char;

begin                                                               Начало программы.

clrscr;                                                              Очистка экрана.  

НАСТРОЙКА ВОЛЬТМЕТРА В РЕЖИМ «ПРИЁМНИК»

(КОНТРОЛЛЕР ЯВЛЯЕТСЯ «ИСТОЧНИКОМ»)

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

Устанавливаем направление передачи данных в портах А, В, С, путем записи в RUS числа 88Н. Ввод: ISA<= КОП, вывод ISA       

=>КОП.

mov dx, Port_RUS                                    Записываем в регистр dx адрес RUS (303Н).

mov al, 10001000B                                   Записываем в регистр al число 88Н. (число определяет направление передачи).

out dx, al                                                    Запись в порт с адресом dx числа al.

mov dx, Port_B                                          Устанавливаем УП=0 , чтобы установить вольтметр в режим  ожидания адреса или команды.

mov al, 11101100B                                    ДУ=0, УП=0, ОИ=1

out dx, al           

mov al, 11100100B    

out dx, al           

Посылаем в порт А команду Сброс Универсальный

(СБУ), следует обратить внимание на то, что  данные через ШД

КОП (порт А) в инвертируемом формате (данные не инвертируются буфером, поэтому необходима инверсия программным путём).

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

mov al, 11101011B                                   Записываем в регистр al число 14Н. (Сброс Универсальный).

out dx, al                                                    Запись в порт с адресом dx числа al. (отправили команду СБУ)

Адресуем вольтметр на прём данных. Посылаем в вольтметр адрес МАП (Мой Адрес Приёмник)

mov al, 222                                                (число222=21Н= МАП) Формат МАП – 2хН, где х – адрес, который выставляется с помощью переключателей на верхней    панели вольтметра.

out dx, al                                                    Запись в порт с адресом dx числа al. (Послали адрес МАП в вольтметр).

{ok DU vkl}                                                В этом месте, при пошаговом проходе программы, на передней панели вольтметра должен загореться индикатор ДУ

(Дистанционное Управление) 

Завершаем режим адресации, записываем в УП еденицу.

mov dx, Port_B       

mov al, 11101110B                                      ДУ=0, УП=1, ОИ=1.

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

mov al, 11100110B                                    Защёлкивание триггера.

out dx, al                                                     Запись в порт с адресом dx числа al. (Триггеры переключились)          

Таким образом мы адресовали вольтметр на приём данных!

НАЧИНАЕМ ПОСЫЛАТЬ ДАННЫЕ (данные, которые необходимо послать в вольтметр представлены в таблице )

Передача Данных осуществляется согласно алгоритму

«Синхронизация источника и приёмника» (его левая часть), а так же в соответствии с алгоритмом программирования вольтметра.

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

mov al, 00000111B                                   CД=0, +5v

out dx, al                                                    Запись в порт с адресом dx числа al (СД установился = 0)

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

Delay(100);                                                 Необходимая задержка для установления линии СД.

Проверка ГП = 0, ДП = 0 отсутствует.

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

См. алгоритм программирования вольтметра.

Похожие материалы

Информация о работе