Аппаратура и методы поиска дефектов кабельных сетей

Автор: Пользователь скрыл имя, 14 Декабря 2014 в 19:54, дипломная работа

Краткое описание

Цель моей выпускной квалификационной работы заключатся в исследовании методов поиска дефектов кабельных линий и разработке схемы электрической принципиальной прибора для определения расстояния до обрыва кабельной линии.
Объектом исследования выпускной квалификационной работы является аппаратура и методы поиска дефектов кабельных сетей.
Предметом исследования данной работы – нахождение повреждений в кабельных сетях используя различные методы и аппаратуру для этого.

Файлы: 1 файл

Диплом.docx

— 2.03 Мб (Скачать)

      SETB IE                ; Разрешить все прерывания

ST1:

;--------------------------------------------------------------------

; Основное тело программы

;--------------------------------------------------------------------

      LCALL  COUNTER

      LCALL  CONVERT

      LCALL  IND

      LJMP   ST1

;--------------------------------------------------------------------

; Блок подпрограмм

;--------------------------------------------------------------------

;

;--------------------------------------------------------------------

;       Подпрограмма  опроса регистра таймера-счетчика

;--------------------------------------------------------------------

COUNTER:

;       mov  R2, #00h          ; обнуление регистра R0

;       mov  R3, #00h          ; обнуление регистра R1

M1:     MOV  P3.5, #1          ; Записываем 1 в порт p3.5

        MOV  C, P3.5           ; Читаем состояние кнопки RESET

        JC   M2                ; Если контакты разомкнуты, перейти  к M2

        LCALL  RESET

        RET

RESET:                         ; передача по последовательному  каналу

        MOV   A,  TL0          ; данных  и сброс

        MOV  SBUF, A           ; по последовательному порту

        RET

;SEND:

;        JNB  TI,  SEND

;        CLR  TI

;        NOP

;        NOP

;        MOV   A,  TL1

;        MOV  SBUF, A           ; по последовательному порту

;SEN1:

;        JNB  TI,  SEN1

;        CLR  TI

;        MOV     TL0, #00h

;        MOV     TH0, #00h

M2:

        mov  R2, TL0           ; запись значения TL0 в R2

        mov  R3, TH0           ; запись значения TH0 в R3

        RET

;

;--------------------------------------------------------------------

;       Подпрограмма  преобразования двухбайтовых чисел

;       из шестнадцатиричного  в двоично-десятичный формат

;       числа берутся  из R2 и R3

;

CONVERT:                         ; подпрограмма, загружающая двухбайтовое

;       MOV     DPTR, #0FFFFh    ; число в R3 и R2 и  вызывающая

;       MOV     R2, DPL          ; алгоритм  преобразования этого

;       MOV     R3, DPH          ; числа  в двоично-десятичный

        MOV     R4, #00h         ; начальная  установка

        MOV     R5, #00h         ; обнуление  регистров

        MOV     R6, #00h

        MOV     R7, #00h

;

        LCALL   BN2BCD           ; формат

        RET

;

BN2BCD:                          ; преобразуемое число R3 R2

                                 ; (мл.байт в R2)

;

        MOV     DPTR, #10000

BN2_1:

        LCALL   R32MNDPT         ; R3 R2 - 10000

        JC      BN2_2            ; переход на BN2_2, если CY=1

        INC     R6               ; R6=R6 + 1 - инкремент R6, если CY=0

        SJMP    BN2_1            ; переход на BN2_1

BN2_2:

        LCALL   R32PLDPT         ; R3R2 + 10000

;

        MOV     DPTR, #1000

BN2_3:

        LCALL   R32MNDPT         ; R3R2 - 1000

        JC      BN2_4            ; переход на BN2_4, если CY=1

        INC     R7               ; R7=R7 + 1 - инкремент R7, если CY=0

        SJMP    BN2_3            ; переход на BN2_3

BN2_4:

        LCALL   R32PLDPT         ; R3R2 + 1000

;

        MOV     DPTR, #100

BN2_5:

        LCALL   R32MNDPT         ; R3R2 - 100

        JC      BN2_6            ; ПЕР. НА BN2_6, ЕСЛИ CY=1

        INC     R5               ; R5=R5 + 1 - ЭТО ДЕЛАЕМ, ЕСЛИ CY=0

        SJMP    BN2_5            ; ПЕРЕХОД НА BN2_5

BN2_6:

        LCALL   R32PLDPT

;

        MOV     A, R7            ; ПЕРЕСЛАЛИ ИЗ R7 В A

        SWAP    A                ; ОБМЕНЯЛИ МЕСТАМИ СТАРШИЙ И  МЛАДШИЙ

;                                ; ПОЛУБАЙТЫ A

        ADD     A, R5            ; ПРИБАВИЛИ К A R5

        MOV     R5, A            ; ПЕРЕСЛАЛИ СУММУ В R5

        MOV     R7, #0           ; R7 = 0

;

        MOV     DPTR, #10

BN2_7:

        LCALL   R32MNDPT         ; R3R2 - 10

        JC      BN2_8            ; ПЕР. НА BN2_8, ЕСЛИ CY=1

        INC     R7               ; R7=R7 + 1 - ЭТО ДЕЛАЕМ, ЕСЛИ CY=0

        SJMP    BN2_7            ; ПЕРЕХОД НА BN2_7

BN2_8:

        LCALL   R32PLDPT         ; R3R2 + 10

;

        MOV     A, R2

        MOV     R4, A            ; R2 ПЕРЕСЛАЛИ ЧЕРЕЗ АККУМУЛЯТОР В R4

;

        MOV     A, R7            ; ПЕРЕСЛАЛИ ИЗ R7 В A

        SWAP    A                ; ОБМЕНЯЛИ МЕСТАМИ СТАРШИЙ И  МЛАДШИЙ

;                                ; ПОЛУБАЙТЫ A

        ADD     A, R4            ; ПРИБАВИЛИ К A R4

        MOV     R4, A            ; ПЕРЕСЛАЛИ СУММУ В R4

        RET                      ; ВОЗВРАТ ИЗ ПОДПРОГРАММЫ

;

; ПОДПРОГРАММЫ ДЛЯ BN2BCD

;

R32PLDPT:

        MOV     A, R2            ; R2 В АККУМУЛЯТОР

        ADD     A, DPL           ; СКЛАДЫВАЕМ ЕГО С МЛ.БАЙТОМ DPTR

        MOV     R2, A            ; ВОЗВРАЩАЕМ СУММУ В R2

        MOV     A, R3            ; R3 В АККУМУЛЯТОР

        ADDC    A, DPH           ; СКЛАДЫВАЕМ ЕГО С БИТОМ ПЕРЕНОСА

;                                ; И С МЛ.БАЙТОМ DPTR

        MOV     R3, A            ; ВОЗВРАЩАЕМ СУММУ В R3

        RET

;

R32MNDPT:

        CLR     C                ; ОЧИЩАЕМ CY

        MOV     A, R2            ; R2 В АККУМУЛЯТОР

        SUBB    A, DPL           ; ВЫЧИТАЕМ ИЗ НЕГО МЛ.БАЙТ DPTR И  СY

        MOV     R2, A            ; ВОЗВРАЩАЕМ РАЗНОСТЬ В R2

        MOV     A, R3            ; R3 В АККУМУЛЯТОР

        SUBB    A, DPH           ; ВЫЧМТАЕМ ИЗ НЕГО БИТ ПЕРЕНОСА

;                                ; И СТ.БАЙТ DPTR

        MOV     R3, A            ; ВОЗВРАЩАЕМ РАЗНОСТЬ В R3

        RET

;--------------------------------------------------------------------

; Подпрограмма вывода информации  на индикатор МТ-10Т7

; ---------------------------------------------------

; Выводимая информация в BCD формате  последовательно помещается

; в аккумулятор

;--------------------------------------------------------------------

IND:

        LCALL  eclr

in1:    mov A, #1              ; Установка курсора в позицию 1

        LCALL  ecur            ; Вызов подпрограммы установки  курсора

; Первое знакоместо

        MOV     A, R6           ; Помещаем в аккумулятор содержимое R6

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr            ; Вызов процедуры вывода на  экран

; Второе знакоместо

        MOV     A, R6           ; Помещаем в аккумулятор содержимое R6

        SWAP    A               ; Обмениваем полубайты в аккумуляторе

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr

; Третье знакоместо

        MOV     A, R5           ; Помещаем в аккумулятор содержимое R5

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr

; Четвертое знакоместо

        MOV     A, R5           ; Помещаем в аккумулятор содержимое R5

        SWAP    A               ; Обмениваем полубайты в аккумуляторе

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr

; Пятое знакоместо

        MOV     A, R4           ; Помещаем в аккумулятор содержимое R4

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr

; Шестое знакоместо

        MOV     A, R4           ; Помещаем в аккумулятор содержимое R4

        SWAP    A               ; Обмениваем полубайты в аккумуляторе

        ANL     A, #11110000b   ; Обнуляем младший  полубайт

        LCALL  prchr

        RET

;--------------------------------------------------------------------

; Подпрограмма вывода символа  на экран

;--------------------------------------------------------------------

 

prchr:    push   DPL

          push   DPH

          push   B

 

          mov    DPTR, #ts        ; Начало таблицы символов

          mov    C, ACC.7         ; Сохраняем  значение точки

          clr    ACC.7            ; Сбрасываем значение бита

          movc   a, @a+DPTR       ; Получаем  выводимый код

          mov    ACC.4, C         ; Восстанавливаем  значение точки

          mov    B, A             ; Сохраняем его в регистре B

          anl    A, #0Fh          ; Отделяем  младший полубайт

          mov    P1, A            ; Выводим его на индикатор

          setb   A0               ; Вкл. режима вывода даных

          setb   WR1              ; Импульс записи

          clr    WR1

          mov    A, B             ; Восстанавливаем выводимый код

          swap   A                ; Обмен тетрадами аккумулятора

          anl    A, #0Fh          ; Отделяем  старший полубайт

          mov    P1, A            ; Выводим его на индикатор

          setb   A0               ; Включаем режим вывода данных

          setb   WR1              ; Импульс записи

          clr    WR1

 

          pop    B                ; Восстановление регистров

          pop    DPH

          pop    DPL

          RET

 

;--------------------------------------------------------------------

; Подпрограмма сброса LCD индикатора  МТ-10Т7-7

;--------------------------------------------------------------------

;

eres:     mov    P1, #0Fh         ; Засылаем адрес регистра блокировки

          setb   WR1

          clr    WR1

          mov    P1, #00100001b   ; Заносим код снятия  блокировки

          setb   WR1

          clr    WR1

          mov    P1, #0           ; Устанавливаем адрес на первый  разряд

          setb   WR1

          clr    WR1

          RET

;--------------------------------------------------------------------

; Подпрограмма очистки экрана

;--------------------------------------------------------------------

 

eclr:     LCALL  eres             ; Сброс экрана

          mov    P1, #00100000b   ; Установка управляющего  кода

          mov    R0, #14h         ; Инициализация  счетчика разрядов

cl1:      setb   WR1

          clr    WR1

          djnz   R0, cl1          ; Оператор  цикла

          RET

 

;--------------------------------------------------------------------

; Подпрограмма установки курсора

;--------------------------------------------------------------------

;

ecur:     anl    A, #0Fh          ; Отделяем биты адреса

          mov    P1, A            ; Устанавливаем адрес на первый  разряд

          setb   WR1

          clr    WR1

          RET

;--------------------------------------------------------------------

; Подпрограмма вывода сообщения  на экран

;--------------------------------------------------------------------

Информация о работе Аппаратура и методы поиска дефектов кабельных сетей