271
Centro de Tecnologia Microgenios - Todos os direitos reservados Clique aqui para Imprimir o doc umento Histórico e utilização dos microcontroladores 1.0 A evolução da Tecnologia 1.1 Os primeiros computadores 1.2 Evolução dos sistemas eletrônicos 1.3 Onde é possível encontrar microcontroladores Introdução aos sistemas microcontrolados e microprocessados 1.0 Microprocessadores e Microcontroladores: 1.1 Microprocessador: 1.2 Microcontrolador: 1.3 Funcionamento básico dos sistemas microcontrolados: 1.4 O que é necessário para trabalharmos com microcontroladores 1.5 O Mercado de Microcontroladores A evolução da tecnologia: Desde os primórdios da sociedade, os homens buscavam maneiras de facilitar e simplificar atividades complicadas e repetitivas; com o conhecimento matemático adquirido com o passar dos anos, e seu grande uso nas atividades comerciais um dos maiores problemas encontrados passou a ser a realização de cálculos mais complexos, o que levou a criação de dispositivos mecânicos para auxílio nesta tarefa, os quais são chamados genericamente de ábaco. Pode não parecer, mas com a criação destes dispositivos tão simples, nascia um conceito de máquina que muitos anos e séculos depois daria origem a sistemas muito complexos como os microprocessadores e microcontroladores.

Apostila Curso Pic Microgenios c

Embed Size (px)

Citation preview

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    Histrico e utilizao dos microcontroladores

    1.0 A evoluo da Tecnologia 1.1 Os primeiros computadores 1.2 Evoluo dos sistemas eletrnicos 1.3 Onde possvel encontrar microcontroladores

    Introduo aos sistemas microcontrolados e microprocessados

    1.0 Microprocessadores e Microcontroladores: 1.1 Microprocessador: 1.2 Microcontrolador: 1.3 Funcionamento bsico dos sistemas microcontrolados: 1.4 O que necessrio para trabalharmos com microcontroladores 1.5 O Mercado de Microcontroladores

    A evoluo da tecnologia:

    Desde os primrdios da sociedade, os homens buscavam maneiras de facilitar e simplificar atividades complicadas e repetitivas; com o conhecimento matemtico adquirido com o passar dos anos, e seu grande uso nas atividades comerciais um dos maiores problemas encontrados passou a ser a realizao de clculos mais complexos, o que levou a criao de dispositivos mecnicos para auxlio nesta tarefa, os quais so chamados genericamente de baco.

    Pode no parecer, mas com a criao destes dispositivos to simples, nascia um conceito de mquina que muitos anos e sculos depois daria origem a sistemas muito complexos como os microprocessadores e microcontroladores.

  • figura 1.0 - baco

    Apartir de ento essas ferramentas foram sendo aperfeioadas continuamente durante sculos, originando diversos dispositivos e ferramentas que auxiliavam em tarefas complexas, principalmente nos cculos matemticos.

    figura 1.1 Calculadora de Pascal

    Figura 1.2 Maquina Diferencial de Babbage

    voltar para o topo da pgina Os primeiros computadores:

    figura 2.0 ENIAC

    Com domnio da manipulao da tenso e da corrente eltrica, os dipositivos de clculo anteriormente mecnicos passaram a ser eltricos, o que facilitava o projeto, a construo e reduzia o tamanho dos sistemas, mesmo assim os primeiros computadores eram gigantescos e ocupavam prdios inteiros devido aos componentes utilizados na poca (vvulas). Um bom exemplo era o ENIAC utilizado para realizao de clculos balsticos na dcada de 40.

    Observando todos esses equipamentos, embora eles sejam muito diferentes possvel notar um ponto em comum, todos eles foram projetados com uma finalidade especfica e nica, caso se quisesse que eles realizassem outra tarefa, todo o projeto teria que ser refeito. Essa

  • era uma caracterstica muito ruim, pois tornava extremamente difcil qualquer alterao ou atualizao que fosse necessria.

    figura 2.1 Fita perfurada

    neste contexto que as idias e mquinas do Sr. Herman Hollerith, um dos precursores da IBM, comeam a ter espao e se tornam uma soluo para o problema apresentado, pois ele havia desenvolvido, j no final do sculo XIX, um sistema de cartes e fitas perfuradas capazes de informar maquinas especficas, o que elas deveriam fazer, nasciam os conceitos de programa e de memria, tornando o sistema muito mais verstil, uma vez que era posvel com uma mesma mquina a realizao de diversas tarefas e clculos diferentes, unicamente com a mudaa dos cartes ou da fita.

    voltar para o topo da pgina

    Evoluo dos sistemas eletrnicos:

    Conforme as tecnologias para produo de componentes eletrnicos avanavam, os computadores eletrnicos tornavam-se cada vez mais compactos e poderosos, j na dcada de 70 esse avano chegou a tal ponto que foi possvel, a partir da idia do o Dr. Marcian Hoff, um dos primeiros funcionrios da Intel, a criao do primeiro dispositivo eletrnico capaz de ser programado para a realizao de diversas tarefas e controles, nascia ali o primeiro microprocessador, componente que revolucionaria a histria da eletrnica devido sua versatilidade, rapidez e preciso, podendo controlar qualquer tipo de sistema ou processo.

    Os microcontroladores que so o foco de nosso estudo so frutos de toda essa evoluo e hoje com o barateamento dessa tecnologia e as facilidades de projeto e utilizao, eles so empregados em praticamente todas as reas com as mais diferentes aplicaes e funcionalidades. voltar para o topo da pgina

    Onde possvel encontrar microcontroladores?

    Telefonia Atomveis Aviao Diverso Eletrodomsticos Calculadoras Mquinas Informtica Sistemas bancrios Segurana Celulares

  • Sist. Hospitalares etc..

    Microprocessadores e Microcontroladores:

    Vimos at agora que microprocessadores e microcontroladores so o fruto de muitos anos de avano tcnico, so utilizados para controlar diversos tipos de sistemas e mquinas, e que a grande vantagem de seu uso a possibilidade de alterao e atualizao rpida e simples, bastando para isso a criao de um novo programa.

    Mas quais as diferenas entre microprocessadores e microcontroladores, em que casos eles so utilizados?

    Embora muitos confundam as duas nomenclaturas e as utilizem at como sinnimos, eles so dispositivos com conceitos e funes distintas, pelos seguintes aspctos:

    voltar para o topo da pgina Microprocessador:

    Dispositivo eletrnico destinado a controle de processamento de sistemas grandes e complexos, ele tem como funo processar os dados vindos de dispositivos externos (memrias, sistema de I/O, etc) e apartir deles executar tarefas pr-programadas.

    Dentro do encapsulamento do microprocessador existe apenas uma estrutura a CPU, a qual composta basicamente pela ULA, pela UC e alguns registradores.

    CPU: Unidade Central de Processamento ULA: Unidade Lgica e Aritmtica (responsvel pelas operaes matemticas e

    lgicas) UC: Unidade de controle (responsvel pelo controle de fluxo dos dados, pelo

    gerenciamento e execuo dos comandos e atividades)

    voltar para o topo da pgina

    Microcontrolador: Os microcontroladores por sua vez tm como alvo o controle autnomo de sistemas, dessa forma geramlente procura-se que eles sejam baratos e pequenos, para atingir esse objetivo, inserido no mesmo encapsulamento, alm da CPU, diversos Perifricos Internos, isso reduz muito o espao fsico na PCI (placa de circuito impresso), barateando o projeto e tornando atualizaes e modificaes um processo muito mais simples e rpido; hoje dependendo da aplicao possvel se escolher o microcontrolador mais adequado observando a lista de perifricos internos que ele possui. Perifricos Internos: So sub-circuitos presentes na mesma pastilha de silcio da CPU, hoje podemos encontrar incorporado aos microcontroladores uma grande lista de perifricos internos:

  • Funcionamento bsico dos sistemas microcontrolados:

    Os microcontroladores e microprocessadores embora sejam considerados por muitos como componentes inteligentes, no possuem intelecto algum, por si s no so capazes de executar nenhum tipo de tarefa, ficando a cargo do programador informar a esses dispositivos tudo que eles precisam saber para realizarem o trabalho, assim se o programador informou algum dos procedimentos de forma errada o microcontrolador executar a tarefa erroneamente.

    Por outro lado eles so componentes extremamente rpidos e precisos, ento quando ordenarmos que um microcontrolador faa algo, poderemos ter certeza que ele executar exatamente como pedimos e num intevalo de tempo curtssimo.

    Outro apecto importantssimo e que deve ficar bem claro de agora em diante que os microcontroladores so mquinas seqnciais, ou seja executam as funes uma a uma, de forma seguida e contnua, assim a metodologia para trabalhar e programar microcontroladores deve ser a seguinte:

    1 Estudar muito bem a tarefa a ser realizada pelo microcontrolador 2 Dividir a tarefa em partes ou atividades 3 Ordenar corretamente cada uma das atividades 4 Agora sim, podemos informar ao microcontrolador o que fazer

    Vamos enteder melhor com um exemplo simples:

    Vamos pensar em uma tarefa bem simples e apresentar cada um dos passos que

    devem ser executadas para a realizao da mesma. Tarefa: Fazer um copo de suco de laranja

    Materiais necessrios: trs laranjas faca espremedor coador copo colher acar

  • Sequncia de procedimentos: 1 Pegar todos os materiais necessrios 2 Utilizar a faca e cortar as trs laranjas 3 Utilizar o espredor para retirar o suco das laranjas 4 Utilizar o coador para coar o suco 5 Colocar o suco no copo 5 Acrescentar acar a gosto e misturar com a colher 6 Acrescentar gelo a gosto

    Com esse simples exemplo foi possvel verificar que mesmo as atividades mais simples passam por vrias etapas at sua concluso, e quando estivermos criando nossos programas para os microcontroladores deveremos pensar em todas as etapas da tarefa. Um bom modo para essa anlise a criao de um fluxograma, mas isso discutiremos um pouco mais para frente.

    Porm existe um detalhe importantssimo que no levamos em considerao at

    agora: que idioma ou linguagem usaremos para transmitir as informaes da tarefa ao microcontrolador?

    Ser o portugus? Ingls? Japons? Javans? Esperanto? Na verdade cada famlia de microcontroladores possui um idioma prprio chamado

    genericamente de linguagem Assembly, esta criada pelo fabricante e conversa diretamente com a mquina.

    Mas existe um outro detalhe tcnico, a linguagem Assembly na verdade apenas uma representao grfica, constituda por pequenas palavras chamadas MNEMNICOS, que so como apelidos para os cdigos binrios ou hexadecimais, os quais so a nica informao que os microcontroladores ou qualquer dispositivo eletrnico realmente entende, a que entra um novo personagem o COMPILADOR. Linguagem Assembly: Conjunto de cdigos (mnemnicos) que representam o conjunto de

    instrues interpretadas por um microcontrolador MNEMNICOS: Pequenas palavras, geralmente baseadas no idioma ingls, que representam cada uma da instrues ou cdigos da linguagem Assembly Compilador: um software que pode ser considerado como um tradutor, ele pega os mnemnicos da linguagem e os transforma nos respectivos cdigos de mquina (hexadecimal ou binrio) Aps a compilao de nosso programa, o arquivo gerado (binrio ou hexadecimal) gravado dentro do microcontrolador, e sendo assim o mesmo j pode comear a executar os comandos do programa passoa a passo.

    voltar para o topo da pgina

    Curiosidade:

    Onde o microcontrolador armazena os passos da tarefa a serem executados? Os microcontroladores possuem uma memria que chamamos de memria de programa, ela do tipo no voltil, ou seja, no perde as informaes quando a desenergizamos, assim o microcontrolador estar, sempre que for ligado, apto a executar a tarefa desejada!!! Assembly e Assembler so as mesmas coisas? No, Assembly a designao da linguagem, j Assembler (montador em ingls) um sinnimo de compilador, portanto no confunda mais!!!

  • O que necessrio para trabalharmos com microcontroladores?

    Para trabalhar com microcontroladores so necessrios as seguintes ferramentas:

    Editor e compilador (IDE): Software onde escreveremos o programa e ir traduzir os

    comandos da linguagem (assembly, C, BASIC, PAscal, etc) para o cdigo de mquinas (hexadecimal ou binrio)

    Software para simulao e teste da lgica do programa Hardware de gravao do microcontrolador ou Kit de desenvolvimento

    O Mercado de Microcontroladores Existe uma grande disponibilidade de fabricantes de microcontroladores, onde cada um desenvolve seus componentes com determinadas caractersticas. Entretando, caso venhamos compar-los, descobriremos que sua estrutura bsica interna de funcionamento so semelhantes. Quando projetamos determinado circuito com microcontrolador, devemos selecionar o modelo de microcontrolador mais adequado, levando em considerao, as facilidades de compra, obteno continua deste chip e multiplicidade de fornecedores para projetos industriais. Os principais fabricantes de microcontroladores disponveis no mercado so descritos a seguir:

    Atmel: - Famlia AVR, 8051 Microchip - Famlia PIC Freescale (Motorola) - Famlia HS908 NXP (Phlips) - Famlia ARM (LPC) Texas Instruments - Famlia MSP, TMS e C2000 Zilog - Famlia F8 National - Famlia COP Cypress - Famlia PSOC Intel - Famlia 8051, 8052, 8096 Analog Device - Famlia ADuc

    ... etc.

    voltar para o topo da pgina

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    Introduo a programao

    1.0 Um pouco de Histria 1.1 Escrevendo programas em C para Microcontroladores 1.2 O papel do Compilador 1.3 Etapas de desenvolvimento e gravao de um programa em C no

    microcontrolador PIC

    Introduo a programao

    1. 0 Kit PICgenios I 1.1 Controle de display LCD 1.2 Varredura de displays de 7 segmentos 1.3 Varredura de teclado matricial 1.4 Acionamento de leds 1.5 canal de comunicao serial RS232 e RS485 1.6 Conversores A/D 1.7 Canal PWM

    Um pouco de Histria

    A liguagem C foi criada por Dennis Ritchie e Ken Thompson no Laboratrio Bell em 1972. C uma linguagem profissional e aceita e utilizada na criao de sistemas operacionais, tais como Unix, Windows e Linux. A linguagem de programao C tornou-se rapidamente uma das mais importantes e populares, principalmente por ser muito poderosa, porttil e flexvel. Essa flexibilidade tem seus incovenientes de permitir que se criem programas desorganizados e de difcil compreenso. uma linguagem de programao genrica desenvolvida para ser to eficiente e rpido quanto o assembly e to estruturada e lgica quanto as linguagens de alto nvel (PASCAL, JAVA, etc).

  • C foi desenhada para que usurios possa planejar programas mais estruturados e modulares. O resultado um programa mais legvel e documentado. Os programas em C tendem a ser bastante compactos e de execuo rpida. A linguagem C habitualmente pe denominada general purpose, pois sua aplicao no se destina a uma rea especfica, diferente de outras linguagem como COBOL, PASCAL, FORTRAN, entre outras, e esta uma das grandes vantagens, pois adapta-se ao desenvolvimento de qualquer projeto. A linguagem C utilizada para construo de compiladores de outras linguagens. Vamos descrever algums pontos importantes com relao as caractersticas do C: Rapidez - possui performance semelhante as obtidas pelo assembly, pois permite acesso a memria e manipulaes de bits, utilizando linguagem de alto nvel. Simples - possui sintaxe simples, e nmeros de comandos reduzidos, facilitando o aprendizado da linguagem. Portvel - a linguagem C padronizada (ANSI) no qual define padres para os compiladores. Podemos transportar nossos programas para outras plataformas e compila-los sem alterao no cdigo. Popular - internacionalmente conhecida e amplamente utilizada por programadores. Modular - permite a separao do cdigo em mdulos distintos e independentes, podendo estes serem utilizados em varos programas. Alto Nvel - o C considerado linguagem de alto nvel, quando comparada com a linguage Assembly. Bibliotecas Poderosas - possui diversas bibliotecas e permite a criao de novas pelo programador. Evoluo - o C deu origem a novas linguagens de programao, como por exemplo o C++.

    Escrevendo programas em C para Microcontroladores

    Devido a sua qualidade, portabilidade, eficincia e controle , o C, podemos dizer, a linguagem mais utilizada por programadores de microcontroladores. Atualmente, a maioria dos

    microcontroladores existentes no mercado contam com compiladores de linguagem C para o desenvolvimento de programas.

    Quanto estamos tratando de programas para microcontroladores, devemos tomar certos cuidados com relao a escolha da linguagem de programao e do compilador a ser utilizada , pois a capacidade de memria de armazenamento do programa extremamente reduzida, comparando com PC.

    Programa escrito em linguagem C

    Sabemos que hoje temos computadores portteis com capacidades de centenas de gigabytes de memria, nesses aspectos o "tamanho" do cdigo no to importante para o programador. Agora, quando estamos falando de microcontroladores devemos tomar certas preocauses, pois microcontroladores como: PIC12C508 e PIC16C54 possuem apenas 512byte de memria de programa e 25 byte de RAM, fato que exige do programador otimizao do cdigo e eficincia na elaborao lgico do programa.

    O papel do Compilador

    A nica maneira de se comunicar com o microcontrolador atravs da linguagem de mquina, ou melhor dizendo, atravs de cdigos de mquinas. Por tanto os programas em C devem necessariamente serem interpretados e compilados a fim de termos como resultado os comandos de mquinas a serem gravados na memria de programa do microcontrolador.

  • Existem no mercado diversos compiladores de programas em C para microcontroladores PIC, tais como: HI-TECH PICC, C18, C30, CCS, SDCC, WIZ-C, mikroC, CC5, PICmicro C, entre outros. Em nosso curso iremos utilizar a IDE MikroC desenvolvido pela empresa Mikroelektronika (www.mikroe.com), no qual permite editar, compilar e simular programas em C para microcontroladores PIC da familia 12, 16 e 18.

    IDE mikroC - Editor, compilador, simulador e debugador para PIC em linguagem C

    Iremos utilizar o mikroc devido a sua eficincia e flexibilidade. Alm disso, este compilador possui uma extensa biblioteca de funes prontas para controle de diversas perifricos conectados ao nosso microcontrolador PIC. Aos escrevermos e compilarmos um programa em nosso compilador, caso o programa no tenha erros de sintaxe, ou algum outro erro cometido pelo programador, teremos como resultado a criao do arquivo de mquina hexadecimal (extenso .hex). Este arquivo .hex

    conhecido como cdigo de mquina, e ser este o arquivo a ser gravado na memria do microcontrolador.

    Etapas de desenvolvimento e gravao de um programa em C no microcontrolador PIC

    Descreveremos abaixo as etapas passo a passo para editar, compilar, simular e gravar um programa no microcontrolador PIC.

    1 Fase: A elaborao do Fluxograma. Estude as tarefas e funes que o microcontrolador PIC dever executar. Para melhor entendimento das funes lgicas a ser executadas faa um fluxograma.

  • 2 Fase: Edio e compilao do programa em C A partir das informaes e funes elaborada no fluxograma, escreva seu programa em linguagem C na IDE mikroC, compile e simule seu programa (estudaremos detalhadamente cada funo e ferramenta do mikroC mais adiante).

    3 Fase: O programa compilado Aps a compilao do seu programa em C, o compilador criar o arquivo de mquina .hex (nomedoprograma.hex). Este o arquivo que dever ser gravado no microcontrolador PIC.

  • 4 Fase: Gravao do programa no PIC Gravar o arquivo compilado .hex no microcontrolador atravs de um gravador de microcontroladores PIC, ou atravs de um Kit de desenvolvimento.

    Estudaremos com mais detalhes nas unidades seguintes do nosso curso os processos de edio, compilao e gravao de programas.

    Durante nosso curso estudaremos basicamente 4 assuntos: O microcontrolador PIC - PIC18F452 / 4520 A IDE mikroC - editor, compilador e simulador para PIC 12, 16 e 18 em linguagem C. Estudo da Linguagem C para programao de microcontroladores PIC Projetos e aplicaes prticas com PIC18F

    Descreveremos agora algumas dos exemplos de programas e aplicaes prticas que sero estudados em nosso curso:

    Kit PICgenios PIC18F - Mdulo Profissional :

  • Atravs deste Kit podemos desenvolver os mais variados tipos de programas, tais como: Controle de displays LCD alfanumrico 16X2 (16 colunas por 2 linhas ) no modo 4 e 8

    bits. Os displays LCD so utilizados nas grandes maioria dos projetos eletrnicos hoje em dia.

    4 displays de 7 segmentos acionados por varredura. Matriz de teclado com 12 teclas. 7 teclas de acesso direto ao pino, sendo que 3 teclas dessas simulam a interrupes

    externa INT0, INT1 e INT2 do PIC. 16 leds para controle lgico visual. 2 rels NA/NF para acionamento de cargas externas de 10A / 220V. RTC - relgio de tempo real com bateria. Atravs desse relgio o programador poder

    programar temporizadores, acionamentos programados, calendarios, entre outras aplicaes.

    Canal Serial RS232: canal para comunicao serial com PC ou outras mquinas Canal Serial RS232 Emulada: o programador pode emular uma serial via software e

    ento trabalhar com duas seriais RS232 no seu projeto. Canal USB 2.0 para implementaes em projetos que necessitem comunicao USB

    (necessrio usar PIC18F4550) Canal PS/2: permite ligar ao microcontrolador teclado de PC ou mouse para otimizar o

    projeto eletrnico. Aquecedor via PWM. O aluno poder controlar o canal PWM do PIC simulando na

    placa. Sensor de temperatura LM35: o aluno poder realizar ensaios prticos com este sensor

    de temperatura. Acionamento de Buzzer. Em alguns projetos indispensvel a utilizao de um alarme

    sonoro. Acesso a todas as portas de expanso do microcontrolador PIC, que nos permite ligar

    outros dispositivos externos ao Kit. Ventoinha acionada por PWM. importante pois o aluno poder controlar por PWM a

    velocidade de giro da ventoinha. Contadores de Pulsos. Atravs desse circuito poderemos saber a velocidade de giro da

    ventoinha. (contador RPM). Memria serial E2PROM via I2C 24C04. Este tipo de memria so muito utilizada em

    diversos equipamento e mquinas.

  • 2 trimpots para simulao e programao do canal A/D do PIC (Analgico 1 , e Analgico 2).

    Canal de comunicao RS485: Protocolo muito utilizado em redes industriais e em PLC's.

    Chave Load/Run para gravao ISP (gravao no prprio circuito). Microcontrolador PIC18F452 DIP com 32Kbyte de Flash; Canal de gravao ICSP: Conector para modo debugger e ICD2. Regulador de tenso. Chave Dip seletora de funes. Suporte para displays LCD Grficos 128 x 64 controlador KS107/108. Suporte para displays LCD Grficos 128 x 64 controlador T6963C. Suporta os PIC18F4xxxx, PIC18F2XX0 e os PIC16F873/876 de 28 pinos.

    Sei que voc deve estar pensando, nossa quanto dispositivo conectado ao microcontrolador. verdade, mas esses microcontroladores podem realizar muitas outras funes... em outras palavras, esse PIC 10! Durante nosso treinamento iremos realizar diversas experincias prticas utilizando os recursos da linguagem C junto com as funes da IDE mikroC. Vamos detalhar um pouco cada experincia e conhecer um pouco mais sobre o que vamos estudar daqui por diante.

    Aulas de laboratrio e experincias prticas Veremos abaixo algumas das aplicaes prticas que iremos realizar durante nosso treinamento:

    Controle de display LCD Iremos no decorer das unidades programar o PIC para controlar e escrever mensagens publicitria nos display LCD 16X2 alfanumrico:

  • Os displays LCD so amplamente utilizados em diversos equipamentos e aparelhos. No decorrer dos estudos iremos explorar as funes do mikroC em linguagem C para controle de displays LCD. Estudaremos passo a passo como escrever mensagens de textos nos modos 4 e 8 bits. Aplicaes com displays LCD:

    Equipamentos

    industriais

    Equipamentos

    domsticos Equipamentos de

    Informtica

    CLPs e

    controladores industriais

    Equipamentos

    portteis

    Varredura de displays de 7 segmentos Os diplays de 7 segmentos so largamente utilizados em equipamentos como: balana, painis de mquinas industriais, equipamentos mdicos, eletrodomsticos entre outros. Podemos controlar os displays de 7 segmentos atravs de conversores BCD, como por exemplo o 74HC247 (decodificador BCD) ou desenvolver cdigos BCD pelo microcontrolar. Em nosso caso, os displays esto sendo acionados por varredura.

  • Para acionar os displays de 7 segmentos, iremos utilizar o sistema de varredura, que permite atravs de um barramento de dados de 8 bits e mais 4 pinos de acionamento, "escrever" o valor correspondente ao dado que deve ser mostrado no visor. Aplicaes reais com displays de 7 segmentos:

    Panis de equipamentos industriais

    Balanas

    Varredura de Teclado matriciais O sistema de varredura de teclado matricial permite que o microcontrolador leia muitas teclas ligada ao seus pinos. O teclado matricial muito utilizado para economizar pinos fsicos do microcontrolador. Equipamentos de diversos tipos usam o teclado matricial para inserir dados ao microcontrolador.

  • Aplicaes reais com teclados matriciais:

    Equipamentos

    Eletrodomsticos

    Aparelhos de som

    CLPs

    Acionamento de Leds Os leds so utilizados praticamente em quase todas as aplicaes eletrnicas. Atravs dos leds podemos visualizar o status de uma mquina, "desenhar" mensagens de textos, iluminar objetos, criar animaes visuais, entre outras aplicaes. Iremos estudar os recursos de programao em C para controle das portas de sada disponveis no microcontroladores PIC utilizando os leds como barramento de dados visual.

  • Aplicaes reais com Leds Os leds so utilizados em diversos equipamento no mercado para as mais variadas aplicaes. Muitas das aplicaes o microcontrolador responsvel pelo controle desses leds.

    letreiros com leds

    Letreiros

    Controle de Iluminao de

    painis

    Canal de comunicao serial RS232 e RS485 de grande importncia que os equipamentos eletrnicos tenham um canal de comunicao com o meio externo. Atravs de um canal de comunicao possvel monitorar o estado do equipamento assim como enviar e receber informaes em tempo real. Iremos aprender a utilizar o canal de comunicao serial do microcontrolador PIC realizando comunicaes de envio e recepo de dados com o PC.

  • Aplicaes reais com Comunicao Serial RS232 e RS485

    Supervisrios Industriais Comunicao com computadores PC Comunicao com outras mquinas

    Conversor Analgico digital (A/D)

    A aplicao bsica do microcontrolador PIC trabalhando com o conversor A/D abaixo simples, mas possui um grande contedo educativo para ns neste momento. No exemplo abaixo utilizamos dois simples trimpots para variarmos o valor de tenso no pino A/D do PIC. Este exemplo na verdade representa inumeras aplicaes prticas de equipamentos do mercado, tais como: aparelhos de medio, leitores de sensores de temperatura, atuadores, entre outros. Criaremos programas para controle e leitores de tenso nas unidades seguintes.

  • Veremos tambm como ler e interpretar valores analgicos vindo de sensores de temperatua (LM35) utilizando os recurso da linguagem C.

    Aplicaes reais com os conversores A/D do PIC

  • Sensores de proximidade

    Sondas e termopares

    equipamentos de medio

    Controle PWM de dispositivos

    Iremos simular programas de controle de largura de pulsos. Atravs do canal PWM disponvel no PIC, podemos controlar diversos equipamentos, tais como: inversores de frequncia, estabilizadores, fonte chaveada, controle de velocidade de motores DC, entre outras. Nem nossos laboratrio, iremos controlar a velocidade de giro de uma ventoinha e controlar o aquecimento de uma caraga resistiva via PWM.

    Aplicaes reais com os conversores A/D do PIC

    Fontes chaveadas

    Drive de Motores

    inversores de frequncia

    Informaes importantes

  • Outros exemplos de programas tambm sero tratados e comentados em nosso curso, mas ficaro como sendo material complementar ao aluno.

    voltar para o topo da pgina

    Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao em C Microgenios 1998 - 2008. Todos os direitos reservados. proibido cpia parcial ou integral desse material sem prvio aviso. Maiores informaes: [email protected]

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    As caractersticas gerais da famlia PIC

    1.0 A famlia PIC

    1.1 Desempenho da famlia PIC

    1.2 Tipo de memrias de programa

    A famlia PIC

    Os microcontroladores PIC so fabricados pela empresa Microchip. Existem basicamente trs familias de PICs diferenciadas pelo

    tamanho da palavra de memria de programa: 12, 14 e 16 bits.

    Todos estes dispositivos possuem internamente um barramento de 8

    bits. Atualmente a Microchip lanou recentemente uma nova famlia de microcontroladores chamada DsPIC que possui barramento

    interno de 16 bits e 24 bits, contrrio da tradicional famlia de 8 bits.

  • O PIC possui uma arquitetura interna do tipo Havard. A diferena

    entre essa arquitetura e as tradicionais, do tipo Von-Neumann, que

    ela possui um barramento para o programa e outro para os dados,

    diferente da arquitetura tradicional em que um barramento tanto de dados como de endereo.

    O aumento no tamanho da palavra de programa possibilita um

    aumento no nmero de instrues: os PICs de 12 bits (12C508,

    12C509, 12CE518, 16C54, 16C55) possuem apenas 33 instrues, os de 14 bits (12C671, 12C672, 12CE673, 12C674, 14000, 16C55x)

    possuem 35 instrues e os de 16 bits (17C4x, 17C75X, 17C76X,

    18C2XX, 18C4XX) possuem 77 instrues.

    Os PICs foram otimizados para trabalharem com execuo de pequeno conjunto de instrues a grandes velocidades de

    processamento. Podemos trabalhar com alguns microcontroladores

    PIC a 10MIPS ( Milhes de Instrues por segundo) com um pic da

    srie 16 ou 18 trabalhando com cristal de 40Mhz.

    voltar para o topo da pgina

    Desempenho da famlia PIC

    Capacidade de pepilene (enquanto executa uma instruo, o

    processador busca a prxima instruo na memria, de forma

    a acelerar a execuo do programa) Execuo de uma instruo por ciclo de mquina, com

    exceo das instrues de desvios que consomem dois ciclos

    de mquinas para serem executadas. Um ciclo de mquina no PIC equivale a 4 ciclos de clock, ou

    seja, o sinal de clock dividido por 4 antes de executar a

    instruo (falaremos mais sobre esse tpico adiante). Cada Instruo ocupa uma posio de memria de programa

    (FLASH). Tempo de execuo das instrues fixa, com exceo das

    instrues de desvios que consomem dois ciclos de mquina.

    Outra caracterstica importante da arquitetura PIC reside na

    semelhana e compatibilidade entre os diversos microcontroladores membros de sua famlia. Isto facilita grandemente a migrao de

    microcontrolador para outro, bastando mudar, em alguns casos,

    apenas alguns comandos no programa, pois partes dos registradores

    internos no se diferem muito entre si.

    voltar para o topo da pgina

    Tipos de Memria de Programa

  • Os PICs da srie 12, 14 e 16 armazenam o programa em sua

    memria interna. Membros da famlia 17 e 18 podem funcionar com

    memria de programa externas.

    Tipos de memrias de programas disponveis nos PICs:

    ROM: Memria do tipo no voltil gravadas na fbrica pelo processo

    conhecido como mscara. Os chips com esse tipo de memria

    normalmente possuem custos menores mas somente so viveis na

    fabricao de grandes quantidades.

    OTP: Memria fabricadas do tipo PROM. Saem da fbrica "virgens" e

    permitem uma nica gravao. So inviveis nas fases de

    implantao e desenvolvimento de equipamentos. Esses chips so

    identificados pelo sufixo "C".

    EEPROM: Podemos encontrar chips com memria do tipo EEPROM.

    Normalmente so mais caros que os dispositivos ROM e OTP e podem

    ser identificados atravs do seu sufixo "JW" para os dispositivos com

    encapsulamento DIP, ou "CL" para os dispositivos com

    encapsulamento do tipo PLCC.

    FLASH: Os microcontroladores PIC que utilizam este tipo de

    memria so indicados para etapas de desenvolvimento e testes at

    mesmo para implantaes finais. Permitem no mximo 1000 ciclos de

    gravaes/apagamento, possem um custo relativamente mediano com relao aos outros chips.

    voltar para o topo da pgina

    Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao

    em C

    Microgenios 1998 - 2007. Todos os direitos reservados. proibido cpia parcial ou

    integral desse material sem prvio aviso. Maiores informaes:

    [email protected]

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    Conhecendo o Hardware do PIC18F452

    1.0 O PIC18F452 1.1 Tipos de Capsulamentos 1.2 Estrutura Interna do PIC18F452 1.3 Descrio das funes dos pinos do PIC18F452

    Memria do PIC18F452

    1.0 Tipos de Memrias 1.1 Memria de Programa 1.2 Memria de dados - EEPROM 1.3 Memria de dados - RAM

    Osciladores o 1.0 O clock o 1.1 Osciladores: Cristal e Ressonador o 1.2 Cristal de Oscilao RC o 1.3 Modo HSPLL o 1.4 Ciclos de Mquina o 1.5 Reset

    o Bits configurations 1.0 Os bits de configurao 1.1 FOSC (frequncy Oscilator) 1.2 OSCSEN (SYSTEM CLOCK SWITCH BIT) 1.3 PWRTEN (SYSTEM CLOCK SWITCH BIT) 1.4 BROWN-Out 1.5 BOREN 1.7 WDTEN - Watchdog Timer Enable (co de guarda) 1.8 Watchdog Postscale Select Bit

  • 1.9 CCP2MX 2.0 BKBUG (debug) 2.1 LVP (Low Voltagem Programming) 2.2 STVREN (Stack Full/Underflow Reset Enable Bit)

    O PIC18F452

    O PIC18F452 um microcontrolador que possui memria do tipo FLASH, que nos representa uma grande facilidade em desenvolvimentos de projetos e prottipos pois no requer apag-lo atravs de luz-ultravioleta como as verses antigas que utilizavam EEPROM.

    O PIC18F452 um microcontrolador com tecnologia CMOS (baixssimo consumo) fabricado pela empresa Microchip Technology.

    Veja em seguida as principais caractersticas do PIC18F452

    microcontrolador de 40 pinos; memria de programa FLASH de 32K ( 16384 bytes

    words) memria de dados RAM de 1536 bytes; memria EEPROM de 256 byte; Processamento de at 10MIPS (milhes de

    instrues por sergundo) quatro temporizadores internos (um de 8 bits e 3 de

    16 bits) (TIMER0, TIMER1, TIMER2, TIMER3) 2 canais capture/compare/PWM - mdulo CCP Master synchronous Serial Port (MSSP) module. Unhaced Usart 8 canais A/D de 10 bits; Detector de baixa voltagem programvel

  • Permite at 100 000 ciclos de escrita e leitura na memria de programa Flash

    permite 1 000 000 ciclos de leitura e escrita na E2PROM

    Reteno de dados na Flash de 40 anos Watchdog timer com oscilador prprio e programvel trs pinos de interrrupo externa. INT0, INT1, INT2

    voltar para o topo da pgina

    Tipos de encapsulamentos: As primeiras verses do PIC eram baseadas em encapsulamentos do tipo DIP40, hoje os dipositivos de 40 pinos ainda so muito comuns, porm de

    acordo com a aplicao e os perifricos internos presentes no Chip eles podem ser encontrados em diversos encapsulamentos como:

    DIP Dual In-line Pin PLCC Leadless Chip Carrier. TQFP

  • Nosso estudo ser baseado em microcontroladores com o encapsulamento DIP (Dual In-line Pin), devido a facilidade de utilizao e disponibilidade no mercado, porm no h grandes dificuldades para se migrar para outros encapsulamentos, basta analisar um pouco o datasheet do microcontrolador.

    voltar para o topo da pgina

    Estrutura interna do PIC18F452

  • voltar para o topo da pgina

    Descrio das funes dos pinos do PIC18F452 O PIC18F452 possui no total de 33 pinos de I/O divididos entre as PORTA, PORTB, PORTC, PORTD e PORTE. PORTA: encontramos 7 pinos fsicos intitulados de RA0 a RA6 que podem ser utilizados como I/O de uso geral ou como conversor analgico/ digital A/D, (com excesso de RA4), alm de possuir tambm a funo de deteco de baixa tenso (LVD), referncia analgica do A/D e contador externo. PORTB: encontramos 8 pinos intitulado de RB0 a RB7 configurveis como I/O de uso geral. Nesse PORT podemos trabalhar com trs interrupes externas, mdulo CCP e pinos de gravao e debugger. PORTC: encontramos 8 pinos intitulados de RC0 a RC7 configurveis como

    I/O de uso geral, sada do oscilador do timer, mdulo CCP, Clock e data para os modos SPI, I2C e UART. PORTD: encontramos 8 pinos intitulado de RC0 a RC7 que pode ser configurado como I/O de uso geral ou ser configurado como PSP para ter sada TTL (por exemplo: interfaciamento com microprocessadores ). PORTE: podemos utiliz-lo como PORT de I/O de uso geral ou utilizar os

    pinos de WR e CS para acesso ao modo paralelo Slave Port (acesso a memria externa por exemplo). Abaixo segue com detalhes a funo de cada pino do microcontrolador PIC18F452.

    Pino (DIP)

    Funo Tipo Descrio

    1 /MCLR/VPP entrada - entrada

    Entrada do RESET externo. Pino de habilitao de alta voltagem ICSP

    13 OSC1 /CLK1 entrada entrada do cristal oscilador / entrada do clock externo

    14 OSC2 / CLK1/ RA6 sada - sada - I/O

    sada do cristal oscilador / entrada do clock exteno / entrada e sada de uso geral

    2 RA0 / AN0 I/O - entrada

    entrada e sada de uso geral / entrada do conversor AD0

    3 RA1 / AN1 I/O - entrada

    entrada e sada de uso geral / entrada do conversor AD1

    4 RA2 / AN2 /Vref- I/O - entrada - entrada

    entrada e sada de uso geral/ entrada do conversor AD2 / entrada de referncia baixa do A/D

  • 5 RA3 / AN3 / Vref+ I/O - entrada - entrada

    entrada e sada de uso geral / entrada do conversor AD3 / entrada de referncia Alta do A/D

    6 RA4 / T0CKI I/O - entrada - entrada

    entrada e sada de uso geral / entrada de clock timer0

    7 RA5/AN4/SS/LVDIN

    I/O - entrada - entrada -entrada

    entrada e sada de uso geral / entrada do conversor AD4 / entrada de seleo SPI, detector de baixa voltagem.

    33 RB0 / INT0 I/O - entrada

    entrada e sada de uso geral / interrupo externa 0

    34 RB1 / INT1 I/O - entrada

    entrada e sada de uso geral / interrupo externa 1

    35 RB2 / INT2 I/O - entrada

    entrada e sada de uso geral / interrupo externa 2

    36 RB3 / CCP2** I/O - I/O entrada e sada de uso geral / mdulo CCP2 (multiplexado com RB3 )

    37 RB4 I/O entrada e sada de uso geral / pino de interrupo por mudana de nvel

    38 RB5/PGM I/O - I/O entrada e sada de uso geral (interrupo por mudana de estado) / pino de habilitao ICSP baixa voltagem

    39 RB6 / PGC I/O - I/O entrada e sada de uso geral (interrupo por mudana de estado) / pino ICSP In-Circuit Debugger

    40 RB7 / PGD I/O - I/O entrada e sada de uso geral (interrupo por mudana de estado) / pino ICSP In-Circuit Debugger

    15 RC0/T10S0/T1CKI I/O - sada - entrada

    entrada e sada de uso geral / sada do 2 oscilador /Contador externo Timer 1

    16 RC1 / T10SI / CCP2**

    I/O - entrada -sada

    entrada e sada de uso geral / entrada 2 oscilador / mdulo CCP2 (multiplexado com RB3 )

    17 RC2/CCP1 I/O - I/O entrada e sada de uso geral / mdulo CCP1

    18 RC3/SCK/SCL I/O - I/O - I/O

    entrada e sada de uso geral / entrada e sada do clock serial para o modo SPI / entrada e sada do clock serial para o modo I2C

    23 RC4/SDI/SDA I/O - entrada - I/O

    entrada e sada de uso geral / entrada de dados SPI / entrada e sada de dados I2C

    24 RC5/SD0 I/O - sada entrada e sada de uso geral / sada de dados SPI

    25 RC6/TX/CK I/O - sada - I/O

    entrada e sada de uso geral / canal de transmisso UART / clock de sincronismo

  • UART

    26 RC7/RX/DT I/O - entrada - I/O

    entrada e sada de uso geral / canal de recepo UART / clock de sincronismo UART

    19 RD0/PSP0 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    20 RD1/PSP1 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    21 RD2/PSP2 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    22 RD3/PSP3 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    27 RD4/PSP4 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    28 RD5/PSP5 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    29 RD6/PSP6 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    30 RD7/PSP7 I/O - I/O entrada e sada de uso geral / porta de comunicao paralela

    8 RE0/RD/AN5 I/O entrada e sada de uso geral / controle de leitura do port paralelo / entrada analgica AD5

    9 RE1/WR/AN6 I/O entrada e sada de uso geral / controle de escrita do port paralelo / entrada analgica AD6

    10 RE2/CS/AN7 I/O entrada e sada de uso geral / controle de seleo do port paralelo / entrada analgica AD7

    12 , 31

    GND alimentao negativo

    11, 32

    VCC alimentao positivo

    Tipos de Memrias

    No PIC18F452 encontramos trs tipos de memrias:

    Memria de Programa - FLASH Memria de dados - RAM Memria de dados EEPROM

    Como ns sabemos, memria de programa (ROM, EPROM, FLASH) do tipo no voltil, ou seja, podemos desenergizar nosso sistema

    microcontrolado e ele no perder o programa gravado.

  • Nosso microcontrolador estudado possui internamente 32Kbyte de memria de programa e possui um barramento de programa de 16 bits. Alm disso, existem 21 bits para endereamento da memria de programa, o que permite que at 2 Mbyte sejam endereados pelo microcontrolador da familia PIC18F.

    voltar para o topo da pgina

    Memria de Programa

    A memria de programa utilizada em nosso microcontrolador do tipo FLASH (sufixo "F") que permite ser gravada/apagada no minimo 1000 vezes. Este tipo de memria utilizada ideal para ser utilizada em desenvolvimento de projetos e at mesmo em produtos finais.

    Memria de Programa FLASH do PIC18F442

  • Podemos perceber que a memria de programa do PIC18F452 inicia-se no endereo 0000h e atinge o valor mximo de 7FFFH, ou seja , 32767K byte (32Kbyte).

    Nota:

    No podemos confundir de forma alguma memria de programa e memria de dados. Sabemos que memria de programa onde nosso programa estar gravado, enquanto memria de dados onde os valores de nossas variveis sero salvas temporariamente.

    O endereo inicial 0000h chamado de vetor de reset. A instruo de programa que estiver nesse endereo de memria ser a primeira a ser executada pelo processador do PIC. Sempre que energizarmos ou resetarmos o microcontrolador, o contador de programa PC apontar sempre para este primeiro endereo da memria.

    Em seguida temos os endereos 0008h e 0018h. Estes endereos so chamados de vetores de interrupo. (veremos mais adiante em nosso curso sobre esses vetores de interrupo).

    Em seguida temos os endereos 0008h e 0018h. Estes endereos so chamados de vetores de interrupo. (veremos mais adiante em nosso curso sobre esses vetores de interrupo).

    Vamos exemplificar um processo de gravao na memria de programa do PIC.

    Acompanhe o programa exemplo de programa abaixo:

    /Este programa tem por funo alterar o estado dos 8 pinos do PORTB do PIC em intervalos de 1 segundo.

    void main() { TRISB = 0; // configura o portB como sada PORTB = 0x00; // coloca zero em todos os pinos do portB do {

    PORTB = 0xFF; // coloca um em todos os pinos do portB Delay_ms(1000); // delay de 1 segundo (1000 ms) PORTB = 0x00; // Coloca zero em todos os pinos do portB Delay_ms(1000); // delay de 1 segundo } while(1);

    }

    Ao compilarmos o programa acima com o mikroC teremos como resultado o

    seguinte cdigo de mquina (descrito somente algumas linhas do cdigo gerado;

  • A partir da imagem acima, podemos verificar os valores que sero gravados na memria de programa aps gravao do programa exemplo acima. Esses valores so teis para o programador experiente, pois permite visualizar e acompanhar a execuo por completo da compilao dos arquivos.

    Nota: Os cdigos em assembly visualizado na figura acima foi gerado pelo compilador mikroC aps a compilao de um programa escrito em C.

    voltar para o topo da pgina

  • Memria de dados - EEPROM

    Como estudamos anteriormente, sabemos que as memrias do tipo EEPROM so muito parecidos com a memria RAM, sua diferena que as distingue devido ao fato da memria EEPROM no "perder" as informaes salvas quando a desenergizarmos. Podemos salvar nesta memria dados no volteis durante o decorrer da execuo de nosso programa.

    O PIC18F452 possui internamente 256 byte de memria de dados EEPROM.

    O endereo inicial da memria de dados EEPROM 0 e seu ltimo endereo FFh. Estudaremos atravs de comandos como escrever e ler dados nessa memria de programa nas unidades seguintes.

    voltar para o topo da pgina

    Memria de dados - RAM

    Chegamos a um assunto de grande importncia no estudo referente ao nosso microcontrolador PIC, neste tpico apresentaremos toda a estrutura de memria de dados RAM. Aprenderemos a trabalhar com ela e tambm onde esto localizados os botes que ligam/desligam, configuram e controlam os perifricos internos do PIC, ou seja, os SFR (Registradores de Funes Especiais).

    A memria de dados RAM dividida em dois grupos: os chamados GPR (Registradores de Propsito Geral) e os SFR ( Registradores de Funes Especiais).

    Os GFR tem a funo de armazenar dados de uso geral que utilizamos e criamos durante a execuo do nosso programa. Podemos guardar nesse

  • regio da memria RAM dados volteis de variveis, tabelas, constantes, entre outras.

    Os SFR's a parte principal do microcontrolador, nesta rea da memria RAM que esto armazenados todo o setup de funcionamento do PIC. Apartir desses registradores podemos configurar o modo de trabalho dos timers/counters, USART, conversores analgicos digitais, etc.

    O PIC18F452 em estudo possui internamente 1536 bytes de memria de dados RAM.

    O banco de memria RAM da famlia 18F dividido em 16 bancos que contm 256 bytes de memria. Os 6 primeiros bancos so a regio dos GPR's, e o ltimo banco so dos SFR's. Acompanhe a figura abaixo:

  • Vamos examinar o mapa de registradores dos SFR's. (endereo F80h FFFh)

    Os SFRs so registradores de funes especiais responsveis pela configurao dos modos de trabalhos do PIC. Atravs da configurao desses registradores especiais, podemos tambm monitorar o status do microcontrolador em determinados momentos e situaes. Estudaremos a funo desses registradores quando estivermos trabalhando com projetos, pois dessa maneira ficar mais claro seu funcionamento e aplicaes.

    O Clock

  • Todo microcontrolador requer um circuito de oscilao pois quem d o sinal de "partida" e "sincronismo" para qualquer atividade interna da chip. A freqncia de operao de oscilao um dos agentes que determinam a velocidade de execuo das instrues do microcontrolador.

    O PIC18F452 pode funcionar com diversas fontes de osciladores:

    1. LP low-power cristal 2. XT cristal ou ressonador 3. HS High-Speed cristal (cristal de alta velocidade) ou

    ressonador 4. HS + PLL High-Speed cristal ou ressonador com PLL habilitada 5. RC Resistor / Capacitor externo 6. RCIO Resistor / Capacitor externo com pino de I/O 7. EC Clock externo 8. ECIO Clock exteno com pino de I/O

    voltar para o topo da pgina

    Osciladores: Cristal e Ressonador

    Para utilizarmos cristal ou ressonadores em nosso chip, devemos conect-lo da seguinte maneira:

    Figura 01 - clock gerado a partir de um cristal de quartzo

    Nota: Quando projetamos um dispositivo, a regra colocar o oscilador to perto quanto possvel do microcontrolador, de modo a evitar qualquer interferncia nas linhas que ligam o oscilador ao

    microcontrolador.

  • Note que existe dois capacitores ligados em paralelo com o cristal. O valor desses capacitores variam de acordo com a frquencia do cristal utilizado. Abaixo segue uma tabela apresentando os valores dos capacitores:

    Tipo de oscilador

    Freqncia do cristal

    Valores tipicos para o capacitor

    C1 C2

    LP (cristal de baixa

    freqncia)

    32kHz 33pF 33pF

    200KHz 15pF 15pF

    XT (cristal)

    200KHz 22-

    68pF 22-

    68pF

    1.0MHz 15pF 15pF

    4.0MHz 15pF 15pF

    HS (cristal de alta

    freqncia)

    4.0MHz 15pF 15pF

    8.0 MHz 15-

    33pF 15-

    33pF

    20.0MHz 15-

    33pF 15-

    33pF

    25MHz 15-

    33pF 15-

    33pF

    cristal de quartzo

    Ressonador cermico

    Os ressonadores cermicos so comercializados em dois tipos: com dois terminais e com trs terminais. Os mais utilizados so os ressonadores com trs terminais pois no precisam de capacitores externos. O ressonador com dois terminais obedecem a ligao da figura 01, enquanto no de trs o pino central deve ser aterrado. segue abaixo o esquema de ligao do ressonador com trs terminais:

  • Os ressonadores cermicos uma segunda opo. No to barato quanto um RC mas bem mais estvel e preciso.

    Nota: Antes de gravarmos um programa no microcontrolador PIC devemos "queimar" os fusivel de configurao informando qual o

    tipo de oscilador estamos utilizando em nosso hardware.

    Nos projetos do nosso curso iremos utilizar cristal de quartzo de 4MHz pois garantimos maior preciso nas rotinas de tempo nas execues das instrues.

    voltar para o topo da pgina

    Circuito de Oscilao RC

    Este o tipo de oscilador mais simples que existe e tambm o mais barato, mas, por outro lado, o menos preciso, variando muito a tenso de trabalho, temperatura e tolerncias. O circuito RC deve ser ligado conforme a figura abaixo:

    voltar para o topo da pgina

    Modo HSPLL

    HSPLL na verdade um modo em que podemos multiplicar o valor da freqncia de entrada do cristal oscilador por 4. ideal para ambientes em que o dispositivo no pode gerar EMI (interferncia Eletromagntica). Este modo deve ser habilitado nos "fusveis de configuraes" no momento em que formos gravar o chip.

  • Por exemplo:

    Caso venhamos conectar ao PIC um cristal de 10 MHz entre os pinos OSC1 e OSC2 e ativarmos o modo HSPLL no momento em que gravarmos o chip, o PIC passa a operar a 40 MHz, executando as instrues internas em 10MHz (10 MIPS - milhes de instrues por segundo), pois a frequncia real de operao do seu microcontrolador : Fosc / 4.

    Para representar os bits de configurao de nosso microcontrolador, iremos utilizar um software gratuito de gravao de microcontroladores PIC disponvel na internet, chamado WinPIC800. (www.winpic800.com).

    Nota: No programa Winpic800 podemos definir o tipo de oscilador utilizado no PIC atravs do seguinte setup:

    voltar para o topo da pgina

    Os bits de configurao (fusveis)

    Os microcontroladores PIC possui internamente regies de memrias no volteis que so resposveis por determinar o modo de trabalho do chip. So chamados de bits de configurao ou fusveis. de grande importncia que venhamos entender o funcionamento desses bits, caso contrrio teremos srios problemas no funcionamento do nosso projeto.

    Os bits de configurao do PIC esto armazenados em uma rea reservada do PIC.

    Mapa dos bits de configurao do PIC18F452

    Internamente no microcontrolador, encontramos 8 registradores de 16bits, divididos em duas partes: Byte alto e Byte Baixo, e so responsveis pela configurao geral do PIC. Esta regio de

  • memria no acessivel durante a execuo do programa, mas somente podemos configura-l no momento da gravao do chip.

    Apresentamos a seguir uma tabela com a descrio de todos os bits de configurao do PIC18F452:

    Oscilador

    RC, EC, LP, XT, HS, HS-PLL, RC-SOC2 com RA6, EC-OSC2 com RA6

    oscilador switch enable

    habilitado ou desabilitado

    power up timer habilitado ou desabilitado

    brown out detect habilitado ou desabilitado

    brown out voltage

    watchdog timer

    2.5V, 2.7V, 4.5V ou 4.7V

    habilitado ou desabilitado

    watchdog postscaler 1:1 , 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, ou 1:128

    ccp2mx pino RC1 ou RB3

    stack overflow enable habilitado ou desabilitado

    low voltage program habilitado ou desabilitado

    code protect 0x0200 a habilitado ou

  • 0x1FFF desabilitado code protect 0X2000 a 0X3FFF

    habilitado ou desabilitado

    code protect 0X4000 a 0X5FFF

    habilitado ou desabilitado

    code protect 0X6000 a 0X7FFF

    habilitado ou desabilitado

    data ee read protect habilitado ou desabilitado

    code protect boot habilitado ou desabilitado

    Table write protect 0x2000 a 0x1FFF

    habilitado ou desabilitado

    Table write protect 0x2000 a 0x3FFF

    habilitado ou desabilitado

    Table write protect 0x4000 a 0x5FFF

    habilitado ou desabilitado

    Table write protect 0x6000 a 0x7FFF

    habilitado ou desabilitado

    data ee write protect habilitado ou desabilitado

    table write protect boot

    habilitado ou desabilitado

    config write protect habilitado ou desabilitado

    Table read protect 0x0200 a 0x1FFF

    habilitado ou desabilitado

    Table read protect 0x2000 a 0x3FFF

    habilitado ou desabilitado

    Table read protect 0x4000 a 0x5FFF

    habilitado ou desabilitado

    Table read protect 0x6000 a 0x7FFF

    habilitado ou desabilitado

    Table read protect boot

    habilitado ou desabilitado

    No WinPIC800, programa de gravao de microcontroladores PIC utilizado no kit PICGenios da Microgenios, podemos visualizar e configurar os bits de configurao antes de gravarmos o programa no PIC.

  • Podemos configurar os bits de configurao de duas maneiras:

    Atravs do mikroC, no momento ou no decorrer da elaborao do projeto

    Atravs do programa de gravao do PIC (WinPIC800, IC-Prog, etc)

    A melhor maneira de configurar os bits de configurao no momento de criao do programa no compilador, pois uma vez configurado esses bits, no precisaremos reconfigura-los a cada compilao de nos programa.

    Configurando os bits de configurao do PIC

    FOSC (frequncy Oscilator)

    Atravs dessa opo podemos configurar o tipo de clock com o qual o microcontrolador ir operar. As fontes de clock que podem ser selecionadas so:

  • Oscilador externo RC, com RA6 configurado como pino de saida de clock;

    Oscilador HS com PLL ativo - multiplica o valor da frequncia de oscilao por 4;

    Oscilador do tipo EC, utilizando o pino RA6 como saida de clock (Fosc/4);

    Oscilador EC Utilizando o pino RA6 como I/O

  • Oscilador HS, XT, LP

    OSCSEN (SYSTEM CLOCK SWITCH BIT)

    Atravs desse bit de configurao, podemos selecionar o modo de acionamento do oscilador do PIC. Caso venhamos a selecionar este bit, a frequncia de oscilao passa a ser gerada internamente pelo TIMER1, caso contrrio, o oscilador selecionado FOSC.

    Obs: Caso desejemos utilizar o oscilador interno do PIC, devemos selecionar este bit de configurao e configurar o TIMER1 para trabalhar como oscilador para o clock (basta habilitar o T1OSCSEN do TIMER1), caso no venhamos a programar o TIMER1 corretamente, automaticamente o bit de configurao do OSCSEN ser desabilitado.

    voltar para o topo da pagina

    PWRTEN (SYSTEM CLOCK SWITCH BIT)

    A travs desse bit, podemos configurar o modo POWER para o acionamento do PIC, quando este bit estiver acionado o modo POWER-UP TIMER estar habilitado. O temporizadore de power-up pode seu utilizado para fazer com que o chip permanea em reset por aproximadamente 72ms aps o chip ter sido ligado. E deve ser utilizado para garantir a estabilizao da fonte de energia no projeto.

    voltar para o topo da pagina

    BROWN-OUT voltage

  • O detector de brown-out utilizado para provocar o reset da CPU no caso de a tenso de alimentao cair abaixo de um determinado limite. Uma vez que a tenso retorne ao seu valor nominal, o circuito de reset liberado e o programa reiniciado. No PIC18F452 podemos selecionar 4 tipos de tenses para o BROWN-OUT: 2.0V, 2.7V, 4.2V ou 4.5V.

    voltar para o topo da pagina

    BROWN-OUT detect

    Podemos habilitar ou desabilitar o detector de brown-out, basta selecionar o bit de configurao caso desejemos habilitar o brown-out.

    voltar para o topo da pagina

    WDTEN - Watchdog Timer Enable (co de guarda)

    O watchdog timer ou co de guarda um sistema interno ao microcontrolador que evita que o programa pare em um determinado ponto. Imagine que voc desenvolveu uma aplicao e que por um erro de software em certo momento o seu programa pra (entra em loop infinito). Caso o watchdog dog no seja resetado em tempos em tempos ele ir "estourar", ou seja, chegar ao final da sua contagem fazendo com que o microcontrolador resete e reinicie todo o processo. Para habilitar o Watchdog marque o bit WDTEN. (basta deixar em ON).

    voltar para o topo da pagina

    Watchdog Postscale Select Bit

    O tempo minimo para estouro do watchdog de 18 ms, porm podemos estender esse tempo atravs do postscale. Com essa funo podemos multiplicar o tempo mnimo de 18 ms com os seguintes multiplicadores do prescaler: 1:1; 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128.

    voltar para o topo da pagina

    CCP2 MX

    Podemos atravs desse bit definir se queremos multiplexar o mdulo CCP2 com o pino RC1 (CCP2MX = 0) com o pino RB3 (CCP2MX = 1)

    voltar para o topo da pagina

  • BKBUG (debug)

    Atravs desse bit , podemos habilitar o modo DEBUGGER no PIC. Nesse modo possivel emular um programa no prprio projeto eletrnico. Emular consiste no processo de junto com o computador, testar passo a passo o funcionamento do programa que est rodando no microcontrolador. Se esta opo estiver ativa, os pinos de gravao RB6 e RB7 deixam de funcionar como I/O's; caso contrrio, o funcionamento desses pinos fica normal. Faz necessrios a utilizao de equipamentos de debugao fornecidos pela Microchip, ou outras empresas para realizar esta operao.

    voltar para o topo da pagina

    LVP (Low Voltagem Programming)

    Quando o PIC gravado, acionado uma tenso de 12Vcc no pino MCLR. Se a opo LVP estiver ativa, para gravar o PIC basta ter nivel lgico 1 no pino RA5. Esta opo ideal para aplicaes em campo onde dificil encontrar tenses de 12V disponvel em determinados equipamentos.

    voltar para o topo da pagina

    STVREN (Stack Overflow Reset Enable Bit)

    O PIC18F452 possui internamente 31 endereos de pilha. Quando habilitamos esse bit STVREN, toda vez que ultrapassarmos o limete da pilha (ocorrer overflow) o microcontrolador ser resetado.

    voltar para o topo da pagina

    rea de Protees contra leitura e escrita

    Code Protect 0x0200 a 0x1FFF Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x0200 a 0x1FFF.

    Code Protect 0x2000 a 0x3FFF Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x2000 a 0x3FFF.

    Code Protect 0x4000 a 0x5FFF

  • Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x4000 a 0x5FFF.

    Code Protect 0x6000 a 0x7FFF Caso este bit esteja habilitado, protege contra leitura a memria de programa de 0x6000 a 0x7FFF.

    Data EE Read Protect Caso este bit esteja habilitado, protege contra leitura os 256 bytes da memria EEPROM (memria no voltil).

    Code Protect Boot Caso este bit esteja habilitado, protege contra leitura a regio de memria Boot (rea da memria de programa) 0x0000 at 0x0FF0.

    Table Write Protect 0x0200 a 0x1FFF Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Table Write Protect 0x2000 a 0x3FFF Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Table Write Protect 0x4000 a 0x5FFF Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Table Write Protect 0x6000 a 0x7FFF Caso este bit esteja habilitado, protege a memria de programa contra escrtita por tabela no endereo especificado.

    Data Write Protect Caso este bit esteja habilitado, protege contra escrita os 256 bytes da memria EEPROM (memria no voltil).

    Table Write Protect Boot Caso este bit esteja habilitado, protege contra escrtita por tabela a rea de boot.

    Config Write Protect

  • Caso este bit esteja habilitado, protege contra escrita a rea de configurao do microcontrolador.

    Table Read Protect 0x0200 a 0x1FFF Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x2000 a 0x3FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x4000 a 0x5FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Table Read Protect 0x6000 a 0x7FFF

    Caso este bit esteja habilitado, protege a memria de programa contra leitura por tabela no endereo especificado.

    Ciclos de mquina

    A contagem de tempo no medida diretamente pela freqncia de oscilao do cristal e sim atravs do que chamamos de CICLO DE MQUINA.

    Internamente no microcontroladores PIC a freqncia do cristal dividida por 4, o que nos resulta que a freqncia real de trabalho :

    freqncia de trabalho real = freqncia oscilador / 4

    Concluimos ento que: a cada 1 cliclo de mquina corresponde a 4 pulsos do oscilador.

    Para exemplificar vamos supor que temos conectado ao microcontrolador um cristal de quartzo de 8MHz. Qual a freqncia real de execuo das instrues do nosso microcontrolador?

    muito simples, acompanhe:

    Sabemos que a freqncia do cristal utilizado de 4 MHz, e que cada instruo leva exatamente 1 ciclo de mquina para ser executada; Basta dividir o valor do cristal por 4 para sabermos o valor real de trabalho do PIC.

    freqncia de trabalho real = 8MHz / 4 => 2MHz

  • Concluimos ento que nosso microcontrolador PIC com cristal de 8MHz esta trabalhando efetivamente a 2MHz, ou seja , cada instruo de programa leva

    0,5 us para ser executada.

    Nota: Temos que lembrar que nosso microcontrolador em

    estudo pode operar com cristal oscilador de at 40MHz, disso nos resulta em 10MHz a freqncia mxima de trabalho permitida por esse chip.

    Freqncia de trabalho real = 40MHz / 4 => 10MHz

    voltar para o topo da pgina

    Reset

    Sempre que ligamos ou energizamos nosso circuito microcontrolado interessante que o PIC seja resetado, para isso necessria a insero de um circuito eletrnico bem simples, mas capaz de realizar esse procedimento que costumamos chamar de POWER ON RESET.

    Alm disso interessante que exista um boto para que o usurio possa reiniciar o sistema sempre que for necessrio (reset manual), a seguir indicamos um exemplo de circuito para o reset.

    Os PICs possuem diversos tipos de reset:

    POR - Power On Reset - o reset que ocorre quando o chip ligado. Reset do MCLR durante a operao normal Reset do MCLR durante o modo SLEEP Reset do watchdog durante operao normal Reset do detector de Brown-out (BOR) Instruo de Reset Reset por estouro de Pilha - Stack Overflow

    voltar para o topo da pgina

    Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao em C

  • Microgenios 1998 - 2007. Todos os direitos reservados. proibido cpia parcial ou integral desse material sem prvio aviso. Maiores informaes: [email protected]

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    As Portas de I/O's

    1.0 Introduo as Portas de I/O

    1.1 PORTA

    1.2 PORTB

    1.3 PORTC

    1.4 PORTD

    1.5 PORTE

    Introduo as portas de I/O

    Os microcontroladores PIC possuem pinos fsicos destinados comunicao de dados com os circuitos externos. Atravs desses

    pinos podemos enviar nveis lgicos (0 ou 1) para, por exemplo,

    acender ou apagar um LED, acionar displays LCD, ler botes e

    sensores, etc.

    O microcontrolador PIC18F452 da Microchip possuem 34 pinos de

    escrita e leitura (I/O), os quais esto divididos em quatro portas

    chamadas: PORTA, PORTB, PORTC, PORTD e PORTE.

  • figura 01

    Os PORTB, PORTC e PORTD possuem 8 pinos de I/O cada, enquanto

    o PORTE possue 3 pinos de I/O e PORTA 6 pinos de I/O.

    Cada porta de I/O possui dois registradores que controlam suas

    funes: um registrador PORT e um registrador TRIS.

    Os registradores PORT (PORTA, PORTB, PORTC, PORTD, PORTE)

    que so posies na RAM que contm os dados das portas paralelas

    (I/O's) do microcontrolador. Qualquer escrita realizada em um desses

    registros automaticamente altera todo o contedo presente na sada do chip.

    O registrador TRIS utilizado para configurar cada pino da respectiva

    porta como entrada ou sada. Assim, cada bit do registrador

    corresponde a um pino da porta. Se o bit estiver em 1 (um), o pino correspondente esta configurado como entrada de dados, e se estiver

    em 0 (zero) configuramos este pino como sada de dados.

    As portas de comunicao paralela do PIC so utilizadas para efetuar

    diversas tarefas:

    voltar para o topo da pgina

    PORTA

  • A primeira porta a ser estudada a PORTA. Alm das funes de entrada e

    sada de dados encontramos tambm diversas outras funes multiplexadas aos

    pinos da PORTA:

    Vamos conhecer as funes de cada pino da PORTA:

    PINO FUNO TIPO DESCRIO

    2 RA0 / AN0 I/O -

    entrada Pino de entrada e sada de uso geral / entrada do

    conversor AD0

    3 RA1 / AN1 I/O -

    entrada Pino de entrada e sada de uso geral / entrada do

    conversor AD1

    4 RA2 / AN2 /Vref- I/O -

    entrada -

    entrada

    Pino de entrada e sada de uso geral/ entrada do

    conversor AD2 / entrada analgica de referncia

    baixa

    5 RA3 / AN3 / Vref+ I/O -

    entrada -

    entrada

    Pino de entrada e sada de uso geral / entrada do

    conversor AD3 / entrada analgica de referncia

    alta

    6 RA4 / T0CKI I/O -

    entrada -

    entrada

    Pino de entrada e sada de uso geral / entrada de

    contador T0 do timer0

    7 RA5/AN4/SS/LVDIN

    I/O -

    entrada -

    entrada -

    entrada

    Pino de entrada e sada de uso geral / entrada do

    conversor AD4 / entrada de seleo SPI, detector

    de baixa voltagem.

    14 OSC2 / CLK1/ RA6 sada -

    sada -

    I/O

    sada do cristal oscilador / entrada do clock exteno

    / entrada e sada de uso geral

    Registrador PORTA

    Figura 02

    O resistrador PORTA esta localizado na memria RAM do PIC e possui o

    endereo (0XF80). Este registrador ir acessar os pinos da PORTA da seguinte maneira:

    BIT 0 do registrador PORTA -> atua sobre o bit RA0 BIT 1 do registrador PORTA -> atua sobre o bit RA1

  • BIT 2 do registrador PORTA -> atua sobre o bit RA2 BIT 3 do registrador PORTA -> atua sobre o bit RA3 BIT 4 do registrador PORTA -> atua sobre o bit RA4 BIT 5 do registrador PORTA -> atua sobre o bit RA5 BIT 6 do registrador PORTA -> atua sobre o bit RA6

    Toda a porta de I/O possui internamente um latch de sada para cada pino.

    Dessa forma, uma escrita no registrador PORTA ir na realidade escrever em cada

    latch do PORTA.

    Para ler um dado na PORTA, basta ler o contedo do registrador PORTA.

    Nota: O registrador PORTA o "espelho" dos pinos da

    PORTA do PIC, para lermos ou escrevermos nesse

    registrador estamos na verdade atuando sobre os pinos

    do port respectivamente. No podemos esquecer que o

    registrador TRISA tambm afeta a leitura e escrita no

    port.

    Alm de operar como I/O de uso geral, o PORTA, pode ser configurado como entrada analgica. Para isso, faz necessrio que o

    programador venha a programar os pinos do PORTA como entrada

    analgica, atravs do registrador ADCON1.

    Nota: aps o reset do seu microcontrolador, os pinos do PORTA e

    PORTE vem configurados como A/D (entrada analgica), caso queiramos acionar por exemplo um rel com um pino deste PORT,

    precisamos configurar adequamente este pino como I/O atravs do

    registrador ADCON1.

    Conhecendo o registrador ADCON1:

  • X pode ser 0 ou 1

    Figura 03

    O registrador ADCON1 responsvel por determinar quais os pinos do

    PORTA e PORTE (com excesso de RA4) sero entrada analgica ou

    digital. Repare que na tabela (figura 03) para configurarmos todos os

    pinos do PORTA como entrada digital, ou seja, como I/O de uso geral,

    basta carregar o valor ADCON1 = 0B00000111; ou ADCON1 =

    0B00000110;

    Exemplo de programa:

    void main() {

    adcon1 = 0b00000111; // configura pinos do PORTA e

    PORTE como I/O digital

    trisa.f0 = 0; //configura pino RA0 como saida

    porta.F0 = 1; // envia nivl lgico 1 no pino RA0

    }

    Podemos definir determinadas tenses externas de referncia para nosso

    conversor analgico / digital, atravs dos pinos RA2 (AN2) e RA3

    (AN3). Podemos tambm programar nossa referncia de tenso do

    conversor A/D como sendo VSS e VDD, ou seja, a prpria tenso de

    alimentao do chip. Neste caso, os pinos RA2 e RA3 podero ser

    utilizados como entrada analgica, ou como I/O de uso geral.

    Registrador TRISA

    O registrador TRISA utilizado para o controle da direo de atuao

    de cada pino de I/O do PORTA. Atravs desse registradores definimos e configuramos o modo de trabalho do pino do microcontrolador

    como entrada ou sada de dados.

    Este registrador define os pinos do PORTA da seguinte maneira:

    BIT 0 do registrador TRISA -> atua sobre o bit RA0 BIT 1 do registrador TRISA -> atua sobre o bit RA1 BIT 2 do registrador TRISA -> atua sobre o bit RA2 BIT 3 do registrador TRISA -> atua sobre o bit RA3 BIT 4 do registrador TRISA -> atua sobre o bit RA4 BIT 5 do registrador TRISA -> atua sobre o bit RA5 BIT 6 do registrador TRISA -> atua sobre o bit RA6

    Se o bit do registrador TRISA estiver em nvel lgico 1, o pino correspondente

    a este bit do PORTA estar configurado como entrada.

    Se o bit do registrador TRISA estiver em nvel lgico 0, o pino correspondente a este bit do PORTA estar configurado como sada.

    void main() {

    trisa = 0b00000000; //configura todos os pinos do

    PORTA como saida

  • trisb = 0b00001111; //configura somente os pinos de

    RB7 a RB4 do PORTB como saida

    trisa.f0 = 0; //configura pino RA0 como saida

    trise.f2 = 1; //configura pino RE2 como entrada de

    dados

    trisc.f1 = 1; //configura pino RC1 como entrada de

    dados

    }

    Aprendendo como configurar os pinos do

    PIC18F452:

    Exemplo:

    Com base no circuito eletrnico abaixo, vamos configurar os

    registradores de direo de pinos:

    void main() {

    adcon1 = 0b00000110; //configura pinos do PORTA e

    PORTE como I/O digital

    trisa.f0 = 0; //configura RA0 do PORTA como saida

    trisa.f2 = 0; //configura RA2 do PORTA como saida

    trisa.f4 = 0; //configura RA4 do PORTA como saida

    porta = 0b00010101; //ascende somente todos os leds.

    trisb.f0 = 1; //configura pino RB0 como entrada de

    dados

    trisb.f3 = 1; //configura pino RB3 como entrada de

    dados

    trisb.f7 = 1; //configura pino RB7 como entrada de

    dados

    }

  • No circuito acima, os pinos RA0, RA2, RA4 dO PORTA so

    responsveis pelo acionamento dos leds. Devemos configurar o

    PORTA como sada, pois nosso objetivo "escrever" no port, ou seja,

    enviar "0" ou "1" lgico nos pinos do PORTA correspondente.

    Os pinos RB0, RB3 e RB7 do PORTB tem a funo de "ler" os estados

    das teclas, quando as teclas esto soltas temos nvel lgico 1 nos

    pinos, quando a tecla pressionada, o estado do pino alterado para

    nvel 0. Devemos configurar o PORTB como entrada, pois iremos "ler" o estados dos pinos, ou seja, o estados das teclas.

    Seguindo o mesmo raciocnio lgico, vamos programar o PIC abaixo de forma

    que todos os leds pisquem a cada segundo.

    void main(){

    trisd = 0; //configura todos os pinos do PORTC como saida

    portd = 0; //inicia programa com portd em zero

    while(1){ //lao de repetio

    portd = 0; //apaga todos os leds

    delay_ms(1000); //delay de 1 segundo

    portd = 0b11111111; //envia nvel lgico 1 em todos os pinos do

    PORTD

    delay_ms(1000); //delay de 1 segundo

    }

    }

    Exerccio:

  • Com base na tabela (figura 03), programa os pinos RA0, RA1 e RA3

    como entrada analgica, as demais entradas analgicas devero ser

    programadas como I/O digital.

    void main(){

    adcon1 = 0b00000100; //configura pinos RA0, RA1, RA3

    do PORTA entrada analgica

    }

    Leitura do LATCH de um pino do PIC

    Para ler o LATCH de sada do microcontrolador ao invs do pino utilizamos o registrador LATA, referente ao PORTA, ou LATB,

    referente ao PORTB. O latch de sada encontra-se antes do buffer de

    sada do pino, e por esse motivo podemos ler seu estado.

    voltar para o topo da pgina

    PORTB

    O PORTB, tal qual o PORTA, implementa diversas outras funes multiplexadas

    aos seus pinos, acompanhe:

    PINO FUNO TIPO DESCRIO

    33 RB0 / INT0 I/O -

    entrada Pino de entrada e sada de uso geral / interrupo

    externa 0

    34 RB1 / INT1 I/O -

    entrada Pino de entrada e sada de uso geral / interrupo

    externa 1

    35 RB2 / INT2 I/O -

    entrada Pino de entrada e sada de uso geral / interrupo

    externa 2

    36 RB3 / CCP2 I/O -

    I/O Pino de entrada e sada de uso geral / mdulo CCP

    37 RB4 I/O Pino de entrada e sada de uso geral / pino de

    interrupo por mudana de nvel

    38 RB5/PGM I/O -

    I/O

    Pino de entrada e sada de uso geral (interrupo

    por mudana de estado) / pino de habilitao ICSP

    baixa voltagem

    39 RB6 / PGC I/O -

    I/O

    Pino de entrada e sada de uso geral (interrupo

    por mudana de estado) / pino ICSP In-Circuit

    Debugger

    40 RB7 / PGD I/O -

    I/O

    Pino de entrada e sada de uso geral (interrupo

    por mudana de estado) / pino ICSP In-Circuit

    Debugger

    Assim como no PORTA, o PORTB possui dois registradores que definem o modo

    de trabalho dos seus pinos de I/O: so eles: PORTB e TRISB. Tanto o registrador PORTB quanto o registrador TRISB esto localizados na memria RAM do PIC e pertencem aos SFR'S (Registradores de Funes Especiais). O registrador TRISB tem as mesmas funes que o registrador TRISA estudado

    anteriormente, que programar os pinos do PIC para serem entradas ou sadas. O registrador PORTB funciona da mesma maneira descrita no PORTA.

  • voltar para o topo da pgina

    PORTC

    O PORTC, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

    PINO FUNO TIPO DESCRIO

    15 RC0/T10S0/T1CKI I/O -

    sada -

    entrada

    Pino de entrada e sada de uso geral / sada do

    oscilador timer1 / entrada oscilador timer1 /

    timer3

    16 RC1 / T10S1 /

    CCP2

    I/O -

    entrada

    -sada

    Pino de entrada e sada de uso geral / entrada

    do oscilador timer1 / mdulo CCP2

    17 RC2/CCP1 I/O -

    I/O Pino de entrada e sada de uso geral / mdulo

    CCP2

    18 RC3/SCK/SCL I/O -

    I/O -

    I/O

    Pino de entrada e sada de uso geral / entrada

    e sada do clock serial para o modo SPI /

    entrada e sada do clock serial para o modo

    I2C

    23 RC4/SDI/SDA I/O -

    entrada

    - I/O

    Pino de entrada e sada de uso geral / entrada

    de dados SPI / entrada e sada de dados I2C

    24 RC5/SD0 I/O -

    sada Pino de entrada e sada de uso geral / sada de

    dados SPI

    25 RC6/TX/CK I/O -

    sada -

    I/O

    Pino de entrada e sada de uso geral / canal de

    transmisso UART / clock de sincronismo

    UART

    26 RC7/RX/DT I/O -

    entrada

    - I/O

    Pino de entrada e sada de uso geral / canal de

    recepo UART / clock de sincronismo

    UART

    Assim como no PORTA, o PORTC possui dois registradores que definem o modo de trabalho dos seus pinos de I/O: so eles: PORTC e TRISC. Tanto o registrador PORTC quanto o registrador TRISC esto localizados na

    memria RAM do PIC e pertencem aos SFR'S (Registradores de Funes Especiais). O registrador TRISC tem as mesmas funes que o registrador TRISA estudado anteriormente, que programar os pinos do PIC para serem entradas ou sadas. O registrador PORTC funciona da mesma maneira descrita no PORTA. As funes especiais de cada pino sero vistas quando estudarmos suas

    aplicaes reais atravs dos projetos que vamos desenvolver durante nosso curso.

    voltar para o topo da pgina

    PORTD

    O PORTD, tal qual o PORTA, PORTB e PORTC implementa diversas outras

    funes multiplexadas aos seus pinos, acompanhe:

    PINO FUNO TIPO DESCRIO

    19 RD0/PSP0 I/O - entrada e sada de uso geral / porta de

  • I/O comunicao paralela

    20 RD1/PSP1 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    21 RD2/PSP2 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    22 RD3/PSP3 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    27 RD4/PSP4 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    28 RD5/PSP5 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    29 RD6/PSP6 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    30 RD7/PSP7 I/O -

    I/O

    entrada e sada de uso geral / porta de

    comunicao paralela

    Assim como nas outras portas, o PORTD possui dois

    registradores que definem o modo de trabalho dos seus pinos de I/O: so eles: PORTD e TRISD. Tanto o registrador PORTD quanto o registrador TRISD

    esto localizados na memria RAM do PIC e pertencem

    aos SFR'S (Registradores de Funes Especiais). O registrador TRISD tem a funo de programar os pinos do PIC para serem entradas ou sadas. O registrador PORTD o "espelho" dos pinos do PORTD

    do PIC, para lermos ou escrevermos nesse registrador

    estamos na verdade atuando sobre os pinos do port respectivamente. No podemos esquecer que o

    registrador TRISD tambm afeta a leitura e escrita no

    port. As funes especiais de cada pino sero vistas quando estudarmos suas aplicaes reais atravs dos projetos

    que vamos desenvolver durante nosso curso.

    voltar para o topo da pgina

    PORTE

    O PORTE, tal qual as outras portas, implementa diversas outras funes

    multiplexadas aos seus pinos, acompanhe:

    PINO FUNO TIPO DESCRIO

    8 RE0/RD/AN5 I/O Pino de entrada e sada de uso geral / controle de

    leitura do port paralelo / entrada analgica AD5

    9 RE1/WR/AN6 I/O Pino de entrada e sada de uso geral / controle de

    escrita do port paralelo / entrada analgica AD6

    10 RE2/CS/AN7 I/O Pino de entrada e sada de uso geral / controle de

    seleo do port paralelo / entrada analgica AD7

  • Assim como nas outras portas, o PORTE possui dois registradores que

    definem o modo de trabalho dos seus pinos de I/O: so eles: PORTE

    e TRISE. Tanto o registrador PORTE quanto o registrador TRISE esto localizados na memria RAM do PIC e pertencem aos SFR'S

    (Registradores de Funes Especiais). O registrador TRISE tem a funo de programar os pinos do PIC para

    serem entradas ou sadas. O registrador PORTE o "espelho" dos pinos do PORTE do PIC, para

    lermos ou escrevermos nesse registrador estamos na verdade

    atuando sobre os pinos do port respectivamente. No podemos

    esquecer que o registrador TRISE tambm afeta a leitura e escrita no port. As funes especiais de cada pino sero vistas quando estudarmos

    suas aplicaes reais atravs dos projetos que vamos desenvolver

    durante nosso curso.

    voltar para o topo da pgina

    Centro de Tecnologia Microgenios - Curso de Microcontroladores PIC - Programao

    em C

    Microgenios 1998 - 2008. Todos os direitos reservados. proibido cpia parcial ou

    integral desse material sem prvio aviso. Maiores informaes:

    [email protected]

  • Centro de Tecnologia Microgenios - Todos os direitos reservados

    Clique aqui para Imprimir o doc umento

    O Compilador mikroC

    Manipulando as Portas de I/O

    1.0 Introduo

    1.1 Conhecendo o mikroC

    1.2 Criao de um projeto no mikroC

    1.3 Conhecendo o ambiente mikroC

    1.4 Code Editor (editor de cdigo)

    1.5 Code Assistant (assistente de cdigo)

    1.6 Parameter Assistant (assistente de parmetro)

    1.7 Auto Correct (correo automtica)

    1.8 Comment / Uncomment (Comentar / no comentar)

    1.9 Goto Line (v para linha)

    2.0 Messages Window (janela de mensagens)

    2.1 Procedures List (Lista de procedimentos)

    2.2 Project Setup

    2.3 Ferramentas Integradas

    Introduo

    O mikroC um compilador desenvolvido e comercializado pela empresa

    MikroElektronika (www.mikroe.com). Ele se consiste um sistema integrado de

    desenvolvimento (IDE) para os sistema operacional Windows e suporta toda a linha de

    microcontroladores PIC (sries PIC12, PIC14, PIC16, PIC18) e existe outras verses

    para dsPIC (dsPIC30, dsPIC33 e PIC24). Os PICs da srie 14 e 17, alm dos

    microcontroladores da UBICOM/SCENIX (SX), no so suportados por esta verso do

    compilador.

  • Integrado ao compilador mikroC, temos diversas ferramentas que nos auxiliam no

    desenvolvimento de aplicaes, tais como: emuladores de Terminal Serial, ferramentas

    para LCD grficos e displays de 7 segmentos, EEPROM, etc. Temos tambm a opo

    de utilizar o debugador de cdigo na prpria IDE.

    Vejamos agora as principais caracteristicas do compilador em estudo:

    Grande facilidade na elaborao de programas

    Grande eficincia no cdigo gerado;

    Grande diversidade de funes e bibliotecas para controle dos mais variados

    tipos de dispositivos, fato que o torna um dos mais prticos compiladores C para

    microcontroladores PIC nos dias atuais.

    Grande portabilidade de cdigo de entre os diversos microcontroladores PIC, ou

    seja, muito fcil adaptar um programa escrito em C para outro

    microcontroladore de outra srie PIC.

    O mikroC possui seu prprio debugger que comercializado pelo fabricante. O

    mikroC no compatvel com o MPLAB da Microchip.

    Diverge em alguns pontos com relao ao padro ANSI-C.

    O mikroC no um software gratuito, e comercializado pelo seu fabricante por

    poucos dlares. A verso demo que iremos utilizar no desenvolvimento do nosso curso

    possui limite de gerao de cdigo de 2 kbyte de programa. Ultrapassando esse limite,

    necessrio adquirir a verso completa (full).

    O mikroC possui diversas bibliotecas de funes prontas para o tratamento dos mais

    variados dispositivos. Acompanhe:

    Bibliotecas de Funes do mikroC

    ADC Library

    CAN Library

    CANSPI Library

    Compact Flash Library

    EEPROM Library

    Ethernet Library

    SPI Ethernet Library

    Flash Memory Library

    Graphic LCD Library

    T6963C Graphic LCD Library

    IC Library

    Keypad Library

    LCD Library

    LCD Custom Library

    LCD8 Library

    Manchester Code Library

    Multi Media Card Library

    OneWire Library PS/2 Library

    PWM Library

    RS-485 Library

  • Software IC Library

    Software SPI Library

    Software UART Library

    Sound Library

    SPI Library

    USART Library

    USB HID Library

    Util Library

    SPI Graphic LCD Library

    Port Expander Library

    SPI LCD Library

    SPI LCD8 Library

    SPI T6963C Graphic LCD Library

    Bibliotecas ANSI C Standard

    ANSI C Ctype Library

    ANSI C Math Library

    ANSI C Stdlib Library

    ANSI C String Library

    Outras bibliotecas

    Conversions Library

    Trigonometry Library

    sprint Library

    Setjmp Library

    Time Library

    voltar para o topo da pgina

    Conhecendo o mikroC

    Vamos conhecer nosso compilador mikroC

    Aps a instalao do compilador, visualizado um cone na rea de trabalho

    denominado mikroC. Clique duas vezes nesse cone que o programa comea a ser

    carregado e apresenta a seguinte tela:

  • Figura 01 - O compilador mikroC

    A primeira vez que instalamos o MikroC em nosso computador, sua interface

    apresentado com background de cor preta. Podemos alterar esta configurao acessando

    o menu Tools > options > Colors > Scheme.

    Nosso compilador trabalha com a concepo de criao de projeto. Necessriamente devemos criar um

    projeto para cada aplicao que venhamos a desenvolver.

    A concepo de criao de projeto no mikroC importante para que possamos incluir vrios arquivos-

    fontes e configuraes ao nosso projeto.

    voltar para o topo da pgina

    Criao de um projeto no mikroC

    Para criarmos uma aplicaes no mikroC muito fcil, acompanhe o modelo passo a passo:

    Abra o mikroC e v ao menu Project > New Project. A tela seguinte aparece:

  • Figura 02 - criao de um projeto no mikroC

    >> Em

    Project Name digite o nome do seu projeto, em Project Path. Todos os arquivos de saida

    (list, hex, ASM)

    tero o mesmo nome do campo Project Name.

    Nota: No crie projetos com nomes com acentuao, caracteres especiais, espaos entre

    caracteres, e nomes reservados pelo compilador, como por exemplo: Button.

    >> Em Devide

    Flag, ajuste os configurantions bits do microcontrolador, que informam como o

    microcontrolador deve operar. Com ele possvel alterar o tipo de oscilador utilizado

    pelo projeto, assim como se vai usar o watchdog ou acionar a proteo contra leitura do

    chip. Esses bits so conhecidos como "fusveis".

    >> O campo

    Description opcional. Neste campo podemos descrever de forma resumida o

    funcionamento de nosso projeto, assim como colocar verses ou informaes adcionais

    que o programador ache necessrio.

  • >> No campo Device podemos selecionar o

    modelo do microcontrolador PIC que utilizaremos em nosso projeto.

    >> No campo Clock especificamos o valor

    da frequencia de trabalho de nosso microcontrolador. No caso de aplicaes com o Kit

    PICgenios PIC18F, utilizaremos o valor de 8MHz (frequencia do cristal externo

    conectado ao chip).

    O campo

    Device Flags

    onde iremos

    configurar os

    bits de

    configurao

    de nosso

    microcontrolad

    or. Atravs

    desses bits de

    configurao

    podemos

    determinar as

    configuraes

    iniciais de

    funcionamento

    de nosso microcontrolador, assim como proteger nosso programa contra leitu