Обобщенная блок-схема алгоритма работы тестера ИМС (блок-схема алгоритма работы тестера). Разработка детальной блок-схемы алгоритма тестирования ИМС, страница 9

ПУСК

 

   Установить Р1, Р2, Р3 в исходное     состояние, погасить индикаторы

 

Рис. 7.  Детальная блок – схема алгоритма работы тестера ИМС

Примем tвнутр.цикла = 500 мкс, t внеш.цикла = 20 мс. Необходимо определить значения переменных EXTR и INTR, задающие, соответственно, tвнутр.цикла  и  tвнеш.цикла. Можно записать:

tвнутр.цикла = 2*3мкс* INTR = 6мкс * INTR.

Отсюда

INTR = 500 мкс / 6 мкс = 83, 33 = 53Н.

Для времени внешнего цикла:

t внеш.цикла = ( 2+ 2+ 2) * 3мкс + [(2+2)*3мкс + 500]*EXTR = 18мкс+ 512мкс *EXTR.

Отсюда

EXTR = ( 20 – 0,018)мс/ 512 мс = 39,03 = 27Н

Рис. 8.  Блок – схема алгоритма подпрограммы тестирования ИМС К155ЛА1

3.5.3. Программа работы прибора на языке Ассемблера

INTR          EQU         53H            ;  Времязадающие константы

EXTR         EQU         27H            ;  для подпрограммы DELAY

ORG   0000H              ;  Начальный адрес программы

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

MOV     P3, #1FH        ; Выключить индикаторы

MOV     SP, #70H        ; Определить стек

READY:    SETB     P3.5                ; Включить индикатор "ГОТОВ"

WAIT1:      JB          P3.3, WAIT1 ; Ожидание нажатия кнопки "ТЕСТ"

CALL  DELAY           ; Вызов подпрограммы задержки

WAIT2:      JNB       P3.3, WAIT2  ; Ожидание отжатия кнопки "ТЕСТ"

CALL   DELAY         

CLR      P3.5                 ; Погасить индикатор "ГОТОВ"

MOV     A, P0              ; Ввод кода номера ИМС

CPL      A                     ;  Получить прямой код номера N

CJNE   A, #0, NEXT1  ; Номер ИМС N=00?

CALL   TEST00           ; Да, вызов подпрограммы тестирования

; TEST00

JMP    CHECK            ; Переход на метку CHECK

NEXT1:      CJNE   A, #1, NEXT2  ; Номер ИМС N=01?

CALL   TEST01           ; Да, вызов подпрограммы тестирования

; TEST01

JMP    CHECK           

:

:                                    ; Проверка остальных ИМС

:

NEXT98:    CJNE   A, #98, NEXT99   ; Номер ИМС N=98?

CALL   TEST98             ; Да, вызов подпрограммы тестирования

; TEST98                               

JMP    CHECK      

NEXT99:    CALL   TEST99       ; Да, вызов подпрограммы тестирования

;  TEST99

; Проверка результата тестирования

CHECK:     JB         F0, NORM         ; Переход, если F0=1 (НОРМА)

SETB     P3.7                  ; Включить индикатор "БРАК"

JMP    WAIT3

NORM:      SETB     P3.6                   ; Включить индикатор "НОРМА"

WAIT3:      JB          P3.4, WAIT3    ; Ожидание нажатия кнопки "СБРОС"

CALL   DELAY             ; Вызов подпрограммы задержки

WAIT4:     JNB        P3.4, WAIT4     ; Ожидание отжатия кнопки "СБРОС"

CALL    DELAY

; Установка портов Р1, Р2, Р3 на ввод, гашение всех индикаторов

MOV     P1, #0FFH

MOV     P2, #0FFH

MOV     P3, #1FH

JMP        READY              ; Переход в исходное состояние

; DELAY – подпрограмма временной задержки на 20мс

; Входные параметры: константы INTR, EXTR

DELAY:    MOV      R6, # EXTR    ; Загрузка

LOOP2:     MOV      R7, # INTR     ; времязадающих констант

LOOP1:     DJNZ      R7, LOOP1     ; Цикл, если (R7) 0

DJNZ     R6, LOOP2      ; Цикл, если (R6) 0

RET                                ; Возврат из подпрограммы

; TEST01 – подпрограмма тестирования ИМС К155ЛА1 с номером N=01

; Выходной параметр: флаг F0 – при F0 = 1 результат тестирования

; положительный (НОРМА), при F0 = 0 – отрицательный (БРАК)

TEST01:    CLR       P3.2                     ; P3.2 < -0, подать питание на ИМС

CALL    DELAY            ; Вызов подпрограммы задержки

MOV      R2, # 0FH        ; Загрузить счетчик состояний

MOV      R0, # 0              ; В (R0)– начальное значение входного

;  кода