Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Proteus Portugues
Manual Proteus Portugues
Muitos conhecem este poderoso software, ou j escutaram falar, ou j viram exemplos de circuitos simulados nele. Realmente no mundo da simula !o de circuitos eletr"nicos # de tirar o chap#u para software como este. Aos ami$os do forum% http%&&www.forumnow.com.'r&vip&foruns.asp(forum)*+,-. , /ue aconteceu uma oportunidade de al$uns /ue n!o conhecem este poderoso software. A eles /ue $ostam de pro$ramar microcontroladores e tirar suas duvidas # /ue foi dedicado esta p$ina ... 0extos de Arturo Sandoval Bermdez 1r#ditos para a ami$a Prof. Joana pela tradu !o e corre 2es, e sua dedica !o de elevar nossos conhecimentos nesta rea da tecnolo$ia 0odos os exemplos foram tirados da vers!o 6.2, /ue n!o difere muitos dos mais novos, 3tima oportunidade de conhecer um pouco mais so're este software . .. 4oa leitura 5
Introduo. 6 software de desenho e simula !o Proteus 78M # uma ferramenta 9til para estudantes e profissionais /ue desejam acelerar e melhorar suas ha'ilidades para do desenvolvimento de aplica 2es anal3$icas e di$itais. :le permite o desenho de circuitos empre$ando um entorno $rfico no /ual # poss;vel colocar os s;m'olos representativos dos componentes e reali<ar a simula !o de seu funcionamento sem o risco de ocasionar danos aos circuitos. A simula !o pode incluir instrumentos de medi !o e a inclus!o de $rficas /ue representam os sinais o'tidos na simula !o.
6 /ue mais interesse despertou # a capacidade de simular ade/uadamente o funcionamento dos microcontroladores mais populares (PI18, A0M:=>A7R, Motorola, ?@.+, etc.) 0am'#m tem a capacidade de passar o desenho a um pro$rama inte$rado chamado AR:8 no /ual se pode levar a ca'o o desenvolvimento de placas de circuitos impressos.
C.> A forma curta # dar um duplo clicD no ;cone do pro$rama /ue se locali<ado no desDtop.
1IR1EI068 4F8I168
B.! "ircuito B#$ico % & '(e$envolvimento) ! Alimentao de um *+mpada de corrente alterna. +.> Gar um clicD no 'ot!o Pic, (evice$ locali<ado na parte es/uerda da tela de'aixo da tela de explora !o do dia$rama para a'rir a forma do mesmo nome.
C.> Ha janela *i-rarie$ (Parte superior es/uerda) procurar a 'i'lioteca A.I/0, e dar um clicD so're ela.
-.> Ha janela 1-2ect$ escolher o componente A*.034A.13 dando duplo clicD so're o nome.
pode>se o'servar /ue na janela (0/I"0S aparece o nome do componente eleito. 8e for o 9nico componente /ue vai se escolher se pode fechar a forma PicD Gevices, mas se for necessrio mais de um, pode>se continuar escolhendo os componentes necessrios para nosso desenho
*.> Ha mesma 'i'lioteca A.I/0 dar duplo clicD so're o componente *A5P.
..> Iechar a Iorma Pic, (evice$ no 'ot!o padr!o. (A cru< na es/uina superior direita) B.> Gar um clicD na palavra A*.034A.13 da janela (0/I"0S e o'servar /ue aparece o componente na tela de explora !o do circuito.
J.> :xplorar as fun 2es de orienta !o do componente, parte inferior es/uerda da tela.
?.> 1ome ando pela es/uerda pressionar cada um dos 'ot2es de orienta !o. ,.> Ho /uadro de texto se pode introdu<ir um Kn$ulo mas s3 aceita valores de (@L, M&>,@L, M&>+?@L, M&>CJ@L), por isso # melhor diri$ir a orienta !o por meio dos 'ot2es. :ste mesmo /uadro de texto mostra o Kn$ulo atual o'tido ao pressionar os 'ot2es. +@.> Geixar o componente na posi !o inicial. ++.> 1om o componente selecionado dar um clicD na rea de tra'alho, com o /ue se conse$ue colocar o componente na rea de tra'alho.
+-.> 1onfi$urar os componentes da se$uinte maneira. A.> Gar um clicD com o 'ot!o direito so're o componente A*.034A.13. Hotar /ue seu contorno troca para vermelho.
4.> Gar um clicD a$ora com o 'ot!o es/uerdo para a'rir a forma 0dit "omponent.
1.> Gar um nome ao componente no campo 1omponent Reference (A1+), P"r o valor do componente no 1omponent 7alue (+C7), Modificar o valor da amplitude para (+C7) e a fre/NOncia para @..P<. d.> Pressionar o 'ot!o 6Q. :.> 7erificar os valores do componente *A5P e se o valor da volta$em corresponder com o do A*.034A.13, n!o # necessrio reali<ar nenhuma modifica !o. Pressionar 6Q.
+*.> Reali<ar a conex!o dos componentes da se$uinte forma% A.> 1olocar o ponteiro do mouse no extremo superior do A=0:RHA06R. Aparece uma cru< no extremo da flecha. 4.> Gar um clicD para ha'ilitar a conex!o por meio de ca'o. 1.> Geslocar o mouse (desaparece a cru<) at# o extremo superior do componente =AMP e o'ter /ue volte a aparecer a cru< no extremo da flecha. d.> Gar outro clicD para reali<ar a conex!o.
:.> Repetir os passos anteriores para a pare inferior dos componentes. 3e$ultado
:ste # o procedimento padr!o para conectar /ual/uer componente com o /ue se tra'alhe no pro$rama. +..> Provar o funcionamento do circuito pressionando o 'ot!o plaR /ue se encontra na parte inferior da tela.
+B.> Para aproximar o circuito e poder o'servar melhor a simula !o se pode recorrer aos controles de <oom.
4.> Incrementar a aproxima !o. 1.> Gecrementar a aproxima !o. d.> 7er a folha completa. :.> 7er uma rea selecionada Esar a ferramenta para ver uma rea selecionada dando um clicD
Esando o cursor modificado pressionar o 'ot!o es/uerdo no extremo superior es/uerdo do circuito armado e sem soltar o 'ot!o formar um retKn$ulo /ue contenha todo o circuito, por 9ltimo soltar o 'ot!o. :ste procedimento se pode usar para aproximar partes de um circuito de maior tamanho. +J.> Pa'ilitar as cores de volta$em e as flechas de corrente do circuito para completar as simula !o. A.> In$ressar no menu 8Rstem e selecionar Set Animation 1ption$... para a'rir a forma Animated "ircuit$ "onfiguration.
4.> Pa'ilitar as casinhas 8how Sire 7olta$em 'R 1olour( e 8how Sire 1urrent with Arrows(. 1.> Pressionar 6Q. +?.> 7oltar a simular o circuito e o'servar o /ue ocorre. +,.> 8alvar o circuito. A.> 8elecionar a ferramenta 8ave current desi$n.
4.> Gar um clicD no 'ot!o criar uma nova pasta e lhe dar o nome de 1urso Proteus.
1.> In$ressar na pasta proteus e criar dentro desta, uma pasta com o nome :xerc;cio +.
-.> Ga janela *i-rarie$ selecionar A0I7: e na janela 6'jects escolher os componentes% > 4A00:RT > =AMP > 8SI01P
Modificar os valores dos componentes se for necessrio. ..> :xecutar a simula !o do circuito e testar o funcionamento do interruptor. Gando clicDs com o 'ot!o es/uerdo nas flechas acima > a'aixo do interruptor. B.> 8alvar o ar/uivo. A.> Pressionar 8ave current desi$n. 4.> 8air da pasta do :xerc;cio +. (8u'ir um n;vel) 1.> dentro da pasta de 1urso Proteus, criar uma nova pasta com o nome :xerc;cio C. d.> In$ressar na pasta :xerc;cio C e dentro dela salvar o ar/uivo com o nome :xerc;cio C.
(.! "ircuito B#$ico %7 '(e$envolvimento) ! Bateria ! Potenciometro ! *ampada. +.> Gar um clicD em "reate a 4e6 (e$ign. C. Pressionar o 'ot!o Pic, (evice$. -.> Ga janela *i-rarie$ selecionar A0I7: e na janela 6'jects escolher os componentes% > 4A00:RT > =AMP > P60>=IH
..> :xecutar a simula !o do circuito e provar o funcionamento do potenciometro. 1om o ponteiro do mouse dar clicD nas flechas para aumentar ou diminuir a resistOncia. B.> 8alvar o ar/uivo. A.> Pressionar 8ave current desi$n. 4.> 8air da pasta do :xerc;cio C. (8u'ir um n;vel) 1.> dentro da pasta de 1urso Proteus, criar uma nova pasta com o nome :xerc;cio -. d.> In$ressar na pasta :xerc;cio - e dentro dela salvar o ar/uivo com o nome :xerc;cio -.
0.! Adicionar in$trumento$ de medida a um circuito. Esando o circuito anterior fa<er o se$uinte% A.> Ga 'arra superior de ferramentas selecionar 7irtual Instruments.
4.> Gar duplo clicD com o 'ot!o no ca'o /ue une o potenciometro e a lampada para deixar espa o a um amper;metro. 8e for necessrio mover um pouco a lampada para a direita.
H60A% Para mover um componente na rea de tra'alho se reali<am os se$uintes passos% I.> Gar um clicD com o 'ot!o direito so're o componente /ue se deseja mover. iI.> Pressionar o 'ot!o es/uerdo so're o componente e sem soltar arrastar o componente U posi !o desejada.
1.> Ga janela I4S.38504.S ao lado es/uerdo da tela selecionar com um clicD es/uerdo o instrumento(" A550.03.
d.> Gar um clicD na rea de tra'alho entre o potenci"metro e a lKmpada, e conectar os componentes para o'ter o se$uinte circuito.
:.> 8elecionar o instrumento (" /1*.50.03 da janela I4S.38504.S. I.> 1olocar na rea de tra'alho da mesma forma /ue o instrumento anterior para o'ter o se$uinte circuito.
V.> :xecutar a simula !o do circuito. P.> 8alvar o circuito. 1omo j tinha sido salvando o ar/uivo j n!o # necessrio trocar de diret3rio ou nomear o ar/uivo. H60A% para voltar h ha'ilitar a janela (0/I"0S pressionar, na 'arra de ferramentas, "omponent.
=.! "ircuito B#$ico %6 ! "ircuito com doi$ interruptore$ para controle em dua$ dire>e$.
P31.08S /S5 2
I.! "ircuito B#$ico %@ ! "ontrole de direo de um motor "(.
6 motor se encontra na 'i'lioteca A.I/0 e ter /ue selecionar o /ue s3 tem o nome 51.13. 6s interruptores tam'#m se encontram na 'i'lioteca A.I/0 e seu nome # S?!(P(..
C.! 0DercBcio$
P31.08S /S5 7
3e$i$tHncia E (0/I"0 '30S) (iodo E (0/I"0 '(I1(0) B.! 3etificador de 5eia 1nda.
"APA"I.13 E A".I/0 '"APA"I.13) .rocar a$ caracterB$tica$ do$ amperBmetro$ ao 5A. 0 provar a re$oluo com a$ outra$ fila$. ".! 3etificador de onda completa u$ando uma Ponte 3etificadora.
GGGAtivao (ireta.
GGG 8$ando um capacitor e re$i$tor para criar um retardo de tempoL a$$im como um -oto como re$et do circuito.
"ircuito Inver$or
A!I4P8. E A".I/0 '*1;I"S.A.0) B!I4P8. E A".I/0 '*1;I"S.A.0) N!18.P8. E A".I/0'*1;I"P31B0'BI;)) A4( E A".I/0 'A4()
13 E A".I/0 '13)
C.! =a-ilitao do compilador PI" BASI" P31. I.> In$ressar no menu 8ource.
*.! Prova de funcionamento do programa B*I4C. faz!$e pi$car um led conectado a P13.B.J
5I"31 'PI"&69A:A) A".I/0 '*0(!30() II.! Salvar o circuito em uma pa$ta com o nome Blin, e nomear ao arquivo Blin,. III.! "opiar o $eguinte teDto ao 41.0PA( do ?indo6$ e $alva!lo em uma arquivo de teDto com o nome Blin,.-a$ dentro da pa$ta Blin,. XPro$rama de Xcada se$undo. loop% Pause =ow Pause Voto Xpiscando. :nd I/.! Ingre$$ar no menu Source. loop exemplo Pi$h .@@ P6R04.@ .@@ XRetorna XRetardo ao loop /ue fa< piscar a um XAcende de XApa$a de e o =:G conectado o .. o .. =:G a P6R04.@ =:G se$undos =:G se$undos fica
P6R04.@ XRetardo
41.A Para que funcione todo o anterior deve Saver!$e incluBdo no PA.= do $i$tema ?indo6$ a rota T pa$ta " UPBP2::L i$to $e con$egue editando o arquivo A8.10O0".BA.L no que $e adiciona ao final do PA.= eDi$tente. Para o ?indo6$ 2JJJ e OP o procedimento V diferente. tem!$e que ingre$$ar na forma SW$temL $elecionar 1p>e$ Avanada$ e ter# que declarar uma nova vari#vel de entorno. 0$te pendente verificar e$te$ pa$$o$.
O.! 4o menu Source e$colSer Build All. Se tudo e$ta correto deve aparecer a $eguinte 2anela a qual $e pode fecSar pre$$ionando "*1S0.
OI.! (ar clic, com o -oto direito $o-re o microcontrolador e depoi$ outro com o e$querdo para a-rir a forma de configurao.
OII.! (ar um clic, com o -oto e$querdo no Bcone que mo$tra uma pa$ta a-erta 'que marca o ret+ngulo vermelSo). OIII.! Selecionar o arquivo Blin,.SeD.
OI/.! A2u$tar a freqIHncia do relPgio a :5=z no campo Proce$$or "loc, 9recuencW. O/.! Pre$$ionar 1C. O/I.! 0Decutar a $imulao.
P31.08S /S5 :
5.! 0Demplo$ com microcontroladore$ Pic da 5I"31"=IP. I.! 5icrocontrolador PI"&69A: com doi$ *0(S.
"omponente$
(0/I"0 '"AP) E 77p9 (0/I"0 '"3KS.A*) E :5=z (0/I"0 '30S) E &J,L &2JL &2J (0/I"0 '"AP!0*0") E &Ju9
5I"31 'PI"&69A:A) A".I/0 '*0(!;3004) A".I/0 '*0(!30() A alimenta !o e o terra para este circuito se encontre dentro do Inter>8heet 0erminal da 'arra de ferramentas.
A84% 06VV=: P6R0A.@ 06VV=: P6R0A.+ PAE8: .@@ V606 A84 :HG GGG Provar o $eguinte circuito
Programa
0RI8A ) @ =6S P6R0A.@ PIVP P6R0A.+ =6S P6R0A.C A84% 06VV=: P6R0A.@ 06VV=: P6R0A.+ 06VV=: P6R0A.C PAE8: +@@@ V606 A84 :HG iI.! "ircuito com interruptore$ de 2 po$i>e$.
Programa 0RI84 ) Y++++++++ 0RI8A ) @ 8S8 7AR 4T0: 6P0I6HZR:V ) @ A84% 8S8 ) P6R04 [ Y@@@@+++@
8:=:10 1A8: 8S8 1A8: Y+++@ =6S P6R0A.@ 1A8: Y++@@ PIVP P6R0A.@ 1A8: Y+@+@ PIVP P6R0A.@ 1A8: Y+@@@ =6S P6R0A.@ 1A8: Y@++@ PIVP P6R0A.@ 1A8: Y@+@@ =6S P6R0A.@ 1A8: Y@@+@ =6S P6R0A.@ 1A8: Y@@@@ PIVP P6R0A.@ :HG 8:=:10 PAE8: +@@ V606 A84 :HG iII.! 8$o do *"( AlfanumVrico e ativao de uma carga de corrente alterna por meio de um tran$i$tor e um rele.
"omponente$
BIP1*A3 '242222) (ISP*AK '*5J&6*) Programa X 8et =1G Gata port G:IIH: =1GZGR:V P6R0A X8et startin$ Gata 'it (@ or *) if *>'it 'us G:IIH: =1GZG4I0 @ X 8et =1G Re$ister 8elect port G:IIH: =1GZR8R:V P6R0A X 8et =1G Re$ister 8elect 'it G:IIH: =1GZR84I0 * X 8et =1G :na'le port G:IIH: =1GZ:R:V P6R04 X 8et =1G :na'le 'it G:IIH: =1GZ:4I0 X 8et =1G 'us si<e (* or ? 'its) G:IIH: =1GZ4I08 * X 8et num'er of lines on =1G G:IIH: =1GZ=IH:8 C X 8et command delaR time in us G:IIH: =1GZ16MMAHGE8 C@@@ X 8et data delaR time in us G:IIH: =1GZGA0AE8 .@ 0RI84.+ ) @ A84% =1G6E0 \I:, +, WP6=A A=EMH6W PAE8: +@@@
=1G6E0 \I:, \1@, WPR60:E8W PAE8: +@@@ 06VV=: P6R04.+ V606 A84 :HG i/.! "omunicao $erial entre doi$ microcontroladore$ PI"&69A:.
Programa$ XPicuno.-a$Y
IH1=EG: Wmodedefs.'asW 0RI8A ) C.. A84% 8:R6E0 P6R04.@, 0,B@@, ]W6QRW,P6R0A^ V606 A84 :HG
XPicdo$.-a$Y IH1=EG: Wmodedefs.'asW 0RI8A ) @ A84% 8:RIH P6R04.@, 0,B@@, ]W6QRW^, P6R0A 06VV=: P6R04.+ V606 A84 :HG
41.A modificar o micro utilizado em (efine "ode ;eneration .ool$... dentro do menu Source.
"ircuito
"omponente$
5I"31 'PI"&6962AA) Programa G:IIH: 1M16H ) J 7R16H ) @ X A&G 7olta$e reference disa'led X G:IIH: X 8et startin$ Gata 8et 681 PortA =1G =1GZGR:V 'it (@ * I&6 port P6R04 'us
) Gata or *) if
di$ital
*>'it
G:IIH: X G:IIH: X G:IIH: X G:IIH: X G:IIH: X G:IIH: X G:IIH: X G:IIH: X G:IIH: =1GZGA0AE8 .@ PAE8: C@ =1G6E0 \I:, +, WH6M4R:W A84% V606 A84 :HG 8et
=1GZG4I0 =1G Re$ister 8elect =1GZR8R:V 8et =1G Re$ister 8elect =1GZR84I0 8et =1G :na'le =1GZ:R:V 8et =1G :na'le =1GZ:4I0 =1G 'us si<e (* or ? =1GZ4I08 8et num'er of lines on =1GZ=IH:8 8et command delaR time in =1GZ16MMAHGE8 8et data delaR time in 8et
vi.! 8$o do (i$plaW AlfanumVrico e .eclado. .rocar o tipo de micro da me$ma forma que o circuito anterior para !P&69A@@
Programa G:IIH: 681 C@ XG:IIH: =6AG:RZE8:G + AG16H+ ) J 0RI8: ) @ 0RI84 ) Y@@@@++++ 6P0I6HZR:V ) Y@@@+@+@+ XIH016HC ) Y@@@@@@@@ G:IIH: =1GZGR:V P6R04 G:IIH: =1GZG4I0 * G:IIH: =1GZR8R:V P6R0: G:IIH: =1GZR84I0 @ G:IIH: =1GZ:R:V P6R0: G:IIH: =1GZ:4I0 + G:IIH: =1GZ4I08 * G:IIH: =1GZ=IH:8 C G:IIH: =1GZ16MMAHGE8 C@@@ G:IIH: =1GZGA0AE8 .@ 0ecla var 'Rte I=AV 7AR 4I0 =+ 16H Y@+++@@@@ =C 16H Y+@++@@@@ =- 16H Y++@+@@@@ =* 16H Y+++@@@@@
PAE8: C@ =1G6E0 \I:, +,W=istoW X1lear displaR and show _Preparado` Rastreo% P6R04 ) =+ 8:=:10 1A8: P6R04 [ \@I 1A8: Y+++@ =1G6E0 \I:, +,W6H&1W I=AV ) + 1A8: Y++@+ =1G6E0 \I:, +,W@W I=AV ) + 1A8: Y+@++ =1G6E0 \I:, +,W)W I=AV ) + 1A8: Y@+++ =1G6E0 \I:, +,WMW I=AV ) + :HG 8:=:10 P6R04 ) =C 8:=:10 1A8: P6R04 [ \@I 1A8: Y+++@ =1G6E0 \I:, +,W+W I=AV ) + 1A8: Y++@+ =1G6E0 \I:, +,WCW I=AV ) +
1A8: Y+@++ =1G6E0 \I:, +,W-W I=AV ) + 1A8: Y@+++ =1G6E0 \I:, +,W>W I=AV ) + :HG 8:=:10 P6R04 ) =8:=:10 1A8: P6R04 [ \@I 1A8: Y+++@ =1G6E0 \I:, +,W*W I=AV ) + 1A8: Y++@+ =1G6E0 \I:, +,W.W I=AV ) + 1A8: Y+@++ =1G6E0 \I:, +,WBW I=AV ) + 1A8: Y@+++ =1G6E0 \I:, +,WaW I=AV ) + :HG 8:=:10 P6R04 ) =* 8:=:10 1A8: P6R04 [ \@I 1A8: Y+++@ =1G6E0 \I:, +,WJW I=AV ) + 1A8: Y++@+
=1G6E0 \I:, +,W?W I=AV ) + 1A8: Y+@++ =1G6E0 \I:, +,W,W I=AV ) + 1A8: Y@+++ =1G6E0 \I:, +,W&W I=AV ) + :HG 8:=:10 II I=AV ) + 0P:H PAE8: +.@ I=AV ) @ :HGII V606 Rastreo
Armar o se$uinte circuito% :ste circuito se utili<ou como controle de um inversor monofsico de m9ltiplos pulsos, com fre/NOncia e volta$em varivel. +?I*.C
"omponente$
8alvar o circuito em uma nova pasta s3 para o circuito. Hesta pasta se deve salvar tam'#m o c3di$o fonte $erado com o PI11. Pegar o $eguinte programa em um novo arquivo u$ando PI"". Programa && Inversor @. WIinalW binclude c+?I*.C.hA buse delaR(clocD)C@@@@@@@) bfuses P8,PE0,4R6SH6E0,H6SG0,H6PR60:10,H6=7P, 46R7C@, 807R:H buse fastZio(1) buse fastZio(4) binclude clcd.cA int+B delta ) @, d+ ) @, deltaZ'acD, d+Z'acDd int? volfrec ) @, cuenta ) @, periodo ) @d int+ inicio ) @, arran/ue ) @, fla$+ ) @, fla$C ) @d void cam'io()d bIH0Z:a0 void modo() e if (inicio )) @) e inicio ) +d fla$+ ) +d lcdZ$otoxR(.,C)d lcdZputc(W@@@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@@@W)d f
else e if (input(PIHZ4C) )) +) e if (volfrec c) ++) e volfrec M) +d f f else e if (volfrec A @) e volfrec >) +d f f cam'io()d f f bIH0Z:a0+ void motor() e disa'leZinterrupts(IH0Z:a0+)d inicio ) @d arran/ue ) +d volfrec ) -d cam'io()d f
bIH0Z0IM:R@ void motZarr() e if (volfrec c) ++) e setZtimer@(CB*J-)d volfrec M) +d cam'io()d if (volfrec )) +C) e disa'leZinterrupts(IH0Z0IM:R@)d setupZtimerZ@(R011Z6II)d f f f bIH0Z0IM:R+ void car$aZdelta() e 8:0Z0RI8Z1(@x@@)d 8:0Z0RI8Z4(@xII)d outputZ1(@x@@)d disa'leZinterrupts(IH0Z:a0)d disa'leZinterrupts(IH0Z0IM:R+)d setupZtimerZ+(0+ZGI8A4=:Gg0+ZGI7Z4TZ+)d setZtimer-(d+Z'acD)d setupZtimerZ-(0-ZIH0:RHA=g0-ZGI7Z4TZC)d
ena'leZinterrupts(IH0Z0IM:R-)d periodo M) +d cuenta M) +d if (cuenta )) .) e cuenta ) @d if (fla$C )) @) e fla$C ) +d f else e fla$C ) @d f f outputZlow(PIHZ1@)d outputZlow(PIHZ1+)d ena'leZinterrupts(IH0Z:a0)d f bIH0Z0IM:Rvoid car$aZd+() e disa'leZinterrupts(IH0Z:a0)d disa'leZinterrupts(IH0Z0IM:R-)d setupZtimerZ-(0-ZGI8A4=:Gg0-ZGI7Z4TZC)d
setZtimer+(deltaZ'acD)d setupZtimerZ+(0+ZIH0:RHA=g0+ZGI7Z4TZ+)d if (fla$C )) @) e outputZhi$h(PIHZ1@)d f else e outputZhi$h(PIHZ1+)d f ena'leZinterrupts(IH0Z0IM:R+)d f void main() e portZ'Zpullups(0RE:)d setupZadcZports(H6ZAHA=6V8)d setupZadc(AG1Z6II)d setupZpsp(P8PZGI8A4=:G)d setupZspi(IA=8:)d setupZtimerZC(0CZGI8A4=:G,@,+)d disa'leZinterrupts(IH0Z0IM:R+)d disa'leZinterrupts(IH0Z0IM:R-)d setupZtimerZ@(R011Z6II)d
extZintZed$e(PZ06Z=)d lcdZinit()d lcdZputc(XhfX)d lcdZ$otoxR(C,+)d lcdZputc(WIH7:R86R I0AW)d lcdZ$otoxR(+,C)d lcdZputc(W76=%6II IR:1%6IIW)d setupZtimerZ+(0+ZGI8A4=:Gg0+ZGI7Z4TZ+)d setZtimer+(@x@@@+)d setupZtimerZ-(0-ZGI8A4=:Gg0-ZGI7Z4TZC)d setZtimer-(@x@@@+)d setupZtimerZ@(R011Z6II)d setZtimer@(@x@@@+)d ena'leZinterrupts(V=64A=)d ena'leZinterrupts(IH0Z:a0)d ena'leZinterrupts(IH0Z:a0+)d while(0RE:) e if (inicio )) +) e if (periodo )) +@) e periodo ) @d fla$+ ) @d f if (fla$+ )) @)
e deltaZ'acD ) deltad d+Z'acD ) d+d fla$+ ) +d setZtimer-(d+Z'acD)d setupZtimerZ-(0-ZIH0:RHA=g0-ZGI7Z4TZC)d ena'leZinterrupts(IH0Z0IM:R-)d f f else e if (arran/ue )) +) e disa'leZinterrupts(IH0Z:a0+)d setZtimer@(CB*J-)d setupZtimerZ@(R011ZIH0:RHA=gR011ZGI7Z+C?)d ena'leZinterrupts(IH0Z0IM:R@)d arran/ue ) @d inicio ) +d fla$+ ) @d f f f f void cam'io() e switch (volfrec) e
case @% disa'leZinterrupts(IH0Z0IM:R+)d disa'leZinterrupts(IH0Z0IM:R-)d ena'leZinterrupts(IH0Z:a0+)d outputZlow(PIHZ1@)d outputZlow(PIHZ1+)d fla$+ ) +d lcdZ$otoxR(.,C)d lcdZputc(W@@@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@@@W)d 'reaDd case +% fla$+ ) @d disa'leZinterrupts(IH0Z:a0+)d delta ) B.CCJd d+ ) +.B,@d lcdZ$otoxR(.,C)d lcdZputc(W@+@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@@.W)d 'reaDd case C% delta ) B*,+,d d+ ) *@?*.d lcdZ$otoxR(.,C)d lcdZputc(W@C@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@+@W)d 'reaDd case -% delta ) B*B+@d d+ ) *,--Cd lcdZ$otoxR(.,C)d lcdZputc(W@-@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@+.W)d 'reaDd
case *% delta ) B*-@+d d+ ) .-B.-d lcdZ$otoxR(.,C)d lcdZputc(W@*@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@C@W)d 'reaDd case .% delta ) B-,,-d d+ ) .B-@?d lcdZ$otoxR(.,C)d lcdZputc(W@.@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@C.W)d 'reaDd case B% delta ) B-B?*d d+ ) .?+C,d lcdZ$otoxR(.,C)d lcdZputc(W@B@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@-@W)d 'reaDd case J% delta ) B--JBd d+ ) .,*J-d lcdZ$otoxR(.,C)d lcdZputc(W@J@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@-.W)d 'reaDd case ?% delta ) B-@BJd d+ ) B@.C+d lcdZ$otoxR(.,C)d lcdZputc(W@?@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@*@W)d 'reaDd
case ,% delta ) BCJ.?d d+ ) B+-B,d lcdZ$otoxR(.,C)d lcdZputc(W@,@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@*.W)d 'reaDd case +@% delta ) BC*.@d d+ ) BC@J,d lcdZ$otoxR(.,C)d lcdZputc(W+@@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@.@W)d 'reaDd case ++% delta ) BC+*+d d+ ) BCB??d lcdZ$otoxR(.,C)d lcdZputc(W++@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@..W)d 'reaDd case +C% delta ) B+?-Cd d+ ) B-CC+d lcdZ$otoxR(.,C)d lcdZputc(W+C@W)d lcdZ$otoxR(+*,C)d lcdZputc(W@B@W)d 'reaDd f f
41.A recomenda!$e ta-ular o programa anterior para que $e2a mai$ f#cil $ua leitura.
Para que o programa anterior funcione corretamente V nece$$#rio editar o arquivo *"(." que vem com o PI""L $u-$tituindo a in$truo delaWZcWcle$'&) por delaWZu$'&). 0$te arquivo $e encontra em " UArcSivo$ de programaUPI""U(river$
"arregar o arquivo G.=0O gerado pelo PI""L como $e realizou para o$ microcontroladore PI"&69A: e A@@. A freqIHncia do relPgio deve $er trocada para 2J5=z.
G:7I1: (1AP>:=:1) GI6G: (-:i?7CG.) GI6G: (-:i.7+G.) G:7I1: (R:8) G:7I1: (16HH>G,) MI1R6 (PI1+BI?JJ) A alimenta !o e o terra para este circuito se encontram dentro do Inter>8heet 0erminal da 'arra de ferramentas.
j necessrio eti/uetar o P6S:R como 7GG e o VR6EHG como 788, para /ue se reali<e a conex!o ade/uada com o PI1. As duas terras devem ter a mesma eti/ueta. 0am'#m se re/uer modificar o emcapsulamento do capacitor de +@@uI, o /ue se reali<a da se$uinte forma% Gar clicD direito so're o componente 1AP>:=:1 (+@@uI) W1+W e depois com o es/uerdo para a'rir sua forma de confi$ura !o.
Procurar o 6'jeto (:=:1>RAGC@) da 'i'lioteca PA1QAV: dando um duplo clicD so're o nome do o'jeto. Pressionar 6Q na forma de edi !o do componente. 8alvar o circuito. Ir ao menu 0ools e pressionar Hetlist 1ompiler. Ho mesmo menu pressionar Hetlist to AR:8. 0am'#m se pode pressionar o ;cone de AR:8 /ue se encontra na 'arra de ferramentas. 6 /ual $era a Hetlist e a exporta a AR:8.
6s componentes aparecem do lado es/uerdo da tela, ao parecer n!o serve de nada o ter conectado os componentes no I8I8, mas o /ue acontece # /ue # necessrio colocar os componentes dentro de uma rea /ue represente o tamanho da placa /ue /ueremos criar. Ao ir colocando os componentes se v!o conectando automaticamente. 6 processo de coloca !o manual s3 # necessrio para a/ueles componentes /ue re/uerem um coloca !o especial na placa, j /ue outros componentes se podem colocar em forma automtica usando o Auto Placer, /ue se ver mais adiante. reali<a>se a cria !o do 'orde /ue representa o tamanho da placa a $erar. utili<a>se a ferramenta CG Vraphics 4ox.
Ao dar clicD so're esta ferramenta # poss;vel desenhar uma fi$ura retan$ular usando o 'ot!o es/uerdo do mouse dando um clicD dentro da rea de tra'alho e sem soltar desenhar o retKn$ulo do tamanho desejado. ante$ de realizar o anterior V nece$$#rio e$pecificar em que *aWer queremo$ de$enSar o ret+ngulo. I$to $e e$pecifica na parte inferior da tela e $e deve $elecionar [Board 0dge[.
"om i$to $e o-tVm que o programa A30S po$$a identificar a #rea de tra-alSo e$pecifica em que $e tHm que colocar o$ componente$ e aonde $e tem que levar a ca-o o A8.1 318.03. A cor de$te tipo de ret+ngulo V amarelo.
6 9nico componente /ue # necessrio colocar em forma manual # o G4>, (1onector s#rie), j /ue este deve estar no 'ordo da placa e se o fi<ermos em forma automtica ser colocado em /ual/uer parte. Para selecion>lo voltar a ha'ilitar a janela de componentes pressionando 1omponent placement and editin$.
:ste componente est identificado como Wk+W 1olocar este componente no 'orde direito, como se mostra a se$uir.
Ha fi$ura anterior se pode ver /ue j se reali<aram as conex2es, mas ainda n!o se criaram as pistas correspondentes, s3 parecem unidas com um ca'o direto. 6utra ferramenta /ue facilita o tra'alho # a possi'ilidade de $erar as pistas de forma automtica, utili<ando o AE06 RE0:R. antes de poder utili<ar esta ferramenta # necessrio modificar como v!o se criar as pistas, principalmente a $rossura e em /ue lado da placa v!o aparecer. Para trocar estas caracter;sticas se acessa ao menu 8Rstem e se seleciona 8et 8trate$ies... A forma deve ficar da se$uinte forma, para o'ter um lar$o de pista aceitvel e /ue s3 o fa a de um lado da placa. A fi$ura se$uinte # para a 8trate$R Power.
lll 8e aparecer uma 8trate$R P6S:R se devem p"r os mesmos valores /ue se o'servam na forma anterior, com o fim de usar so<inho um lado da placa.
aceitam>se os valores pressionando 6Q. Para executar o AE06 R6E0:R se d um clicD so're a se$uinte ferramenta.
1a'e mencionar /ue os resultados s!o variveis e dependem da $rossura das pistas, o tamanho da placa escolhida e se se executar novamente o auto router se pode che$ar a o'ter outro resultado se ainda apresentar pontes (ca'os diretos).
Para tratar de redu<ir o n9mero de pistas n!o criadas se pode ampliar o tamanho da placa. Para poder fa<O>lo # necessrio voltar a selecionar a ferramenta CG Vraphics 4ox e ter na parte inferior da tela selecionado 46ARG :GV:.
seleciona>se o /uadro com o 'ot!o direito e ao trocar a cor para 'ranco aparecem uns pe/uenos /uadros /ue se utili<am para modificar o tamanho da placa, o /ue se reali<a utili<ando o 'ot!o es/uerdo so're estes /uadros pressionando e sem soltar reali<ar a modifica !o de tamanho. depois disto se pode voltar a tentar o AE06>R6E0:R.
Para desfa<er o AE06>R6E0:R se reali<a o se$uinte% +.> :scolher a ferramenta 0racD placement and editin$ dando um clicD so're ela.
C.> Gepois utili<ando o 'ot!o direito selecionar toda a placa e por 9ltimo pressionar 8EPR ou G:=:0: no teclado. 8e /ueremos tirar todos os componentes se tem /ue escolher 1omponent placement and editin$.
8e n!o /uerermos apa$ar o 'orde da placa se tem /ue reali<ar a sele !o dentro desta, j /ue se selecionarmos toda a placa, esta tam'#m se apa$ar. depois de reali<ada a sele !o se pressiona 8EPR ou G:=:0:. 1a'e mencionar /ue os componente s!o retornados U janela 16MP6H:H08 do lado es/uerdo da tela, com o /ual podemos reali<ar o processo novamente at# o'ter um resultado ade/uado. 8e /ueremos adicionar umas perfura 2es nas es/uinas da placa se reali<a o se$uinte% +.> :scolher a ferramenta Round throu$h>hole pad placement.
-.> Gar um clicD no /ue se necessite, para poder reali<ar a coloca !o nas /uatro es/uinas da placa utili<ando o 'ot!o es/uerdo. *.> Placa final o'tida (H!o est otimi<ada)
41.A 0$ta placa no foi fa-ricada e provadaL $P $e utiliza ne$te cur$o como eDemplo do funcionamento do programa A30SL por i$$o $e acon$elSa que $e2a feito uma revi$o ante$ de levar a ca-o $ua fa-ricao.