You are on page 1of 118
t}AScCOOn * Realizagao PIcMINAS™S PICMinas# Sistemas Microcontrolados Autores: Fernando Esquirio Torres Henrique Resende Martins Co-Autores: Bruno Silveira Avelar James Hamilton Oliveira Junior Mauricio Ferrari S. Correa WWW.picminas.com-br www.picminas.com.br Pagina 1 Copyright © - Todos os diretos reservados. -ASOONn * Sumario LSTA DE FIGURAS.. LUSTA DE TABELAS... Capitulo 1 ~ Introdusio..... so so se 1.1 SURGIMENTO DAS MAQUINAS MODERNAS: 1.2 SURGIMENTO DOS PROCESSADORES E DOS COMPUTADORES PESSOAIS. 1.3 SISTEMAS MICROPROCESSADOS. 13.1 _ UNIDADE CENTRAL DE PROCESSAMENTO (CPU) 1.3.2 MEMORIA. 1.3.3 REGISTRADORES 1.3.4 REGISTRADORES DE FUNCAO ESPECIAL (SFR) oe a 18 1.3.5 PORTAS /o (ENTRADA/SAIDA). 1.3.6 BARRAMENTOS... 1.3.7 INTERRUPGOES.... 1.4 MICROCONTROLADORES 15 LINGUAGEM DE MAQUINA sone ccs an 23, 1.6 REPRESENTACAO NUMERICA. 1.7 CONVERSOrS DESISTEMAS NUMERICOS. LTA CONVERSAO BINARIA PARA DECIMAL. 1.7.2 CONVERSAO HEXADECIMAL PARA DECIMAL. so se 26 1.7.3 CONVERSAO HEXADECIMAL PARA BINARIA, so se 7 18 OBIT. 19 OBYTE 1.10 PORTASLOGICAS. 1.10.1 PORTA AND. so so se 29 1.102 PORTAOR. so so se 30 1.103. PORTANOT. 1.10.4 PORTA XOR (OU-EXCLUSIVA).. Capitulo 2 ~ Arquitetura do PIC e Kit de Desenvolvimento. 2.1 PICL8FASSO ¢ PIC32MX775F256.. 34 244. PICLaFAS5O, so so se a4 2.2 KITDEDESENVOLVIMENTO com PIC18F4550. so se 49, 22.1, CIRCUITOS ATUADORES...... 9 2.2.2. CHAVES/TECLAS. _ wo a 50. 2.2.3. CIRCUITOS SENSORES. so so se 51 2.2.4, DISPLAYS. www.picminas.com.br Pagina 2 Copyright © - Todos os diretos reservados -ASOONn 2.2.5. CIRCUITOS DE GRAVAGAO IN-CIRCUIT (ICSF). 2.2.6. umpers do KIT PICMINAS 00 so se 55, 2.3 COMPONENTES DO KIT DIDATICO PIC18.... oT Capitulo 3 —Ferramentas de Desenvolvimento 58 3.1 AMBIENTE DE DESENVOLVIMENTO ~ MPLAB. so se 58 3.2 COMPILADORES C18 E C32 DA MICROCHIP. so se 63 3.2.4, Instalagdo do Compilador C18....... so se 65, 3.2.2, Instalagéo do Compilador C32 69 3.3. FIRMWARE BOOTLOADER. 3.4 COMO CRIAR UM PROJETO NO MPLAB 3.5 COMO COMPILAR € GRAVAR UM FIRMWARE NO KIT DIDATICO UTILIZANDO BOOTLOADER wn 82 3.6 COMO GRAVAR UM FIRMWARE NO PIC UTILIZANDO UMA GRAVADORA (ICD? MICROCHIP)... aa 3.7 COMOUTILIZAR A FERRAMENTA DE SIMULAGAG DO MPLAB... a on Capitulo 4 — Programagio de Microcontroladores. 4.1. Vantagens e desvantagens de se programar em Assembly € em C:.. 4.2 PRINCIPIOS DE PROGRAMACAO.. 4.2.4. ALGORITMOS ESTRUTURADOS..... so 42.2. FLUXOGRAMAS. so so 4.25, VAKIAVEIS E VABUS ... 4.3 CARACTERISTICAS DO COMPILADOR C18 ... 98 43.4, TIPOS DE DADOS € LIMITES... 98, 4.4. CAMINHO DE PROCURA DE ARQUIVOS ... wo a 100 45 LINGUAGEM DE PROGRAMAGAO C 45.4 PRIMEIROS PASSOS. 45.2. VISAO GERAL DE UM PROGRAMA, 45.3 PALAVRAS RESERVADAS .. 45.4 IDENTIFICADORES 45.5 VARIAVEIS E TIPOS DE DADOS. 45.6 CONSTANTE: 45.7 OPERADORES.. 45.8 COMANDOS E FUNGOES IMPORTANTES.. a0 4.6 BOAS PRATICAS DE PROGRAMACAO 115 www.picminas.com.br Pagina 3 Copyright © - Todos os diretos reservados -ASOONn *, LISTA DE FIGURAS Figura 1.1 - Figura do baco. Figura 1.2- A Calculadora de Pascal e a Maquina Diferencial de Babbage Figura 1.3 - Operagao de um ENIAC. sno Figura 1.4 Valvua dos Computadores Antgos.. Figura 1.5 - Processador Pentium 4... Figura 1.6 - Computador POPS... Figura 1.7 - Primeiro Processador da Historia (4004 Figura 1.8 - Evolugao Historica do Mioroprocessadore: — Figura 1.9 - Elementos Intemos de um Microprocessador Basico. Figura 1-10 - CPU e suas unidades. ...... 7 Figura 1.11 - Foto com diversos tipos de memorias RAM... Figura 1.12 - Meméria EPROM - Os dados so apagados com raios ultravioleta.. Figura 1.13 - Tipos de dispositivos que utiizam meméria FLASH para armazenamento de dados. Figura 1.14 - O Registrador € um tipo de meméria que tem acesso direto a CPU. Figura 1.15 - Registradores com fungées especiais. Figura 1.16 - Portas do microcontrolador. Figura 1.17 - Placa Mae. Figura 1.18 - Atendimento de interrup¢ao. Figura 1.19 - Desenho esquematico de um Microcontrolador. Figura 1.20 - Diagrama de blocos geral de um microcontrolador. Figura 1.21 - Representacdo de um nimero na base-10. Figura 1.22 - Transformagao de um numero na base-2 para base-1 Figura 1.23 - Comparagao de um nlimero na base-16 # na base-2... Figura 1.24 - Conversao de um numero na base-2 para base-10. Figura 1.25 - Conversao de Hexadecimal para decimal... Figura 1.26 - Convers de bindrio para hexadecimal. Figura 1.27 - Representago de um numero na base-. Figura 1.28 - Reprecentagao de nibbles. Figura 1.29 - Simbolo gréfico e Tabela verdade da porta AND. Figura 1.30 - Operaedo légica AND. Figura 1.31 - Simbolo grafico e Tabel Figura 1.32 - Operacdo légica OR. Figura 1.33 - Simbolo gréfico e Tabela verdade da porta NO Figura 1.34 - Operagdo légica NOT. Figura 1.35 - Simbolo grafico e Tabela verdade da porta XOR... Figura 1.36 - Operago l6gica XOR. ner Figura 2.1 ~ Arquitetura Von-Neumanr Figura 2.2 - Arquitetura Harvard... 233 Figura 2.3- Distribuig3o dos pinos no microcontrolador PIC 18F 4550 (Fonte: datasheet PIC18F4550)....... 36. Figura 2.4 - Estrutura interna do microcontrolador PIC18F4550 (Fonte: datasheet PIC18F4550). Figura 2.5 - Arquitetura do PIC18F4550 destacando as partes de um sistema microprocessado. Figura 2.6 - Processo Pipelin« Figura 2.7 - Detalhes da meméria FLASH e da Pilha. Figura 2.8 - Mapa da meméria de dado. non Figura 2.9 - Registrador Status. Figura 2.10 - Ligagao dos led’s no PIC. Figura 2.11 - Ligagdo do Relé no PIG... nnnnsnnnnnn Figura 2.12 - Ligagao do Buzzer (Sirene) no PIC. Figura 2.13 - Ligagao da Chave Push Button (Chaves Tateis) no PIC... Figura 2.14 - Ligagao da Chave Dip switch no PIC. Figura 2.15 - Ligagdo do LDR no PIC... cn Figura 2.16 - Ligaeao do sensor de temperatura no PIC. Figura 2.17 - Ligagao do potenciémetro no PIC... Sonn Figura 2.18 - Ligaeo do display duplo de 7 segmentos no PIC. www.picminas.com.br Copyright © - Todos os diretos reservados -ASOONn Figura 2. 21 - Jumpes do KIT PICMinas. Figura 2.22 - Componentes principais do kit de desenvolvimento... on . on BT Figura 3. 1 - [cone Instaladores do DVD Didatico. Instago do MPLAB. Figura 3.2 - Tela de boas vindas do instalador do MPLAB. Figura 3.3 - Termo de licenca....... Figura 3.4 - Tipo de instala¢ao. Escolha a op¢ao "Completa Figura 3.5 - Escolha do diretério onde o MPLAB sera instalado, Figura 3.6 - Resumo do processo de instalacdo. Figura 3.7 - Instalador do programa HI-TECH. .. Figura 3.8 - Finalizagdo da instalagao.. Figura 3.9 - Tela meramente informativa. Figura 3.10 - Fungo do compilador. Figura 3.11 - Processo de compliago do cédigo. Figura 3.12 - icone Instaladores do DVD Didatico - In il Figura 3.13 - Tela de boas vindas do instalador do compilador C18... Figura 3. 14 - Licenca do compilador C18.. Figura 3.15 - Escolha do diretério onde sera instalad00 C18. nn Figura 3.16 - Final do processo de instalago do compilador C18, Figura 3.17 - icone Instaladores do DVD Didatico - Instalador do Compilador C32. Figura 3.18 - Janela de boas vindas do intalador do compilador C32. Figura 3.19 - Termo de licenga do compilador C32. Figura 3.20 - Escolha do diretério onde sera instalado 0 C32. Figura 3.21 - Final do processo de instalaco do compilador C32. Figura 3.22 - Método de Gravacao OfF-B0ard.. nn Figura 3.23 - Modo de gravaco in-circuit via hardware. Figura 3.24 - Método de Auto-Gravacao.... Figura 3.25 - Arquivos modelo no DVD didatico. Figura 3.26 -Janela do MPLAB ~ Acessando 0 "Project Wizard onsen Tigura 9.27 - Janela de Doms Vindes. ener oe Figura 3.28 - Escolha do microcontrolador... en Figura 3.29 - Escolha da "Active Toolsuite”. Figura 3.30 - Escolha do diretério. Figura 3. 31 - Inserir arquivos..... Figura 3.32 - Resumo do projeto. Figura 3.33 - Janela “Project”... con Figura 3.34 - Adicionando arquivos ao projeto. Figura 3. 35 - Adicionando arquivos ao projeto. Figura 3.36 - Janela do MPLAB mosiend o arquivo main.© do pret teste.mepaberte. Figura 3.37 - Boto de compilaco - Build AIL enn fe Figura 3.38 - DVD Didatico — icone “Gravar PIC ener Figura 3.39 -Escolha do arqulvahex que se desea gravarno PC. Figura 3.40 - Processo de gravagao do PIC. .. Figura 3.41 - Médulo de gravago ICD2 da Microchip. Figura 3.42 - Janela de reconhecimento do dispositive... igura 3. 43 - Janela de instalago do driver. Figura 3.44 - Janela de conclusd0. Figura 3. 45 - DVD Didatico - icone Projetos - Projeto do Bootloader. Figura 3.46 - Selegao do médulo de gravagdo. Figura 3.47 - Sele¢o da opedo Setup Wizard. nn Figura 3.48 - Selecao da Porta de Comunicacao. Figura 3.49 - Selegao da alimentacao do dispositivo... Figura 3.50 - Janela de Conexio. Figura 3.51 - Janela Download, igura 3.52 - Icones de gravagao habiltados. Figura 3.53 - Mensagem informando que a programagao foi realizada com sucesso. Figura 3.54 - Selecionando o simulador MPLAB. ....... Figura 3.55 - Botdes do simulador MPLAB... Figura 3.56 - Aba do MPLAB SIM na janela Output... Figura 3.57 - Barra de Status indicando MPLAB SIM. Figura 3.58 - peo Watch. nner www.picminas.com.br Copyright © - Todos os diretos reservados -ASOONn * Figura 3.59 - Janela Watch. Figura 3.60 - Alterando para exibiggio em decimal... nnn . vv Figura 4.1 - Ordenago Little-Endian, Figura 4 2 - Contetide do arquivo main... Figura 4.3 - Mensagem de compilago bem Figura 4.4 - Detalhamento da fungo main ( ). Figura 4.5 - Exemplo de um programa C. Figura 4.6 - Uso das estruturas if else. Figura 4.7 - Uso da estrutura switch. Figura 4.8 - Uso da estrutura while, Figura 4.9 - Uso da estrutura f0f. 00ers Figura 4.10 - Uso da estrutra for com decremento de indice. Figura 4.11 - Uso da estrutura do-while. Figura 4.12 - Exemplo do uso de espacos € com: Figura 4.13 - Cabegalho de arquivo. cen Figura 4.14 - Uso de Defines. 103 110 1 112 oe M13 113 114 115 oe IB www.picminas.com.br Pagina 6 Copyright © - Todos os diretos reservados -ASOONn *, LISTA DE TABELAS Tabela 1 - Representacao de nimeros nas trés bases. Tabela 2 - Funcionalidades do PIC18F4550 (fonte datasheet PIC18F4550). 7 oe 5 Tabela 3 - Pinos do PIC18F4550 (Fonte: datasheet do PIC18F4550)... . co Tabela 4 - Informagdes de ligagao do LCD. Tabela 5 - Descrigdo dos sub-diretérios do MCC18. .. Tabela 6 - Desctigdo dos icones de gravacao. Tabela 7 - Fungo de cada bot§0. Tabela 8 - Vantagens e desvantagens entre linguagem Assempbly e C. Tabela 9 - Tipos de dados inteiros e seus limites. Tabela 10 - Palavras reservadas em C....... Tabela 11 - Exemplos de variaveis validas e invalidas Tabela 12 - Cédigo de barra invertida. Tabela 13 - Bases numéricas.... Tabela 14 - Operadores aritméticos. Tabela 15 - Operadores relacionais. Tabela 16 - Operadores légicos booleanos. Tabela 17 - Operadores logicos bit a bit... Tabela 18 - Operadores de meméria. Tabela 19 - Outros operadores. .. . Tabela 20 - Associagao de operadores. Tabela 21 - Precedéncia de operadores. nen www.picminas.com.br Pagina 7 Copyright © - Todos os diretos reservados -ASOONn * Capitulo 1 — Introdugao © objetivo principal deste capitulo & familiarizar o leitor com alguns conceitos e nomenciaturas existentes no mundo dos microprocessadores e microcontroladores. Além disso, 0 capitulo ira abordar um ouco da historia da evoluedo tecnolégica que culminou no mundo moderno que vivernos hoje. 1.1SURGIMENTO DAS MAQUINAS MODERNAS Durante toda sua histéria, o homem buscou desenvolver meios para facilitar a realizagao de atividades complicadas e repetitivas. Atualmente, vivemos a era da automacao total em que boa parte das atividades, sem cunho criativo, séo ou serdo realizadas por maquinas (robés), desde complexas manipulag6es cirurgicas até maquinas incumbidas de retirada do lixo. Por exemplo, hoje em dia € comum entrarmos em um banheiro de Shopping Center em que a luz acende sozinha, a tomeira ativa automaticamente e até mesmo para acionar a descarga ¢ preciso apenas que o usuario se afaste do sanitério. Na indistria moderna, a intervenedo do homem nos processos vem sendo cada vez menor, restringindo-se apenas ao monitoramento de alarmes e eventuais falhas do sistema. Carros que falam ou que obedecem 2 comandos de voz; avi6es que voam sozinhos; sondas espacials no tripuladas que pousam em Marte, enfim so inimeros os exemplos em que a automagao das maquinas esta presente nos dias atuais. Para entendermos como chegamos a este momento, vamos voltar um pouco na histéria. Com 0 crescimento do conhecimento matematico com o passar dos anos, e seu grande uso nas atividades comerciais, um dos maiores problemas encontrados passou a ser a realizagao de calculos mais complexos, ‘© que levou a criagdo de dispositivos MECANICOS para auxiliar estas tarefas. Ha aproximadamente 5.500 anos atras, provavelmente na Mesopotamia, surgiu o primeiro desses dispositivos, o Abaco (Figura 1.1). Ele permitia tazer operagées de adi¢ao, subtrago, muttplicagao e divisdo. O mais intrgante € que esse dispositive de construgtio to simples criaria um conecito de maquina que muitos séculos depois seria a base para_o surgimento de sistemas extremamente complexos _conhecidos como MICROPROCESSADORES. Figura 1.1 - Figura do abaco. Outros exemplos de maquinas utiizadas fara a realizagdo de calculos matematicos foram: A Calculadora de Pascal ¢ a Maquina Diferencial de Babbage (Figura 1.2) que revolucionaram seu tempo ajudaram o homem a dar passos mais largos em sua evolucdo. www.picminas.com.br Pagina 8 Copyright © - Todos os diretos reservados Figura 1.2-ACaleuladora de Pascal e a Maquina Diferencial de Babbage Outro marco no desenvolvimento deste tipo de maquinas deu-se quando o homem passou a manipular 2 tenso e a corrente elétrica. Neste momento, os dispositivos que antes eram mecanicos passaram a ser elétricos, 0 que reduzia muito 0 seu tamanho, facilitando sua construgo e seu aperfeigoamento, Esta evolugdo tornou possivel o surgimento dos primeiros computadores, sistemas esses inconcebiveis com dispositives mecénicos. Mesmo assim o tamanho destes computadores eram gigantescos devido ao actimulo de atividades e tarefas que eles possuiam se comparados aos dispositivos mecénicos. © ENIAC foi o primeiro computador digital eletrénico valvulado, Foi criado em 1946, e tinha as seguintes caracteristicas: pesava 30 toneladas, media 5,5m de altura, 25m de comprimento e ocupava uma area de 180m’ de area. Foi construido sobre estruturas metélicas € contava com 70 mil resistores € aproximadamente 18.000 valvulas a vacuo ocupando a area de um ginasio desportivo. Essa maquina nao tunha sistema operacional e o tuncionamento era parecido com uma calculadora simples de hoje. Era operado manuaimente e efetuava os calculos a partir de teclas que faziam interagao direta com o Hardware. AA Figura 1.3 tras um desenho do ENIAC sendo operado, Figura 1.3 -Operagao de um ENIAC. Com © surgimento da microeletrénica foram desenvolvidos os TRANSISTORES que substituiram as valvulas dos computadores antigos, que possuiam até 10 cm de comprimento cada uma (ver Figura 1.4), ao passo que os transistores atuais, presentes como principal elemento na concepgao dos microprocessadores, ocupam poucas unidades de micrometros quadrados (\um” - a milionésima parte de um ‘metro quadrado), o que possibilitou inserir dentro de um CHIP de processador (Figura 1.5) funcionalidades que no caberia em centenas de prédios em um computador valvulado. www.picminas.com.br Pagina 9 Copyright © - Todos os Figura 1.5 - Proc Figura 1.4 Valvula dos Computadores Antigos. © mundo tecnolégico em que vivemos hoje, dominado por dispositivs © sistemas microprocessados e microcontrolados, teve origem no desenvolvimento da tecnologia de circuitos integrados (Microeletrénica Digital). Esta evolugéic possibilitou incorporar centenas de milhares de transistores (elemento bésico de qualquer sistema dgital e que substituiram as antigas vaivulas elétricas dos primeiros computadores) em um unico CHIP com dimensdes de alguns centimetros quadrados (om). Essa foi 2 condigo prévia para a fabricago dos MICROprocessadores (constituldos basicamente de transistores com dimenses micrométricas), que possibilitou 0 surgimento dos primeiros computadores pessoais (PC - Personal Computer), onde além do microprocessador, foram adicionados perifericos externos, tais como, meméria, linhas de entrada/saida e temporizadores. Com a continua evolugéo da tecnologia dos circuitos integrados, deu-se origem a um sistema que em um tinico CHIP embarcava tanto 8 elementos basicos necessérios para o funcionamento de um computador (microprocessador, meméria linhas de entrada/saida), quanto dispositivos periféricos como, por exemplo, conversores A/D e D/A, interfaces de comunicagio paralela e serial, sistemas de inlerrupo%o entre outros, dando origem a uma nova era de sistemas microprocessados. Esse rovo CHIP, que inicialmente era conhecido como MICROcomputador, originou os MICROcontroladores da atualidade. Mas antes de nos aprofundarmos neste assunlo, vamos enlender, por meio de falos historicos, como surgirain os micioprocessauores & OS computadares mademas. 1.2SURGIMENTO DOS PROCESSADORES E DOS COMPUTADORES PESSOAIS Em 1969 uma equipe de engenheiros japoneses da empresa BUSICOM chegou aos EUA com um edido de circuitos integrados para calculadoras que deveriam ser desenvolvides de acordo com as necessidades de seus produtos. O pedido foi enviado para a Intel que encarregou Marcian Hoff para execugdo deste projeto. Tendo Marcian ja trabalhado com o desenvolvimento de um computador (computador @ vaivula), 0 PDP8 (ver Figura 1.6), ele sugeriu uma ideia fundamentalmente diferente do pedido da BUSICOM. A sua ideia presumia que o funcionamento do circuito integrado seria baseado em um programa armazenado nele ao invés dos projetos engessados da época, em que cada circuito integrado possuia uma e somente uma funcionalidade. Isso significaria que a configuragtio dos produtos da empresa japonesa ficaria mais simples, tendo em vista que um tinico circuito integrado poderia ser utilizado em mais de um produto, mudando-se apenas a programacgo gravada nos mesmos. Por outro lado, esta nova fllosofia de projeto iria requerer mais meméria do sistema que o projeto proposto pelos engenheiros Japoneses, 0 que na época era algo ainda de valor elevado. " Conversor AID ~ Circuito Eletrénico utilizado para converter sinais de tenso ou de corrente elétrica {sinais analégicos) em numeros bindrios (sinais digitzis). Conversor D/A — Converte nimeros binarios em sinais de tensao ou corrente elétrica. www.picminas.com.br Pagina 10 Copyright © - Todos os diretos reservados Figura 1.6 - Computador POPS Depois de um tempo, embora os engenheiros japoneses tivessem tentando encontrar uma solugao mais facil, a ideia de Marcian ganhou for¢a € 0 primeiro microprocessador nasceu. Esse microprocessador foi batizado de 4004 (ver Figura 1.7) e era capaz de tratar apenas 4-bits em uma velocidade de 6.000 operagdes por segundo, ou SkHz (Os processadores atuais possuem 64-bits trabalham com até 3,33 Bilhdes de operagées por segundo ~ 3.3GHz, ou seja, quase um milhao de vezes mais rapido). Figura 1.7. Primeiro Processador da Historia (4008), ‘Algum tempo depois, uma empresa chamada CTC solicitou a Intel e a Texas Instruments que fabricassem um microprocessador de 8-bits para ser utilizado em seus terminais de computador. Devido aos altos custos e sem saber o valor do que estava desenvolvendo, a CTC desistiu do projeto. No entanto, a Intel e a Texas resolveram continuar custeando 0 projeto e, em abril de 1972, 0 primeiro processador de 8- bits, chamado de 8008, surgiu no mercado. Ele possuia uma meméria de incriveis 16k-bits (que para época era algo inovador), um conjunto de 45 instrugdes diferentes para sua programagao (eram operagSes légicas como AND, OR e NOT, ¢ aritméticas como ADD e SUB) e uma velocidade de até 300.000 instrugdes por ‘segundo (300 kHz). Este processador foi a base de todos os microprocessadores modernos de hoje e deu origem, em abril de 1974, a0 microprocessador 8080 que também era de 8-bits, mas possuia G4kbits de meméria, 75 instrugdes para programaco e um prego inicial de US$ 360,00 (Trezentos e sessenta délares), © que possibilitou o surgimento de computadores pessoais com valores acessivels. A consequéncia disso foi a inesperada popularizaeao de ideia e crescimento exponencial das vendas. Para se ter ideia a prospeceao mais otimista da Intel era da venda de 3.000 microprocessadores no primeiro ano de langamento, mas as vendas superaram as dezenas de milhares, baixando ainda mais o valor desses processadores e, consequentemente, dos computadores. Outra empresa americana, a Motorola, notou rapidamente 0 que estava acontecendo e langou no mercado um novo microprocessador de 8-bits, o 6800. O construtor chefe foi Chuck Peddle e além do microprocessador propriamente dito, a Motorola foi a primeira companhia a fabricar outros periféricos como 0 6820 e 6850, com outras funcionalidades que os microprocessadores no realizavam. Muitas outras companhias perceberam a grande importancia dos microprocessadores e comegaram a produzir seus www.picminas.com.br Pagina 1A Copyright © - Todos os diretos reservados -ASOONn * préprios projetos. Chuck Peddle deixou a Motorola para entrar para a MOS Technology e continuar trabalhando intensivamente no desenvolvimento dos microprocessadores. Em 1975, na exposico WESCON nos Estados Unidos, aconteceu um episédio na histéria dos microprocessadores. A MOS Technology anunciou que iria langar no mercado os microprocessadores 6501 6502 ao preco de US$ 25 cada e que poderia atender de imediato todas as encomendas. Isto pareceu to sensacional que muitos pensaram tratar-se de uma espécie de fraude, considerando que os competidores vendiam os processadores 8080 € 6800 por aproximadamente US$ 179,00 cada. Para responder a este ‘competidor, tanto a Intel quanto a Motorola baixaram seus pregos para USS 69,95 logo no primeiro dia da exposico. Rapidamente a Motorola, antiga empresa onde Peddle trabalhava, colocou uma acéo em tribunal contra a MOS Technology e contra 0 prépric Chuck Peddle por violaeao dos direitos autorais por copiarem 0 processador 6800. Com isso, a MOS Technology deixou de fabricar 0 6501, mas continuou com 0.6502, O 6502 era um microprocessador de &-bits com 56 instrugdes e uma capacidade de enderecamento de 64kBytes de meméria. Devido ao seu baixo custo, os processadores 6502 tomaram-se muito popular, sendo utilizado em computadores como o KIM-1, Apple |, Apple Il, Atari, Comodore, Acorn, Oric, Galeb, rao, Ultra € muitos outros. Logo apareceram varias outras empresas interessadas em fabricar 0 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh e Comodore) que, no auge da sua prosperidade, chegou a vender microprocessadores a razdo de 15 milhdes de processadores por ano. Contudo, 0s outros nao baixaram os bragos. Frederico Faggin deixou a Intel e fundou a Zilog Inc. Em 1976, a Zilog anunciou o Z80. Durante a concepgdo deste microprocessador, Fagin tomou uma decisdo critica. Sabendo que existia uma enorme quantidade de programas ja desenvolvidos para 0 microprocessador 8080, Faggin concluiu que muitos permaneceriam figis a este microprocessador devido as grandes despesas que representaria a troca do processador. Assim, ele decidiu que © novo microprocessador deveria ser COMPATIVEL (nasceu a ideia de compatibilidade) com 0 8080, ou seja, deveria ser capaz de executar todos os programas ja escritos para 0 8080. Além disto, outras caracteristicas adicionais foram incorporadas ao CHIP, de tal modo que o Z80 se tornou um micoprocessador muilo polente em seu lempy. Ele puuia endereyar direlamente 64kByles de mernoria, tinha 176 instrugSes para programagdo, um grande numero de registros, uma op¢io para refreshing de meméria RAM dindmica, maior velocidade de funcionamento, etc. O Z80 tornou-se um grande sucesso & todos que utilizavam © processador 8080 migraram para o Z80. Pode-se dizer que 0 Z80 se constituiu como (© microprocessador de 8-bits de maior sucesso em seu tempo. Além da Zilog surgiram outros novos fabricantes como, por exemplo, Mostek, NEC, SHARP e SGS. O Z80 foi o coracdo de muitos computadores: ‘como o Spectrum, Partner, TRS703, 2-3 e Galaxy, que fizeram muito sucesso devido sua grande utilizagao. Em 1976, a Intel lancou uma verso melhorada do microprocessador de 8-bits, chamado de 8085. Contudo, a superioridade do 280 fez com que a Intel desistisse do projeto. Apesar do surgimento, na época, de outros microprocessadores no mercado (6809, 2650, SC/MP etc.), 0 cendrio da época estava bem definido. Ja no existiam grandes melhorias a serem introduzidas pelos fabricantes que justiicassem 0 langamento de um novo microprocessador. Desta forma, o 6502 € 0 Z80, acompanhados pelo 6800, mantiveram-se como os mais representativos microprocessadores de &-bits do periodo. Restou a Intel trabalhar no langamento do primeiro microprocessador de 16-bits - 0 8088 — que fez muito sucesso e deu ‘origem a todos os processadores atuais. Ele foi seguido pelo 80186, depois pelo 80286, que evoluiu para o 80386 (popularmente conhecido como 386), chegando ao 80486 (popularmente conhecido como 486). Depois surgiu o Pentium que evoluiu até o Pentium 4. Nesse momento, a tecnologia se deparou com uma barreira na evolugdo dos microprocessadores que alé ento era baseada, quase que exclusivamente, no ‘aumento da velocidade de processamento. Em seguida, a evolugao dos processadores atrelouse & evolugao da sua arquitetura interna (forma como se estruturam e interagem os componentes basicos utiizados em sua construgSo). Atualmente, os processadores que encontramos no mercado sao processados Dual Core, Core 2 Duo, Quad Core, Xeon, Turion, etc., que diferem entre si pelo niimero e tipo de Nucleos de Processamento (Core) existentes em sua arquitetura interna. A Figura 1.8 mostra a evolugdo histérica dos processadores, evidenciando alguns dos principals sistemas desenvolvidos até os dias atuais. www.picminas.com.br Pagina 12 Copyright © - Todos os diretos reservados ’ASsxoon ner —S> Mocpecsm o ce si vert eae ES = a oe vain Baieatan Figura 1.8 - Evolugio Historica dos Microprocessadores. 1.3SISTEMAS MICROPROCESSADOS Como visto, os microprocessadores so maquinas elétricas onde podemos armazenar instrucbes icas, aritméticas e de tomada de deciséo permitindo que o mesmo funcione de varias formas diferentes dependendo das instrugdes (programa) que foram armazenadas em sua meméria. Em sistemas microprocessados, 0 microprocessador € geralmente conhecido como CPU (Central Processing Unit ~ Unidade Central de Processamento) e funciona como o cérebro de todo o sistema, ou seja, € ele quem comanda tudo que é feito pelo sistema microprocessado. Um exemplo muito conhecido de sistemas microprocessados € 0 computador pessoal (Laptop ou Desktop) que utilizamos todos os dias. Outros exemplos so: Celulares, Ipods, Palm Tops, etc, Por mais diferentes que possam parecer os diversos exemplos de sistemas microprocessados, todos eles sao compostos basicamente por uma CPU, um conjunto de Memérias, Portas de Entrada/Saida (onde stio conectados os periféricos) e Barramentos (Figura 1.9). www.picminas.com.br Pagina 13 Copyright © - Todos os diretos reservados Pcie erm Cerne} ay Registradores MEMORIAS Figura 1. -Elementos Internos de um Microprocessador 1.3.1_UNIDADE CENTRAL DE PROCESSAMENTO (CPU) ‘ACPU (Central Processing Unit em inglés, ou Unidade Central de Processamento), também conhecida como processador ou ainda microprocessador, que processa as instrucdes contidas no ‘programa. Na maioria das CPUs, essa tarefa é dividida entre a unidade de controle (UC) que dirige 0 fluxo do programa e uma ou mais unidades légicas e aritméticas (ULA) que executam operagdes de acordo com as Instrugbes recebidas pelo programa. (Figura 1.8) ‘A fungo da CPU & reconhecer um conjunto basico de instrugées utiizadas para escrever programas que comandam o seu funcionamento, ou seja, que controlam toda a operacao e funcionamento do computador ou de um sistema microprocessado. Ela é composta de varias unidades menores, das quais ‘as mais importantes so: (Figura 1.10) + Decodificador de Instrucdo: E 0 circuito que reconhece instrugdes de programa, e executa outros circuitos com base nessas instrugdes. O tamanho do Conjunto de Instrugdes (Instructions Set) refere-se a quantidade de instrugdes que esse circuito é capaz de realizar @ € diferente para cada familia de mictocontrolador. ‘+ Unidade Logica ¢ Aritmética: Reaiza todas as operagées matematicas (aritméticas) & légicas sobre os dados do programa. ‘© Registradores: Um registrador ou célula de meméria é um circuito eletrénico capaz de armazenar uma pequena quantidade de Bytes (geralmente 1 Byte), porém muito rapido. 0 conjunto de registradores pode ao nao estar contido na CPU e tem como fungao 0 armazenamento temporario dos dados e as instrug6es que esto em processamento. Registradores LRcumilador Sts Figura 1.10 -CPU suas unidades. www.picminas.com.br Pagina 14 Copyright © - Todos os diretos reservados -ASOONn * 4.3.2. MEMORIAS Em sistemas microprocessados, meméria sio todos os dispositivos que permitem que os dados sejam qguardados, temporariamente ou permanentemente. As memérias podem ser classificadas basicamente de duas maneiras. A primeira classificagao esta associada forma como os dados so armazenados, neste caso, existem dois tipos de meméria, as Voldtels e as Nao-Voléteis. © Memérias Volateis: so as que requerem energia para manter a informacio armazenada. So fabricadas com base em duas tecnologias: dinémica e estatica. A dindmica & a mais de menor custo entre a esse tipo de meméria. So populamente conhecidas como Meméria RAM (do inglés Randomic Acess Memory - Meméria de Acesso Aleatério), que significa que os dados, nela armazenados, podem ser acessados a partir de qualquer endereco. As memérias RAM se contrapdem com as de acesso sequencial, que exigem que qualquer leitura/escrita seja feita a partir do primeiro endereco e, sequencialmente, vai ‘pulando" de um em um até atingir © endereco desejado, Na realidade, existem outras memérias de acesso aleatério nos computadores, inclusive ndo-volateis, portanto, € importante ter o conhecimento de que o nome RAM apenas uma popularizagao do nome da meméria principal dos computadores, utilizada para armazenar os programas e dados no momento da execueao. (Figura 1.11) Figura 1.11 - Foto com diversos tipos de memérias RAM. © nome dindmica é referente a tecnologia utlizada para armazenar programas e dados e no & forma de acessé-los. De modo simplificado, ela funciona como uma bateria que deve ser recarregada ‘sempre que apresentar carga insuficiente para alimentar o equipamento. Todas as vezes que a CPU (unidade de processamento central) acessar a memoria, para escrita ou para leitura, cada célula dessa meméria é atualzada. Se ela tem “1" (um) légico armazenado, sua “bateria” sera recarregada; se ela tem “0” (zero) ldgico, a “bateria” sera descarregada. Este procedimento & chamado de refresco de memoria, em inglés, refresh. ‘A meméria estatica nao necessita ser analisada ou recarregada a cada momento. Fabricada com Circuitos eletrénicos conhecides como /atch, guardam a informagao por todo o tempo em que estiver a receber alimentacdo. www.picminas.com.br Pagina 15 Copyright © - Todos os diretos reservados -ASOONn * a ‘+ Memérias Néo-Volateis: Sdo aquelas que guardam todas as informagdes mesmo quando nao estiverem a receber alimentacSo. Como exemplos, citam-se as memérias conhecidas por ROM e FLASH, bem como os dispositivos de armazenamento em massa, disco rigido, CDs e disquetes. As memérias somente para leitura, do tipo ROM (sigla de Read Only Memory), permitem 0 acesso aleatério e s80 conhecidas pelo fato de o usudrio no poder alterar o seu conteudo. Para gravar uma memeéria deste tipo sao necessarios equipamentos especificos. Dentre as memeérias do tipo ROM destacam-se as seguintes: Programable Read Only Memory (meméria programavel somente de Gravada pelo usuario uma tnica vez. Read Only Memory (meméria Pode ser gravada, apagada ou regravada programavel e apagavel utilizando um equipamento que fomnece as eletronicamente somente de voltagens adequadas em cada pino. leitura). Figura 1.12 - Memoria EPROM ~ Os dados sao apagados com ralos ultravioleta. © tipo de memaria conhecido como FLASH € 0 tipo mais moderno dentre os apresentados aqui, mas é uma variacao do tipo EEPROM. Tomaram-se muito populares por dois motives: a utilizago de dispositives de armazenamento removiveis como os chamados Pen Drives, a aplicaco em equipamentos de som que reproduzem miisica no formato MP3 € os cartées de meméria das cameras digitais (Figura 1.13). Os dados armazenados neste tipo de meméria permanecem ali sem a necessidade de alimentagao. ‘Sua gravacao ¢ feita em geral através da porta USB. Figura 1.13 -Tipos de www.picminas.com.br Pagina 16 Copyright © - Todos os -ASOONn * ‘A segunda classificagao dada as memérias esta relacionada ao seu modo de acesso, onde temos dois tipos de memoria, as Memorias Primarias e as Memorias Secundarias, ‘+ Memérias Primérias: também chamadas de meméria real, so memérias que o processador pode acessar diretamente, sem as quais os sistemas computadorizados ndo podem funcioner. Geralmente fornecem uma “ponte” para as secundérias, mas a sua fung&o principal ¢ a de conter a informacao necessaria para o processador num determinado momento; esta informagao pode ser, por exemplo, os programas em execugdo. Nesta categoria insere-se a memoria RAM (volatil), meméria ROM (ndo-volati), registradores e memérias cache. Apesar desse tipo de meméria ser ‘bem mais répida que a meméria secundaria, elas possuem baixa capacidade de armazenamento, onde ¢ armazenado somente 0 programa que esta sendo executado pelo processador. ‘+ Momérias Secundarias: memérias que nao podem ser acessadas diretamente, a informacao precisa ser carregada em meméria priméria antes de poder ser tratada pelo processador. Nao so estritamente necessarias para a operagdo dos sistemas computadorizados. Sao geralmente ndo- voléteis, permitindo guardar os dados permanentemente. Incluem-se, nesta categoria, os discos rigidos (HDs), CDs, DVDs e disquetes. Sdo memorias de armazenamento em massa, guardam grandes quantidades de dados. Para entendermos melhor a aplicaglio dessas memérias vamos pensar em um exemplo de computador, sendo a RAM a meméria primadria e o HD a meméria secundaria. Quando clicamos em um [cone para abrir um programa (por exemplo, o WORD), esta programa, que estava armazenado na meméria ‘secundéria (HD), é carregado na meméria primaria (RAM) e ficard la até que o programa seja encerrado. 1.3.3 REGISTRADORES Como jé foi dito, um registrador ou célula de meméria é um circuito eletrénico capaz de armazenar uma pequena quantidade de Bytes (geralments 1 Bytc). Os regictradores esto no tepe da hicrarquia de meméria, sendo assim, so 0 meio mais rapido e caro de se amazenar um dado. E uma espécie de secretdria utiizada para armazenar todos os dados sobre os quais sero realizados algum tipo de operacdo (ADD, MOVE, SHIFT, etc.). Ele também armazena os resultados dessas operagdes. Por exemplo, quando uma instruggo de soma entre duas varidveis quaisquer (A e B) € executada, antes da soma ser realizada, as variaveis sero carregadas, da memoria RAM, para dentro de dois registradores. Sé depois a soma é realizada. Isso acontece porque somente os registradores possuem comunicacdo direta com a CPU de um processador (Figura 1.14). O resultado da operagdo também sera armazenado em outro registrador antes de ser carregado na meméria RAM. No PIC18F4550 esses registradores sdo chamados de GPR (General Purpose Register - Registradores de Propésito Geral). Pere 5: ura ou Excrta TTR Registrador ny Dore Figura 1.14 -© Registrador é um tipo de meméria que tem acesso direto = CPU. www.picminas.com.br Pagina 17 Copyright © « Todos os -ASOONn * 4.3.4 REGISTRADORES DE FUNGAO ESPECIAL (SFR) ‘Além dos registradores que ndo possuem nenhuma fun¢do especial ou pré-determinada, todo microprocessador ou microcontrolador possui um conjunto de registradores cujas fungdes so pré- determinadas pelo fabricante. Seus bits so conectados (literalmente) a circuitos internos, tais como: temporizadores (timers), conversores A/D ¢ osciladores (Figura 1.15). Isso significa que eles esto diretamente no comando de operagdes de hardware, sem precisar da interven¢o da CPU, ou seja, para ‘modificar alguma caracteristica de hardware que esta associada a um SFR, basta modificar os bits desse registrador. No caso dos registracores de 8-bits, cada SFR funcionara como 8 chaves (ligaldesliga) que comandam alguns pequenos circuitos dentro do microcontrolador. Um exemplo disso seriam os circuitos que determinam (controlam) se alguns pinos de um microcontroiador funcionaram como pinos de entrada de sinal ou pinos de saida de sinal. No PIC18F4550 este circuito est4 associado a um SFR chamado TRIS. Quando um dos bits do TRIS for ajustado para légica “1” (esse ajuste é feito pelo projetista por meio do programa), a pino do PIC que estiver associado aquele bit funcionara como Entrada (Input). J quando o bit for ajustado para a légica “0”, o pino passard a funcionar como Saida (Output). Ou seja, o registrador TRIS interfere diretamente no funcionamento do hardware do microcontrolador. Figura 1.15 -Registradores com funcdes especiais. Outros exemplos de registradores de fungio especial (SFR), so: * STATUS: utilizado para armazenamento de flags matematicos e de estado da CPU, além dos bits de sele¢do do banco de memsria RAM. INTCON: utiizado para controle de interrupgdes. OPTON_REG: utiizado para configurar o funcionamento de alguns periféricos interns ao Pic. * PORT: utllizado para a leitura ou escrita nos pinos do PIC (Secedo 1.3.8). TRIS: utlizado para configurar os pines das portas como entrada ou saida (input/output), Nos PICs, tanto os SFR quanto os GPR séo multas vezes referenciados pela letra “f”. Isso decorre da nomenclatura utllzada pela Microchip: file egisters. E importante também sabermos que os registradores “f” (SFR e GPR) s4o mapeados dentro da meméria RAM dos PICs. Desta forma, 0 acesso aos registradores ¢ feito pelo seu endereco de localizaclo na memoria, 1.3.5 PORTAS I/O (ENTRADAVSAIDA) E por meio destas portas que © processador interage com o meio exterior. & onde estdo conectados 0 Periféricos dos sistemas microprocessados (figura 1.9). Sao exemplos de periféricos: impresoras, mouses, sensores, teclados, displays de LCD, etc. Os microcontroladores possuem um ou mais registradores de fungdes especiais chamados PORT conectados aos seus pinos I/O (pinos de Entrada ou Saida). Esses pinos sdo chamados de V/O porqué, como vimos anteriomente, eles podem ser configurados tanto como entradas quanto como saidas, www.picminas.com.br Pagina 18 Copyright © - Todos os diretos reservados -ASOONn * a dependendo da necessidade da aplicagtio. Quando os pinos esto configurados como entrada, o registrado PORT passa a funcionar como um registrador de leitura, onde € possivel ler 0 estado ("0" ou “1") de cada um dos pinos que esto conectados aquele registrador. J& quando os pinos est&o configurados como saida, © registrador PORT funciona como um registrador de escrita, onde é possivel colocar légica “0” ou légica “1” 1nos pinos (Figura 1.16 - Portas do microcontrolador.). Figura 1.16 -Portas de microcontrolador. Uma das especificagées mais importantes dos pinos VO é a corrente maximia com que eles podem operar. Para a maioria dos microcontroladores, a corrente fomecida por um pino é suficiente para acender um LED’ ou outro dispositivo similar de baixa corrente (10/20mA). No entanto, se um microcontrolador ossuir muitos pinos /O, e todos eles estiverem ativos, a corrente maxima em cada pino sera menor. !ss0 acontece porque além de cada pino especificar a corrente maxima com a qual ele pode trabalhar, 0 microcontrolador de modo geral também tem um limite de corrente de operacao. Desta forma, se varios pinos forem acionados simultaneamente, esse limite ro podera ser ultrapassado, fazendo com que o limite de cada pino diminua. E importantissimo veriicar no datasheet do microcontrolador, que esta sendo utilizado, qual é 0 valor maximo de corrente por pino VO (operando isoladamente) e por conjunto de pinos. 1.3.6 BARRAMENTOS Em sistemas microprocessados, 0 barramento é um conjunto de linhas de comunicagao que ermitem a interligagao entre disposttivos, como a CPU, a meméria e outros periféricos. Em um computador, esses barramentos sao as trilhas do cireuito impresso da Placa Mae — Mother Board — (Figura 1.17). Figura 1.17- Placa > LED — Light Emitting Diode, 0 que significa Diodo Emissor de Luz. E um componente eletrénico muito utilizado como luz de sinalizagao que acende com um valor de corrente elétrica bem baixa. Www.picminas.com.br Pagina 19 Copyright © « Todos os -ASOONn * Os barramentos podem ser divididos em trés conjuntos: ‘+ Barramento de dados: onde trafegam os dados dos programas; + Barramento de enderecos: onde trafegam os enderegos; * Barramento de control sinais de controle que sincronizam as duas anteriores. (© desempenho do barramento é medido pela sua largura de banda (quantidade de bits que podem ser transmitidos ao mesmo tempo), geralmente poténcias de 2 (B-bits, 16-bits, 32-bits, 64-bits, etc.) E também pela velocidade da transmisséo medida em bps (bits por segundo), por exemplo,10 bps, 160 Kbps, 100 Mbps, 1 Gbps ete. 1.3.7 INTERRUPCOES Um conceito importante 2 ser abordado quando se fala de sistemas microprocessados séo as Interrupg6es. SZo sinais emitides por um ou mais dispositivos periféricos que tipleamente resuttam em uma troca de contexto, isso é, 0 processador para de atender a tarefa que estava tratando e atende 20 dispositivo que fez 0 “pedido de interrupedo” (IRQ — Interrupt Request) (SILBERSCHATZ, 2004). ‘Aiguns processadores oferecem uma maneira de iniciar rotinas de software em resposta a eventos eletrénicos assincronos. Esses eventos so sinalizados para 0 processador através de IRQs. Segundo SILBERSCHATZ, 2004, 0 processamento da interrupzdo @ uma troca de contexto entre a rotina corrente © uma rotina dedicada a tratar a interrupedo. Essa dltima & chamada “rotina de servigo de interrupedo", ou “tratador de interrupeao” (interrupt handler). Os enderegos dessas rotinas so chamados “vetores de interrupcao” e S40 armazenados, geralmente, em uma tabela na meméria RAM, permitindo sua modificacao caso seja necessério. A Figura 1.18 mostra, esquematicamente, uma interrupedo sendo atendida (MARTINS, 2008). Programa em execucao a End.de tratarento _Svamento de parametros ee OE ee — Retorno dos parémetros eterna Figura 1.18 -Atendimento de interrupgae. ‘Segundo TANEMBAUM, 2007, Interrupg6es foram concebidas para evitar 0 desperdicio de tempo computacional em loops de software (chamados polling loops) esperando eventos que sero disparados por dispositivos de modo assincrono. Ao invés do processador ficar esperando o evento acontecer, ele torna-se capaz de realizar outras tarefas enquanto os eventos esto pendentes. A interrupedo avisa ao processador quando 0 evento ocorreu, permitindo uma acomodacao eficiente dos dispositivos mais lentos. www.picminas.com.br Pagina 20 Copyright © - Todos os diretos reservados -ASOONn * 1.4MICROCONTROLADORES Com 0 passar do tempo comegaram a surgir dispositives eletrénicos com funcionalidades especificas, como as méquinas de lavar, 0s controles remotos, os celulares, os mini games (video games de bolso), sistemas de controle de alguns processos industriais, entre outros. A utlizaggo de um microprocessador nesses dispositivos seria como utiizar um canho para matar uma formiga no quesito velocidade e capacidade de processamento. Desta forma, surgiu a necessidade de um microprocessador ‘com funcionalidades especificas e com capacidade de processamento bem inferior a0s microprocessadores utiizados em sistemas computadorizados. Esses novos microprocessadores inicialmente ficaram conhecidos como minicomputadores ou computadores dedicados. Na evolucdo desses minicomputadores, foram incorporados varios periféricos (funcionalidades de outros CHIPs) em um mesmo CHIP, 0 que postetiormente deu origem aos MICROCONTROLADORES. De modo geral, um microcontrolador possui 0 ‘mesmo principio de funcionamento que um microprocessador, s6 que diferente dele, o microcontrotador no necessita de nenhum dispositive (CHIP) externo para funcionar. Na verdade, podemos pensar em um ‘microcontrolador como um CHIP que possui além do microprocessador, diversos outros cispositivos necessarios para o funcionamento de um sistema computadorizado, como memérias, barramentos © periféricos. A Figura 1.19 mostra varios CHIPs, com funcionalidades diversas, sendo incorporados em um linico CHIP, formando assim 0 microcontrolador. Os primeiros microcontroladores foram criados no final da década de 70 e atualmente seu uso ¢ amplamente dfundido. Estima-se que em um lar comum de um pais, desenvolvido seja possivel encontrar até 24 microcontroladores em funcionamento nos diversos aparelhos eletroeletronicos. Microcontrolador Figure 1.19 - Desenho esquematico de um Microcontrolader. Apesar. de 0s microcontroladores possulrem um desempenho bem inferior aos microprocessadores, 0 seu custo @ muito menor. Além disso, so muito uteis em aplicagdes onde as dimens6es, custo, tamanho e consumo do produto sao muito importantes. primeiro microcontrolador produzido foi 0 8048 da Intel, substituido mais tarde pela familia 8051, que se tornou muito popular junto com 0 6811 da Motorola. Atualmente no mercado, existem varios modelos @ forecedores desses componentes, sendo usados em velculos, equipamentos domésticos, celulares, www.picminas.com.br Pagina 24 Copyright © - Todos os diretos reservados -ASxc00n * forno de micro-ondas, dispositivos periféricos de computadores, pequenos sistemas de controle, brinquedos, equipamentos médicos, etc. ‘A Figura 1.20 mostra o diagrama de blocos da arquitetura interna de um microcontrolador padrdo. AL IT eer eee erase 1[Osctador o ey 1+ I + Controle de vo vo vo. i Temporizadores | | interrupodes | |Paraiela| | Serial | | Analdgicas ; 1} c ! 1] P Barramento de diregao, dados e controle 1 1 U ' ! «| ‘Watchdog Timer Memoria FLASH| MemériaRAM | I 1 1 Lose wn eee ee ee eee eee oe eee | Figura 1.20 -Diagrama de blocos geral de um mlcrocontrlador. Os microcontroladores dispem de um osciiador que gera os pulsos que sincronizam todas as ‘operagées intemas aitando o ritmo de trabalho de todo o sistema. A velocidade de execucdo das instructes do programa esta diretamente relacionada com a frequéncia do oscilador do microcontrolador (VALDES, PALLAS, 2007). Existem varios tipos de circuitos osciladores, como por exemplo os RC (resistivos € capacitivos) e 0s de cristal, sendo esses uitimos mais utilizados devido sua grande estabilidade e preciso em ats frequencias. ‘Assim como para um computador, a CPU é considerada “o cérebro” do microcontrolador. Ela € responsavel por carreger as instrugées do programa, uma a uma, da meméria onde esto armazenadas para dentro de seus registradores de uso geral. A partir dal, a CPU realiza a decodificagdo, execugao € armazenamento dos resultados dessas operagbes na meméria, caso seja necessario. A CPU é constitulda, basicamente, por uma Unidade Légica Aritmética (ULA), responsdvel por realizar operagdes aritméticas € logicas e de tomada de deciso; uma Unidade de Controle, responsavel por realizar todo 0 controle de acesso a meméria e por decodificar as instrucSes; e, finalmente, por seus registradores, responsaveis por armazenar dados e instrugdes temporariamente, encuanto esto sendo processades (VALDES, PALLAS, 2007) ‘ACPU de um microcontrolador dispde de diferentes tipos de registradores, alguns de propésito geral e outros de propésitos especificos. Entre estes ultimos esto os Registradores de Instrugées, 0 Registrador Work, o registrador STATUS, 0 contador de programa, o registrador de enderego de dados e a pilha (STACK). © Registrador de Instruges armazena a instrugéo que esta sendo executada pela CPU. O Registrador de Instrugdes no é visto pelo programador. © Registrador Work é 0 registrador associado 8s operagées aritméticas e légicas que se podem realizar na ULA. Em qualquer operago, um dos dados deve estar no registrador Work € o resultado obtido 6 armazenado nele. © registrador STATUS agrupa os bits indicadores das caracteristicas do resultado das operagées aritméticas e logicas realizadas na ULA e de informagSes referentes ao funcionamento da CPU. Entre estes indicadores esta 0 sinal do resultado (positivo ou negativo), se 0 resultado € zero, se houve estouro de registradores eo tipo de paridade do resultado (PEREIRA, 2008). © Contador de Programa € 0 registrador da CPU onde armazenam os enderegamentos das instrugdes. Ele & responsdvel pelo controle da sequéncia de instrugées, cada vez que a CPU busca uma www.picminas.com.br Pagina 22 Copyright © - Todos os diretos reservados -ASOONn * instrugdo na memeéria, © contador de programa se incrementa, apontando assim para a préxima instrugdo. Em um dado instante de tempo, 0 contador de programa contém o endereco da instrugdo que sera executada na continuago (PEREIRA, 2008). © Registrador de Enderecos de Dados armazena os enderegos dos dados situados na meméria. Este registrador é essencial para o tratamento de dados indiretos na meméria. A Pilha (STACK) tem como principal fung&io armazenar enderegos de retorno quando so utilizadas instrugSes de chamadas de sub-rotinas. © endereco da préxima instru¢éo do programa é& armazenado na pilha e 0 programa é desviado para 0 enderego da sub-rotina, Quando o programa & desviado para o comego de uma rotina por meio da instruc correta, 0 endereco seguinte ao ponto que estava sendo rodado é armazenado na pilha para que, ao fim da rotina, 0 programa possa retornar (SOUZA, 2005). ‘A meméria do microcontrolador € © lugar onde esto armazenadas, dentre outras coisas, as instrugées e os dados do programa. Em um microcontrolador sempre ha, pelo menos, dois tipos de memérias: uma volatil de rapido acesso (meméria RAM) e outra com velocidade inferior com maior capacidade de armazenamento € nao volatil (memoria FLASH). A RAM perde a informagao armazenada quando nao ha alimentago de energia. Sua funeao é armazenar temporariamente dados e instrugdes a serem executadas pela CPU do microcontrolador. A meméria FLASH, por sua vez, é utlizada para armazenar permanentemente todo 0 programa que deve ser executado pelo microcontrolader. Um numero crescente de microcontroladores dispée de alguma meméria ndo volatil do tipo EEPROM para armazenar dados fixos que s6 sao trocados esporadicamente. ‘A quantidade de meméria FLASH disponivel é normalmente superior a quantidade de meméria RAM. Isso obedece a duas razées: a primeira esta relacionada ao preco dessas memérias, sendo maior 0 custo por Byte das memérias RAM se comparadas com as memérias FLASH. O outro motivo € que a meméria RAM deve armazenar apenas partes do programa que sero executadas naquele momento, nao ‘se fazendo necessaric o armazenamento completo do cédigo. ‘As entradas © saidas sao particularmente importantes nos microcontroladores, pois € atraves delas que 0 microcontrolador interage com o meio exterior. O mictocontrolador possui tanto entradas e saidas digitais (portas I/O, portas de comunicacao serial, PWM, etc), quanto portas analégicas associadas ‘aos conversores A/D e D/A. utro recurso importante € cada vez mais comum nos microcontroladores atuais é 0 Watchdog Timer, que reinicia todo o sistema caso programa principal apresente alguma falha, 4.5LINGUAGEM DE MAQUINA Como visto, os microprocessadores sao maquinas elétricas onde podemos armazenas instrug6es (programas) permitindo que 0 mesmo funcione de varias formas diferentes dependendo do que for armazenado em sua meméria. Mas que instrugdes so esas? Como um microprocessador & capaz de entender 0 que © homem escreve? Para respondermos estas perguntas, primeiro devemos conhecer a lingua “falada” pelos sistemas microprocessados, conhecida como linguagem binaria ou cédigo binario. © cédigo binario ¢ composto de dois algarismos apenas 0 “0" e o "1". Na pratica, dentro de um processador (maquina elétrica), 0 algarismo “0” equivale a uma tensao elétrica na faixa de 0 a 0,8 Volts e 0 algarismo “1" equivale a uma tensao elétrica na faixa de 2 a 5 Volts (dependendo da tecnologia utilizada). Valores entre 0,8 e 2 Volts so indefinidos, ou seja, podem ser interpretados tanto como légica "0" ou légica “1"). Isso foi feito para simplificar os circuitos envolvidos na construgdo das maquinas elétrica & porque os sistemas computacionais iniciais eram valvulados, onde valvulas abertas equivaliam a légica “0” & valvulas fechadas a légica “1”. Apesar de possuir apenas dois algarismos, € possivel representarmos qualquer numero, letra e comando com as palavras valavras constituidas de 0's ¢ 1 www.picminas.com.br Copyright © - Todos os diretos reservados -ASOONn * numero de bits, pois quanto maior for o numero de bits dessa palavra binaria, maior seré 0 niimero de combinagées binarias (numeros binarios diferentes). Por exemplo: = Com 2-bits nés s6 podemos criar 4 palavras binarias diferentes: 00, 01, 10 © 11; = Jd com 3-bits & possivel obter até 8 comandos diferentes: 000, 001, 010, 014, 100, 101, 110 411. Desta forma, para uma palavra de n-bits teremos 2” combinagSes diferentes que o sistema microprocessado podera utilizar para representar nmeros e/ou comandos. 1.6REPRESENTACAO NUMERICA Amatematica é uma ciéncia extraordindria, tudo é to logico e simples. O universo inteiro pode ser descrito com apenas dez digitos diferentes (0,1,2,3.4....9). Mas sera que este é a tnica maneira de fazermos isso? Tem de ser exatamente dez digitos? Claro que nao, foi so uma questo de habito. Lembram das ligSes da escola? Por exemplo, o que significa o niimero 764? Significa: 4 unidades, 6 dezenas e 7 centenas. Nés poderiamos descrever esse nimero de uma maneira mais complicada? Claro que sim, vejam: 4 + 60 + 700, ou mais complicado ainda: 4x1 + 6x10 + 7x10, ou ainda, 4x10° + 6x10" + 7x10”, Mas ‘0 que isso realmente significa? Porque nés usamos exatamente os numeros: 10°, 10' e 10°? Por que tudo parece girar em tomo do nimero 10? Isso acontece porque na representagao numérica decimal nos utiizamos dez digitos diferentes (0, 1, 2...., 8, 9). Em outras palavras, porque usamos um sistema de numeracdo base-10, ou seja, Sistema Decimal de Numeros. Centenas (Segunda posigéo no nimero) Dezoras (Primeira posigdo no nimero) [Uae Poi 20 no nmer) gE f=19) gs 88 Bs | 764=41+610+ 7100 HH E3 5§ C8 | 64=4-10°+ 6-10! +7210" war Figura 1.21 - Representacio de um numero na base-10. © que aconteceria se existissem apenas dois algarismos (“0" e “1") para representarmos todos os niameros? Isso seria possivel? Claro que sim! A Unica coisa que iria mudar seria a representag3o desses nimeros, ou sea, a representago numérica, que nesse caso s6 poderia utlizar dols algarismos diferentes, 0 *0' e.0 “1”. Fazendo uma analogia ao sistema decimal (Base 10) que possui 10 algarismos diferentes (0, 1, 2... 9), quando se usa apenas dois algarismos passamos a trabalhar com o Sistema jo de Numeros, ou Base-2. Para descobrirmos como so representados os nimeros na Base-2, basta utiizarmos a mesma técnica adotada na Figura 1.21, Veja o exemplo da Figura 1.22. www.picminas.com.br Pagina 24 Copyright © - Todos os diretos reservados -ASOONn * ‘Sema posigo no numero Sistema de numeragso Base-2 l L024 12410414 OD fli dd ddd 1011010= 128 +64 +0 +16 + 8 + 0 + 2 +0=218 | Posigo zero no numero 1011010 = 1 4 Nimero 278 no Sistema Bina Nimero 218 no Sistema Decimal Figura 1.22 -Transtormacio de um niimero na base-2 para base-10. Observe que a palavra binaria 11011010 equivale ao numero 218 no sistema decimal de numeracdo. Veja que para representarmos 0 mesmo nimero, o sistema binario necessita de & algarismos enquanto que o sistema decimal apenas 3. Essa € a principal desvantagem do sistema binario, pois exige que o sistema possua uma memeéria maior para armazenar a mesma quantidade de informagao. Por outro lado, 0 sistema bindrio ¢ bem menos complexo, pois s6 trabalha apenas com dois algarismos, permitindo que os sistemas computadorizados trabalhem com 0 sistema de Tudo (légica 1) ou Nada (légica 0), conhecida como Linguagem de Maquina ou Linguagem de Computador. Desta forma, se quisermos que um computador (ou mais especificamente 0 processador do computador) entenda o numero 218, na verdade teremos de passar para ele o nlimero 11011010. Ainda existe outro sistema de numeracao, chamado Hexadecimal, utiizado para representar os programas escritos em cédigo binario de forma mais compacta. Isso acontece porque, diferente do cédigo bingrio que possui menos algarismos que o sistema decimal, o hexadecimal possui 16 algarismos, necessitando assim de palavras menores para representar 0 mesmo cédigo decimal ou bindrro. No inicio do desenvolvimento dos sistemas computadorizados, as pessoas perceberam que tinham muitas dificuldades em lidar com numeros binarios, pois os cédigos desenvolvidos em linguagem de maquina ficavam muito extensos e dificeis de serem lidos. Por isso, um novo sistema de numeracdo foi desenvolvido. Sé que desta vez, foi criado um sistema com 16 algarismos diferentes. Os primeiros 10 digitos so os mesmo do sistema decimal (0, 1, 2, 3,... 9) € 08 6 outros digitos foram criados utilizando as seguintes letras: A, B, C, D, E F, formando assim um sistema de numeragao Alfanumérico, chamado de Sistema de Numeracéo Hexadecimal. O algarismo A equivale ao niimero 10 do sistema decimal, o B equivale ao 11 e assim sucessivamente até o F que equivale ao 15. Desta forma, ficou mais simples para os projetistas entenderem os cédigos de maquina que haviam desenvoivido, pois os mesmos ficaram bem mais compactos uma vez que com um algarismo do sistema Hexadecimal era possivel representar até 4 algarismos do sistema Binario, por exemplo, o maior nlimero que pode ser representado com uma palavra binaria de 4-bits € 0 1111 que comesponde ao numero 15 no sistema decimal e F no hexadecimal. (Figura 1.23) Nai Binat come digios —> 1010 1114 Figura 1.23 - Comparacio de um numero na base-16 ena base-2, Observe na Figura 1.23 que um mesmo ndmero com 8 algarismos no sistema binario tera apenas 2 algarismos no sistema hexadecimal. Agora imagine um cddigo de 1.000 linhas escrito utilizando o sistema bindrio. Ele ficaria muito mais simples e compacto se fosse escrito em hexadecimal. Desta forma, convencionou-se que todo cédigo de maquina seria escrito em hexadecimal para facilitar o entendimento. www.picminas.com.br Pagina 25 Copyright © - Todos os diretos reservados -ASOONn * 1.7 CONVERSOES DE SISTEMAS NUMERICOS ‘Agora que conhecemos quais s&o os sistemas numéricos mais utiizados pelos sistemas microprocessados, é muito importante sabermos converter ntimeros de um sistema de numeragao para 0 outro, ou seja, como transformar uma série de 0's e 1's em valores compreensiveis para nés. 4.7.1 CONVERSAO BINARIA PARA DECIMAL Os digitos em um ntimero binario possuem pesos diferentes de acordo com sua posi¢do no niumero. Além disso, cada um desses pesos poderd estar associado a um 1 ou a um 0. Para encontrarmos © valor decimal de um numero binario temos de multplicar cada um de seus digitos pelo peso da posicéo ‘em que ele se encontra, desta forma, encontraremos o valor decimal de cada digito. O valor do numero decimal equivalente € igual & soma dos valores decimais dos digitos binarios, veja o exemplo mostrado na Figura 1.24: Pesos das Posighes waSadon. Digitos Figura 1.24 - Conversio de um numero na base-2 para base-10. E importante notarmos que para nimeros decimais de 0 a 3, s80 necessérios apenas dois digitos bindrios para sua representacao. Para valores superiores, digitos extras devem ser acrescentados. Assim, para numeros de 0 a 7 so necessarios 3 digitos, 0 2 15 so necessarios 4 digitos, 0.a 31 — 5 digitos, ete. esta torma, para sabermos qual @ 0 maior numerc decimal que podemos representar com um numero bindrio de n digitos, basta aplicarmos a seguinte formule: 2" ~ 4, veja 02 exemplos: Com 2 digitos => 2*— 1 = 3 (como vimos com numeros binarios de 2 digitos podemos representar os nmeros decimais de 0 a 3, sendo 0 3 0 seu valor maximo); Com 3 digitos => 2°-1=7; Com 4 digitos => 2"—1= 15; Com $ digitos => 2°—1=31. Assim, usando 4 digitos bindrios possivel representar nlimeros decimais de 0 a 15, incluindo estes dois digitos, o que equivale a 16 valores diferentes no total. © microcontrolador PIC18F4550, utlizado em um de nossos cursos, trabalha com palavras binarias de 16 digitos, desta forma, é possivel representar nlimeros decimais de 0 a 65.535 ou 65.536 valores diferentes no total, 1.7.2. CONVERSAO HEXADECIMAL PARA DECIMAL Para proceder @ conversdo de um nimero hexadecimal para decimal, cada digito hexadecimal deve ser muttipicado pelo numero 16 elevado ao valor da posigao do digito. (Figura 1.25) www.picminas.com.br Pagina 26 Copyright © - Todos os diretos reservados -ASOONn * ATE (Nimero no sistema hexadecimal) 31G= 3256 = 768 10-16 = 10-4096 = 40960 41854 Mesmo numero no sistema decimal Figura 1.25 - Convers de Hexadecimal para decimal 1.7.3 CONVERSAO HEXADECIMAL PARA BINARIA Esta é a conversao mais simples que existe, no é necessério efetuar qualquer calculo. Os digitos hexadecimais so simplesmente substituidos pelos quatro digitos binarios adequados. O valor maximo que um digito hexadecimal (digito F) pode representar é 0 ntimero decimal 15. Desta forma, so necessérios quatro digitos binérios para representar um digito hexadecimal qualquer. (Figura 1.26) E4 = 11100100 E 4 Figura 1.26 - Conversso de binario para hexadecimal A Tabela 1 contém os valores dos ntimeros 0-255 em trés diferentes sistemas de numeragao. 00 ofooo 00 oO 4/0/0/0/0/0/0/0/1| 4 | arololofofoo 10) 2 [slolofo ooo 11) 3 4 0/0/0/0.0/1/0|0 $0 0/0 00/40/41, 6 60 0/0 001/110 7o/olo ojo 1/4, 7 80/0/0 0/1000) @ sojolo 04001) 9 4000/0 o1/0/1/0 A 44 0/0/0/0/1/0/4/1 atofololo titolo, 13,0/0/0/0 1/1 0/1) D 44/0/0/0/0/1/1/1/0| E 15 .0.0/001/1/4/1 F 46/0/0/0/1/0/0/0/0) 10 170/0/0/110/0/0|1) 14 253) 1/1/1/1/1|1|0|4 FD 25411/1/41/1/1/0 FE 2551/4 /4 44/4 /4)1) Fe Tabela + -Representagdo de nimeros nas tds bases. © sistema de numerago hexadecimal, juntamente com os sistemas binério e decimal, & considerado © mais importante para o desenvolvimento do mundo computadorizado que vivemos. faci fazer converséo de qualquer numero hexadecimal para binario e também é facil de lembrar. No entanto, essas conversées podem causar confusdo. Por exemplo, o que sighfiea a afirmagdo: "Existem 110 produtos na linha de montagem"? Vai depender se estamos falando de um numero binario, decimal ou hexadecimal, www.picminas.com.br Pagina 27 Copyright © - Todos os diretos reservados -ASOONn * © resultado poderia ser de 6, 110 ou 272 produtos, respectivamente. Consequentemente, a fim de evitar malentendidos, diferentes prefixos e sufixos so adicionados diretamente aos numeros. O prefixo Ox ou $ bem como 0 sufixo h marcam os nimeros em hexadecimal. Por exemplo, o numero hexadecimal 10AF pode aparecer das seguintes formas: $10AF, Oxi0AF ou 10AFh. Da mesma forma, os ntimeros binérios normalmente possuem 0 sufixo % ou Ob, enquanto numeros decimais possuem o sufixo D ou, mais usualmente, aparecem sem nenhum sufixo ou prefixo. 1.80 BIT Teoricamente falando, um bit € a unidade basica de infor (computacionais). Na pratica, um bit é um digito de uma palavra bit rnumerago, onde um digito em um numero nao tem o mesmo valor (por exemplo, os digitos no numero 333 80 05 mesmos, mas possuem valores diferentes, onde 0 primeiro 3 representa trés unidades 0 segundo digito 3 representa trinta unidades € 0 digito 3 mais a esquerda do numero representa trezentas unidades), a significancia de cada bit depende da posi¢o em que ele se encontra no numero binario. A diferenga entre 5 nlimeros decimais e os niéimeros binérios & que nos primeiros a cada vez que um digito é deslocado para a esquerda ele € multiplicado por 10 (Base-10), enquanto que nos binatios ele seré multiplicado por 2 (Base-2). Desta forma, em um niimero binario 114, 0 primeiro 1 (sempre da direita para a esquerda) tem 0 valor de 1, 0 segundo 1 tem o valor de 1x2' = 2 € 0 terceiro 1 tem o valor de 1x2” = 4, enquanto que para ‘ nimero decimal 111, 0 primeiro 1 tem o valor de 1, 0 segundo 4 tem o valor de 1x10" = 10 € o terceiro 1 tem o valor de 1x10? = 100. Desta forma, ficou convencionado que o bit mais a esquerda de uma palavra binaria seria 0 Bit Mais Significativo (Most Significant Bit - MSB) eo bit mais a direita o Bit Menos ‘Significativo (Least Significant Bit — LSB). Nao fique confuso se vocé encontrar algum bit com valor 4, 16 ou 64. Isso significa que 0 valor do bit esta representado no sistema decimal. Seria correto dizer, por exemplo, que, “o valor do sexto bit ou bit 6 do numero binario 1000000 equivalente ao numero decimal 64", pois o sexto bit (da direita pra esquerda) esté na posigao 6 (levando em conta que o primeiro bit esta na posi¢ao zero), desta forma ele devera ser multiplicado por 2 seis vezes (2x2x2x2x2x2 ou 2° = 84), (Figura 1.27). Neste caso, como todos os outros digitos sao iguais a 0, o valor do numero bindrio completo sera igual ao valor do bit 6 bis bea bob06 (0900 QO hott nists aba nla» bieo 1606000 Figura 1.27 - Representacdo de um numero na base-2. 1.90 BYTE Um Byte ou palavra de programa consiste em 8-bits agrupados. Todas as operacdes matematicas podem ser realizadas com eles da mesma forma que sao feitas com os niimeros decimais. Tal como acontece com qualquer outro digito de um nimero qualquer, os digitos de um Byte nao possuem o mesmo valor. Como visto, o bit de maior valor é o bit mais a esquerda (MSB). Portanto, o bit de menor valor é o bit ‘mais a direita (LSB). Como em um Byte temos 8 bits, & possivel realizar até 256 combinagées diferentes, ou sseja, um Byte pode representar até 256 (2° = 256) numeros binarios diferentes, sendo 255 0 maior numero decimal que pode ser representado. www.picminas.com.br Pagina 28 Copyright © - Todos os diretos reservados -ASOONn * Um nibble € 0 nome dado a meio Byte (4-bits). Existem dois tipos de nibble, 0 “low” € 0 ‘high’, ‘onde © primeiro € 0 nome dado a metade menos significativa do Byte (os primeiro 4-bits) e o ultimo representa a metade do Byte mais significativa (os titimos 4-bits). (Figura 1.28) "Nibble Superior” "Nibble Inferior” | Bit 6] Bit 5) Bit 4 Bit 3] Bit 2| Bit 1] Bit 0) [Bit Mais Significativo Bit Menos Signifiativo Figure 1.28 - Representacéo de nibbles. 1.10 PORTAS LOGICAS S80 circuitos eletrénicos existentes dentro dos microprocessadores e sao responsaveis por realizar as operagées légicas, aritméticas e de tomade de decisao. Alguma vez vocé ja se perguntou 0 que existe dentro de um microprocessador ou um CHIP. digital? Como € que esses CHIPs conseguem realzar operages légicas, aritméticas e de tomada de decisio? Vocé sabia que por tras dessa aparéncia tio complicada existem apenas alguns elementos diferentes chamados "circuitos légicos” ou “portas légicas"? O funcionamento destes elementos foi baseado nos principios estabelecidos pelo matematico briténico George Boole em meados do séoulo 19, antes mesmo da primeira lampada ser inventada. Em ‘suma, a ideia principal foi a de expressar fungGes légicas por meio de fungdes algebricas. Esse pensamento foi logo transformado em um produto pratico, que muito mais tarde evoluiu para o que hoje conhecemos como circuitos ldgicos E (AND). OU (OR) e NAO (NOT). © principio de funcionamento destes slomentos ficou conhecide come Algebra Booloana. Uma vez que algumas instrugées de programas utilizadas por microprocessadores e microcontroladores fazem uso das funcionalidades destas portas légicas, é importante estudarmos 0 principio de funcionamento de cada uma delas. 1.10.1 PORTA AND Uma porta légica "AND" tem duas ou mais entradas e apenas uma saida. Vamos supor que a porta utilizada neste caso tenha apenas duas entradas, A e B. O principio de funcionamento desta porta diz que s6 apareceré a logica um (1) na saida da porta quanto todas as portas de entrada forem também iguais, um (1), ou seja, somente quando A e B forem iguais a 1 a saida sera igual a 1. A Figura 1.29 mostra 0 simbolo representativo da porta légica AND e a tabela de dependéncias miituas entra as entradas e a sada, Tabela Verdade. Saiday utput ro =)=Jolo aloo alololo Figura 1.29 -Simbolo grafico ¢ Tabola verdade da porta AND. Quando usado em um programa, a operagdo légica AND é executada por uma instrugo de programa, o que sera discutide mais adiante no capitulo que trata da programagaio do microcentrolador em linguagem C. Por enquanto, basta lembrar que a légica AND, em um programa, sera utiizada para relacionar os bits de dois registros ou variaveis diferentes. Veja o exemplo da Figura 1.30, onde é realizada www.picminas.com.br Pagina 29 Copyright © - Todos os diretos reservados ’ASsxoon uma operaco légica AND entre as variaveis A e B, bit a bit, € 0s bits do resultado sé foram iguais 2 4 quanto 0 bit de A e o bit de B eram iguais a 1, o que aconteceu apenas no bit3 e no bit6. Figura 1.30 - Operago légica AND. 1.10.2 PORTA OR Da mesma forma que 0 caso anterior, as portas OR também podem ter duas ou mais entradas € uma saida. A ldgica um (1) aparecera na porta de saida se qualquer uma das entradas (A ou B) estiver em légica um (1). Somente se todas as entradas estiverem em légica zero (0), a saida sera modificada para légica zero (0). A Figura 1.31 mostra o simbolo representativo da porta légica OR e sua Tabela Verdade. aida! x Supt 1 u Figura 1 'Simbolo grafico # Tabela verdade da porta OR. Em instrugdes de programa a operagdo logica OR € utllizada para relacionar variéveis ou registradores bit a bit. Veja o exemplo da Figura 1.32. * Wao Figura 1.92 - Operagao logica OR. 1.10.3 PORTA NOT Esta porta légica tem apenas uma porta de entrada e uma de salda. Ela funciona de uma maneira extremamente simples. Quando é aplicada légica zero (0) na entrada, a logica um (1) aparecera na saida vice-versa, Isto significa que esta porta inverte o sinal aplicado a ela. & as vezes é chamada de porta inversora, (Figura 1.33) Stipe lA « — 0 Figura 1.33 - Simbolo grafico ¢ Tabela verdade da porta NOT. www.picminas.com.br Pagina 30 Copyright © - Todos os diretos reservados -ASOONn ‘Se um programa realiza uma operacao légica NOT em um Byte, o resultado seré um Byte com todos os bits invertidos. (Figura 1.34) Figura 1.84 - Operacao légica NOT. 1.10.4 PORTA XOR (OU-EXCLUSIVA) Aporta XOR € um pouco mais complicada em comparago com outras portas. Ela representa a ‘combinago de todas as outras portas descritas anteriormente, Ela também pode ter duas ou mais entradas © somente uma saida. A légica um (1) aparece na saida apenas quando uma das entradas esta em légica um (1) eas outras em légica zero (0). A Figura 1.36 mostra 0 simbolo representativo da porta logica XOR € = A qs 22 aefp=— Roseeramis OSC2ICLKORAS «C14 RCOTIOSOMTISCKI -—- C15 ROWTOSUCCPANIOE +—- 16 RCUCCPUPIA +=] 17 Wes + 18 RoasPrO =~ 19 RowsPr1 =~ ]20 ——- Roasppa A= rc7RDTrsD0 A+—- Rcermuck A+ RcsD+vP B+—- rcv A+ rossees Ai+—- rozser2 UROBRRNBVBEK BERS EBES Figura 2.3-Distribuigao dos pinos no microcontrelador PICI8F4860 (Fonte: datasheet PIC18F4560) © PIC18F4550 possui até 35 pinos de VO configuraveis, que esto agrupades em cinco grupos denominados PORTAS. Vesta toma, temios a PORT A, a PORT B, a PORT C, a PORT Dea PORT E. ‘A maiotia desses pinos podem ser configurados como entrada ou saida (input/output), e como ja foi dito, alguns deles acumulam outras fungées. Podemos ver mais detalhes sobre cada pino na Tabela 3 (dividida em partes), que segue abaixo (Ver datasheet do PIC18F4550 da pagina 18 & 23): PIC18F4455/4550 PINOUT VO DESCRIPTIONS Fin Number | Pin | Bufer| Fiotiome [Pow [orn [Tarr] type] Type Severvon [iTcLRiveemeD 1] 3] [Master Clear (nut) or programming votape (input). WLR 1] st |) Master Ciear (Reset) input Ths pins an ‘acbve-low Reset the seve ver F Programming votage input. RED | st | degeatingut loscucuxr nl2|s [Oscitatr crystal or ecernal coc Input. ‘osc 1 |Ansiog] Oscar crystal input or externa lock source input uxt 1 [Anaog] Excemal clock source Input Almays associated wih bin functon O5C1. (See OSCRCLKO pins.) loscacixomas [a | = | JOscuatorerysal or sock ouput ‘osc2 © | — | Oseitatr crystal curput Connects to enstal or resonator in Crystal Oscilator mode. LK © | — | inc mode. 05C2 pin outputs CLKO which has 1H the frequency of OSC and denotes the nabeton opse re. Rao uo | rm | General pupose HO pin Cegend: TTL = TTL compatbia mput [ST = Schmat Tigger input wih CMOS level © Out Note 1: Altemate assignment for CCP2 when CCP2MX configuration bt is cleared, 2: Deluitasslonment for CCP2 when CCP2MX configuration bt it set ‘3: These pins are Ne Connect unless the IGPRT configuration bt is set For NG/ICPORTS, the pinis No Connect unis ICPRT ls set and the DEBUG configuration Bit cleared www.picminas.com.br Pagina 36 Copyright © - Todos os diretos reservados PIC18F4455/4550 PINOUT UO DESCRIPTIONS (CONTINUED) PinNumber | Pin | Butler z Pmname [pore [arn [Tare | type] Tyne oa PORTA ma barectonal 00 pow eaavano 2] RAD uo | 7 | Digtaivo. ANO 1 |Andog} Analog input Jawan 2 | 2 | 2 RAI wo | 7 | Digtaivo. AN 1 |andoa} Analog input 1. JRAZiANaWVREr a [ar] jovner RAZ vo | Tm | Digtaivo. Anz 1 analog] Analog input2 ner. 1 |Andog] A reference voltage Jow) input cvner (© Anais] Analog comparator reference outut eaavanavner+ s | 2 | 2 RAS vo | Tm | digtatvo. aN 1 Janalog] Anaiog inputs rere 1 [ansios| AD reference votage (nigh) input Jeasrockucroury | 0 | 23 | 29 lRcv RA vo | st} optaivo. Tock! 1 | st | Timerd extemal dock input crour 0 | = | comparator 1 ouput Rev 1 | Ti | Extema! USS transosiver RCV input easvansiSSi 7 | 2 | os xvowe20uT RAB vo | Tn | pigtatvo. AN 1 |Andeg] Analog input a ss 1 [rm] cei ave select input. HUVOIN 1 Jando] High/Low-Votage Detect input e20uT 0 | "| comparator 2 curt Jess = |= | — | — | = | seotre oscarcxommas pin ‘Legend: TTL = TTL compatble neut (CMOS = CMOS compatble input or ouput ST = Schenat Tigyer input wih CMOS tevels |= Input © = outer PT Power Mote 4: Abert assignment for CCP2 when CCP2MX configuration bite clesred. 2: Default assignment for CCP2 when CCPZMX configuration bit is set 3: These pins are No Connect unless the ICPRT configuraton bei tet For NC/ICPORTS, the pin is NO Connest unless ICPRT ' set and the DEBUG configuration ba = cleared www.picminas.com.br Copyright © - Todos os diretos reservados neo z| ogame ie Jac] Ass mut a | Seer ss fre St | Etmaoncbu roan 600% ma) oh wo] & | Sas, Jesimnronrccn| a4 | 10 | 2 we wo | me | ogave, ba Jace] Atos me 10 an 1 [*SP°) See as oe xo | St | Syroworom seta soe mucasnt mode Ey 13 | 5 | Speen se sox pups mooe aan vo | m | ogee bd |smos] Ay meen re | Seerraenes2 wus | S| eters tiered moe one 10 |e am es fn ° | He lrssxaarce | a | se | lesrmsarco «| | | 2 ae wo | m fs5 P| ae gna T= Tompame at CABS = cos compte reultp FL ezeatopermwm cus nes | Na 1: erase COPE nen CORBIN ogc ts Sees Pewter Con? wer CoPzIK ripe eee 5 Thue eho comerunee ve cont compen ot st FU NCICPORTS Dep (Serene Set wat nae SEBUG opr eee www.picminas.com.br Pagina 38 Copyright © - Todos os diretos reservados 3 =08 aig lacimiosuccea | 10 | 2 | a8 jooe w]e] x 085 05-5 ote 4 z These pra se Ne Correct ess hy ICPCT earatn bts set Fer NCICPORTS, ein No Carne ones ICPAT set nc be DEBUS craton Bt ces www.picminas.com.br Pagina 39 Copyright © - Todos os diretos reservados 00 vo | st | digitwo Po vo | TR | Stearn Paratel Pon ta Jrousers n|x|« Ot vo | st | outuo oP vo | Tm | Steaming Parte Pen ta lroasere alo] o R02 vo | st | Deetve. ‘sP2 vO | TR | Seeaming Paratel Pon ta Jroasers ala|a 03, vo | st | ouiv0 oa vo | Tm | Steaming Prat Pen ta lrowsers ala2|e Dt vo | st | digetv0 4 vo | Tm | seeming Parte Pon sta Jrossersrrs mlals ROS. vo | st | ogetv0. sees vo | TR | Steaming Patel Pen ea PB © | | Exanced CCT PHM our channelB Jrowsrrerrc = fa | 4 | 4 DS. vo | st | Digttv0. ee8 vO | TR | Seeaming Parte Pont ta Pre © | — | Emancea Cot Pind our charnelC Jrousprrpro fo | s | 5 07 vo | st | dgutve. ser vo | TR | Steaming Paratel Pon ta P10 © | ~ | xxanoes COPt Pd ouput charnelD. {ependé TTL = TiLconpatha nat “GMOS = CNOS congattle puter ovtut ST sSamerTrggerinpatwin MOSiewis | = rpit © =Oupe P 2Power www.picminas.com.br Pagina 40 Copyright © - Todos os diretos reservados PIC BF:4455:4550 PINOUT UO DESCRIPTIONS (CONTINUED) Pin Number Bute Pin Name Pin Deseripton oie [aFW [Tare | Tyee | Tyre Tee sbancmalo pt Jresanscxiser | 2 | 25 | 25 FE wo | st | ogaivo. ae 1 |asciog) Araiog nt Kise 0 [P| Seder cums. Jreuamwcreser | o | a | 2 Ret wo | st | igatvo. ane 1 arog) Araiog note Grose 0 [P| Sede? oan JReaanmoeser | 10 | a7 | 2 Re wo | st | dettvo. ant 1 |ardog) Anstog net7. CES 0 [P| Sr cup enate ano free SS es vee fai]o 20 [8a] © | — |omcretwence trlopeandlO pas [ise ficaal.& [7.28 | © | — [Poste say tr opemd lope, [ise Te |e [S| S| — lamers USS Sa vakags rapa ca Incnccmacras = | — | 2 Ne Connect or deat CONCEP por oa ™ cox wo | st | reSreatBebapper cock Iceco 8 | St_| 165° programming sock. Irencomcesa =] =] Io Connect or ceacaiee CONCEP por doar cor, wo | st | increot Onbogger sa tceao 10 | st_| Ics? pregamenng sa. oestiom | —|—| = [No Connect or deicatee CONCEP par Resa ™ TORT 1 | = PP ister clear ese ep Chee © | = | Progranming vtage mest Inenceoats [=P | Pe Comet 25 seven emsiaion ™ 1CPORTS Enable 2-pin cee emulsion when connected sovss ‘Tabela 9 Pinos do PIC18F4560 (Fonte: datasheet do PIC18F4550). ARQUITETURA INTERNA DO PIC18F4550 No diagrama da Figura 2.4, podem ser visualizadas as microcontrolador PIC 18F4550. Observe a ULA (Unidade Légica Aritmética) register). No canto superior esquerdo, abaixo da tabela de ponteiros, temos a meméria de programa (32 KBytes), e saindo desse bloco um barramento de instrugdes com 16-bits. No lado superior direito é possivel visualizar a meméria de dados (2 KBytes), que possui um barramento de dados de 8-bits, conforme explicado na definigdo da arquitetura Harvard. Do lado direito podemos visualizar as portas com todos os seus pinos de entrada/saida (VO). Na parte inferior & possivel visualizar os periféricos, tais como, a meméria EEPROM, os temporizadores (Timer, Timer’, Timer2, Timer3), 0 comparador intemo, o médulo CCP (Capture, Compare e PWM), porta serial (EUSART), porta USB, conversor A/D de 10-bits. Um pouco mais a0 centro da Figura 2.4, estio representados os osciladores intemos, o regulador de tensdo da porta USB, Power-up Timer e Watchdog Timer. Na parte superior central, temos 0 contador de linha de programa (Program Counter) e a pill (Stack) com 31 nfveis. Mais informagdes estdo disponiveis no datasheet do microcontroiador PIC18F4550, disponivel no site no DVD didatico. www.picminas.com.br Pagina 44 Copyright © - Todos os diretos reservados cxmeaner] [eon] [oor] [aco] [eer] [25] [re Figura 24 - Estrutura interna do microcontrolador PIC18F4S60 (Fonte: datasheet PICI9F4550), Como vimos, a mostra na Figura 2.4, por meio de diagrama de blocos, as principais partes de um sistema microprocessado padraio. Na Figura 2.5 € possivel visualizar como esto distribuidas cada uma dessas partes na arquitetura interna do PIC18F4550. www.picminas.com.br Pagina 42 Copyright © - Todos os diretos reservados ’ASsxoon Meméria de wee PIC18F4550 re (Flash) SRAM) —= Barramentos da Meméria de Dadoe — Barramentos da PINOS PERIFERICOS Figure 2.5 Arquitetura do PIC18F4550 destacando as partes de um sistema microprocessado. ORGANIZACAO DA MEMORIA DO PIC18F4550 Segue abaixo detalhes da organizagao da meméria do PIC18F4550: ‘Memeéria de programa: meméria interna flash de 22.768 Bytes (32 KBytes). 4 Armazena instrugées, constantes e dados; 4 Pode ser escritalida de acordo com o programador extemo (Oft-board), In-cireuit ou durante a execugao do programa atraves de ponteiros. Memria RAM de dados: meméria SRAM interna de 2048 Bytes (2 KBytes) e nela esto incluidos 08 registradores de fun¢do especial (SFR). 4 Armazena dados de forma temporaria (Memoria volatil) durante a execugao do programa; + Pode ser escrita/lida em tempo de execugao do programa através de diversas instrugdes. Meméria EEPROM de dados: meméria néo volatl de 256 Bytes. 4} Armazena dados que devem ser conservados na auséncia de tensdo de alimentago; www.picminas.com.br Pagina 43 Copyright © - Todos os diretos reservados -ASOONn * 4 Pode ser escritallida em tempo de execueao do programa através de registradores, observe que para serem lidos ou escritos os dados devem primeiro passar pela meméria SRAM. Meméria de confiquracio: meméria que contém bits de configuracao (12 Bytes de memeéria flash) ¢ os registradores de identificagdo (2 Bytes de meméria de apenas leitura). ‘A meméria de configuracao se trata de um bloco de meméria situado a partir da posi¢gio 300000H de meméria de programa (muito além do espago de meméria do programa para o usuario). Nesta meméria de configuragao incluem: Y Bits de configuragao: contidos em 12 Bytes de meméria flash permitindo a configuragao de algumas op¢des do uC como: (Opeées de oscilador; Opgées de reset; Opgées de watchdog; (Opgées para depuracao e programagao do circuito; Opgées da protegao contra escrita da meméria do programa e de dados da memoria EEPROM. Estes bits so configurados geralmente durante a programaeao do HC, mas podem ser lidos & ‘modificados durante a execueao do programa Y Registradores de identificacdo: trata-se de registradores situados nos enderegos SFFFFEH e 3FFFFFH que contém informagdes do modelo e verso do dispositive. Os registradores so apenas de leitura e nao podem ser alterados pelo usuario, eeeREE ARQUITETURA HARVARD © PIC18F4550 dispoe de baramentos diferentes para 0 acesso a memidria de programa © a meméria de dados (arquitetura Harvard). O barramento da meméria de programa tem 21 linhas de enderegamento € 16/8 linhas de dados (16 linhas para instrugées e & linhas para dados). O barramento da meméria de dados tem 12 linhas de enderegamento e & linhas para dados. Isto permite acessar simultaneamente a meméria de programa e a meméria de dados. Significa que ele pode executar uma instrugao (0 que geralmente exige a acesso aos dados de meméria), enquanto busca a préxima instrugao da meméria de programa para ser executada em seguida (processo conhecido ‘como pipeline) (Figura 2.6). 1 it tnt 4 ee a ee I i a ! t Tetras ot | nec wo 1 ' Tetra lsic va | Breau te 2 Figura 2 Portanto, a execugéo completa de 1 instrurao (Leitura da instrugdo + execugao) se faz em um ciclo de instrugdo (4 Tosc'). EXCECAO: as instrugdes que modificam 0 contetido do PC (Program Counter) requerem 2 cielos de instrugées, algumas conhecidas como instrugSes de salto. Ex: Chamadas de fungao rocesso Pipeline. MEMORIA DE PROGRAMA (FLASH) www.picminas.com.br Pagina 44 Copyright © - Todos os diretos reservados -ASxc00n * © UC PIC18F4550 dispde de uma memoria de programa de 22.768 Bytes (O000H-7FFFH). As Instrug6es ocupam 2 Bytes (exceto de instrug6es em assembly. CALL, MOVFF, GOTO e LSFR que ocupam 4). Assim, a meméria de programa pode armazenar até 16.384 instrugdes. A opetacdo de leitura da meméria na posic&o acima de 7FFFh resulta com ‘0’ (equivalente & instrupo NOP). Podemos ainda citar enderegos especiais na meméria de programa. O enderego do vetor reset & 0000H, 0 do vetor de interrupgées de alta prioridade € 0008H e o do vetor de interrupgées de baixa rioridade @ 0018H. (Figura 2.7) PO=20:0> 2 Nivel T da pihha Nivel 31 da pina: Vetor Reset ‘0000h ‘Velor de interupglo de ata proridade | 0008n rograma instrugdo) Vetor de interrupglo de baba prordads | 0018h ‘Memoria de Programa interna é By Espago de or @ Usuio Le como’! 4AFFFFFh 200000 Figura 2.7 - Detaines da memoria FLASH e da Pilha. © vetor Reset trata-se do primeiro enderego de meméria de programa que sera executado quando © PIC comecar a rodar (apés a alimentaedo ou um reset). As rotinas de interrupedo sero armazenadas na area de programacao, juntamente com todo o resto do programa. No entanto, existe um endereco que reservado para 0 inicio do tratamento de todas as interrupgées. A pilha é um local, totalmente separado da memoria de programagao, em que serao armazenados os enderegos de retorno quando utilizarmos: instrugdes de chamadas de rotinas (SOUZA, 2005). www.picminas.com.br Pagina 45 Copyright © - Todos os diretos reservados -ASOONn * MEMORIA RAM DE DADOS ‘A memoria de dados ¢ utiiizada para guardar todas as varidveis e registradores utiiizados pelo programa. Essa meméria armazena dados de 8 bits e & volatil, ou seja, quando o PIC é desligado, ela é automaticamente perdida, Ela é dividida em 16 bancos de meméria, dos quais apenas 8 so utiizados pelo PIC18F4550. © PIC18F4550 tem 2048 Bytes de meméria RAM (Volati) divididos em 8 bancos de 256 Bytes. Dos quais, 160 Bytes so reservados aos registradores de funcBes especiais (SFR) localizado na parte mais alta do banco 15 da meméria (endereco F60h até FFFh). Uma informaco importante a ser destacada 6a diferenca de um barramento de enderego do PIC poder enderegar uma determinada quantidade de meméria (esse valor esta associado ao tamanho co barramento de endereco) e ter o que enderecar (tamanho real da meméria de dados). Por exemplo: no PIC18F4550 é possivel enderecar até 4 KBytes, pois 0 barramento de enderegos tem 12 bits, 2" = 4048 Bytes = 4 KBytes, porém so temos 2 KBytes de meméria ‘SRAM fisica disponivel no hardware. ‘A meméria de dados contém os registradores especiais de fungio (SFRs) € os registradores de propésito geral (GPRs). Os SFRs j4 foram citados na seco 1.3.4, os GPRs séo usados para armazenamento temporario de dados e resultados de operagées do programa do usuario. Qualquer leitura em um local nao implementado ¢ lido como 0 (zero). Quando o modo USB é habilitado, os bancos 4, 5, 6 € 7 s8o mapeados para butferizacdo da porta USB. Quando 0 modo USB ¢ desabilitado, os GPRs nesse banco podem so usados como qualquer outro GPR ro espaco da meméria de dados. (Figura 2.8) Grandes areas da meméria de dados requerem um esquema de enderegamento eficiente para fazer 0 rapido acesso para qualquer dos enderecos possiveis. Idealmente, isso significa que todos os enderegos possiveis nao precisam ser fornecidos para cada operagao de leitura ou escrita. Por isso que no PIC18F4550 existe o esquema de Bancos de Meméria, conforme citado acima. O acesso a um Byte da meméria SRAM (meméria de dadoe do PIC) é feito palo Regietrador de Selag%o do Banco (BSR). Ecce SFR ‘ocupa os 4 mais significativos bits da localizacao de enderego, sendo que a instruedo ocupa o 8 menos significativos bits (4-bit + 8-bit = 12-bit de enderegamento). Existe também uma forma de acesso rapido para as 96 posigdes da parte inferior do banco e os 160 Bytes mais altos do banco 15, os SFRs. (Figura 2.8) www.picminas.com.br Pagina 46 Copyright © - Todos os diretos reservados exrce> | =m aco | ES er eS [£000 eat eR ESE. ome | oR a) rr | 010, pas or [=o sans | come | sot, pane on =, gay 5 | =000. oaue we Read 35 00h 21, gee loom | th Estes bacon eu re rite coro ey Rabu = paras USS Figura 2.8 - Mapa de memoria de dados. O enderego FFFh equivale a 4095 Bytes (capacidade maxima de enderegamento com 12-bit). REGISTRADORES DE FUNGOES ESPECIAIS NO PIC18F4550 Os registradores de fungdes especiais so usados pela CPU e pelos médulos periféricos para controle de operacdes desejadas do dispositive, serem para guardar 2 configuragdo e o estado atual da maquina. Os SFRs (0 PIC 18F4550 possui cerca de 140 SFRs) sdo os registradores através dos quais ‘monitoramos/controlamos o funcionamento da CPU e das unidades funcionais do uC. (© conjunto dos SFRs classifica-se em: Y _ SFRs associados a funcionalidades do uC: © CPU: WREG, STATUS, BSR, etc. ‘© Interrupgdes: INTCON, PIE1 PIR1 IPR1, etc... © Reset: RCON. Y _ SFRs relativos a operagdes das funcionalidades dos periféricos: Timers: TOCON, TMR1H, TMR1L, TICON, ete... Conversor A/D: ADRESH, ADRESL, ADCONO, ADCON', etc. EUSART: TXREG, TXSTA, RCSTA, ete... CCP: CCPRIH, COPRIL, CCPICON, ete... MSSP: SSPSTAT, SSPDATA, SSPCFG, etc... Portas de 1/0: TRISA, PORTA, TRISB, PORTE, ete. ce oo000 www.picminas.com.br Pagina 47 Copyright © - Todos os diretos reservados -ASOONn * REGISTRADOR STATUS O registrador STATUS é utilizado para armazenamento de flags (sinalizadores) matematicos e de estado da CPU, esses flags sinalizam o status aritmético da ULA. (Figura 2.9) U0 U0 U-0 RW-x RW-x RW-x RW-x RW-x = = N Ov Zz ey c bit 7 bit 0 Figura 2.9 - Registrador Status. Ele possui 8 bits, sendo 5 importantes e descritos abaixo: Y_Nresse bit indica quando um resultado ¢ negativo. Bit usado para operagdes com sina; © _Nz‘0’: resultado da ultima opera;o foi positive; ° resultado da tiltima operapao foi negativo; Y OV: bit de overflow. Bit utiizado para operagSes com sinal. Indica se houve overflow do 7° bit: © OV='0': ndo houve overflow na operacdo aritmética; houve overflow na operagao aritmética; Y Z:bit de zero. Indica se 0 resultado de uma operacao foi zero. © 28'0': o resultado de uma operapao aritmética ou légica foi diferente de ‘0’; © Zs'1": o resultado de uma opera;ao aritmética ou logica foi igual de ‘0' Y DC: bit de transporte de bit entre o nibbles. Se houve transporte de bits do 4° para o 5? bit. rndo houve transporte do 4° para 0 5° bit; houve transporte do 4° para 0 5° bit; YC: bit de transporte ou estouro. Se a operagdo ultrapassou os 8 bits de dados. indo houve traneporte ou estouro; houve transporte ou estouro: Legenda: L=BitdeLeitura E=BitdeEscrita _U = Bit no implementado, lido como “0" 1 =Bit é setado (nivel logico SV) 0 = Bi € zerado (nivel logico OV) x= Valor do bit 6 desconhecido Para informag6es dos outros registradores, consulte © datasheet do PIC18F4550 disponivel no site no DVD didatico. MEMORIA EEPROM DE DADOS. A. EEPROM é uma meméria ndo-volatil separada das memérias de dados RAM e de programa. (Que é usada para armazenar dados do programa. No PIC18F4550, a memoria EEPROM de dados possui 256 Bytes. Apenas quatro registradores s4o usados para leitura e escrita de dados na EEPROM. So eles: EECON1, EECON2, EEDATA, EEADR. Esta meméria permite até 1.000.000 de ciclos de leitura e escrita. Pode-se ler/escrever de forma individual cada uma das 256 posigdes de meméria. www.picminas.com.br Pagina 48 Copyright © - Todos os diretos reservados -ASOONn 2.2KIT DE DESENVOLVIMENTO COM PIC18F4550 KIT de desenvolvimento baseado no PIC18F4550, fabricado pela PICMinas, pode ser dividido ‘em quatro blocos: circuitos atuadores, chaves/teclas, circuits sensores e displays. 2.2.1. CIRCUITOS ATUADORES Os circuitos atuadores s4io compostos por: 3 (trés) LEDs (Vermelho, Verde e Amarelo), Relé de 5V e 0 Buzzer (Sirene). A Figura 2.10, Figura 2.11 e Figura 2.12 mostram as ligagdes de cada um desses atuadores no PIC18F4550. Res —eqi 40 -—= paz RAGAND =~] 2 30] +» RBS RAVAN! +—>f] 3 33fl+—> Ras RAQIAND =——(] 4 a7 f= Ras RAGANS <—X] 5 23> R83 RM > —o6 35 = R82 RASIAN ++] 7 4D = Rat REQANS =—=] 8 331+ RB0 revans=—-o 3B 2h =—voo REVANT =—eG10 $3 315 +—vss ea—=—_ Voo—» 1 eS — 30f+—- ROT Vs 22 §§ 29 Ros Vee = OSscIclKI—+ 13 Ee 28 LJ ++ RDS soe Osc2CLKO +f 14 27) +— Rod RCO «ef 15 26) +—= RC? ea Ri sf 16 25> ROB imarcio RC2 -—fg 17 24 =—e RC5ID+ Sf 23+ Raw. a= R10 zafis— Ro3 a == 20 2ip = Roz res —-q] RAQANO =~} bh — rez a Ratan =—d3 bok RAIA? == b= ret RASANS 22g bres aM od Bo Re easana = 52 ret feomts =—-e pe ufls— reo as, «2 h>—vo0 Rea 20 «$8 Nis—ws sv vot &% spre gent vs Td 85 2p+— ros cn. ocx a4 88 BAI aes oe fa. Rod r= H+—- rc? H+ rcs h+—Rcs+ fh -—- rca. f+— R03 f-— ro2 RNBRRBNSBBLR RL RBYBES Figura 2.11 -Ligagio do Relé no PIC. Www.picminas.com.br Pagina 49 Copyright © - Todos os diretos reservados — — p87 RAGAN) =~ res RAUANI =—= = res RAN? == = hes RAMAN3 =—> = hes RA =e Tree ASIANA =—=| pane REQANS + —= ee = reo et Revs =o We BY Reva aro $87 —vss q 4y Voo —» (11 oo + RO? ale 1 vws—-i2 35 => RO6 R osc1ictkt —> ge T= hos OSCaCLKO = = Ro Bee, RCO + > RCT = res = acso = rca. T= kos == oe Figura 2.12 -Ligacio do Buzzer (Sirene) no PIC. 2.2.2. CHAVES/TECLAS © KIT possui quatro chaves tateis (Push button): Botéo 1, Botéo 2, RESET e BOOT. A chave RESET € de uso especifico € no pode ser utilizada pelos programas desenvolvidos pelo usudrio. Para se utilizar a chave tatil BOOT € necessério que o Jumper “BOOTIRB4” esteja selecionado na “posicéo BOOT”, como mostrado na Figura 2.13. Caso contrario, 0 botdo nao possui nenhuma funcionalidade e 0 pino KB4 (onde a chave HOU! esta conectada) tleara disponivel no conector do Lisplay de /-Segmentos, tanto para acionamento do proprio display, quanto para a utiizagao de dispositivos externos ao KIT. + RESET « Figura 2.13 - Ligagao da Chave Push Button (Chaves Tatels) no PIC. oy me gp ida a | s00r RAQANO =—= [| 2 39 zt RAVAN! -——q]3 8 RAYAN? +4 7 wa RAYANS => 5 oo hsae Rese coats RM =e asf =—> R62 RASANS =—~E7 uE—— Ret REDANS ——>}8 wa 33 >> RAO Conector Display REVANG =—egio = BB 9 = — vo » $2 Spe n BB ws R07 12 SS 290 +—» RDS oscrcii +3 BS =~ ROS OSC2CLKO =F 14 27 == ROM ROO se 15 25 == RCT Rei = 16 35H == RCE Rea == 17 24 => RCSO++ veo 218 33h = Rew. R00 => 19 22 =— Ros RDI 2-420 21 = R02 Www.picminas.com.br Copyright © . Todos os diretos reservados Pagina 50 ’ASsxoon * , ‘A Figura 2.14 mostra as ligagdes das chaves Dip-Switch no KIT. Observe a existncia de um Jumper chamado “CHAVES’. Com ele possivel habiltar ou desabiltar os pull-ups presentes em cada uma das chaves. Os mesmos pinos que esto conectados as chaves (RA1/AN1, RA2/AN2, RASIAN3 e RA4) também s&o disponibilizados em um conector de expansdo. Os pull-ups devem ser desabilitados sempre que 0 usuario desejar acionar outros dispositivos extemos por meio do conector de expansdo. “y Jumper ‘Chaves Toon LJ ELS REI —+ 1 40 -— Rov ga RADIANO +—» (2 30D +—+ RBG RAIAN| =—eGi 3 38 fl <— RBS I RAYAND ey 4 37 <—» RB4 RAWANS = —e Gl 5 36 +—» RBS =f RAd ei 6 35) +—» RB2 RASIANA =—= (]7 34 +—» RBI I REDANS =—-+(]8 pg = ++ RO REVANS =o B 32) -— voo + REVANT =—-(}10 $F 31 -—vss voo—~ci es © 300 ++ ROT Ws 2 $5 2h=—- Ros OSCHCLKI qd fe 2%O—-—-Ro5 oy OSC2CLKO =f] 14 27 +—» RDS i RCO ++] 15 26H +— RC? PINo RCt se 16 25 <—+ RCB ¥ doc RC? s—- 417 24 +—> RCSiD+ uss <—=E] 13 23 [0 =—> Rea. 7 R00 =~] 10 22 =— R03 Circuito Equivalente da Chave RO! +—»420 21H +—> Ro2 Figura 2.14 -Ligacdo da Chave Dip switch no PIC. 2.2.3. CIRCUITOS SENSORES Os circuitos sensores so compostos por: um LDR, um sensor de temperatura e um potenciémetro. A Figura 2.15, Figura 2.16 e Figura 2.17 mostram as ligagdes de cada um desses sensores no KIT. © LDR (Light Dependent Resistor) é um transdutor resistivo sensivel as variagdes da intensidade luminosa. A sua resisténcia € inversamente proporcional a intensidade de luz a qual esta submetido, ou ‘seja, quanto maior a intensidade de luz aplicada sobre ele, menor sera o valor de sua resisténcia elétrica, Desta forma, fica facil verificar pela Figura 2.15 que a medida que a resisténcia do LDR diminui a tenso elétrica aplicada na entrada analégica ANS também ira diminuir. Conclui-se assim, que quanto maior a intensidade luminosa aplicada ao LDR, menor sera a tensdo elétrica presente na entrada analégica ANS. www.picminas.com.br Pagina $1 Copyright © - Todos os diretos reservados RES —=C1 400 <—+ Ra7 AON =i 38 -—~ RBS RAVAN! == ss ——— es asy RAYAN2 m4! 37 ——> RBs RAVAND ss 35H => RBS aa RA ste 351+ R82 RASIANA =~]? up =— Re REWANS == $8 wg 23 => RD XS REVANG =—=Ci9 88 32[)+—voo Xfm $8 SBT yo —Sgn $8 eps ro vs —.d12 $6 290 +—+ RDS oscvciki 13 BR = Ros OSC2ICLKO + 14 27) ++ RD4 Reo sis 2oH +> ROT Rei aod te 2s == RCS @ va —g0 2a => ROS wse sod] 18 ZH s— Rew. ROO <> C 18 zp =—> Ro RoI => G]20 215 =—= eo © sensor de temperatura utilizado é 0 MCP9700A, que est conectado ao PIC como mostrado na Figura 2.16. Este sensor esta acoplado ao KIT por meio de um conector, podendo assim ser removido. Isso permite a conexdo de outros sensores a entrada analégica ANO, desde que estes possuam caracteristicas elétricas compativeis com as entradas analégicas do PIC (ver datasheet — Conversor Analégico Digital) ‘ Reet} 7 a0 —+ raz 2 RAQANO = + n9= = RBS RATANT en 33 +— RBS «Ran He 52 noe Rann oe pl aes a =e ap ooe ne Fras TE? Piper fon STE pg aso REVANG =—>(9 s 321) +— voo Rea sp $8 Mavs vores ror wf) ws 012 §5 wh-— R06 “ osc ten BB yams OSCICLKO <—f 14 27H +—+ RDA RCO +—eE 15 26} RC? RCI +—eE 16 25 =» ROB RC2—*L 17 24) +— RCSID+ ust +E 18 23 => Rca. ROO <—-C 19 22 —— R03 ROl <6 20 21H -—= ro2 Figura 2.16 -Ligace do sensor de temperatura no PIC. © potenciémetro funciona como um circuito divisor de tenso. A tensZo elétrica aplicada ao pino ANé do PIC18F4550 varia de acordo com a posigao de seu parafuso. (Figura 2.17) www.picminas.com.br Pégina 52 Copyright © - Todos os diretos reservados Rey —- 101 =——+ R67 RAWANO =~ 39 =—+ RBS RAVAN! == 330 == RBS RAZAN2 =—> 37 == RBA +8V 0 RAW/ANS «2 36] +—+ RBS RM ey 350 =~ R82 2 RASIANE =—= 340 -—- Rot ™ REDANS == ee 8p-— Re RE/AN6 <—> » 320 +—-voo REZANT == 32 315 -—vss Vvoo —» %% 30+ Rov Vss —_. SS 29/0 +—+ RD6 oscwcuxt ——> 22 mh-— Ros oscaciko = 27 +— RD RCO =| 28H 2 RCT RCs 25H] +> RCE RC? => 24 =~ RCSD wuss => 235 +—= RCAD- RDO ++ ROI «> 210 +—+ RDS 21 «+ Rp2 Figura 2.17 -Ligacdo do potenciémetro no PIC. 2.2.4. DISPLAYS © KIT possui dois conectores para displays: um conector para display duplo de 7-segmentos {anodo comum) e um conector compativel com a maioria dos displays de LCD Alfanuméricos disponiveis no mercado (displays 8x1, 8x2, 16x1, 16x2, 16x4, 3222, etc.). As Figura 2.18 e Figura 2.19 mostram as ligagSes de cada um desses conectores. Observe que para habilitar 0 funcionamento do ponto entre os dois, aigitos, 0 Jumper “BOOT/RE4” deve estar selecionado na posiga0 "RB4”, como mostrado na Figura 2.18. ov nes edt o P| poor RAGANO =—e]2 29 a RAIAN! +—e]3 8 = RADIAN? «| go osc2ICLKo ar 15 26 16 % a 24 8 a . 0 2 é 20 2p >. RD2 z 2 z Rr ay Figura 2.21 Jumpers do KIT PICMings. www.picminas.com.br Pagina 56 Copyright © - Todos os diretos reservados -Ascoon * 2.3COMPONENTES DO KIT DIDATICO PIC18 ‘A Figura 2.22 abaixo detalha os componentes principais do kit de desenvolvimento da PICMINAS. Display Display de LCD 7-Segmentos iS Ajuste Contraste Display LCD Externa Rae Conector Gravagao ICSP) oe Conector USB ‘Conector Sensor ‘Temperatura Potenciémetro Figura 2.22 - Componentes principals do kit de desenvolvimento. Referéncias: 1- MARTINS, H. R. Sistema Para © Estudo Do Limiar De Percepcao De Corrente Elétrica Com Forma De Onda Arbitréria., 2008. 120 p. Dissertagao (Mestrado em Engenhria) - Universidade Federal de Minas Gerais, PPGEE, Belo Horizonte. 2+ PEREIRA, Fabio. Microcontroladores PIC Programagio em C. 7° ed. So Paulo: Editora Erica Ltda, 2008. 3 SOUZA, David José. Desbravando o PIC — Ampliado e Atualizado para PIC16F628A. 5° ed. So Paulo: Editora Erica Ltda, 2005. Neste capitulo, falamos sobre: 4 Aarquitetura do microcontrolador PIC18*4550; 4 Detalhes sobre o kit de desenvolvimento da PICMINAS. www.picminas.com.br Pagina 57 Copyright © - Todos os diretos reservados -ASOONn * Capitulo 3 — Ferramentas de Desenvolvimento Antes de iniciarmos 0 desenvolvimento de projetos com sistemas microcontrolados, faz-se necesséria a instalacdo de todas as ferramentas (softwares) utilizadas em sua programagdo. Todos os softwares necessérios possuem versGes gratuitas disponiveis no site da Microchip ou em nosso DVD Didatico. © DVD Didético traz opgao varios videos explicativos que iram guia-lo por todo 0 process de Instalagdo desses programas. Esses videos substituem em parte as informacées contidas nesse capitulo. Este capitulo tds algumas dicas para orienté-lo no manuseio do DVD Didatico referente ao proceso de instalagao das ferramentas de desenvolvimento. Para desenvolver programas em linguagem C nos microcontroladores PIC, sao utiizados os seguintes softwares: compilador C18 (para programar microcontroladores da familia PIC18), compilador C32 (para programar microcontroladores da familia PiC32) e o ambiente de desenvolvimento MPLAB. Para a gravaeao, no microcontrolador, dos cédigos desenvolvides via USB, utilizando 0 Bootloader, sem a necessidade de um gravador externo, vocé pode utilizar o DVD Didatico, no icone “Gravar PIC’. E importante seguir 2 ordem de instala¢o proposta neste capitulo, para garantir © bom funcionamento de todos os programas. 3.1 AMBIENTE DE DESENVOLVIMENTO - MPLAB © MPLAB & um pacote de programas fomecido gratuitamente pela Microchip (www.microchip.com), fabricante dos microcontroladcres PIC, para gerar os cédigos de programacdo que serao convertides em linguagem de maquina (tipos “hex” e “.cof) para serem gravados na meméria dos microcontroladores. O MPLAB integra num tinico ambiente o gerenciador de projetos, o editor de programa fonte, © compitador, o simulador, o emulador e quando conectado as ferramentas da Microchip também integra © gravador do PIC, facilitando assim o trabalho do programador, E um programa para PC, que roda sobre uma plataforma Windows. © Programa fonte, ou simplesmente fonte do programa é uma sequéncia de texto, escrita numa linguagem de programagao que sera convertida em cédigo de maquina para ser gravado na meméria de programa do PIC. © Compilador & 0 programa que converte o cédigo fonte, desenvolvido pelo usuario em ~alguma linguagem de programacao, em cédigo de maquina. O Simulador o programa que, como o préprio nome diz, simula 0 funcionamento do uC (CPU e periéricos), tornando possivel a verificagao de programas fonte em desenvolvimento, sem a necessidade de um hardware. A linguagem de programacao utilizada pelo MPLAB para gerar os cédigos é o Assembly, mas podem ser instalados outros compiladores para trabalharem em conjunto com o MPLAB, como por exemplo, © PICC Lite da Hi-Tech, POWH CSS, C78, C32, entre outros. Alguns desses compiladores utiizam a linguagem C como interface com os usuios, porém cada compilador possui suas particularidades na forma dle configurar os registradores e acessar os periféricos do mierocontrolador. © MPLAB trabalha com projetos, que so constituidos por arquives gerados pelo usuario e/ou arquivos de bibliotecas que agrupam fungdes desenvelvidas pela prépria Microchip. Nesta se¢do, serao mostrados os passos envolvidos na instalagao do MPLAB IDE a partir do DVD Didatico. Este DVD possui a verso mais atual da época de sua gravagdo. Vocé pode obter a verso mais atual, gratuitamente, no site da Microchip. www.picminas.com.br Pagina 58 Copyright © - Todos os diretos reservados ’ASsxoon * a Procedimento 7) Para instalar 0 MPLAB utilizando © DVD, va @ aba “Instaladores” © em MPLAB IDE clique no botdo “Instalar’ (ver Figura 3. 1). O instalador abrira autcmaticamente. Clique em "Next" (ver Figura 3.2). "L Hael go Ol ce ge. © Neotel (do XT Gor PC Dante Tah Pant oman — = Lite orem tee) (tae) OP wt Picmindss Emnt Stmdigaicn | SEOMGOE Eaten Me etna Sy ies coutae_gi sist Figura 3.1 icone Instaladores do DVD Didatico. nstacio do MPLAB. MPLAB® Too eee ete MPLAB® Teale ntalaon Prats iis ong recormended tht you llow thse dectons 1, Gut tepicains before tlng his ros 2 Unngial a prey MPLAB Todk yersore 4 Dasbe y rv salve nang on he machine Figura 8.2 Tela de boas vindas do instalador do MPLAB. www.picminas.com.br Pégina 59 Copyright © - Todos os diretos reservados

You might also like