Устройство сбора данных. Надёжность средств измерения и информационно–измерительных систем. Измерение, средства измерений, страница 8

Любой из известных протоколов последовательного обмена с сигналами квитирования легко реализуется программным путем. В МК51 не реализованы сигналы квитирования, поэтому для их формирования надо выделить разряды порта.

DTR – сигнал для внешнего компьютера, означающий что имеются данные для передачи.

DSR – сигнал, который компьютер посылает в ответ на DTR.

DSR=0 означает что внешний компьютер готов принять данные.

Для подключения любой линии интерфейса ИРПС необходимо использовать рассмотренные выше преобразователи уровней.

 

4. Алгоритмы работы и тексты программ.

                                             4.1 Основная программа.

начало

 
                                

 


РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ

 
             

 


Рис.4.1. Блок-схема основной программы.

4.2. Подпрограммы.

 


Рис.4.2. Блок-схема процедуры опроса датчиков.

 


Рис.4.3. Блок-схема процедуры обслуживания прерываний от т/с1.

 


Рис.4.4. Блок-схема процедуры перевода из двоичной системы в двоично-десятичную

 


Рис.4.5. Блок-схема п/п организации временных интервалов по 50 mс.

; основная программа

STACTOP :         EQU   60H   ;адрес вершины стека

IND(1¸7) :   EQU   50H¸56H  ; ячейки ПД хранящие информацию         

; выводимую на индикаторы HG(1¸7)

TC1:                      EQU 45H   ; ячейка хранения младшего байта

; среднего значения оборотов

; в промежуточных вычислениях

TC2:                      EQU 46H    ; ячейка хранения ст.б. среднего значения         

; оборотов в промежуточных вычислениях

PROM:                   EQU  42H ; ячейка хранения

; промежуточных вычислений                                                      

nTAB_COD:         EQU 50H   ; адрес начала таблицы перекодировки 

; в семисегментный код

COUNT:                EQU 41H   ; счетчик 50 милисекундных циклов

ORG 0100H

MOV SP,#STACKTOP     ;указатель стека

SETB EA                           ;снятие блокировки прерываний

SETB ET0                          ;разрешение прерываний от т/с 0

CALL INIT                        ;п/п инициализация дисплея

MOV R1,#00H                   ;

MOV R2,#00H                   ;

MOV COUNT,#00H          ;счетчик 50 ms циклов

MOV PROM,#00H            ;

CALL TAIM                     ;п/п опроса датчиков каждые 20 сек

                    WAIT: JNB R2.1,WAIT                ;ожидание цикла опроса датчиков

MOV IND1,#39H              ;код буквы “с”

MOV R4,#01H                   ;номер первого датчика

MOV A,R1                         ;

SUBB A,#11H                    ;(A)ßA-16 , где 16-кол-во датчиков

MOV R0,A                         ;начальный адрес записи последнего

;пакета данных

MOV R5,R0                        ;

MET: MOV DPTR,nTAB_COD  ;адрес начала таблицы перекодировки

;в сс-код

MOV A,R4                         ;(A)ßномер датчика

CALL BIN_BCD                ;

MOV A,R7                          ;(A)ß десятки

MOVC A,@A+DPTR         ;

MOV IND2,A                      ;

MOV A,B                            ;(В)ß единицы

MOVC A,@A+DPTR         ;

MOV IND3,A                      ;

MOV IND4,#00H                ; сс-код гашения IND4

MOV A,@R0                      ;

CALL BIN_BCD                ;

CALL OBMEN                   ;п/п заполнения ячеек IND5,6,7

CALL DISPL                      ;п/п вывода на дисплей

CALL DEL3                       ;п/п задержки на 3 сек

INC R4                                ;номер следующего датчика

INC R0                                ;адрес хранения данных этого датчика

CJNE R4,#11H,ME            ;переход если датчик не последний