Приём сигнала синхронизации времени PPS от модуля ГЛОНАСС/GPS


Главная / ЭКВМ / Программы для ЭКВМ / Работа с оборудованием

Описание

Программа предназначена для приёма сигнала синхронизации времени PPS (секундной метки) от приёмника ГЛОНАСС/GPS. Сигнал PPS вырабатывается приёмником один раз в секунду - в момент перехода с одной секунды на другую. Сигнал подаётся на линию BUSY параллельного порта ЭКВМ.

Программа предназначена для иллюстрации способов обработки сигналов, принятых от оборудования, поэтому имеет небольшой размер (88 байт) и упрощённый интерфейс. В программе используются прерывания параллельного порта и таймера.

Перед запуском программы в регистр стека X следует записать количество секундных меток, которые будут приняты до выхода из программы. Запуск программы - клавишами В/О, С/П. Выход из программы - нажатием С/П или автоматически, по истечении указанного при запуске времени.

При работе программы синхронно с приёмом сигнала PPS формируется звуковой сигнал длительностью 100 мс, а также сигнал на линии AUTOFEED параллельного порта (канал 1).

Перед окончанием работы программы на линии SELECT_IN параллельного порта (канал 2) формируется сигнал длительностью 1 сек. Что позволяет использовать программу в качестве простейшего таймера.




Файл програмы:

pps.mkp (КС 11605/109)


Программа pps

  0 1 2 3 4 5 6 7 8 9
00 K [x] P П 40 1 0 П 4 ВП 2 П 5 1
10 PP П 90 90 PP П 91 48 7 1 PP П
20 91 31 PP П 91 56 8 5 B↑ 2 PP П
30 91 32 PP П 91 52 9 0 5 0 П 7
40 + П 8 4 0 П 9 + П A PP П 91 30
50 K ИП 9 F x=0 50 K ИП 8 F x=0 53 PP П 91 30 3
60 K П A ИП 4 F x2 K П 7 K ИП 7 F x=0 64 PP П 90 90
70 С/П ИП 5 ИП 4 K П 8 5 K П A Cx B↑ B↑ K ИП 9
80 1 - K П 9 K ЭКР PP В/О 7 K П A PP В/О    

Исходный текст для кросс-компилятора

.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 (многоканальный)