Реферат: Регистратор дискретных сигналов

Бит С служит показателем конца ввода данных с ком-порта (1 – последний канал, ноль – не последний канал). Сохранение времени включения и выключения для нулевого канала начинается с ячейки с адресом 20Н; сначала записываются часы, затем минуты включения, затем часы и минуты выключения. Таким образом для каждого канала в памяти отводится 4 байта, общее количество оперативной памяти используемое программой 32 байта. Структура использования памяти описана в следующей таблице:


Адрес Содержимое Адрес Содержимое
20h Таймер 1 часы включения 21h Таймер 1 минуты включения
22h Таймер 1 часы выключения 23h Таймер 1 минуты выключения
24h Таймер 2 часы включения 25h Таймер 2 минуты включения
26h Таймер 2 часы выключения 27h Таймер 2 минуты выключения
28h Таймер 3 часы включения 29h Таймер 3 минуты включения
2Аh Таймер 3 часы выключения 2Bh Таймер 3 минуты выключения
2Ch Таймер 4 часы включения 2Dh Таймер 4 минуты включения
2Eh Таймер 4 часы выключения 2Fh Таймер 4 минуты выключения
30h Таймер 5 часы включения 31h Таймер 5 минуты включения
32h Таймер 5 часы выключения 33h Таймер 5 минуты выключения
34h Таймер 6 часы включения 35h Таймер 6 минуты включения
36h Таймер 6 часы выключения 37h Таймер 6 минуты выключения
38h Таймер 7 часы включения 39h Таймер 7 минуты включения
3Ah Таймер 7 часы выключения 3Bh Таймер 7 минуты выключения
3Ch Таймер 8 часы включения 3Dh Таймер 8 минуты включения
3Eh Таймер 8 часы выключения 3Fh Таймер 8 минуты выключения

При чтении из CОМ порта принята следующая расшифровка принимаемых байтов. Один блок составляет 5 байтов: первый управляющий далее идут 4 байта с данными, в следующей последовательности: Часы включения канала – минуты включения канала – часы выключения канала – минуты выключения канала. Передача данных ведется в двоичной форме. Управляющий байт использует 4 младших бита, первые три несут номер канала в двоичном коде, четвертый показывает последний канал идет или нет (1 – последний, 0 – не последний). Если канал последний, то после приема 4 следующих байтов данных связь с портом прекратится, если нет, то продолжится с приема следующего управляющего байта.


Алгоритм обработки прерывания будет выглядеть следующим образом.


TF0 := 0;

R1 := R1+1;

If (R1<20) Then goto exit ;

R1 := 0;

R2 := R2+1;

If (R2<60) Then goto exit ;

R2 := 0;

R3 := R3+1;

For (i=0 to 7) do {

R0 := 20h + i*4 ;

If ( @R0+1 =R3) then if (@R0 = R4) then P[i] :=0;

If (@R0+3 = R3) Then if (@R0+2=R4) then P[i] :=1;};

If (R3<60) Then goto exit ;

R3 := 0;

R4 := R4+1;

If (R4<24) Then goto exit ;

R4 := 0;

Gosub Pause50; [Подпрограмма запуска таймера, будет поисана далее]

Return


3.2 Программа на языке ассемблера.


На языке ассемблера программа разделена на несколько процедур затем в главном модуле все процедуры связываются друг с другом так как это необходимо. Далее приводится подробное описание этих подпрограмм.


OMCS-51 MACRO ASSEMBLER VSKURS1

PAGE 1


loc obj line source


0100 1 ORG 100h

0100 75B80C 2 MOV IP, #00001100b

К-во Просмотров: 371
Бесплатно скачать Реферат: Регистратор дискретных сигналов