Buscar

Capítulo 2 - MICROCONTROLADORES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Microcontroladores e redes 2.1 
 
CAPÍTULO 2 – INTRODUÇÃO A MICROCONTROLADORES 
 
2.1-) VISÃO GERAL DO MICROCONTROLAROR PIC 16F628A 
 
2.1.1-) DIAGRAMA EM BLOCOS DO MICROCONTROLADOR PIC 16F628A 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 A figura 1 mostra o circuito interno do microcontrolador PIC 16F628A que é constituído por: 
 
- memória de programa: onde é armazenado o programa (conjunto de instruções em binário) que será executado pelo 
microcontrolador. Nos microcontroladores PIC que possuem a letra F no seu nome a memória de programa é do tipo 
FLASH que, conforme já vimos, pode ser apagada e escrita eletricamente. 
 
- memória de dados (ram file): memória onde o microcontrolador lê e escreve dados durante a operação normal. 
 
OBS: O pic 16F628 possui uma arquitetura denominada Harvard para acesso aos dados e às instruções de 
programa, a qual é caracterizada por utilizar um bus (barramento) para comunicação dos dados e outro bus distinto 
para comunicação com a memória de programa. Esse tipo de arquitetura permite que enquanto uma instrução é 
executada, outra seja procurada na memória, tornando o processamento mais rápido em comparação com a 
arquitetura Von-Neumann utilizada em outros microcontroladores. 
 
 
 
Figura 1 
Microcontroladores e redes 2.2 
 
- contador de programa: contém o endereço da memória de programa onde se encontra a próxima instrução que 
deverá ser executada pelo microcontrolador. 
 
- stack (stack pointer = apontador ou indicador de pilha): quando ocorre uma interrupção a execução do programa é 
desviada para outra parte do programa e, após a interrupção ser atendida, a execução do programa continua 
normalmente. Para isto o conteúdo do contador de programa deve ser armazenado no registrador “stack”. 
 
- instruction decode (decodificador de instruções): as instruções são armazenadas na memória de programa através 
de um número binário denominado código operacional (opcode). A função do “decodificador de instruções” será 
então a de receber em suas entradas o código operacional da instrução que vai ser executada, e gerar em sua saída 
uma palavra de controle (control Word) adequada, que ative as partes corretas do sistema a fim de que a instrução 
seja executada. 
 
- ALU (aritmetic logic unit = unidade lógica aritmética): onde são executadas as operações lógicas (not, and, or, etc) e 
aritméticas (soma, subtração, multiplicação, etc.) 
 
- PORTA e PORTB = dispositivos de entrada/saída (input/output) para comunicação com o mundo externo como 
teclados, displays, interruptores, sensores, etc. 
 
 Os demais blocos serão analisados nos próximos capítulos. 
 
 
2.1.2-) DESCRIÇÃO FUNCIONAL DOS PINOS DO MICROCONTROLADOR 16F628A 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
VDD = Pino de tensão positiva (3 a 5,5 V); 
VSS = Pino de terra (0 V). 
 
 
 
 
 
 
 
 
 
Figura 2 
Microcontroladores e redes 2.3 
 
- PORTA A: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RESUMO: Com exceção do pino 5, todos os outros pinos da porta A podem ser utilizados como entrada/saída 
bidirecional. O pino 5 só pode ser utilizado como entrada. Os pinos 0 a 3, 6 e 7 apresentam saída CMOS e o pino 4 
apresenta saída em dreno aberto. Todos os pinos da porta A apresentam entrada Schmitt Trigger (ver capítulo 3 
da apostila de eletrônica digital). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nome Função Tipo de Entrada Tipo de saída Descrição 
RA0 ST CMOS Porta de entrada/saída bidirecional. RA0/AN0 AN0 AN - Entrada do comparador analógico. 
RA1 ST CMOS Porta de entrada/saída bidirecional. RA1/AN1 AN1 AN - Entrada do comparador analógico. 
RA2 ST CMOS Porta de entrada/saída bidirecional. 
AN2 AN - Entrada do comparador analógico. RA2/AN2/VREF 
VREF - AN Tensão de referência de saída. 
RA3 ST CMOS Porta de entrada/saída bidirecional. 
AN3 AN - Entrada do comparador analógico. RA3/AN3/CMP1 
CMP1 - CMOS Saída do comparador 1. 
RA4 ST OD Porta de entrada/saída bidirecional. 
T0CKI ST - Entrada de clock do TIMER 0 . RA4/T0CKI/CMP2 
CMP2 - OD Saída do comparador 2. 
RA5 ST - Porta de entrada. 
MCLR ST - Master Clear. 
RA5/ MCLR /VPP 
VPP - - 
Entrada de tensão de programação. 
Quando configurado como master 
clear esse pino é um RESET ativo 
quando baixo. A tensão no master 
clear não pode exceder VDD 
RA6 ST CMOS Porta de entrada/saída bidirecional 
OSC2 XTAL - Entrada para oscilador a cristal RA6/OSC2/CLKOUT 
CLKOUT - CMOS 
No modo ER/INTRC esse pino 
fornece sinal de clock com ¼ da 
freqüência de OSC1. 
RA7 ST CMOS Porta de entrada/saída bidirecional. 
OSC1 XTAL - Entrada para oscilador a cristal. RA7/OSC1/CLKIN 
CLKIN ST - Entrada para fonte de clock externa. 
 
Legenda: 
 
O = Output (saída) CMOS = CMOS Output (saída CMOS) P = Power 
— = Não utilizado I = Input (entrada) ST = Schmitt Trigger Input 
TTL = TTL Input OD = Open Drain Output (saída em dreno aberto) AN = Analog (analógico) 
XTAL = CRISTAL 
Microcontroladores e redes 2.4 
 
- PORTA B: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RESUMO: Todos os pinos da porta B podem ser utilizados como entrada/saída bidirecional. Apresentam entrada 
TTL e saída CMOS. 
 
 
 
 
Nome Função Tipo de Entrada Tipo de saída Descrição 
RB0 TTL CMOS 
Porta de entrada/saída bidirecional. 
Pode ter Pull-up interno habilitado 
por software. 
RB0/INT 
INT ST - Interrupção externa. 
RB1 TTL CMOS 
Porta de entrada/saída bidirecional. 
Pode ter Pull-up interno habilitado 
por software. 
RX ST - Pino receptor de USART (comunicação serial). 
RB1/RX/DT 
DT ST CMOS Porta de entrada/saída de dados síncronos (comunicação serial). 
RB2 TTL CMOS Porta de entrada/saída bidirecional. 
TX - CMOS Pino transmissor de USART. 
RB2/TX/CK 
CK ST CMOS 
Porta de entrada/saída de clock 
síncronos (comunicação serial). 
Pode ter Pull-up interno habilitado 
por software. 
RB3 TTL CMOS 
Porta de entrada/saída bidirecional. 
Pode ter Pull-up interno habilitado 
por software. 
RB3/CCP1 
CCP1 ST CMOS Captura/Compara/PWM I/0. 
RB4 TTL CMOS 
Porta de entrada/saída bidirecional. 
Interrupção por mudança no estado 
do pino. Pode ter Pull-up interno 
habilitado por software. 
RB4/PGM 
PGM ST - Pino de entrada para programação em baixa tensão. 
RB5 RB5 TTL CMOS 
Porta de entrada/saída bidirecional. 
Interrupção por mudança no estado 
do pino. Pode ter Pull-up interno 
habilitado por software. 
RB6 TTL CMOS 
Porta de entrada/saída bidirecional. 
Interrupção por mudança no estado 
do pino. Pode ter Pull-up interno 
habilitado por software. 
T1OSO - XTAL Saída do oscilado do TIMER 1. 
T1CKI ST - Entrada de clock para TIMER 1. 
RB6/T1OSO/T1CKI/PGC 
PGC ST - 
Clock para programação ICSP (In-
Circuit Serial Programming = 
Programação Serial No Circuito). 
RB7 TTL CMOS 
Porta de entrada/saída bidirecional. 
Interrupção por mudança no estado 
do pino. Pode ter Pull-up interno 
habilitado por software. 
T1OSI XTAL - Entrada para oscilador do TIMER 1. 
RB7/T1OSI/PGD 
PGD ST CMOS 
Entrada/saída de dados para 
programação ICSP (In-Circuit Serial 
Programming = Programação Serial 
No Circuito). 
 
Legenda: igual porta A 
Microcontroladores e redes 2.5 
 
2.1.3-) DESCRIÇÕES GERAIS 
- Freqüência de operação de até 20 MHz; 
- Oscilador interno de 4MHz / 48 kHz; 
- Pull-up interno nos pinos do PORTB; 
- Memória de programa (FLASH): 2k x 14 bits; 
- Memória de dados (RAM): 224 x 8 bits; 
- Memória EEPROM interna: 128 x 8 bits; 
- Módulos de temporização: TIMER 0 (8 bits), TIMER 1 (16 bits) e TIMER 2 (8 bits); 
- Programação na Placa ICSP (In-Circuit Serial ProgrammingTM) com apenas dois pinos; 
- Módulo CCP (modos capture, compare e PWM); 
- 2 comparadores analógicos (referência de tensão interna programável); 
- 1 canal de comunicação serial - USART; 
- Watchdog timer; 
- 10 fontes de interrupção independentes; 
- Baixo consumo, 100nA no modo Stand-by; 
- Modo de funcionamento sleep. 
 
2.1.4-) CARACTERÍSTICAS ELÉTRICAS (VALORES MÁXIMOS) 
 
- Tensão de alimentação entre 3 e 5.5 VDC; 
- Tensão máxima no pino RA5/MCLR com relação ao pino VSS = - 0,3 V até + 14 V; 
- Tensão máxima em todos os outros pinos com relação ao pino VSS = - 0,3 V até VDD + 0,3 V; 
- Máxima corrente de saída do pino VSS = 300 mA; 
- Máxima corrente de entrada do pino VDD = 250 mA; 
- Capacidade de corrente de 25mA por pino de I/O, suficiente para controlar LED´s diretamente; 
 
2.2-) LINGUAGEM DE PROGRAMAÇÃO E COMPILADOR 
 
 Os primeiros dispositivos programáveis tinham seus programas escritos com códigos chamados “códigos de 
máquina”, que consistiam em dígitos binários que eram inseridos por meio de um dispositivo de entrada de dados 
(teclado, leitora de cartões, fitas perfuradas ou discos magnéticos) para então serem executados pela máquina. Por 
utilizar dígitos binários, a programação em código de máquina era extremamente complexa, o que implicava em um 
elevado custo, além de muito tempo para o desenvolvimento de um programa. 
 Diante da necessidade crescente de programação de sistemas, surgiu a linguagem Assembly que consiste na 
representação dos códigos de máquina através de mnemônicos, ou seja, abreviações de termos usuais que 
descrevem a operação efetuada pelo comando em código de máquina. 
 
Ex: Se desejarmos copiar (mover) o valor 0x8C16 para o registrador W, podemos utilizar código de máquinas ou a 
linguagem Assembly. Vejamos como fica o comando nestas linguagens: 
 
 Código de máquinas Assembly 
 
 00110000100011002 MOVLW 0x8C 
 
 Obviamente a representação em Assembly da instrução resultou muito mais simples do que aquela utilizando 
código de máquina, no entanto, a utilização da linguagem Assembly não resolveu todos os problemas pois ela é uma 
linguagem de baixo nível, ou seja, não possui nenhum comando, instrução ou função além daquelas definidas no 
conjunto de instruções do processador utilizado. 
 Com a evolução e a utilização dos computadores digitais surgiu a necessidade de uma linguagem mais 
próxima da forma humana de pensamento chamada de linguagem de alto nível. 
 A primeira linguagem de alto nível foi o FORTRAN (metade da década de 50), em seguida vieram linguagens 
como COBOL (1959), ALGOL (1960), PASCAL, BASIC e C (1972). 
 Assim como outras linguagens de alto nível, a linguagem C utiliza a filosofia da programação estruturada, ou seja, 
os programas são divididos em módulos ou estruturas (que em C são chamadas de funções) independentes entre si e com 
o objetivo de realizar determinada tarefa. Desta forma, a programação estruturada permite a criação de programas de 
maior complexidade quando comparada a outras linguagens não estruturadas como o BASIC ou o ASSEMBLY. 
 Quando se faz a programação de um computador ou microcontrolador, utilizando uma linguagem diferente da 
linguagem de máquina, torna-se necessária a utilização de um software que faça a conversão (tradução) do 
programa da linguagem utilizada para a linguagem de maquina. Este software chama-se “compilador”. Os 
compiladores também fornecem um conjunto de funções e bibliotecas de programa que simplificam o uso dos 
microcontroladores e seus módulos, como por exemplo função de atraso de tempo (delay), função para ler ou alterar 
o estado lógico de um pino, biblioteca LCD (display de cristal líquido), etc. Pode-se programar os 
microcontroladores PIC utilizando-se qualquer linguagem de programação. No nosso estudo utilizaremos a 
programação em linguagem C pelas razões expostas anteriormente. 
Microcontroladores e redes 2.6 
 
 Os compiladores C mais utilizados na programação dos microcontroladores PIC são o PCWH da CCS e o 
mikroC da mikroelektronika. No nosso estudo utilizaremos o mikroC que pode ser baixado gratuitamente na internet no 
site http://www.mikroe.com/en/download/ . Para isto clique em mikroC PRO for PIC 2009, baixe também os 
arquivos em PDF que estão abaixo. 
 
2.3-) COMO CRIAR UM NOVO PROJETO NO COMPILADOR mikroC PRO for PIC - C 
 
Na área de trabalho clique no ícone para abrir o compilador mikroC. Aparecerá uma tela como 
mostrada na figura 3. 
Se a tela não estiver como mostrado na figura 3, clique no ícone ou vá em PROJECT => CLOSE 
PROJECT para fechar o projeto que está aberto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Clique no ícone ou em PROJECT => NEW PROJECT para criar um novo projeto,. Será apresentada 
uma janela semelhante a mostrada na figura 4. 
 
 
 
 
 
 
 
 
 
 
 
 
 Clique em NEXT e aparecerá uma janela igual a figura 5. Selecione o microcontrolador PIC 16F628A 
(Device Name) e clique NEXT. Na janela da figura 6 ajuste o clock do dispositivo (Device Clock) em 4.000000 MHz 
(quatro MegaHertz) e clique NEXT. 
 Na janela mostrada na figura 7 clique no botão , vá na pasta aluno, que está dentro do drive C, e crie 
uma pasta com o seu nome. Dentro desta pasta crie uma outra pasta com o nome capítulo 2, dentro desta pasta 
crie uma outra pasta com o nome exemplo_1 e salve, dentro desta pasta, o projeto com o nome exemplo_1 que é o 
nome do nosso primeiro programa, clique NEXT (3 vezes) e FINISH. 
 
 
 
Figura 4 
Figura 3 
Microcontroladores e redes 2.7 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Deverá aparecer a tela mostrada na figura 8. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Pelo windows explorer verifique que na pasta exemplo_1 existem apenas dois arquivos, um com extensão 
.ppc (projeto) e um com extensão .c (texto). 
 Após criar o projeto, clique no ícone ou PROJECT => BUILD 
 Se o projeto foi criado corretamente, será exibida em azul no rodapé da página, a seguinte mensagem: 
 Finished Successfully: data 
 Pelo windows explorer verifique que, agora, na pasta exemplo_1 existem onze arquivos, cada um com uma 
extensão. Estes arquivos foram criados pelo BUILD PROJECT. 
 
Figura 5 Figura 6 
Figura 7 
figura 8 
Microcontroladores e redes 2.8 
 
2.4-) PRIMEIRO PROGRAMA 
 
 Escreva um programa que faça um LED piscar a uma freqüência de 0,5 Hz (T = 2 s) com tempo em nível 1 (TON) 
igual ao tempo em nível 0 (TOFF) igual a 1s. O led será ligado no pino 0 da porta B, conforme mostrado na figura 9. 
 
- CIRCUITO ELETRÔNICO: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- PROGRAMA: 
 
 /*nome do projeto: exemplo_1 */ 
void main () 
 { 
 trisb = 0; // cofigura os pinos da porta B como saída 
while (1) // começo de um loop 
{ 
 portb = 1; // liga o diodo conectado no pino 0 da porta B 
 delay_ms (1000); // espera 1s (1000 ms) 
 portb = 0; // desliga o diodo conectado no pino 0 da porta B 
 delay_ms (1000); // espera 1s 
 } 
 } 
 
 Após digitar o programa acima, clique no ícone = BUILD PROJECT. Se a digitação estiver correta 
será exibida no rodapé da página, a seguinte mensagem em letras azuis: 
 
 Finished Successfully:data 
 
 Caso contrário, uma ou várias mensagens de erro serão exibidas em vermelho. 
 
- SIMULAÇÃO NO MIKROC PRO FOR PIC: 
 
 Se não apareceu nenhuma mensagem de erro, ou, após todos os erros terem sido consertados, podemos 
fazer a simulação do programa (debug). Para isto, clique no ícone ou RUN => START DEBUGGER. Será 
apresentada uma janela como mostrada na figura 10. 
 Clique na barra de rolagem SELECT VARIABLE FROM LIST, uma série de variáveis serão exibidas. 
 Selecione a variável TRISB e clique no ícone (acrescentar) ou no ícone . 
 Repita o procedimento anterior para a variável PORTB. 
 As variáveis selecionadas serão exibidas na janela com os respectivos valores na segunda coluna. 
Inicialmente estes valores serão nulos. 
 Na última linha é apresentado o tempo real da simulação (time). 
 Clique no ícone = STEP OVER e analise o valor das variáveis TRISB e PORTB, e o tempo transcorrido. 
 Repita este procedimento várias vezes. 
 Você deve ter percebido que a variável PORTB permaneceu em nível 0 durante 1000 ms e em nível 1 
durante os 1000 ms seguintes como era esperado. 
 Para parar a simulação clique no ícone STOP DEBUGGER. 
RB0 
 PIC 16F628A 
+ 5V 
VDD VSS 
6 
14 5 
330 Ω 
Figura 9 
MCLR 4 
Microcontroladores e redes 2.9 
 
 Se a janela da figura 10 não aparecer, clique em VIEW => WINDOW na barra de ferramentas superior do 
mikroC e aparecerá a janela da figura 11. Nesta janela desloque a barra de rolagem para baixo, selecione a opção 
WATCH VALUES e dê OK. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
- ANÁLISE DO PROGRAMA: 
 
 Vejamos, agora, o significado de cada linha do programa: 
 
 /*nome do projeto: exemplo_1 */ 
 
 É chamada de comentário. É escrita para documentar o programa, não é levada em consideração na 
execução do programa. Os compiladores C, em geral, admitem duas formas de comentário: 
- Comentário de linha simples: Consta de apenas uma linha iniciada pelos caracteres “//”. 
- Comentários de múltiplas linhas: São compostos por uma ou mais linhas. Este tipo de comentário utiliza a 
seqüência de caracteres “/*” para iniciar o comentário e a seqüência “*/” para encerrar o comentário. 
 
 Na linha seguinte do programa temos: 
 
 void main () 
 
 É utilizada para definir a função principal ou o corpo do programa. É a linha de início de um programa em C. 
 
{ 
 
 O sinal de abertura de chave “{“ é utilizado para delimitar o início da função e o sinal de fechamento de chave 
“}” indica o fim da função. 
 
 trisb = 0; 
 
 As portas do microcontrolador pic são bidirecionais, ou seja, podem ser usadas como entrada ou como saída 
(exceto o pino 5 da porta A que só pode ser utilizado como entrada). Através dos comandos TRISA e TRISB informamos 
ao microcontrolador se os pinos das portas A e B, respectivamente, devem ser consideradas como entrada ou como saída. 
 
 Se trisa ou trisb = 1, o pino 0 da porta A ou da porta B será usado como entrada ( 1 = i de input = entrada). 
 Se trisa ou trisb = 0, o pino 0 da porta A ou da porta B será usado como saída (0 = O de output = saída). 
 
while (1) 
 
 Este é um comando de controle utilizado na repetição de um determinado bloco de instruções listado entre 
chaves após o comando while (1). Esse bloco será repetido enquanto a expressão entre parênteses for verdadeira, 
como não há expressão entre parênteses, há apenas o número 1, esta será sempre verdadeira. Qualquer número 
diferente de zero colocado dentro do parêntese resulta em uma avaliação verdadeira. O número zero resulta em 
uma avaliação falsa. 
 
 
 portb = 1 ou portb = 0; 
 
Figura 11 Figura 10 
Microcontroladores e redes 2.10 
 
 É uma função interna do compilador. 
 
 portb =1; seta, ou seja, coloca nível lógico 1 no pino 0 da porta B do microcontrolador, pois 1 = 0b00000001 
ou seja, apenas o bit mais à direita, que corresponde ao pino 0, tem nível lógico 1, os outros têm nível lógico 0. 
 portb =0; reseta ou seja, coloca nível lógico 0 em todos os pinos da porta B pois 0 = 0b00000000. 
 delay_ms (1000); 
 Também é uma função interna do compilador. É utilizada para gerar um atraso de 1000 ms, ou seja, a 
execução do programa fica parada neste comando durante 1000 ms e, depois, segue normalmente. 
 
2.5-) EDIÇÃO DO PROJETO: 
 
 Para editar o projeto, clique em PROJECT => EDIT PROJECT na barra de ferramentas do mikroC PRO. 
Será mostrada a janela da figura 12. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Os microcontroladores PIC podem operar com oscilador a cristal (XT, LP ou HS), com fonte de clock externo, 
oscilador com resistor externo ou com oscilador interno de 4 MHz. Nos nossos projetos usaremos o oscilador interno 
do PIC de 4 MHz. Desta forma liberamos os pinos 6 e 7 da porta A para serem utilizados como entrada ou saída. 
 Na primeira linha da janela da figura 12 temos o bit de configuração do oscilador (OSCILLATOR), clique na 
barra de rolagem à direita e selecione a opção “INTOSC: I/O on RA6/OSC2/CLKOUT, I/O on RA7/OSC1/CLKIN” que 
significa “Oscilador Interno com os pinos RA6 e RA7 disponíveis para serem utilizados como entrada/saída”. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Selecione o bit de configuração “Master Clear Enable”, na janela da figura 12, clique na barra de rolagem e habilite 
(enable) esta função. Os outros bits podem permanecer como estão. Para mais informações sobre os bits restantes de 
configuração, consulte o livro “Programando Microcontroladores PIC”, autor Renato Silva que pode ser acessado no site 
www.renato.silva.nom.br ou o catálogo (datasheet) do fabricante do microcontrolador que também está disponível na internet. 
 
 
 
Figura 12 
Figura 13 
Microcontroladores e redes 2.11 
 
EXERCÍCIOS 
 
1-) Escreva um programa para acionar o led conectado no pino 0 da porta B da figura 9 de acordo com a seguinte lógica: 
a-) Pisca 4 vezes o led a uma freqüência de 1 Hz, 
b-) Espera 5 segundos, 
c-) Pisca 6 vezes o led a uma freqüência de 2 Hz, 
d-) Espera 3 segundos, 
e-) Voltar para o item a. 
 
OBS: O tempo ligado é igual ao tempo desligado. Comente cada linha do programa. 
 
2-) Faça o desenho de um microcontrolador, alimentado com uma tensão de 5 V, que tem um led ligado no pino 0 da 
porta B e um led ligado no pino 0 da porta A. Os leds devem ligar quando tiver nível lógico 1 no referido pino. 
 
3-) Escreva um programa para fazer com que os leds do exercício anterior pisquem a uma freqüência de 2 Hz cada um. O 
tempo que os leds ficam ligados deve ser igual ao tempo que ficam desligados e quando um led estiver ligado o outro deve 
estar desligado. Comente cada linha do programa. 
 
4-) Escreva um programa para acionar os leds do circuito do exercício 2 de acordo com a seguinte lógica. 
a-) Pisca 3 vezes o led da porta A a uma freqüência de 1/3 Hz. 
b-) Espera 1 segundo. 
c-) Pisca 3 vezes o led da porta B a uma freqüência de 1/3 Hz. 
d-) Espera 1 segundo. 
e-) Pisca 5 vezes os dois leds simultaneamente a uma freqüência de 4 Hz. 
f-) Espera 2 segundos. 
g-) Volta para o item a. 
 
OBS: O tempo ligado é igual ao tempo desligado. Comente cada linha do programa. 
 
5-) Escreva um programa para acionar os leds do circuito do exercício 2 de acordo com a seguinte lógica. 
a-) Pisca 4 vezes alternadamente os leds das portas A e B (quando um está ligado o outro está desligado) a uma 
freqüência de 0,2 Hz. 
b-) Espera 1 segundo. 
c-) Pisca 3 vezes simultaneamente os leds das portas A e B a uma freqüência de 3 Hz. 
d-) Espera 3 segundo. 
e-) Volta para o item a. 
 
OBS: O tempo ligado é igual ao tempo desligado. Comente cada linha do programa. 
 
6-) Emcódigo Morse o sinal SOS é produzido através de 3 bips curtos, 3 bips longos e 3 bips curtos novamente. Faça um 
programa para reproduzir em um “buzzer” conectado no pino 0 da porta B o sinal SOS. O tempo de duração dos bips 
curtos deve ser de 100 ms e os bips longos 200 ms. O tempo ligado deve ser igual ao tempo desligado. O tempo entre 
cada sequência de 3 bips deve ser de 400 ms. Entre 1 SOS e outro, esperar 1,5 s. Comente cada linha do programa.

Outros materiais