Buscar

Microcontrolador Parte 00

Prévia do material em texto

i c r o q e n i o s 
Microcontroladores PIC - Programação Embarcado em C 
Família PIC18F - Microchip Baseado no compilador 
mikroC PRO for PIC (versão 5 o) 
n i i l , i < i ( l i R O f u r P I C C : v l > i < j . 5 r i m F i l s s U A * r o ( » l i > k t i o i i i l < i V i i i i k i u t ! u i íFv . M n r l o c V I ) o > < - , n t í y . , !» ! ! ! ' , ! ! , . -1 K ' . U t l c . ; l \ 0 k j . m 8 
>í ívj ^ a • * ; ^ " 
F u n c t i o i s 
G l c b a l s 
T y p e D e f 
• T a 8 6 
I n c l u d e s 
ú!3Ra.Hneli5t 
^ Prorect Eettirgs 
tti.»..:iricra7 V 
Eif̂Oscillatoc 
Value: I 8.DO0OOO MHz 
S|l^,|g|^Í.;!:';f!I 
l ^ T O i d d e l a 7 2 S t J ( 
D e l a - / iTiS ( 2 0 D O I ; 
unsiciTied sJiorL i i; 
A d d ^ Rcmowc Pfoocit ics Add 
Gefcct VQiiabe fron list: _ 
§Z bit 
Seatch ior Vcriable hy ssserfrbly rerrre: 
• § Eitmap.c a 
^ ^ Glcd.C m 
• :N Heacer F ibs : ^ 
C i Binanes 
ProiÊCt levei defint 
Zí Image Fites ^ 
;^ Output RIes 
Glcd.fex 
Glcd.lst -5 
Autor: P r o f Fernando Simplicio de Sousa 
Eng°Gabriel Rosa Paz 
Equipe MicroGenios 
Cursos e Treinamentos de Microcontroladores Presencial e Online. 
vvvvw.microgenios.com.br 
w w w .portalwebaula.com .br 
Fone: (5511) 5084-4518 I 3384-5598 
m i c r o p n i o s 
l s C R O C O ^ i T R O l A D O R E S 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
L i v r o : 
Microcontroladores PIC - P rogramação embarcado em C - Famíl ia PIC18F Microchip 
Todos os direitos reservados. Proibida a reprodução total ou parcial, por qualquer meio ou processo, 
especialmente por sistemas gráficos, micro fílmicos, fotográficos, reprográf icos , fonográficos, v ídeo 
gráficos, internet, e-books. Vedada a memor ização e/ou recuperação total ou parcial em qualquer 
sistema de processamento de dados e a inclusão de qualquer parte da obra em qualquer programa jus 
cibernét ico. Essas proib ições aplicam-se t a m b é m as caracter ís t icas gráficas da obra e a sua edi toração. A 
violação dos direitos autorais é punível como crime (art. 184 e parágrafos, do código penal, cf. Le i 
n°6.895, de 17.12.80) com pena de pr isão e multa, conjuntamente com busca e apreensão e indenizações 
diversas (artigos 102, 103 parágrafo único , 104, 105, 106 e 107 itens 1, 2. 3 da lei n° 9.610, de 19/06/98, 
lei dos direitos autorais). 
Eventuais erratas es tarão disponíveis no site da MicroGenios para download. 
Dedicatór ia : 
Dedico esse l ivro a Minha família e a equipe MicroCienios 
Advertênc ia : 
As informações e o material contido nesle livro são fornecidos sem nenhuma garantia quer explícita, ou 
implícita, de que o uso de tais in íbrmações conduzirá sempre ao resultado desejado. Tanto o editor 
quanto o autor não podem ser responsabilizados por qualquer tipo de reivindicação a t r ibuída a erros, 
omissões ou qualquer outra imprecisão na informação ou material fornecido neste l ivro, e em nenhuma 
hipótese podem ser incriminados direta ou indiretamente por qualquer dano, perda, lucros cessantes, 
e tc , devido ao uso destas in íbrmações . 
Microgenios - Treinamentos, Ki ts de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (551 1) 5084-4518 | 3384-5598 
2 
m i c r o o e n i o s 
MICROCONlROLADCHtS 
Prefácio 
Esta obra foi concebida com o intuito de preparar os estudantes, professores e profissionais da área 
técnica para a cr iação de projetos com os microcontroladores da família PIC, utilizando como 
ferramenta uma linguagem de programação de alto nível, neste material escolhemos para abordar a 
linguagem C, que é uma das linguagens mais poderosas e portáveis , fato este que a tomou amplamente 
utilizada, primeiramente para a cr iação de programas aplicativos para PC e mais tarde em sistemas 
embarcados microcontrolados. 
Trabalhar com uma linguagem de alto nível, como C, para criar programas para microcontroladores, 
exige do profissional a lém de um bom conhecimento de lógica de programação e habilidade com a 
linguagem, um sólido conhecimento da estrutura de hardware do microcontrolador utilizado, de forma a 
extrair deste o m á x i m o de funcionalidade de seus periféricos internos. 
Esta obra estuda paralelamente hardware e software, propiciando um coniiecimento completo ao 
profissional e tomando-o apto a desenvolver suas próprias apl icações, alcni dis^o vale a pena ressaltar a 
preocupação , por parte do Centro de Tecnologia Microgenios, em priorizar um estudo gradual e prát ico, 
para isso usamos os kits de desenvolvimento PICgenios PIC18F. como base para a real ização de 
diversas exper iências que complementam e fixam o aprendizado. 
U m ponto de destaque da abordagem do treinamento, é o uso e detalhamento da I D E de 
desenvolvimento mikroC (www.mikroe.com) a qual apesar das l imitações da versão de demons t ração 
gratuita mostra-se uma excelente ferramenta de desenvolvimento e s imulação. 
De maneira alguma este material c apresentado como única fonte de estudo sobre o assunto, devendo 
aqueles que necessitarem se aprofundar nos tópicos aqui estudados buscar outras fontes de pesquisa. 
Por f im a equipe MicroGenios agradece a atenção dc todos e deseja bons estudos e projetos. 
Fernando Simplício de Sousa 
Gabriel Rosa Paz 
Equipe MicroGenios 
Cursos e Treinamentos de Microcontroladores Presencial e Online. 
www.microgenios.com.br 
www.portalwebaula.com.br 
Fone: 11 5084-4518 | 3384-5598 
Deus seja louvado! 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
.3 
m i c r o o e n i o s 
yiCROCONTROiADORES 
PREFÁCIO 3 
UNIDADE 01 11 
A EVOLUÇÃO DA TECNOLOGIA 12 
Os primeiros computadores: 12 
Evolução dos sistemas eletrônicos: 13 
Onde é possível encontrar microcontroladores? 14 
Microprocessadores e Microcontroladores: 14 
Microprocessador: 14 
Microcontrolador: 15 
* * •% 
Funcionamento básico dos sistemas microcontrolados: ".. 16 
O que é necessário para trabalharmos com microcontroladores? 18 
Um pouco de História ». 18 
Escrevendo programas em C para Microcontroladores 18 
O papel do Compilador 19 
Etapas de desenvolvimento e gravação de um programa em C no microcontrolador P I C 20 
Aulas de laboratório e experiências práticas 24 
Varredura de displays de 7 segmentos 25 
Varredura de Teclado matriciais 26 
Canal de comunicação serial RS232 27 
Conversor Analógico digital (A/D) 27 
Controle PWM de dispositivos 28 
UNIDADE 02 30 
o s MICROCONTROLADORES PIC 31 
Desempenho da familia P I C 32 
Tipos de Memória de Programa 32 
O PIC18F4520 32 
Tipos de encapsulamentos: 33 
Estrutura interna do PIC18F4520 37 
Descrição das funções dos pinos do PIC18F4520 38 
Tipos de Memórias 41 
Memória de Programa 41 
Memória de dados - EEPROM 45 
Microgenios - Treinamentos, Ki ts de desenvolvimento e muito mais... ' 4 
wwvy.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 • • ' 
m i c r o o e n i o s - - - - - - -
MiCHOCO^rROLADORES 
Memória de dados - RAM 45 
Registradores de Funções Especiais - SFR's 48 
Introdução as portas de I/O 49 
O PORTA 51 
O PORTB 53 
O PORTC 54 
O PORTD 55 
O PORTE 55 
Usando os pinos de IO 56 
Reset 61 
Ciclos de máquina 62 
Os bits de configuração (fusíveis) 63 
Mapa dos bits de configuração do PIC18F4520 64 
Confíguração de Clock 66 
Osciladores LP , XT, HS e HSPLL 69 
Modo HSPLL 70 
Oscilador RC - com pino RA6 como saída dc clock 71 
Oscilador RC - com pino RA6 como I/O de uso geral 72 
Circuito de Oscilação EC - com pino RA6 como I/O dc uso geral 72 
Circuito de Oscilação EC - com pino RA6 como saída de clock 73 
Fail-safe Clock Monitor Enable ^ Habilita o microcontrolador a continuar a operação mesmo que o 
oscilador externo falhar, chaveando para o oscilador interno 73 
Internai Externai Switch Over Mode conligara o microcontrolador para utilizar o oscilador interno . , 
enquanto o oscilador externo não esta disponível.(somentenos modos de cristal) 73 
Power Up Timer Gera um atraso dc 65.6ms para iniciar a execução do código do microcontrolador.73 
OSCSEN (SYSTEM CLOCK S \ l BIT) 74 
Configuração dos Fusíveis de Energia 74 
PWRTEN (SYSTEM CLOCK SWITCH BIT) 74 
BROWN-Out Detect 74 
WDT - Watchdog Timer Enable (cão de guarda) 75 
CCP2 MX 76 
STVREN (Stack Full/Underflow Reset Enable Bit) 76 
LVP (Low Voltagem Program) 76 
Extended Instruction Set Enable 76 
Indica que será utilizado o set de instruções extendidas do microcontrolador 76 
Background Debug 76 
Proteção contra escrita em tabelas 77 
f 
UNIDADE 03 78 
O COMPILADOR MIKROC 79 
Bibliotecas de Funções do mikroC 80 
Standard AN SI C Libraries 80 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 5 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
Miscellaneous Libraries 80 
Conhecendo as ferramentas do mikroC PRO 80 
Criação de um projeto no mikroC 81 
Conhecendo o ambiente mikroC 84 
Code Editor (editor de código) 85 
Code Assistant (assistente de código) 85 
Parameter Assistant (assistente de parâmetro) 85 
Auto Correct (correção automática) 86 
Comment / Uncomment (Comentar / não comentar) 86 
Goto Line (vá para linha) 86 
Messages Window (janela de mensagens) ••. 86 
Procedures List (Lista de procedimentos) 87 
Project Setup 87 
Ferramentas Integradas 87 
Criando nosso primeiro programa no mikroC A 92 
UNIDADE 04 95 
INTRODUÇÃO A LINGUAGEM C 96 
Formas e representação numéricas e de caracteres 99 
mikroC : Case Insensitive 101 
Manipulação de bit no mikroC 101 
Estrutura de um programa em C 102 
Porque devemos criar subrotinas ? 108 
Protótipos de Funções 108 
Os indetificadores 109 
Tipos de dados 109 
Modificadores de Tipo 110 
Declaração de variáveis 111 
Variáveis globais: 111 
Variáveis locais: 112 
Tipos de Operadores 113 
Os operadores Aritméticos: 114 
Operadores Relacionais; 116 
Operadores lógicos ou Booleanos 116 
Os operadores Bit a Bit 117 
. Operador AND (E) 117 
^ O Operador OR (I) 117 
' O Operador XOR C') 118 
Microgenios - Treinamentos, Ki ts de desenvolvimento e muito mais... • 6 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
m i c r o o e n i o s -• • - • - --̂ . -
; o Operador NOT (~) 118 
Operador de deslocamento « » 119 
Estruturas de Controle 120 
O comando if (SE) 120 
O comando Switch 123 
Estruturas de Repetição 124 
O comando For 125 
O laço While 128 
O laço do - while 129 
O comando break e continue 129 
Break , 129 
Continue a 130 
UNIDADE 05 ^..ndf. 131 
Manipulando Teclados com o mikroC 132 
A Função Button .ÍS* Í: 133 
UNIDADE 06 144 
OS DISPLAYS LCD ALFANUMÉRICOS 145 
Introdução 145 
Hardware e Pinagem .i 145 
Endereços de cada caractere no L C D 16x2 147 
Lista de códigos dos Caracteres 147 
Endereços e Instruções 151 
Inicialização do L C D 152 
Definindo o modo de operação do L C D 152 
LCD Modo 4 Bits , 153 
Definição SBIT 155 
As bibliotecas de comando do LCD: 156 
No exemplo utilizamos o seguinte comando para apagar o display LCD: 156 
Criando Caracteres especiais: 160 
Trabalhando com display L C D e Teclados 166 
UNIDADE 07 170 
Conversor A/D do PIC 171 
Registrador ADCONO: 171 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... • ,7 
www.microgenios.com.brlwww.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
m i c r o Q e n i o s 
MICROCONTROLADORES 
ADCONO: 171 
ADCONl: 172 
ADC0N2: 173 
Trabalhando com AD no MikroC 177 
Projeto: Leitura do sensor de Temperatura LM35 180 
UNIDADE 08 185 
Canal P W M do P I C 186 
Introdução 186 
Trabalhando com PWM no P I C 189 
Função de Inicialização da geração do sinal PWM: 189 
Função de duty Cycle: 190 
Função de Start e Stop: 191 
Controlando a velocidade de uma ventoinha: 193 
UNIDADE 09 .T̂ . 198 
OS TIMERS/COUNTERS 199 
TIMERO „ 199 
Registradores de configuração do TIMERO: 203 
TOCON: (TIMERO Counter Rcgislcr) 203 
O registrador INTCON 205 
Aprendendo a programar os TIMERO: 206 
Modo contador do TIMERO do P I C : 214 
UNIDADE 10 217 
O T I M E R l : 218 
Registradores de configuração do T I M E R l : 218 
Tl CON: (TIMERl CONTROL REGISTER): 219 
Programando o T I M E R l do P I C 223 
Relógio com o T I M E R l 230 
Modo contador do T I M E R l 235 
UNIDADE 11 240 
O TIMER2 : 241 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 8 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
Os registradores relacionados com o T I M E R l são: 241 
Registradores de configuração do TIMER2: 244 
T2C0N: (TIMER2 CONTROL REGISTER): 244 
UNIDADE 12 249 
O TIMER3 : 250 
Registradores de configuração do T I M E R 3 : 252 
T3C0N: (TIMER3 CONTROL REGISTER); 252 
Modo contador de pulsos externo do T I M E R 3 : 256 
UNIDADE 13 260 
As Interrupções do PIC18F4520 261 
Estudo dos Registradores de Configuração das Interrupções do PIC 265 
RCON (CONTROL REGISTER) 265 
INTCON (Interrupt Control) 266 
rNTC0N2 (Interrupt Control 2) * 266 
INTC0N3 (Interrupt Control 3) 267 
PIRI (sinaliza Interrupção dos Periféricos 1) 267 
PIR2 (sinaliza Interrupção dos Periféricos 2) t. 268 
PIEI (Habilitação das interrupção dos periféricos ) 268 
PIE2 (Habilitação das Interrupção dos Periféricos) , 268 
IPRl (registrador de prioridade de interrupções) 268 
IPR2 (registrador de prioridade de interrupções 2) ,, 269 
Programando as interrupções Externas no MikroC. 270 
Interrupção de Alta prioridade: 271 
Interrupção de Baixa prioridade: ..iv v 271 
Como devemos programar as interrupções de alta e baixa prioridade? 272 
Programando as interrupções: 272 
Interrupção do TIMERO: 272 
Interrupção do TIMERl: 275 
Interrupção do TIMER2:..,, 281 
Interrupção do TIMER3: 288 
As Interrupção externa INTO, I N T l e INT2 291 
Programando a Interrupção externa INTO: 292 
Programando a interrupção externa I N T l 295 
Programando a interrupção externa INT2 300 
Interrupção por mudança de estado 304 
Programação do módulo L V D : Detector de Alta e Baixa Voltagem 308 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 9 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
m i c r o o e n i o s 
M I C R O C O N T R O L A D O R E S 
Registrador relacionados ao controle do módulo H L V D : 309 
Obs: não se esqueça de desativar o bit de configuração Brown-Out nos bits de configuração!! 312 
UNIDADE 13 313 
COMUNICAÇÃO SERIAL 314 
Programando o canal U S A R T do P I C no mikroC: 314 
Leitura do canal serial 316 
Aprendendo praticando: 319 
4 ^ 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
10 
m i c r o q e n L o 
M I C R O C O N T R O L A D O R E S 
Unidade 01 
Introdução aos Microcontroladores 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... ; 11 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
m i c r o o e n i o s • - • ' i 
WCROCONTROLADORbS 
A evolução da tecnologia 
Desde os p r imórd io s da sociedade, os homens buscavam maneiras de facilitar e simplificar ativldades 
complicadas e repetitivas; com o conhecimento ma temá t i co adquirido com o passar dos anos, e seu 
grande uso nas atividades comerciais u m dos maiores problemas encontrados passou a ser a real ização 
de cálculos mais complexos, o que levou a criação de dispositivos mecânicos para auxílio nesta tarefa, 
os quais são chamados genericamente de ábaco. 
Pode n ã o parecer, mas com a 
criação destes dispositivos tão 
simples nascia u m conceito de 
m á q u i n a que muitos anos e séculos 
depois daria origem a sistemas 
muito complexos como os 
microprocessadores e 
microcontroladores. 
Figura 1.0 - Ábaco 
A partir de en tão essas ferramentas foram sendo aperfeiçoadas continuamente durante séculos , 
originando diversos dispositivos c ferramentas que auxiliavam em tarefas complexas, principalmente 
noscálculos matemát icos . M • m.. « Í * 
Figura 1.1 - Calculadora de Pascal 
Figura 1.2 - Maquina Diferencial de 
Babbage 
O s primeiros computadores: 
Microgenios - Treinamentos, Ki ts de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
12 
m i c r o o e n i o s 
M i C R O C O N T R O L A D O R E S 
Figura 2.0 - E N I A C 
Com domín io da m a n i p u l a ç ã o da tensão e 
da corrente elétrica, os dispositivos de 
cálculo anteriormente mecânicos passaram 
a ser elétricos, o que facilitava o projeto, a 
cons t rução e reduzia o tamanho dos 
sistemas, mesmo assim os primeiros 
computadores eram gigantescos e 
ocupavam préd ios inteiros devido aos 
componentes utilizados na época 
(válvulas) . U m bom exemplo era o E N I A C 
utilizado para real ização de cálculos 
balísticos na década de 40. 
Observando todos esses equipamentos, embora eles sejam muito diferentes é possível notar u m ponto 
em comum, todos eles foram projetados com uma finalidade específica e única, caso se quisesse que 
eles realizassem outra tarefa, todo o projeto teria que ser refeito. Hssa era uma característica muito 
ru im , pois tornava extremamente difícil qualquer alteração ou atual ização que fosse necessár ia . 
É neste contexto que as ideias e m á q u i n a s do Sr. 
Herman Holleri th, u m dos precursores da I B M , 
começam a ter e spaço e se tornam uma solução para o 
problema apresentado, pois ele havia desenvolvido, já 
no final do século XIX, u m sistema de cartões e fitas 
perfuradas capazes de informar á maquinas específicas, 
o que elas deveriam fazer, nasciam os conceitos de 
programa e de memór ia , tornando o sistema muito 
mais versáti l , uma vez que era poss ível com uma 
mesma m á q u i n a a real ização de diversas tarefas e 
cálculos diferentes, unicamente com a m u d a n ç a dos 
T 1 , r j car tões OU da fita. Figura 2.1 - Fita perfurada . 
E v o l u ç ã o dos sistemas e l e t r ô n i c o s : 
Conforme as tecnologias para p r o d u ç ã o de componentes eletrônicos avançavam, os computadores 
eletrônicos tornavam-se cada vez mais compactos e poderosos, já na d é c a d a de 70 esse avanço chegou a 
tal ponto que foi possível , a partir da ideia do o Dr. Marcian Hoff, u m dos primeiros funcionários da 
Intel, a criação do primeiro dispositivo eletrônico capaz de ser programado para a realização de 
diversas tarefas e controles, nascia ali o primeiro microprocessador, componente que revolucionaria a 
história da eletrônica devido saa versatilidade, rapidez e precisão, podendo controlar qualquer tipo de 
sistema ou processo. 
Os microcontroladores que são o foco de nosso estudo são frutos de toda essa evolução e hoje com o 
barateamento dessa tecnologia e as facilidades de projeto e ut i l ização, eles são empregados em 
praticamente todas as áreas com as mais diferentes apl icações e funcionalidades. 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 3384-5598 
m i c r o o e n i o s 
M!CR0C0NTR0LAD0'-:b3 
O n d e é p o s s í v e l encontrar microcontroladores? 
Telefonia 
A u t o m ó v e i s 
Aviação 
Diversão 
Ele t rodomést icos 
Calculadoras 
M á q u i n a s 
Informática 
Sistemas bancár ios 
Segurança 
Celulares 
Sist. Hospitalares 
etc. 
Microprocessadores e Microcontroladores: 
Vimos até agora que microprocessadores e microcontroladores são o fruto de muitos anos de avanço 
técnico, são utilizados para controlar diversos tipos de sistemas e m á q u i n a s , e que a grande vantagem 
de seu uso é a possibilidade de a l teração e a tua l ização ráp ida e simples, bastando para isso a criação de 
u m novo programa. ^ 
Mas quais as diferenças entre microprocessadores e microcontroladores, em que casos eles são 
utilizados? 
Embora muitos confundam as duas nomenclaturas e as ut i l izem até como s inón imos , eles são 
dispositivos com conceitos e funções distintas, pelos seguintes aspectos: • 
Microprocessador: 
Dispositivo eletrônico destinado a controle de processamento de sistemas grandes e complexos, ele tem 
como função processar os dados vindos de dispositivos externos (memór ias , sistema de I / O , etc.) e a 
partir deles executar tarefas p r é - p r o g r a m a d a s . 
Dentro do encapsulamento do microprocessador existe apenas uma estrutura a CPU, a qual é composta 
basicamente pela ULA, pela LZC e alguns registradores. 
• CPU: Unidade Central de Processamento 
• U L A : Unidade Lógica e Ari tmét ica ( responsável pelas operações m a t e m á t i c a s e lógicas) 
• UC: Unidade de controle ( responsáve l pelo controle de fluxo dos dados, pelo gerenciamento e 
execução dos comandos e atividades) 
Microgenios - Treinamentos, Kits de desenvolvimento e muito mais... 
www.microgenios.com.br | www.portalwebaula.com.br (5511) 5084-4518 | 3384-5598 
14

Continue navegando