TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: manongo_123 en 19 de Diciembre de 2005, 20:11:00
-
hola amigos, hace poco me pidieron un proyecto electronico, de un secuenciador con decenas de juegos. todo bien hasta ahi, solo que no encuentro la manera de conseguir el sonido beep del buzzer mediante el tmr cada vez que presiono un pulsador.
si alguien me pudiera dar un ejemplo a que frecuencia y como ponerlo sin que interfiera al programa se lo agradeceria mucho. el proyecto lo hago en asembler con un pic 16f628 usando uno de sus dos timer.
-
Hola Manongo, si el buzzer es si oscilador, necesitaras de dos pines del pic, para que trabajen opuestos....
y no creo que sea necesario consumir recursos del tmr..., ya que el beep tendra que funcionar cuando esta pulsado, entonces en la misma rutina del antirrebote, por ejemplo dentro de la demora, puedes testear un bit del registro que empleas en la demora, y activas o desactivas las salidas.... y obtendras el sonido 
a modo de ejemplo
suponiendo que empleas una demora como esta
DEMORA ;RETURN
MOVLW .80
MOVWF TIEMPO1
OTRO2
MOVLW .110
MOVWF TIEMPO2
OTRO
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ TIEMPO2,F
GOTO OTRO
DECFSZ TIEMPO1,F
GOTO OTRO2
RETURN
LO REEMPLAZAS POR ESTA DEMORA, DONDE PIN1 Y PIN2 SERIAN LAS PATITAS DEFINIDAS DONDE COLOCAS EL BUZZER
DEMORA
MOVLW .80
MOVWF TIEMPO1
OTRO2
MOVLW .110
MOVWF TIEMPO2
OTRO
BTFSS TIEMPO2,4
GOTO $+4
BSF PIN1
BCF PIN2
GOTO $+4
BCF PIN1
BSF PIN2
NOP
DECFSZ TIEMPO2,F
GOTO OTRO
DECFSZ TIEMPO1,F
GOTO OTRO2
RETURN
![Navidad Navidad]()
Norberto
-
ten en cuenta que es a modo de ejemplo, ya que no se si estas empleando cristal, ni se la frecuencia.... asi que tendras que calcular el periodo para saber la frecuencia del beep, o cambiar el bit que testeas del registro tiempo2,5..... o tiempo2,7...
o tiempo1,X 
Norberto
-
Escrito originalmente por manongo_123
hola amigos, hace poco me pidieron un proyecto electronico, de un secuenciador con decenas de juegos. todo bien hasta ahi, solo que no encuentro la manera de conseguir el sonido beep del buzzer mediante el tmr cada vez que presiono un pulsador.
si alguien me pudiera dar un ejemplo a que frecuencia y como ponerlo sin que interfiera al programa se lo agradeceria mucho. el proyecto lo hago en asembler con un pic 16f628 usando uno de sus dos timer.
Y porque no usas el PWM ?
Te facilitará todo.
Saludos
PD: sabes si el buzzer realmente funciona?