Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade de Brasília. Faculdade de Tecnologia. Departamento de Engenharia Elétrica Arquitetura de Processadores Digitais - 1º/2001. Experiência 05: Caixa de Música 85 1. Objetivos Desenvolver um programa que permita tocar melodias monotônicas. Familiarizar-se com interrupções usando output compare (TOC). Apresentar o recurso de interrupções do tipo timer overflow. 2. Introdução O timer do 6811 associado com os recursos de output compare (TOC) e os recursos de interrupções relacionados permite que se implemente complexas rotinas tanto de geração de sinais periódicos quanto para medida de tempo (TIC). Neste experimento, o usuário desenvolverá, usando estes recursos do 6811, um programa que executa melodias simples monotônicas. A melodia a ser executada deverá ser colocada em um vetor de até 40 componentes e deverá seguir a seguinte sintaxe: Primeiro byte: Primeira Nota Segundo byte: Duração da primeira Nota Terceiro byte: Segunda Nota Quarto byte: Duração da segunda nota Etc. O programa desenvolvido deverá conter um mini-interpretador que lê o valor das notas e as executa. Para gerar as notas, pode-se usar o recurso do TOC2 da seguinte forma: gerar interrupções periódicas, a cada n ciclos de clock, de forma que em cada interrupção o pino da Porta A correspondente ao TOC 2 (PA6) mude de polaridade. Para controlar a freqüência de oscilação, deve-se usar as considerações a seguir. O período da onda, em um processador com freqüência de clock 2 MHz é de: 6102 1 T s = 0,5 µs Desta forma, o tempo de duração de duas inversões do pino PA6, com n ciclos de clock cada, levará o seguinte tempo: 86 66 10 n 102 n2 T s Assim, a freqüência da onda quadrada gerada é: n 10 f 6 Hz A seguir, são dadas as notas que deverão ser incluídas na escala de tons gerados pela caixa de música: Tabela 6.1: Freqüência das notas musicais Código Nota Freqüência (Hz) 1 DÓ 277 2 DÓ# 293 3 RÉ 311 4 RÉ# 329 5 MI 349 6 FÁ 370 7 FÁ# 392 8 SOL 415 9 SOL# 440 10 LÁ 466 11 LÁ# 493 12 SI 523 13 DÓ 554 14 DÓ# 587 15 RÉ 622 16 RÉ# 659 17 MI 698 18 FÁ 740 19 FÁ# 784 20 SOL 830 21 SOL# 880 22 LÁ 932 23 LÁ# 987 24 SI 1046 25 DÓ 1108 26 PAUSA 0 27 FIM 0 Fonte: Professor Adson Ferreira da Rocha 87 O código para duração das notas é o seguinte: Tabela 6.2 – Codificação da duração das notas. Código Duração (s) 1 4 11 5 2 2 21 3 3 1 31 1.5 32 1.75 4 0.5 41 0.75 5 0.25 55 0.375 6 0.125 Fonte: Professor Adson Ferreira da Rocha 3. Procedimento Experimental O objetivo da parte obrigatória deste programa é executar a seguinte partitura: Tabela 3 – Partitura obrigatória. Nota Duração 13 4 18 55 17 6 18 55 20 6 22 55 20 6 22 55 23 6 24 41 25 6 22 6 18 6 Fonte: Professor Adson Ferreira da Rocha 88 Na parte optativa o aluno deverá escrever sua própria melodia (deve ser uma melodia conhecida). A melodia deve incluir entre 10 e 20 notas. O primeiro problema com o qual o aluno deve se preocupar é a geração da nota. Uma forma simples de fazer isto é usar a interrupção TOC2. A freqüência que deve ser gerada pode, por exemplo, ser guardada em uma variável global, de tal forma que a rotina pode saber qual incremento deve usar. O segundo problema é controlar o tempo de duração das notas. Ficará a cargo do aluno a criação dos métodos para atingir o objetivo pretendido. Para gerar o som, é necessário preparar um circuito especial para acionar o alto-falante. O alto-falante não deve ser, em nenhuma hipótese, conectado diretamente à porta do 6811. A porta não tem a capacidade de suprir corrente para o mesmo. Sugere-se o seguinte método: ligar a saída da porta (PA6) a um inversor TTL com alta capacidade de corrente (e.g. 7406 – ver apêndice), e ligar este inversor a outro inversor semelhante. Note que, em geral, este tipo de inversor é do tipo coletor aberto e é necessário incluir um resistor entre a saída da porta e a fonte de alimentação. No segundo inversor, o alto-falante deve ficar em série com o resistor de pull-up. 4. Apresentação e Discussão dos Resultados No pré-relatório, deve ser apresentada uma versão preliminar do programa em C, livre de erros de sintaxe. Deve ser apresentado também um desenho propondo o hardware necessário para o experimento. O aluno deverá relatar o funcionamento do programa elaborado, anexando o programa fonte com suas conclusões e sugestões. Também deve constar do relatório o desenho esquemático das interfaces desenvolvidas no experimento.
Compartilhar