Приём сигнала синхронизации времени PPS от модуля ГЛОНАСС/GPS |
Главная / ЭКВМ / Программы для ЭКВМ / Работа с оборудованием |
ОписаниеПрограмма предназначена для приёма сигнала синхронизации времени PPS (секундной метки) от приёмника ГЛОНАСС/GPS. Сигнал PPS вырабатывается приёмником один раз в секунду - в момент перехода с одной секунды на другую. Сигнал подаётся на линию BUSY параллельного порта ЭКВМ. Программа предназначена для иллюстрации способов обработки сигналов, принятых от оборудования, поэтому имеет небольшой размер (88 байт) и упрощённый интерфейс. В программе используются прерывания параллельного порта и таймера. Перед запуском программы в регистр стека X следует записать количество секундных меток, которые будут приняты до выхода из программы. Запуск программы - клавишами В/О, С/П. Выход из программы - нажатием С/П или автоматически, по истечении указанного при запуске времени. При работе программы синхронно с приёмом сигнала PPS формируется звуковой сигнал длительностью 100 мс, а также сигнал на линии AUTOFEED параллельного порта (канал 1). Перед окончанием работы программы на линии SELECT_IN параллельного порта (канал 2) формируется сигнал длительностью 1 сек. Что позволяет использовать программу в качестве простейшего таймера. Файл програмы:
pps.mkp (КС 11605/109) Программа pps
Исходный текст для кросс-компилятора.CHARSET 1251 ; приём сигнала PPS от приёмника АСПМК-3 ; через линию BUSY параллельного порта ; звуковое подтверждение и управление каналами порта ; с использованием прерываний SCHET .EQU 40 ; (устанавливается также в R9) .ORG 0 K INT P M SCHET ; количество принимаемых импульсов (из RX) 10 M4 ; 100 мс - длительность звукового сигнала EE 2 M5 ; 1000 Гц - частота звукового сигнала 1 PP M 9090 ; статический режим параллельного порта PP M 9148 ; сброс всех прерываний .NUML PPS <-> ; RX=1 RY=PPS PP M 9131 ; Прерывание 1, приоритет 1, вектор PPS PP M 9156 ; Разрешить аппаратное прерывание параллельного порта (BUSY) .NUML TIMER ENT 2 PP M 9132 ; Прерывание 2, приоритет 2, вектор TIMER PP M 9152 ; Разрешить аппаратное прерывание таймера 2 (звуковой сигнал) 9050 M7 ; для косвенной адресации R9050 + M8 ; (+2) для косвенной адресации R9052 40 M9 ; для косвенной адресации R40 (SCHET) + MA ; для косвенной адресации R9092 PP M 9130 ; разрешение прерываний (RX!=0) A1: KRM9 ; R40 = SCHET F X=0 A1 ; цикл по значению счётчика импульсов A2: KRM8 ; R9052 F X=0 A2 ; задержка включения канала 2 до окончания сигнала PP M 9130 ; запретить прерывания (RX=0) 3 KMA ; R9092 - включить канал 2 (SELECT_IN) RM4 FX^2 ; RX=100 KM7 ; таймер 0 - 1 с A3: KRM7 F X=0 A3 ; проверка таймера 0 ; завершение программы PP M 9090 ; выключить параллельный порт (RX=0) ; каналы отключаются автоматически R/S ; останов программы PPS: ; прерывание BUSY RM5 RM4 KM8 ; R9052 - звук 5 KMA ; R9092 - включить канал 1 (AUTOFEED) CX ENT ENT ; очистка стека в прерывании - для вывода KRM9 ; R40 = SCHET 1 - ; декремент счётчика KM9 ; R40 = SCHET K SCR ; вывод SCHET на экран PP RTN ; возврат из прерывания TIMER: ; прерывание таймера 2 (звук) 7 KMA ; R9092 - отключить каналы управления 1-3 PP RTN ; возврат из прерывания .ENDP |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
НПП "СЕМИКО" (383) 271-01-25 (многоканальный) |