Serviço Nacional de Aprendizagem Industrial Departamento Regional de Pernambuco Faculdade de Tecnologia SENAI Pernambuco - Unidade Santo Amaro Curso de Tecnologia em Mecatrônica Industrial Disciplina: MICROCONTROLADORES Professor: RICARDO TEIXEIRA Data:27/06/2016 Lista de Exercício Diagrama do PIC18F4550
1. Descreva o que é um microcontrolador. Seja o mais descritivo possível fazendo uma definição clara e citando seus principais periféricos. Uma representação gráfica enriquecer sua resposta. 2. O que são e para que servem as portas de um microcontrolador? 3. As portas fazem parte da estrutura de um microcontrolador. No PIC18F4550 temos 5 portas com quantidades diferentes de bits. Com base neste microcontrolador cite 3 destas portas e suas funções além da funcionalidade de E/S (entrada e saída). 4. Ilustre a conexão de um botão no pino B0 do PIC18F4550. Assuma que o botão ativará o bit 1 na porta, ou seja, a leitura 1 no pino indica que o botão está pressionado (fechado). 5. Faça o código da estrutura básica de um programa em C com o compilador CCS para o microcontrolador PIC18F4550. Este programa deve conter os includes e bits de configuração (fuses) mínimos necessários para o funcionamento do PIC18F4550. Especifique apenas os fuses referentes a watch dog timer (cão de guarda), o master clear reset (reset do sistema) e ao oscilador seja com uso de cristal ou interno. Não esqueça da função principal e do loop principal do programa. 6. Descreva em poucas palavras a importância do arquivo 18F4550.h que utilizamos em nossos programa em C no compilador CCS. 7. Faça um programa em C para o microcontrolador PIC18F4550 e compilador CCS que leia a porta B e escreva o resultado na porta D com um intervalo de 1 segundo entre leitura e escrita. Certifique-se de pré-definir um valor para a porta B para que seja transferido para porta D.
8. Suponha um projeto com dois botões, nos pinos B0 e B1, um LED no pino C0, um sensor de temperatura no pino A0. Faça um programa em C para o microcontrolador PIC18F4550 e compilador CCS que leia 2 pinos da porta B (B0, B1) e para cada combinação do par execute as ações da tabela da seguir. B0 B1 Ação 0 0 Ligar o LED 0 1 Desligar o LED 1 0 Ler a temperatura do sensor. 1 1 Incrementar o valor da porta D (ler a porta D, acrescentar 1 e escrever o resultado na porta D novamente). 9. Sobre os bits de configuração marque com V as afirmativas verdadeiras e com F as afirmativas falsas. [ ] INTRC pode ser utilizado como bit de configuração quando usamos cristais acima de 4MHz. [ ] WDT é um bit de configuração utilizado para proteger o sistema de travamentos. [ ] o bit de configuração NOMCLR deve ser utilizado pode ser definido quando precisamos utilizar o pino de reset como entrada e/ou saída. [ ] HS é um bit de configuração utilizado quando utilizamos cristais maiores que 4MHz.
10. O Código Morse foi criado em 1835 por Samuel Morse e trata-se de um acordo do antigo sistema de telégrafo que combinava pontos e travessões usados na emissão e recepção de mensagens. Ele foi utilizado durante décadas como uma forma básica de comunicação de se dava através de representações curtas e longas de algum sinal, como travessão e ponto. O código morse para pedido de socorro foi convencionado como SOS (Save Our Ship, do inglês salve nosso navio) sendo sua representação, onde representa a letra S e representa a letra O. A grande vantagem do código morse é que duas pessoas que conhecem o código podem representar e entender a comunicação utilizando diversos meios, substituindo o ponto e travessão por um som curto e um som longo, ou uma lâmpada acesa durante pouco tempo e por um tempo mais longo. Com base nesta informação faça o código para enviar o sinal de socorro SOS a cada 5 segundos. Considere que o sistema utiliza um microcontrolador PIC18F4550 e tem um LED na porta D0. O LED deve representar o ponto (sinal curto) ficando aceso por 100 milissegundos e o travessão (sinal longo) por 300 milissegundos. Certifique-se que o sinal ficará ligado continuamente, em loop. 11. Sobre os as funções de atraso marque com V as afirmativas verdadeiras e com F as afirmativas falsas. [ ] A função delay_ms recebe como parâmetro o número de milissegundos podendo ser um inteiro de no máximo 8 bits. [ ] Quando usamos a função delay_ms todo o processamento para só sendo retomado quando passar o tempo especificado. [ ] É possível especificar uma função de interrupção que vai ser executada quando o tempo da função delay_ms acabar. [ ] As funções de temporização delay_ms e delay_us são a melhor forma de contar o tempo uma vez que realizam a tarefa de forma precisa e sem comprometer o fluxo do programa como um todo.
12. O microcontrolador PIC18F4550 é dotado de 4 Timers. Descreva qual a importância destes módulos e suas aplicações. 13. Um botão real pode gerar ruídos nas suas transições, isto é, quando fechamos ou abrimos seus contatos. Isso é chamado de bounce (do inglês salto ou ressalto) de botão. Ao ler um botão é preciso ter cuidado com o bounce, pois pode nos levar a tomar diversas ações num único ato de pressionar o botão. O algoritmo que resolve este problema na hora de lermos o estado do botão é chamado Debounce. Faça um código capaz de ler um botão e tratar o bounce, ou seja, capaz de remover as possíveis interferências das transições. 14. Descreva o que são interrupções e qual sua importância na implementação de projetos microcontrolados. Exemplifique algumas interrupções do PIC18F4550 e suas funções. 15. Comente porque utilizar a interrupção do módulo Timer0 para contar o tempo é melhor do que as funções de atraso como delay_ms. 16. Sobre as interrupções do PIC18F4550 e seu uso no CCS marque com V as afirmativas verdadeiras e com F as afirmativas falsas. [ ] Cada um dos 4 timers tem sua própria interrupção. [ ] #INT_TIMER0, ou #INT_RTCC, é uma diretiva utilizada para especificar que a função imediatamente depois é a função de interrupção do TIMER0. [ ] Além das interrupções é possível detectar eventos, como estouro dos timers, através de flags o é que uma alternativa mais eficaz.
[ ] Para utilizar uma interrupção é precisa habilitar exatamente aquela que precisamos. Além disso a interrupção GLOBAL precisa estar habilitar ou nenhuma interrupção funcionará. 17. O PIC18F4550 possui um módulo de conversão Analógico-Digital, o que permite a leitura de sensores e tensões em sua porta A. Suponha que potenciômetro está ligado ao pino A0. O módulo AD está configurado para 10 bits de precisão e o canal 0 está devidamente selecionado. As tensões de referência são as mesmas da alimentação no microcontrolador, 0 vcc (ground) e 5Vcc. Com base nestas informações e sabendo que o valor lido pino A0 pela função read_adc()é 768 qual a tensão no pino A0? 18. Quando ligamos um LED a um pino digital ele pode apresentar dois estados: ligado com o pino em nível alto (1) ou desligado com o pino em nível baixo (0). Porém através do uso de PWM podemos controlar a intensidade luminosa do LED. Descreva o principio de funcionamento do PWM e em outros aplicações podemos utilizá-lo. Se preferir acrescente um esboço gráfico à sua explicação. 19. Utilizado a imagem abaixo complete o circuito que contenha os pinos para gravação ICSP, o botão de reset e um LED ligado ao pino B0.
20. Sobre a memória Flash do PIC18F4550 e seu uso no CCS marque com V as afirmativas verdadeiras e com F as afirmativas falsas. [ ] A memória Flash é onde o programa é gravado. [ ] Não é possível gravar na memória Flash sem hardware de gravação como ICD2, PICKIT3 ou K150. [ ] O Bootloader é um programa pré-gravado na memória Flash que permite a auto-gravação do chip sem o uso de gravadores. [ ] A memória Flash é menor do que a memória EEPROM.