Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISPOSITIVOS PROGRAMABLES
GRUPO 4BV2
23/ABRIL/2020.
ALUMNOS
PÉREZ GONZÁLEZEDSONOSVALDO
Reproducir inteligiblemente a través del único buzer que contiene la PIC16F887 los
primeros tres minutos del primer movimiento de la sonata Moonlight compuesta por
Ludwig Van Beethoven. Mediante la modulación de la frecuencia recibida por el
zumbador.
Introducción
Marco Teórico
Escala musical
Una escala, a nivel general, consiste en una secuencia de elementos. En este caso, las
escalas musicales son secuencias de sonidos en serie que se encuentran ordenados
según su altura; cada sonido nuevo que aparece es más agudo que el anterior a medida
que la escala asciende, y más grave a medida que la escala desciende, como se
ejemplifica en la figura 1.
Clave de sol
Nótese que la primera línea (la inferior) corresponde a la nota mi mientras que el primer
espacio inferior a fa. En otras palabras la notas musicales siguen sobre el pentagrama
(línea-espacio-línea) el orden natural (do, re, mi, fa, sol, la y si). Como se puede observar
en la figura 1.1, se puede escribir debajo de la primera línea (línea inferior) y sobre la
quinta línea (superior) para escribir notas más agudas o graves:
Figura 1.1 Clave de sol con todas las notas posibles para esta clave [2].
Clave de fa
La clave de fa es utilizada por instrumentos graves como el contrabajo, el violonchelo, el
fagote y el trombón.
En la figura 1.2 se puede ver la nota musical representada por cada una de las líneas y
espacios de un pentagrama con clave de fa. También se han incluido las líneas
adicionales.
Figura 1.2 Clave de fa con todas las notas posibles para esta clave. El do más
agudo que aparece sobre la primera línea adicional superior es el do central [3].
2
Combinando un pentagrama con clave de sol y otro con clave de fa podemos escribir
cualquier nota, desde la más grave hasta la más aguda, ver figura 1.3.
Figura 1.3 El piano requiere del uso combinado de la clave de sol más
la clave de fa para alcanzar los tonos de hasta 4 octavas [4].
El último do de clave de fa (el más agudo) y el primero de clave de sol son la misma nota.
Es el do central. Cabe mencionar que la música para piano se escribe normalmente
usando un pentagrama en clave de sol y otro en clave de fa.
Simbología
La duración de un sonido determinado o de un silencio se representa mediante símbolos,
llamados figuras y silencios respectivamente. El símbolo de una figura musical está
formado por tres partes: cabeza, plica y corchete.
Así como existen estas figuras para representar la duración del sonido, existen también
signos que representan la duración del silencio. Así, se tiene silencio de redonda, silencio
de blanca, silencio de negra, silencio de corchea, de semicorchea, de fusa y semifusa. La
duración de los silencios es equivalente a la de las figuras correspondientes. Lo anterior
se representa en la figura 1.4 [5]
3
Espectro audible
El espectro audible, también denominado campo tonal, se encuentra conformado por las
audiofrecuencias, es decir, toda la gama de frecuencias que pueden ser percibidas por el
oído humano. Un oído sano y joven es sensible a las frecuencias comprendidas entre los
20 Hz y los 20 kHz. No obstante, este margen varía según cada persona y se reduce con
la edad (se le denomina presbiacusia a la pérdida de audición con la edad).
El espectro audible varía según cada persona y se altera con la edad por eso es muy
importante cuidarlo y no exponerlo a sonidos o ruidos muy fuertes que pueden dañarlo
irremediablemente. El espectro audible puede ser subdividido en función de los tonos:
a)
b)
Figura 1.5 En a) señal de sonido agudo emitida por una señal con frecuencia alta,
mientras que en b) se presenta un sonido grave por tener una señal de frecuencia baja.
Para calcular la frecuencia de las notas musicales se debe dividir en octavas el espectro
audible antes mencionado, y a su vez las octavas en notas. Se tienen siete notas
musicales, cada una de ellas tendrá una frecuencia determinada de acuerdo a la octava
que pertenezca. Cabe mencionar que la octava inferior de una nota tendrá la mitad de
frecuencia y la octava superior tendrá el doble de frecuencia.
Por ejemplo la nota la de la tercera octava tiene una frecuencia de 440 Hz, mientras que
la de la cuarta octava tiene 880 Hz, en la segunda octava 220 Hz, etc. Por lo tanto
sabiendo la frecuencia de una nota de cualquiera de las ocho octavas de un piano de
cuatro cuartos se puede calcular la frecuencia de la misma nota para cualquier octava.
4
En la tabla 2 se presentan las frecuencias en Hertz de las siete notas musicales existentes
más cinco de las que pertenecen a las notas sostenidas.
Para calcular el periodo de cada nota se sustituye la frecuencia conocida en la fórmula (1);
Y posteriormente el resultado se debe dividir entre 2, ya que es como debe estar; en alto o
en bajo para la PIC16F887, finalmente para obtener el resultado en microsegundos se
debe multiplicar por 1𝑥106.
Se divide T/2;
5
Tabla 3. Periodo en microsegundos us de las primeras octavas requeridas para
reproducir la sonata Moonlight en el buzzer de la PIC16F887 [7].
Las notas musicales pueden ser generadas usando señales cuadradas trabajando a la
frecuencia de la nota deseada. Para reproducir una melodía con el zumbador pasivo de un
microcontrolador, lo único que se requiere es la partitura ya que ella tiene toda la
información de la duración y tipo de nota.
Buzzer o zumbador
Un zumbador (buzzer en inglés) es un dispositivo de señalización de audio, capaz de
convertir la energía eléctrica en sonido. Existen principalmente 2 tipos de zumbadores:
electromecánicos y piezoeléctrico.
Las aplicaciones típicas de los zumbadores incluyen dispositivos de alarmas,
temporizadores, como indicador de confirmación en respuesta a la entrada de datos por
parte del usuario, como un clic del ratón o la tecla, también se utilizan ampliamente en
ordenadores, impresoras, fotocopiadoras, alarmas, juguetes electrónicos, equipos de
automoción electrónico, teléfonos, temporizadores y otros productos electrónicos para los
dispositivos de sonido.
Mediante la modulación de la frecuencia recibida por el zumbador es posible generar
diferentes tonos musicales, y utilizarlos de acuerdo a las necesidades del proyecto. A
diferencia del zumbador activo este tipo de zumbador forzosamente requiere el uso de
una señal modulada para su funcionamiento. En la figura 1.6 se muestra un buzzer
común tipo pasivo.
6
El modelo AR-BUZZERP es un generador pasivo de señales de audio también conocido
como zumbador pasivo. Para conocer las principales características de este buzzer ver
tabla 3.
Tabla 3.0 Principales especificaciones técnicas del buzzer modelo AR-BUZZERP [1].
Especificaciones Técnicas
Dimensiones 25 mm x 15 mm x 10 mm
FR-4 (FR-4 es un material compuesto de tela de fibra de
Material vidrio tejida con un aglutinante de resina epoxi resistente a
las llamas (autoextinguible).
Peso 2 gramos
Voltaje de operación 5 Vcc
Corriente de operación 150 mA
Tipo de dispositivo Piezoeléctrico
Modo de operación Pasivo
7
Figura 1.7 Corte transversal en un zumbador tipo magnético [10].
Figura 1.1 Representación gráfica del movimiento diametral de las placas de material
piezoeléctrico cuando una tensión es aplicada [10].
10
A continuación, se presenta el diagrama de flujo del programa
PROCESSOR 16F887
__CONFIG 0X2007,0X23E4
__CONFIG 0X2008,0X0100
INCLUDE <P16F887.INC> Configuración inicial
ORG 0X0000 de la PIC16f887.
CLRF PORTC
BCF PORTB,RB4
BSF STATUS,RP0
BSF STATUS,RP1 ;B3.
CLRF ANSEL
;--------------------------------------------------------------------------
11
MOVLW 0X08 ; SE CARAGA A W CON LO QUE HAYA EN EL
REGISTRO 0X08.
MOVWF 0X71 ; SE CARGA AL REGISTRO 0X71 CON W.
CALL MI ;X8
DECFSZ 0X71,F
GOTO $-4
MOVLW 0X02
MOVWF 0X71
CALL LA_0
CALL DO
CALL MI ;X2
DECFSZ 0X71,F
GOTO $-4
MOVLW 0X02
MOVWF 0X71
CALL LA_0
CALL RE
CALL FA ;X2
DECFSZ 0X71,F
GOTO $-4
CALL SOL_0
CALL SI_0
CALL FA
CALL SOL_0
CALL DO
CALL MI
CALL SOL_0
CALL DO
CALL RE
CALL FA_0
12
CALL SI_0
CALL RE
CALL MI
CALL SOLS_0
CALL DO
CALL SOL_0
CALL DO
CALL T1S
CALL SOL_0
CALL DO
CALL MI
CALL SOL_0
CALL DO
CALL MI
CALL SOL
13
SOL
CALL RE
CALL FA
MOVLW 0X03
MOVWF 0X71
CALL SOL_0
CALL RE
CALL FA ;X3
CALL SOL
DECFSZ 0X71,F
GOTO $-4
MOVLW 0X02
MOVWF 0X71
CALL SOL_0
CALL DO
CALL MI ;X2
DECFSZ 0X71,F
MOVLW 0X02
MOVWF 0X71
CALL LA_0
CALL DO
CALL FA ;X2
DECFSZ 0X71,F
14
CALL
GOTO $-4
MOVLW 0X02
MOVWF 0X71
CALL SOL_0
CALL SI_0
CALL MI ;X2
DECFSZ 0X71,F
GOTO $-4
MOVLW 0X02
MOVWF 0X71
CALL LA_0
CALL SI_0
CALL RE ;X2
DECFSZ 0X71,F
GOTO $-4
CALL SOL_0
CALL SI_0
CALL MI
MOVLW 0X03
MOVWF 0X71
CALL SOL_0
CALL SI_0
CALL MI ;X3
DECFSZ 0X71,F
15
GOTO $-4
MOVLW 0X03
MOVWF 0X71
CALL SOL_0
CALL SI_0
CALL MI ;X3
DECFSZ 0X71,F
GOTO $-4
CALL SOL
CALL MI
CALL SOL
MOVLW 0X03
MOVWF 0X71
CALL SOL_0
CALL SI_0
CALL FA ;X3
DECFSZ 0X71,F
GOTO $-4
CALL SOL
CALL FA
CALL SOL
CALL SOL_0
CALL DO
16
CALL
CALL MI
CALL SOL_0
CALL SI_0
CALL MI
CALL SOL
CALL DO
CALL MI
CALL FA
CALL FA
CALL SOL
CALL FA
CALL FA
CALL FA
MOVLW 0X02
MOVWF 0X71
CALL SI
CALL RE
CALL FA ;X3
DECFSZ 0X71,F
GOTO $-4
CALL SI_0
CALL RE_S
17
CALL FA
CALL SI_0
CALL RE
CALL FA
CALL SI_0
CALL MI
CALL SOL
MOVLW 0X02
MOVWF 0X71
CALL SI_0
CALL MI
SOLS ;X3
DECFSZ 0X71,F
GOTO $-4
CALL SI
CALL RE
CALL FA
MOVLW 0X02
MOVWF 0X71
CALL SI_0
CALL RE
CALL FA ;X3
18
CALL
DECFSZ 0X71,F
GOTO $-4
CALL SI
CALL RE
CALL FA
MOVLW 0X02
MOVWF 0X71
CALL SI_0
CALL MI
CALL SOL
DECFSZ 0X71,F
GOTO $-4
CALL SI
CALL MI
CALL SOL
MOVLW 0X02
MOVWF 0X71
CALL SI_0
CALL RE
CALL FA ;X2
DECFSZ 0X71,F
GOTO $-4
CALL SI
19
CALL RE
CALL MI
CALL SI_0
CALL RE
CALL FA
GOTO TERMINA
:------------------------------------------------------
; OCTAVA 0
;------------------------------------------------------
FA_0:
CLRF W
MOVLW 0X2C
MOVWF 0X70
CALL TFA
NOP NOP
BCF PORTB,RB4
CALL TFA
NOP
NOP
DECFSZ 0X70,F
GOTO OTROFA0
RETURN
;------------------------------------------------------
SOL_0:
CLRF W
MOVLW 0X31
MOVWF 0X70
OTROSOL0 BSF PORTB,RB4
CALL TSOL
NOP
20
CALL
NOP
BCF PORTB,RB4
CALL TSOL
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSOL0
RETURN
;------------------------------------------------------
SOLS_0:
CLRF W
MOVLW 0X34
MOVWF 0X70
OTROSOLS BSF PORTB,RB4
CALL TSOLS
NOP
NOP
BCF PORTB,RB4
CALL TSOLS
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSOLS
RETURN
;------------------------------------------------------
LA_0:
CLRF W
MOVLW 0X37
MOVWF 0X70
OTROLA0 BSF PORTB,RB4
CALL TLA
NOP
NOP
BCF PORTB,RB4
CALL TLA
NOP
NOP
DECFSZ 0X70,F
GOTO OTROLA0
RETURN
;------------------------------------------------------
LAS_0:
CLRF W
MOVLW 0X3A
21
MOVWF 0X70
OTROLAS0 BSF PORTB,RB4
CALL TLAS
NOP
NOP
BCF PORTB,RB4
TLAS
NOP
NOP
DECFSZ 0X70,F
GOTO OTROLAS0
RETURN
;------------------------------------------------------
SI_0:
CLRF W
MOVLW 0X3D
MOVWF 0X70
OTROSI0 BSF PORTB,RB4
CALL TSI
NOP
NOP
BCF PORTB,RB4
CALL TSI
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSI0
RETURN
;------------------------------------------------------
; OCTAVA 1
;------------------------------------------------------
DO:
CLRF W
MOVLW 0X41
MOVWF 0X70
OTRODO1 BSF PORTB,RB4
CALL T1DO
NOP
NOP
BCF PORTB,RB4
CALL T1DO
NOP
NOP
22
CALL
DECFSZ 0X70,F
GOTO OTRODO1
RETURN
;------------------------------------------------------
DOS:
CLRF W
MOVLW 0X45
MOVWF 0X70
OTRODOS1 BSF PORTB,RB4
CALL T1DOS
NOP
NOP
BCF PORTB,RB4
CALL T1DOS
NOP
NOP
DECFSZ 0X70,F
GOTO OTRODOS1
RETURN
;------------------------------------------------------
RE:
CLRF W
MOVLW 0X49
MOVWF 0X70
OTRORE1 BSF PORTB,RB4
CALL T1RE
NOP
NOP
BCF PORTB,RB4
CALL T1RE
NOP
NOP
DECFSZ 0X70,F
GOTO OTRORE1
RETURN
;------------------------------------------------------
RE_S:
CLRF W
MOVLW 0X4E
MOVWF 0X70
OTRORES1 BSF PORTB,RB4
CALL T1RES
NOP
23
NOP
BCF PORTB,RB4
CALL T1RES
NOP
NOP
DECFSZ 0X70,F
GOTO OTRORES1
RETURN
;------------------------------------------------------
MI:
CLRF W
MOVLW 0X52
MOVWF 0X70
OTROMI1 BSF PORTB,RB4
CALL T1MI
NOP
NOP
BCF PORTB,RB4
CALL T1MI
NOP
NOP
DECFSZ 0X70,F
GOTO OTROMI1
RETURN
;------------------------------------------------------
FA:
CLRF W
MOVLW 0X57
MOVWF 0X70
OTROFA1 BSF PORTB,RB4
CALL T1FA
NOP
NOP
BCF PORTB,RB4
CALL T1FA
NOP
NOP
DECFSZ 0X70,F
GOTO OTROFA1
RETURN
;------------------------------------------------------
FAS:
CLRF W
MOVLW 0X5D
24
MOVWF 0X70
OTROFAS1 BSF PORTB,RB4
CALL T1FAS
NOP
NOP
BCF PORTB,RB4
CALL T1FAS
NOP
NOP
DECFSZ 0X70,F
GOTO OTROFAS1
RETURN
;------------------------------------------------------
SOL:
CLRF W
MOVLW 0X62
MOVWF 0X70
OTROSOL1 BSF PORTB,RB4
CALL T1SOL
NOP
NOP
BCF PORTB,RB4
CALL T1SOL
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSOL1
RETURN
;------------------------------------------------------
SOLS:
CLRF W
MOVLW 0X68
MOVWF 0X70
OTROSOLS1 BSF PORTB,RB4
CALL T1SOLS
NOP
NOP
BCF PORTB,RB4
CALL T1SOLS
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSOLS1
RETURN
;------------------------------------------------------
LA:
CLRF W
MOVLW 0X6E
MOVWF 0X70
25
OTROLA1 BSF PORTB,RB4
CALL T1LA
NOP
NOP
BCF PORTB,RB4
CALL T1LA
NOP
NOP
DECFSZ 0X70,F
GOTO OTROLA1
RETURN
;------------------------------------------------------
LAS:
CLRF W
MOVLW 0X75
MOVWF 0X70
OTROLAS1 BSF PORTB,RB4
CALL T1LAS
NOP
NOP
BCF PORTB,RB4
CALL T1LAS
NOP
NOP
DECFSZ 0X70,F
GOTO OTROLAS1
RETURN
;------------------------------------------------------
SI:
CLRF W
MOVLW 0X7B
MOVWF 0X70
OTROSI1 BSF PORTB,RB4
CALL T1SI
NOP
NOP
BCF PORTB,RB4
CALL T1SI
NOP
NOP
DECFSZ 0X70,F
GOTO OTROSI1
RETURN
;------------------------------------------------------
; OCTAVA 1
;------------------------------------------------------
26
; TIEMPO EN ALTO PARA DO 1ERA OCTAVA 7645 us
T1DO: MOVLW .18
MOVWF 0X61
MOVLW .60
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA DOS 1ERA OCTAVA 7215 us
T1DOS: MOVLW .26
MOVWF 0X61
MOVLW .39
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA RE 1ERA OCTAVA 6810 us
T1RE: MOVLW .20
MOVWF 0X61
MOVLW .48
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA RES 1ERA OCTAVA 6428 us
T1RES: MOVLW .8
MOVWF 0X61
MOVLW .114
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA MI 1ERA OCTAVA 6067 us
T1MI: MOVLW .7
MOVWF 0X61
MOVLW .123
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA FA 1ERA OCTAVA 5727 us
T1FA: MOVLW .44
MOVWF 0X61
MOVLW .18
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA FAS 1ERA OCTAVA 5405 us
T1FAS: MOVLW .4
27
MOVWF 0X61
MOVLW .192
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA SOL 1ERA OCTAVA 5102 us
T1SOL: MOVLW .76
MOVWF 0X61
MOVLW .9
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA SOL# 1ERA OCATAVA 4815 us
T1SOLS: MOVLW .4
MOVWF 0X61
MOVLW .171
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA LA 1ERA OCTAVA 4545 us
T1LA: MOVLW .5
MOVWF 0X61
MOVLW .129
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA LAS 1ERA OCTAVA 4290 us
T1LAS: MOVLW .23
MOVWF 0X61
MOVLW .26
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA SI 1ERA OCTAVA 4049 us T1SI:
MOVLW .5
MOVWF 0X64
MOVLW .1
MOVWF 0X65
MOVLW .73
28
MOVWF 0X66
CALL ST3V
RETURN
; TIEMPO EN ALTO PARA FA 0CTAVA 0 11453 us
TSOL: MOVLW .1
MOVWF 0X64
MOVLW .41
MOVWF 0X65
MOVLW .35
MOVWF 0X66
CALL ST3V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA SOL# 0CTAVA 0 9631 us
TSOLS: MOVLW .74
MOVWF 0X61
MOVLW .18
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA LA OCTAVA 0 9091 us
TLA: MOVLW .89
MOVWF 0X61
MOVLW .14
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA LA# OCTAVA 0 8580 us
TLAS: MOVLW .84
MOVWF 0X61
MOVLW .14
MOVWF 0X62
CALL ST2V
RETURN
;------------------------------------------------------
; TIEMPO EN ALTO PARA SI OCTAVA 0 8099 us
TSI: MOVLW .6
MOVWF 0X61
MOVLW .192
MOVWF 0X62
CALL ST2V
29
RETURN
;------------------------------------------------------
; SUBRUTINAS DE TIEMPO
; SUBRUTINA 1S
T1S: MOVLW .11
MOVWF 0X64
MOVLW .147
MOVWF 0X65
MOVLW .88
MOVWF 0X66
CALL ST3V
RETURN
;------------------------------------------------------
; SUBRUTINA 1S
T50MS: MOVLW .9
MOVWF 0X64
MOVLW .3
MOVWF 0X65
MOVLW .222
MOVWF 0X66
CALL ST3V
RETURN
;------------------------------------------------------
TERMINA
BCF PORTB,RB4
GOTO $
INCLUDE <H:\9o\Dispotivos Programaveis\P2.1 Moonlight\SUBTIEMPO.asm> ; EN ESTA LÍNEA SE INVOCA
AL CÓDIGO DE LA SUBRUTINA DE TIEMPO CON LA DIRECCIÓN EN DONDE SE ENCUENTRA DICHO
ARCHIVO.
END ; FINALIZA EL PROGRAMA
----------------------------------------------------------------------------------------------------------------------------------------
Resultados
https://www.youtube.com/watch?v=iWAE3I_x20s&feature=youtu.be
30
Conclusiones individuales
Comentarios
Dado que el sistema únicamente ofrece un buzzer, solo fue posible reproducir por medio
de este una nota musical a la vez, cuando en la realidad se toca otra casi al mismo
tiempo en la clave de fa, perdiendo de este modo fidelidad pero no inteligibilidad de la
melodía. Si las condiciones lo hubiesen permitido, conectando un buzzer y unas líneas de
código más se hubiera logrado un mayor acercamiento a la composición real.
Referencias
31
[3] Imagen recuperada de: http://www.teoria.com/es/referencia/c/clave-fa.php
[6] Sonido y grabación. Introducción a las técnicas sonoras, McCormick, Tim, Rumsey,
Francis.
32