PRÁTICA EM ASSEMBLY 8051
MELOKIT - Gerando melodias com AT89C2051
Aplicações:
- Caixinha de Música Eletrônica
- Campainha Musical
- Propaganda
(exemplo: caminhão de gás)
- Brinquedos
Dentre os circuitos eletrônicos que mais fascinam, além daqueles que geram efeitos visuais, sem dúvida são os de efeitos sonoros. Este apresentado aqui é capaz de tocar várias melodias diferentes que só dependem da gravação dos códigos certos em posições predeterminadas da memória de programa (FLASH) do microcontrolador AT89C2051 ou AT89C4051. Eventualmente, se quiserem, podem usar o AT89S52 ou qualquer outro da família MCS-51
O programa é bastante flexível em relação ao endereço inicial de cada melodia. Ela pode se iniciar nos endereços determinados por R3 e R2, destacados em amarelo.
O destaque em azul é para alterar o tempo de duração mínima de cada nota. Se o tempo é de 50mS e vc precisa que fique tocando por 3 segundos, não precisa alterar aqui... basta colocar na tabela da melodia o número de vezes que a nota deve tocar continuamente.
Ex: db 60,22,10,00,05,10...
Tocará 3 seg. da nota F#6 (60x50mS)
Ficará 500mS em silêncio. (10x50mS)
Tocará 250mS da nota F#5 (5x50mS)
Veja todos os códigos das notas, de 00=mudo a 39=G#7 na tabela de notas, com as frequências já calculadas para um cristal de 12MHz. Outros cristais requerem um novo cálculo dos valores de recarga do timer e dos tempos.
Aqui é a parte do programa responsável pelo controle da melodia que está sendo executada. A linha alaranjada pode ser retirada, pois só serve para mostrar nos LEDs da placa de teste, em binário, o código da nota que está sendo executada.
A linha verde verifica se é para ficar em silêncio (nota muda) e salta para a respectiva rotina ou para a execução de uma nota sonora (playnota).
Na próxima página, a tabela de notas e os códigos para as melodias apresentadas no vídeo no início desta página. Também dicas para a etapa de saída e o link para download do programa em HEX ou BIN para gravar no microcontrolador.