Apostila Curso Pic Microgenios c
-
Upload
marcisio-souza -
Category
Documents
-
view
232 -
download
5
Transcript of Apostila Curso Pic Microgenios c
-
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:
-
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:
-
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