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 microcontroladores1.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 microprocessados1.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: 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.

figura 2.0 ENIAC

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 MicrocontroladoresExiste 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 programao1.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 programao1. 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 HistriaA 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 MicrocontroladoresDevido 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 CompiladorA 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 PICDescreveremos 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 CA 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 prticasVeremos abaixo algumas das aplicaes prticas que iremos realizar durante nosso treinamento:

Controle de display LCDIremos 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 segmentosOs 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 matriciaisO 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 LedsOs 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

inversores de frequncia Fontes chaveadas Drive de Motores 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 PIC1.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 PICCapacidade 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 PIC18F4521.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 PIC18F4521.0 Tipos de Memrias 1.1 Memria de Programa 1.2 Memria de dados - EEPROM 1.3 Memria de dados - RAM

Osciladoreso o o o o o o

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

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 PIC18F452O PIC18F452 um microcontrolador que possui memria do tipo FLASH, que nos representa uma grande facilidade em desenvolvimentos de projetos e prottipos pois no requer apaglo 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 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 microcontrolador de 40 pinos; memria de programa FLASH de 32K ( 16384 bytes

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 PIC18F452O 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

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

entrada do cristal oscilador / entrada do clock externo sada do cristal oscilador / entrada do sada 14 OSC2 / CLK1/ RA6 clock exteno / entrada e sada de uso sada - I/O geral I/O entrada e sada de uso geral / entrada do 2 RA0 / AN0 entrada conversor AD0 I/O entrada e sada de uso geral / entrada do 3 RA1 / AN1 entrada conversor AD1 I/O entrada e sada de uso geral/ entrada do 4 RA2 / AN2 /Vrefentrada conversor AD2 / entrada de referncia entrada baixa do A/D 13 OSC1 /CLK1

I/O 5 RA3 / AN3 / Vref+ entrada entrada I/O 6 RA4 / T0CKI entrada entrada I/O entrada 7 RA5/AN4/SS/LVDIN entrada entrada I/O 33 RB0 / INT0 entrada I/O 34 RB1 / INT1 entrada I/O 35 RB2 / INT2 entrada

entrada e sada de uso geral / entrada do conversor AD3 / entrada de referncia Alta do A/D entrada e sada de uso geral / entrada de clock timer0 entrada e sada de uso geral / entrada do conversor AD4 / entrada de seleo SPI, detector de baixa voltagem.

entrada e sada de uso geral / interrupo externa 0 entrada e sada de uso geral / interrupo externa 1 entrada e sada de uso geral / interrupo externa 2 entrada e sada de uso geral / mdulo 36 RB3 / CCP2** I/O - I/O CCP2 (multiplexado com RB3 ) entrada e sada de uso geral / pino de 37 RB4 I/O interrupo por mudana de nvel entrada e sada de uso geral (interrupo 38 RB5/PGM I/O - I/O por mudana de estado) / pino de habilitao ICSP baixa voltagem entrada e sada de uso geral (interrupo 39 RB6 / PGC I/O - I/O por mudana de estado) / pino ICSP InCircuit Debugger entrada e sada de uso geral (interrupo 40 RB7 / PGD I/O - I/O por mudana de estado) / pino ICSP InCircuit Debugger I/O - sada - entrada e sada de uso geral / sada do 2 15 RC0/T10S0/T1CKI entrada oscilador /Contador externo Timer 1 I/O entrada e sada de uso geral / entrada 2 RC1 / T10SI / 16 entrada oscilador / mdulo CCP2 (multiplexado CCP2** sada com RB3 ) entrada e sada de uso geral / mdulo 17 RC2/CCP1 I/O - I/O CCP1 entrada e sada de uso geral / entrada e I/O - I/O - sada do clock serial para o modo SPI / 18 RC3/SCK/SCL I/O entrada e sada do clock serial para o modo I2C I/O entrada e sada de uso geral / entrada de 23 RC4/SDI/SDA entrada dados SPI / entrada e sada de dados I2C I/O entrada e sada de uso geral / sada de 24 RC5/SD0 I/O - sada dados SPI I/O - sada - entrada e sada de uso geral / canal de 25 RC6/TX/CK I/O transmisso UART / clock de sincronismo

26 RC7/RX/DT 19 RD0/PSP0 20 RD1/PSP1 21 RD2/PSP2 22 RD3/PSP3 27 RD4/PSP4 28 RD5/PSP5 29 RD6/PSP6 30 RD7/PSP7 8 RE0/RD/AN5

I/O entrada I/O I/O - I/O I/O - I/O I/O - I/O I/O - I/O I/O - I/O I/O - I/O I/O - I/O I/O - I/O I/O

9

RE1/WR/AN6

I/O

10 RE2/CS/AN7 12 , GND 31 11, VCC 32

I/O

UART entrada e sada de uso geral / canal de recepo UART / clock de sincronismo UART entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / controle de leitura do port paralelo / entrada analgica AD5 entrada e sada de uso geral / controle de escrita do port paralelo / entrada analgica AD6 entrada e sada de uso geral / controle de seleo do port paralelo / entrada analgica AD7

alimentao negativo alimentao positivo

Tipos de MemriasNo 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 ProgramaA 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 iniciase 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 - EEPROMComo 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 - RAMChegamos 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 2. XT 3. HS 4. 5. 6. 7. 8.ressonador HS + PLL RC RCIO EC ECIO

low-power cristal cristal ou ressonador High-Speed cristal (cristal de alta velocidade) ou High-Speed cristal ou ressonador com PLL habilitada Resistor / Capacitor externo Resistor / Capacitor externo com pino de I/O Clock externo Clock exteno com pino de I/O

voltar para o topo da pgina

Osciladores: Cristal e RessonadorPara 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: Valores Tipo de Freqncia tipicos para oscilador do cristal o capacitor C1 C2 LP (cristal de 32kHz 33pF 33pF baixa 200KHz 15pF 15pF freqncia) 2222200KHz 68pF 68pF XT (cristal) 1.0MHz 15pF 15pF 4.0MHz 15pF 15pF 4.0MHz 15pF 15pF 15158.0 MHz 33pF 33pF HS (cristal de alta 151520.0MHz freqncia) 33pF 33pF 151525MHz 33pF 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 RCEste 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 HSPLLHSPLL 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:RC, EC, LP, XT, HS, HS-PLL, RC-SOC2 com RA6, EC-OSC2 com RA6 habilitado ou desabilitado habilitado ou desabilitado habilitado ou desabilitado 2.5V, 2.7V, 4.5V ou 4.7V

Oscilador oscilador switch enable power up timer brown out detect brown out voltage watchdog timer

habilitado ou desabilitado 1:1 , 1:2, 1:4, 1:8, watchdog postscaler 1:16, 1:32, 1:64, ou 1:128 ccp2mx pino RC1 ou RB3 habilitado ou stack overflow enable desabilitado habilitado ou low voltage program desabilitado code protect 0x0200 a habilitado ou

0x1FFF desabilitado code protect 0X2000 a habilitado ou 0X3FFF desabilitado code protect 0X4000 a habilitado ou 0X5FFF desabilitado code protect 0X6000 a habilitado ou 0X7FFF desabilitado habilitado ou data ee read protect desabilitado habilitado ou code protect boot desabilitado Table write protect habilitado ou 0x2000 a 0x1FFF desabilitado Table write protect habilitado ou 0x2000 a 0x3FFF desabilitado Table write protect habilitado ou 0x4000 a 0x5FFF desabilitado Table write protect habilitado ou 0x6000 a 0x7FFF desabilitado habilitado ou data ee write protect desabilitado table write protect habilitado ou boot desabilitado habilitado ou config write protect desabilitado Table read protect habilitado ou 0x0200 a 0x1FFF desabilitado Table read protect habilitado ou 0x2000 a 0x3FFF desabilitado Table read protect habilitado ou 0x4000 a 0x5FFF desabilitado Table read protect habilitado ou 0x6000 a 0x7FFF desabilitado Table read protect habilitado ou boot 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, ICProg, 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 PICFOSC (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 mquinaA 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 / 4Concluimos 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

ResetSempre 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's1.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/OOs 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 01Os 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:

PINO2 3 4

FUNO

TIPO

DESCRIOPino de entrada e sada de uso geral / entrada do conversor AD0 Pino de entrada e sada de uso geral / entrada do conversor AD1 Pino de entrada e sada de uso geral/ entrada do conversor AD2 / entrada analgica de referncia baixa Pino de entrada e sada de uso geral / entrada do conversor AD3 / entrada analgica de referncia alta Pino de entrada e sada de uso geral / entrada de contador T0 do timer0 Pino de entrada e sada de uso geral / entrada do conversor AD4 / entrada de seleo SPI, detector de baixa voltagem. sada do cristal oscilador / entrada do clock exteno / entrada e sada de uso geral

5

6

7

14

I/O RA0 / AN0 entrada I/O RA1 / AN1 entrada I/O RA2 / AN2 /Vref- entrada entrada I/O RA3 / AN3 / Vref+ entrada entrada I/O RA4 / T0CKI entrada entrada I/O entrada RA5/AN4/SS/LVDIN entrada entrada sada OSC2 / CLK1/ RA6 sada I/O

Registrador PORTA

Figura 02O 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 BIT BIT BIT BIT

2 3 4 5 6

do do do do do

registrador registrador registrador registrador registrador

PORTA PORTA PORTA PORTA PORTA

-> -> -> -> ->

atua atua atua atua atua

sobre sobre sobre sobre sobre

o o o o o

bit bit bit bit bit

RA2 RA3 RA4 RA5 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 TRISAO 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 BIT BIT BIT BIT BIT BIT 0 1 2 3 4 5 6 do do do do do do do registrador registrador registrador registrador registrador registrador registrador TRISA TRISA TRISA TRISA TRISA TRISA TRISA -> -> -> -> -> -> -> atua atua atua atua atua atua atua sobre sobre sobre sobre sobre sobre sobre o o o o o o o bit bit bit bit bit bit bit RA0 RA1 RA2 RA3 RA4 RA5 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; PORTA como saida

//configura todos os pinos do

trisb = 0b00001111; //configura somente RB7 a RB4 do PORTB como saida trisa.f0 = 0; //configura pino RA0 como trise.f2 = 1; //configura pino RE2 como dados trisc.f1 = 1; //configura pino RC1 como dados }

os pinos de saida entrada de entrada de

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 PICPara 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

PORTBO PORTB, tal qual o PORTA, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

PINO FUNO TIPO33 RB0 / INT0

DESCRIO

I/O Pino de entrada e sada de uso geral / interrupo entrada externa 0 I/O Pino de entrada e sada de uso geral / interrupo 34 RB1 / INT1 entrada externa 1 I/O Pino de entrada e sada de uso geral / interrupo 35 RB2 / INT2 entrada externa 2 I/O 36 RB3 / CCP2 Pino de entrada e sada de uso geral / mdulo CCP I/O Pino de entrada e sada de uso geral / pino de 37 RB4 I/O interrupo por mudana de nvel Pino de entrada e sada de uso geral (interrupo I/O 38 RB5/PGM por mudana de estado) / pino de habilitao ICSP I/O baixa voltagem Pino de entrada e sada de uso geral (interrupo I/O 39 RB6 / PGC por mudana de estado) / pino ICSP In-Circuit I/O Debugger Pino de entrada e sada de uso geral (interrupo I/O 40 RB7 / PGD por mudana de estado) / pino ICSP In-Circuit I/O 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

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

PINO15

FUNO

TIPO

DESCRIOPino de entrada e sada de uso geral / sada do oscilador timer1 / entrada oscilador timer1 / timer3 Pino de entrada e sada de uso geral / entrada do oscilador timer1 / mdulo CCP2 Pino de entrada e sada de uso geral / mdulo CCP2 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

16 17

I/O RC0/T10S0/T1CKI sada entrada I/O RC1 / T10S1 / entrada CCP2 -sada I/O RC2/CCP1 I/O RC3/SCK/SCL I/O I/O I/O

18

I/O Pino de entrada e sada de uso geral / entrada entrada de dados SPI / entrada e sada de dados I2C - I/O I/O - Pino de entrada e sada de uso geral / sada de 24 RC5/SD0 sada dados SPI I/O - Pino de entrada e sada de uso geral / canal de 25 RC6/TX/CK sada - transmisso UART / clock de sincronismo I/O UART I/O - Pino de entrada e sada de uso geral / canal de 26 RC7/RX/DT entrada recepo UART / clock de sincronismo - I/O 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. 23 RC4/SDI/SDA

voltar para o topo da pgina

PORTDO PORTD, tal qual o PORTA, PORTB e PORTC implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

PINO FUNO TIPO 19 RD0/PSP0 I/O -

DESCRIO entrada e sada de uso geral / porta de

20 21 22 27 28 29 30

RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7

I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O

comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela entrada e sada de uso geral / porta de comunicao paralela 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

PORTEO PORTE, tal qual as outras portas, implementa diversas outras funes multiplexadas aos seus pinos, acompanhe:

PINO FUNO TIPO8 9 10 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 I/O I/O I/O

DESCRIOPino de entrada e sada de uso geral / controle de leitura do port paralelo / entrada analgica AD5 Pino de entrada e sada de uso geral / controle de escrita do port paralelo / entrada analgica AD6 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 mikroCManipulando 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

IntroduoO 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 LibraryBibliotecas ANSI C Standard

ANSI C Ctype Library ANSI C Math Library ANSI C Stdlib Library ANSI C String LibraryOutras bibliotecas

Conversions Library Trigonometry Library sprint Library Setjmp Library Time Library voltar para o topo da pgina

Conhecendo o mikroCVamos 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 arquivosfontes e configuraes ao nosso projeto.

voltar para o topo da pgina

Criao de um projeto no mikroCPara 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 leituras, determinar os tipo de oscilador utilizado no projeto, dentre outras. Podemos nomear e salvar as configuraes dos bits de configurao aps termos configurados todos seus bits, pois dessa forma no precisaremos reconfigurar esses bits a cada criao de um novo projeto, basta apenas carregar as configuraes j salvas anteriormente. Repare que cada modelo de microcontrolador possui um painel diferente de bits de configurao. Estudaremos mais detalhado a funo de cada um dos fusveis mais adiante em nosso curso;

Aps ter configurado todos os parmentros e campos, basta clicar no boto ok para salvar seu projeto. Pronto, nosso projeto est pronto e podemos inserir os cdigos do programa no editor.

voltar para o topo da pgina

Conhecendo o ambiente mikroCObserve o ambiente mikroC na figura abaixo:

Figura 03O compilador mikroC permite o desenvolvimento rpido de aplicaes complexas graas aos recursos do editor avanado Code Editor. Alm disso, permitido utilizar as bibliotecas includas na linguagem para aumentar a velocidade e a facilidade de desenvolvimento dos projetos como comunicao serial, displays, aquisio de dados, memria, etc. Aps a compilao de nosso programa, o mikroC tambm gera arquivos LIST, cdigo em assembly e arquivo .HEX. Integrado ao compilador, temos um debugador para testes do programa no ambiente.

voltar para o topo da pgina

Code Editor (editor de cdigo)O editor de cdigo do compilador mikroC oferece grandes auxlios no desenvolvimentos de projetos. Alguns aspectos desse editor so: Sintaxe ajustvel Assistentes de parmetros Cdigo modelo Autocorreo para tipos comuns Funo para saltos de linhas. Assistentes de cdigos

voltar para o topo da pgina

Code Assistant (assistente de cdigo)O Assistente de cdigo uma excelente ferramenta disponvel no mikroC, pois o programador no precisa editar todo o cdigo e ainda por cima analisa o formato da constuo do comando;

Figura 04Para acion-lo, digite as primeiras letras e pressione CTRL + SPACE que aparecer uma janela informando os comandos associados s letras digitadas.

voltar para o topo da pgina

Parameter Assistant (assistente de parmetro)O assistente de parmetro usado para auxiliar o programador a redigitar alguns parmetros do programa;

Para acion-lo, basta pressionar as teclas CTRL + SHIFT + SPACE. voltar para o topo da pgina

Auto Correct (correo automtica)O compilador mikroC possui a opo de correo automtica, corrigindo erros de sintaxe cometido pelo programador. Para corrigir os palavras necessrio que voc adicione as palavras corretas e erradas atravs do menu Tools > Preferences > Auto Correct. As palavras erradas sero substitudas pelas palavras corretas desde que estejam registradas no menu > Auto Correct.

voltar para o topo da pgina

Comment / Uncomment (Comentar / no comentar)

Atravs dessa funo voc poder facilmente adicionar linhas ou blocos de comentrios no seu programa. Basta clicar com o mouse no cone Comment / Uncomment do Code Toolbar.

voltar para o topo da pgina

Goto Line (v para linha)Essa opo aplicada para saltar de uma linha do editor de cdigo para outra. Basta pressionar as teclas de atalho CTRL + G que aparecer uma caixa onde dever ser inserida o nmero da linha que deseja saltar.

Figura 05 voltar para o topo da pgina

Messages Window (janela de mensagens)Nos casos de erros encontrados durante a compilao, o compilador reporta o erro e no gera o arquivo .hex. Alm disso, o Message Window informa o tamanho do cdigo de programa (ROM) gerado pelo sistema, assim como a memria de dados (RAM) usada pelo programa. Para visualizar a janela de mensagens, v em View > Messages.

Figura 06

voltar para o topo da pgina

Procedures List (Lista de procedimentos)Para visualizar a lista de todos os procedimentos utilizados pelo compilador, selecione View > Procedures List pelo menu ou prossione CTRL + L no teclado.

voltar para o topo da pgina

Project SetupEm Project Setup podemos alterar as configuraes dos projetos criado no mikroC. Para acess-lo pressione Project > Edit Project.

voltar para o topo da pgina

Ferramentas IntegradasO compilador MikroC possui diversas ferramentas que nos auxiliaro no desenvolvimento de nosso projeto. Dentre as ferramentas, encontramos terminais seriais, terminais de comunicao USB, Ethernet, LCD alfanumrico e Grfico, Bootloader, display de 7 segmentos, dentre outros. Para ter acesso a esses painis, acesse o menu Tools.

Figura 07 Vamos conhecer cadas uma das ferramentas do MikroC:

ASCII Chart standartAtravs desse painel podemos visualizar os caracteres presente na tabela ASCII. Os caracteres ASCII so muito utilizados na grande maioria dos programas que fazem comunicao serial e operaes com displays LCD. Repare que ao passarmos o mouse sobre os caracteres, ser nos apresentado o valor do caracterer em ASCII, decimal, hexadecimal e binrio.

Figura 08 - Tabela ASCII Chart

Export Code to HTMLPodemos exportar todo nosso programa desenvolvido para HTML (pgina simples de internet), dessa forma, podemos visualizar e garantir a formatao e tabulao das fontes e linhas de nosso programa.

MikroBootLoaderAlguns modelos de microcontroladores PIC possui internamente uma regio em sua memria de programa denominada Boot. Nesta regio podemos gravar um pequeno programa chamado BootLoader, no qual permite, via um software de PC,

gravar o microcontrolador via PC RS232 < > USART do PIC. A empresa Mikroelektronika disponibilizou o programa de Boot para diversos componentes da famlia PIC16F e PIC18F, que podem ser encontrados na pasta: c:\...\MikroeleKtronica\Mikro_c\Examples\EasyPic5\extra_examples\Bootloader

Figura 09 - MikroBootLoader O sistema de Bootloader so altamente utilizados em equipamentos que permitem atualizao de verses do programa do microcontrolador, tais como CLP. Nota: Existe vrios programas de bootloader para microcontroladores PIC na internet. Digite bootloader PIC no google (www.google.com.br) para conhecer um pouco melhor sobre o tema.

USART TerminalO mikroC possui uma excelente ferramenta para recepo e envio de dados seriais via RS232, o Comunication Terminal (terminal de comunicao). Para acess-lo, clique no menu Tools > USART Terminal ou no cone terminal que fica na Toolbar.

Figura 10 - Terminal Serial RS232Para configur-lo muito fcil e simples; basta escolher a porta de comunicao serial atravs do Settings Com Port, definir a velocidade de comunicao em Settings Baud, os bits de dados e a paridade. Aps este procedimento, clique em Connect COM para que a porta seja aberta. Todos os caracteres recebidos e enviados sero mostrados na caixa de texto maior da janela. Para enviar algum dado, basta digit-lo na caixa de texto ao lado do boto send e pressionar send.

Seven Segment Display Decoder (Decodificador de 7 segmentos)O decodificador de 7 segmentos uma ferramenta simples que permite descobrir os valores decimais ou hexadecimais correspondente ao dgito do display desejado. Basta clicar com o mouse na imagem do display para visualizar os valores em ctodo e nodo comum. Esta ferramenta muito importante quando acionamos displays de 7 segmentos por varredura.

Figura 11 - Decodificador 7 segmentos

Graphic LCD Bitmap Generator (gerador de imagem para LCD Grfico)Esta ferramenta do mikroC gera cdigo hex. de uma imagem BMP para utilizar em display grficos.

Figura 12 - Painel de display GrficoSua utilizao muito simples, permite que utilizemos LCD's grficos com controladores T6963C e com Drives KS0108. Basta clicar no boto Load BMP Picture para carregar a imagem BMP.

LCD Custom CaractererEm muitas aplicaes, precisamos criar novos caracteres e simbolos em nosso display LCD alfanmerico (lcd 16x1, 16x2, 20x4, dentre outros). Para que possamos "desenhar" estes novos caracteres, faz necessrio acessarmos a rea de memria editvel do LCD: a CGRAM. O compilador MikroC disponbiliza uma excelente ferramenta que iro acelerar e muito o desenvolvimento de nosso programa para esta aplicao, pelo qual podemos ter acesso a ela via menu Tools > LCD custom character.

Figura 13 - Ferramenta de cria