Apostila PICMINAS

download Apostila PICMINAS

of 120

Transcript of Apostila PICMINAS

  • 7/23/2019 Apostila PICMINAS

    1/120

    www.picminas.com.br Pgina 1

    Copyright - Todos os diretos reservados

  • 7/23/2019 Apostila PICMINAS

    2/120

    www.picminas.com.br Pgina 2

    Copyright - Todos os diretos reservados

    Sumrio

    Captulo 1Introduo .................................................................................................................................................................. 4

    1.1 SURGIMENTO DAS MQUINAS MODERNAS ............................ ............................... ............................... ........................ 4

    1.2 SURGIMENTO DOS PROCESSADORES E DOS COMPUTADORES PESSOAIS ................................ .............................. ......... 6

    1.3 SISTEMAS MICROPROCESSADOS....................................... ................................ .............................. .............................. 9

    1.3.1 UNIDADE CENTRAL DE PROCESSAMENTO (CPU) ........................... ................................ .............................. ............ 10

    1.3.2 MEMRIAS ............................. ................................ ............................... .............................. ................................ . 11

    1.3.3 REGISTRADORES ............................ ............................... ............................... ............................... ........................... 13

    1.3.4 REGISTRADORES DE FUNO ESPECIAL (SFR) ............................... ................................ ............................... ........... 14

    1.3.5 PORTAS I/O (ENTRADA/SADA)........................................................... .............................. ................................ ...... 14

    1.3.6 BARRAMENTOS ............................. ............................... ............................... ............................... ........................... 15

    1.3.7 INTERRUPES............................................. ............................... ............................... ............................... ............ 16

    1.4 MICROCONTROLADORES ............................... .............................. ............................... ................................ ................ 17

    1.5 LINGUAGEM DE MQUINA ............................ .............................. ............................... ................................ ................ 19

    1.6 REPRESENTAO NUMRICA ............................ ............................... ................................ .............................. ............ 20

    1.7 CONVERSES DE SISTEMAS NUMRICOS ................................ ............................... ............................... ...................... 21

    1.7.1 CONVERSO BINRIA PARA DECIMAL ................................ ............................... ............................... ...................... 21

    1.7.2 CONVERSO HEXADECIMAL PARA DECIMAL............................ ............................... ................................ ................ 22

    1.7.3 CONVERSO HEXADECIMAL PARA BINRIA ............................. ............................... ................................ ................ 22

    1.8 O BIT....................................................... ............................... ............................... ............................... ...................... 23

    1.9 O BYTE ............................... ............................... ............................... ................................ .............................. ............ 24

    1.10 PORTAS LGICAS ............................... ............................... ............................... ............................... ........................... 24

    1.10.1 PORTA AND .............................. ............................... ............................... ............................... ........................... 25

    1.10.2 PORTA OR ........................... ................................ ............................... .............................. ................................ . 25

    1.10.3 PORTA NOT .............................. ............................... ............................... ............................... ........................... 26

    1.10.4 PORTA XOR (OU-EXCLUSIVA) ............................... ............................... .............................. ................................ . 26

    Captulo 2Arquitetura do PIC e Kit de Desenvolvimento .............................. ............................... ................................ ................ 28

    2.1 PIC18F4550 .............................. .............................. ................................ ............................... ............................... ...... 30

    2.1.1 ESTRUTURA INTERNA ............................... .............................. ............................... ................................ ................ 37

    2.1.2 ORGANIZAO DA MEMRIA ............................ ................................ ............................... ............................... ...... 392.1.3 ARQUITETURA HARVARD .............................. ............................... ................................ .............................. ............ 40

    2.1.4 MEMRIA DE PROGRAMA (FLASH) ............................... ............................... ............................... ........................... 41

    2.1.5 MEMRIA RAM DE DADOS ................................ ................................ ............................... .............................. ....... 42

    2.1.6 REGISTRADORES DE FUNES ESPECIAIS NO PIC18F4550 ............................. ............................... ........................... 43

    2.1.7 MEMRIA EEPROM DE DADOS ................................ ............................... .............................. ................................ . 44

    2.2 KIT DE DESENVOLVIMENTO DO PIC18F4550 ................................ ............................... ................................ ................ 44

    2.2.1. CIRCUITOS ATUADORES ................................ ................................ ............................... .............................. ....... 45

    2.2.2. CHAVES/TECLAS ............................. ............................... ............................... ............................... ...................... 46

    2.2.3. CIRCUITOS SENSORES .............................. ............................... ................................ .............................. ............ 47

  • 7/23/2019 Apostila PICMINAS

    3/120

    www.picminas.com.br Pgina 3

    Copyright - Todos os diretos reservados

    2.2.4. DISPLAYS ............................ ................................ ............................... .............................. ................................ . 48

    2.2.5. CIRCUITOS DE GRAVAO IN-CIRCUIT (ICSP) ........................... ................................ .............................. ............ 50

    2.3 DETALHE DE CADA COMPONENTE NO KIT DE DESENVOLVIMENTO .............................. ................................ ................ 51

    Captulo 3Instalao dos Programas ............................. .............................. ............................... ................................ ................ 52

    3.1 AMBIENTE DE DESENVOLVIMENTOMPLAB ............................... ............................... ................................ ................ 52

    3.2 COMPILADOR C18 STUDENTEDITION......................................................................................................................... 55

    3.2.1. RPIDO TOUR NOS DIRETRIOS ............................... ............................... ............................... ........................... 61

    3.3 APLICAES DA MICROCHIP (Microchip Application Libraries) ............................... ............................... ...................... 61

    3.4 GRAVAO DE UM FIRMWARE NO PIC UTILIZANDO UM MODULO DE GRAVAO EXTERNO (ICD2 MICROCHIP) ..... ..... 65

    3.5 FIRMWAREBOOTLOADER .......................................................................................................................................... 70

    3.6 CONEXO DO KIT DE DESENVOLVIMENTO NO COMPUTADOR ................................ ............................... ...................... 72

    3.7 GRAVAO DE UM FIRMWARENO KIT PICMINAS UTILIZANDO O PROGRAMA PICDEM FS USB ............................. ....... 75

    Captulo 4Programao de Microcontroladores ................................ ............................... ............................... ........................... 79

    4.1 PRINCPIOS DE PROGRAMAO ............................. ................................ ............................... ............................... ...... 79

    4.1.1 ALGORITMOS ESTRUTURADOS ................................ ................................ .............................. ................................ . 80

    4.1.2 FLUXOGRAMAS ............................. ............................... ............................... ............................... ........................... 81

    4.1.3 VARIVEIS E DADOS ........................... ............................... ............................... ............................... ...................... 82

    4.1.4 OPERADORES ................................ ............................... ............................... ............................... ........................... 83

    4.2 CARACTERSTICAS DO COMPILADOR C18 ................................ ............................... ............................... ...................... 84

    4.2.1 TIPOS DE DADOS E LIMITES ................................ ................................ ............................... .............................. ....... 84

    4.2.2 INCLUIR CAMINHO DE PROCURA DE ARQUIVOS ........................... ................................ .............................. ............ 86

    4.2.3 PRAGMAS ............................... ................................ ............................... .............................. ................................ . 86

    4.2.4 ARQUIVOS DE REGISTRADORES ESPECFICOS DO MICROCONTROLADOR............................ ............................... ...... 87

    4.2.5 CONFIGURAO DE PALAVRAS ................................ ............................... .............................. ................................ . 88

    4.2.6 FERRAMENTAS DE LINGUAGEM ............................... ............................... .............................. ................................ . 89

    4.3 CRIANDO PROJETOS NO MPLAB ............................. ................................ ............................... ............................... ...... 90

    4.4 LINGUAGEM DE PROGRAMAO C ............................... ............................... .............................. ................................ . 97

    4.4.1 PRIMEIROS PASSOS ............................ ............................... ............................... ............................... ...................... 98

    4.4.2 PALAVRAS RESERVADAS ................................ .............................. ................................ ............................... ......... 105

    4.4.3 IDENTIFICADORES............................... ............................... ............................... ............................... .................... 105

    4.4.4 COMANDOS E FUNES IMPORTANTES ............................. ............................... ............................... .................... 1064.4.5 VARIVEIS E TIPOS DE DADOS ............................ ................................ ............................... ............................... .... 113

    4.4.6 CONSTANTES ........................... ................................ ............................... .............................. ............................... 114

    4.4.7 OPERADORES ................................ ............................... ............................... ............................... ......................... 115

    4.4.8 REDEFINIDO TIPOS DE DADOS ............................ ................................ ............................... ............................... .... 120

  • 7/23/2019 Apostila PICMINAS

    4/120

    www.picminas.com.br Pgina 4

    Copyright - Todos os diretos reservados

    Captu lo 1In troduo

    O objetivo principal deste captulo familiarizar o leitor com alguns conceitos e nomenclaturasexistentes no mundo dos microprocessadores e microcontroladores. Alm disso, o captulo ir abordar umpouco da histria da evoluo tecnolgica que culminou no mundo moderno que vivemos hoje.

    1.1 SURGIMENTO DAS MQUINAS MODERNAS

    Durante toda sua histria, o homem buscou desenvolver meios para facilitar a realizao deatividades complicadas e repetitivas. Atualmente, vivemos a era da automao total em que boa parte dasatividades, sem cunho criativo, so ou sero realizadas por mquinas (robs), desde complexasmanipulaes cirrgicas at mquinas incumbidas da retirada do lixo. Por exemplo, hoje em dia comumentrarmos em um banheiro de Shopping Center em que a luz acende sozinha, a torneira ativaautomaticamente e at mesmo para acionar a descarga preciso apenas que o usurio se afaste dosanitrio. Na indstria moderna, a interveno 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 a comandos de voz; avies que voam sozinhos; sondas espaciais no tripuladas quepousam em Marte, enfim so inmeros os exemplos em que a automao das mquinas est presente nosdias atuais.

    Para entendermos como chegamos a este momento, vamos voltar um pouco na histria. Com ocrescimento do conhecimento matemtico com o passar dos anos, e seu grande uso nas atividadescomerciais, um dos maiores problemas encontrados passou a ser a realizao de clculos mais complexos,o que levou criao de dispositivos MECNICOS para auxiliar estas tarefas. H aproximadamente 5.500anos atrs, provavelmente na Mesopotmia, surgiu o primeiro desses dispositivos, o baco (Figura 1.1). Elepermitia fazer operaes de adio, subtrao, multiplicao e diviso. O mais intrigante que essedispositivo de construo to simples e Fe ito antigamente criaria um conceito de mquina que muitossculos depois daria origem a sistemas extremamente complexos conhecidos como

    MICROPROCESSADORES.

    Figura 1.1 - Figura do baco.

    Outros exemplos de mquinas utilizadas para a realizao de clculos matemticos foram: ACalculadora de Pascal e a Mquina Diferencial de Babbage(Figura 1.2)que revolucionaram seu tempoe ajudaram o homem a dar passos mais largos em sua evoluo.

  • 7/23/2019 Apostila PICMINAS

    5/120

    www.picminas.com.br Pgina 5

    Copyright - Todos os diretos reservados

    Figura 1.2 - A Calculadora de Pascal e a Mquina Diferencial de Babbage

    Outro marco no desenvolvimento deste tipo de mquinas deu-se quando o homem passou amanipular a tenso e a corrente eltrica. Neste momento, os dispositivos que antes eram mecnicospassaram a ser eltricos, o que reduzia muito o seu tamanho, facilitando sua construo e seuaperfeioamento. Esta evoluo tornou possvel o surgimento dos primeiros computadores, sistemas essesinconcebveis com dispositivos mecnicos. Mesmo assim o tamanho destes computadores eramgigantescos devido ao acmulo de atividades e tarefas que eles possuam se comparados aos dispositivosmecnicos. O ENIAC foi o primeiro computador digital eletrnico valvulado. Foi criado em 1946, e tinha asseguintes caractersticas: pesava 30 toneladas, media 5,5m de altura, 25m de comprimento e ocupava umarea de 180m2 de rea. Foi construdo sobre estruturas metlicas e contava com 70 mil resistores eaproximadamente 18.000 vlvulas a vcuo ocupando a rea de um ginsio desportivo. Essa mquina notinha sistema operacional e o funcionamento era parecido com uma calculadora simples de hoje. Eraoperado manualmente e efetuava os clculos a partir de teclas que faziam interao direta com o Hardware.

    AFigura 1.3 trs um desenho do ENIAC sendo operado.

    Figura 1.3 - Operao de um ENIAC.

    Com o surgimento da microeletrnica foram desenvolvidos os TRANSISTORES que substituramas vlvulas dos computadores antigos, que possuam at 10 cm de comprimento cada uma (verFigura 1.4),ao passo que os transistores atuais, presentes como principal elemento na concepo dosmicroprocessadores, ocupam poucas unidades de micrometros quadrados (m2), o que possibilitou inserir

    dentro de um CHIP de processador (Figura 1.5) funcionalidades que no caberia em centenas de prdiosem um computador valvulado.

  • 7/23/2019 Apostila PICMINAS

    6/120

    www.picminas.com.br Pgina 6

    Copyright - Todos os diretos reservados

    Figura 1.4 - Vlvula dos Computadores Antigos.

    Figura 1.5 - Processador Pentium 4.

    O mundo tecnolgico em que vivemos hoje, dominado por dispositivos e sistemasmicroprocessados e microcontrolados, teve origem no desenvolvimento da tecnologia de circuitosintegrados (Microeletrnica Digital). Esta evoluo possibilitou incorporar centenas de milhares detransistores (elemento bsico de qualquer sistema digital e que substituram as antigas vlvulas eltricasdos primeiros computadores) em um nico CHIP com dimenses de alguns centmetros quadrados (cm 2).Essa foi a condio prvia para a fabricao dos MICROprocessadores (constitudos basicamente detransistores com dimenses micromtricas), que possibilitou o surgimento dos primeiros computadores

    pessoais (PC Personal Computer), onde alm do microprocessador, foram adicionados perifricosexternos, tais como, memria, linhas de entrada/sada e temporizadores. Com a contnua evoluo datecnologia dos circuitos integrados, deu-se origem a um sistema que em um nico CHIP embarcava tantoos elementos bsicos necessrios para o funcionamento de um computador (microprocessador, memria elinhas de entrada/sada), quanto outros dispositivos perifricos como, por exemplo, conversores A/D e D/A1,interfaces de comunicao paralela e serial, sistemas de interrupo entre outros, dando origem a umanova era de sistemas microprocessados. Esse novo CHIP, que inicialmente era conhecido comoMICROcomputador, originou os MICROcontroladores da atualidade. Mas antes de nos aprofundarmosneste assunto, vamos entender, por meio de fatos histricos, como surgiram os microprocessadores e oscomputadores modernos.

    1.2 SURGIMENTO DOS PROCESSADORES E DOS COMPUTADORESPESSOAIS

    Em 1969 uma equipe de engenheiros japoneses da empresa BUSICOM chegou aos EUA com umpedido de circuitos integrados para calculadoras que deveriam ser desenvolvidos de acordo com asnecessidades de seus produtos. O pedido foi enviado para a Intel que encarregou Marcian Hoff paraexecuo deste projeto. Tendo Marcian j trabalhado com o desenvolvimento de um computador(computador vlvula), o PDP8 (ver Figura 1.6), ele sugeriu uma idia fundamentalmente diferente dopedido da BUSICOM. A sua idia presumia que o funcionamento do circuito integrado seria baseado em umprograma armazenado nele ao invs dos projetos engessados da poca, em que cada circuito integrado

    possua uma e somente uma funcionalidade. Isso significaria que a configurao dos produtos da empresajaponesa ficaria mais simples, tendo em vista que um nico circuito integrado poderia ser utilizado em maisde um produto, mudando-se apenas a programao gravada nos mesmos. Por outro lado, esta novafilosofia de projeto iria requerer mais memria do sistema que o projeto proposto pelos engenheirosjaponeses, o que na poca era algo ainda de valor elevado.

    1 Conversor A/D Circuito Eletrnico utilizado para converter sinais de tenso ou de corrente eltrica

    (sinais analgicos) em nmeros binrios (sinais digitais). Conversor D/AConverte nmeros binrios emsinais de tenso ou corrente eltrica.

  • 7/23/2019 Apostila PICMINAS

    7/120

    www.picminas.com.br Pgina 7

    Copyright - Todos os diretos reservados

    Figura 1.6 - Computador PDP8.

    Depois de um tempo, embora os engenheiros japoneses tivessem tentando encontrar umasoluo mais fcil, a idia de Marcian ganhou fora e o primeiro microprocessador nasceu. Essemicroprocessador foi batizado de 4004 (ver Figura 1.7) e era capaz de tratar apenas 4-bits em uma

    velocidade de 6.000 operaes por segundo, ou 6kHz (Os processadores atuais possuem 64-bits etrabalham com at 3,33 Bilhes de operaes por segundo 3.33GHz, ou seja, quase 1 milho de vezesmais rpido).

    Figura 1.7 - Primeiro Processador da Histria (4004).

    Algum tempo depois, uma empresa chamada CTC solicitou Intel e Texas Instruments quefabricassem um microprocessador de 8-bits para ser utilizado em seus terminais de computador. Devido aosaltos custos e sem saber o valor do que estava desenvolvendo, a CTC desistiu do projeto. No entanto, aIntel e a Texas resolveram continuar custeando o projeto e, em abril de 1972, o primeiro processador de 8-bits, chamado de 8008, surgiu no mercado. Ele possua uma memria de incrveis 16k-bits (que para pocaera algo inovador), um conjunto de 45 instrues diferentes para sua programao (eram operaes lgicascomo AND, OR e NOT, e aritmticas como ADD e SUB) e uma velocidade de at 300.000 instrues porsegundo (300 kHz). Este processador foi a base de todos os microprocessadores modernos de hoje e deuorigem, em abril de 1974, ao microprocessador 8080 que tambm era de 8-bits, mas possua 64kb dememria, 75 instrues para programao e um preo inicial de US$ 360,00 o que possibilitou o surgimentode computadores pessoais com valores acessveis. A conseqncia disso foi a inesperada popularizao daidia e crescimento exponencial das vendas. Para se ter idia a prospeco mais otimista da Intel era davenda de 3.000 microprocessadores no primeiro ano de lanamento, mas as vendas superaram as dezenasde milhares, baixando ainda mais o valor desses processadores e, consequentemente, dos computadores.

    Outra empresa americana, a Motorola, notou rapidamente o que estava acontecendo e lanou nomercado um novo microprocessador de 8-bits, o 6800. O construtor chefe foi Chuck Peddle e alm domicroprocessador propriamente dito, a Motorola foi a primeira companhia a fabricar outros perifricos comoos 6820 e 6850, com outras funcionalidades que os microprocessadores no realizavam. Muitas outrascompanhias perceberam a grande importncia dos microprocessadores e comearam a produzir seus

    prprios projetos. Chuck Peddle deixou a Motorola para entrar para a MOS Technology e continuartrabalhando intensivamente no desenvolvimento dos microprocessadores.

  • 7/23/2019 Apostila PICMINAS

    8/120

    www.picminas.com.br Pgina 8

    Copyright - Todos os diretos reservados

    Em 1975, na exposio WESCON nos Estados Unidos, aconteceu um episdio na histria dosmicroprocessadores. A MOS Technology anunciou que iria lanar no mercado os microprocessadores 6501e 6502 ao preo de US$ 25 cada e que poderia atender de imediato todas as encomendas. Isto pareceu tosensacional que muitos pensaram tratar-se de uma espcie de fraude, considerando que os competidoresvendiam o 8080 e o 6800 a US$ 179 cada. Para responder a este competidor, tanto a Intel como a Motorolabaixaram seus preos para US$ 69,95 logo no primeiro dia da exposio. Rapidamente a Motorola, antigaempresa onde Peddle trabalhava, colocou uma ao em tribunal contra a MOS Technology e contra oprprio Chuck Peddle por violao dos direitos autorais por copiarem o processador 6800. Com isso, a MOSTechnology deixou de fabricar o 6501, mas continuou com o 6502. O 6502 era um microprocessador de 8-bits com 56 instrues e uma capacidade de endereamento de 64kbytes de memria. Devido ao seu baixocusto, o 6502 tornou-se muito popular, sendo utilizado em computadores como o KIM-1, Apple I, Apple II,Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra e muitos outros. Logo apareceram vrias outras empresasinteressadas em fabricar o 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh e Comodore) que, no auge da suaprosperidade, chegou a vender microprocessadores razo de 15 milhes de processadores por ano.

    Contudo, os outros no baixaram os braos. Frederico Faggin deixou a Intel e fundou a Zilog Inc.Em 1976, a Zilog anunciou o Z80. Durante a concepo deste microprocessador, Faggin tomou umadeciso crtica. Sabendo que existia uma enorme quantidade de programas j desenvolvidos para o

    microprocessador 8080, Faggin concluiu que muitos permaneceriam fiis a este microprocessador devidos grandes despesas que representaria a troca do processador. Assim, ele decidiu que o novomicroprocessador deveria ser COMPATVEL (nasceu a idia de compatibilidade) com o 8080, ou seja,deveria ser capaz de executar todos os programas j escritos para o 8080. Alm disto, outrascaractersticas adicionais foram incorporadas ao CHIP, de tal modo que o Z80 se tornou ummicroprocessador muito potente em seu tempo. Ele podia enderear diretamente 64kbytes de memria,tinha 176 instrues para programao, um grande nmero de registros, uma opo para refreshing dememria RAM dinmica, maior velocidade de funcionamento, etc. O Z80 tornou-se um grande sucesso etodos que utilizavam o processador 8080 migraram para o Z80. Pode-se dizer que o Z80 se constituiu comoo microprocessador de 8-bits de maior sucesso em seu tempo. Alm da Zilog surgiram outros novosfabricantes como, por exemplo, Mostek, NEC, SHARP e SGS. O Z80 foi o corao de muitos computadorescomo o Spectrum, Partner, TRS703, Z-3 e Galaxy, que fizeram muito sucesso devido sua grande utilizao.

    Em 1976, a Intel lanou uma verso melhorada do microprocessador de 8-bits, chamado de 8085.Contudo, a superioridade do Z80 fez com que a Intel desistisse do projeto. Apesar do surgimento, na poca,de outros microprocessadores no mercado (6809, 2650, SC/MP etc.), o cenrio da poca estava bemdefinido. J no havia mais grandes melhorias a introduzir pelos fabricantes que justificassem o lanamentode um novo microprocessador. Desta forma, o 6502 e o Z80, acompanhados pelo 6800, mantiveram-secomo os mais representativos microprocessadores de 8-bits do perodo. Restou Intel trabalhar nolanamento do primeiro microprocessador de 16-bits o 8088 que fez muito sucesso e deu origem atodos 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). Depoissurgiu o Pentium que evoluiu at o Pentium 4. Nesse momento, a tecnologia se deparou com uma barreira

    na evoluo dos microprocessadores que at ento era baseada, quase que exclusivamente, no aumentoda velocidade de processamento. Em seguida, a evoluo dos processadores atrelou-se evoluo da suaarquitetura interna (forma como se estruturam e interagem os componentes bsicos utilizados em suaconstruo). Atualmente, os processadores que encontramos no mercado so processados Dual Core,Core 2 Duo, Quad Core, Xeon, Turion etc., que diferem entre si pelo nmero e tipo de Ncleos deProcessamento (Core) existentes em sua arquitetura interna.

    AFigura 1.8 mostra a evoluo histrica dos processadores, evidenciando alguns dos principaissistemas desenvolvidos at os dias atuais.

  • 7/23/2019 Apostila PICMINAS

    9/120

    www.picminas.com.br Pgina 9

    Copyright - Todos os diretos reservados

    Figura 1.8 - Evoluo Histrica do Microprocessadores.

    1.3 SISTEMAS MICROPROCESSADOS

    Como visto, os microprocessadores so mquinas eltricas onde podemos armazenar instrueslgicas, aritmticas e de tomada de deciso permitindo que o mesmo funcione de vrias formas diferentes

    dependendo das instrues (programa) que foram armazenadas em sua memria. Em sistemasmicroprocessados, o microprocessador geralmente conhecido como CPU (Central Processing UnitUnidade Central de Processamento) e funciona como o crebro de todo o sistema, ou seja, ele quemcomanda tudo que feito pelo sistema microprocessado. Um exemplo muito conhecido de sistemasmicroprocessados o computador pessoal (Laptop ou Desktop) que utilizamos todos os dias. Outrosexemplos so: Celulares, Ipods, Palm Tops, etc.

    Por mais diferentes que possam parecer os diversos exemplos de sistemas microprocessados,todos eles so compostos basicamente por uma CPU, um conjunto de Memrias, Portas de Entrada/Sada(onde so conectados os perifricos) e Barramentos(Figura 1.9).

  • 7/23/2019 Apostila PICMINAS

    10/120

    www.picminas.com.br Pgina 10

    Copyright - Todos os diretos reservados

    Figura 1.9 - Elementos Internos de um Microprocessador Bsico.

    1.3.1 UNIDADE CENTRAL DE PROCESSAMENTO (CPU)

    A CPU(Central Processing Unitem ingls, ou Unidade Central de Processamento), tambmconhecida como processador ou ainda microprocessador, que processa as instrues contidas noprograma. Na maioria das CPUs, essa tarefa dividida entre a unidade de controle (UC)que dirige o fluxodo programa e uma ou mais unidades lgicas e aritmticas (ULA) que executam operaes de acordocom as instrues recebidas pelo programa. (Figura 1.9)

    A funo da CPU reconhecer um conjunto bsico de instrues utilizadas para escrever

    programas que comandam o seu funcionamento, ou seja, que controlam toda a operao e funcionamentodo computador ou de um sistema microprocessado. Ela composta de vrias unidades menores, das quaisas mais importantes so: (Figura 1.10)

    Decodificador de Instruo: o circuito que reconhece instrues de programa, e executaoutros circuitos com base nessas instrues. O tamanho do Conjunto de Instrues(InstructionsSet) refere-se a quantidade de instrues que esse circuito capaz de realizare diferente para cada famlia de microcontrolador.

    Unidade Lgica e Aritmtica: Realiza todas as operaes matemticas (aritmticas) elgicas sobre os dados do programa.

    Registradores: Um registrador ou clula de memria um circuito eletrnico capaz de

    armazenar uma pequena quantidade de bytes (geralmente 1 byte), porm muito rpido. Oconjunto de registradores pode ao no estar contido na CPU e tem como funo oarmazenamento temporrio dos dados e as instrues que esto em processamento.

    Figura 1.10 - CPU e suas unidades.

  • 7/23/2019 Apostila PICMINAS

    11/120

    www.picminas.com.br Pgina 11

    Copyright - Todos os diretos reservados

    1.3.2 MEMRIAS

    Em sistemas microprocessados, memria so todos os dispositivos que permitem que os dadossejam guardados, temporariamente ou permanentemente. As memrias podem ser classificadasbasicamente de duas maneiras. A primeira classificao est associada a forma como os dados soarmazenados, neste caso temos dois tipos de memria, as Vo lteise as No-Vo ltei s.

    Memrias Volteis: so as que requerem energia para manter a informao armazenada. Sofabricadas com base em duas tecnologias: dinmicae esttica. A dinmica a mais de menor custoentre a esse tipo de memria. So popularmente conhecidas como Memria RAM (do inglsRandomicAcess Memory - Memria de Acesso Aleatrio), que significa que os dados, nelaarmazenados, podem ser acessados a partir de qualquer endereo. As memrias RAM secontrapem com as de acesso sequencial, que exigem que qualquer leitura/escrita seja feita a partirdo primeiro endereo e, sequencialmente, vai pulando de um em um at atingir o endereodesejado. Na realidade, existem outras memrias de acesso aleatrio nos computadores, inclusiveno-volteis, portanto, importante ter o conhecimento de que o nome RAM apenas umapopularizao do nome da memria principal dos computadores, utilizada para armazenar osprogramas e dados no momento da execuo. (Figura 1.11)

    Figura 1.11 - Foto com diversos tipos de memrias RAM.

    O nome dinmica referente tecnologia utilizada para armazenar programas e dados e no forma de acess-los. De modo simplificado, ela funciona como uma bateria que deve ser recarregadasempre que apresentar carga insuficiente para alimentar o equipamento.

    Todas as vezes que a CPU (unidade de processamento central) acessar a memria, para escritaou para leitura, cada clula dessa memria atualizada. Se ela tem 1 (um) lgico armazenado, suabateria ser recarregada; se ela tem 0 (zero)lgico, a bateria ser descarregada. Este procedimento chamado de refresco de memria, em ingls, refresh.

    A memria esttica no necessita ser analisada ou recarregada a cada momento. Fabricada comcircuitos eletrnicos conhecidos como latch, guardam a informao por todo o tempo em que estiver a

    receber alimentao.

  • 7/23/2019 Apostila PICMINAS

    12/120

    www.picminas.com.br Pgina 12

    Copyright - Todos os diretos reservados

    Memrias No-Volteis: So aquelas que guardam todas as informaes mesmo quando noestiverem a receber alimentao. Como exemplos, citam-se as memrias conhecidas por ROM eFLASH, bem como os dispositivos de armazenamento em massa, disco rgido, CDs e disquetes. Asmemrias somente para leitura, do tipo ROM (sigla de Read Only Memory), permitem o acessoaleatrio e so conhecidas pelo fato de o usurio no poder alterar o seu contedo. Para gravaruma memria deste tipo so necessrios equipamentos especficos. Dentre as memrias do tipoROM destacam-se as seguintes:

    SIGLA NOME TECNOLOGIA

    ROMRead Only Memory(memria

    somente de leitura).Gravada na fbrica uma nica vez.

    PROMProgramable Read Only Memory

    (memria programvel somente deleitura).

    Gravada pelo usurio uma nica vez.

    EPROMErasable Programable Read OnlyMemory(memria programvel e

    apagvel somente de leitura).

    Pode ser gravada ou regravada por meio deum equipamento que fornece as tenseseltricas adequadas em cada pino. Para

    apagar os dados nela contidos, basta iluminaro chipcom raios ultravioleta. Isto pode ser

    feito atravs de uma pequena janela presentena parte de cima do CHIP (Figura 1.12).

    EEPROM

    Electrically Erasable ProgramableRead Only Memory(memria

    programvel e apagveleletronicamente somente de

    leitura).

    Pode ser gravada, apagada ou regravadautilizando um equipamento que fornece as

    voltagens adequadas em cada pino.

    Figura 1.12 - Memria EPROMOs dados so apagados com raios ultravioleta.

    O tipo de memria conhecido como FLASH o tipo mais moderno dentre os apresentados aqui,mas uma variao do tipo EEPROM. Tornaram-se muito populares por dois motivos: a utilizao dedispositivos de armazenamento removveis como os chamados PenDrives, a aplicao em equipamentosde som que reproduzem msica no formato MP3 e os cartes de memria das cmeras digitais (Figura

    1.13). Os dados armazenados neste tipo de memria permanecem ali sem a necessidade de alimentao.Sua gravao feita em geral atravs da porta USB.

    Figura 1.13 - Tipos de dispositivos que utilizam memria FLASH para armazenamento de dados.

  • 7/23/2019 Apostila PICMINAS

    13/120

    www.picminas.com.br Pgina 13

    Copyright - Todos os diretos reservados

    A segunda classificao dada s memrias est relacionada ao seu modo de acesso, onde temosdois tipos de memria, as Memrias Primriase as Memrias Secun drias.

    Memrias Primrias: tambm chamadas de memria real, so memrias que o processador podeacessar diretamente, sem as quais os sistemas computadorizados no podem funcionar.Geralmente fornecem uma pontepara as secundrias, mas a sua funo principal a de conter ainformao necessria para o processador num determinado momento; esta informao pode ser,

    por exemplo, os programas em execuo. Nesta categoria insere-se a memria RAM (voltil),memria ROM(no-voltil), registradorese memrias cache. Apesar desse tipo de memria serbem mais rpida que a memria secundria, elas possuem baixa capacidade de armazenamento,onde armazenada somente o programa que est sendo executado pelo processador.

    Memrias Secundrias: memrias que no podem ser acessadas diretamente, a informaoprecisa ser carregada em memria primria antes de poder ser tratada pelo processador. No soestritamente necessrias para a operao dos sistemas computadorizados. So geralmente no-vo lteis, permitindo guardar os dados permanentemente. Incluem-se, nesta categoria, os discosrgidos (HDs), CDs, DVDs e disquetes. So memrias de armazenamento em massa, guardamgrandes quantidades de dados.

    Para entendermos melhor a aplicao dessas memrias vamos pensar em um exemplo decomputador, sendo a RAM a memria primria e o HD a memria secundria. Quando clicamos em umcone para abrir um programa (por exemplo, o WORD), esta programa, que estava armazenado na memriasecundria (HD), carregado na memria primria (RAM) e ficar l at que o programa seja encerrado.

    1.3.3 REGISTRADORES

    Como j foi dito, um registrador ou clula de memria um circuito eletrnico capaz de armazenaruma pequena quantidade de bytes (geralmente 1 byte). Os registradores esto no topo da hierarquia dememria, sendo assim, so o meio mais rpido e caro de se armazenar um dado. uma espcie desecretria utilizada para armazenar todos os dados sobre os quais sero realizados algum tipo de operao(ADD, MOVE, SHIFT, etc.). Ele tambm armazena os resultados dessas operaes. Por exemplo, quando

    uma instruo de soma entre duas variveis quaisquer (A e B) executada, antes da soma ser realizada, asvariveis sero carregadas, da memria RAM, para dentro de dois registradores. S depois a soma realizada. Isso acontece porque somente os registradores possuem comunicao direta com a CPU de umprocessador (Figura 1.14). O resultado da operao tambm ser armazenado em outro registrador antesde ser carregado na memria RAM. No PIC18F4550 esses registradores so chamados de GPR(GeneralPurpose RegisterRegistradores de Propsito Geral).

    Figura 1.14 - O Registrador um tipo de memria que tem acesso direto a CPU.

  • 7/23/2019 Apostila PICMINAS

    14/120

    www.picminas.com.br Pgina 14

    Copyright - Todos os diretos reservados

    1.3.4 REGISTRADORES DE FUNO ESPECIAL (SFR)

    Alm dos registradores que no possuem nenhuma funo especial ou pr-determinada, todomicroprocessador ou microcontrolador possui um conjunto de registradores cujas funes so pr-determinadas pelo fabricante. Seus bits so conectados (literalmente) a circuitos internos, tais como:temporizadores (timers), conversores A/D e osciladores (Figura 1.15). Isso significa que eles estodiretamente no comando de operaes de hardware, sem precisar da interveno da CPU, ou seja, para

    modificar alguma caracterstica de hardware que est associada a um SFR, basta modificar os bits desseregistrador. No caso dos registradores de 8-bits, cada SFR funcionar como 8 chaves (liga/desliga) quecomandam alguns pequenos circuitos dentro do microcontrolador. Um exemplo disso seriam os circuitosque determinam (controlam) se alguns pinos de um microcontrolador funcionaram como pinos de entradade sinal ou pinos de sada de sinal. No PIC18F4550 este circuito est associado a um SFR chamado TRIS.Quando um dos bits do TRIS for ajustado para lgica 1 (esse ajuste feito pelo projetista por meio doprograma), a pino do PIC que estiver associado quele bit funcionar como Entrada ( Input). J quando o bitfor ajustado para a lgica 0, o pino passar a funcionar como Sada (Output). Ou seja, o registrador TRISinterfere diretamente no funcionamento do hardware do microcontrolador.

    Figura 1.15 - Registradores com funes especiais.

    Dentro os SFR, alm do registrador TRIS, podemos citar:

    STATUS: utilizado para armazenamento de flags matemticos e de estado da CPU, almdos bits de seleo do banco de memria RAM.

    INTCON:utilizado para controle de interrupes.

    OPTON_REG:utilizado para configurar o funcionamento de alguns perifricos internos aoPIC.

    PORT:utilizado para a leitura ou escrita nos pinos do PIC (Seco1.3.5).

    TRIS:utilizado para configurar os pinos das portas como entrada ou sada (input/output).

    Nos PICs, tanto os SFR quanto os GPR so muitas vezes referenciados pela letra f. Isso

    decorre da nomenclatura utilizada pela Microchip: file registers.

    importante tambm sabermos que os registradores f(SFR e GPR) so mapeados dentro damemria RAM dos PICs. Desta forma, o acesso aos registradores feito pelo seu endereo de localizaona memria.

    1.3.5 PORTAS I/O (ENTRADA/SADA)

    por meio destas portas que o processador interage com o meio exterior. onde estoconectados os Peri fri cos dos sistemas microprocessados (figura 1.9). So exemplos de perifricos:impressoras, mouses, sensores, teclados, displays de LCD, etc.

    Os microcontroladores possuem um ou mais registradores de funes especiais chamados PORT

    conectados aos seus pinos I/O (pinos de Entrada ou Sada). Esses pinos so chamados de I/O porque,como vimos anteriormente, eles podem ser configurados tanto como entradas quanto como sadas,

  • 7/23/2019 Apostila PICMINAS

    15/120

    www.picminas.com.br Pgina 15

    Copyright - Todos os diretos reservados

    dependendo da necessidade da aplicao. Quando os pinos esto configurados como entrada, o registradoPORT passa a funcionar como um registrador de leitura, onde possvel ler o estado (0 ou 1) de cadaum dos pinos que esto conectados quele registrador. J quando os pinos esto configurados como sada,o registrador PORT funciona como um registrador de escrita, onde possvel colocar lgica 0 ou lgica 1nos pinos (Figura 1.16 - Portas do microcontrolador.).

    Figura 1.16 - Portas do microcontrolador.

    Uma das especificaes mais importantes dos pinos I/O a corrente mxima com que eles podemoperar. Para a maioria dos microcontroladores, a corrente fornecida por um pino suficiente para acenderum LED2 ou outro dispositivo similar de baixa corrente (10/20mA). No entanto, se um microcontroladorpossuir muitos pinos I/O, e todos eles estiverem ativos, a corrente mxima em cada pino ser menor. Issoacontece porque alm de cada pino especificar a corrente mxima com a qual ele pode trabalhar, omicrocontrolador de modo geral tambm tem um limite de corrente de operao. Desta forma, se vriospinos forem acionados simultaneamente, esse limite no poder ser ultrapassado, fazendo com que o limitede cada pino diminua. importantssimo verificar no datasheet do microcontrolador, que est sendo

    utilizado, qual o valor mximo de corrente por pino I/O (operando isoladamente) e por conjunto de pinos.

    1.3.6 BARRAMENTOS

    Em sistemas microprocessados, o barramento um conjunto de linhas de comunicao quepermitem a interligao entre dispositivos, como a CPU, a memria e outros perifricos. Em umcomputador, esses barramentos so as trilhas do circuito impresso da Placa MeMother Board(Figura1.17 - Placa Me.Figura 1.17).

    Figura 1.17 - Placa Me.

    2LEDLight Emitting Diode, o que significa Diodo Emissor de Luz. um componente eletrnicomuito utilizado como luz de sinalizao que acende com um valor de corrente eltrica bem baixa.

  • 7/23/2019 Apostila PICMINAS

    16/120

    www.picminas.com.br Pgina 16

    Copyright - Todos os diretos reservados

    Os barramentos podem ser divididos em trs conjuntos:

    Barramento de dados:onde trafegam os dados dos programas;

    Barramento de endereos:onde trafegam os endereos;

    Barramento de controle:sinais de controle que sincronizam as duas anteriores.

    O desempenho do barramento medido pela sua largura de banda (quantidade de bits que

    podem ser transmitidos ao mesmo tempo), geralmente potncias de 2 (8-bits, 16-bits, 32-bits, 64-bits, etc.).E tambm pela velocidade da transmisso medida em bps (bits por segundo), por exemplo,10 bps, 160Kbps, 100 Mbps, 1 Gbps etc.

    1.3.7 INTERRUPES

    Um conceito importante a ser abordado quando se fala de sistemas microprocessados so asinterrupes. So sinais emitidos por um ou mais dispositivos perifricos que tipicamente resultam em umatroca de contexto, isso , o processador pra de atender a tarefa que estava tratando e atende aodispositivo que fez o pedido de interrupo (IRQ Interrupt Request) (SILBERSCHATZ, 2004).

    Alguns processadores oferecem uma maneira de iniciar rotinas de software em resposta a eventos

    eletrnicos assncronos. Esses eventos so sinalizados para o processador atravs de IRQs. SegundoSILBERSCHATZ, 2004, o processamento da interrupo uma troca de contexto entre a rotina corrente euma rotina dedicada a tratar a interrupo. Essa ltima chamada rotina de servio de interrupo, outratador de interrupo (interrupt handler). Os endereos dessas rotinas so chamados vetores deinterrupoe so armazenados, geralmente, em uma tabela na memria RAM, permitindo sua modificaocaso seja necessrio. A Figura 1.18 mostra, esquematicamente, uma interrupo sendo atendida.(MARTINS, 2008)

    Figura 1.18 - Atendimento de interrupo.

    Segundo TANEMBAUM, 2007, Interrupes foram concebidas para evitar o desperdcio de tempocomputacional em loops de software (chamados polling loops) esperando eventos que sero disparados por

    dispositivos de modo assncrono. Ao invs do processador ficar esperando o evento acontecer, ele torna-secapaz de realizar outras tarefas enquanto os eventos esto pendentes. A interrupo avisa ao processadorquando o evento ocorreu, permitindo uma acomodao eficiente dos dispositivos mais lentos. (MARTINS,2008)

  • 7/23/2019 Apostila PICMINAS

    17/120

    www.picminas.com.br Pgina 17

    Copyright - Todos os diretos reservados

    1.4 MICROCONTROLADORES

    Com o passar do tempo comearam a surgir dispositivos eletrnicos com funcionalidadesespecficas, como as mquinas de lavar, os controles remotos, os celulares, os mini-games (vdeo gamesde bolso), sistemas de controle de alguns processos industriais, entre outros. A utilizao de ummicroprocessador nesses dispositivos seria como utilizar um canho para matar uma formiga no quesito

    velocidade de processamento. Desta forma, surgiu a necessidade de um microprocessador comfuncionalidades especficas e com capacidade de processamento bem inferior aos microprocessadoresutilizados em computadores. Esses novos microprocessadores inicialmente ficaram conhecidos comomicrocomputadores ou computadores dedicados. A evoluo dos microcomputadores, onde foramincorporados vrios perifricos (funcionalidades de outros CHIPs) em um mesmo CHIP, deu origem aosMICROCONTROLADORES. De modo geral, um microcontrolador possui o mesmo princpio defuncionamento que um microprocessador, s que diferente dele, o microcontrolador no necessita denenhum dispositivo (CHIP) externo para funcionar. Na verdade, podemos pensar em um microcontroladorcomo um CHIP que possui alm do microprocessador, diversos outros dispositivos necessrios para ofuncionamento de um sistema computadorizado. AFigura 1.19 mostra vrios CHIPs, com funcionalidadesdiversas, sendo incorporados em um nico CHIP, formando assim o microcontrolador. Os primeiros

    microcontroladores foram criados no final da dcada de 70 e atualmente seu uso amplamente difundido.Estima-se que em um lar comum de um pas desenvolvido seja possvel encontrar at 24microcontroladores em funcionamento nos diversos aparelhos eletroeletrnicos.

    Figura 1.19 - Desenho esquemtico de um Microcontrolador.

    Apesar de os microcontroladores possurem um desempenho bem inferior aosmicroprocessadores, o seu custo muito menor. Alm disso, so muito teis em aplicaes onde asdimenses, custo, tamanho e consumo do produto so muito importantes.

    O primeiro microcontrolador produzido foi o 8048 da Intel, substitudo mais tarde pela famlia 8051,que se tornou muito popular junto com o 6811 da Motorola. Atualmente no mercado, existem vrios modelose fornecedores desses componentes, sendo usados em veculos, equipamentos domsticos, celulares,forno de microondas, dispositivos perifricos de computadores, pequenos sistemas de controle, brinquedos,etc.

  • 7/23/2019 Apostila PICMINAS

    18/120

    www.picminas.com.br Pgina 18

    Copyright - Todos os diretos reservados

    AFigura 1.20 mostra o diagrama de blocos da arquitetura interna de um microcontrolador padro.

    Figura 1.20 - Diagrama de blocos geral de um microcontrolador.

    Os microcontroladores dispem de um oscilador que gera os pulsos que sincronizam todas asoperaes internas. O oscilador pode ser do tipo RC, embora geralmente prefere-se usar um cristal dequartzo (XTAL) devido sua grande estabilidade de frequncia. A velocidade de execuo da instrues doprograma est diretamente relacionada com a frequncia do oscilador do microcontrolador. (VALDS,PALLAS, 2007)

    Igual a um computador, a CPU o crebro do microcontrolador. Esta unidade traz as instruesdo programa, uma a uma, desde a memria onde esto armazenadas, as interpreta (decodifica) e faz comque elas sejam executadas. Na CPU se incluem os circuitos da ULA (Unidade Lgica Aritmtica) pararealizar operaes aritmticas e lgicas elementares com os dados binrios. (VALDS, PALLAS, 2007)

    A CPU de um microcontrolador dispe de diferentes registros, alguns de propsito geral e outrosde propsitos especficos. Entre estes ltimos esto os Registradores de Instrues, o Registrador Work, oregistrador STATUS, o contador de programa, o registrador de endereo de dados e a pilha (STACK).

    O Registrador de Instrues armazena a instruo que est sendo executada pela CPU. ORegistrador de Instrues no visto pelo programador.

    O Registrador Work o registrador associado s operaes aritmticas e lgicas que se podemrealizar na ULA. Em qualquer operao, um dos dados deve estar no registrador Work e o resultado obtido armazenado nele.

    O registrador STATUS agrupa os bits indicadores das caractersticas do resultado das operaesaritmticas e lgicas realizadas na ULA. Entre estes indicadores est o sinal do resultado (positivo ounegativo), se o resultado zero, se houve estouro de registradores, o tipo de paridade do resultado eoutros. (PEREIRA, 2008)

    O Contador de Programa o registrador da CPU onde armazenam os endereamentos dasinstrues. Ele responsvel pelo controle da sequncia de instrues, cada vez que a CPU busca umainstruo na memria, o contador de programa se incrementa, apontando assim para a prxima instruo.Em um dado instante de tempo, o contador de programa contm o endereo da instruo que serexecutada na continuao. (PEREIRA, 2008)

    O Registrador de Endereos de Dados armazena os endereos dos dados situados na memria.Este registrador essencial para o tratamento de dados indiretos na memria.

    A Pilha (STACK) tem como principal funo armazenar endereos de retorno quando so

    utilizadas instrues de chamadas de sub-rotinas. O endereo da prxima instruo do programa armazenado na pilha e o programa desviado para o endereo da sub-rotina. Quando o programa

  • 7/23/2019 Apostila PICMINAS

    19/120

    www.picminas.com.br Pgina 19

    Copyright - Todos os diretos reservados

    desviado para o comeo de uma rotina por meio da instruo correta, o endereo seguinte ao ponto queestava sendo rodado armazenado na pilha para que, ao fim da rotina, o programa possa retornar.(SOUZA, 2005)

    A memria do microcontrolador o lugar onde esto armazenadas as instrues e as variveis doprograma. Em um microcontrolador sempre h dois tipos de memria: a memria RAM e a memria FLASH.A RAM uma memria voltil de leitura e escrita, que perde a informao armazenada quando no h

    alimentao de energia. A memria FLASH uma memria no voltil e utilizada para armazenarpermanentemente o programa que deve ser executado pelo microcontrolador e a memria RAM armazenatemporariamente os dados com os quais a CPUdo microcontroladorest trabalhando (executando). Umnmero crescente de microcontroladores dispe de alguma memria no voltil do tipo EEPROM paraarmazenar dados fixos que s so trocados esporadicamente.

    A quantidade de memria FLASH disponvel normalmente muito superior a quantidade dememria RAM. Isso obedece a duas razes: a primeira que a grande maioria das aplicaes requeremprograma que usam poucos dados, ento basta uma memria RAM em que se possa armazenar algumasdezenas de dados.

    As entradas e sadas so particularmente importantes nos microcontroladores, pois atravs

    delas que o microcontrolador interage com o meio exterior. O microcontrolador possui tanto entradas esadas digitais (portas I/O, portas de comunicao serial, PWM, timers, etc.), quanto portas analgicasassociadas aos conversores A/D e D/A. O Watchdog Timer um recurso disponvel em muitosmicrocontroladores, ele dispara um reset ao sistema se o programa principal apresentar alguma falha.

    Um requisito geral que um microcontrolador pode ser utilizado em um nmero grande deaplicaes e que tenha muitos recursos de entrada e sada. Esse requisito est relacionado com o nmerode terminais (pinos) do circuito integrado (CHIP).

    1.5 LINGUAGEM DE MQUINA

    Como visto, os microprocessadores so mquinas eltricas onde podemos armazenas instrues(programas) permitindo que o mesmo funcione de vrias formas diferentes dependendo do que forarmazenado em sua memria. Mas que instrues so essas? Como um microprocessador capaz deentender o que o homem escreve? Para respondermos estas perguntas, primeiro devemos conhecer alngua falada pelos sistemas microprocessados, conhecida como linguagem binria ou cdigo binrio.

    O cdigo binrio composto de dois algarismos apenas o 0 e o 1. Na prtica, dentro de umprocessador (mquina eltrica), o algarismo 0 equivale a uma tenso eltrica na faixa de 0 a 0,8 Volts e oalgarismo 1 equivale auma tenso eltrica 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 lgica 0 oulgica 1). Isso foi feito para simplificar os circuitos envolvidos na construo das mquinas eltrica eporque os sistemas computacionais iniciais eram valvulados, onde vlvula aberta equivalia a lgica 0 e

    vlvula fechada a lgica 1.Apesar de possuir apenas dois algarismos, possvel representarmos qualquer nmero, letra e

    comando com as palavras binrias (palavras constitudas de 0s e 1s), tendo como limitante apenas onmero de bits, pois quanto maior for o nmero de bits que a palavra binria possuir, maior ser o nmerode combinaes binrias diferentes. Por exemplo:

    - Com 2-bitsns s podemos fazer 4 comandosdiferentes: 00, 01, 10e 11;

    - J com 3-bits possvel fazer at 8 comandosdiferentes: 000, 001, 010, 011, 100, 101, 110e111.

    Desta forma, para uma palavra de n-bits teremos 2n combinaes diferentes que o sistemamicroprocessado poder utilizar para representar nmeros e/ou comandos.

  • 7/23/2019 Apostila PICMINAS

    20/120

    www.picminas.com.br Pgina 20

    Copyright - Todos os diretos reservados

    1.6 REPRESENTAO NUMRICA

    A matemtica uma cincia extraordinria, tudo to lgico e simples. O universo inteiro pode serdescrito com apenas dez dgitos diferentes (0,1,2,3,4,...9). Mas ser que este a nica maneira defazermos isso? Tem de ser exatamente dez dgitos? Claro que no, foi s uma questo de hbito. Lembramdas lies da escola? Por exemplo, o que significa o nmero 764? Significa: 4 unidades, 6 dezenas e 7

    centenas. Ns poderamos descrever esse nmero de uma maneira mais complicada? Claro que sim,vejam: 4 + 60 + 700, ou mais complicado ainda: 4x1 + 6x10 + 7x100, ou ainda, 4x100+ 6x101+ 7x102. Maso que isso realmente significa? Porque ns usamos exatamente os nmeros: 10 0, 101e 102? Por que tudoparece girar em torno do nmero 10? Isso acontece porque na representao numrica decimal nsutilizamos dez dgitos diferentes (0, 1, 2,..., 8, 9). Em outras palavras, porque usamos um sistema denumerao base-10, ou seja, Sistema Decimal de Nmeros.

    Figura 1.21 - Representao de um nmero na base-10.

    O que aconteceria se existissem apenas dois algarismos (0 e 1) para representarmos todos osnmeros? Isso seria possvel? Claro que sim! A nica coisa que iria mudar seria a representao dessesnmeros, ou seja, a representao numrica, que nesse caso s poderia utilizar dois algarismos diferentes,o 0 e o 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 Binrio deNmeros, ou Base-2. Para descobrirmos como so representados os nmeros na Base-2, basta utilizarmosa mesma tcnica adotada naFigura 1.21,Veja o exemplo da Erro! Fonte de referncia no encontrada..

    Figura 1.22 - Transformao de um nmero na base-2 para base-10.

  • 7/23/2019 Apostila PICMINAS

    21/120

    www.picminas.com.br Pgina 21

    Copyright - Todos os diretos reservados

    Observe que a palavra binria 11011010 equivale ao nmero 218 no sistema decimal denumerao. Veja que para representarmos o mesmo nmero, o sistema binrio necessita de 8 algarismosenquanto que o sistema decimal apenas 3. Essa a principal desvantagem do sistema binrio, pois exigeque o sistema possua uma memria maior para armazenar a mesma quantidade de informao. Por outrolado, o sistema binrio bem menos complexo, pois s trabalha com dois algarismo, permitindo que ossistema computadorizados trabalhem com o sistema de Tudo (lgica 1) ou Nada (lgica 0), conhecidacomo Linguagem de Mquina ou Linguagem de Computador. Desta forma, se quisermos que umcomputador (ou mais especificamente o processador do computador) entenda o nmero 218, na verdadeteremos de passar para ele o nmero 11011010.

    Ainda existe outro sistema de numerao, chamado Hexadecimal, utilizado para representar osprogramas escritos em cdigo binrio de forma mais compacta. Isso acontece porque, diferente do cdigobinrio que possui menos algarismos que o sistema decimal, o hexadecimal possui 16 algarismos,necessitando assim de palavras menores para representar o mesmo cdigo decimal ou binrio.

    No incio do desenvolvimento dos sistemas computadorizados, as pessoas perceberam quetinham muitas dificuldades em lidar com nmeros binrios, pois os cdigos desenvolvidos em linguagem demquina ficavam muito extensos e difceis de serem lidos. Por isso, um novo sistema de numerao foidesenvolvido. S que desta vez, foi criado um sistema com 16 algarismos diferentes. Os primeiros 10

    dgitos so os mesmo do sistema decimal (0, 1, 2, 3,... 9) e os 6 outros dgitos foram criados utilizando asseguintes letras: A, B, C, D, E e F, formando assim um sistema de numerao Alfanumrico, chamado deSistema de Numerao Hexadecimal. O algarismo A equivale ao nmero 10 do sistema decimal, o Bequivale ao 11 e assim sucessivamente at o F que equivale ao 15. Desta forma, ficou mais simples para osprojetistas entenderem os cdigos de mquina que haviam desenvolvido, pois os mesmos ficaram bemmais compactos uma vez que com um algarismo do sistema Hexadecimal era possvel representar at 4algarismos do sistema Binrio, por exemplo, o maior nmero que pode ser representado com uma palavrabinria de 4-bits o 1111que corresponde ao nmero 15 no sistema decimal e Fno hexadecimal. (Figura1.23)

    Figura 1.23 - Comparao de um nmero na base-16 e na base-2.

    Observe naFigura 1.23 que um mesmo nmero com 8 algarismos no sistema binrio ter apenas2 algarismos no sistema hexadecimal. Agora imagine um cdigo de 1.000 linhas escrito utilizando o sistemabinrio. Ele ficaria muito mais simples e compacto se fosse escrito em hexadecimal. Desta forma,convencionou-se que todo cdigo de mquina seria escrito em hexadecimal para facilitar o entendimento.

    1.7 CONVERSES DE SISTEMAS NUMRICOS

    Agora que conhecemos quais so os sistemas numricos mais utilizados pelos sistemasmicroprocessados, muito importante sabermos converter nmeros de um sistema de numerao para ooutro, ou seja, como transformar uma srie de 0s e 1s em valores compreensveis para ns.

    1.7.1 CONVERSO BINRIA PARA DECIMAL

    Os dgitos em um nmero binrio possuem pesos diferentes de acordo com sua posio nonmero. Alm disso, cada um desses pesos poder estar associado a um 1 ou a um 0. Para encontrarmoso valor decimal de um nmero binrio temos de multiplicar cada um de seus dgitos pelo peso da posioem que ele se encontra, desta forma, encontraremos o valor decimal de cada dgito. O valor do nmero

    decimal equivalente igual a soma dos valores decimais dos dgitos binrios, veja o exemplo mostrado naFigura 1.24:

  • 7/23/2019 Apostila PICMINAS

    22/120

    www.picminas.com.br Pgina 22

    Copyright - Todos os diretos reservados

    Figura 1.24 - Converso de um nmero na base-2 para base-10.

    importante notarmos que para nmeros decimais de 0 a 3, so necessrios apenas dois dgitosbinrios para sua representao. Para valores superiores, dgitos extras devem ser acrescentados. Assim,para nmeros de 0 a 7 so necessrios 3 dgitos, 0 a 15 so necessrios 4 dgitos, 0 a 31 5 dgitos, etc.Desta forma, para sabermos qual o maior nmero decimal que podemos representar com um nmerobinrio de ndgitos, basta aplicarmos a seguinte frmula: 2n1, veja os exemplos:

    Com 2 dgitos => 221 = 3 (como vimos com nmeros binrios de 2 dgitos podemos representaros nmeros decimais de 0 a 3, sendo o 3 o seu valor mximo);

    Com 3 dgitos => 231 = 7;

    Com 4 dgitos => 241 = 15;

    Com 5 dgitos => 251 = 31.

    Assim, usando 4 dgitos binrios possvel representar nmeros decimais de 0 a 15, incluindoestes dois dgitos, o que equivale a 16 valores diferentes no total.

    O microcontrolador PIC18F4550, foco de nosso curso, trabalha com palavras binrias de 16dgitos, desta forma, possvel representar nmeros decimais de 0 a 65.535 ou 65.536 valores diferentesno total.

    1.7.2 CONVERSO HEXADECIMAL PARA DECIMAL

    Para proceder converso de um nmero hexadecimal para decimal, cada dgito hexadecimaldeve ser multiplicado pelo nmero 16 elevado ao valor da posio do dgito. (Figura 1.25)

    Figura 1.25 - Converso de Hexadecimal para decimal.

    1.7.3 CONVERSO HEXADECIMAL PARA BINRIA

    Esta a converso mais simples que existe, no necessrio efetuar qualquer clculo. Os dgitoshexadecimais so simplesmente substitudos pelos quatro dgitos binrios adequados. O valor mximo queum dgito hexadecimal (dgito F) pode representar o nmero decimal 15. Desta forma, so necessriosquatro dgitos binrios para representar um dgito hexadecimal qualquer. (Figura 1.26)

    Figura 1.26 - Converso de binrio para hexadecimal.

  • 7/23/2019 Apostila PICMINAS

    23/120

    www.picminas.com.br Pgina 23

    Copyright - Todos os diretos reservados

    ATabela 1 contm os valores dos nmeros 0-255 em trs diferentes sistemas de numerao.

    Tabela 1 - Representao de nmeros nas trs bases.

    O sistema de numerao hexadecimal, juntamente com os sistemas binrio e decimal, soconsiderados os mais importantes para o desenvolvimento do mundo computadorizado que vivemos. fcilfazer converso de qualquer nmero hexadecimal para binrio e tambm fcil de lembrar. No entanto,essas converses podem causar confuso. Por exemplo, o que significa a afirmao: "Existem 110 produtos

    na linha de montagem"? Vai depender se estamos falando de um nmero binrio, decimal ou hexadecimal,o resultado poderia ser de 6, 110 ou 272 produtos, respectivamente. Consequentemente, a fim de evitarmal-entendidos, diferentes prefixos e sufixos so adicionados diretamente aos nmeros. O prefixo 0xou $bem como o sufixo h marcam os nmeros em hexadecimal. Por exemplo, o nmero hexadecimal 10AFpode aparecer das seguintes formas: $10AF, 0x10AF ou 10AFh. Da mesma forma, os nmeros binriosnormalmente possuem o sufixo % ou 0b, enquanto nmeros decimais possuem o sufixo D ou, maisusualmente, aparecem sem nenhum sufixo ou prefixo.

    1.8 O BIT

    Teoricamente falando, um bit a unidade bsica de informao em sistemas microprocessados(computacionais). Na prtica, um bit um dgito de uma palavra binria. A exemplo do sistema decimal denumerao, onde um dgito em um nmero no tem o mesmo valor (por exemplo, os dgitos no nmero 333so os mesmos, mas possuem valores diferentes, onde o primeiro 3 representa trs unidades o segundodgito 3 representa trinta unidades e o dgito 3 mais a esquerda do nmero representa trezentas unidades),a significncia de cada bit depende da posio em que ele se encontra no nmero binrio. A diferena entreos nmeros decimais e os nmeros binrios que nos primeiros a cada vez que um dgito deslocado paraa esquerda ele multiplicado por 10 (Base-10), enquanto que nos binrios ele ser multiplicado por 2(Base-2). Desta forma, em um nmero binrio 111, o primeiro 1(sempre da direita para a esquerda) tem ovalor de 1, o segundo 1tem o valor de 1x21= 2e o terceiro 1 tem o valor de 1x22= 4, enquanto que parao nmero decimal 111, o primeiro 1tem o valor de 1, o segundo 1tem o valor de 1x101= 10e o terceiro 1tem o valor de 1x102= 100. Desta forma, ficou convencionado que o bit mais a esquerda de uma palavrabinria seria o Bit Mais Signif icativo (Most Significant Bit MSB) e o bit mais a direita o Bit MenosSignif icativo(Least Significant BitLSB).

  • 7/23/2019 Apostila PICMINAS

    24/120

    www.picminas.com.br Pgina 24

    Copyright - Todos os diretos reservados

    No fique confuso se voc encontrar algum bit com valor 4, 16 ou 64. Isso significa que o valor dobit est representado no sistema decimal. Seria correto dizer, por exemplo, que, "o valor do sexto bit ou bit 6do nmero binrio 1000000 equivalente ao nmero decimal 64", pois o sexto bit (da direita pra esquerda)est na posio 6 (levando em conta que o primeiro bit est na posio zero), desta forma ele dever sermultiplicado por 2 seis vezes (2x2x2x2x2x2 ou 26= 64), (Figura 1.27). Neste caso, como todos os outrosdgitos so iguais a 0, o valor do nmero binrio completo ser igual ao valor do bit 6 = 26= 64.

    Figura 1.27 - Representao de um nmero na base-2.

    1.9 O BYTEUm byte ou palavra de programa consiste em 8-bits agrupados. Todas as operaes matemticas

    podem ser realizadas com eles da mesma forma que so feitas com os nmeros decimais. Tal comoacontece com qualquer outro dgito de um nmero qualquer, os dgitos de um byte no possuem o mesmovalor. Como visto, o bit de maior valor o bit mais a esquerda (MSB). Portanto, o bit de menor valor o bitmais a direita (LSB). Como em um byte temos 8 bits, possvel realizar at 256 combinaes diferentes, ouseja, um byte pode representar at 256 (28= 256) nmeros binrios diferentes, sendo 255o maior nmerodecimal que pode ser representado.

    Um nibble o nome dado a meio byte (4-bits). Existem dois tipos de nibble, o low e o high,onde o primeiro o nome dado a metade menos significativa do byte (os primeiro 4-bits) e o ltimo

    representa a metade do byte mais significativa (os ltimos 4-bits). (Figura 1.28)

    Figura 1.28 - Representao de nibbles.

    1.10 PORTAS LGICAS

    So circuitos eletrnicos existentes dentro dos microprocessadores e so responsveis porrealizar as operaes lgicas, aritmticas e de tomada de deciso.

    Alguma vez voc j se perguntou o que existe dentro de um microprocessador ou um CHIPdigital? Como que esses CHIPs conseguem realizar operaes lgicas, aritmticas e de tomada dedeciso? Voc sabia que por trs dessa aparncia to complicada existem apenas alguns elementosdiferentes chamados "circuitos lgicos" ou "portas lgicas"?

    O funcionamento destes elementos foi baseado nos princpios estabelecidos pelo matemticobritnico George Boole em meados do sculo 19, antes mesmo da primeira lmpada ser inventada. Emsuma, a idia principal foi a de expressar funes lgicas por meio de funes algbricas. Esse pensamentofoi logo transformado em um produto prtico, que muito mais tarde evoluiu para o que hoje conhecemoscomo circuitos lgicos E (AND), OU (OR) e NO (NOT).

  • 7/23/2019 Apostila PICMINAS

    25/120

    www.picminas.com.br Pgina 25

    Copyright - Todos os diretos reservados

    O princpio de funcionamento destes elementos ficou conhecido como lgebra Booleana. Umavez que algumas instrues de programas utilizadas por microprocessadores e microcontroladores fazemuso das funcionalidades destas portas lgicas, importante estudarmos o principio de funcionamento decada uma delas.

    1.10.1 PORTA AND

    Uma porta lgica "AND" tem duas ou mais entradas e apenas uma sada. Vamos supor que aporta utilizada neste caso tenha apenas duas entradas, Ae B. O princpio de funcionamento desta porta dizque s aparecer a lgica um (1) na sada da porta quanto todas as portas de entrada forem tambm iguaisa um (1), ou seja, somente quando A e B forem iguais a 1 a sada ser igual a 1. AFigura 1.29 mostra osmbolo representativo da porta lgica AND e a tabela de dependncias mtuas entra as entradas e asada, Tabela Verdade.

    Figura 1.29 - Smbolo grfico e Tabela verdade da porta AND.

    Quando usado em um programa, a operao lgica AND executada por uma instruo deprograma, o que ser discutido mais adiante no captulo que trata da programao do microcontrolador emlinguagem C. Por enquanto, basta lembrar que a lgica AND, em um programa, ser utilizada pararelacionar os bits de dois registros ou variveis diferentes. Veja o exemplo daFigura 1.30,onde realizadauma operao lgica AND entre as variveis A e B, bit a bit, e os bits do resultado s foram iguais a 1quanto o bit de A e o bit de B eram iguais a 1, o que aconteceu apenas no bit3e no bit6.

    Figura 1.30 - Operao lgica AND.

    1.10.2 PORTA OR

    Da mesma forma que o caso anterior, as portas ORtambm podem ter duas ou mais entradas euma sada. A lgica um (1) aparecer na porta de sada se qualqueruma das entradas (Aou B) estiver emlgica um (1). Somente se todas as entradas estiverem em lgica zero (0), a sada ser modificada paralgica zero (0). AFigura 1.31 mostra o smbolo representativo da porta lgica ORe sua Tabela Verdade.

    Figura 1.31 - Smbolo grfico e Tabela verdade da porta OR.

  • 7/23/2019 Apostila PICMINAS

    26/120

    www.picminas.com.br Pgina 26

    Copyright - Todos os diretos reservados

    Em instrues de programa a operao lgica OR utilizada para relacionar variveis ouregistradores bit a bit. Veja o exemplo daFigura 1.32.

    Figura 1.32 - Operao lgica OR.

    1.10.3 PORTA NOT

    Esta porta lgica tem apenas uma porta de entrada e uma de sada. Ela funciona de uma maneiraextremamente simples. Quando aplicada lgica zero (0) na entrada, a lgica um (1) aparecer na sada evice-versa. Isto significa que esta porta inverte o sinal aplicado a ela. s vezes chamada de portainversora. (Figura 1.33)

    Figura 1.33 - Smbolo grfico e Tabela verdade da porta NOT.

    Se um programa realiza uma operao lgica NOT em um byte, o resultado ser um byte comtodos os bits invertidos. (Figura 1.34)

    Figura 1.34 - Operao lgica NOT.

    1.10.4 PORTA XOR (OU-EXCLUSIVA)

    A porta XOR um pouco mais complicada em comparao com outras portas. Ela representa acombinao de todos as outras portas descritas anteriormente. Ela tambm pode ter duas ou mais entradase somente uma sada. A lgica um (1) aparece na sada apenas quando uma das entradas est em lgica

    um (1) e as outras em lgica zero (0). AFigura 1.35 mostra o smbolo representativo da porta lgica XOResua Tabela Verdade.

    Figura 1.35 - Smbolo grfico e Tabela verdade da porta XOR.

    Em um programa, esta operao geralmente utilizada para comparar duas variveis, se oresultado da operao for 0, significa que as duas variveis so iguais. Observe que na Figura 1.36 os bits

  • 7/23/2019 Apostila PICMINAS

    27/120

    www.picminas.com.br Pgina 27

    Copyright - Todos os diretos reservados

    do resultado s so iguais a 0 quando os bits equivalentes das variveis Ae Bso iguais, independente seso 1 ou 0.

    Figura 1.36 - Operao lgica XOR.

    Neste captulo, falamos sobre:

    O surgimento das mquinas;Sistemas microprocessados e microcontrolados;Linguagem de mquina, representao numrica;Portas lgicas.

  • 7/23/2019 Apostila PICMINAS

    28/120

    www.picminas.com.br Pgina 28

    Copyright - Todos os diretos reservados

    Captu lo 2Arquitetura do PIC e Kit de Desenvo lvimento

    Microcontroladores (Simbologia C) podem ser definidos como um pequeno componenteeletrnico, dotado de uma inteligncia programvel, utilizado no controle de processos lgicos. (SOUZA,2005) Para entendermos melhor esta definio, vamos analis-lo por partes:

    O controle de processos deve ser entendido como o controle de perifricos, tais como: LEDs,botes, displays de 7 (sete) segmentos, displays de cristal lquido (LCD), rels, sensoresdiversos (presso, temperatura, etc.) e muitos outros. So chamados de controles lgicos,pois a operao do sistema baseia-se nas aes lgicas que devem ser executadas,dependendo do estado dos perifricos de entrada e/ou sada.

    O microcontrolador programvel, pois toda a lgica de operao de que acabamos de falar estruturada na forma de um programa e gravada dentro do componente. Depois disso, todavez que o microcontrolador for alimentado, o programa interno ser executado. Quanto inteligncia do componente, podemos associ-la Unidade Lgica e Aritmtica (ULA), pois nessa unidade que todas as operaes matemticas e lgicas so executadas. Quanto maispoderosa a ULA do componente, maior sua capacidade de processar informaes.

    Na nossa definio, o microcontrolador ganhou ainda o adjetivo pequeno, pois em uma nicapastilha de silcio encapsulada (popularmente chamada de CI ou CHIP), temos todos oscomponentes necessrios ao controle de um processo, ou seja, o microcontrolador estprovido internamente de memria de programa, memria de dados, portas de entrada e/ousada, timers, contadores, comunicao serial e paralela, PWMs, conversores analgicos-digitais, etc. Esta uma das caractersticas fundamentais que diferencia osmicrocontroladores dos microprocessadores, pois os ltimos, apesar de possurem uma ULAmuito mais poderosa, no possuem todos esses recursos em uma nica pastilha de silcio ouCHIP.

    Atualmente, muitos equipamentos de nosso uso dirio, tais como: eletrodomsticos, videocassete,alarmes, celulares, DVDs e brinquedos, entre outros, utilizam microcontroladores para execuo de suas

    funes bsicas. Portanto, pode ser que voc nem sabia, mas esses componentes j fazem parte da suavida h um bom tempo. (SOUZA, 2005) Hoje, temos em mdia 24 microcontroladores em uma casa com 4(quatro) pessoas.

    Os microcontroladores PIC (Peripherical Interface Controller) so uma famlia demicrocontroladores fabricados pela Microchip Technology, que processam dados de 8 bits e de 16 bits, maisrecentemente 32 bits, com extensa variedade de modelos e perifricos internos, tiveram sua origem em1965, na diviso eletrnica da General Instruments (GI). No inicio dos anos 70, essa empresa introduziu nomercado um microcontrolador de 16 bits chamado CP1600, contudo, ele era pobre em I/O e lento emprocessamento. Por volta de 1975, na GI introduziu no mercado uma verso aprimorada do PIC, commemria de programa apagvel e diversos aprimoramentos, sob a sigla PIC 16C50 (WIKIPDIA.ORG).

    O PIC representa uma famlia de microcontroladores projetados na arquitetura Harvard, usandoconjunto de instrues reduzido (RISC).

    Os microcontroladores podem ser projetados segundo duas arquiteturas:

    Von-Neumann: apenas um barramento interno (geralmente 8 bits), pelo qual trafegaminstrues e dados (Figura 2.1);

  • 7/23/2019 Apostila PICMINAS

    29/120

    www.picminas.com.br Pgina 29

    Copyright - Todos os diretos reservados

    Figura 2.1 - Arquitetura Von-Neumann.

    Harvard: dois barramentos, sendo exclusivo para trafegar dados e outro para instrues, nocaso de microcontroladores PIC, o barramento de dados sempre de 8 bits e o de instruespode ser de 12, 14 e 16 bits;

    Figura 2.2 - Arquitetura Harvard.

    Na arquitetura Harvard pode-se executar uma instruo enquanto outra est sendo carregada.Diferentemente do que ocorre com o Von-Neumann. Alm disso, como os barramentos so separados h anecessidade de a instruo conter o endereo dos dados a serem processados. (SOUZA, 2005) Comoconsequncia o nmero das instrues possveis fica limitado. Devida a essa limitao surgiu a tecnologiaRISC (Reduced Instruction Set ComputerComputador com conjunto de instrues reduzido). Ao contrrioda tecnologia CISC (Complex Instruction Set Computer Computador com conjunto de instruescomplexo). (SOUZA, 2005)

    Os PICs da Microchip so os microcontroladores mais vendidos, principalmente pelas vantagens,tais como: grande variedade de famlias que permitem adaptar o C s necessidades de cada aplicao,ferramentas comuns para desenvolvimento, grande variedade de funcionalidades embutidas, preoscompetitivos e bom suporte (datasheet, livros, notas de aplicaes, seminrios e muita informao

    disponvel na internet).Os Cs PIC tm famlias com ncleos de processamento de 12 bits, 14 bits e 16 bits e trabalham

    em velocidades de at 48MHz, usando ciclo de instruo mnimo de 4 perodos de clock, o que permite umavelocidade de no mximo 12 MIPS. Possibilita o reconhecimento de interrupes tanto externas como deperifricos internos. Funcionam com tenses de alimentao de 2 a 6V e os modelos possuemencapsulamento de 6 a 100 pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc.).(WIKIPDIA.ORG)

    Os PICs podem ser programados em linguagem mnemnica (assembly) ou usando-secompiladores de linguagem de alto nvel (Pascal, C, Basic) que geram um cdigo em formato hexadecimal(Intel Hex format ou linguagem de mquina) que podem ser gravados na memria de programa desses

    microcontroladores. Para tal procedimento, utiliza-se um hardware especial (gravador externo de PIC)

  • 7/23/2019 Apostila PICMINAS

    30/120

    www.picminas.com.br Pgina 30

    Copyright - Todos os diretos reservados

    acoplado a um PC. PIC's com memria FLASH so altamente flexveis na fase de desenvolvimento, poispermitem uma rpida alterao do cdigo de programa. (WIKIPDIA.ORG)

    Abaixo temos as primeiras funcionalidades internas dos PICs. Algumas propriedades podem variarcom o modelo do PIC utilizado: (WIKIPDIA.ORG)

    Conversores Analgico-Digitais de 8 a 12 bits; Contadores e timers de 8 e 16 bits; Comparadores Analgicos; USARTs (Universal Synchronous Asynchronous Receiver Transmitter, significando

    Transmissor/Receptor Universal Sncrono e Assncrono); Controladores de comunicao I2C, SPI, USB; Controladores PWM; Controladores de LCD; Controladores de motores; Gerador de energia de alta potncia; Perifricos para LIN, CAN; Controladores Ethernet; Perifricos IRDA;

    Codificadores para criptografia Keeloq; Watchdog timer; Detectores de falha na alimentao; Portas digitais com capacidade de 25mA (fornecer ou drenar) para acionar circuitos externos; Osciladores internos.

    2.1 PIC18F4550

    O PIC18F4550 ser o microcontrolador usado em nosso curso. A escolha deste C se deve aalgumas de suas vantagens, tais como facilidade de encontrar no comrcio, custo acessvel, facilidade de

    gravao e caractersticas. A coluna 5 daTabela 2 mostra algumas das caractersticas do PIC18F4550: Memria FLASH para armazenamento de programa: 32 KBytes; Memria SRAM para armazenamento de dados: 2Kbytes; Memria EEROM de dados: 256 bytes; Portas configurveis como entradas ou sadas digitais: 35; Portas configurveis como canais de entradas analgicas: 13 Mdulo CCP (Capture/Compare/PWM) Porta paralela de 8-bits (SPPStreamingParallelPort). Temporizadores de 8 e 16-bit: 4; Watchdog timer; Freqncia de operao de at 48MHz;

    Mltiplas fontes de interrupo (20); Dois comparadores; Perifricos avanados de comunicao: Porta de comunicao serial, Porta de comunicao

    USB 2.0; Arquitetura Harvard, tecnologia RISC com um conjunto de 75 instrues; Pilha de 31 nveis.

    Ver datasheetdo PIC18F4550 na pgina 3.

  • 7/23/2019 Apostila PICMINAS

    31/120

    www.picminas.com.br Pgina 31

    Copyright - Todos os diretos reservados

    Tabela 2 - Funcionalidades do PIC18F4550 (fonte datasheet PIC18F4550).

    NaFigura 2.3 possvel visualizar a pinagem do microcontrolador PIC18F4550 com as portas deentrada e sada (RA, RB, RC, RD e RE), que so configuradas na programao, os canais de entradas

    analgicas (AN), pinos de alimentao (VDD e VSS), entradas de oscilador externo (OSC), porta decomunicao serial (RX e TX) e porta de comunicao USB (D+ e D). possvel ver tambm que vriospinos acumulam mais de uma funo. (DatasheetPIC18F4550)

  • 7/23/2019 Apostila PICMINAS

    32/120

    www.picminas.com.br Pgina 32

    Copyright - Todos os diretos reservados

    Figura 2.3- Pinagem do microcontrolador PIC18F4550 (Fonte: datasheet PIC18F4550).

    O PIC18F4550, como j foi dito, possui 35 portas de I/O, separados em cinco gruposdenominados PORTAS. Desta forma, temos a PORT A, a PORT B, a PORT C, a PORT De a PORT E.

    A maioria desses pinos podem ser configurados como entrada ou sada (input or output), e comoj foi dito, alguns deles acumulam vrias funes.

    Podemos ver mais detalhes sobre cada pino na Tabela 3 (dividida em partes), que segue abaixo(Ver datasheetdo PIC18F4550 da pgina 14 a 23):

  • 7/23/2019 Apostila PICMINAS

    33/120

    www.picminas.com.br Pgina 33

    Copyright - Todos os diretos reservados

  • 7/23/2019 Apostila PICMINAS

    34/120

    www.picminas.com.br Pgina 34

    Copyright - Todos os diretos reservados

  • 7/23/2019 Apostila PICMINAS

    35/120

    www.picminas.com.br Pgina 35

    Copyright - Todos os diretos reservados

  • 7/23/2019 Apostila PICMINAS

    36/120

    www.picminas.com.br Pgina 36

    Copyright - Todos os diretos reservados

  • 7/23/2019 Apostila PICMINAS

    37/120

    www.picminas.com.br Pgina 37

    Copyright - Todos os diretos reservados

    Tabela 3 - Pinos do PIC18F4550 (Fonte: datasheet do PIC18F4550).

    2.1.1 ESTRUTURA INTERNA

    No diagrama da figura 2.2, podem ser visualizadas diversas partes que compem omicrocontrolador PIC 18F4550. Observe a ULA (Unidade Lgica Aritmtica) ligada ao registrador W (Work-register). No canto superior esquerdo, abaixo da tabela de ponteiros, temos a memria de programa (32Kbytes), e saindo desse bloco um barramento de instrues com 16 bits. No lado superior direito possvelver a memria de dados (2 Kbytes), que possui um barramento de dados de 8 bits, conforme explicado nadefinio da arquitetura Harvard.

    Do lado direito podemos visualizar as portas com todos os seus pinos de entrada/sada (I/O). Na

    parte inferior, os perifricos, tais como a EEPROM (memria de dados no voltil), os temporizadores(Timer0, Timer1, Timer2, Timer3), o comparador interno, o mdulo CCP (Capture, Compare e PWM), portaserial (EUSART), porta USB, conversor A/D de 10 bits.

    Um pouco mais no centro, temos os osciladores internos, o regulador de tenso USB, Power-upTimer e Watchdog Timer. Na parte superior central, temos o contador de linha de programa (ProgramCounter) e a pilha (Stack) de 31 nveis.

    Mais informaes esto disponveis no datasheet do microcontrolador PIC18F4550, disponvel nosite na rea do aluno.

  • 7/23/2019 Apostila PICMINAS

    38/120

    www.picminas.com.br Pgina 38

    Copyright - Todos os diretos reservados

    Figura 2.4 - Estrutura interna do microcontrolador PIC18F4550 (Fonte: datasheetPIC18F4550).

    Como vimos, a Figura 1.9 mostra, por meio de diagrama de blocos, as principais partes de umsistema microprocessado padro. Na figura 2.3 possvel visualizar como esto distribudas cada umadessas partes na arquitetura interna do PIC18F4550.

  • 7/23/2019 Apostila PICMINAS

    39/120

    www.picminas.com.br Pgina 39

    Copyright - Todos os diretos reservados

    Figura 2. 5 - Arquitetura do PIC18F4550 destacando as partes de um sistema microprocessado.

    2.1.2 ORGANIZAO DA MEMRIA

    Segue abaixo detalhes da organizao da memria do PIC18F4550:

    Memria de programa: memria interna flashde 32.768 bytes (32 Kbytes).

    Armazena instrues, constantes e dados;

    Pode ser escrita/lida de acordo com o programador externo (Off-board), In-circuit oudurante a execuo do programa atravs de ponteiros.

    Memria RAM de dados: memria SRAM interna de 2048 bytes (2 Kbytes) e nela esto includosos registradores de funo especial (SFR).

    Armazena dados de forma temporria (Memria voltil) durante a execuo doprograma;Pode ser escrita/lida em tempo de execuo do programa atravs de diversasinstrues.

    Memria EEPROM de dados: memria no voltil de 256 bytes.

    Armazena dados que devem ser conservados na ausncia de tenso de alimentao;

  • 7/23/2019 Apostila PICMINAS

    40/120

    www.picminas.com.br Pgina 40

    Copyright - Todos os diretos reservados

    Pode ser escrita/lida em tempo de execuo do programa atravs de registradores,observe uqe para serem lidos ou escritos os dados devem primeiro passar pelamemria SRAM.

    Pilha: Bloco de 31 palavras de 21 bits.

    Armazena a direo da instruo que deve ser executada depois de uma interrupoou sub-rotina;

    Memria de configurao: memria que contm bits de configurao (12 bytes de memriaflash) e os registradores de identificao (2 bytes de memria de apenas leitura).

    A memria de configurao se trata de um bloco de memria situado a partir da posio 300000Hde memria de programa (muito alm do espao de memria do programa para o usurio).

    Nesta memria de configurao incluem:

    Bits de configurao: contidos em 12 bytes de memria flash permitindo a configurao dealgumas opes do C como:

    Opes de oscilador;Opes de reset;

    Opes de watchdog;Opes para depurao e programao do circuito;Opes da proteo contra escrita da memria do programa e de dados da memriaEEPROM.

    Estes bits so configurados geralmente durante a programao do C, mas podem ser lidos emodificados durante a execuo do programa.

    Registradores de identificao: trata-se de registradores situados nos endereos 3FFFFEH e3FFFFFH que contm informaes do modelo e verso do dispositivo. Os registradores soapenas de leitura e no podem ser alterados pelo usurio.

    2.1.3 ARQUITETURA HARVARD

    O PIC18F4550 dispe de barramentos diferentes para o acesso a memria de programa e amemria de dados (arquitetura Harvard). O barramento da memria de programa tem 21 linhas deendereamento e 16/8 linhas de dados (16 linhas para instrues e 8 linhas para dados). O barramento damemria de dados tem 12 linhas de endereamento e 8 linhas para dados.

    Isto permite acessar simultaneamente a memria de programa e a memria de dados. Significaque ele pode executar uma instruo (o que geralmente exige a acesso a dados de memria), enquantobusca a prxima instruo da memria de programa para ser executada em seguida (processo conhecidocomo pipeline) (Figura 2.6).

    Figura 2.6 - Processo Pipeline.

    Portanto, a execuo completa de 1 instruo (Leitura da instruo + execuo) se faz em umciclo de instruo (4 TOSC

    1). EXCEO: as instrues que modificam o contedo do PC (Program Counter)requerem 2 ciclos de instrues, algumas conhecidas como instrues de salto. Ex: Chamadas de funo.

  • 7/23/2019 Apostila PICMINAS

    41/120

    www.picminas.com.br Pgina 41

    Copyright - Todos os diretos reservados

    2.1.4 MEMRIA DE PROGRAMA (FLASH)

    O C PIC18F4550 dispe de uma memria de programa de 32.768 bytes (0000H-7FFFH). Asinstrues ocupam 2 bytes (exceto de instrues em assembly: CALL, MOVFF, GOTO e LSFR que ocupam4). Assim, a memria de programa pode armazenar at 16.384 instrues.

    A operao de leitura da memria na posio acima de 7FFFh resulta com 0 (equivalente

    instruo NOP).

    Podemos ainda citar endereos especiais na memria de programa. O endereo do vetor reset0000H, o do vetor de interrupes de alta prioridade 0008H e o do vetor de interrupes de baixaprioridade 0018H. (Figura 2.7)

    Figura 2.7 - Detalhes da memria FLASH e da Pilha.

    O vetor Reset trata-se do primeiro endereo de memria de programa que ser executado quandoo PIC comear a rodar (aps a alimentao ou um reset). As rotinas de interrupo sero armazenadas narea de programao, juntamente com todo o resto do programa. No entanto, existe um endereo que

    reservado para o incio do tratamento de todas as interrupes. A pilha um local, totalmente separado damemria de programao, em que sero armazenados os endereos de retorno quando utilizarmosinstrues de chamadas de rotinas. (SOUZA, 2005)

  • 7/23/2019 Apostila PICMINAS

    42/120

    www.picminas.com.br Pgina 42

    Copyright - Todos os diretos reservados

    2.1.5 MEMRIA RAM DE DADOS

    A memria de dados utilizada para guardar todas as variveis e registradores utilizados peloprograma. Essa memria armazena dados de 8 bits e voltil, ou seja, quando o PIC desligado, ela automaticamente perdida. Ela dividida em 16 bancos de memria, dos quais apenas 8 so utilizados peloPIC18F4550.

    O PIC18F4550 tem 2048 bytes de memria RAM (Voltil) divididos em 8 bancos de 256 bytes.Dos quais, 160 bytes so reservados aos registradores de funes especiais (SFR) localizado na parte maisalta do banco 15 da memria (endereo F60h at FFFh). Uma informao importante a ser destacada adiferena de um barramento de endereo do PIC poder enderear uma determinada quantidade dememria (esse valor est associado ao tamanho do barramento de endereo) e ter o que enderear(tamanho real da memria de dados). Por exemplo: no PIC18F4550 possvel enderear at 4 Kbytes