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 Ассемблерная вставка:
См. алгоритм программирования вольтметра.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.