Baixe o app para aproveitar ainda mais
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
Compartilhar