Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/12/2012 #1


contestar telefono pasado un determinado tiempo
Hola, estoy intentando realizar un programa que conteste el telefono pasado un determinado tiempo. Al entrar una llamada en el telefono recibo una señal de 25Hz y 0-5V. El codigo que he desarrollado es el siguiente pero no funciona me gustaria ver si me dan una mano.

Código:
INICIO
;CONFIGURACION DE PUERTOS Y REGISTROS
			BCF			STATUS,RP1
			BSF			STATUS,RP0
			MOVLW		b'00010001'
			MOVWF		TRISA
			MOVWF		TRISB
			BSF			OPTION_REG,PS0
			BSF			OPTION_REG,PS1
			BSF			OPTION_REG,PS2
			BCF			OPTION_REG,PSA
			BCF			OPTION_REG,4
			BCF			OPTION_REG,5
			BCF			STATUS,RP0
			MOVLW		H'00'
			MOVWF		PORTB

			MOVLW		H'31'
			MOVWF		RING
         	        BCF           	PORTB,6
			BSF			PORTB,7
;-----------------------------------------------
;                  PROGRAMA PRINCIPAL			
;----------------------------------------------- 
ALTO:		BTFSS		PORTB,1
			GOTO			ALTO
			CALL			RETARDO	;retardo de 10mS
			BTFSS		PORTB,1
			GOTO			ALTO
BAJO:			BTFSC		PORTB,1
			GOTO			BAJO
			BSF			PORTB,6

;-----------------------------------------------
;                  SUB-RUTINAS
;-----------------------------------------------
RETARDO
			BCF			INTCON,2
			MOVLW		H'D8'
			MOVWF		TMR0
BUCLE:		BTFSS		INTCON,2
			GOTO			BUCLE
			RETURN       	
		END
17/12/2012 #2

Avatar de Gudino Roberto duberlin

Amigo, cual es el problema?, seria conveniente que subas un esquema electrico sobre la deteccion de llamada.
18/12/2012 #3


En realidad no lo tengo hecho en placa, esto mismo lo simulo en proteus y utilizo un generador de pulso de 25Hz y 0-5V.

---------- Actualizado después de 12 minutos ----------

y el problema es que queda encerrado el programa no llega en ningun momento en prender RB6
18/12/2012 #4

Avatar de Gudino Roberto duberlin

Bueno Amigo, en realidad NO es necesario, detectar la señal de 25Hz., pues ya que la misma posee una amplitud considerable, simplemente utilizas un condensador para separar la componente de continua, luego rectificas, filtras y acondicionas la señal, para obtener un estado logico alto o bajo segun, y aplicas directamente a una entrada del PIC.
18/12/2012 #5


antes que nada gracias por la respuesta. Esta señal se da en intervalos de 1seg y 5seg sin señal, eso ocurre cuando se detecta una señal. la idea es descontar un valor puesto previamente en un registro para poder contar cierta cantidad de pulsos y luego activar RB6. No puse todo ese proceso porque ni si quiera lo hace con un solo pulso. Como dije antes queda colgado.
18/12/2012 #6

Avatar de Gudino Roberto duberlin

Bueno Amigo, una vez que obtienes la señal convertida a estados logicos, solo debes contar la cantidad de veces que cambia de estado y esta sera analoga a la cantidad de "timbradas", durante la llamada.
18/12/2012 #7


Si pero el problema es que no hace nada. Se queda encerraado antes de llegar a prender RB6
19/12/2012 #8

Avatar de Gudino Roberto duberlin

Amigo, donde declaras? a STATUS, RP0, RP1, etc.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.