Projeto final desenvolvido pelo aluno Julio Cesar de Souza para o PIC MINAS 2010/1.
Este projeto consiste basicamente de um cronômetro digital, com display de LCD. A resolução do cronômetro é de 1 segundo. O botão 1 inicia a contagem quando pressionado uma vez, ao ser pressionado uma segunda vez ele paralisa a contagem. O botão 2 zera a contagem.
Princípio de Funcionamento
Este projeto utiliza como base para contagem o periférico Timer0 (contador de 16 bits). Para ter uma contagem mais precisa e simplificar a implementação do código optou-se por utilizar a interrupção associada a este periférico. A cada segundo este periférico gera uma interrupção, quando isto acontece uma variável é incrementada. O valor desta variável é, por sua vez, decodificado em uma string e transmitido ao display de LCD. Ao iniciar a contagem um led verde é acesso, indicado que a contagem está ativa. Ao paralisar a contagem um led vermelho é acesso, indicando que a contagem não esta ativa.
Para conseguir gerar uma interrupção a cada um segundo, o prescaler do Timer0 é ajustado em 1:256 e o contador Timer0 tem sempre um valor inicial de 18.660.
Conseguiu com que o cronômetro parasse no exato instante em que aperta o botão? Se sim, como resolveu o problema do Delay deixar o processador sem ação? Usou alocação de memória como no caso do bootloader?
Maconhaepaz 1 month ago in playlist 2010-01 - Curso de Sistemas Microcontrolados Introdutório