TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: manongo_123 en 19 de Diciembre de 2005, 20:11:00

Título: beep con tMR0 y TMR1
Publicado 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.
Título: RE: beep con tMR0 y TMR1
Publicado por: todopic en 20 de Diciembre de 2005, 09:16:00
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 Sonrisa Gigante

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

Norberto
Título: RE: beep con tMR0 y TMR1
Publicado por: todopic en 20 de Diciembre de 2005, 09:23:00
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  Sonrisa Gigante

Norberto Navidad
Título: RE: beep con tMR0 y TMR1
Publicado por: maunix en 20 de Diciembre de 2005, 09:54:00
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?