jeje
disculpas
estuve revisando las conexiones del circuito decodificador de tonos y las conexiones de una resistencia estaban mal y el tren de pulsos desaparecio generandome ahora un pulso alto y bajo y con esto ya puedo recibir el codigo en hexadecimal.
ahora voy a lo siguiente: mi programa que recibe es el siguiente y lo quisiera pasar a lenguaje c pero aunque estoy leyendo bastante dentro de este estupendo foro no logro visualizar como generar mi programa
en este lenguaje y si de ser posible quitar los retardos para la habilitacion y hacerlo con interrupciones porque como se ve esta un poquito largo el programa ademas hice uno con el tmr0 pero me marcan errores que no puedo encontrar por mas que le rebusque (aunque creo que es en la rutina del timer pero bueno) les paso el primer programa que tiene solo los retardos
-------------------------------------------------------------------------------------------------------------------------------
;ESTE PROGRAMA ESPERA DOS CLAVES CON UN TIEMPO DE RECEPCION DE 2 SEGUNDOS POR CARACTER
;YA QUE SOBREPASANDO EL TIEMPO VUELVE A PEDIR CLAVE COMPLETA ADEMAS DEBE CONTENER
;UN INICIO Y TERMINACION EN ASTERISCO PARA RESTRICCION DE CLAVE
LIST P=16F84A
#INCLUDE "p16F84A.inc"
ERRORLEVEL -302
ERRORLEVEL -305
PORTA EQU 0X06
PORTB EQU 0X07
BSF 0x03,5 ;CAMBIO A BANCO 1
MOVLW b'11110000' ;SALIDAS DE RECEPCION DE RB0 A RB4
MOVWF PORTB ;ENTRADA HEXADECIMAL DEL DECO
BSF PORTA,1 ;ENTRADA HABILITADORA DEL DECO
BCF PORTA,0 ;SALIDA DE ACTIVACION
BCF 0x03,5 ;CAMBIO A BANCO 0
CBLOCK 0X20
REG1,REG2,REG3,TIMRES
ENDC ;DECLARACION DE REGISTROS A UTILIZAR
MAIN BTFSS PORTA,1 ;PRINCIPIO DE PROGRAMA
GOTO MAIN
GOTO LOOK
;-----------------------------------------------------------------
;CHECA EL ASTERISCO DE ENTRADA =0B 1011
;-----------------------------------------------------------------
LOOK BSF PORTB,0
BTFSC PORTB,4 ;0
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 1
GOTO MAIN
A BTFSC PORTA,1
GOTO A
BCF PORTB,0
GOTO CREG
CREG MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T3 MOVLW .86
MOVWF REG2
T2 MOVLW .88
MOVWF REG3
T1 BTFSC PORTA,1
GOTO LOOK1
DECFSZ REG3,1
GOTO T1
DECFSZ REG2,1
GOTO T2
DECFSZ REG1,1
GOTO T3
GOTO MAIN
;-----------------------------------------------------------------
;PRIMER BYTE DE MAC ADRESS
;-----------------------------------------------------------------
LOOK1 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSC PORTB,6 ;0
GOTO MAIN
BTFSC PORTB,7 ;0 DIGITO 2
GOTO MAIN
C BTFSC PORTA,1
GOTO C
BCF PORTB,0
GOTO CREG1
CREG1 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T31 MOVLW .86
MOVWF REG2
T21 MOVLW .88
MOVWF REG3
T11 BTFSC PORTA,1
GOTO LOOK2
DECFSZ REG3,1
GOTO T11
DECFSZ REG2,1
GOTO T21
DECFSZ REG1,1
GOTO T31
GOTO MAIN
;-----------------------------------------------------------------
;SEGUNDO BYTE DE MAC ADRESS
;-----------------------------------------------------------------
LOOK2 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 3
GOTO MAIN
D BTFSC PORTA,1
GOTO D
BCF PORTB,0
GOTO CREG2
CREG2 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T32 MOVLW .86
MOVWF REG2
T22 MOVLW .88
MOVWF REG3
T12 BTFSC PORTA,1
GOTO LOOK3
DECFSZ REG3,1
GOTO T12
DECFSZ REG2,1
GOTO T22
DECFSZ REG1,1
GOTO T32
GOTO MAIN
;-----------------------------------------------------------------
;TERCER BYTE DE MAC ADRESS
;-----------------------------------------------------------------
LOOK3 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSC PORTB,7 ;0 DIGITO 4
GOTO MAIN
E BTFSC PORTA,1
GOTO E
BCF PORTB,0
GOTO CREG3
CREG3 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T33 MOVLW .86
MOVWF REG2
T23 MOVLW .88
MOVWF REG3
T13 BTFSC PORTA,1
GOTO LOOK4
DECFSZ REG3,1
GOTO T13
DECFSZ REG2,1
GOTO T23
DECFSZ REG1,1
GOTO T33
GOTO MAIN
;-----------------------------------------------------------------
;CUARTO BYTE DE MAC ADRESS
;-----------------------------------------------------------------
LOOK4 BSF PORTB,0
BTFSC PORTB,4 ;0
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSC PORTB,7 ;0 DIGITO 5
GOTO MAIN
F BTFSC PORTA,1
GOTO F
BCF PORTB,0
GOTO CREG1
CREG4 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T34 MOVLW .86
MOVWF REG2
T24 MOVLW .88
MOVWF REG3
T14 BTFSC PORTA,1
GOTO LOOK5
DECFSZ REG3,1
GOTO T14
DECFSZ REG2,1
GOTO T24
DECFSZ REG1,1
GOTO T34
GOTO MAIN
;-----------------------------------------------------------------
;OPCION DE APAGADO O RESET
;-----------------------------------------------------------------
LOOK5 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO LOOK6
BTFSS PORTB,5 ;1
GOTO LOOK6
BTFSS PORTB,6 ;1
GOTO LOOK6
BTFSS PORTB,7 ;1 DIGITO 6 Ó
GOTO LOOK6
G BTFSC PORTA,1
GOTO G
BCF PORTB,0
GOTO CREG5
LOOK6 BSF PORTB,0
BTFSC PORTB,4 ;0
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSC PORTB,6 ;0
GOTO MAIN
BTFSC PORTB,7 ;0 DIGITO 6
GOTO MAIN
H BTFSC PORTA,1
GOTO H
BCF PORTB,0
GOTO CREG6
CREG5 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T35 MOVLW .86
MOVWF REG2
T25 MOVLW .88
MOVWF REG3
T15 BTFSC PORTA,1
GOTO LOOK7
DECFSZ REG3,1
GOTO T15
DECFSZ REG2,1
GOTO T25
DECFSZ REG1,1
GOTO T35
GOTO MAIN
CREG6 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T36 MOVLW .86
MOVWF REG2
T26 MOVLW .88
MOVWF REG3
T16 BTFSC PORTA,1
GOTO LOOK8
DECFSZ REG3,1
GOTO T16
DECFSZ REG2,1
GOTO T26
DECFSZ REG1,1
GOTO T36
GOTO MAIN
;-----------------------------------------------------------------
;APAGADO
;-----------------------------------------------------------------
LOOK7 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 7 Ó
GOTO MAIN
I BTFSC PORTA,1
GOTO I
BCF PORTB,0
GOTO CREG7
CREG7 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T37 MOVLW .86
MOVWF REG2
T27 MOVLW .88
MOVWF REG3
T17 BTFSC PORTA,1
GOTO LOOK9
DECFSZ REG3,1
GOTO T17
DECFSZ REG2,1
GOTO T27
DECFSZ REG1,1
GOTO T37
GOTO MAIN
;-----------------------------------------------------------------
;RESET
;-----------------------------------------------------------------
LOOK8 BSF PORTB,0
BTFSS PORTB,4 ;1
GOTO MAIN
BTFSS PORTB,5 ;1
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 7
GOTO MAIN
J BTFSC PORTA,1
GOTO J
BCF PORTB,0
GOTO CREG8
CREG8 MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T38 MOVLW .86
MOVWF REG2
T28 MOVLW .88
MOVWF REG3
T18 BTFSC PORTA,1
GOTO LOOK10
DECFSZ REG3,1
GOTO T18
DECFSZ REG2,1
GOTO T28
DECFSZ REG1,1
GOTO T38
GOTO MAIN
;-----------------------------------------------------------------
;DIGITO FINAL
;-----------------------------------------------------------------
LOOK9 BSF PORTB,0
BTFSC PORTB,4 ;0
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 8 FINAL Ó
GOTO MAIN
K BTFSC PORTA,1
GOTO K
BCF PORTB,0
GOTO APAGAR
;-----------------------------------------------------------------
;DIGITO FINAL
;-----------------------------------------------------------------
LOOK10 BSF PORTB,0
BTFSC PORTB,4 ;0
GOTO MAIN
BTFSC PORTB,5 ;0
GOTO MAIN
BTFSS PORTB,6 ;1
GOTO MAIN
BTFSS PORTB,7 ;1 DIGITO 8 FINAL
GOTO MAIN
L BTFSC PORTA,1
GOTO L
BCF PORTB,0
GOTO RESED
;-----------------------------------------------------------------
;APAGAR EL EQUIPO
;-----------------------------------------------------------------
APAGAR MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T39 MOVLW .86
MOVWF REG2
T29 MOVLW .88
MOVWF REG3
T19 BTFSC PORTA,1
GOTO MAIN
DECFSZ REG3,1
GOTO T19
DECFSZ REG2,1
GOTO T29
DECFSZ REG1,1
GOTO T39
BSF PORTB,2
CALL RETARDO
BCF PORTB,2
CALL RETARDO
BSF PORTB,2
CALL RETARDO
BSF PORTB,2
BSF PORTA,0
GOTO MAIN
;-----------------------------------------------------------------
;RESETEAR EL EQUIPO
;-----------------------------------------------------------------
RESED MOVLW .86 ;RETARDO DE CASI DOS SEGUNDOS
MOVWF REG1
T3X MOVLW .86
MOVWF REG2
T2X MOVLW .88
MOVWF REG3
T1X BTFSC PORTA,1
GOTO MAIN
DECFSZ REG3,1
GOTO T1X
DECFSZ REG2,1
GOTO T2X
DECFSZ REG1,1
GOTO T3X
BSF PORTB,3
CALL RETARDO
BCF PORTB,3
CALL RETARDO
BSF PORTB,3
CALL RETARDO
BSF PORTB,3
BSF PORTA,0
MOVLW d'10'
MOVWF TIMRES
T_RES CALL RETARDO
DECFSZ TIMRES
GOTO T_RES
BCF PORTA,0
GOTO MAIN
;-----------------------------------------------------------------
;TIEMPO DE RETARDO
;-----------------------------------------------------------------
RETARDO MOVLW .70 ;RETARDO DE CASI UN SEGUNDO
MOVWF REG1
TI3 MOVLW .70
MOVWF REG2
TI2 MOVLW .60
MOVWF REG3
TI1 DECFSZ REG3,1
GOTO TI1
DECFSZ REG2,1
GOTO TI2
DECFSZ REG1,1
GOTO TI3
RETURN
END
---------------------------------------------------------------------------------------------------------------
como pueden ver esta muy,muy basico mi forma de programar y tengo ganas de adentrarme al mundo de C y reducir estos programotas
OJALA ME PUEDAN AYUDAR SALUDOS A TODOS LOS QUE PARTICIPAN EN EL FORO