list p=10f202 ;*********************************************************************** ;* Pouzite piny ;* ---------------------------------- ;* GP: 0 > PTT out ;* 1 - KEY out ;* 2 - KEY in ;* 3 - DEL in ;* ;*********************************************************************** ; ; ;*********************************************************************** ; ; Automaticke klicovani pro FT290 s PIC10F202 ; ; Procesor 10F202 (nebo 10F200) ; ; Takt 4 MHz interni ; ; ;*********************************************************************** ; Include data pro 10F202 #include ; Nastaveni configurarace: ; off codeprotection ; off WDT-Timer ; off Reset-Pin __CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF ;*********************************************************************** ; nastaveni variabilnich promenych od 10h cblock 0x10 loops1 ;cekani loops2 ;cekani pro 10 ms loops3 ;Prvni pruchod smyckou loops4 ;druhy pruchod smyckou loops5 ;celkove zpozdeniPTT loops6 ; endc #define PTT GPIO,0 #define KEY GPIO,1 #define KON GPIO,2 #define DEL GPIO,3 #define outPTT loops6,1 ;******************************************************* ; Zacatek kodu org 0x0000 movwf OSCCAL ; kalibrace Oscilatoru movlw b'00001100' ; GP0,GP1 output tris GPIO bcf KEY ; 0 do key bcf PTT ; 0 do ptt ; bcf CMCON0,CMPON ; Comparator vypnut u 10F204/206 ;******************************************************* start btfsc KON goto PTTdel ; ceka na vyprseni tx del ;******************************************************* ; delka zpozdeni PTT movlw .250 ; udava konecnou delku cekani PTT movwf loops3 ;******************************************************* ; volba delky zpozdeni PTT sepnutim DEL movlw .250 ; udava konecnou delku cekani PTT 500 ms movwf loops5 btfss DEL ; zvol zpozdeni goto sepni movlw .180 ; udava polovicni delku cekani PTT 350 ms movwf loops5 ;******************************************************* sepni bsf PTT ; sepne PTT movlw .1 movwf loops6 call wait1 ; ceka 10 ms bsf KEY ; sepne KEY btfss KON ; konec vstupu goto $-1 ; call wait1 ; ceka 10 ms bcf KEY ; rozepne KEY goto start ;******************************************************* PTTdel btfsc outPTT ;jeli 0 se vrat goto start nop decfsz loops3, F goto start ; pruchod 8*250=2000 us decfsz loops5, F ; promenna delka cekani PTT 250*2=500ms ; promenna delka cekani PTT 180*2=360ms goto start ; hlida vstup bcf PTT ; rozepne PTT clrf loops6 ; vynuluje loops6 goto start ; zmena PTTdelay obsahem v loop5 ;******************************************************* wait1 clrf loops1 ; připraví registry na pocitani movlw .25 movwf loops2 ; loops2 se vlozi jen 25 celkove spozdeni 40 * 25 =10ms zpet incfsz loops,1 ; pricte 1 do loops spozdeni 40 us goto zpet ; jeste neni plne, proto jdi zpet decfsz loops2,1 ; je plne, proto odecti 1 od loops2 goto zpet ; jeste neni prazdne, proto zpet retlw .0 ;******************************************************* end