UNIVERSIDADE DO VALE DO ITAJAÍCENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR      CURSO DE ENGENHARIA DE COMPUTAÇÃO  KI...
UNIVERSIDADE DO VALE DO ITAJAÍCENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR      CURSO DE ENGENHARIA DE COMPUTAÇÃO  KI...
SUMÁRIOLISTA DE ABREVIATURAS................................................................ viLISTA DE FIGURAS .............
3 DESENVOLVIMENTO .................................................................... 693.1 METODOLOGIA PARA DEFINIÇÃO DO...
APÊNDICE K....................................................................................... 134APÊNDICE L .............
LISTA DE ABREVIATURASA/D       Analógico/DigitalACK       AcknowledgeANSI-C    American National Standards Institute padrã...
PC        Program CounterPCI       Placa de Circuito ImpressoPDIP      Plastic Dual In-Line PackagesPIC       Peripherical...
UFLA      Universidade Federal de LavrasUFRGS     Universidade Federal do Rio Grande do SulUFSC      Universidade Federal ...
LISTA DE FIGURASFigura 1. Microcontrolador ..................................................................................
Figura 46. Matriz m x n de interconexão de chaves momentâneas. ................................................. 61Figura ...
Figura 95. Layer da placa do Módulo Teclado Matricial. ............................................................. 141Fi...
LISTA DE TABELASTabela 1. Exemplos de kits de desenvolvimento baseados no PIC16F877A ........................................
LISTA DE EQUAÇÕESEquação 1 ..................................................................................................
RESUMOSILVA, Bruno Rodrigues. Kit Modular de Desenvolvimento Baseado em MicrocontroladorPIC. São José, 2011. 178 f. Trabal...
ABSTRACTThe prototyping of embedded system, both professionals and academics, normally use adevelopment kit directed to us...
1 INTRODUÇÃO       Normalmente, as instituições de ensino do Brasil, que oferecem cursos de nível técnico,tecnólogo e enge...
Tabela 1. Exemplos de kits de desenvolvimento baseados no PIC16F877A  Fabricante                   Nome                   ...
fabricantes dos kits procuram amenizar este problema introduzindo um conector de expansão,derivado das portas de entrada/s...
Foram considerados módulos periféricos, os módulos construídos para atuarempassivamente em um sistema embarcado, ou seja, ...
Limitações podem ocorrer na implementação do módulo principal do kit, tornando-o restritoa utilização do microcontrolador ...
publicações disponibilizadas na internet em sites de fabricantes de microcontroladores e de revistaseletrônicas.       Na ...
1.6 ESTRUTURA DO TRABALHO       Este documento está estruturado em quatro capítulos. O Capítulo 1, Introdução, apresentouu...
2 FUNDAMENTAÇÃO TEÓRICA       Neste capitulo é apresentada uma introdução aos microcontroladores e exemplo defabricantes, ...
A estrutura interna do microcontrolador pode variar de acordo com o modelo adotado pelofabricante. Grande parte dos microc...
2.1.1 Exemplo de fabricantes de microcontroladores de 8 bits         A seguir, serão apresentados alguns fabricantes de mi...
Por ser fabricante do microcontrolador escolhido para realização do trabalho, a MicrochipTechnology recebe uma atenção dif...
Figura 3. Gráfico ilustrado da organização dos PICs em tamanho da palavra de instrução.Fonte: Microchip Technology (2010)....
Tabela 2. Características dos grupos de microcontroladores PICPalavra de                      12 bits                     ...
2.2.2 Exemplos de microcontroladores PIC de 8 bits       Foram selecionados, neste estudo, quatro microcontroladores perte...
Figura 5. Diagrama simplificado dos pinos do PIC16F628A.Fonte: Microchip Technology (2009).PIC16F1826       O PIC16F1826 p...
PIC18F1320       O PIC18F1320 pertence ao grupo e família PIC18 de microcontroladores PIC de 8 bits. Elepossui 77 instruçõ...
Tabela 3. Descrição das funcionalidades dos pinos compatíveis entre os microcontroladores PICexemplificados               ...
oscilador externo e as relacionadas à gravação do microcontrolador. Por conter essa característica, oPIC tornou-se a escol...
SOIC       Os circuitos integrados em encapsulamentos SOIC podem ser encontrados com 8, 14, 16,18, 20, 24 e 28 pinos. Com ...
Figura 10. Vista em perspectiva do encapsulamento SSOP em um chip com 28 pinos.Fonte: Digi-Key (2010).PDIP       O encapsu...
chip pode variar bastante na largura com o aumento do número de pinos, permanecendo entre8.84mm (tamanho mínimo para 8 pin...
2.3 MICROCONTROLADOR PIC18F4520       O PIC18F4520 pertence ao grupo e família de microcontroladores de 8 bits PIC18, de m...
portas A, B, C, D e E de comunicação digital externa, a memória de dados EEPROM, entre outroselementos do MCU. Na Figura 1...
2.3.3 Recursos de hardware       Entre os recursos básicos do MCU, estão os módulos presentes em alguns PIC do grupo demen...
A frequência gerada pelo oscilador, dá origem ao ciclo de máquina do microcontrolador.Nos microcontroladores PIC, esse cic...
Reset        O reset é o mecanismo de inicializar ou reinicializar o funcionamento do microcontrolador.Quando o reset é ac...
mesmo depois do chip desligado). É na RAM que são armazenadas as variáveis e registradores definalidades especiais (SFR – ...
Deve-se evitar o acesso aos primeiros 128 bytes da memória RAM, pois são neles que estãocontidos os registradores de manip...
Para escrever um dado em um determinado endereço da EEPROM, deve-se escrever oendereço, da EEPROM, que o dado será armazen...
O PIC18F4520 possui 32 kbytes de memória de programa Flash, podendo armazenar 16.384palavras de instrução, de 16 bits cada...
Conjunto de instruções       Algumas das instruções do PIC18F4520 já foram citadas anteriormente, porém suafuncionalidade ...
ele é configurado como entrada. Para configurar o pino como saída, você deve escrever ‘0’ no bitrelacionado”. Tanto a oper...
mecanismo de memorização é dado pelo registrador temporário LATB, o qual armazena o valor daúltima leitura feita no PORTB ...
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC
Upcoming SlideShare
Loading in …5
×

Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC

2,371 views

Published on

O trabalho buscou relacionar em hardware os princípios de modularidade de software para resolução de um problema complexo, onde foram confeccionados cinco módulos distintos, sendo: um destinado à utilização de microcontrolador PIC18F4520, um para controle dos periféricos RTC e memória EEPROM via barramento I²C, um para o controle de dois motores de passo unipolares de forma direta e indireta, um para controle de display LCD e mais um para utilização de teclado matricial. Para construção do kit foram realizadas as etapas previstas no processo de criação e inovação de produtos eletrônicos, como: pesquisa de mercado, levantamento de requisitos, modelagem, virtualização, prototipação e finalização, além de programação em linguagem C de softwares para teste dos módulos.
Para projetos de freelancer, interesse em adquirir as placas industriais e/ou duvidas sobre o trabalho, entre em contato comigo por email (brsilva.eng@gmail.com)

Published in: Technology
4 Comments
1 Like
Statistics
Notes
  • ok
    manofenix muito obrigado, mas no meu projeto no final do estudo deve ser controlada por um helicóptero generarateur variável ciclo de tensão de pico san
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ok
    manofenix merci beaucoup, mais dans mon projet fin d'etude on doit commandé la tension du hacheur par un generarateur à rapport cyclique variable san pic
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @jamel02 I do not know. you can search on google for PWM boost. I believe you find some interesting stuff. with this document you will know just how to control the PWM duty cycle by the PIC.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • hi, I'm wondering is can I find a project or document that contains the variable duty cycle generator for ordered a booster hachecheur
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,371
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
165
Comments
4
Likes
1
Embeds 0
No embeds

No notes for slide

Kit Modular de Desenvolvimento Baseado em Microcontrolador PIC

  1. 1. UNIVERSIDADE DO VALE DO ITAJAÍCENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO KIT MODULAR DE DESENVOLVIMENTO BASEADO EM MICROCONTROLADOR PIC Área de Sistemas Embarcados por Bruno Rodrigues Silva Paulo Roberto Oliveira Valim, M.Eng. Orientador São José (SC), junho de 2011
  2. 2. UNIVERSIDADE DO VALE DO ITAJAÍCENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE ENGENHARIA DE COMPUTAÇÃO KIT MODULAR DE DESENVOLVIMENTO BASEADO EM MICROCONTROLADOR PIC Área de Sistemas Embarcados por Bruno Rodrigues Silva Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Engenharia de Computação para análise e aprovação. Orientador: Paulo Roberto Oliveira Valim, M.Eng. São José (SC), junho de 2011
  3. 3. SUMÁRIOLISTA DE ABREVIATURAS................................................................ viLISTA DE FIGURAS ............................................................................. ixLISTA DE TABELAS ............................................................................ xiiLISTA DE EQUAÇÕES ....................................................................... xiiiRESUMO ............................................................................................... xivABSTRACT ............................................................................................ xv1 INTRODUÇÃO.................................................................................... 11.1 KITS DE DESENVOLVIMENTO BASEADOS EM PIC ............................. 11.2 PROBLEMATIZAÇÃO ................................................................................... 21.2.1 Formulação do problema ............................................................................... 21.2.2 Solução proposta ............................................................................................ 31.3 JUSTIFICATIVA ............................................................................................. 41.3.1 Importância .................................................................................................... 41.4 OBJETIVOS ..................................................................................................... 51.4.1 Objetivo Geral ................................................................................................ 51.4.2 Objetivos Específicos...................................................................................... 51.5 METODOLOGIA ............................................................................................. 51.6 ESTRUTURA DO TRABALHO ..................................................................... 72 FUNDAMENTAÇÃO TEÓRICA ...................................................... 82.1 MICROCONTROLADORES .......................................................................... 82.1.1 Exemplo de fabricantes de microcontroladores de 8 bits........................... 102.2 MICROCHIP TECHNOLOGY..................................................................... 112.2.1 Famílias e grupos de microcontroladores PIC de 8 bits............................. 112.2.2 Exemplos de microcontroladores PIC de 8 bits .......................................... 142.2.3 Encapsulamento ........................................................................................... 182.3 MICROCONTROLADOR PIC18F4520 ....................................................... 222.3.1 Estrutura externa ......................................................................................... 222.3.2 Estrutura interna ......................................................................................... 222.3.3 Recursos de hardware .................................................................................. 242.4 BARRAMENTO I2C ...................................................................................... 412.4.1 Características do barramento I2C ............................................................. 422.4.2 Protocolo I2C ................................................................................................ 442.5 COMPONENTES PERIFÉRICOS ............................................................... 502.5.1 Motor de passo ............................................................................................. 512.5.2 Teclado matricial.......................................................................................... 592.5.3 Módulo LCD ................................................................................................. 622.6 CONSIDERAÇÕES ....................................................................................... 68
  4. 4. 3 DESENVOLVIMENTO .................................................................... 693.1 METODOLOGIA PARA DEFINIÇÃO DO MODELO .............................. 693.2 VISÃO GERAL .............................................................................................. 713.3 REQUISITOS ................................................................................................. 723.3.1 Requisitos Gerais do Kit Modular de Desenvolvimento ............................ 723.3.2 Requisitos do Módulo Controlador ............................................................. 723.3.3 Requisitos do Módulo I2C ............................................................................ 733.3.4 Requisitos do Módulo Motor de Passo ........................................................ 743.3.5 Requisitos do Módulo Display LCD ............................................................ 753.3.6 Requisitos do Módulo Teclado Matricial .................................................... 763.4 ARQUITETURA DE HARDWARE ............................................................. 763.5 IMPLEMENTAÇÃO VIRTUAL................................................................... 793.5.1 Seleção dos componentes virtuais ................................................................ 793.5.2 Validação da Implementação Virtual ......................................................... 853.6 IMPLEMENTAÇÃO FÍSICA ....................................................................... 953.6.1 Diferenças entre os circuitos virtuais e físicos dos módulos ....................... 953.6.2 Prototipação do kit ....................................................................................... 963.6.3 Modularidade dos protótipos .................................................................... 1003.6.4 Validação dos protótipos............................................................................ 1003.7 CONFECÇÃO DAS PLACAS FINAIS DOS MÓDULOS DO KIT .......... 1033.7.1 Mudanças dos protótipos para as placas finais ........................................ 1033.8 CUSTOS DO PROJETO .............................................................................. 1043.8.1 Custo dos componentes .............................................................................. 1053.8.2 Custo das placas ......................................................................................... 1083.9 CONSIDERAÇÕES ..................................................................................... 1094 CONCLUSÃO .................................................................................. 1104.1 OPORTUNIDADES DE TRABALHOS FUTUROS .................................. 112REFERÊNCIAS BIBLIOGRÁFICAS ................................................ 113APÊNDICE A ....................................................................................... 118APÊNDICE B ....................................................................................... 119APÊNDICE C ....................................................................................... 120APÊNDICE D ....................................................................................... 121APÊNDICE E ....................................................................................... 124APÊNDICE F ....................................................................................... 126APÊNDICE G....................................................................................... 128APÊNDICE H....................................................................................... 130APÊNDICE I ........................................................................................ 132APÊNDICE J ........................................................................................ 133 iv
  5. 5. APÊNDICE K....................................................................................... 134APÊNDICE L ....................................................................................... 135APÊNDICE M ...................................................................................... 136APÊNDICE N ....................................................................................... 137APÊNDICE O....................................................................................... 138APÊNDICE P ....................................................................................... 139APÊNDICE Q....................................................................................... 140APÊNDICE R ....................................................................................... 141APÊNDICE S........................................................................................ 142 v
  6. 6. LISTA DE ABREVIATURASA/D Analógico/DigitalACK AcknowledgeANSI-C American National Standards Institute padrão CASCII American Standard Code for Information InterchangeBOR Bourn-out ResetBSR Bank Select RegisterC Carry flagCAN Controller Area NetworkCCP Capture/Compare/PWMCCPRx CCPx RegisterCCPxCON CCPx Control RegisterCFGS Flash Program/Data EEPROM or Configuration Select bitCISC Complex Instruction Set ComputerCLRWDT Clear Watchdog TimerCMOS Complementary Metal-Oxide-SemiconductorCOP8 8-bit Control-Oriented ProcessorCPU Central Processing UnitCTMU Charge Time Measurement UnitE/S Entrada/SaídaECCP Enhanced Capture/Compare/PWMEEADR EEPROM Address RegisterEECON EEPROM Control RegisterEEDATA EEPROM Data RegisterEEPGD Flash Program or Data EEPROM Memory Select bitEEPROM Electrically-Erasable Programmable Read-Only MemoryEUA Estados Unidos da AméricaEUSART Enhanced USARTFSR File Select RegisterGND GroundGPR General Purpose RegisterI2C Inter-Intergrated CircuitICSP In-Circuit Serial ProgrammingINTCON Interrupt Control RegisterIPR Peripheral Interrupt Priority RegisterKMD Kit Modular de DesenvolvimentoLCD Liquid Crystal DisplayMCT Módulo ControladorMCU MicrocontroladorMDL Módulo Display LCDMIC Módulo I²CMIPS Milhões de Instruções Por SegundoMMP Módulo Motor de PassoMSSP Master Synchronous Serial PortMTM Módulo Teclado MatricialNACK Not AcknowledgeNC No Connect
  7. 7. PC Program CounterPCI Placa de Circuito ImpressoPDIP Plastic Dual In-Line PackagesPIC Peripherical Interface ControllerPIER Peripheral Interrupt Enable RegisterPIR Peripheral Interrupt Request RegisterPOR Power-on ResetPPR Passos Por RotaçãoPPS Passos por segundoPR2 Period Register 2PWM Pulse-Width ModulationQFN Quad Flat, No Lead PackageR/W Read/WriteRAM Random Access MemoryRC Resistor CapacitorRCON Reset Control RegisterRD Read Control bitREF Requisitos funcionaisRISC Reduced Instruction Set ComputerRNF Requisitos não funcionaisROM Read Only MemoryRTC Real Time ClockSCK Serial ClockSCL Serial ClockSDA Serial DataSDI Serial Data InSDO Serial Data OutSFR Special Function RegistersSOIC Small Outline Plastic PackagesSPI Serial Peripheral InterfaceSS Slave SelectSSPBUF MSSP Buffer RegisterSSPCON1 MSSP Control Register 1SSPCON2 MSSP Control Register 2SSPSR MSSP Shift RegisterSSPSTAT MSSP Status RegisterSSOP Shrink Small Outline PackagesT0CON Timer 0 Control RegisterT1CON Timer 1 Control RegisterT2CON Timer 2 Control RegisterT3CON Timer 3 Control RegisterTCC Trabalho de Conclusão de CursoTMR0 Timer 0 RegisterTMR0H Timer 0 Register HighTMR0L Timer 0 Register LowTMR1 Timer 1 RegisterTMR2 Timer 2 RegisterTMR3 Timer 3 RegisterUFES Universidade Federal do Espírito Santo vii
  8. 8. UFLA Universidade Federal de LavrasUFRGS Universidade Federal do Rio Grande do SulUFSC Universidade Federal de Santa CatarinaULA Unidade Lógica AritméticaUNIVALI Universidade do Vale do ItajaíUSART Universal Synchronous Asynchronous Receiver TransmitterUSB Universal Serial BusUTFPR Universidade Tecnológica Federal do ParanáW Working RegisterWDT Watchdog TimerWERN Flash Program/Data EEPROM Write Enable bit viii
  9. 9. LISTA DE FIGURASFigura 1. Microcontrolador .............................................................................................................. 8Figura 2. Arquitetura do microcontrolador: (a) von-Newmann; (b) Harvard .....................................9Figura 3. Gráfico ilustrado da organização dos PICs em tamanho da palavra de instrução.............. 12Figura 4. Diagrama simplificado dos pinos do PIC16F54............................................................... 14Figura 5. Diagrama simplificado dos pinos do PIC16F628A. ......................................................... 15Figura 6. Diagrama simplificado dos pinos do PIC16F1826. .......................................................... 15Figura 7. Diagrama simplificado dos pinos do PIC18F1320. .......................................................... 16Figura 8. Vista em perspectiva do encapsulamento QFN em um chip com 28 pinos. ...................... 18Figura 9. Vista em perspectiva do encapsulamento SOIC em um chip com 28 pinos. ..................... 19Figura 10. Vista em perspectiva do encapsulamento SSOP em um chip com 28 pinos. .................. 20Figura 11. Vista em perspectiva do encapsulamento PDIP em um chip com 28 pinos. ................... 20Figura 12. Vista superior do encapsulamento PDIP em um chip com 28 pinos. .............................. 21Figura 13. (a) Vista lateral e (b) vista frontal do encapsulamento PDIP em um chip com 28 pinos. 21Figura 14. Diagrama dos pinos do PIC18F4520 em encapsulamento PDIP de 40 pinos.................. 22Figura 15. Estrutura interna do microcontrolador PIC18F4520. ..................................................... 23Figura 16. Oscilador externo por (a) circuito RC, (b) cristal/ressonador. ........................................ 24Figura 17. Circuito de reset externo (a) POR e (b) BOR. ............................................................... 26Figura 18. Mapa da memória de dados do PIC18F4520. ................................................................ 27Figura 19. Leitura do dado do endereço 0x33 da EEPROM e escrita em W (Working Register). .... 28Figura 20. Escrita do valor 5 no endereço 0x33 da EEPROM. ....................................................... 29Figura 21. Estrutura do mapa da memória de programa do PIC18F4520. ....................................... 30Figura 22. Exemplo de leitura e escrita no PORTA. ....................................................................... 32Figura 23. Modo PWM em saída única. ......................................................................................... 39Figura 24. Modo PWM em meia ponte para controle de circuito de (a) meia ponte ou (b) ponte completa. ............................................................................................................................... 39Figura 25. Modo PWM em ponte completa para controle de circuito de ponte completa. ............... 39Figura 26. Modo SPI de comunicação serial síncrona. ................................................................... 40Figura 27. Modo I2C de comunicação serial síncrona. .................................................................... 40Figura 28. Sincronização entre mestre-escravo no modo SPI. ........................................................ 41Figura 29. Comunicação mestre-escravo no barramento I2C. ......................................................... 42Figura 30. Aspectos físicos do barramento I2C (a) sem e (b) com resistores em série (RS).............. 43Figura 31. Gráfico da relação dos resistores de pull-up e de proteção no circuito I2C. .................... 44Figura 32. Condições do protocolo I2C para transferência de dados. .............................................. 45Figura 33. Condições de (a) Start e (b) Stop do protocolo I2C. ....................................................... 46Figura 34. Identificação do componente com (a) 7 bits e (b) 10 bits de endereço. ......................... 47Figura 35. Validação de um bit em nível lógico (a) alto e (b) baixo no protocolo I2C. .................... 48Figura 36. Transferência completa no protocolo I2C. ..................................................................... 48Figura 37. Sincronização do relógio entre dois mestres concorrentes. ............................................ 49Figura 38. Arbitragem entre dois mestres concorrentes. ................................................................. 50Figura 39. Gráfico relacionando entre torque e velocidade em PPS (Passos por segundo). ............. 52Figura 40. Ilustração dos terminais dos enrolamentos de um motor unipolar. ................................. 52Figura 41. Ilustração dos terminais dos enrolamentos de um motor bipolar. ................................... 53Figura 42. Circuito para o controle de motor de passo unipolar. ..................................................... 54Figura 43. Circuito para o controle de motor de passo bipolar. ....................................................... 54Figura 44. Sinal digital controlando a corrente aplicada em uma bobina do motor de passo. .......... 57Figura 45. Chave de acionamento momentâneo com identificação do bounce. ............................... 60
  10. 10. Figura 46. Matriz m x n de interconexão de chaves momentâneas. ................................................. 61Figura 47. Representação dos módulos LCD (a) gráficos e (b) alfanuméricos. ............................... 63Figura 48. LCD Hitachi com drive HD44780................................................................................. 64Figura 49. Conexões dos pinos do driver do LCD com um microcontrolador. ................................ 64Figura 50. Visão geral do projeto. .................................................................................................. 71Figura 51. Arquitetura do Kit Modular de Desenvolvimento. ......................................................... 77Figura 52. Circuito de simulação do Módulo Controlador. ............................................................. 80Figura 53. Circuito de simulação do Módulo I²C. .......................................................................... 81Figura 54. Circuito de simulação do Módulo Motor de Passo......................................................... 83Figura 55. Circuito de simulação do Módulo Display LCD. ........................................................... 84Figura 56. Circuito de simulação do Módulo Teclado Matricial. .................................................... 85Figura 57. Janela do Hyper Terminal na validação do Experimento B............................................ 86Figura 58. Janela do ANALISADOR I2C do Experimento C. ........................................................ 88Figura 59. Janela do ANALISADOR I2C do Experimento D......................................................... 89Figura 60. Janela do RTC com a data gravada no Experimento D. ................................................. 89Figura 61. Gráfico do acionamento do MOTOR 1 em sentido horário no Experimento E............... 90Figura 62. Gráfico do acionamento do MOTOR 1 em sentido anti-horário no Experimento E. ....... 91Figura 63. Chaveamento dos sinais PWM no Experimento F. ........................................................ 92Figura 64. LCD com contagem de 0 até 100 no Experimento G. .................................................... 93Figura 65. Identificação da chave pressionada no Experimento H. ................................................. 94Figura 66. Imagem em 3D do protótipo do Módulo Controlador. ................................................... 97Figura 67. Imagem em 3D do protótipo do Módulo I²C. ................................................................ 98Figura 68. Imagem em 3D do protótipo do Módulo Motor de Passo. ............................................. 98Figura 69. Imagem em 3D do protótipo do Módulo Display LCD. ................................................. 99Figura 70. Imagem em 3D do protótipo do Módulo Teclado Matricial. .......................................... 99Figura 71. Resultado da validação 9 com os protótipos físicos. .................................................... 102Figura 72. Resultado da validação 10 com os protótipos físicos. .................................................. 103Figura 73. Código fonte do Experimento A.................................................................................. 118Figura 74. Código fonte do Experimento B. ................................................................................. 119Figura 75. Código fonte do Experimento C. ................................................................................. 120Figura 76. Código fonte do Experimento D.................................................................................. 121Figura 77. Código fonte do Experimento E. ................................................................................. 124Figura 78. Código fonte do Experimento F. ................................................................................. 126Figura 79. Código fonte do Experimento G.................................................................................. 128Figura 80. Código fonte do Experimento H.................................................................................. 130Figura 81. Circuito esquemático do Módulo Controlador. ............................................................ 132Figura 82. Circuito esquemático do Módulo I²C. ......................................................................... 133Figura 83. Circuito esquemático do Módulo Motor de Passo. ...................................................... 134Figura 84. Circuito esquemático do Módulo Display LCD. .......................................................... 135Figura 85. Circuito esquemático do Módulo Teclado Matricial. ................................................... 136Figura 86. Footprint da placa do Módulo Controlador. ................................................................ 137Figura 87. Layer da placa do Módulo Controlador. ...................................................................... 137Figura 88. Footprint da placa do Módulo I²C. .............................................................................. 138Figura 89. Layer da placa do Módulo I²C..................................................................................... 138Figura 90. Footprint da placa do Módulo Motor de Passo. ........................................................... 139Figura 91. Layer da placa do Módulo Motor de Passo. ................................................................. 139Figura 92. Footprint da placa do Módulo Display LCD. .............................................................. 140Figura 93. Layer da placa do Módulo Display LCD. .................................................................... 140Figura 94. Footprint da placa do Módulo Teclado Matricial. ....................................................... 141 x
  11. 11. Figura 95. Layer da placa do Módulo Teclado Matricial. ............................................................. 141Figura 96. Footprint da placa do Módulo Controlador na versão final. ......................................... 142Figura 97. Footprint da placa do Módulo I²C na versão final. ...................................................... 142Figura 98. Footprint da placa do Módulo Motor de Passo na versão final. ................................... 143Figura 99. Footprint da placa do Módulo Display LCD na versão final. ....................................... 143Figura 100. Footprint da placa do Módulo Teclado Matricial na versão final. .............................. 144 xi
  12. 12. LISTA DE TABELASTabela 1. Exemplos de kits de desenvolvimento baseados no PIC16F877A .....................................2Tabela 2. Características dos grupos de microcontroladores PIC .................................................... 13Tabela 3. Descrição das funcionalidades dos pinos compatíveis entre os microcontroladores PIC exemplificados....................................................................................................................... 17Tabela 4. Definições do protocolo I2C ........................................................................................... 45Tabela 5. Sequência de acionamento do motor de passo unipolar para passo completo .................. 55Tabela 6. Sequência de acionamento do motor de passo unipolar para meio passo ......................... 56Tabela 7. Proporção de ocupação do ciclo ativo de um sinal para 32 micro-passo por passo .......... 58Tabela 8. Exemplo de varredura em uma matriz de ordem quatro, onde c23 foi pressionado. .......... 62Tabela 9. Descrição das funções dos pinos do LCD ....................................................................... 65Tabela 10. Instruções de comando mais comuns do LCD 2x16 ...................................................... 66Tabela 11. Código de identificação do tipo de operação do LCD para inicialização ....................... 67Tabela 12. Relação dos pinos do PIC18F4520 com os módulos do kit ........................................... 77Tabela 13. Relação de as imagens da PCI com os módulos do kit .................................................. 96Tabela 14. Validação dos experimentos realizados nas combinações dos módulos ....................... 100Tabela 15. Mudanças dos protótipos para as placas finais dos módulos........................................ 104Tabela 16. Custo de compra dos componentes do protótipo do Módulo Controlador .................... 105Tabela 17. Custo de compra dos componentes do protótipo do Módulo I²C ................................. 106Tabela 18. Custo de compra dos componentes do protótipo do Módulo Motor de Passo .............. 106Tabela 19. Custo de compra dos componentes do protótipo do Módulo Display LCD .................. 107Tabela 20. Custo de compra dos componentes do protótipo do Módulo Teclado Matricial ........... 107Tabela 21. Custo de compra dos materiais para produção dos protótipos ..................................... 108Tabela 22. Descrição dos pinos do PIC18F4520 .......................................................................... 146Tabela 23. Instruções de operações orientadas a byte ................................................................... 150Tabela 24. Instruções de operações orientadas a bit ..................................................................... 151Tabela 25. Instruções de operações literais .................................................................................. 151Tabela 26. Instruções de operações de controle ............................................................................ 151
  13. 13. LISTA DE EQUAÇÕESEquação 1 ...................................................................................................................................... 37Equação 2 ...................................................................................................................................... 37Equação 3 ...................................................................................................................................... 57Equação 4 ...................................................................................................................................... 57Equação 5 ...................................................................................................................................... 57Equação 6 ...................................................................................................................................... 58
  14. 14. RESUMOSILVA, Bruno Rodrigues. Kit Modular de Desenvolvimento Baseado em MicrocontroladorPIC. São José, 2011. 178 f. Trabalho de Conclusão de Curso (Graduação em Engenharia deComputação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí,São José, 2011.A prototipação de sistemas embarcados microcontrolados, tanto profissionais quanto acadêmicos,normalmente, utilizam um kit de desenvolvimento voltado ao uso do microcontrolador de umfabricante específico. Isso faz com que o kit não possa ser reutilizado em outros projetos que visamà utilização dos mesmos recursos periféricos, contidos na placa de circuito impresso do kit, commicrocontrolador de outro fabricante qualquer. Essa característica encontrada em kits tradicionaisacarreta uma limitação da flexibilidade do uso do kit, além de um aumento no custo de umdeterminado projeto pela compra de outro kit com os mesmos recursos para o microcontrolador dofabricante desejado. Para evitar esses problemas, este trabalho procurou relacionar em hardware osprincípios de modularidade para resolução de um problema complexo. Assim, o objetivo foiconceber um kit modular de desenvolvimento que possibilite ao usuário combinar os módulos deacordo com as suas necessidades, de modo que seus recursos sejam reutilizados em diferentesprojetos, independentemente do microcontrolador. Para este kit foram confeccionados cincomódulos distintos, sendo: um módulo destinado a utilização de microcontrolador PIC de 8 bits, umpara utilização de componentes periféricos compatíveis com o barramento I2C, um para o controlede motores de passo unipolares, um para a utilização de display LCD alfanumérico e mais um parautilização de teclado matricial de ordem 4. Neste trabalho foram realizadas as etapascorrespondentes ao levantamento de informações, modelagem, virtualização e prototipação do kitmodular de desenvolvimento, além de atividades práticas para os testes de validação de cadamódulo.Palavras-chave: Kit. Desenvolvimento. Modular. Microcontrolador. PIC.
  15. 15. ABSTRACTThe prototyping of embedded system, both professionals and academics, normally use adevelopment kit directed to use microcontroller of a specific manufacturer. This makes the kit cannot be reused in other projects that aim the utilization the same peripheral resources, contained inthe printed circuit board of the kit, with microcontroller of any other manufacturer. These featurefound in traditionals kits entails in a limitation of the flexibility of the use of the kit, beyond anincrease in the cost of a project by buying another kit with the same resources for themicrocontroller of the manufacturer desired. To avoid these problems, this work searched to relate,in hardware, the principles of modularity for solving of a complex problem. So, the objective wasconceive a modulate development kit that allows the user combine the modules accordance with hisneeds, so that its resources be reused in different projects, independently of the microcontroller.For this development kit will be made five distinct modules, being one module for the use of 8-bitPIC microcontroller, one for the use of peripherals components compatible with the I2C bus, onefor control of stepper motors, one for the use of LCD display and one for use of a matrix keyboard.At this work were realized the corresponding steps at the information survey, modeling,virtualization and prototyping of the modular development kit, beyond as practical activities for thevalidation tests for each module.Keywords: Kit. Development. Modulate. Microcontroller. PIC.
  16. 16. 1 INTRODUÇÃO Normalmente, as instituições de ensino do Brasil, que oferecem cursos de nível técnico,tecnólogo e engenharia, reservam, em suas disciplinas, horas/aula dedicadas ao ensino prático dosassuntos abordados, de modo teórico, em sala de aula. Essa prática pedagógica é fundamental para aabsorção do conteúdo por parte do estudante (FRAGA, 2008). O curso de Engenharia de Computação apresenta, em sua matriz curricular, disciplinas comementas que envolvem aplicações práticas em laboratórios, equipados com recursos que, na maioriadas vezes, vão além de computadores e internet. Sendo assim, algumas universidades como UFRGS(Universidade Federal do Rio Grande do Sul), UFES (Universidade Federal do Espírito Santo) eUNIVALI (Universidade do Vale do Itajaí), já abordam microcontroladores/microprocessadores noconteúdo programático de algumas disciplinas, onde utilizam kits de desenvolvimento naimplementação das atividades práticas realizadas em laboratórios. À medida que são avaliados por suas implementações práticas, os alunos demonstraminteresse em realizar suas atividades fora do horário de aula, podendo assim melhorar seus trabalhos(FRAGA, 2008). Infelizmente, os laboratórios não podem ficar abertos a todo o momento para oestudante, que por sua vez, em alguns casos, não dispõe do tempo em que os laboratórios estãodisponíveis. Para esses casos, supõe-se que o aluno deveria comprar um kit por conta própria, eassim, praticar os conteúdos da matéria em horário extra disciplinar. Algumas empresas quecomercializam esses kits e materiais didáticos visam, em sua maioria, apresentar produtos com umagama de possibilidades de aplicações elevada. Assim, seus materiais podem abranger diversasfuncionalidades e, consequentemente, ampliar o leque de clientes em potencial.1.1 KITS DE DESENVOLVIMENTO BASEADOS EM PIC Os kits podem se diferenciar muito de um para o outro, dependendo do foco de suautilização e dos recursos contidos. Entre os kits de desenvolvimento baseados em microcontroladorPIC (Peripherical Interface Controller), destacam-se os fabricantes: LabTools, Microgenios, Cerne-Tec e AcePIC, os quais disponibilizam seus kits através de sites de comércio eletrônico para todo oBrasil. Na Tabela 1, são apresentados alguns exemplos de kits de desenvolvimento que sãovendidos com o microcontrolador PIC16F877A, no qual apresentam recursos comuns entre eles,tais como: display LCD (Liquid Crystal Display), display de 7 segmentos, teclas, leds e etc.
  17. 17. Tabela 1. Exemplos de kits de desenvolvimento baseados no PIC16F877A Fabricante Nome Preço à vista Ilustração LabTools McLab 2 - 16F R$ 556,60 Microgenios Kit PICgenios PIC16F877A R$ 580,00 Cerne-Tec PICLAB16F877A R$ 399,90 AcePIC ACEPIC 40 v2.0 (PIC16F877A) R$ 275,90Fonte: Adaptado de AcePIC (2010), Cerne-Tec (2010), LabTools (2010) e Microgenios (2010). Todos os kits citados são confeccionados em uma única placa de circuito impresso, ondepossuem várias possibilidades de operação a serem trabalhadas com o microcontrolador. Porém,essa abordagem de fabricação de kit, traz consigo desvantagens importantes quanto à prototipaçãode projetos e, até mesmo, quanto a sua utilização didática.1.2 PROBLEMATIZAÇÃO1.2.1 Formulação do problema Do ponto de vista de projeto, o prejuízo encontra-se na reutilização. Um kit que possui osrecursos necessários para uma prototipação, com exceção da abordagem do microcontrolador, nãoserve para o projeto. Um determinado kit de desenvolvimento, construído em uma única placa decircuito impresso, estará limitado a um determinado fabricante. Assim, o desenvolvedor necessitaráde artifícios técnicos para resolver esta questão, ou até mesmo comprar outro kit voltado ao uso domicrocontrolador do fabricante desejado. Esse problema também é verdade quando o microcontrolador é compatível, mas nãoapresenta um determinado recurso considerado fundamental para o desenvolvedor. Nesse caso, os 2
  18. 18. fabricantes dos kits procuram amenizar este problema introduzindo um conector de expansão,derivado das portas de entrada/saída do microcontrolador, no qual pode-se conectar uma outra placacom a funcionalidade desejada. Para ambas as situações possíveis de se encontrar em um determinado projeto, torna-seevidente o aumento no custo de desenvolvimento. Do ponto de vista didático, o valor agregado em kits “super completos”, com recursos que oestudante desconhece ou não utilizará, torna o investimento inicial muito elevado para o aluno. Issopode acarretar em uma desmotivação na compra desse material didático e, até mesmo, na matérialecionada. Assim, geralmente, o único kit no qual o estudante pode testar suas aplicações na práticaé o do próprio laboratório. Nesses moldes, a disciplina tem de ser conduzida de tal forma que váriosalunos tenham que dividir tempos de utilização do kit, dificultando o estudante a realizar umadeterminada tarefa prática, acarretando em um possível mau aproveitamento de horas/aula práticada disciplina, por parte do estudante.1.2.2 Solução proposta Para suprir as carências apresentadas em relação aos kits de desenvolvimento tradicionais,este trabalho propôs como solução construir um kit de desenvolvimento modular, a qual foi baseadaem microcontrolador PIC. Com isso, busca-se oferecer um produto educacional de forma a facilitaro acesso por parte dos interessados, possibilitando a inclusão gradual de funcionalidades ao kit.Além disso, flexibilizar a reutilização de recursos de entrada e saída de dados, para prototipação desistemas embarcados, respeitando a conectividade entre os módulos. O trabalho busca aplicar uma das principais metodologias de programação utilizada emconstrução de software, a qual consiste em dividir um determinado problema em partes menorespara que facilite sua resolução. Em relação à esta abordagem, Boratti (2004, p. 95) cita que, Em determinadas situações, a solução de problemas passa pela solução de problemas menores (subproblemas) os quais não se constituem em novos métodos. Nesses casos, pode-se fazer com que a implementação do método seja dividida em módulos, onde cada módulo resolverá um subproblema. Esse conceito de software foi aplicado à solução proposta no desenvolvimento do hardware,de modo que suas funcionalidades estejam em placas para serem combinadas e/ou utilizadasseparadamente. Um kit construído desta forma possibilita montar projetos de pequeno, médio egrande porte, diferenciados apenas pelo número de módulos utilizados. 3
  19. 19. Foram considerados módulos periféricos, os módulos construídos para atuarempassivamente em um sistema embarcado, ou seja, eles receberão ação direta do usuário e/ou domicrocontrolador. Por sua vez, o módulo contendo o microcontrolador foi considerado móduloprincipal. Em uma solução semelhante, Melo e Zapelini (2003, p. 8) utilizaram em um de seusmódulos principais o microcontrolador AT89S8252 (Atmel), onde concluíram em seu artigo que, Ao permitir uma ampla variedade de experimentos didáticos, em diferentes níveis de complexidade, e a construção rápida de protótipos, o equipamento proposto neste artigo demonstra-se uma importante ferramenta de apoio ao processo ensino/aprendizagem em cursos de Engenharia, Técnicos ou de Tecnologia. Com a solução proposta, esse trabalho pretende atingir resultados semelhantes aos de Melo eZapelini, porém o microcontrolador que foi aplicado ao módulo principal foi o PIC, da Microchip.Diferente do 8051 (Intel) e o AVR (Atmel), o PIC não é abordado nas disciplinas do curso,tornando a realização do trabalho uma oportunidade de aprendizado desse que é um dosmicrocontroladores mais populares do mercado. Além disso, possui ampla documentação,ferramentas de desenvolvimento disponíveis, abrangência de aplicações que podem serdesenvolvidas.1.3 JUSTIFICATIVA A execução deste projeto também se justifica em nível de Trabalho de Conclusão de Curso(TCC) para o Curso de Engenharia da Computação, uma vez que trata do desenvolvimento de umsistema embarcado que faz uso de várias tecnologias, conceitos e teorias relevantes à essa área,como: (i) construção de protótipo físico com componentes eletrônicos; (ii) programação emlinguagem C para microcontroladores PIC; (iii) construção de sistemas embarcados com diferentesperiféricos; e (iv) elaboração e simulação de circuitos eletrônicos em software.1.3.1 Importância Esse projeto de TCC não busca substituir os kits de desenvolvimentos comerciais, masdesenvolver uma solução que possibilite montar um kit de acordo com as necessidades doprojetista, podendo ser, possivelmente, de custo mais acessível para alunos, professores e/ouinteressados que desejam utilizar kits de forma particular, em seus projetos. Não fazem parte do escopo deste trabalho o projeto da fonte de alimentação, no qual foiutilizada uma fonte criada em outros projetos, e a implementação de roteiros e/ou tutoriais deexperiências com o kit, apenas os programas que validem a funcionalidade dos módulos. 4
  20. 20. Limitações podem ocorrer na implementação do módulo principal do kit, tornando-o restritoa utilização do microcontrolador escolhido para o projeto. Porém, como mencionado anteriormente,o projetista pode criar seu modulo principal específico apenas respeitando a conectividade com osoutros módulos do kit.1.4 OBJETIVOS1.4.1 Objetivo Geral O objetivo geral deste trabalho é construir um kit modular de desenvolvimento baseado nomicrocontrolador PIC de 8 bits para utilização em experimentos diversos relacionados à área desistemas embarcados, em cursos de nível técnico, tecnólogo e engenharia.1.4.2 Objetivos Específicos Os objetivos específicos deste trabalho são:  Definir os módulos periféricos que compõem o kit;  Escolher a forma de conexão entre os módulos do kit;  Desenvolver os módulos do kit;  Validar a funcionalidade dos módulos do kit; e  Documentar o trabalho.1.5 METODOLOGIA Foram considerados cinco etapas a fim de executar este trabalho, sendo elas: estudo, projeto,desenvolvimento, validação e documentação. As etapas de estudo e de projeto foram efetuadas noTCC (Trabalho de Conclusão de Curso) I, enquanto que as etapas de desenvolvimento, validação edocumentação foram efetuadas no TCC II. Na etapa de estudo, foi realizado um levantamento bibliográfico com o objetivo deidentificar referências que permitam fundamentar os conceitos necessários ao desenvolvimentodeste trabalho. Este levantamento bibliográfico foi baseado em livros e artigos. As referênciasforam obtidas através de compras realizadas pela internet em sites de livrarias e editoras, porlocação nas bibliotecas da UNIVALI e da UFSC (Universidade Federal de Santa Catarina) e em 5
  21. 21. publicações disponibilizadas na internet em sites de fabricantes de microcontroladores e de revistaseletrônicas. Na etapa de projeto foi realizado um levantamento dos módulos que foram implementadosno trabalho, além do tipo de conexão utilizado entre eles. No levantamento dos módulos, foramanalisados quais os componentes principais que seriam utilizados em cada módulo. Nolevantamento do tipo de conexão entre os módulos, foram analisados os requisitos de conexão decada módulo periférico com o módulo principal, a fim de determinar um tipo de conexão padrãoentre os módulos. A análise foi baseada na revisão bibliográfica realizada na etapa de estudo. Na etapa de desenvolvimento foram implementados os módulos do kit em duas plataformasdistintas, plataforma virtual e física. Na implementação virtual, os circuitos necessários parafuncionamento virtual dos módulos foram desenvolvidos no software de simulação de circuitoseletrônicos Proteus, abstraindo alguns componentes discretos no sistema, utilizando em seu lugarcomponentes completos adequados para a aplicação pertencente a sua biblioteca. Na implementaçãofísica, foram adicionados ao circuito dos módulos os componentes discretos abstraídos naimplementação virtual, onde foram montados os esquemas e o layout das placas de circuitoimpresso de cada protótipo dos módulos no software de confecção de PCI (Placa de CircuitoImpresso) Eagle. Na etapa de validação foram desenvolvidos alguns experimentos em linguagem C nocompilador MikroC PRO for PIC, para que fossem compilados e gravados no microcontrolador PICa fim de testar os circuitos desenvolvidos. Foram utilizados os mesmos softwares para validaçãotanto dos circuitos virtuais quanto dos circuitos físicos, tendo como objetivo o mesmocomportamento do sistema em ambas as plataforma. A etapa de documentação foi realizada ao longo de todo trabalho, procurando-se registrar aexecução das etapas descritas anteriormente para elaboração do produto proposto neste TCC. Asinformações levantadas para a fundamentação teórica estão registradas no Capítulo 2, enquanto queas informações relativas ao desenvolvimento do projeto estão no Capítulo 3. 6
  22. 22. 1.6 ESTRUTURA DO TRABALHO Este documento está estruturado em quatro capítulos. O Capítulo 1, Introdução, apresentouuma visão geral do trabalho. No Capítulo 2, Fundamentação Teórica, é apresentada uma revisãobibliográfica sobre: Microcontroladores, os microcontroladores de 8 bits fabricados pela MicrochipTechnology, assim como uma análise a respeito da compatibilidade entre os eles. Nesse capítulo,também é feita uma descrição dos recursos do microcontrolador PIC18F4520, do Barramento I2C(Inter-Intergrated Circuit) e dos Componentes periféricos, relevantes para o trabalho. O Capítulo 3apresenta o desenvolvimento dos módulos que foram desenvolvidos, incluindo o a metodologiausada para a elaboração da visão geral projeto, seus requisitos e a arquitetura de hardware utilizadapara o kit modular de desenvolvimento. O capítulo também discute os tipos de implementações dosmódulos e como eles foram desenvolvidos e validados. Concluindo, no Capítulo 4, são apresentadasas conclusões, onde são avaliadas as metodologias empregadas, as dificuldades enfrentadas e osresultados obtidos para alcançar as metas estipuladas no escopo deste trabalho. 7
  23. 23. 2 FUNDAMENTAÇÃO TEÓRICA Neste capitulo é apresentada uma introdução aos microcontroladores e exemplo defabricantes, à empresa Microchip Technology e sua classificação sobre seus microcontroladoresfabricados, aos recursos do microcontrolador PIC18F4520 considerados relevantes no trabalho, aobarramento I2C e aos periféricos selecionados para o kit.2.1 MICROCONTROLADORES Um microcontrolador (MCU) é um componente que possui microprocessador, memória eperiféricos no mesmo encapsulamento (ZANCO, 2007). Os microcontroladores são chips que podem ser programados para realizarem tarefasespecíficas. Os MCUs reagem às entradas de dados, de acordo com o programa gravado emmemória, gerando uma saída correspondente. Na Figura 1, estão representadas algumas unidades dehardware presentes no microcontrolador, dispensando a utilização de outros componentes em umcircuito, tornando-o um elemento poderoso no controle de processos lógicos utilizados em muitosequipamentos de uso diário como calculadoras, celulares, eletrodomésticos, brinquedos, etc.Figura 1. MicrocontroladorFonte: Verle (2008).
  24. 24. A estrutura interna do microcontrolador pode variar de acordo com o modelo adotado pelofabricante. Grande parte dos microcontroladores apresentam uma arquitetura tradicional do tipovon-Newmann, existindo apenas um barramento interno por onde passam as instruções e os dados,enquanto que outros utilizam a arquitetura Harvard, composto por dois barramentos internos, sendoum de dados e outro de instruções (SOUZA, 2008). A Figura 2.a representa a arquitetura von-Newmann com apenas um barramento tanto paradados (contido na memória de dados) quanto para instruções (contido na memória de programa). Jána Figura 2.b o acesso à memória de dados e memória de programa são realizados por barramentosseparados fisicamente. Nos microcontroladores de 8 bits, os dados são armazenados na memória emtamanhos de 1 byte (8 bits), dessa forma, na arquitetura von-Newmann, o barramento de dados einstrução são normalmente de 8 bits (de acordo com o tamanho do dado armazenado na memória dedados), enquanto que na arquitetura Harvard as instruções podem ser armazenadas em tamanhosmaiores, de 12, 14 e 16 bits, sendo acessadas pelo barramento de instruções de forma independente. ------------------------- (a) ---------------------------------------------------------- (b)Figura 2. Arquitetura do microcontrolador: (a) von-Newmann; (b) HarvardFonte: Verle (2008). Os microcontroladores de arquitetura Harvard utilizam tecnologia RISC (ReducedInstruction Set Computer – Computador com Conjunto de Instruções Reduzido). Eles possuempoucas instruções básicas, executadas tipicamente em apenas um ciclo de clock. Já os MCU dearquitetura von-Newmann, tipicamente utilizam tecnologia CISC (Complex Instruction SetComputer – Computador com Conjunto de Instruções Complexas) que usa uma grande quantidadede instruções para operar (BRAGA, 2010). 9
  25. 25. 2.1.1 Exemplo de fabricantes de microcontroladores de 8 bits A seguir, serão apresentados alguns fabricantes de microcontroladores de 8 bits entre muitosexistentes no mercado. Dentre as informações citadas de cada fabricante selecionado, recebemdestaque a arquitetura e algumas características adotadas para a linha de microcontroladores de 8bits produzidas pelas mesmas.National Semiconductor A National Semiconductor fabrica os microcontroladores COP8 (8-bit Control-OrientedProcessor). Esses MCUs possuem uma arquitetura do tipo Harvard modificada, onde apesar damemória de dados e a memória de programa ter seus barramentos separados, essa arquiteturapermite a transferência de dados da memória de programa para a memória de dados. O COP8apresenta um número de instruções superior que os RISC puros, onde quase todas (77%) tem 1 bytede tamanho, no entanto, contém também instruções multiprogramas (realizam mais de uma tarefa eutilizam mais de um ciclo de clock), comum em arquiteturas CISC. O COP8 da família S possue até5 portas de 8 bits de propósito geral para entrada e saída e memória ROM (Read Only Memory) quepode chegar até a 32 kbytes encapsulado em pastilhas de 28, 40 e 44 pinos. Ele também conta comperiféricos internos como USART (Universal Synchronous Asynchronous Receiver Transmitter),um par de comparadores analógicos e até 3 timers de 16 bits (NATIONAL SEMICONDUCTOR,2001).Freescale Semiconductor A Freescale, cuja matriz fica em Austin, Texas – EUA (Estados Unidos da América),autodenominada líder mundial na indústria de processadores integrados, foca tecnologias paraclientes dos setores automotivo, de produtos de consumo e de comunicações. Ela apresenta umaampla variedade de microcontroladores de 8 bits para as famílias HCS08, HC08, HC05 e HC11. Aarquitetura utilizada nos microcontroladores da Freescale é do tipo von-Newmann, onde os MCUsdas famílias HC05 e HC11 chegam a conter 210 instruções. Quanto aos periféricos, a famíliaHCS08 conta com módulos de conversor A/D (Analógico/Digital), Timer/PWM (Pulse-WidthModulation), comunicação serial, além de memória de programa com capacidade de 4 kbytes à 60kbytes e memória de dados entre 128 bytes à 4 kbytes e pode operar em frequência máxima de 40MHz (FREESCALE SEMICONDUCTOR, 2007). 10
  26. 26. Por ser fabricante do microcontrolador escolhido para realização do trabalho, a MicrochipTechnology recebe uma atenção diferenciada. A empresa será abordada a seguir, separadamente dasque foram citadas até agora.2.2 MICROCHIP TECHNOLOGY A Microchip Technology, fabricante dos microcontroladores PIC, é uma empresa norteamericana de semicondutores, com sede em Chandler - Arizona - EUA. Tendo como foco principala venda de dispositivos semicondutores, a empresa disponibiliza, para os desenvolvedores,softwares, documentação e bibliotecas gratuitamente, através do seu site. Em 1990, a Microchip iniciou seus negócios no Brasil, em parceria com a Artimar(representante e distribuidora de várias empresas americanas no setor de eletrônica). Hoje muitasempresas divulgam e comercializam os produtos fabricados pela Microchip, porém a Artimarmantém-se como sua representante exclusiva no país (SOUZA, 2008).2.2.1 Famílias e grupos de microcontroladores PIC de 8 bits As famílias de microcontroladores PIC de 8 bits, fabricados pela Microchip Technology,utilizam arquitetura Harvard com tecnologia RISC, limitadas a 83 instruções de 16 bits para as demaior performance. Os MCUs podem trabalhar com frequências de até 32MHz com osciladorinterno. Os PIC podem variar entre 6 pinos até 100 pinos contendo até 128 kbytes para memória deprograma e 4 kbytes para memória de dados. Pode-se encontrar PIC com controladores periféricospara comunicação serial, PWM, conversor A/D e comparadores, além de outros especializados paraUSB (Universal Serial Bus), LCD, CAN (Controller Area Network) e Ethernet (MICROCHIPTECHNOLOGY, 2010). Os microcontroladores PIC são divididos em quatro grupos de performance, arranjados deacordo com o tamanho da instrução armazenada em memória de programa e módulos internos dehardware: Baseline (instruções de 12 bits), Mid-Range (instruções de 14 bits), Enhanced Mid-Range (instruções de 14 bits, com módulos de hardware avançados) e PIC18 (instruções de 16 bits).Na Figura 3, é apresentado um gráfico das famílias de microcontroladores PIC associados aosagrupamentos por tamanho da palavra de instrução no qual eles pertencem. 11
  27. 27. Figura 3. Gráfico ilustrado da organização dos PICs em tamanho da palavra de instrução.Fonte: Microchip Technology (2010). Tendo em vista um ambiente de desenvolvimento mais flexível, a Microchip oferececaracterísticas de migração entre os microcontroladores. Em geral, os MCUs de 8 bits sãoclassificados em famílias de compatibilidade de pinos e de codificação, de modo que um PIC comum determinado número de pinos seja compatível a outro pertencente da mesma família. Destaforma, a empresa oferece maior adaptabilidade em projetos para reagir às mudanças de requisito,característica importante para sistemas embarcados (MICROCHIP TECHNOLOGY, 2010). Uma família de microcontroladores pode estar contida em diferentes grupos de performance.Assim, um MCU utilizado em um determinado projeto pode ser substituído por outro maisadequado, sem significativas mudanças no hardware e/ou software. No site do fabricante énormalmente disponibilizado um documento de migração de um microcontrolador para outrocompatível com o mesmo, facilitando ainda mais a adaptação do código montado em umdeterminado microcontrolador para um de outro grupo contendo o mesmo número de pinos. NaTabela 2, são apresentadas algumas características dos grupos dos PICs relacionando as famíliaspertencentes a cada um deles. 12
  28. 28. Tabela 2. Características dos grupos de microcontroladores PICPalavra de 12 bits 14 bits 16 bitsinstruçãoGrupo Enhanced Baseline Mid-Range PIC18 Mid-RangePinos 6-40 8-64 8-64 18-100Interrupções Não possui Tratamento Tratamento único de Tratamento múltiplo tratamento de único de interrupção salvando de interrupção interrupções interrupção contexto de hardware salvando contexto de hardwarePerformance 5 MIPS* 5 MIPS* 8 MIPS* Até 16 MIPS*Nº de 33 35 49 83InstruçõesMemória de Até 3K bytes Até 14K bytes Até 28K bytes Até 128K bytesProgramaMemória de Até 134 bytes Até 368 bytes Até 1.5K bytes Até 4K bytesDadosPilha (Stack) 2 níveis 8 níveis 16 níveis 32 níveisMódulos  Comparador Além da Além do Mid-Range: Além do Enhancedinternos  8 bits A/D Baseline:  Múltipla Mid-Range:  Memória de  SPI (Serial comunicação de  Multiplicação 8x8 dados Peripheral periféricos em hardware  Oscilador Interface)/I²C  Espaço de  CAN interno  UART programação linear  CTMU (Charge  PWMs  PWMs com Time Time Measurement  LCD Base independentes Unit)  10 bits A/D  USB  Amplificador  Ethernet Operacional  12 bits A/DDestaque Menor custo Ótimo custo Custo efetivo com Alta performance, nos menores benefício em mais performance e otimização em modelos performance memória programas em C, periféricos avançadosTotal de 16 58 29 193dispositivosFamílias PIC10, PIC12, PIC12F1XXX, PIC12, PIC16 PIC18 PIC16 PIC16F1XXX*MIPS: Milhões de Instruções Por SegundoFonte: Adaptado da Microchip Technology (2010). A seguir serão apresentados alguns exemplos de microcontroladores PIC de 8 bitscompatíveis pertencentes a grupos diferentes. 13
  29. 29. 2.2.2 Exemplos de microcontroladores PIC de 8 bits Foram selecionados, neste estudo, quatro microcontroladores pertencentes a gruposdiferentes: três da família PIC16 e um da família PIC18. Eles estão disponíveis emencapsulamentos de 18 pinos.PIC16F54 O PIC16F54 pertence ao grupo Baseline de microcontroladores PIC de 8 bits. Ele possui 33instruções de 12 bits, 0.75 kbytes de memória de programa, 25 bytes de memória RAM (RandomAccess Memory) e até 12 pinos de E/S (Entrada/Saída) digital. Quanto a periféricos, ele apresenta 1temporizador de 8 bits. O MCU pode operar em 20 MHz de clock com velocidade de 5 MIPS(MICROCHIP TECHNOLOGY, 2007). A Figura 4 apresenta o diagrama de pinos do PIC16F54.Figura 4. Diagrama simplificado dos pinos do PIC16F54.Fonte: Microchip Technology (2007).PIC16F628A O PIC16F628A pertence ao grupo Mid-Range de microcontroladores PIC de 8 bits. Elepossui 35 instruções de 14 bits, 3.5 kbytes de memória de programa, 224 bytes de memória RAM eaté 16 pinos de E/S digital. Quanto a periféricos, ele apresenta 2 temporizador de 8 bits, 1temporizador de 16 bits, memória EEPROM (Electrically-Erasable Programmable Read-OnlyMemory) de 128 bytes, comparador, CCP (Capture/Compare/PWM) e USART. O MCU podeoperar em 20 MHz de clock com velocidade de 5 MIPS (MICROCHIP TECHNOLOGY, 2009). AFigura 5 apresenta o diagrama de pinos do PIC16F628A. 14
  30. 30. Figura 5. Diagrama simplificado dos pinos do PIC16F628A.Fonte: Microchip Technology (2009).PIC16F1826 O PIC16F1826 pertence ao grupo Enhanced Mid-Range de microcontroladores PIC de 8bits. Ele possui 49 instruções de 14 bits, 3.5 kbytes de memória de programa, 256 bytes de memóriaRAM e até 16 pinos de E/S digital. Quanto a periféricos, ele apresenta 2 temporizador de 8 bits, 1temporizador de 16 bits, memória EEPROM de 256 bytes, comparador, ECCP (EnhancedCapture/Compare/PWM), USART, MSSP (Master Synchronous Serial Port), conversor A/D. OMCU pode operar em 32 MHz de clock com velocidade de 8 MIPS (MICROCHIPTECHNOLOGY, 2010). A Figura 6 apresenta o diagrama de pinos do PIC16F1826.Figura 6. Diagrama simplificado dos pinos do PIC16F1826.Fonte: Adaptado de Microchip Technology (2010). 15
  31. 31. PIC18F1320 O PIC18F1320 pertence ao grupo e família PIC18 de microcontroladores PIC de 8 bits. Elepossui 77 instruções de 16 bits, 8 kbytes de memória de programa, 256 bytes de memória RAM eaté 16 pinos de E/S digital. Quanto a periféricos, ele apresenta 1 temporizador de 8 bits, 3temporizador de 16 bits, memória EEPROM de 256 bytes, ECCP, USART e conversor A/D. OMCU pode operar em 40 MHz de clock com velocidade de 10 MIPS e pode realizar multiplicaçãode 8 bits por 8 bits em hardware (MICROCHIP TECHNOLOGY, 2007). A Figura 7 apresenta odiagrama de pinos do PIC18F1320.Figura 7. Diagrama simplificado dos pinos do PIC18F1320.Fonte: Microchip Technology (2007). Abstraindo as funções dos pinos que não são comuns para todos, na Tabela 3 é apresentadoo número da ordem do pino (primeira coluna), a descrição da função do pino compatível entre osmicrocontroladores citados (segunda coluna), o nome da função do pino compatível entre osmicrocontroladores para a família PIC16 (terceira coluna) e o nome da função do pino compatívelentre os microcontroladores para a família PIC18 (quarta coluna). A descrição completa dos pinospode ser encontrada no data sheet individual do microcontrolador disponibilizado no site dofabricante. 16
  32. 32. Tabela 3. Descrição das funcionalidades dos pinos compatíveis entre os microcontroladores PICexemplificados Nome da função Nome da funçãoPino Descrição da função compatível para família PIC16 para família PIC18 1 E/S digital RA2 RA0 2 E/S digital RA3 RA1 3 Entrada de clock do temporizador 0 T0CKI T0CKI Entrada do sinal de reset MCLR MCLR 4 Entrada de tensão para modo programação VPP VPP 5 Aterramento do chip VSS VSS 6 E/S digital RB0 RA2 7 E/S digital RB1 RA3 8 E/S digital RB2 RB0 9 E/S digital RB3 RB1 10 E/S digital RB4 RB4 11 E/S digital RB5 RB5 E/S digital RB6 RB6 12 Entrada do clock de programação ICSPTM ICSPCLK* PGC E/S digital RB7 RB6 13 Entrada do dados de programação ICSPTM ICSPDAT* PGD 14 Alimentação do chip VDD VDD 15 Saída para oscilador externo OSC2/CLKOUT OSC2/CLKO 16 Entrada para oscilador externo OSC1/CLKIN OSC1/CLKI 17 E/S digital RA0 RB2 18 E/S digital RA1 RB3Fonte: Adaptado de Microchip Technology (2007), Microchip Technology (2009), MicrochipTechnology (2010) e Microchip Technology (2007).Compatibilidade entre PICs Observa-se que os microcontroladores PIC, com o mesmo número de pinos, pertencentes amesma família, são fortemente compatíveis. Um MCU compatível com outro familiar, porém de umgrupo mais avançado, mantém a funcionalidade primária do pino associando novas funcionalidadesrelativas ao grupo de evolução. No caso do microcontrolador da família PIC18 e os da famíliaPIC16, em alguns casos, eles são fracamente compatíveis, onde o hardware pode ser mantido, mas acodificação da arquitetura é alterada. Se levado em consideração esses aspectos, pode-se realizar atroca de um microcontrolador em um projeto por outro mais adequado sem grandes mudanças nohardware de um sistema computacional qualquer. Em geral, a compatibilidade dos pinos entre os microcontrolador PIC é identificada nospinos de E/S digital, alimentação e aterramento do chip, além dos pinos para as funções de reset, 17
  33. 33. oscilador externo e as relacionadas à gravação do microcontrolador. Por conter essa característica, oPIC tornou-se a escolha de microcontrolador para o trabalho proposto. Com exceção do PIC16F54, os microcontroladores citados podem ser encontrados emencapsulamentos de 18, 20 e 28 pinos. A diferença básica entre os encapsulamentos de 18 e o de 20pinos, está na presença de mais um pino para aterramento e mais um pino para alimentação do chip.A diferença entre os encapsulamentos de 20 e 28 pinos, está na presença de pinos que não exercemconexão chamados de NC (No Connect). Esses diferentes encapsulamentos possíveis para osmicrocontroladores citados serão abordados a seguir.2.2.3 Encapsulamento Dentre os tipos de encapsulamentos disponibilizados pela Microchip, são brevementeapresentados os tipos QFN (Quad Flat, No Lead Package), SOIC (Small Outline Plastic Packages),SSOP (Shrink Small Outline Packages) e PDIP (Plastic Dual In-Line Packages). Esses são os tiposde encapsulamento mais comuns entre os microcontroladores PIC de 8 bits.QFN O encapsulamento QFN pode ser encontrado em circuitos integrados com 16, 20, 24, 28, 40,44, e 64 pinos. Possui um formato quadrangular com tamanho de largura e altura que podem variarde 3mm até 9mm com a espessura mantendo-se em 0.9mm. Os pinos são situados na parte inferiordo chip, com largura entre 0.20mm e 0.38mm, altura entre 0.35mm e 0.55mm e espessura constanteem 0.20mm para tamanhos normais dos contatos (MICROCHIP TECHNOLOGY, 2010). Na Figura8, pode-se visualizar um chip em encapsulamento QFN.Figura 8. Vista em perspectiva do encapsulamento QFN em um chip com 28 pinos.Fonte: Digi-Key (2010). 18
  34. 34. SOIC Os circuitos integrados em encapsulamentos SOIC podem ser encontrados com 8, 14, 16,18, 20, 24 e 28 pinos. Com formato retangular, a largura do chip pode variar de 4.90mm até17.90mm, sendo encontrado tanto com altura de 3.90mm e espessura 1.25mm, quanto com 7.50mmde largura e 2.05mm de espessura. Os pinos são situados nas laterais do chip, sendo eles levementecurvados para soldagem na superfície da placa. Para todos os tamanhos dos chips, a largura, altura eespessura dos pinos têm tamanho mínimo de 0.31mm, 1.04mm e 0.17mm, respectivamente, emáximo de 0.51mm, 1.40mm e 0.25mm, respectivamente. As dimensões do chip variam de acordocom o número de pinos do circuito integrado (MICROCHIP TECHNOLOGY, 2010). Na Figura 9,pode-se visualizar um chip em encapsulamento SOIC.Figura 9. Vista em perspectiva do encapsulamento SOIC em um chip com 28 pinos.Fonte: Digi-Key (2010).SSOP O encapsulamento SSOP está disponível em 20, 24 e 28 pinos. A estrutura do chip ésemelhante ao encapsulamento SOIC, porém o chip mantém a altura entre 5.00mm e 5.60mm e aespessura entre 1.65mm e 1.85mm independente da quantidade dos pinos. A variação de pinosaltera apenas a largura, variando entre 6.90mm, tamanho mínimo para 20 pinos, até 10.50mm,tamanho máximo para 28 pinos. Quanto aos pinos, a largura permanece entre 0.22mm e 0.38mm, aaltura é fixa em 1.25mm e a espessura fica em torno de 0.09mm e 0.25mm também independente daquantidade no encapsulamento (MICROCHIP TECHNOLOGY, 2010). Na Figura 10, encontra-seum chip em encapsulamento SSOP. 19
  35. 35. Figura 10. Vista em perspectiva do encapsulamento SSOP em um chip com 28 pinos.Fonte: Digi-Key (2010).PDIP O encapsulamento PDIP é comumente observado em circuitos integrados utilizados paraprototipação devido à facilidade de utilização em protótipos montados em placas protoboard.Assim como os encapsulamentos SOIC e SSOP, também possui uma estrutura retangular, porém ospinos são retilíneos e rígidos semelhantes a um “prego achatado”, tendo em vista o encaixe do chipem superfícies perfuradas. Na Figura 11, pode-se observar um circuito integrado emencapsulamento PDIP.Figura 11. Vista em perspectiva do encapsulamento PDIP em um chip com 28 pinos.Fonte: Digi-Key (2010). São encontrados microcontroladores com 8, 14, 16, 18, 20, 24, 28, 40 e 64 pinos nesteencapsulamento. Independente do número de pinos, a haste perfurante dos pinos varia entre0.34mm e 0.56mm de largura, 2.54mm e 5.8mm de altura e 0.20mm e 0.38mm de espessura,excluindo a “cabeça” do pino. A distância de uma haste do pino à outra é de 2.54mm. O corpo do 20
  36. 36. chip pode variar bastante na largura com o aumento do número de pinos, permanecendo entre8.84mm (tamanho mínimo para 8 pinos) e 57.91mm (tamanho máximo para 64 pinos), na alturavaria em 6.10mm (tamanho mínimo até 20 pinos) e 17.53mm (tamanho máximo em 64 pinos) e naespessura mantém-se entre 2.92mm e 4.95mm (MICROCHIP TECHNOLOGY, 2010). Na Figura12, observam-se as dimensões 37.40mm, para largura, e 13.53mm, para altura, de um chip deencapsulamento PDIP. A Figura 13 apresenta as dimensões 0.46mm, para largura, e 3.30mm, paraaltura, da haste perfurante do pino e as medidas das espessuras do corpo, com 3.30mm, e do pino,com 0.25mm, do circuito integrado.Figura 12. Vista superior do encapsulamento PDIP em um chip com 28 pinos.Fonte: Adaptado da Microchip Technology (2010). (a) (b)Figura 13. (a) Vista lateral e (b) vista frontal do encapsulamento PDIP em um chip com 28 pinos.Fonte: Adaptado da Microchip Technology (2010). Tendo em vista a utilização em laboratório do produto gerado deste trabalho, procurou-seselecionar um microcontrolador pertencente ao grupo de maior performance dos microcontroladoresPIC de 8 bits. Além disso, o MCU da família PIC18 deve ser de manuseio simplificado,possibilitando a troca de microcontrolador em um soquete correspondente ao seu encapsulamento.Com essas premissas, o microcontrolador escolhido foi o PIC18F4520 em encapsulamento PDIP.Alguns de seus recursos serão apresentados na seção seguinte. 21
  37. 37. 2.3 MICROCONTROLADOR PIC18F4520 O PIC18F4520 pertence ao grupo e família de microcontroladores de 8 bits PIC18, de maiorperformance entre as famílias de 8 bits da Microchip. Ele possui um conjunto de 83 instruçõesRISC de 16 bits. A seguir, o microcontrolador é apresentado de forma mais detalhada, inicialmente,com as características da estrutura externa e interna do MCU em encapsulamento PDIP e após, sãoapresentados seus recursos básicos e avançados considerados relevantes ao trabalho.2.3.1 Estrutura externa O microcontrolador PIC18F4520 em encapsulamento PDIP de 40 pinos é ilustrado naFigura 14. Com exceção dos pinos dedicados a alimentação e aterramento do microcontrolador, sãoatribuídas mais de uma função para os pinos do PIC18F4520 conforme apresentada na Tabela 22contido no Anexo I (MICROCHIP TECHNOLOGY, 2008). ---Figura 14. Diagrama dos pinos do PIC18F4520 em encapsulamento PDIP de 40 pinos.Fonte: Adaptado de Microchip Technology (2008).2.3.2 Estrutura interna Internamente, o PIC18F4520 assume a arquitetura Harvard, com a unidade central deprocessamento (CPU – Central Processing Unit) acessando a memória de programa e memória dedados em barramentos distintos. Acompanhando o barramento de dados, estão os conjuntos de 22
  38. 38. portas A, B, C, D e E de comunicação digital externa, a memória de dados EEPROM, entre outroselementos do MCU. Na Figura 15 é apresentada a estrutura interna do microcontrolador.Figura 15. Estrutura interna do microcontrolador PIC18F4520.Fonte: Adaptado de Microchip Technology (2008). 23
  39. 39. 2.3.3 Recursos de hardware Entre os recursos básicos do MCU, estão os módulos presentes em alguns PIC do grupo demenor performance: oscilador, watchdog timer, reset, memória de dados, memória de programa,conjunto de instruções e portas de E/S. Eles são os elementos principais para o funcionamento domicrocontrolador e serão abordados de forma simplificada nos itens seguintes.Oscilador O clock é quem dá o ritmo de operação do microcontrolador. Um oscilador determina avelocidade com que o clock do microcontrolador opera (BRAGA, 2010). Quanto maior a frequênciade oscilação, maior será o número de instruções executada em um determinado período. Não existeuma fórmula para a escolha do oscilador ideal para o projeto, porém a escolha do tipo deve atenderprimeiramente ao requisito de eficácia (funcionar corretamente conforme a especificação inicial) e,em segundo, o requisito de custo (ZANCO, 2007). O PIC18F4520 possui um módulo oscilador interno, que está calibrado para operar em 8MHz, porém, com um circuito oscilador externo, a frequência de oscilação pode chegar á 40 MHzcom utilização de cristais osciladores. Nessa caso, existe o viés da utilização exclusiva das portas deentrada e saída (RA6 e RA7) para conexão do oscilador (MICROCHIP TECHNOLOGY, 2008). AFigura 16 apresenta dois circuitos osciladores externos, um formado por circuito RC (ResistorCapacitor) e outro formado por um cristal oscilador ou ressonador, ligado ao microcontrolador. Osvalores para os capacitores são sugeridos pela Microchip no data sheet do componente. (a) (b)Figura 16. Oscilador externo por (a) circuito RC, (b) cristal/ressonador.Fonte: Adaptado de Microchip Technology (2008). 24
  40. 40. A frequência gerada pelo oscilador, dá origem ao ciclo de máquina do microcontrolador.Nos microcontroladores PIC, esse ciclo é equivalente a um quarto da frequência de operação(ZANCO, 2007). Souza (2008, p. 24) acrescenta que a divisão do ciclo de máquina forma quatrofases (Q1, Q2, Q3 e Q4), O program counter é incrementado automaticamente na fase Q1 do ciclo de máquina e a instrução seguinte é buscada da memória de programa e armazenada no registrador de instruções no ciclo Q4. Ela é decodificada e executada no próximo ciclo, no intervalo de Q1 até Q4. Essa característica de buscar a informação num ciclo de máquina e executá-la no próximo é conhecida como PIPELINE. O pipeline torna o sistema muito mais rápido, permitindo que quase todas as instruçõessejam executadas em apenas um ciclo de máquina. A exceção fica por conta das instruções de“salto” no registrador PC (program counter) que contém o endereço da próxima instrução a serbuscada. A arquitetura Harvard dos PIC permite que esse recurso seja implementado facilmente,devido à separação dos barramentos de instrução e de dados (ZANCO, 2007).Watchdog Timer (WDT) O WDT consiste em com contador de 16 bits que possui um oscilador próprio, independentedo oscilador principal, utilizado para monitorar a execução do software gravado nomicrocontrolador, sendo inacessível ao programador tanto para escrita, quanto para leitura. Quandoo contador incrementa o valor máximo armazenado no registrador WDT (0xFF), retornando aovalor mínimo (0x00), o MCU é imediatamente reinicializado, caso esteja operando em condiçõesnormais, ou acordado, caso esteja em modo de espera ativado pela instrução SLEEP. Essa condiçãoé identificada como estouro do watchdog (SOUZA, 2008). Zanco (2007, p. 112) afirma que “a principal função do WDT é proteger o sistema contrapossíveis travamentos, fazendo com que o sistema resete e volte a funcionar”. Normalmente, oPIC18F4520 mantém o período de 4ms por incremento no contador WDT levando 1.02s paraestourar, porém, com postscale (escala de estouro por voltas realizada pelo contador) de 1 para 128,pode chegar à 2.18 minutos. A única forma de evitar o estouro do watchdog é através das instruçõesCLRWDT (Clear Watchdog Timer), no qual o registrador WDT é zerado, evitando que ele estoure(MICROCHIP TECHNOLOGY, 2008). 25
  41. 41. Reset O reset é o mecanismo de inicializar ou reinicializar o funcionamento do microcontrolador.Quando o reset é acionado, o MCU volta a executar as instruções a partir do endereço 0x00. Essedesvio pode ocorrer em algumas situações durante a operação normal, tais como: quando o chip éligado (POR – Power-on Reset), quando há uma queda na tensão de alimentação do chip (BOR –Bourn-out Reset), quando acionado o sinal de reset externo (o pino MCLR atinge o nível baixo detensão), quando o software força um desvio para o endereço 0x00 (pode ser realizado pela instruçãoGOTO) e quando ocorre um estouro do watchdog timer (ZANCO, 2007). O PIC18F4520 possui um módulo dedicado para essa funcionalidade, porém ela pode serimplementada em um circuito externo acoplado ao pino MCLR, desabilitando esse recurso. Destaforma, o pino pode ser usado para entrada e saída de dados digital (RE3). O POR mais básico podeser implementado ligando o pino MCLR, quando habilitado, diretamente na alimentação do chip(SOUZA, 2008). Na Figura 17, são ilustrados dois circuitos externos, POR e BOR, associados aopino MCRL do microcontrolador. (a) (b)Figura 17. Circuito de reset externo (a) POR e (b) BOR.Fonte: Adaptado de Souza (2008) e Zanco (2007).Memória de dados O grupo PIC18 possui dois tipos de memória de dados, ambas capazes de armazenar umdado de 8 bits: a memória de dados RAM, volátil (mantem os dados armazenados somenteenquanto estiver energizado), e a memória de dados EEPROM, não-volátil (mantém os dados 26
  42. 42. mesmo depois do chip desligado). É na RAM que são armazenadas as variáveis e registradores definalidades especiais (SFR – Special Function Registers) utilizados no programa. Por outro lado, aEEPROM é utilizada para armazenar dados ou configurações que precisam ser mantidos e/ourecuperados após um desligamento do microcontrolador (SOUZA, 2008). O PIC18F4520 possui uma memória RAM de 4096 bytes (apenas 1536 bytes são usados),divididos em 16 bancos de 256 bytes, endereçáveis por 12 bits, sendo que os 4 bits maissignificativos identificam o banco que será acessado (BSR – Bank Select Register), enquanto que os8 bits menos significativos identificam o endereço de memória do banco que será acessado(MICROCHIP TECHNOLOGY, 2008). Na Figura 18, é apresentado o mapa da memória de dadosdo PIC18F4520.Figura 18. Mapa da memória de dados do PIC18F4520.Fonte: Adaptado de Microchip Technology (2008). 27
  43. 43. Deve-se evitar o acesso aos primeiros 128 bytes da memória RAM, pois são neles que estãocontidos os registradores de manipulação da Unidade Lógica Aritmética (ULA) e de configuraçãodo microcontrolador, por exemplo, o program counter. Os 128 bytes subsequentes do banco 0 e os256 bytes dos bancos 1 ao 5, são os registradores de propósito geral (GPR – General PurposeRegister) usados para armazenamento de dados de operações do programa. Utiliza-se os 6 primeirosbancos de memória RAM para calcular a capacidade total de armazenamento do PIC18F4520,sendo 1536 bytes. Os bancos 6 ao 14 e os primeiros 128 bytes do banco 15 não foramimplementados; sempre que forem lidas essas memórias, será atribuído valor 0 (zero) ao retorno e aescrita nas mesmas é ignorada. Nos últimos 128 bytes do banco 15 da memória RAM estãocontidos os SFR que e são usados pela CPU e módulos periféricos para controle de operações dodispositivo (MICROCHIP TECHNOLOGY, 2008). A memória de dados EEPROM, além de ter menor velocidade de leitura/escrita do que amemória RAM, necessita dos SFRs para operações de leitura e escrita: EEADR (EEPROM AddressRegister), registrador que recebe o endereço da memória que será lida ou escrita; EEDATA(EEPROM Data Register), registrador que recebe o dado que será lido ou escrito de umdeterminado endereço; EECON1 (EEPROM Control Register), registrador de controle, dá inícioaos ciclos de leitura e escrita; EECON2, registrador de controle que armazena, obrigatoriamente,uma sequência de valores (0x55 e 0xAA) para dar início ao processo de gravação. (ZANCO, 2007).É possível armazenar até 256 bytes na memória EEPROM interna do PIC18F4520. Para ler um dado de determinado endereço da EEPROM, deve-se escrever o endereço noregistrador EEADR (entre 0x00 e 0xFF), limpar o bit EEPGD (Flash Program or Data EEPROMMemory Select bit) do registrador EECON1 (bit 7), limpar o bit CFGS (Flash Program/DataEEPROM or Configuration Select bit) do registrador EECON1 (bit 6) e habilitar o bit RD (ReadControl bit) do registrador EECON1 (bit 0) (MICROCHIP TECHNOLOGY, 2008). Na Figura 19,é apresentado um exemplo de leitura de um dado da EEPROM.MOVLW 0x33 ; registrador W recebe valor 0x33MOVWF EEADR ; registrador EEADR recebe endereço que será lidoBCF EECON1, EEPGD ; habilita acesso à memória de dadosBCF EECON1, CFGS ; habilita acesso à EEPROMBSF EECON1, RD ; EEDATA recebe conteúdo do endereçoMOVF EEDATA, W ; registrador W recebe valor de EEDATAFigura 19. Leitura do dado do endereço 0x33 da EEPROM e escrita em W (Working Register).Fonte: Adaptado de Microchip Technology (2008). 28
  44. 44. Para escrever um dado em um determinado endereço da EEPROM, deve-se escrever oendereço, da EEPROM, que o dado será armazenado no registrador EEADR, escrever o valor dodado no registrador EEDATA, limpar o bit EEPGD do registrador EECON1 (bit 7), limpar o bitCFGS do registrador EECON1 (bit 6), habilitar o bit WERN (Flash Program/Data EEPROM WriteEnable bit) do registrador EECON1 (bit 2), desabilitar as interrupções (recomendação dofabricante), realizar a sequência de gravação do registrador EECON2, habilitar as interrupções (sefor desabilitada) e limpar o bit WERN do registrador EECON1 (MICROCHIP TECHNOLOGY,2008). Na Figura 20, é apresentado um exemplo de escrita de um dado na EEPROM.MOVLW 0x33MOVWF EEADRMOVLW 5MOVWF EEDATABCF EECON1, EEPGDBCF EECON1, CFGSBSF EECON1, WREN ; habilita escritaBCF INTCON, GIE ; desabilita interrupçõesMOVLW 0x55 ;MOVWF EECON2 ; Sequência de gravação do registrador ECON2MOVLW 0xAA ;MOVWF EECON2 ;BSF EECON1, WR ; inicia gravaçãoBSF INTCON, GIE ; habilita interrupçõesBCF EECON1, WREN ; desabilita escrita com a gravação completadaFigura 20. Escrita do valor 5 no endereço 0x33 da EEPROM.Fonte: Adaptado de Microchip Technology (2008).Memória de programa A memória de programa do PIC18F4520 é do tipo Flash, podendo ser gravados milhares devezes, sem a necessidade de apagar a gravação anterior. Os microcontroladores que possuem amemória de programa desse tipo, são considerados a melhor opção para testes de programas eimplementação final de projetos (ZANCO, 2007). Souza (2008, p. 27) acrescenta que os MCUsdesse tipo “são muito mais fáceis de trabalhar para o desenvolvimento do sistema, mas, por outrolado, são muito mais caros para uma fabricação em série”. 29
  45. 45. O PIC18F4520 possui 32 kbytes de memória de programa Flash, podendo armazenar 16.384palavras de instrução, de 16 bits cada. O registrador program counter é implementado em 21 bits,podendo endereçar até 2 Mbytes de memória, porém o acesso à memória de programa nãoimplementada fisicamente retornará sempre valor 0 (zero). Ele ainda conta com uma pilha de 31níveis ligada diretamente ao registrador PC, um vetor de reset contido no endereço 0x0000, umvetor de interrupções de alta prioridade contido no endereço 0x0008 e um vetor de interrupções debaixa prioridade no endereço 0x0018 (MICROCHIP TECHNOLOGY, 2008). Na Figura 21, éapresentada a estrutura do mapa da memória de programa do PIC18F4520.Figura 21. Estrutura do mapa da memória de programa do PIC18F4520.Fonte: Adaptado de Microchip Technology (2008). 30
  46. 46. Conjunto de instruções Algumas das instruções do PIC18F4520 já foram citadas anteriormente, porém suafuncionalidade não foi descrita. Como definição, Zanco (2007, p. 53) afirma que, As instruções são constituídas por um conjunto de bits, que ficam armazenados na memória de programa do microcontrolador. Esses bits são lidos na memória de programa, são decodificados para serem acionadas as variáveis de controle internas ao sistema, para que a operação correspondente à instrução seja executada. O PIC18F4520 incorpora 75 instruções padrão do núcleo de instruções do grupo PIC18,contando ainda com mais 8 instruções de extensão (otimização de códigos ou de utilização da pilhade software) usadas para gravação da memória de programa. Ao todo, 83 instruções formam o seuconjunto de instruções, onde a maioria delas ocupa o espaço de uma única palavra de 16 bits damemória de programa, sendo que apenas quatro instruções necessitam de 32 bits. Em geral, todas asinstruções, que ocupam uma palavra da memória de programa, são executadas em um único ciclode máquina, exceto as instruções de teste condicional verdadeiro ou quando o program counter éalterado devido ao resultado da instrução, no qual necessitam de dois ciclos de máquina para seremexecutadas (MICROCHIP TECHNOLOGY, 2008). As instruções de núcleo do PIC são agrupadas em quatro categorias: operações orientadas abyte, operações orientadas a bit, operações literais e operações de controle (MICROCHIPTECHNOLOGY, 2008). Na Tabela 23, Tabela 24, Tabela 25 e Tabela 26 do Anexo II sãoapresentadas brevemente a descrição das instruções reconhecidas pelo montador assembler daMicrochip (MPASMTM).Portas de E/S É através das portas de E/S que se podem realizar interações homem-máquina e/ou máquina-máquina, desenvolvendo uma comunicação entre o microcontrolador e outros dispositivosassociados. A resposta de um MCU às ações externas pode ser observada desde um simples acenderde um led até a escrita de uma frase em um display LCD. Por sua vez, essas ações podem serrealizadas a partir de um botão aplicando uma mudança no nível lógico de uma porta, por exemplo. As portas do PIC são bidirecionais, ou seja, podem ser configuradas tanto para entradaquanto para saída de informação. Para que o microcontrolador possa identificar a direção dos dados,deve-se configurar o registrador TRIS correspondente ao conjunto de pinos da porta do MCU.Souza (2008, p. 42) destaca que “quando é colocado ‘1’ em um bit do TRIS, o pino relacionado a 31
  47. 47. ele é configurado como entrada. Para configurar o pino como saída, você deve escrever ‘0’ no bitrelacionado”. Tanto a operação de leitura, quanto a de escrita, podem ser feitas em conjunto,operando com todos os pinos da porta de uma só vez, ou individualmente, operando com um únicopino da porta de cada vez (bit a bit). Zanco (2007, p. 56) acrescenta que, Quando escrevemos um valor em um PORT no qual nem todos os bits estejam configurados como saída, os níveis lógicos nos bits que estão configurados como entrada são desprezados, prevalecendo o respectivo nível lógico aplicado pelo hardware em cada pino configurado como entrada. Porém, mesmo que o nível lógico do pino não seja alterado, a mudança de estado em umaoperação de escrita é identificada e armazenada em um registrador temporário da porta (LAT).Assim, caso o TRIS correspondente à porta alterada seja posteriormente configurado como saída, aporta assume imediatamente o nível lógico armazenado temporariamente (SOUZA, 2008). NaFigura 22, é representado um código onde, inicialmente, é realizada a leitura de todos os bits daporta A (PORTA) e, em seguida, é atribuído nível lógico “1” apenas para o bit 0 da mesma porta(RA0).MOVLW 0FhMOVWF TRISA ; TRISA configura todas os bits de PORTA como entradaMOVF PORTA, 0 ; Working register recebe a leitura do PORTANOPBCF TRISA, 0 ; TRISA muda configuração do bit RA0 para saídaBSF PORTA, 0 ; passa para nível lógico "1" o bit RA0 do PORTAFigura 22. Exemplo de leitura e escrita no PORTA.Fonte: Adaptado de Microchip Technology (2008). O PIC18F4520 possui um conjunto de cinco portas, onde a cada uma delas está associadoum registrador TRIS e um registrador temporário LAT. Somados, os pinos das portas do MCUpodem chegar a 36 pinos de E/S assim distribuídas: 8 para PORTA (RA0 até RA7), 8 para PORTB(RB0 até RB7), 8 para PORTC (RC0 até RC7), 8 para PORTD (RD0 até RD7) e 4 para PORTE(RE0 até RE3). Como os pinos das portas também podem ser configurados para realizar outrasfunções, na leitura é atribuído o valor 0 (zero) para o bit do PORT, quando não estão trabalhandocomo E/S digital (MICROCHIP TECHNOLOGY, 2008). O PORTB possui um circuito de pull-up interno, no qual assume nível lógico “0”automaticamente quando configurado como saída. Além disso, quatro de seus pinos (RB4 ao RB7)tem recurso de interrupção de mudança de estado, mas para isso necessitam estar configuradoscomo entrada, onde a leitura atual é comparada com a última leitura realizada na porta. Esse 32
  48. 48. mecanismo de memorização é dado pelo registrador temporário LATB, o qual armazena o valor daúltima leitura feita no PORTB (MICROCHIP TECHNOLOGY, 2008).Interrupções Zanco (2007, p. 103) define que “uma interrupção é um evento de hardware que, quandoocorre, provoca um desvio no programa, para que o evento seja tratado”. A ocorrência desse eventointerrompe o programa imediatamente, guardando o endereço da próxima instrução a ser executada.Em seguida, o programa é desviado para um endereço fixo da memória de programa, onde estáarmazenada a função de tratamento. Finalizada a rotina que trata a interrupção gerada, o programatorna a executar a partir da instrução do endereço armazenado anteriormente (SOUZA, 2008). Além das interrupções de mudança de estado dos bits do PORTB, existem outras fontes deinterrupções do PIC18F4520, tais como: interrupção por estouro do temporizador, interrupçõesexternas nos pinos INT e interrupções geradas por periféricos. Em sua maioria, são classificadascomo interrupções de alta ou baixa prioridade. As interrupções estão alocadas nos endereços0x0008 (para interrupções de alta prioridade) ou 0x0018 (para interrupções de baixa prioridade).Uma interrupção de alta prioridade pode interromper outra de baixa prioridade durante o processode execução da mesma. São usados dez registradores para controlar as operações de interrupção(MICROCHIP TECHNOLOGY, 2008):  Reset Control Register (RCON): registrador que identifica a causa do último reset ou despertar (saída do modo SLEEP) ocorrido no microcontrolador;  Interrupt Control Register (INTCON, INTCON2 e INTCON3): registradores que habilitam ou desabilitam as interrupções globais;  Peripheral Interrupt Request Register (PIR1 e PIR2): registradores que identificam interrupções ocasionadas por um periférico específico;  Peripheral Interrupt Enable Register (PIER1 e PIER2): registradores que habilitam ou desabilitam interrupções ocasionadas por um periférico específico; e  Peripheral Interrupt Priority Register (IPR1 e IPR2): registradores que atribuem prioridade alta ou baixa para as interrupções ocasionadas por um periférico específico. Em geral, as interrupções possuem três bits que controlam suas operações: Flag bit, indicaqual evento de interrupção ocorreu; Enable bit, permite desviar a execução do programa para o 33

×