Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
S is temas Digitais I I
(Documento em ver s o Dr aft ainda em elabor ao)
Resumo
Diagr ama de blocos Memr ia de pr ogr ama Memr ia de dados Recur s os aux iliar es Pinagem Cir cuito de tes te Pr ogr amao Memr ia ALU e W PC e S tack Por tos T imer
Jan 2003
Introduo
Es tr utur a de um computador
Mem r i a S o ar maz enados os pr ogr amas e os dados CP U (Unidade de Pr oces s amento Centr al) I nter pr eta as ins tr ues do pr ogr ama de ex ecuo e ex ecuta as oper aes cor r es pondentes . Dentr o do pr oces s ador , a Unidade de Contr ole a que inter pr eta ou tr aduz as ins tr ues e um Pr oces s ador que r ealiz a as oper aes de cada ins tr uo P er i f r i cos S o dis pos itivos de Entr ada e S ada mediante os quais s e intr oduz em infor maes e s e r ecolhem os dados . (teclado, r ato, monitor , modem, etc.)
Jan 2003
Introduo
um computador dentr o de um cir cuito integr ado. Gr aas evoluo tecnolgica pos s vel integr ar num nico chip todos os componentes de um computador . Devido s s uas dimens es tem pouca memr ia, o s eu pr oces s ador s r econhece algumas ins tr ues bs icas e es t limitado na ligao dir ecta a per ifr icos es pecficos Encontr am- s e nor malmente embebidos nos equipamentos , tais como teclados , r atos , televis es , mquinas de lavar , alar mes , j ogos electr nicos , r elgios , automveis , r obots , telemveis , etc. Um micr ocontr olador embebido es t dedicado a es s a tar efa es pecfica, enquanto que um computador de us o ger al es t pr epar ado par a um us o mais difer enciado S egundo a Dataques t, no ano 1999, for am us ados 15 vez es mais micr ocontr olador es do que pr oces s ador es S egundo a Dataques t, no ano 2000, havia uma mdia de 240 micr ocontr olador es num lar amer icano
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 4
Jan 2003
Processador vs Microcontrolador
Um micr opr oces s ador um cir cuito muito complex o, em for ma de cir cuito integr ado, que pode conter entr e alguns milhar es (Z 80) a 7 milhes de tr ans s tor es (Pentium I I ). Es tes tr ans s tor es inter nos cons tituem os mais diver s os cir cuitos lgicos : como contador es , r egis tos , des codificador es , e muitos outr os . Es tes cir cuitos lgicos s o dis pos tos de maneir a complex a, dando ao micr opr oces s ador a capacidade de ex ecutar oper aes lgicas , ar itmticas e de contr olo. um s is tema aber to por que a s ua configur ao var ivel de acor do com a aplicao a que s e des tina O micr ocontr olador integr a num nico componente os tr s elementos pr incipais na ar quitectur a de um computador : CPU, memr ia e I /O
Jan 2003
Processador vs Microcontrolador
Os micr ocontr olador es dis pem s empr e de I /O digital ou analgica, o que no s e ver ifica nos micr opr oces s ador es A memr ia inter na s de leitur a ver ifica- s e apenas nos micr ocontr olador es (pode s er ROM, j pr ogr amada de fbr ica, pode s er pr ogr amvel pelo utlizador ou pode mes mo no ex is tir inter namente) O bar r amento de dados dos micr opr oces s ador es tem um maior nmer o de bits , uma vez que a s ua r ea de aplicao mais ex igente ao nvel do pr oces s amento da infor mao; Dos micr ocontr olador es , por outr o lado, es per a- s e uma aplicao mais diver s ificada e menos ex igente nes s e ponto; S o ainda pouco utilizados micr ocontr olador es de 16 bits
Jan 2003
CISC vs RISC
CI S C (Complex I ns tr uction S et Computer s ) RI S C (Reduced I ns tr uction S et Computer s ) O PI C16F84 RI S C Um CI S C tende a ter um gr ande nmer o de ins tr ues , cada uma ex ecutando uma per mutao difer ente da mes ma oper ao Um RI S C tem um nmer o mnimo de ins tr ues que per mite ao utiliz ador des enhar as s uas pr pr ias ins tr ues , em vez de us ar as que o des enhador do pr oces s ador ofer ece
Jan 2003
Como r es ultado de um pedido do gover no dos EUA, as Univer s idades de Pr inceton e de Har var d cr iar am ar quitectur as de computador es par a s er em us adas no clculo das tabelas de ar tilhar ia de Navel Em 1945 Von Neumann es tabeleceu as bas es par a a cons tr uo de computador es . Des enhou uma mquina em que ex is tia um bloco, unidade de contr olo, capaz de des codificar um conj unto de ins tr ues . Um pr oces s ador que r ealiz a as oper aes que as ins tr ues implicam. Um gr ande ar maz m s er via par a guar dar as ins tr ues dos pr ogr amas e dos dados . A unidade de inter face de memr ia r es pons vel pela ges to do aces s o memr ia. Um ltimo bloco per mitia a tr ans fer ncia de infor mao aos per ifr icos ex ter ior es
Jan 2003
A vantagem a s implicidade de aces s o memr ia. Pos s ui um bar r amento nico par a aceder memr ia (ender eos , dados e contr olo) O gr ande inconveniente o facto da memr ia do pr ogr ama e dos dados s er comum, pois impede que s e pos s a aceder ao pr ogr ama e aos dados s imultaneamente e muitas vez es o tamanho dos dados difer ente do tamanho das ins tr ues
Jan 2003
Arquitectura de Harvard
Ex is tem duas memr ias difer entes e independentes , uma par a as ins tr ues e outr a par a os dados . I s to per mite r ealiz ar aces s os s imultneos a ambas as memr ias . Es ta ar quitectur a tende a ex ecutar as ins tr ues em menos ciclos de r elgio. As duas memr ias podem tambm ter palavr as de compr imento difer entes . No cas o do PI C16F84 a memr ia de pr ogr ama Flas h e pos s ui 1024 pos ies de 14 bits cada. A memr ia de dados tem uma capacidade muito menor e um tamanho tpico de 8 bits
Jan 2003
10
Princeton Vs Harvard
Jan 2003
11
Micro-coded vs Hard-coded
A ex ecuo de cada ins tr uo , de facto, um conj unto de pas s os . Par a ex ecutar es s es pas s os podem s er us adas duas apr ox imaes :
Um pr oces s ador micr o- coded mais s imples que o har d- coded, podendo s er mais r apidamente implementado. Facilita as r evis es e actualizaes do cdigo. No entanto mais lento que o har dcoded, pois as ins tr ues s o ex ecutadas em maior nmer o de ciclos de r elgio
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 12
Mi cr o-coded um pr oces s ador dentr o do pr oces s ador . Uma mquina de es tados ex ecuta cada ins tr uo como um ender eo par a uma s ubr otina de ins tr ues que depois s o ex ecutadas pela lgica do micr oCode I ns tr uction Decode and Pr oces s or . O PI C Micr o- coded H ar d-coded Us a o padr o de bits da ins tr uo par a aceder a lgica combinatr ia es pecfica da ins tr uo ex ecutando- a
Jan 2003
Fabricantes de microcontroladores
Fabr icantes
I n t el Pai dos micr ocontr olador es , tendo des envolvido na dcada de 70, o 8048. T eve muito s uces s o com o 8051 Mot or ola Ocupou o pr imeir o lugar na dcada de 90 com o 68HC11 us ando a tecnologia HCMOS Micr och ip Fabr icante dos PI C (Per ipher al I nter face Contr oller ) pas s ou do 20 lugar em 1990 par a o 2 lugar em 2000
Jan 2003
13
PI C12CXXX
Gama an (bs ica e mdia de 8 pinos ) Gama bs ica Gama mdia Gama alta Gama melhor ada
Jan 2003
14
Gama de Microcontroladores
L ow -E n d - S ubs et r eduz ido de ins tr ues ; S em tr atamento de inter r upes ; Menor dis ponibilidade de memr ia RAM; S em I /O avanado; I ns tr uo de 12bits ; Ex : PI C 12C5x x ; No deve s er utilizado par a novas aplicaes ou em apr endiz agem. MidR an ge - B as eado na or ganiz ao dos LowEnd; T r atamento de inter r upes ; T imer s ; Quantidade r az ovel de memr ia RAM; T ipos avanados de I /O; I ns tr uo de 14bits ; Car acter izado como s endo de us o ger al; Ex : PI C 16C7x x H igh -E n d - I ns tr ues de 16 bits ; Aces s o a todos os r egis tos dir ectamente; Mltiplos vector es de inter r upo; Famlia: PI C 17Cx x
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 15
Jan 2003
Jan 2003
16
Execuo de instrues
Fas e de bus ca (fetch) Pr ocur a- s e o cdigo binr io da ins tr uo na memr ia do pr ogr ama Fas e de ex ecuo I nter pr eta- s e o cdigo, bus cam- s e os oper andos e ex ecuta- s e a oper ao que implica
A fas e de fetch faz uma eficiente utilizao de memr ia j que cada ins tr uo r ecuper ada da memr ia em apenas um ciclo Cada uma das fas es r ealizada em 4 ciclos de r elgio As ins tr ues de s alto demor am 8 ciclos de r elgio, enquanto que as outr as demor am apenas 4 ciclos de r elgio O PI C utiliz a a tcnica de s egmentao par a ex ecutar as ins tr ues , pelo que enquanto ex ecuta a fas e de ex ecuo de uma ins tr uo, ex ecuta a fas e de bus ca da ins tr uo s eguinte. Des ta for ma cons egue- s e ex ecutar cada ins tr uo em quatr o ciclos de r elgio. Por ex . o tempo que um PI C16F84 a 4Mhz demor a a ex ecutar um pr ogr ama com 100 linhas de cdigo, das quais 30 s o de s alto = 4* (1/4.000.000)* 70 + 8* (1/4.000.000)* 30 = 130 us
Jan 2003
17
Execuo de instrues
Relao entr e o s inal de clock e o ciclo de ins tr uo:
(Nota: PI C 16C73)
Jan 2003
18
PIC16F84
Capaz de tr abalhar at 10 Mhz . PI C16F84A Capaz de tr abalhar at 20 Mhz Pequeno, s tem 18 per nas B ar ato. O PI C16F84A cus ta 7,37 + I VA Memr ia de pr ogr ama de 1K palavr as de 14 bits FLAS H, em que em cada uma cabe uma ins tr uo. Pode s er r egr avada cer ca de 10.000 vez es com toda a s egur ana Memr ia de dados RAM de 68 B ytes Memr ia de dados EE PROM de 64 B ytes , no voltil 8 nveis de s tack (pilha) 35 ins tr ues de 14 bits T empo de ex ecuo das ins tr ues nor mais : 4x T os c T empo de ex ecuo das ins tr ues de s alto: 8x T os c 4 tipos de inter r upes (E x ter nal RB 0/I NT pin, T MR0 timer over flow, PORT B < 7: 4> inter r upt- on- change, Data E EPROM wr ite complete) 13 linhas de entr adas /s ada digitais 1 timer 1 watch- dog Alimentao de 2V a 6 V Gr avao de 12V a 14V E ncaps ulamento DI P de 18 per nas (S OI C)
Jan 2003
19
Jan 2003
20
CPU
O PI C tem um pr oces s ador tipo RI S C com a ar quitectur a de Har var d O pr oces s ador do PI C pode s er vis to como s endo uma ALU, r ecebendo, pr oces s ando e ar mazenando dados de e par a os vr ios r egis tos T ipos de aceder aos dados
Ender eamento dir ecto Ender eo de r egis to dentr o do banco de r egis tos de 128 bytes es pecificado na ins tr uo Ender eamento imediato S e par a s er es pecificada uma cons tante a s eguir ins tr uo Ender eamento index ado Por que o ender eo a s er acedido pode s er modificado ar itmeticamente
Jan 2003
21
CPU
Jan 2003
22
CPU
A ALU r es pons vel por todas as oper aes ar itmticas e com bits , bem como o incio dos pedidos de ex ecuo condicional T odas as oper aes ar itmticas us am o r egis to w O r es ultado das oper aes pode s er ar maz enado no r egis to w ou no file r egis ter O Pr ogr am Counter contm o ender eo da ins tr uo s eguinte que ir s er ex ecutada. S e uma ins tr uo tem um ender eo dir ecto os ltimos 7 bits s o us ados como os ender eos O r egis to FS R ar maz ena o ender eo da memr ia, no ender eamento indir ecto O r egis to I NDF (que na r ealidade no ex is te) o r egis to que apontado pelo FS R
Jan 2003
23
ALU
A ALU (Ar ithmetic Logic Unit) a componente mais complex a do PI C por conter todos os
cir cuitos des tinados a des envolver as funes de clculo e manipulao de dados dur ante a ex ecuo de um pr ogr ama
Ex ecuta as oper aes ar itmticas , de bits e de des locamento de um ou dois bytes A ALU pode s er vis ta como um conj unto de oper aes que s o ex ecutadas em par alelo com um nico multiplex er O r egis to S T AT US ar mazena os r es ultados das oper aes As oper aes com bits s o ex ecutadas ex ecutando ANDs par a colocar a 0 ou ORs par a colocar a 1
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 24
Jan 2003
ALU
Operao Mover Adio Subtraco Negao Incremento Decremento AND OR XOR Complemento Shift Left Shift Right XOR com 0x0FF Adicionar o valor a si prprio com Carry Adio com um Negativo XOR com 0x0FF (inverso bit a bit) e Incremento Adio a 1 Subtraco por um/Adio com 0x0FF Operao equivalente AND com 0x0FF
Jan 2003
25
Registo Status
Flags :
Z er o (Z ) Fica a 1 quando o r es ultado 0 Car r y (C) Fica a 1 quando o r es ultado da oper ao maior do que 255 Digit Car r y (DC) Fica a 1 quando o nibble menos s ignificativo maior do que 15 aps uma oper ao ar itmtica (adio ou s ubtr aco)
Jan 2003
26
Organizao da memria
Par tes da memr ia es t dividida em B ancos , incluindo r egis tos es peciais e r egis tos de utiliz ao ger al. Par a a utiliz ao dos bancos neces s r io configur ar os bits RP0 e RP1 do r egis to S T AT US
Regis tos es peciais (S pecial Function Regis ter s ) Ocupam as 11 pr imeir as pos ies , des de 00 at 0B . S o os r egis tos que contr olam o funcionamento do PI C Regis tos de utilizao ger al (Gener al Pur pos e Regis ter s ) Ocupam as pos ies s eguintes , des de 08 at 4F
Jan 2003
27
Endereamento de Bancos
Cada um dos 2 bancos tem 128 r egis tos par a aces s o dir ecto No B anco 0 pode- s e aceder aos por tos A e B (PORT A de 5 bits e PORT B de 8 bits ) No B anco 1 podem- s e configur ar os por tos (T RI S A e T RI S B )
File address 0 1 2 3 4 5 6 7 8 9 0A 0B 0C . . . 4F 50 . . . 7F
File address 80 81 82 83 84 85 86 87
88 89 8A 8B 8C . . . CF D0 . . . FF
Jan 2003
28
Program Counter
O Pr ogr am Counter (PC) um r egis to es pecial que s er ve par a ar maz enar o ender eo da pr x ima ins tr uo a s er ex ecutada T em a dimens o de 13 bits . PCL , par a os bits menos s ignificativos e PCH (no aces s vel) par a os mais s ignificativos Os 8 bits menos s ignificativos s o es cr itos no r egis to PCL e os r es tantes no r egis to PCL AT H Nas ins tr ues de s alto (GOT O e CALL ) 11 bits s o us ados par a ar maz enar o ender eo (at 2048 ins tr ues )
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 29
Jan 2003
Stack
O S tack uma es tr utur a (Las t I n Fir s t Out) e s er ve par a ar maz enar o valor do Pr ogr am Counter quando chamada uma s ubr otina de for ma a s aber o local de r etor no da mes ma O PI C16F84 pos s ui 8 nveis de S tack, pelo que cons egue ar maz enar no mx imo 8 chamadas s uces s ivas a s ubr otinas O S tack s ar maz ena o Pr ogr am Counter
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 30
Jan 2003
Memria de programa
ROM com ms car a A aplicao gr avada na ROM logo aps o fabr ico e antes de s er entr egue ao cliente. A cr iao da ms car a muito dis pendios , pelo que s compens a par a gr andes quantidades OT P (One- T ime Pr ogr amable) A aplicao s pode s er gr avada uma vez pelo utiliz ador EPROM Pode gr avar - s e vr ias vez es , apagando com r aios ultr avioletas EEPROM Pode gr avar - s e vr ias vez es , apagando electr icamente FLAS H s imilar es s EEPROM, mas mais r pidas e toler am mais ciclos de es cr ita
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 31
Jan 2003
Memria de dados
Memr ia de dados
RAM memr ia de leitur a e es cr ita muito r pida e voltil EEPROM memr ia de leitur a e es cr ita lenta, mas no voltil
Jan 2003
32
Recursos auxiliares
T empor iz ador es Watch- dog Pr oteco de falha de alimentao (B r own out) Es tado de r epous o e baix o cons umo (S leep mode) Conver s or A/D Conver s or D/A Compar ador analgico Modulador por lar gur a de impuls os (PWM) Por tas de entr adas e s adas digitais Por tas de comunicao I nter r upes I n- cir cuit s er ial pr ogr amming
Jan 2003
33
S o us ados par a contr olar per odos de tempo (tempor iz ador es ) e par a ter em conta os acontecimentos ex ter ior es (contador es ) Par a medir em o tempo guar dado num r egis to o valor adequado que ir s er incr ementado ou decr ementado ao r itmo dos impuls os de r elgio at que haj a car r y ou chegue a 0 par a s er pr oduz ido um avis o
Jan 2003
34
O Timer
O r egis to T MR0 um contador , ou s ej a um r egis to par ticular , no qual o s eu contedo incr ementado com uma cadncia r egular e pr ogr amada dir ectamente pelo har dwar e do PI C. Na pr tica, a difer ena de outr o r egis tr o, que o T MR0 no mantm inalter ado o s eu valor , incr ementando- o continuamente
Jan 2003
35
Per mite fazer r es et automtico ao PI C quando es te bloqueia Quando s e pr etende us ar es ta facilidade o pr ogr ama tem de iniciar o Watch- dog antes des te pr ovocar o r es et
Jan 2003
36
um cir cuito que coloca o PI C em r es et quando a tens o de alimentao des ce de um deter minado nvel Coloca novamente o PI C em funcionamento as s im que a tens o de alimentao s ej a aceitvel
Jan 2003
37
Par a poupar ener gia enquanto es per a por algum acontecimento ex ter ior o PI C pode ficar ador mecido (us ando a ins tr uo S LEEP) Aps o acontecimento o PI C acor da e continua a s ua ex ecuo a par tir do ponto em que tinha ficado
Jan 2003
38
Nos micr ocontr olador es que tm es tas pos s ibilidades podem conver ter s inais analgicos em digitais e vice- ver s a
Jan 2003
39
Nos micr ocontr olador es que tm es ta pos s ibilidade pos s uem um OPAMP (Amplificador Oper acional) inter no que per mite compar ar uma tens o ex ter na com uma tens o de r efer ncia indicando s e s uper ior ou infer ior
Jan 2003
40
Nos micr ocontr olador es que tm es ta pos s ibilidade per mitem a s ada de impuls os de lar gur a var ivel que per mitem, por ex emplo contr olar motor es
Jan 2003
41
T odos os micr ocontr olador es pos s uem alguns pinos como linhas de entr ada e s ada digitais de dados Nor malmente es tas linhas es to agr upadas de oito em oito for mando por tas Es tas linhas digitais podem s er configur adas como s endo de entr ada ou como s endo de s ada colocando 1 ou 0 no bit cor r es pondente ao r egis to des tinado s ua configur ao
Jan 2003
42
O P I C1 6 F 8 4 dis pe de um total de 1 3 l i n h as de I /O or ganiz adas em dois por tos denominadas de P OR T O A e P OR T O B . O P OR T O A dis pe de 5 l i n h as configur veis tanto em entr ada como em s ada identificadas pelas s iglas RA0, RA1, RA2, RA3 e RA4. O P OR T O B dis pe de 8 l i n h as tambm configur veis s ej a em entr ada ou em s ada identificadas pelas s iglas RB 0, RB 1, RB 2, RB 3, RB 4, RB 5, RB 6 e RB 7. Par a o contr ole da linha de I /O do pr ogr ama, o PI C dis pe de dois r egis tr os inter nos que contr olam os por tos e s o chamados de T R I S A e P OR T A par a a por ta A e T R I S B e P OR T B par a a por ta B . T odos os bits contidos nos r egis tr os mencionados cor r es pondem univocamente a uma linha de I /O. Por ex emplo o bi t 0 do r egis tr o P OR T A e do r egis to T R I S A cor r es pondem linha R A0 , o bi t 1 a linha R A1 e as s im por diante. S e o bi t 0 do r egis tr o T R I S A for colocado em z er o, a linha R A0 es tar configur ada como l i n h a de s a da, por is s o o valor a que ir a o bi t 0 do r egis tr o P OR T A deter minar o es tado lgico de tal linha (0 = 0 volts , 1 = 5 volts ).
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 43
Jan 2003
De for ma a dotar os micr ocontr olador es com a pos s ibilidade de comunicar em com outr os dis pos itivos ex ter nos , bar r amentos de micr opr oces s ador es , r edes , etc. alguns modelos tm r ecur s os que s e per mitem ex ecutar dir ectamente es ta tar efa:
UART , adaptador de comunicao s r ie as s ncr ona US ART , adaptador de comunicao s r ie s ncr ona e as s ncr ona Por ta par alela es cr ava, par a poder ligar aos bar r amentos de outr os micr opr oces s ador es US B (Univer s al S er ial B us ), que o moder no bar r amento s r ie dos PC I 2C, que es un inter face s r ie de dois fios des envolvido pela Philips CAN (Contr oller Ar ea Networ k), par a per mitir a adaptao a r edes CAN des envolvidas pela B os ch e I ntel par a a cablagem de dis pos itivos em automveis
Jan 2003
44
O PI C16F84 tem a pos s ibilidade de contar com um s is tema de inter r upes . Es te s is tema cons is te num mecanis mo atr avs do qual um acontecimento inter no ou ex ter no, as s ncr ono r elativamente ao pr ogr ama, pode inter r omper a s ua ex ecuo pr oduz indo automaticamente um s alto par a ar otina de atendimento inter r upo de maneir a a poder atender de imediato o acontecimento e r etomar de s eguida a ex ecuo do pr ogr ama inter r ompido. Ex is tem 4 fontes de inter r upes :
Ex ter nal RB 0/I NT pin T MR0 timer over flow PORT B < 7: 4> inter r upt- on- change Data EEPROM wr ite complete
Jan 2003
45
O I NT CON REGI S T ER (ADDRES S 0B h, 8B h) o r egis to que contm os vr ios bits que inibem e des inibem as r es pectivas fontes de inter r upo: bit 7 GI E: Global I nter r upt Enable bit bit 6 EEI E: EE Wr ite Complete I nter r upt Enable bit bit 5 T 0I E: T MR0 Over flow I nter r upt Enable bit bit 4 I NT E: RB 0/I NT Ex ter nal I nter r upt Enable bit bit 3 RB I E: RB Por t Change I nter r upt Enable bit bit 2 T 0I F: T MR0 Over flow I nter r upt Flag bit bit 1 I NT F: RB 0/I NT Ex ter nal I nter r upt Flag bit bit 0 RB I F: RB Por t Change I nter r upt Flag bit
Jan 2003
46
Jan 2003
47
O PI C16F84 pode s er pr ogr amado via comunicao s r ie, mes mo aps ter s ido colocado no cir cuito final. Par a tal bas tam dois s inais par a o r elgio e par a os dados e mais tr s s inais par a a alimentao, a ter r a e a tens o de pr ogr amao
Jan 2003
48
Pinagem
PI C16F84 (PDI P, S OI C)
Pinagem
1 2 3
RA2
uma linha de I/O programvel em entrada ou sada da unidade. Corresponde ao BIT 2 da PORTA A.
RA3
uma linha de I/O programvel em entrada ou sada da unidade. Corresponde ao BIT 3 da PORTA A.
RA4 / RTCC
um pino multi funo que pode ser programado como uma linha normal de I/O ou como linha de clock para entrada em sentido ao contador RTCC. Se programada como linha de I/O corresponde ao BIT 4 da PORTA A ao contrrio de outra linha de I/O, quando esta linha funciona como sada, trabalha em colector aberto.
Jan 2003
50
Pinagem
4
MCLR / VPP
Em condio normal de funcionamento desenvolve a funo de Master CLeaR ou seja Reset estar activo a nvel 0. Pode ser conectado a um circuito de reset externo ou simplesmente conectando-o ao positivo da alimentao. Quando o PIC for colocado em Program Mode ser utilizado como entrada para a tenso de programao Vpp.
VSS
o pino que vai conectado ao negativo da tenso de alimentao.
Jan 2003
51
Pinagem
6 7 8 9
Jan 2003
RB0
uma linha de I/O programvel em entrada ou em sada. Corresponde ao BIT 0 da PORTA B e pode ser programada para gerar interrupo.
RB1
uma linha de I/O programvel em entrada ou em sada. Corresponde ao BIT 1 da PORTA B.
RB2
uma linha de I/O programvel em entrada ou em sada. Corresponde ao BIT 2 da PORTA B.
52
Pinagem
10 11 12 13
RB4 uma linha de I/O programvel em entrada ou em sada.
Corresponde ao BIT 4 da PORTA B e pode ser programada para gerar interrupo na alterao do valor.
Jan 2003
53
Pinagem
14
VDD
o terminal positivo de alimentao do PIC. em todas as trs verses disponveis do PIC16F84 (comercial, industrial e automotiva) a tenso pode assumir um valor que vai de um mnimo de 2.0 volts a um mximo de 6.0 volts.
15 16
OSC2 / CLKOUT
um pino de ligao no caso de se utilizar um cristal de quartzo para gerar o clock. E como sada de clock caso for aplicado um oscilador RC externo.
OSC1 / CLKIN
um pino de ligao para o caso de se utilizar um cristal de quartzo ou um circuito RC para gerar o clock. E tambm como entrada caso utilizemos um oscilador externo.
Jan 2003
54
Pinagem
17 18
RA0
uma linha de I/O programvel em entrada ou sada. Corresponde ao BIT 0 da PORTA A.
RA1
uma linha de I/O programvel em entrada ou sada. Corresponde ao BIT 1 da PORTA A
Jan 2003
55
Oscilador
Os cilador RC (Res is tor /Capacitor ) HS (High S peed Cr ys tal/Res onator ) XT (Cr ys tal/Res onator ) LP (Low Power Cr ys tal) 4 MHz 20 MHz 200 K Hz 4 MHz 0 200 K Hz Fr equncia
Jan 2003
56
Oscilador
Modo Freq. 455 kHz XT 2.0 MHz 4.0 MHz HS 8.0 MHz 10.0 MHz LP 32 kHz 200 kHz 100 kHz XT 2 MHz 4 MHz HS RC 4 MHz 20 MHz 5 k Rext 100 k Osc1/C1 47 - 100 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 68 - 100 pF 15 - 33 pF 100 - 150 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF Cext > 20pF Osc2/C2 47 - 100 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 68 - 100 pF 15 - 33 pF 100 - 150 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF 15 - 33 pF
Jan 2003
57
Programao e utilizao
Na pr imeir a figur a es t es quematiz ado o flux ogr ama de oper aes e ar quivos que dever o s er r ealiz ados par a pr ogr amar um cdigo as s embler par a um PI C Na s egunda figur a apr es entado um es quema de montagem par a 4 LEDs pis ca- pis ca, us ando um os cilador RC
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 58
Jan 2003
Jan 2003
59
Jan 2003
60
Jan 2003
61
Jan 2003
62
bit 7- 5 U n im pl em en t ed: Read as '0' bit 4 E E I F : EE PROM Wr ite Oper ation I nter r upt Flag bit 1 = T he wr ite oper ation completed (mus t be clear ed in s oftwar e) 0 = T he wr ite oper ation is not complete or has not been s tar ted bit 3 W R E R R : E EPROM E r r or Flag bit 1 = A wr ite oper ation is pr ematur ely ter minated (any MCLR Res et or any WDT Res et dur ing nor mal oper ation) 0 = T he wr ite oper ation completed bit 2 W R E N: E EPROM Wr ite Enable bit 1 = Allows wr ite cycles 0 = I nhibits wr ite to the E EPROM bit 1 W R : Wr ite Contr ol bit 1 = I nitiates a wr ite cycle. T he bit is clear ed by har dwar e once wr ite is complete. T he WR bit can only be s et (not clear ed) in s oftwar e. 0 = Wr ite cycle to the EE PROM is complete bit 0 R D : Read Contr ol bit 1 = I nitiates an EE PROM r ead RD is clear ed in har dwar e. T he RD bit can only be s et (not clear ed) in s oftwar e. 0 = Does not initiate an EE PROM r ead Jan 2003 PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 63
Jan 2003
64
Instrues
Sintaxe ADDLW k ADDWF f,d ANDLW k ANDWF f,d BCF f,b BSF f,b BTFSC f,b BTFSS f,b CALL k CLRF f CLRW CLRWDT COMF f,d DECF f,d DECFSZ f,d
Jan 2003
Descrio Microchip Add Literal and W Add W and f AND Literal with W AND W with f Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, skip if Set Subroutine Call Clear f Clear W Register Clear Watchdog Timer Complement f Decrement f Decrement f, Skip if 0
Operao equivalente W=W+k d = W + f (onde d pode ser W ou f) W = W AND k d = W AND f (onde d pode ser W ou f) f(b) = 0 f(b) = 1 f(b) = 0 ? Se , salta uma instruo f(b) = 1 ? Se , salta uma instruo Chamada a uma subrotina no endereo k f=0 W=0 Watchdog timer = 0 d = not f (onde d pode ser W ou f) d = f -1 (onde d pode ser W ou f) d = f -1 (onde d pode ser W ou f) se d = 0 salta
65
Instrues
Sintaxe GOTO k INCF f,d INCFSZ f,d IORLW k IORWF f,d MOVLW k MOVF f,d MOVWF f NOP OPTION RETFIE RETLW k RETURN RLF f,d RRF f,d
Jan 2003
Descrio Microchip Go to address Increment f Increment f, Skip if 0 Inclusive OR Literal with W Inclusive OR W with f Move literal to W Move f Move W to f No Operation Load Option Register Return from Interrupt Return Literal to W Return from Subroutine Rotale Left f through Carry Rotale Right f through Carry
Operao equivalente salta para o endereo k d = f +1 (onde d pode ser W ou f) d = f +1 (onde d pode ser W ou f) se d = 0 salta W = W OR k d = f OR W (onde d pode ser W ou f) W=k d = f (onde d pode ser W ou f) f=W Nenhuma operao OPTION = W Retorna de uma interrupt handler Retorna de uma subrotina com W = k Retorna de uma subrotina d = f << 1 (onde d pode ser W ou f) d = f >> 1 (onde d pode ser W o f)
66
Instrues
Sintaxe SLEEP SUBLW k SUBWF f,d SWAPF f TRIS f XORLW k XORWF f,d Descrio Microchip Go into Standby Mode Subtract W from Literal Subtract W from f Swap f Load TRIS Register Exclusive OR Literal with W Exclusive OR W with f Operao equivalente Coloca o PIC em standby W=k-W d = f - W (onde d pode ser W ou f) f = Swap do bit 0123 com 4567 de f TRIS di f = W W = W XOR k d = f XOR W (onde d pode ser W ou f)
Jan 2003
67
Instrues - ADDLW
ADDLW Soma um literal a W Sintaxe: [label] ADDLW k Operandos: 0 k 255 Operao: : (W) + (k)==> (W) Flags afectadas: C, DC, Z Cdigo OP: 11 111x kkkk kkkk Descrio: Soma o contedo do registo W e k, guardando o resultado em W.
Exemplo:
ADDLW 0xC2
Jan 2003
68
Instrues - ADDWF
ADDWF W + F Sintaxe: [label] ADDWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) + (f) ==> (dest) Flags afectadas: C, DC, Z Cdigo OP: 00 0111 dfff ffff Descrio: Soma o contedo do registo W com o registo f. Se d 0, o resultado armazena-se em W, Se d 1 armazena-se em f. Exemplo: ADDWF REG,0
Jan 2003
69
Instrues - ANDLW
ANDLW W AND literal Sintaxe: [label] ANDLW k Operandos: 0 k 255 Operao: : (W) AND (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1001 kkkk kkkk Descrio: Realiza a operao lgica AND entre o contedo do registo W e k, guardando o resultado em W. Exemplo: ADDLW 0xC2
Jan 2003
70
Instrues - BCF
BCF Apaga um bit Sintaxe: [label] BCF f,b Operandos: 0 f 127, 0 b 7 Operao: : 0 ==> (f<b>) Flags afectadas: nenhum Cdigo OP: 01 00bb bfff ffff Descrio: Apaga o bit b do registo f
BCF REG,7
Jan 2003
71
Instrues - BSF
BSF Activa um bit Sintaxe: [label] BSF f,b Operandos: 0 f 127, , 0 Operao: 1 ==> (f<b>) Flags afectadas: nenhum Cdigo OP: 01 01bb bfff b 7
ffff
Exemplo:
BSF REG,7
Jan 2003
72
Instrues - BTFSC
BTFSC Testa o bit e salta se for 0 Sintaxe: [label] BTFSC f,d Operandos: d [0,1], 0 f 127 Operao: Salto Se (f<b>) = 0 Flags afectadas: nenhum Cdigo OP: 01 10bb bfff ffff Descrio: Se o bit b do registo f 0, salta uma instruo e continua com a execuo. Em caso de salto, ocupar dois ciclos de relgio. Exemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 instruo
Jan 2003
73
Instrues - BTFSS
BTFSS Testa o bit e salta se for 1 Sintaxe: [label] BTFSS f,d Operandos: d [0,1], 0 f 127 Operao: Salto Se (f<b>) = 1 Flags afectadas: nenhum Cdigo OP: 01 11bb bfff ffff Descrio: Se o bit b do registo f 1, salta uma instruo e continua com a execuo. Em caso de salto, ocupar dois ciclos de relgio. Exemplo: BTFSS REG,6 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 instruo
Jan 2003
74
Instrues - CALL
CALL Salta para subrotina Sintaxe: [label] CALL k Operandos: 0 k 2047 Operao: PC ==> pilha; k ==> PC Flags afectadas: nenhum Cdigo OP: 10 0kkk kkkk kkkk Descrio: Salta para uma subrotina. A parte baixa de k carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relgio. Exemplo: ORIGEM CALL DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO
Jan 2003
75
Instrues - CLRF
CLRF Apaga um registo Sintaxe: [label] CLRF f Operandos: 0 f 127 Operao: : 0x00 ==> (f), 1 ==> Z Flags afectadas: Z Cdigo OP: 00 0001 1fff ffff Descrio: O registo f carregado com 0x00. A flag Z activada.
Exemplo: :
CLRF REG
Jan 2003
76
Instrues - CLRW
CLRW Apaga o registo W Sintaxe: [label] CLRW Operandos: nenhum Operao: : 0x00 ==> W, 1 ==> Z Flags afectadas: Z Cdigo OP: 00 0001 0xxx xxxx Descrio: O registo de trabalho W carregado com 0x00. A flag Z activada. Exemplo: : CLRW
Jan 2003
77
Instrues - CLRWDT
CLRWDT Apaga o WDT Sintaxe: [label] CLRWDT Operandos: nenhum Operao: 0x00 ==> WDT, 1 ==> /TO 1 ==> /PD Flags afectadas: /TO, /PD Cdigo OP: 00 0000 0110 0100 Descrio: Esta instruo apaga tanto o WDT como o seu preescaler. Os bits /TO e /PD do registo de estado so colocados a 1. Exemplo: : CLRWDT Depois: Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1
Jan 2003
78
Instrues - COMF
COMF Complemento de f Sintaxe: [label] COMF f,d Operandos: d [0,1], 0 f 127 Operao: : (/ f), 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 1001 dfff ffff Descrio: O registo f complementado. A flag Z activada se o resultado 0. Se d 0 o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: : COMF REG,0
Jan 2003
79
Instrues - DECF
DECF Decremento de f Sintaxe: [label] DECF f,d Operandos: d [0,1], 0 f 127 Operao: : (f ) - 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 0011 dfff ffff Descrio: Decrementa contedo de f. Se d 0, o resultado armazenado em W, Se d 1 armazenado em f.
Exemplo: :
DECF CONT,1
Jan 2003
80
Instrues - DECFSZ
DECFSZ Decremento e salta se 0 Sintaxe: [label] DECFSZ f,d Operandos: d [0,1], 0 f 127 Operao: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Cdigo OP: 00 1011 dfff ffff Descrio: Decrementa o contedo do registo f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Se o resultado 0 salta uma instruo e ocuparia 2 ciclos. Exemplo: DECFSZ REG,0 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 Salta instruo anterior
Jan 2003
81
Instrues - GOTO
GOTO Salto incondicional Sintaxe: [label] GOTO k Operandos: 0 k 2047 Operao: k ==> PC <8:0> Flags afectadas: nenhum Cdigo OP: 10 1kkk kkkk kkkk Descrio: Trata-se de um salto incondicional. A parte baixa de k carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relgio. Exemplo: ORIGEM GOTO DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO
Jan 2003
82
Instrues - INCF
INCF Incremento de f Sintaxe: [label] INCF f,d Operandos: d [0,1], 0 f 127 Operao: : (f ) + 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 1010 dfff ffff Descrio: Incrementa o contedo de f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: : INCF CONT,1
Jan 2003
83
Instrues - INCFSZ
INCFSZ Incremento e salta se 0 Sintaxe: [label] INCFSZ f,d Operandos: d [0,1], 0 f 127 Operao: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Cdigo OP: 00 1111 dfff ffff Descrio: Incrementa o contedo do registo f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Se o resultado 0 salta a instruo seguinte, em cujo caso demoraria 2 ciclos. Exemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 Salta instruo anterior
Jan 2003
84
Instrues - IORLW
IORLW W OR literal Sintaxe: [label] IORLW k Operandos: 0 k 255 Operao: : (W) OR (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1000 kkkk kkkk Descrio: Realiza a operao lgica OR entre o contedo do registo W e k, guardando o resultado em W. Exemplo: IORLW 0x35
Jan 2003
85
Instrues - IORLWF
IORWF W OR F Sintaxe: [label] IORWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) OR (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 0100 dfff ffff Descrio: Realiza a operao lgica OR entre os registos W e f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: : IORWF REG,0
Jan 2003
86
Instrues - MOVLW
MOVLW Carregar literal em W Sintaxe: [label] MOVLW f Operandos: 0 f 255 Operao: (k) ==> (W) Flags afectadas: nenhum Cdigo OP: 11 00xx kkkk kkkk Descrio: O literal k passa ao registo W.
Exemplo:
MOVLW 0x5A
Jan 2003
87
Instrues - MOVF
MOVF Mover f para W Sintaxe: [label] MOVF f,d Operandos: d [0,1], 0 f 127 Operao: (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 1000 dfff ffff Descrio: O contedo do registo f movido para o destino dependendo de d. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Quando d 1 permite verificar o registo, j que afecta a Z. Exemplo: Depois: W = REG MOVF REG,0
Jan 2003
88
Instrues - MOVWF
MOVWF Mover W para f Sintaxe: [label] MOVWF f Operandos: 0 f 127 Operao: W ==> (f) Flags afectadas: nenhum Cdigo OP: 00 0000 1fff ffff Descrio: O contedo do registo W passa para o registo f.
Exemplo:
MOVWF REG,0
Jan 2003
89
Instrues - NOP
NOP No operao Sintaxe: [label] NOP Operandos: nenhum Operao: No operar Flags afectadas: nenhum Cdigo OP: 00 0000 0xx0
0000
Descrio: No realiza nenhuma operao. Na realidade consome um ciclo de instruo sem fazer nada.
Exemplo:
NOP
Jan 2003
90
Instrues - RETFIE
RETFIE regresso de interrupo Sintaxe: [label] RETFIE Operandos: nenhum Operao: : 1 ==> GIE; TOS==>PC Flags afectadas: nenhum Cdigo OP: 00 0000 0000 1001 Descrio: o PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. As interrupes voltam a ser habilitadas. Exemplo: : RETFIE Depois: PC = direco de regresso GIE = 1
Jan 2003
91
Instrues - RETLW
RETLW regresso de uma subrotina, com o valor em W Sintaxe: [label] RETLW k Operandos: 0 k 255 Operao: : (k)==> (W); TOS==>PC Flags afectadas: nenhum Cdigo OP: 11 01xx kkkk kkkk Descrio: O registo W carregado com a constante k. O PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. Exemplo: : RETLW 0x37 Depois: PC = direco de regresso W = 0x37
Jan 2003
92
Instrues - RETURN
RETURN regresso de rotina Sintaxe: [label] RETURN Operandos: nenhum Operao: : TOS ==> PC Flags afectadas: nenhum Cdigo OP: 00 0000 0000
1000
Descrio: O PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. Exemplo: : RETURN
Jan 2003
93
Instrues - RLF
RLF roda f para a esquerda Sintaxe: [label] RLF f,d Operandos: d [0,1], 0 f 127 Operao: Rotao a a esquerda Flags afectadas: C Cdigo OP: 00 1101 dfff ffff Descrio: O contedo de f rodado para a esquerda. O bit de menor peso de f passa para o carry (C), e o carry colocado no de maior peso. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: RLF REG,0
Antes: REG = 1110 0110, C = 0 Depois: REG = 1110 0110, W = 1100 1100, C = 1
Jan 2003
94
Instrues - RRF
RRF roda f para a direita Sintaxe: [label] RRF f,d Operandos: d [0,1], 0 f 127 Operao: Rotao a a direita Flags afectadas: C Cdigo OP: 00 1100 dfff ffff Descrio: O contedo de f rodado para a direita. O bit de menos peso de f passa para o carry (C), e o carry colocado no de maior peso. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: RRF REG,0
Antes: REG = 1110 0110, C = 1 Depois: REG = 1110 0110, W = 1111 0011, C = 0
Jan 2003
95
Instrues - SLEEP
SLEEP Modo baixo consumo Sintaxe: [label] SLEEP Operandos: nenhum Operao: 0x00==>WDT, 1 ==> / TO 0 ==> WDT Preescaler, 0 ==> / PD Flags afectadas: / PD, / TO Cdigo OP: 00 0000 0110 0011 Descrio: O bit de energia colocado a 0, e a 1 o de descanso. O WDT e o seu preescaler so apagados. o micro pra o oscilador, ficando adormecido. Exemplo: : SLEEP Preescales WDT = 0, /TO = 1, /PD = 1
Jan 2003
96
Instrues - SUBLW
SUBLW Subtrai W ao literal [label] SUBLW k 255 - (W) ==> (W) C, DC 110x kkkk kkkk o mtodo do complemento para dois o contedo de literal. O resultado armazenado em W. Sintaxe: Operandos: 0 k Operao: ( k ) Flags afectadas: Z, Cdigo OP: 11 Descrio: Mediante W subtrado ao
Exemplos:
SUBLW
0x02
Antes:W=1,C=?. Depois: W=1, C=1 Antes:W=2,C=?. Depois: W=0, C=1 Antes:W=3,C=?.Depois:W=FF,C=0 (o resultado negativo)
Jan 2003
97
Instrues - SUBLWF
SUBWF Subtrai W ao f Sintaxe: [label] SUBWF f,d Operandos: d [0,1], 0 f 127 Operao: ( f ) - (W )==> (dest) Flags afectadas: C, DC, Z Cdigo OP: 00 0010 dfff ffff Descrio: Mediante o mtodo do complemento para dois o contedo de W subtrado ao de f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplos: SUBWF REG,1 Antes: REG = 0x03, W = 0x02, C = ? Depois:REG=0x01, W = 0x4F, C=1 Antes: REG = 0x02, W = 0x02, C = ? Depois:REG=0x00, W =0x02, C= 1 Antes: REG= 0x01, W= 0x02, C= ? Depois:REG=0xFF, W=0x02, C= 0 (Resultado negativo)
Jan 2003
98
Instrues - SWAPF
SWAPF Troca de f Sintaxe: [label] SWAPF f,d Operandos: d [0,1], 0 f 127 Operao: : (f <3: 0>) (f <7:4>) Flags afectadas: nenhum Cdigo OP: 00 1110 dfff ffff Descrio: Os 4 bits de maior peso e os 4 de menor so trocados. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: SWAPF REG,0
Jan 2003
99
Instrues - XORLW
XORLW W XOR literal Sintaxe: [label] XORLW k Operandos: 0 k 255 Operao: : (W) XOR (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1010 kkkk kkkk Descrio: Realiza a operao lgica XOR entre o contedo do registo W e k, guardando o resultado em W. Exemplo: : Antes: W = 0xB5 Depois: W = 0x1A XORLW 0xAF
Jan 2003
100
Instrues - XORLW
XORWF W XOR F Sintaxe: [label] XORWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) XOR (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 0110 dfff ffff Descrio: Realiza a operao lgica XOR entre os registos W e f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Exemplo: : XORWF REG,0
Jan 2003
101
Programa Walk.asm
Jan 2003
102
Programa Walk.asm
; ; ; ; ; ; ; ; ; ; WALK.ASM To use this program connect four LEDs from each of RB0-RB7 to ground via four 470 ohm resistors. The LEDs are illuminated one at time in a to-and-fro pattern. The illumination rate is more or less independent of the PIC clock frequency and configuration although this program assumes an RC oscillator. The program includes the __CONFIG, __IDLOCS and DE directives (mostly just to show how they can be used). The program can be used unchanged on any 16X8X device. LIST P=16F84 ERRORLEVEL -302 ;SUPPRESS BANK SELECTION MESSAGES __CONFIG 3FF5H ;XT OSC, WATCHDOG __IDLOCS 1234 EQU EQU EQU EQU EQU EQU EQU 6 86H 81H 3 0 5 3
103
Programa Walk.asm
CLRF BSF CLRF MOVLW MOVWF BCF INCF BCF SLEEP RLF BTFSS GOTO SLEEP RRF BTFSS GOTO GOTO ORG ; DE END "Copyright (C) 1996 David Tait" PORTB STATUS,RP0 TRISB 0AH OPTREG STATUS,RP0 PORTB,F STATUS,CARRY PORTB,F PORTB,MSB LEFT PORTB,F PORTB,0 RIGHT LEFT 2100H ;ALL LEDS OFF ;SELECT REGISTER BANK 1 ;SET PORTB TO ALL OUTPUTS ;ASSIGN PRESCALER (1:4) TO WDT ;SELECT REGISTER BANK 0 ;TURN ON RIGHTMOST LED ;CLEAR CARRY ;WAIT FOR WDT TIMEOUT ;TURN ON LED TO LEFT ;REACHED LEFTMOST? ;LOOP IF NOT ;WAIT FOR WDT TIMEOUT ;TURN ON LED TO RIGHT ;REACHED RIGHTMOST? ;LOOP IF NOT ;START NEW CYCLE
LEFT
RIGHT
Jan 2003
104
Porta Srie
As por tas s r ie us am bas icamente o mes mo har dwar e que us ar am inicialmente na altur a do pr imeir o PC em 1981, tendo s ofr ido apenas uma actualiz ao s ignificativa quando foi intr oduz ido o PS /2 S o a melhor for ma que um PI C tem de comunicar com um PC O us o da ficha de 9 pinos foi des envolvida por que a por ta s r ie er a colocada no mes mo adaptador que a por ta par alela e no havia es pao par a duas fichas de 25 pinos Podem s er ender eadas at 4 por tas s r ie num PC, s duas que s er o us adas par a ligar a dis pos itivos ex ter nos ao PC
Jan 2003
105
2 5 pi n os 2 3 7 4 5 20 6 22 8
9 pi n os 3 2 5 7 8 4 6 9 1
D i r eco I/O
O I O I I I
106
Porta Srie
A por ta s r ie us a o integr ado 8250, ou as actualizaes do PS /2, 16450 ou 16550. Es tes ltimos integr ados pos s uem buffer s (memr ias FI FO), que no s o muito us ados e s s o neces s r ios par a velocidades de tr ans mis s o elevadas (a par tir de 57.600 bps ) Es tes integr ados s o UART (Univer s al As ynchr onous Receiver /T r ans mitter )
Jan 2003
107
1 2 3 4 5 6 7
Jan 2003
Porta Srie
Velocidade 110 bps 300 bps 600 bps 1200 bps 2400 bps 9600 bps 19200 bps 115200 bps
Jan 2003
109
Circuitos
Jan 2003
110
Circuitos
Jan 2003
111
Bibliografia
Pr ogr amming and cus tomizing PI Cmicr o micr ocontr oller s , s econd edition, Myke Pr edko, McGr aw Hill, 2001 Monte o s eu Micr obot http: //www.tanzilli.com/pbe/br as iliano/, 07/01/2003 http: //www.micr ochip.com
Jan 2003
112