Paso 17: Cómo funciona
Produce una nota musical al excitar a un altavoz piezoeléctrico con una onda cuadrada. Una salida es alta y el otro es bajo, por cierto tiempo. Después de algún tiempo se invierte en este estado, la salida que va bajo alto y el otro va de alta a baja. El elemento piezo, conectado entre estas dos salidas, ve una onda cuadrada de dos veces la tensión de alimentación a través de él y así produce una nota fuerte, más fuerte que se produce si se utiliza una sola salida.
Las notas musicales se producen variando el retardo entre alternar los alfileres. La tabla de demoras es de acuerdo a los datos tomados del sitio web de Don Lancaster, www.tinaja.com y reproducido aquí. También hizo la rutina de retardo con una resolución de un período de instrucción individual. La frecuencia de la nota se produce por un retraso del software y los números para ser alimentado a esta forma de contrarrestar la tabla que forma la melodía. Un 'cero' indica que se llega al final de la música, y que jugar es para reanudar desde el principio. Un uno indica que es necesario un descanso, y se produce un período de silencio en lugar de un tono.
El período para el cual se hace sonar cada nota se mide en términos del temporizador tmr0. Se encuentra a incrementar desde el reloj de instrucción con un prescaler de 256, el máximo posible. Cinco desbordamientos del registro temporizador TMR0 conforman la longitud de una nota.
Una copia del pedacito más significativo del registro de contador de tiempo se mantiene en (banderas, tmrh) y si la bandera es alta cuando el temporizador MSB es bajo un rollover se considera que han llevado a cabo. Esta comprobación se realiza dentro del bucle que se enmarca dentro de la etiqueta de "para siempre" y la instrucción "goto para siempre".
Se mantiene la nota siguiente de ser traídos en count1. La instrucción "call tabla" vuelve con el retraso de la nota en W. Es ORed con cero para comprobar al final de la melodía. Entonces se verifica para el valor de uno para buscar un descanso. Si ninguno de los dos, el valor de W se pasa a la rutina de retardo.
El flujo del programa en el circuito de generación de nota ha sido ecualizado para tener el mismo número de ciclos para todas las condiciones, excepto el tiempo que tmr0 vuelca. Esto es audible como una especie de tictac en el fondo.
El archivo Hex siempre ha sido probado con un 10F200 y un 10F202 y para trabajar. El código fuente tiene los cambios necesarios a fin de hacerlo apto para un 10F204 o 10F206. También ha sido probado con un 10F206.
Un 10F220 o un 10F222 podría ser utilizado, pero se necesita instrucciones adicionales para apagar los periféricos que no se utilizan y los ajustes del fusible también tendrá que modificarse.
Divertirse y escribir si te las arreglas para conseguir un creador de música para trabajar. Los ocho pines DIP estos micros están disponibles, son fáciles de manejar y funcionan tan bien en este circuito.