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:
a partir de aca esta la melodia.. notemos algo..
esta el codigo de la nota.. y su duracion.. un ejemplo:
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:
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..
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:
fijemonos en estas dos lineas:
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
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
ahora la de los tiempos:
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
parece bien no?... pues no.. ¿ que tiene de mal?..
nos falto la duracion de las notas.. pues solo las colocamos.
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.
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.