Aula 06 Microcontroladores: Programação em C Prof. Tecgº Flávio Murilo 02/04/2013 1
Microcontroladores PIC São fabricados pela Microchip Technology. PIC significa Programmabile Intelligent Computer, ou Computador Inteligente Programável. 02/04/2013 2
Microcontroladores PIC A letra F indica o tipo de memória do microcontrolador. Ex: PIC 16F628A PIC com a letra C só podem ser gravados uma vez e são mais baratos. Ex: 16C877 Os outros modelos de PIC variam em números de recursos disponíveis. EX: 16F870, 16F84 02/04/2013 3
PIC 16F628A Características gerais Possui set reduzido com apenas 35 instruções; Clock interno de 4MHz e externo de até 20MHz; Memória do tipo Flash com capacidade de 2043 words (1 word = 32 bits); 224 bytes de memória RAM; 128 bytes de memória EEPROM; Instruções de 14 bits com 200ns de tempo de execução; Dados de 8 bits por endereço de memória; 15 registradores especiais; 16 pinos que podem ser configurados como entrada ou saída; Outras funções como watchdog timer, comparador interno, USART, etc. 02/04/2013 4
PIC 16F628A Pinagem A numeração dos pinos se inicia da esquerda para a direita na parte inferior do chip posicionado com a marcação circular na parte inferior esquerda e retornando da direita para a esquerda nos pinos superiores. 02/04/2013 5
PIC 16F628A Pinagem Os pinos 5 e 14 são, respectivamente, aterramento e alimentação positiva, que deve ser ligado em 5V (tolerando de 2 a 6V). 02/04/2013 6
PIC 16F628A Pinagem Os pinos 5 e 14 são, respectivamente, aterramento e alimentação positiva, que deve ser ligado em 5V (tolerando de 2 a 6V). 02/04/2013 7
PIC 16F628A Pinagem Os pinos 15 e 16 são, respectivamente, saída de clock e entrada de clock externo. 02/04/2013 8
PIC 16F628A Pinagem O pino 4 é uma entrada de sinal de reset em nível baixo. 02/04/2013 9
PIC 16F628A Configurando projeto Ao abrir o PIC C Compiler, a primeira coisa a fazer é criar um novo projeto através do Assistente PIC Wizard. 02/04/2013 10
PIC 16F628A Configurando projeto Expandindo as opções de Device selecione o PIC16F628A. 02/04/2013 11
PIC 16F628A Configurando projeto Defina a frequência de oscilação para 4MHz e marque os seguintes Fuses: 02/04/2013 12
PIC 16F628A Configurando projeto Fuses: São os bits de configuração do Microcontrolador: Watchdog: Faz com que o sistema reinicie (reset) quando um contador específico que é incrementado pelo sinal de clock extrapole o seu valor máximo. A função Clear Watchdog impede que esse contador extrapole o seu limite máximo, fazendo com que o mesmo seja zerado, logo o Watchdog só irá atuar quando alguma coisa incomum acontecer. Power Up Timer: Faz com que o PIC espere alguns ciclos de máquina quando o mesmo é energizado (Power Up) para garantir que todos os periféricos estejam disponíveis quando o processamento for executado. Brown Out: Faz com que o PIC seja reinicializado caso a tensão de alimentação do Microcontrolador caia para um valor inferior ao nominal. 02/04/2013 13
PIC 16F628A Configurando projeto Verifique o código que foi inserido no arquivo.h clicando em View Code Generated.... Estando tudo certo, feche a janela e clique em OK. 02/04/2013 14
PIC 16F628A Configurando projeto Automaticamente será gerado o código com os fusos pré-definidos, onde o espaço entre { e } equivalem ao Begin e o End respectivamente, em outras linguagens. O termo void main() indica o corpo do programa. 02/04/2013 15
PIC 16F628A Compilando Após o término da digitação do código, clique no local indicado para que seja feita a compilação, que gera um arquivo.hex que vai ser utilizado em simulações no Proteus ou para gravação na memória Flash do PIC. 02/04/2013 16
PIC 16F628A Compilando Depois que compilar e montar o respectivo circuito no Proteus, clique duas vezes sobre o PIC no circuito, defina a frequência do processador como 4MHz e clique no ícone da pasta para inserir o arquivo do código hexadecimal. Depois confirme em OK. 02/04/2013 17
PIC 16F628A Exemplo 01 O exemplo 01 mostra o acionamento de um LED com uma chave que liga quando está fechada e desliga quando aberta. Abaixo, está o circuito para simulação no Proteus. 02/04/2013 18
PIC 16F628A Exemplo 02 O exemplo 02 mostra o acionamento de um LED com uma botoeira que liga quando pressionada uma vez e desliga quando pressionada novamente. 02/04/2013 19
PIC 16F628A Exemplo 03 O exemplo 03 mostra o acionamento de um LED com duas botoeiras, uma para ligar e outra para desligar quando pressionadas. 02/04/2013 20
PIC 16F628A Exemplo 04 O exemplo 04 mostra um temporizador que liga e desliga automaticamente o LED quando a chave estiver fechada num tempo determinado. Para fazer o LED oscilar logo na inicialização do programa, basta remover a função if do código e usar o delay_ms. 02/04/2013 21