;******************************************** ;Gerador de tons para repetidores de V/UHF ; V1.0 ; CT1FMS ;******************************************** INCLUDE "P12F675.inc" __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _CPD_OFF #DEFINE BANK0 BCF STATUS,RP0 #DEFINE BANK1 BSF STATUS,RP0 #DEFINE TONE_OUT GPIO,2 #DEFINE T_74 FLAGS,0 #DEFINE T_123 FLAGS,1 CBLOCK 0X20 W_TEMP STATUS_TEMP TEMP TEMP0 TEMP1 TEMP2 TEMP3 TMP0 TMP1 TMP2 CONTADOR_1 CONTADOR_2 CONTADOR_3 FLAGS ENDC ORG 04H MOVWF W_TEMP ; salva o conteúdo do W em W_TEMP SWAPF STATUS,W ; salva o conteúdo do STATUS ... MOVWF STATUS_TEMP INTERRUPT BCF INTCON,T0IF ; TMR0 BTFSC TONE_OUT ;Testa ultimo estado de TONE GOTO TONE_1 ;Esta a 1 BSF TONE_OUT ;Esta a 0, activa o TONE RETFIE TONE_1 BCF TONE_OUT ;RETFIE ;Retorno de interrupcao RESTAURA SWAPF STATUS_TEMP,W ; restaura o conteúdo do ... MOVWF STATUS ; ... registrador STATUS SWAPF W_TEMP,F ; restaura o conteúdo ... SWAPF W_TEMP,W RETFIE ;************************************* INICIO BANK1 CALL 3FFH;MOVLW 0x80 MOVWF OSCCAL BANK0 MOVLW 0X7 MOVWF CMCON ;Desliga os comparadores internos BANK1 ;Seleciona banco 1 MOVLW B'00100000' MOVWF TRISIO MOVLW B'00000000' MOVWF INTCON BANK0 GOTO MAIN MAIN BTFSS GPIO,5 GOTO _74 GOTO _123 _74 BTFSC T_74 GOTO MAIN BCF T_123 BANK1 CLRF TMR0 MOVLW .45 MOVWF TMR0 MOVLW B'00000100' MOVWF OPTION_REG MOVLW B'10100000' MOVWF INTCON BANK0 BSF T_74 GOTO MAIN _123 BTFSC T_123 GOTO MAIN BCF T_74 BANK1 CLRF TMR0 MOVLW .1 MOVWF TMR0 MOVLW B'00000011' MOVWF OPTION_REG MOVLW B'10100000' MOVWF INTCON BANK0 BSF T_123 GOTO MAIN ORG 0x2100 DE "TONE 123Hz E 74.4Hz" ; DE "(c) Paulo Ferreira" DE "Novembro de 2004" DE " " DE "CT1FMS" END