ВінРадіоФорум

Announcement

Временно прекращена регистрация новых аккаунтов пользователей.

User info

Welcome, Guest! Please login or register.


You are here » ВінРадіоФорум » Конструирование » Управление дуплексным репитером


Управление дуплексным репитером

Posts 1 to 6 of 6

1

Блок управления репитером предназначен для постройки дуплексного репитера, с использованием любых подходящих приемника и передатчика.
Имеются не всегда нужные для радиолюбительского репитера функции :
-Передача сигнала при вскрытии ящика с аппаратурой (сработка на размыкание контактов).
  При этом периодически передается в эфир сигнал "сирена".
-Сигнализация пропадания сети. Репитер при этом работает от аккумулятора и раз в 5 секунд передает "бип".
-Контроль температуры передатчика. При перегреве, если репитер в рабочем режиме, передается 3 "бипа" и включается дежурный режим.
Эти входы можно не использовать, подав на них необходимые логические уровни.

0

2

В остальном работает примерно так:
  При наличии несущей в теч. 0,5 с включается раб. режим. Можно применить "включение тоном" использовав сигнал с детектора тона. Для этого нужно перерезать связь между ножками 6 и 7 контроллера DD1 и подключить выход детектора к 6-ой ножке, а выход сигнала занятости канала к 7-ой.
  Входы DD1 подключают через резисторы, защищающие от перегрузки по току. При этом уровень "1" от какого-либо управляющего устройства может намного превышать напряжение питания DD1.
  При пропадании несущей корреспондента выдается короткий "бип". Его можно отключить, разомкнув S2.
  При отсутствии busy в теч. 4с, выдается "бип" (можно отключить разомкнув S3) и репитер переходит в дежурный режим (передатчик выключен).
Если busy есть непрерывно в теч. 2мин, то выдается низкий бип и устройство переходит в дежурный режим. Это время можно изменить в программе.
Слишком короткие сработки шумоподавителя приемника отфильтровываются программно.

  Позывной прошит в программе, и передается каждые 9-10 минут если репитер в рабочем режиме. Когда репитер в дежурном режиме передатчик может включаться на время передачи позывного если S1 замкнут (режим "маяк"). В старом варианте программы можно было запрограммировать два позывных, и переключать их S1.
Цепочка R21,C4 задает тактовую частоту DD1. От нее зависят все временнЫе параметры контроллера, в т.ч. тональности "бипов" и позывного сигнала.

0

3

Текст программы. (MPASM, кодировка Win)

;====RX9CBI Mike Kislinsky ========rx9cbi@qsl.net=============
; Блок Управления Репитером
; V2 Oct.2000   
; -режим МАЯК
; -второго позывного нет
; -timout по бизи 5м
; -позывной - раз в 10 минут, _в деж.режиме тоже_   
; контроль вскрытия - сирена.  контр. перегрева - три бипа и выкл-е
; контр.сети - периодический через каждые 5сек нч бип
;  WDToff. F RCosc=50 KHz  Tc=80uS  =>  Время переполн делителя-
; 20,5мс макс , TMR-5,24c , timer2-1342c(22,5мин)max
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
list p=16C54
__CONFIG 0FFB
;****** Register Definition ********
port_a  equ     5       
port_b  equ     6
flag    equ     8   ;флаги  0=Timeout  1=выдать Call  2=Раб.реж.(TX on)
bufer   equ     9   ;буфер кода
countr  equ     0A  ;счетчик сдвигов в  Simbol 
timbuf  equ     0B  ;буфер длительности посылки
timer2  equ     0C  ;"второй таймер"
bufti   equ     0D  ;буфер TMR
loops   equ     0E  ;delay loop counter
timout  equ     0F  ;watchdog   
temp    equ     10  ;   
;----port b--------------------------------------------
offboff equ     7   ;выкл бипа выключения репитера
u220v   equ     6   ;датчик 12В от сетевого БП (0=авар пит)
hot     equ     5   ;датчик температуры
alarm   equ     4   ;датчик вскрытия
secsign equ     3   ; 2oй позывнойXXX режим МАЯК 
offbeep equ     2   ;Beep 
busy    equ     1   ;вх busy от RX
ton     equ     0   ;вход от детектора тона
;----port a--------------------------------------------
oubeep  equ     3   ;вых БИПов
outone  equ     2   ;вых тона CW
out     equ     1   ;выход CW манипуляции __---__
ontx    equ     0   ;вкл прд
;********************************************************
org     0
goto    PWRUP
;=NOsubroutine====Выдать позывной==_-_---_-___---_-_---_       
; если старш бит 1 то символ пропускается
Sign  movlw   b'00001010'  ;r     
call    Simbol
movlw   b'00001010'  ;r     
call    Simbol
movlw   b'00110000'  ;6     
call    Simbol
movlw   b'00001001'  ;u     
call    Simbol
movlw   b'00000101'  ;a     
call    Simbol
bcf     flag,1      ;сброс "выдать call"
clrf    timer2      ; и 10мин таймера
goto Retsig ;XXretlw   0
;=====Выдать 1 символ=================================
Simbol  clrf    countr  ; сброс счетчика
movwf   bufer   ;W в буфер     
btfsc   bufer,7  ;если старш бит 1 то смвола нет
retlw 0
Sim1    rlf     bufer,1  ;сдвиг bufer
incf    countr,1
btfss   bufer,7  ; 1 ?
goto    Sim1  ;-нет.сдвигаем ещё
Next    incf    countr,1  ;
rlf     bufer,1   ;-да
btfsc   countr,3  ;countr=8?
goto    Delay3  ;-да  за новыми данными...и всё сначала
btfss   bufer,7  ;1 ?
goto    Dot  ;0 -точка
movlw   .9   ;1 -тиpе. загpузка длины тиpе
goto    GDD  ;
Dot     movlw   .3  ; длина точки
;----Give out Dush/Dot-----------
GDD     movwf   timbuf  ;длину в буфеp
bsf     port_a,out
clrf    1    ;очистить таймеp
N1      bcf     port_a,outone
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Delay1  ;-да. на паузу
;---- _-_-_-_-_-_-_-         
bsf     port_a,outone  ;-нет
nop        ;*
nop
nop
nop
goto    N1
;=====Пауза-1 (пауза между элементами)====
Delay1  clrf    1
bcf     port_a,out
D1n     movlw   .3 ;загp длины паузы-1     !
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Next  ;-да
goto    D1n
;=====Пауза-3 (после символа)==============
Delay3  clrf    1
D3n     movlw   .9  ;загp длины паузы-3     !
subwf   1,0
btfsc   3,2   ; время кончилось ?
retlw   0    ;-да  возврат за следующими данными
goto    D3n
;=====beep==================================
Beep    movlw   .50         ;длительность "пика"в W !
movwf   loops
Bee1    bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
decfsz  loops,1
goto    Bee1
retlw   0
;============длинный бип=============================
beee    movlw   .180       ;длительность "пика"в W !
movwf   loops
H1      bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
nop
nop
decfsz  loops,1
goto    H1
retlw   0
;============низкий длинный бип=============================
beee2   movlw   .120       ;длительность "пика"в W ! 150
movwf   loops
b21     bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz  loops,1
goto    b21
retlw   0
;==========================================
TimSign btfsc   port_b,alarm   ;1=
goto    Ala            ; =тревога
btfsc   port_b,u220v   ;0=нет сети
goto    TimSi           
;-------------------=авар питание----       
movlw   .20          ;~
subwf   1,w
btfss   3,2          ;(z) пора ?
goto    TimSi
bsf     port_a,ontx  ;пора
call    beee2     
TimS    btfss   flag,2       ;раб реж?
bcf     port_a,ontx  ;no. off TX
;------------------------------------
TimSi   btfsc flag,1    ;надо бы давно уже передать позывной
goto TXcall2   ; ДА
movlw   .200
subwf   1,0       ;вр обязат вызова пп ~= 20ms X 50 = 1s
btfss   3,0       ;c) время?  C=1 if 200...255 - 200
retlw   0         ; нет
incf    timer2,1  ;да, прибавить 1 в timer2
incf    timout,1  ;и в timout
clrf    1         ; очистить RTCC
movlw   .140      ;время "выдать позывной" в W   .140=10мин !
subwf   timer2,0
btfss   3,2       ;(2=Z) время2 кончилось ? 
retlw   0         ; нет
clrf    timer2    ; да
bsf     flag,1    ;флаг "выдать позывной" xxx
;--------------------
TXcall2 btfss   port_b,secsign ;режим МАЯК ?
goto    TXcall         ; ДА
btfss flag,2      ;раб.реж?
retlw 0            ; нет
;-----передать позывной --------
TXcall bsf     port_a,ontx  ;вкл прд
call Delay3       ;ON AIR waiting
call Delay3
goto    Sign         ;Call выдать (раньше была п\п!)
Retsig btfss flag,2      ;раб.реж?
bcf     port_a,ontx  ; нет. выкл прд
retlw   0
;##################################################################
PWRUP   movlw   b'000111' ; clkin/4/256 через делитель !
option            ;W-->option reg.
;----------------------------------
movlw   b'0000'  ;|
tris    port_a   ;| поpт А весь на вывод
clrf    port_a   ;    все нули
clrf    flag
clrf    1
clrf    timer2
clrf    timout
bsf     flag,1    ;флаг "выдать позывной"
;-=-ожидание вкл-я------------------------------
On      btfsc   port_b,ton  ;есть ТОН  ?     '''
goto    On1       ;да
call    TimSign   ;нет
goto    On           ; и ждать
;=---------------------------
On1     movlw   .24  ;загp длины тона для вкл-я реп 20,024x24= 490ms !
addwf   1,0  ;сложить с таймером
movwf   bufti
On2     movf    bufti,w
subwf   1,w
btfsc   3,2  ;z  время кончилось ?
goto    Tx   ;   да
btfsc   port_b,ton  ;нет   проверить ТОН'
goto    On2     ; есть
goto    On      ; нету
;=====тон' пришёл - вкл TX ===========-
Tx      bsf     port_a,ontx  ;вкл передатчика
bsf     flag,2       ;^flag раб реж
clrf    timout
Tx1     call    TimSign
btfsc   port_b,hot
goto    Hot          ;=перегрев
btfss   port_b,busy  ;нет. есть несущая ?
goto    Off          ;  нет     
Tx2     movlw   .75          ;  да. 4c x 75 = 5 minutes
subwf   timout,0
btfss   3,0          ;время кончилось ?
goto    Tx1          ; нет
;------timeout----------------------       
bsf     flag,0   ;флаг больш BUSY
goto    Off31   ;
;====Off============================
Off     movlw   .2         ;в теч 40-60 мс проверить
addwf   1,w        ;      пропадание несущей
movwf   temp
Off0    movf    temp,w
subwf   1,w
btfsc   3,0          ;'c' время кончилось ?
goto    Offn         ; да
btfss   port_b,busy  ;нет, есть несущая ?
goto    Off0         ; нет
goto    Tx2          ; да  появилась
;==========
Offn    clrf timout      ;/
btfss   port_b,offbeep ;бип 1 выключен ?
call    Beep         ; нет. beep 1000 Hz   *
call    TimSign
movlw   .10          ;10x22x20ms = 4500 ms  !
movwf   loops        ;         время до выключения
Of1     movlw   .22          ;                      !
addwf   1,w          ;сложить с таймером
movwf   bufti        ;в буфер
Of11    movf    bufti,w      ;из буфера   
subwf   1,w          ;TMR минус W
btfsc   3,0          ;'c'  время кончилось ?
goto    Of12         ; да
btfss   port_b,busy  ; нет, есть несущая ?
goto    Of11         ; нет
movlw   .8           ; есть. проверить в течении 0,16с  !
addwf   1,w          ;w сложить с таймером
Of2     subwf   1,w
btfsc   3,2          ;z время кончилось ?
goto    Tx1          ; да
btfsc   port_b,busy  ; нет, есть несущая ?
goto    Of2          ;  да
goto    Of11         ;  нет
;=========================
Of12    call    TimSign
decfsz  loops,1
goto    Of1          ;еще не все
;-----------------------------------
Off31   btfss   port_b,offboff ;
call    beee         ; бип при выкл TX
bcf     flag,0       ; бип выключен. сбр фл "низкий тон"
bcf     port_a,ontx  ;выкл прд
bcf     flag,2       ;сбр "раб реж"
goto    On           ; и ждать вызова`
;=====тревога========================================       
Ala     movlw   .130
subwf   1,0    ;
btfss   3,0    ;c.  пора ? C=1 if 100...255 - 100
goto    TimS   ; нет
;--------высокий тон----------------
bsf     port_a,ontx  ;вкл прд для сигнала
movlw   .19
addwf   1,w
movwf   timbuf  ;длину в буфеp
An1     bcf     port_a,oubeep
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Ala2  ;-да
;---- _-_-_-_-_-_-_  ----------------         
bsf     port_a,oubeep  ;-нет
nop        ;*
nop
nop
nop
goto    An1
;-----низкий тон-------------------------------
Ala2    movlw   .19
addwf   1,w       
movwf   timbuf  ;длину в буфеp
An2     bcf     port_a,oubeep
nop
nop
nop
nop
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2     ; время кончилось ?
goto    Ala     ;-да
;---- _-_-_-_-_-_-_-         
bsf     port_a,oubeep  ;-нет
nop        ;*
nop
nop
nop
nop
nop
nop
nop
goto    An2
;============================================
Hot     call    beee
call    Delay3
call    Delay3
call    Delay3
call    beee
call    Delay3
call    Delay3
call    Delay3
call    beee
call    Delay3
goto    PWRUP
;=================================================================
end
;_____The End of bu_rep2.asm____rx9cbi@narod.ru , \mail.ru________

0

4

Вариант для PIC16F84.

;====rx9cbi.narod.ru=======Mike Kislinsky===================
; Блок Управления Репитером   Oct.2000   
; перемычка SEC теперь включает режим МАЯК  !!! (был second call)
; timout по бизи 5минут.
; позывной - раз в 10 минут, _в деж.режиме тоже_!   
; контроль вскрытия - сирена.  контр. перегрева - три бипа и выкл-е
; контр.сети - периодический через каждые 5сек нч бип
; WDToff (а использовать вобще-то надо!).
; F RCosc=50 KHz  Tc=80uS
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
list p=16F84
__CONFIG 3FFB
;****** Register Definition ********
port_a  equ     5       
port_b  equ     6
flag    equ     11  ;флаги  0=Timeout  1=выдать Call  2=Раб.реж.(TX on)
bufer   equ     12  ;буфер кода
countr  equ     13  ;счетчик сдвигов в  Simbol 
timbuf  equ     14  ;буфер длительности посылки
timer2  equ     0C  ;"второй таймер"
bufti   equ     0D  ;буфер TMR
loops   equ     0E  ;delay loop counter
timout  equ     0F  ;watchdog   
temp    equ     10  ;   
;----port b--------------------------------------------
offboff equ     7   ;выкл бипа выключения репитера
u220v   equ     6   ;датчик 12В от сетевого БП (0=авар пит)
hot     equ     5   ;датчик температуры
alarm   equ     4   ;датчик вскрытия
secsign equ     3   ;2oй позывной
offbeep equ     2   ;выкл Beep    (длина*)
busy    equ     1   ;вх busy от RX
ton     equ     0   ;вход от детектора тона
;----port a--------------------------------------------
oubeep  equ     3   ;вых БИПов
outone  equ     2   ;вых тона CW
out     equ     1   ;выход CW манипуляции __---__
ontx    equ     0   ;вкл прд
;********************************************************
org     0
goto    PWRUP
org 4
goto PWRUP
;=NOsubroutine====Выдать позывной==_-_---_-___---_-_---_       
; если старш бит 1 то символ пропускается
Sign    ;btfsc   port_b,secsign
;goto    Secs
movlw   b'00001001'  ;u     
call    Simbol
movlw   b'00001010'  ;r     
call    Simbol
movlw   b'00111111'  ;0     
call    Simbol
movlw   b'00000110'  ;n     
call    Simbol
movlw   b'00010001'  ;v     
call    Simbol
movlw   b'00000101'  ;a    = UR0NVA
call    Simbol
bcf     flag,1      ;сброс "выдать call"
clrf    timer2      ; и 10мин таймера
goto Retsig ;XXretlw   0
;=====Выдать 1 символ=================================
Simbol  clrf    countr  ; сброс счетчика
movwf   bufer   ;W в буфер     
btfsc   bufer,7  ;если старший бит=1 то смвол пропускается
retlw 0
Sim1    rlf     bufer,1  ;сдвиг bufer
incf    countr,1
btfss   bufer,7  ; 1 ?
goto    Sim1  ;-нет.сдвигаем ещё
Next    incf    countr,1  ;
rlf     bufer,1   ;-да
btfsc   countr,3  ;countr=8?
goto    Delay3  ;-да  за новыми данными...и всё сначала
btfss   bufer,7  ;1 ?
goto    Dot  ;0 -точка
movlw   .9   ;1 -тиpе загpузка длины тиpе   !
goto    GDD  ;
Dot     movlw   .3  ; длина точки      !
;----Give out Dush/Dot-----------
GDD     movwf   timbuf  ;длину в буфеp
bsf     port_a,out
clrf    1    ;очистить таймеp
N1      bcf     port_a,outone
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Delay1  ;-да. на паузу
;---- _-_-_-_-_-_-_-         
bsf     port_a,outone  ;-нет
nop        ;*
nop
nop
nop
goto    N1
;=====Пауза-1 ( пауза между элементами)====
Delay1  clrf    1
bcf     port_a,out
D1n     movlw   .3 ;загp длины паузы-1     !
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Next  ;-да
goto    D1n
;=====Пауза-3 (после символа)==============
Delay3  clrf    1
D3n     movlw   .9  ;загp длины паузы-3     !
subwf   1,0
btfsc   3,2   ; время кончилось ?
retlw   0    ;-да  возврат за следующими данными
goto    D3n
;=====beep==================================
Beep    movlw   .50         ;длительность "пика"в W !
movwf   loops
Bee1    bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
decfsz  loops,1
goto    Bee1
retlw   0
;============длинный бип=============================
beee    movlw   .180       ;длительность "пика"в W !
movwf   loops
H1      bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
nop
nop
decfsz  loops,1
goto    H1
retlw   0
;============низкий длинный бип=============================
beee2   movlw   .120       ;длительность "пика"в W ! 150
movwf   loops
b21     bsf     port_a,oubeep  ;__--
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
bcf     port_a,oubeep  ;--__
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz  loops,1
goto    b21
retlw   0
;==========================================
TimSign btfsc   port_b,alarm   ;1=
goto    Ala            ; =тревога
btfsc   port_b,u220v   ;0=нет сети
goto    TimSi           
;-------------------=авар питание----       
movlw   .20          ;~
subwf   1,w
btfss   3,2          ;(z) пора ?
goto    TimSi
bsf     port_a,ontx  ;пора
call    beee2     
TimS    btfss   flag,2       ;раб реж?
bcf     port_a,ontx  ;no. off TX
;------------------------------------
TimSi   btfsc flag,1    ;надо бы давно уже передать позывной
goto TXcall2   ; ДА
movlw   .200
subwf   1,0       ;вр обязат вызова пп ~= 20ms X 50 = 1s
btfss   3,0       ;c) время?  C=1 if 200...255 - 200
retlw   0         ; нет
incf    timer2,1  ;да, прибавить 1 в timer2
incf    timout,1  ;и в timout
clrf    1         ; очистить RTCC
movlw   .140      ;время "выдать позывной" в W   .140=10мин !
subwf   timer2,0
btfss   3,2       ;(2=Z) время2 кончилось ? 
retlw   0         ; нет
clrf    timer2    ; да
bsf     flag,1    ;флаг "выдать позывной" xxx
;--------------------
TXcall2 btfss   port_b,secsign ;режим МАЯК ?
goto    TXcall         ; ДА
btfss flag,2      ;раб.реж?
retlw 0            ; нет
;-----передать позывной --------
TXcall bsf     port_a,ontx  ;вкл прд
call Delay3       ;ON AIR waiting
call Delay3
goto    Sign         ;Call выдать (раньше была п\п!)
Retsig btfss flag,2      ;раб.реж?
bcf     port_a,ontx  ; нет. выкл прд
retlw   0
;##################################################################
PWRUP   movlw   b'10000111' ; clkin/4/256 через делитель !
option            ;W-->option reg.
;----------------------------------
movlw   b'0000'  ;|
tris    port_a   ;| поpт А весь на вывод
clrf    port_a   ;    все нули
clrf    flag
clrf    1
clrf    timer2
clrf    timout
bsf     flag,1    ;флаг "выдать позывной"
;-=-ожидание вкл-я------------------------------
On      btfsc   port_b,ton  ;есть ТОН  ?     '''
goto    On1       ;да
call    TimSign   ;нет
goto    On           ; и ждать
;=---------------------------
On1     movlw   .24  ;загp длины тона для вкл-я реп 20,024x24= 490ms !
addwf   1,0  ;сложить с таймером
movwf   bufti
On2     movf    bufti,w
subwf   1,w
btfsc   3,2  ;z  время кончилось ?
goto    Tx   ;   да
btfsc   port_b,ton  ;нет   проверить ТОН'
goto    On2     ; есть
goto    On      ; нету
;=====тон' пришёл - вкл TX ===========-
Tx      bsf     port_a,ontx  ;вкл передатчика
bsf     flag,2       ;^flag раб реж
clrf    timout
Tx1     call    TimSign
btfsc   port_b,hot
goto    Hot          ;=перегрев
btfss   port_b,busy  ;нет. есть несущая ?
goto    Off          ;  нет     
Tx2     movlw   .75          ;  да. 4c x 75 = 5 minutes
subwf   timout,0
btfss   3,0          ;время кончилось ?
goto    Tx1          ; нет
;------timeout----------------------       
bsf     flag,0   ;флаг больш BUSY
goto    Off31   ;x было Off3
;====Off============================
Off     movlw   .2         ;в теч 40-60 мс проверить
addwf   1,w        ;      пропадание несущей
movwf   temp
Off0    movf    temp,w
subwf   1,w
btfsc   3,0          ;'c' время кончилось ?
goto    Offn         ; да
btfss   port_b,busy  ;нет, есть несущая ?
goto    Off0         ; нет
goto    Tx2          ; да  появилась
;==========
Offn    clrf timout      ;/
btfss   port_b,offbeep ;бип 1 выключен ?
call    Beep         ; нет. beep 1000 Hz   *
call    TimSign
movlw   .10          ;10x22x20ms = 4500 ms  !
movwf   loops        ;         время до выключения
Of1     movlw   .22          ;                      !
addwf   1,w          ;сложить с таймером
movwf   bufti        ;в буфер
Of11    movf    bufti,w      ;из буфера   
subwf   1,w          ;TMR минус W
btfsc   3,0          ;'c'  время кончилось ?
goto    Of12         ; да
btfss   port_b,busy  ; нет, есть несущая ?
goto    Of11         ; нет
movlw   .8           ; есть. проверить в течении 0,16с  !
addwf   1,w          ;w сложить с таймером
Of2     subwf   1,w
btfsc   3,2          ;z время кончилось ?
goto    Tx1          ; да
btfsc   port_b,busy  ; нет, есть несущая ?
goto    Of2          ;  да
goto    Of11         ;  нет
;========
Of12    call    TimSign
decfsz  loops,1
goto    Of1          ;еще не все
;------------
Off31   btfss   port_b,offboff ;
call    beee         ; бип при выкл TX
bcf     flag,0       ; бип выключен. сбр фл "низкий тон"
bcf     port_a,ontx  ;выкл прд
bcf     flag,2       ;сбр "раб реж"
goto    On           ; и ждать вызова`
;=====тревога========================================       
Ala     movlw   .130
subwf   1,0    ;
btfss   3,0    ;(c) пора ?  C=1 if 100...255 - 100
goto    TimS   ; нет
;--------высокий тон----------------
bsf     port_a,ontx  ;вкл прд для сигнала
movlw   .19
addwf   1,w
movwf   timbuf  ;длину в буфеp
An1     bcf     port_a,oubeep
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2   ; время кончилось ?
goto    Ala2  ;-да
;---- _-_-_-_-_-_-_  ----------------         
bsf     port_a,oubeep  ;-нет
nop        ;*
nop
nop
nop
goto    An1
;-----низкий тон-------------------------------
Ala2    movlw   .19
addwf   1,w       
movwf   timbuf  ;длину в буфеp
An2     bcf     port_a,oubeep
nop
nop
nop
nop
nop
nop
movf    timbuf,0 ;из буфеpа длины в W
subwf   1,0
btfsc   3,2     ; время кончилось ?
goto    Ala     ;-да
;---- _-_-_-_-_-_-_-         
bsf     port_a,oubeep  ;-нет
nop        ;*
nop
nop
nop
nop
nop
nop
nop
goto    An2
;============================================
Hot     call    beee
call    Delay3
call    Delay3
call    Delay3
call    beee
call    Delay3
call    Delay3
call    Delay3
call    beee
call    Delay3
goto    PWRUP
;=================================================================
end
;_____The End of bu_rep.asm_____73!_Mike__RX9CBI__________________

0

5

При настройке необходимо подобрать уровни сигналов, используя подстроечные резисторы и изменяя, при необходимости, R14, R18, R19, R23-R25.

Могу выслать почтой плату и прошитый PIC с нужным позывным.

С 1999 года отправил файлы для программирования или наборы  для RR9CA, RR3MA, RR4LC, LU5HJU, LZ0KSN, RR4PF, RR9WA, UR0EVD, RZ9AYA, RR6UA, UR0NVA...

73!  Михаил  RX9CBI
Информация взята с сайта: http://rx9cbi.narod.ru/bu_rep.htm

По просьбам трудящихся )

0

6

жаль под чип atmega нету программы

0


You are here » ВінРадіоФорум » Конструирование » Управление дуплексным репитером