Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
Aluno: luno:
Data Data::
Docente:
Turno:
1) ! "ue # um microcontrolador$ %&pli"ue a diferença entre microcontrolador e microprocessador'
Pode odemos mos def defnir nir o mic micro rocon contr trola olador dor com como o um "pe "peque queno" no" com compon ponent ente e eletrônico, dotado de uma "inteligência" programável, utilizado no controle de processos lógicos. O controle de processos deve ser entendido como o controle de peri!ricos, tais como led#s, $ot%es, displa&'s de cristal l(quido *+), resistências, relês, sensores diversos press-o, temperatura, etc.) e muitos outros. -o c/amados de controles lógicos pois a opera0-o do sist si stem ema a $as asei eia ase se na nass a0 a0% %es ló lóg gic icas as que dev evem em se serr e2ec ecut utad adas as,, dependendo do estado dos peri!ricos de entrada e3ou sa(da. 4m microcontrolador diere de um microprocessador em vários aspectos. Prim Pr imeir eiro o e o ma mais is im impo port rtan ante te,, ! a su sua a u unc ncio iona nali lida dade de.. Par ara a qu que e um microprocessador possa ser usado, outros componentes deveml/e ser adicionados, tais como memória e componentes para rece$er e enviar dados. 5m resumo, isso signifca que o microprocessador ! o verdadeiro cora0-o do computador. Por outro lado, o microcontrolador oi pro6ectado para ter tudo num só. 7en/uns outros componentes e2ternos s-o necessários nas aplica0%es, uma um a ve vezz qu que e to todo doss os pe peri ri! !ri rico coss ne nece cessá ssári rios os 6á es estt-o o co cont ntid idos os ne nele le.. 8ssim, nós poupamos tempo e espa0o na constru0-o dos dispositivos. 9) (ostre e descreva os tipos de mem)rias utilizadas em microcontroladores' •
•
• •
ROM: somente de leitura' *eralmente c+amada de mas,ed-.!( /mas,ed 0 ROM: somente mascarado12 e gravada pelo fabricante do componente2 o "ue em "uantidades muito grandes reduz custos' EPROM: ap apaga agave vell atr atrave aves s de luz ult ultrara-vio violet leta a /me /memor morias ias 34a 34anel nelada adas51 s51'' Utiliz Uti lizada ada no pro proce cesso sso de des desenv envolv olvimen imento to e alg alguma umas s vez vezes es no pro produt duto o acabado2 "uando +a a necessidade de se poder alterar o soft6are' OTP: programavel OTP: programavel somente uma vez2 utilizada em producao' Flash: e uma memoria eletricamente apagavel /%%P.!(1 com tempos de Flash: acesso para leitura rapido' !ferece uma grande fle&ibilidade2 pois geralmente e possivel reprogramar um e"uipamento sem retirar o microcontrolador da placa pla ca /gr /grava avacao cao inin-cir circui cuit1' t1' Al Alem em dis disso2 so2 alg alguns uns mod modelo elos s per permit mitem em "ue o microcontrolador altere sua propria memoria de programa'
7
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
:) 8uantos ciclos de cloc, no total são gastos para realizar a busca e e&ecução de uma instrução$ Para a família PIC, cada ciclo de instrução dura quatro pulsos de clock. Os microcontroladores PIC fazem uso do pipeline para aumentar a velocidade de execução das instruções. Pipeline é uma técnica utilizada pelos processadores mais modernos e consiste em dividir a execução das instruções em partes e cada uma destas partes pode ser executada em paralelo em um formato semelante a uma lina de monta!em de carros. "o caso dos microcontroladores PIC pode#se visualizar a execução das instruções como sendo dividida em dois est$!ios% &usca ' fetch( e executa 'execute(, onde cada est$!io !asta ) ciclos de cloc*. O pipeline permite que quase todas as instruções possam ser executadas em um ciclo de m$quina, com exceção das que alteram o contador de pro!rama, como camadas de rotinas e seus retornos. "estes casos, o pipeline sofre uma penalidade de um ciclo de clock devendo descartar ' flush, na fi!ura +( a instrução que $ avia sido &uscada para então carre!ar a instrução no endereço correto, consumindo, portanto, dois ciclos de instrução '-O/0, 1222, p! 3(. 0 fi!ura 4 '506IC, 1222, p! 4+( mostra o fluxo das instruções no pipeline em um pequeno treco de um pro!rama escrito em assembly.
7i!ura 4% Pipeline de um treco de c8di!o
"o ciclo 2, o c8di!o da instrução 5O9:; << é &uscado da mem8ria 'desconsiderando a instrução que é executada neste ciclo(. "o ciclo 4, a instrução 5O9:; << é executada e a instrução 5O9;7 PO=6> é &uscada da mem8ria. "o ciclo 1 a instrução 5O9;7 PO=6> é executada e é &uscada da mem8ria a instrução C0:: ->?4. 0 camada da surotina ->?4 e a leitura da instrução >-7 PO=60, >I6@ são feitas no ciclo @. Como a instrução >-7 PO=60, >I6@ não é a que ser$ executada no momento e sim a primeira instrução da surotina ->?4, deve ser feita outra &usca de instrução. Asta situação mostra porque as instruções de camada de surotina consomem dois ciclos de m$quina, $ que a instrução >-7 PO=60, >I6@ ter$ que ser lida novamente ao término da surotina. O ciclo ) é usado somente para ler a primeira instrução da surotina e nenuma instrução é executada. 0 primeira instrução da surotina é então executada no ciclo <.
9
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
;) ! "ue # uma porta de I:!$
Funções de Entrada e Saída de dados digitais (I/O) < Um pino pode possuir dois estados ( 0 ou 1, alto ou baixo, 0 ou 5V) < Para aumentar sua funcionalidade, os mesmos pinos podem ser usados tanto como saída quanto como entrada. < Para definir um pino de uma porta como entrada ou saída, é preciso definir os bits do reistrador !"#$ como 1, para entrada, ou 0, para saída. < %ada pino tem o seu reistrador !"#$ correspondente.
=) ! "ue significa PIC e internamente "uais mem)rias ele possui$ > o nome que a ?icroc/ip adotou para a sua am(lia de microcontroladores, sendo que a sigla signifca Controlador Integrado de Periféricos . O PIC ! um circuito integrado produzido pela ?icroc/ip @ec/nolog& Anc., que pertence da categoria dos microcontroladores, ou se6a, um componente integrado que em um Bnico dispositivo contem todos os circuitos necessários para realizar um completo sistema digital programável. Uma mem)ria PROM /Programmable .ead !nl; (emor; ou (em)ria Programavel Somente para
veis utilizadas pelo programa'
C) Para "ue serve o (Plab$ ! (prio pode e&ecutar todos os procedimentos relativos ao desenvolvimento de um soft6are para o PIC /edição2 compilação2 simulação2 gravação12 tornando o trabal+o do pro4etista mais produtivo' %ste programa # totalmente gratuito e pode ser pego no site 666'microc+ip'com'
Edição
O ?p*a$ possui um editor de te2to para seus programas que possui diversas erramentas de au2(lio como localizar, su$stituir, recortar, copiar e colar. Compilação
+ompilar signifca traduzir um programa escrito em assem$l& mneumônicos) para linguagem de máquina nBmeros). 8 compila0-o gera um arquivo com e2tens-o ./e2 /e2adecimal) a partir dos arquivos de código onte .asm) e de pro6eto .p6t). > o conteBdo do arquivo /e2adecimal que ! gravado na memória de programa do PA+.
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
Simulação
O ?p*a$ possui erramentas para simula0-o do programa no próprio computador, possi$ilitando a e2ecu0-o passo a passo, visualiza0-o e edi0-o do conteBdo dos registradores, edi0-o de est(mulos entradas), contagem de tempo de e2ecu0-o, etc. Gravação
Para que o programa se6a e2ecutado no microcontrolador, o arquivo /e2adecimal deve ser gravado no PA+. O ?p*a$ oerece suporte aos gravadores a$ricados pela ?icroc/ip. Emulação
8 5mula0-o ! um recurso de desenvolvimento que possi$ilita testes em tempo real. O ?p*a$ oerece suporte ao /ardDare necessário para estar emulando um determinado programa. 5sta emula0-o ! eita conectandose atrav!s do /ardDare mencionado) o computador ao sistema pro6etado, no lugar do PA+ E) ?escreva cinco caracterBsticas do PIC 7FDEEA' •
• • •
•
• • • •
•
•
?icrocontrolador de ;F pinos, o que possi$ilita a montagem de um /ardDare comple2o e capaz de interagir com diversos recursos e un0%es ao mesmo tempo. :: portas confguráveis como entrada ou sa(da. 1= interrup0%es dispon(veis. ?emória de programa0-o 5GPHO? I*8J, que permite a grava0-o rápida do programa diversas vezes no mesmo c/ip, sem a necessidade de apagálo por meio de luz ultravioleta, como acontece nos microcontroladores de 6anelaK ?emória de programa com LMDoeds, com capacidade de escrita e leitura pelo própio código internoK ?emória 5GPHO? n-o volátil) interna com 9=C $&tesK ?emória H8? com :CL $&tesK @ês timers 92L$its e 121C $its)K +omunica0%es seriais PA, AG+ e 48H@K+onversores analógicos de 1F $its L2) e comparadores analógicos 92)K +onversores analógicos de 1F $its L2) e comparadores analógicos 92)K ois módulos ++P +apture, +ompare e PN?K
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
L) Na figura abai&o defina a função dos pinos 72 92 72 72 7 e 9
1 - MCR!"## (aster Clear /reset1 e&terno' ! uC s) funciona "uando este pino encontra-se em nBvel alto' $ - RA%! A&% .AG@ I:! digital ou entrada anal)gica ANG 1' - O(C1!C)I& %ntrada para cristal' !sciladores e&ternos/.C1 1* - O(C$!C)O+T SaBda para cristal' !s cristais ou resonadores devem ser ligados aos pinos !SC7 e !SC9' SaBda com onda "uadrada em H da fre"uencia imposta em !SC7 "uando em modo .C' %ssa fre"uncia e"uivale aos ciclos de m>"uina internos' '1 - "ss J
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
*N? '$ - "dd Alimentação positiva
)8ual a diferença entre o osocilador KL e o .C$ O PA+ pode tra$al/ar com quatro confgura0%es de oscilador. 4ma vez que as confgura0%es com um oscilador de cristal e resistência condensador H+) s-o aquelas mais requentemente usadas, elas s-o as Bnicas que vamos mencionar aqui. uando o oscilador ! de cristal, a designa0-o da confgura0-o ! de Q@, se o oscilador or uma resistência em s!rie com um condensador, tem a designa0-o H+. Asto ! importante, porque /á necessidade de optar entre os diversos tipos de oscilador, quando se escol/e um microcontrolador. Oscilador ,T ! oscilador de cristal est> contido num env)lucro de metal com dois pinos onde foi escrita a fre"Mncia a "ue o cristal oscila' ?ois condensadores cermicos devem ligar cada um dos pinos do cristal O massa' Casos +> em "ue cristal e condensadores estão contidos no mesmo encapsulamento2 # tamb#m o caso do ressonador cermico ao lado representado' %ste elemento tem trs pinos com o pino central ligado O massa e os outros dois pinos ligados aos pinos !SC7 e !SC9 do microcontrolador' 8uando pro4etamos um dispositivo2 a regra # colocar o oscilador tão perto "uanto possBvel do microcontrolador2 de modo a evitar "ual"uer interferncia nas lin+as "ue ligam o oscilador ao microcontrolador'
Oscilador RC %m aplicaç=es em "ue a precisão da temporização não # um fator crBtico2 o oscilador .C torna-se mais econômico' A fre"Mncia de ressonncia do oscilador .C depende da tensão de alimentação2 da resistncia .2 capacidade C e da temperatura de funcionamento'
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
O diagrama acima, mostra como um oscilador H+ deve ser ligado a um PA+1CILEE8. +om um valor para a resistência H a$ai2o de 9,9 M, o oscilador pode tornarse instável ou pode mesmo parar de oscilar. Para um valor muito grande H 1?, por e2emplo), o oscilador tornase muito sens(vel R umidade e ao ru(do. > recomendado que o valor da resistência H este6a compreendido entre :M e 1FFM. 8pesar de o oscilador poder tra$al/ar sem condensador e2terno + S F pI), ! conveniente, ainda assim, usar um condensador acima de 9F pI para evitar o ru(do e aumentar a esta$ilidade. ualquer que se6a o oscilador que se está a utilizar, a reqTência de tra$al/o do microcontrolador ! a do oscilador dividida por quatro. 8 reqTência de oscila0-o dividida por ; tam$!m ! ornecida no pino O+93+*MO4@ e, pode ser usada, para testar ou sincronizar outros circuitos lógicos pertencentes ao sistema. 1F) ! "ue # uma I?%$ AMIE&TE I&TE.RADO DE DE(E&"O"IME&TO /IDE0
+omo am$iente de desenvolvimentos será usado o compilador P+NJ da ++. 5ste ! constitu(do de um A5 gráfco que pode ser e2ecutado em qualquer plataorma NindoDs. 5ste am$iente permitirá uma programa0-o dos PA+s em linguagem +. 52iste a possi$ilidade de se azer uma integra0-o com o am$iente ?P*8U da própria microc/ip. +omo vantagem do uso desse compilador podese citar a grande efciência do código gerado, compati$ilidade com o padr-o 87A e AO salvo algumas e2ce0%es e a sua grande diversidade de un0%es e $i$liotecas desenvolvidas em linguagem +. O o$6etivo ! a compreens-o do am$iente de programa0-o e da seqTência para poder criar um novo pro6eto usando o ?p*a$ como editor e o ++ como compilador. 11) ?ado o programa abai&o comente as lin+as em negrito /"ual a função dela no E
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
circuito1' include use dela2/cloc34*%%%%%%5 RE(TART67DT0 fuses &t2no6dt2noprotect2put2bro6nout2nolvp2nocpd2no6rt use fastQio/a1 use fastQio/b1 use fast6io/c0 use fastQio/d1 use fastQio/e1 b;te porta 0 G&GJ b;te portb 0 G&G b;te portc 0 G&GE 82te #ortd 4 %9% b;te porte 0 G&GR 8it 8otao 4 #ort8;% bit led 0 portb'7 void main /1 setQtrisQa/Gb777777771T setQtrisQb/Gb77777GG71T set6tris6c/%8111111110< setQtrisQd/Gb777777771T setQtrisQe/GbGGGGG7771T porta0G&GGT portb0G&GGT #ortc4%9%%< portd0G&GGT porte0G&GGT =hile/TR+E0 > .%SLA.LQ?L/1T if/?8otao0 led 4 1< else led4%< V V use dela2/cloc34*%%%%%%5 RE(TART67DT0 A se"uncia use especifica uma diretiva interna do compilador' A"ui # determinado o valor de (Wz para a fre"Mncia do cloc,' RE(TART67DT .eset no Natc/dog timer D
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
Se 6atc+ dog timer esta ativado2 neste caso ser> necess>rio resetar o ?L para "ue o PIC não se4a resetado e comece a ser e&ecutada a primeira lin+a do programa''
Wat!dog timer ou c-o de guarda ! um recurso poderos(ssimo que deve
ser utilizado. > um contador automático incrementado por meio de um oscilador próprio, independente do oscilador principal. +aso o N@ estoure, um reset do sistema irá ocorrer imediatamente. use fast6io/c0
8eta como o compilador gerará código para as instru0%es de entrada ou sa(da que seguem. 5sta diretiva tem eeito at! que uma nova diretiva Vuse 2222WAO se6a encontrado. 5ste m!todo rápido de confgura0-o de confgura0-o de A3O a confgurar corretamente a dire0-o de A3O usando a instru0-o setWtrisWQ). 82te #ortd 4 %9%
7o data s/eet do PA+ 1CILEE8 podemos o$servar que as portas a,$,c,d,e est-o associados a um endere0o de memória. epois destas lin/as as portas ter-o como identifcador as variáveis port a, port $ at! port e. 8it 8otao 4 #ort8;% As entradas devem ser associadas a nomes para facilitar a programação e futuras alteraç=es do +ard6are' ?e a"ui em diante podemos nomear o pino portb'G como botão por e&emplo' set6tris6c/%8111111110< %sta função permite direcionar as I:!' ?eve de ser usado com o comando 3fastQio5 e "uando as portas de I:! estão acessBveis2 para isto deve ser usada a diretiva XYL% para o acesso da porta' Cada bit no valor representa um pino' ! 375/um1 representa entrada e o zero saBda' %&emplo@ S%LQL.ISQX/ G&GF 1T similar a S%LQL.ISQX/ GbGGGG7777 1 :: XE2X2XJ2X are outputs :: X2X92X72XG are inputs #ortc4%9%%<
Anicializando as portas, todos os pinos das portas na e2ecu0-o destas lin/as tomar-o o valor de zero ou desligado. =hile/TR+E0 > %ste # um comando de controle utilizado na repetição de um determinado bloco de instruç=es' %sse bloco ser> repetido en"uanto a avaliação da condição especificada entre parnteses for verdadeira' No caso2 a avaliação # e&plicitamente verdadeira /true1' ! bloco de instruç=es "ue ser> repetido # a"uele especificado dentro das c+aves "ue seguem o comando 6+ile' R
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
if/?8otao0 led 4 1< else led4%<
O comando i em português XseY) ! utilizado para avaliar a condi0-o que esta entre parênteses. 5m caso de que esta condi0-o se6a verdadeira o comando seguinte será e2ecutado. 5m caso de ser alsa else) o comando depois da instru0-o XelseY será e2ecutado. 7este e2emplo o a variável $ooleana $ot-o esta negada Z$otao) quer disser se o $ot-o estivesse em estado zero a condi0-o será alsa e o led será igual a 1. 5m caso que o $ot-o se6a 1 a condi0-o será alsa e o led será igual a zero.
19) ?ese4a-se acender o <%? se a c+ave SP?L estiver em nBvel l)gico alto /71 e apag>-lo se estiver em nBvel l)gico bai&o /G1' %screva o c)digo usando a linguagem C para PIC
7G
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
includeZ7fDEEa'+[ :: Ane&a ao programa o ar"uivo 7FDEEA'+ use dela;/cloc,0GGGGGG1 :: Utiliza um cloc, de (Wz para o para o microcontrolador fuses N!P.!L%CL :: ?ispositivo sem proteção para leitura da eeprom fuses N!?L :: atc+ dog desabilitado fuses N!<\P :: gravação em alta tensão desligada fuses WS :: !pera com cristal acima de (Wz fuses N!X.!N!UL :: Não resseta o c+ip se a tensao cair abai&o de \ :: ! programa main / 1 6+ile/71 :: alta /led aceso1 else :: Senão outputQlo6/pinQbG1T :: A saBda pinQXG ser> bai&a /led apagado1 V V
1:) ?ese4a-se "ue toda vez "ue a c+ave SP?L estiver em nBvel l)gico alto /71 o <%? ficar> piscando num intervalo de JGms e se a c+ave estiver em nBvel l)gico bai&o /G1 o <%? ficar> apagado'
includeZ7fDEEa'+[ :: Ane&a ao programa o ar"uivo 7FDEEA'+ use dela;/cloc,0GGGGGG1 :: Utiliza um cloc, de (Wz para o para o microcontrolador fuses N!P.!L%CL :: ?ispositivo sem proteção para leitura da eeprom fuses N!?L :: atc+ dog desabilitado fuses N!<\P :: gravação em alta tensão desligada fuses WS :: !pera com cristal acima de (Wz fuses N!X.!N!UL :: Não resseta o c+ip se a tensao cair abai&o de \ :: ! programa main / 1 int tempo07GGT :: ?eclara uma vari>vel tipo inteira de D bits / G a 9JJ1 6+ile/71 ::
Serviço Nacional de Aprendizagem Industrial Centro de Formação Profissional Antônio Urbano de Almeida CFP AUA Microcontrolador
if/input/pinQaG10071 :: Se a c+ave pinQAG for 7 outputQ+ig+/pinQbG1T :: A saBda correspondente ao pino .XG ser> alta / <%? aceso1 dela;Qms/tempo1T :: Fica aceso por 7GGms outputQlo6/pinQbG1T :: A saBda correspondente ao pinQXG ser> bai&a /<%? apagado1 dela;Qms/tempo1T :: Fica aceso por 7GGms V else :: Senão outputQlo6/pinQbG1T :: A saBda correspondente ao pino pinQXG fica bai&a V V
79