Вы находитесь на странице: 1из 4

Llamada a Pulsos

Llamar a un telfono por pulsos, es relativamente sencillo, ya que lo q se necesita, es colgar


y descolgar la lnea.
En el Presente Proyecto, se plantea, que usando un clsico teclado de 3x4 (que funciona de
manera similar al de 4x4)
se llame a un numero, y que luego, se le haga escuchar los pulsos que uno quiera, o sino,
simplemente se cuelgue.
Para esto, debemos saber que la lnea de telefnica normalmente tiene una tensin alta 45
- 60v , y cuando nosotros levantamos el auricular, hacemos que este voltaje cambie a 15-
25V. Ahora, nosotros debemos emular esto, con la lnea telefnica, y la manera de hacerlo
es colocando una resistencia de 1M entre los terminales




Donde Como se ve en el esquema, si presionamos el witch podemos colgar y descolgar.
Ahora, que ya tenemos la idea formada. Nosotros necesitamos que esto sea de manera
automtica. y es para esto que vamos a usar un Micro rel, (Este es parecido a un rel, pero
consume menos), tal que si lo polarizamos mediante un transformador BC547, podamos
mediante un pin de un uCo, controlar el cuelgue y descuelgue de la Lnea telefnica. El
Esquema que vamos ha usar es el siguiente.



Donde:
#: Servir para colgar la lnea, y el valor que tiene en HEX segn la tabla, que pusimos en
el tutorial de manejo de teclado es 0x0E
*: Servir para descolgar la lnea, y el valor que tiene en HEX segn la tabla, que pusimos
en el tutorial de manejo de teclado es 0x0F
OBS: En el esquema de arriba, me falto colocarle la resistencia de 1M entre la lnea
verde y la lnea roja. ya que sino ocasionara un corto en la lnea telefnica
Entonces nuestro Programa lo que har, ser revisar el estado del teclado, y si se presiono
una tecla, 0 - 9, enva secuencia de pulsos, (10 para 0, 1 para 1, 2 para 2, ....., 9 para 9),
respectivamente a intervalos de 50ms entre pulso y pulso; y 500ms entre numero y nmero

LIST P=16F628
RADIX HEX
#include <P16F628.INC> ;Se incluye la definicion de los registros

cblock 0x20
endc

#include <macros.inc> ;Incluyo mis macros

ORG 0x00 ;Inicio en el Vector de Reset
goto INICIO
ORG 0x05

;Incluyo librerias de Teclado
;Aqui hay 2 variables, TECLA y flag_tecla
;TECLA=> tecla Pressionada
;flag_tecla => Indica si se presiono Tecla
#include <teclado.inc>

;Incluye Distintos Retardos por Software
;ret10ms ret20ms ret30ms ret40ms
;ret50ms ret100ms ret200ms ret250ms
;ret500ms ret1seg
#include <retardos.inc>

INICIO
movlw 7
movwf CMCON ;PORTA =Entradas Digitales

bsf STATUS,RP0 ; Paso al Banco 1
bcf STATUS,RP1
clrf PORTA ;Puerto A Salidas
clrf VRCON ;A/D Voltaje de Referencia Desabilitado
bcf STATUS,RP0 ;Regreso al Banco 0

call CONFIGURA_TECLADO
repite
call LEO_TECLADO
compara flag_tecla,0
jz repite
;Si se Presiono Tecla
compara TECLA,0x0E
jz es_asterisco
compara TECLA,0x0F
jz es_michi
compara TECLA,0
jnz pulsos
mov TECLA,.10
;hago los pulsos respetivos
pulsos
bcf PORTA,0 ;Cuelgo la Linea
ret50ms
bsf PORTA,0 ;Descuelgo la linea
ret50ms
decf TECLA,F ;Decremento variable,TECLA
jnz pulsos
goto sigue2

es_asterisco ;Cuelgo la Linea Telefonica
bcf PORTA,0;
goto sigue2

es_michi ;Descuelgo la Linea Telefnica
bsf PORTA,0
sigue2
ret50ms
goto repite
END

Ahora para la simulacin, en Proteus-Isis, no tengo el modelo del Micro rel, pero si tengo
el del rel, as que le coloco un rel y como propiedad le pongo de que sea de 5V (por
Default es 12V). y lo simulo. Por ejemplo abajo se muestra el resultado, cuando se Presiono
'0'

Вам также может понравиться