Autor Tema: problemilla con recepcion de pulsos con pic16f84a  (Leído 1628 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado piktron

  • PIC10
  • *
  • Mensajes: 4
problemilla con recepcion de pulsos con pic16f84a
« en: 24 de Mayo de 2007, 16:34:52 »
Que tal amigos, tengo un problema con un tren de pulsos que rececibe un pic126f84a, mi problema es el siguiente:

Estoy probando un circuito el cual activa un buzer por medio de tonos, los tonos estan siendo proporcionados por una bocina de un telefono el cual entra en un decodificador de tonos(MT8870D) y me genera señales hexadecimales(4 bits)y uno que genera un tren de pulsos, estas señales de salida entran al pic, pero como el programa lo estoy haciendo muy basico (no tengo mucha experiencia :?), no se como recibir ese tren de pulsos, de forma que el pic me lo reciba como si fuera un nivel alto y no una serie de niveles.

Si me pudieran aconsejar que deberia hacer o que consultar. de antemano gracias :-/
EL QUE BUSCA ENCUENTRA..... sino siguele buscando

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: problemilla con recepcion de pulsos con pic16f84a
« Respuesta #1 en: 24 de Mayo de 2007, 19:25:14 »
Podes aclarar un poco mejor como es la señal que te envía en el caso que debieras mostrar un uno y en el caso en que consideres que es un cero? 
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado piktron

  • PIC10
  • *
  • Mensajes: 4
Re: problemilla con recepcion de pulsos con pic16f84a
« Respuesta #2 en: 01 de Junio de 2007, 16:10:54 »
jeje :lol: 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. :mrgreen:

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 :-/ :-/ :)
EL QUE BUSCA ENCUENTRA..... sino siguele buscando