Sei sulla pagina 1di 112

PICmicro Microcontrolador

S is temas Digitais I I
(Documento em ver s o Dr aft ainda em elabor ao)

Jos Carlos Fonseca 14 de Janeiro de 2003

Resumo

I ntr oduo Vr ios tipos de ar quitectur a Os micr ocontr olador es PI C PI C16F84


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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

Introduo

Micr ocontr olador

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

Arquitectura de Princeton (Von Neumann)

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

Arquitectura de Princeton (Von Neumann)

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

10

Princeton Vs Harvard

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

13

Caractersticas das famlias de PICS


P r odu t o F am lia E x ec./ in s t r u o 1000ns /4Mhz; 10 Mhz 200ns / 20Mhz 200ns / 20 Mhz 120 ns / 33Mhz 10 MI PS / 40 Mhz N de in s t r u es 33/35 ins tr ues

PI C12CXXX

Gama an (bs ica e mdia de 8 pinos ) Gama bs ica Gama mdia Gama alta Gama melhor ada

PI C16C5X PI C16CXXX PI C17CXXX PI C18CXXX

33 ins t. de 12 bits 35 ins t. de 14 bits 58 ins t. de 16 bits 77 ins t. de 16 bits

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Quanto memria do Programa


PI C 16 Cx x x - Memr ia EPROM PI C 16 CRx x x - Memr ia ROM PI C 16 Fx x x - Memr ia FLAS H

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

16

Execuo de instrues

Pipeline de ins tr ues em dois es tgios :


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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

17

Execuo de instrues
Relao entr e o s inal de clock e o ciclo de ins tr uo:

Ex emplo de ex ecuo de uma ins tr uo:

(Nota: PI C 16C73)

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

18

PIC16F84

PI C16F84, fabr icado com a tecnologia CMOS


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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

19

Diagrama de blocos do PIC16F84A

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

21

CPU

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

26

Organizao da memria

A memr ia de dados (r egis ter file) es t dividida em dois gr upos .

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

BANCO 0 INDF TMR0 PCL STATUS FSR PORT A PORT B

BANCO 1 INDF OPTION PCL STATUS FSR TRIS A TRIS B

File address 80 81 82 83 84 85 86 87

EEDATA EEADR PCLATH INTCON 68 registos de utilizao geral (SRAM)

EECON1 EECON2 PCLATH INTCON Mapeado (acesso) Banco 0

88 89 8A 8B 8C . . . CF D0 . . . FF

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Memr ia de pr ogr ama

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

32

Recursos auxiliares

Recur s os aux iliar es


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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

33

Recursos auxiliares Temporizadores

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

35

Recursos auxiliares Watch-dog

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

36

Recursos auxiliares Brown-out

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

37

Recursos auxiliares Sleep mode

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

38

Recursos auxiliares Conversores A/D e D/A

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

39

Recursos auxiliares Comparador analgico

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

40

Recursos auxiliares PWM

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

41

Recursos auxiliares Portas de I/O

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

42

Recursos auxiliares Portas de I/O

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

Recursos auxiliares Portas de comunicao

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

44

Recursos auxiliares - Interrupes

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

45

Recursos auxiliares - Interrupes

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

46

Recursos auxiliares - Interrupes

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

47

Recursos auxiliares - ICSP

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

48

Pinagem
PI C16F84 (PDI P, S OI C)

Azul (linhas de I/O) Vermelho e Preto (alimentao) Verde (funcionamento do PIC)


Jan 2003 PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 49

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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.

RB3 uma linha de I/O programvel em entrada ou em sada.


Corresponde ao BIT 3 da PORTA B.

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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.

RB5 uma linha de I/O programvel em entrada ou em sada.


Corresponde ao BIT 5 da PORTA B e pode ser programada para gerar interrupo na alterao do valor.

RB6 uma linha de I/O programvel em entrada ou sada.


Corresponde ao BIT 6 da PORTA B e pode ser programada para gerar interrupo na alterao do valor. Clock da porta srie.

RB7 uma linha de I/O programvel em entrada ou sada.


Corresponde ao BIT 7 da PORTA B e pode ser programada para gerar interrupo na alterao do valor. Dados da porta srie.

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Special Function Register File

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

59

STATUS Registo de estado


bit 7- 6 U n im plem en t ed: Maintain as 0 bit 5 R P 0 : Regis ter B ank S elect bits (us ed for dir ect addr es s ing) 01 = B ank 1 (80h - FFh) 00 = B ank 0 (00h - 7Fh) bit 4 T O: T ime- out bit 1 = After power - up, CL RWDT ins tr uction, or S L E E P ins tr uction 0 = A WDT time- out occur r ed bit 3 P D : Power - down bit 1 = After power - up or by the CL R WDT ins tr uction 0 = B y ex ecution of the S L E E P ins tr uction bit 2 Z : Z er o bit 1 = T he r es ult of an ar ithmetic or logic oper ation is zer o 0 = T he r es ult of an ar ithmetic or logic oper ation is not z er o bit 1 D C: Digit car r y/bor r ow bit (ADDWF, ADDL W,S UB L W,S UB WF ins tr uctions ) (for bor r ow, the polar ity is r ever s ed) 1 = A car r y- out fr om the 4th low or der bit of the r es ult occur r ed 0 = No car r y- out fr om the 4th low or der bit of the r es ult bit 0 C: Car r y/bor r ow bit (ADDWF, ADDL W,S UB L W,S UB WF ins tr uctions ) (for bor r ow, the polar ity is r ever s ed) 1 = A car r y- out fr om the Mos t S ignificant bit of the r es ult occur r ed 0 = No car r y- out fr om the Mos t S ignificant bit of the r es ult occur r ed N ot e: A s ubtr action is ex ecuted by adding the twos complement of the s econd oper and. For r otate (R RF, R L F) ins tr uctions , this bit is loaded with either the high or low or der bit of the s our ce r egis ter .

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

60

OPTION - Registo de opes


bit 7 R B P U : PORT B Pull- up Enable bit 1 = PORT B pull- ups ar e dis abled 0 = PORT B pull- ups ar e enabled by individual por t latch values bit 6 I N T E D G: I nter r upt Edge S elect bit 1 = I nter r upt on r is ing edge of RB 0/I NT pin 0 = I nter r upt on falling edge of RB 0/I NT pin bit 5 T 0 CS : T MR0 Clock S our ce S elect bit 1 = T r ans ition on RA4/T 0CK I pin 0 = I nter nal ins tr uction cycle clock (CLK OUT ) bit 4 T 0 S E : T MR0 S our ce Edge S elect bit 1 = I ncr ement on high- to- low tr ans ition on RA4/T 0CK I pin 0 = I ncr ement on low- to- high tr ans ition on RA4/T 0CK I pin bit 3 P S A: Pr es caler As s ignment bit 1 = Pr es caler is as s igned to the WDT 0 = Pr es caler is as s igned to the T imer 0 module bit 2- 0 P S 2 : P S 0 : Pr es caler Rate S elect bits

Bit Value 000 011 110 1:4 1 : 32 1 : 256 1:4 1 : 32

TMR0 Rate 001 100 111 1:8 1 : 64 1:1 1:8 1 : 64

WDT Rate 010 101 1:2 1 : 16 1 : 128 1:2 1 : 16 1 : 128

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

61

INTCON - Registo de Interrupces


bit 7 GI E : Global I nter r upt E nable bit 1 = E nables all unmas ked inter r upts 0 = Dis ables all inter r upts bit 6 E E I E : E E Wr ite Complete I nter r upt E nable bit 1 = E nables the E E Wr ite Complete inter r upts 0 = Dis ables the E E Wr ite Complete inter r upt bit 5 T 0 I E : T MR0 Over flow I nter r upt E nable bit 1 = E nables the T MR0 inter r upt 0 = Dis ables the T MR0 inter r upt bit 4 I N T E : RB 0/I NT E x ter nal I nter r upt E nable bit 1 = E nables the RB 0/I NT ex ter nal inter r upt 0 = Dis ables the RB 0/I NT ex ter nal inter r upt bit 3 R B I E : RB Por t Change I nter r upt E nable bit 1 = E nables the RB por t change inter r upt 0 = Dis ables the RB por t change inter r upt bit 2 T 0 I F : T MR0 Over flow I nter r upt Flag bit 1 = T MR0 r egis ter has over flowed (mus t be clear ed in s oftwar e) 0 = T MR0 r egis ter did not over flow bit 1 I N T F : RB 0/I NT E x ter nal I nter r upt Flag bit 1 = T he RB 0/I NT ex ter nal inter r upt occur r ed (mus t be clear ed in s oftwar e) 0 = T he RB 0/I NT ex ter nal inter r upt did not occur bit 0 R B I F : RB Por t Change I nter r upt Flag bit 1 = At leas t one of the R B 7: RB 4 pins changed s tate (mus t be clear ed in s oftwar e) 0 = None of the RB 7: R B 4 pins have changed s tate

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

62

EECON1 Registo da EEPROM

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

Palavra de configurao do PIC

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x17 Depois: W = 0xD9

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x17, REG = 0xC2 Depois: W = 0xD9, REG = 0xC2

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x17 Depois: W = 0xD9

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Exemplo: : Antes: REG = 0xC7 Depois: REG = 0x47

BCF REG,7

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Descrio: Activa o bit b do registo f

Exemplo:

BSF REG,7

Antes: REG = 0x0A Depois: REG = 0x8A

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: REG = 0x5A Depois: REG = 0x00, Z = 1

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x5A Depois: W = 0x00, Z = 1

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: REG = 0x13 Depois: REG = 0x13, W = 0XEC

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: CONT = 0x01, Z = 0 Depois: CONT = 0x00, Z = 1

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: CONT = 0xFF, Z = 0 Depois: CONT = 0x00, Z = 1

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x9A Depois: W = 0xBF

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0x91, REG = 0x13 Depois: W = 0x93, REG = 0x13

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Depois: REG = 0x4F, W = 0x5A

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: REG = 0xFF, W = 0x4F Depois: REG = 0x4F, W = 0x4F

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Depois: PC = direco de regresso

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: REG = 0xA5 Depois: REG = 0xA5, W = 0x5A

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

Antes: W = 0xB5, REG = 0xAF Depois: W = 0xB5, REG = 0x1A

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

101

Programa Walk.asm

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

; PORTB TRISB OPTREG STATUS CARRY RP0 MSB ;


Jan 2003

;BIT POSITION OF LEFTMOST LED

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

105

Porta Srie - Pinout


N om e do pi n o T xD Rx D Gnd RT S CT S DT R DS R RI DCD
Jan 2003

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

107

Porta Srie Offset das portas


Of f s et do en der eo bas e 0 N om e do r egis t o T r ans mitter Holding Regis ter /Receiver Char acter B uffer /LS B Divis or L atch I nter r upt Enable Regis ter /MS B Divis or Latch I nter r upt I dentification Regis ter Line Contr ol Regis ter Modem Contr ol Regis ter Line S tatus Regis ter Modem S tatus Regis ter S cr atchpad Regis ter
PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca 108

1 2 3 4 5 6 7
Jan 2003

Porta Srie

Velocidade= 1,8432 Mhz /(16* Divis or )

Velocidade 110 bps 300 bps 600 bps 1200 bps 2400 bps 9600 bps 19200 bps 115200 bps

Divis or 0x 0417 0x 0180 0x 00C0 0x 0060 0x 0030 0x 000C 0x 0006 0x 0001

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

109

Circuitos

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

110

Circuitos

Jan 2003

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

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

PI Cmicr o Micr ocontr olador es - Jos Car los Fons eca

112

Potrebbero piacerti anche