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

Temas similares

26/06/2010 #1

Avatar de idontcar3

Caja musical PIC16F84A
he visto que hay un tema aca con este mismo asunto pero la solucion no es la que muchos esperan y con esas 5000 visitas.. decidi hacer este tema que ojala ayude a muchos con esto.

se trata de hacer una "caja musical" con un pic.

asi podremos tener una melodia con un pic, a muchos de seguro que les provoco hacerse algo asi...

pues es algo complejo.. agarrense..

yo tengo la version 7.2 de ISIS Proteus y buscando entre los ejemplos encontre un circuito de timbre con dos melodias



adentro se tiene el circuito, codigo ASM, el Hex listo para el PIC y etc etc..

utiliza el pic 16f84A.

bueno ahora.. ¿ y si no me gustan esas dos melodias?, ¿como me hago las mias?

enhorabuena

pues me pase 2 semanas aprendiendo codigo ASM y editando probando y demas ese codigo que tiene asi que.. manos a la obra

probamos el circuito.. lo vemos.. analizamos y demas.. ahora.. para nuestra melodia, recomiendo el MPlab de microchip, muy bueno.. y como un festival de musica que huvo hace poco aca, completamente gratis.

entonces, abrimos Doorbell.asm y nos vamos a esta linea:

Código:
; Tune 0 Data
; Bach 'Badinerie' from Suite No 2
a partir de aca esta la melodia.. notemos algo..

esta el codigo de la nota.. y su duracion.. un ejemplo:

Código:
	retlw 0x1A	;D
	retlw 0x3C	;120
	retlw 0x17	;B
	retlw 0x3C	;120
eso del 120 no quiere decir que dura 120 milisegundos ni nada de eso.. es, basicamente, la duracion de la nota, muscalmente hablando.. miremos esto:



uan redonda.. dura lo mismo que dos blancas, una blanca lo mismo que 2 negras, y por consiguiente, una redonda dura lo mismo que 4 negras

algo confuso.. lo se..

lo que esto quiere decir:

Código:
	retlw 0x1A	;D
	retlw 0x3C	;120
	retlw 0x17	;B
	retlw 0x3C	;120
es que se tocara la nota D (Re) por aproximadamente un segundo, seguida de la nota B (Si) por la misma duracion.. ¿que determina la duracion de la nota?

el tempo amigos..
Wikipedia dijo:
En terminología musical, el tempo (en plural, tempi), movimiento o aire es la velocidad con que debe ejecutarse una pieza de música.
de seguro muchos han visto esto en partituras:



el tempo se traduce a:

la cantidad de notas negras que se tocan en un minuto

la imagen nos dice que se tocan 120 notas negras en un minuto, osea que cada una duraria 0.5 segundos

entonces como supodnre, ud ya tendran su melodia hecha, o la tomaran de otro lado.

asi que fijense en el tempo al que esta y nos vamos a:

Código:
;Routines to play the tunes
playtune0     movlw   0x13
	      movwf   PORTB
	      movlw   0x50
    	      movwf   tempo
	      movlw   tune0 / 0x100
	      movwf   tptrh
	      movlw   tune0 % 0x100
	      movwf   tptrl
	      goto    playtune
fijemonos en estas dos lineas:

Código:
	      movlw   0x50
    	      movwf   tempo
aca en esta instruccion. movlw, cargaremos nuestro tempo.

el que viene marcado es de 80. para fijar el nuestro debemos fijarlo en hexadecimal.. para los que no saben hexadecimal (como yo al principio).

esta pagina pasa de decimal a hexa

entonces con nuestro tempo fijado nos vamos a editar la melodia.

vamos de nuevo a

Código:
; Tune 0 Data
; Bach 'Badinerie' from Suite No 2
recuerden que son dos melodias, pero si quieren eliminan todos los datos de la otra para ahorrar espacio y no le colocan el otro pulsador.

entonces procedemos a editar.

si se fijan, mas arriba en el codigo estan "las notas" pero.. no son esas realmente..me dedique a sacarlas yo mismo.. una a una.. aca se las dejo

Código:
notas

	retlw 0x00	;c2
	retlw 0x01	;c#2
	retlw 0x02	;D2
	retlw 0x03	;D#2
	retlw 0x04	;E2
	retlw 0x05	;F2
	retlw 0x06	;F#2
	retlw 0x07	;G2
	retlw 0x08	;G#2
	retlw 0x09	;A2
	retlw 0x0A	;A#2
	retlw 0x0B	;B2
	retlw 0x0C	;C3
	retlw 0x0D	;C#3
	retlw 0x0E	;D3
	retlw 0x0F	;D#3
	retlw 0x10	;E3
	retlw 0x11	;F3
	retlw 0x12	;F#3
	retlw 0x13	;G3
	retlw 0x14	;G#3
	retlw 0x15	;A3
	retlw 0x16	;A#3
	retlw 0x17	;B3
	retlw 0x18	;C4
	retlw 0x19	;C#4
	retlw 0x1A	;D4
	retlw 0x1B	;D#4
	retlw 0x1c	;E4
	retlw 0x1D	;F4
	retlw 0x1E	;F#4
	retlw 0x1F	;G4
	retlw 0x20	;G#4
	retlw 0x21	;A4
	retlw 0x22	;A#4
	retlw 0x23	;B4
	retlw 0x24	;C5
ahora la de los tiempos:

Código:
tiempos:
	retlw 0x07	;57
	retlw 0x3C	;120x	  0:00.096
	retlw 0x18	;193	  0:00.040
	retlw 0x1B	;218	  0:00.047
	retlw 0x1D	;232	  0:00.049
	retlw 0x78	;240x	  0:00.193
	retlw 0xF0	;480x	  0:00.391
	retlw 0x3E	;498	  0:00.102
	retlw 0x43	;538	  0:00.107
	retlw 0x48	;582	  0:00.116	
	retlw 0x4D	;617	  0:00.129
las que tienen una X son las que encontre mas "reales" a la hora de escribir la musica
la duracion no es de fiarse por que las probe antes y creo que fue entre dos tempos distintos, no se que pasa ahora mi pc que se cualga un poco al grabar y asi no puedo examinar esto

entonces solo queda escribir nuestra melodia.. un ejemplo..

Himno de la alegria (Sinfonía n.º 9, Ludwig van Beethoven
Código:
	retlw 0x1c	;E4
	retlw 0x1c	;E4
	retlw 0x1D	;F4
	retlw 0x1F	;G4
	retlw 0x1F	;G4
	retlw 0x1D	;F4
	retlw 0x1c	;E4
	retlw 0x1A	;D4
	retlw 0x18	;C4
	retlw 0x18	;C4
	retlw 0x1A	;D4
	retlw 0x1c	;E4
	retlw 0x1c	;E4
	retlw 0x1A	;D4
	retlw 0x1A	;D4
parece bien no?... pues no.. ¿ que tiene de mal?..

nos falto la duracion de las notas.. pues solo las colocamos.

Código:
	retlw 0x1c	;E4
	retlw 0x78	;240
	retlw 0x1c	;E4
	retlw 0x78	;240
	retlw 0x1D	;F4
	retlw 0x78	;240
	retlw 0x1F	;G4
	retlw 0x78	;240
	retlw 0x1F	;G4
	retlw 0x78	;240
	retlw 0x1D	;F4
	retlw 0x78	;240
	retlw 0x1c	;E4
	retlw 0x78	;240
	retlw 0x1A	;D4
	retlw 0x78	;240
	retlw 0x18	;C4
	retlw 0x78	;240
	retlw 0x18	;C4
	retlw 0x78	;240
	retlw 0x1A	;D4
	retlw 0x78	;240
	retlw 0x1c	;E4
	retlw 0x78	;240
	retlw 0x1c	;E4
	retlw 0x78	;240
	retlw 0x1A	;D4
	retlw 0x78	;240
	retlw 0x1A	;D4
	retlw 0xF0	;480
notese que la ultima la dejamos sonar de mas por que asi va la cancion.

hasta aca todo bien, ya tenemos nuestra melodia hecha para el pic solo queda compilar a hex y quemar el pic pero se nos va un detalle..

el circuito de proteus esta pensado para un pic con cristal de cuarzo de 1mhz y pues por aca solo consigo de 4mhz ¿en que les afecta que tengan mi misma suerte?.. en mucho..

primero.. las notas seran una o dos octavas mas agudas

lease Octava

y pues la duracion no sera la misma.. sera mucho mas corta, pero me las he arreglado..

adjunto esta un rar con las melodias..

PIC1.mid es la que queria meter al pic pero la duracion de las notas es algo larga.
asi que solo hace falta dejar salir al musico interior para hacer unos arreglos para que la musica sea uniforme como se escucha en PIC2.mid

no encontre otra forma de hacerles llegar esto, no encuentro reproductores para el foro, y menos de midi

con esto todo claro.. para aquellos que tengan otra version de proteus adjunto el rar de la carpeta PIC Doorbell.

bueno espero haber ayudado a otros 5000 mas y ante cualquier duda solo escribir y esperar respuesta.
26/06/2010 #2

Avatar de thenot

Respuesta: Caja musical PIC16F84A
Cuando tenga mas tiempo lo leeré detenidamente y probare, ya que probando es la mejor forma para aprender.. según yo.. :P y de música no cacho una así que esto esta de pelos .. =)

Saludos man.. y gracias.. siga así =D
26/06/2010 #3

Avatar de HADES

Respuesta: Caja musical PIC16F84A
Bueno dire que aprendiste mas Duno! y pues bueno yo si no me hubiera animado a entrarle al ASM y pues bueno te felicito que seguramente mas de alguno se cruzara con esto saludos y segui asi!

HADES
26/06/2010 #4

Avatar de idontcar3

Respuesta: Caja musical PIC16F84A
fijate que con esto fue que aprendi el ASM, todo por el ocio.

dunno va con las dos "N"'s todos nos equivocamos

saludos a ti tambn
27/06/2010 #5

Avatar de fernandoae

Respuesta: Caja musical PIC16F84A
Lindo laburo te mandaste pero esto se puede hacer muy facil con picbasic que ya tiene el comando, hay uno para sacar frecuencias (frec,duracion), uno para ruido rosa a distintas frecuencia o notas.
27/06/2010 #6

Avatar de idontcar3

Respuesta: Caja musical PIC16F84A
fernandoae dijo: Ver Mensaje
Lindo laburo te mandaste pero esto se puede hacer muy facil con picbasic que ya tiene el comando, hay uno para sacar frecuencias (frec,duracion), uno para ruido rosa a distintas frecuencia o notas.
.......

u.u.. pensar que perdi mucho tiempo en esto.. teniendo para sacar la frecuencia de las notas que aca las tengo..


bueno igual aprendi ASM.. revisare eso del picbasic a ver que tal .. muchas gracias fernandoae
27/06/2010 #7

Avatar de Yang

Respuesta: Caja musical PIC16F84A
"la imagen nos dice que se tocan 120 notas negras en un minuto, osea que cada una duraria 0.5 segundos" con esto se puede temporizar los tiempo estandar, bueno gracias por la enseñanza, yo tambien había observado Doorbell.asm pero me complicaba mas en obtener notas de ese tipo
retlw 0x00 ;c2
retlw 0x01 ;c#2
retlw 0x02 ;D2
retlw 0x03 ;D#2
retlw 0x04 ;E2

nomenclatura ingles (frecuencias de cada nota musical), gracias!
27/06/2010 #8

Avatar de idontcar3

Respuesta: Caja musical PIC16F84A
Yang dijo: Ver Mensaje
"la imagen nos dice que se tocan 120 notas negras en un minuto, osea que cada una duraria 0.5 segundos" con esto se puede temporizar los tiempo estandar, bueno gracias por la enseñanza, yo tambien había observado Doorbell.asm pero me complicaba mas en obtener notas de ese tipo
retlw 0x00 ;c2
retlw 0x01 ;c#2
retlw 0x02 ;D2
retlw 0x03 ;D#2
retlw 0x04 ;E2

nomenclatura ingles (frecuencias de cada nota musical), gracias!
pues fijate que asi aprendi yo.. con la notacion inglesa.. me parece mas facil con las primeras 7 letras del ABC que con el poema pero bueno.. como nos podamos entender
25/07/2010 #9


Respuesta: Caja musical PIC16F84A
lo mejor que e encontrado con respecto a melodias con pic puesto que me hacia muchas bolas con el asm muy bune aporte ahora a practica
25/07/2010 #10

Avatar de mecatrodatos

Respuesta: Caja musical PIC16F84A
dejo reproducción de notas obtenidas con el pic basic pro
Archivos Adjuntos
Tipo de Archivo: rar notas con el pic basic pro.rar (1,03 MB (Megabytes), 491 visitas)
25/07/2010 #11

Avatar de idontcar3

Respuesta: Caja musical PIC16F84A
mecatrodatos dijo: Ver Mensaje
dejo reproducción de notas obtenidas con el pic basic pro
tendra ud el codigo fuente?..

me gustaria ojearlo por favor
28/07/2010 #12

Avatar de mecatrodatos

Respuesta: Caja musical PIC16F84A
que tal te dejo el código


Código:
'****************************************************************
'*  Name    :  Programa de Producción de musica 2010: Tema 1    *
'*  Author  : [mecatrodatos                                     *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 28/07/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

'-----------Inicializacion ---------

    define OSC 20           ' Establece la frecuencia de operación del microcontrolador
                            'A 20 MHz.
    TRISB = %11111000          ' Configura RB0 - 3 de PORTB como salida
    
    PORTB = %00000000        ' Establece todos los pines en PORTB en Bajo (0 V).          



' La variable "x" representa la octava nota. La longitud de tiempo que la
' corchea (x) es detereminada por el valor fijado en 200.
' Un cuarto de nota es dos veces una corchea o 2x.

    x var Word 
    
' Estas son las constantes que se utiliza para declarar las frecuencias Como señala.
'Por ejemplo los grupos de autoayuda representa Super G de alta que tiene una frecuencia de 1568 Hz.
    
    shg con  1568
    shef con 1244
    shc con  1046
    shbf con 932
    shaf con 830
    hg con   784
    hf con   698
    hef con  622
    hd con   587
    hc con   523
    hbf con  466
    haf con  415
    g con    392
    f con    349
    ef con   311
    d con    293
    c con    261
    bf con   233
    af con   208
    lg con   196
    lf con   174
    lef con  155
    ld con   146
    lc con   130
    lbf con  116
    laf con  103
    slg con  98
    slf con  87
    slef con 78
    sld con  73
    slc con  65
    
'-------------programa principal------------    
    
    x = 200             ' Una nota de sesiones (x) será de 200 ms largo.
      
  Pause 1000            ' Pausa 1000 ms antes de iniciar la generación de tonos.
    
' linea 1  

  FreqOut 1, x, g       ' Usamos FreqOut Para generar un tono. 1 representa
'pin de salida RB1 en el PIC16F88. "X" simboliza la
'corchea. "G" se define como la frequecy 392 Hz.
                        
  FreqOut 1, x, f       
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 4*x, ef
  FreqOut 1, 4*x, d
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 4*x, ef
  FreqOut 1, 4*x, d
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, g
  FreqOut 1, x, f
  
 'linea 2
 
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 3*x, d
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, x, af
  FreqOut 1, 8*x, ef
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 2*x, hef
  
  'linea 3
  
  FreqOut 1, 2*x, hef
  FreqOut 1, 4*x, hd
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 4*x, hef             
  FreqOut 1, 4*x, hd                         
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 2*x, hd
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  
  'linea 4
  
  FreqOut 1, x, hbf
  FreqOut 1, x, haf
  FreqOut 1, 9*x, hef
  FreqOut 1, 4*x, 0  
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, x, c
  FreqOut 1, x, d 
  FreqOut 1, 2*x, lg 
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, 2*x, c
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, x, c
  FreqOut 1, x, d
  FreqOut 1, 2*x, lg 
  FreqOut 1, x, ef
  FreqOut 1, x, d
  
  'linea 5 
  
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, 2*x, c 
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, x, c
  FreqOut 1, x, d
  FreqOut 1, 2*x, lg
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, d
  FreqOut 1, 2*x, c
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, x, hc
  FreqOut 1, x, hd
  FreqOut 1, 2*x, g
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, 2*x, hc
  
  'linea 6
  
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, x, hc
  FreqOut 1, x, hd
  FreqOut 1, 2*x, g
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, 2*x, hc
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, x, hc
  FreqOut 1, x, hd
  FreqOut 1, 2*x, g
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hd
  FreqOut 1, 2*x, hc
  FreqOut 1, 2*x, hg
  FreqOut 1, 2*x, shC
  
  'linea 7
  
  FreqOut 1, 2*x, shef
  FreqOut 1, 4*x, shg
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 4*x, ef
  FreqOut 1, 4*x, d
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 4*x, ef
  FreqOut 1, 4*x, d
  
  'linea 8
  
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, g
  FreqOut 1, x, f
  FreqOut 1, x, ef
  FreqOut 1, x, c
  FreqOut 1, 3*x, d
  FreqOut 1, x, ef
  FreqOut 1, x, d
  FreqOut 1, x, c
  FreqOut 1, x, bf
  FreqOut 1, x, af
  FreqOut 1, 8*x, ef
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 2*x, hef
  
  'linea 9
  
  FreqOut 1, 2*x, hef
  FreqOut 1, 4*x, hd
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 4*x, hef             
  FreqOut 1, 4*x, hd                         
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hg
  FreqOut 1, x, hf
  FreqOut 1, x, hef
  FreqOut 1, x, hc
  FreqOut 1, 2*x, hd
  FreqOut 1, x, hef
  FreqOut 1, x, hd
  FreqOut 1, x, hc
  FreqOut 1, x, hbf
  FreqOut 1, x, haf
  FreqOut 1, 6*x, hef             
  End
28/07/2010 #13

Avatar de Meta

Respuesta: Caja musical PIC16F84A
Que bueno el proyecto. Eso si, los Chinitos de la suerte y los Japos están mucho con este tipo de temas.
28/07/2010 #14

Avatar de idontcar3

Respuesta: Caja musical PIC16F84A
mecatrodatos dijo: Ver Mensaje
que tal te dejo el código

mm no encuentro mayor diferencia que el microcontrolador..
sera por mi computadora?.. la simulacion en proteus va lenta "due exesive CPU load"

sera esto el micro controlador?

Código:
define xtal 4
device 16f84A
'tempo = 150
'60/150 = duracion de una nota negra
'redonda = 1600
'blanca = 800
'negra = 400
'corchea = 200
'semi corchea = 100
'Ejemplo del comando
'FREQOUT portb.0, 2000, 7200 sacar una frecuencia 
'de 7,2 Khz durante 2 segundos por el Puerto B.0

start:
'primer compas
Freqout portb.0, 400, 659
Freqout portb.0, 200, 493
Freqout portb.0, 200, 523
Freqout portb.0, 400, 587
Freqout portb.0, 200, 523
Freqout portb.0, 200, 493
'segundo compas
Freqout portb.0, 400, 440
Freqout portb.0, 200, 440
Freqout portb.0, 200, 523
Freqout portb.0, 400, 659
Freqout portb.0, 200, 587
Freqout portb.0, 200, 523
'tercer compas
Freqout portb.0, 400, 493
Freqout portb.0, 200, 493
Freqout portb.0, 200, 523
Freqout portb.0, 400, 587
Freqout portb.0, 400, 659
'cuarto compas
Freqout portb.0, 200, 523
Freqout portb.0, 400, 440
Freqout portb.0, 800, 440
'quito compas
pause 200
Freqout portb.0, 400, 587
Freqout portb.0, 200, 698
Freqout portb.0, 400, 880
Freqout portb.0, 200, 783
Freqout portb.0, 200, 698
'sexto compas
Freqout portb.0, 400, 659
pause 500
Freqout portb.0, 200, 523
Freqout portb.0, 400, 659
Freqout portb.0, 200, 587
Freqout portb.0, 200, 523
'tercer compas
Freqout portb.0, 400, 493
Freqout portb.0, 200, 493
Freqout portb.0, 200, 523
Freqout portb.0, 400, 587
Freqout portb.0, 400, 659
'cuarto compas
Freqout portb.0, 200, 523
Freqout portb.0, 400, 440
Freqout portb.0, 800, 440

                                
END
las pausas son los silencios, lo divido en compases para mejor lectura, no quise mandarme a escribir todas las octavas con el var y
10/08/2010 #15


Respuesta: Caja musical PIC16F84A
eh leido atentamete el programa que dejastes pero tengo un duda con una isntrucciones dadas

movwf tempo
movlw tune0 / 0x100

lo q no tengo claro es operador "/" con respecto a la tabla "tune0"; no entiendo que es lo q lee o retorna a "w"

Si puedes me explicas mejor por que usan ese operador.

Gracias
29/09/2010 #16


Respuesta: Caja musical PIC16F84A
Hola. Buen día.
Todo el código esta entendible, pero tengo la misma duda que el compañero @wilor8.
¿Por qué divides y le sacas el modulo ?

movlw tune0 / 0x100
movwf tptrh
movlw tune0 % 0x100

Espero tu respuesta. Gracias.
29/09/2010 #17

Avatar de pepechip

Respuesta: Caja musical PIC16F84A
esos signos son directivas del MPLAB, y se colocan cuando las tablas de datos superan las 256 primeras posiciones de memoria.
10/10/2010 #18


Respuesta: Caja musical PIC16F84A
¿Cómo podemos hacer la conversión de 1Mhz a 4Mhz para el Cristal Oscilador?
Gracias.
14/10/2010 #19

Avatar de Yang

Respuesta: Caja musical PIC16F84A
iirvviinngg dijo: Ver Mensaje
¿Cómo podemos hacer la conversión de 1Mhz a 4Mhz para el Cristal Oscilador?
Gracias.
No entiendo muy bien tu pregunta, podrias reeplantearla.

Si te refieres a convertir un cristal de 1Mhz a un cristal de 4Mhz, no se.
Si te refieres a convertir ese codigo del doorbell de 1Mhz a 4Mhz, el autor del hilo explica muy bien como se logra, usando tablas de la frecuencia de cada nota musical, si tienes un cristal de 4Mhz debes generar tus tablas de duración de los ciclos del micro o por interrupciones, te recomiendo usar el PICTimerCalculator.
20/12/2010 #20


Muy bueno, lo voy a probar. Y para reproducir el sonido que me conviene usar?
¿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.