Microcontrolador 16f84

E n ~ l q u ePalaclos Fernando Ramlro Lucas J. López I - '"1i Alfaomega e ~ a - ~ a " , ,. .;Y- - ---, 1 J

Views 153 Downloads 3 File size 48MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

E n ~ l q u ePalaclos

Fernando Ramlro Lucas J. López

I -

'"1i

Alfaomega

e

~ a - ~ a " ,

,.

.;Y-

-

---,

1

J

Este libro pretende intrcducir al lector en la realizacibn de proyectos de circuitos electrbnicos construidos con el popular mlcrocontrolador PtC16F84. Para tograrlo se muestra un elevado número de ejercicios resueltos que el lector podrh desamolar facilmente con medias a su alcance.

1

Tanto los aficionados sin grandes cranocirnientos de electrbnica, pero con inquietud suficiente para montar sencillos trabajos con rnicrocontroladores, como A- los estudiantes de carreras técnicas de electrbnica y los estudiantes de Ingeniería Industrial, Telecomunicaciones o InformAtica, mcontrardn de gran utilidad esta obra para Ialrealizaci6n dB sus primeros pro~ectos. m-

Él flbr~resulta eminentemente práctico ya que contiene m& de 160 ejercicios resueltos con sus programas y esquemas, siendo muchos de ellos proyectos clAsicos, como termdmetros, relojes, calendarios, cerraduras electrónicas, control de dispfays, temostatos, temporizadores, alamas, sirenas, comunicacibn con la juegos, control de motores, microrobots. etc.

-

El software utilizado es de libre distribución y los Circuitos emplm componentes que pueden adquirirse facilmente en cualquier tienda de pwuctlos electrbnim. Para el desarrollo de cualquiera de los proyectos planteados no se precisa de grandes medios materiales, por lo que realizados resulta sencillo, I econdmico y ameno, además, se incluye un CD-ROM que contiene el software nema&, las soluciones a los ejercicios y notas técnicas.

Microcontrolador PICI 6F84 Desarrollo de proyectos

1 1

Microcontrolador PICI 6F84 h

Desarrollo de proyectos Enrique Palacios Municio Fernando Remiro Dominguez Lucas J. Lopez Perez

Alfaomega

4)+Ra-Ma'

Microcontrolador PIC lbFB4. Desarrollo de proyectos Q Enriquc Palacios Muiiicici. Feraando Kemi ro Dominguez

y Lucas J . L6pez Pérez ISBN 84-7897-600-0, edicidn original publicada por RA-MA Editorial,

MADRID. Erpaiía. Derc~hosreservxicis 0 RA-MA Editorial MARCAS COMERCIALES: RA-MA ha intentado a largo de este libro distinguir las marcas registradas de los términos descriptivos, sigiiiendo el esiilu de mayusculas que utiliza el Fabricanre, sin introci6n de infringir la marca y sólo en beneficio del propietariode la misma.

Primera edición: Aliaoiiiega Grupo Editar, Mkxico. agosto 2003

8 2004 ALFAOhlEGA GRUPO EDITOR, S.A. de C.V. Pithgoras 1139, Cul. Del Valle, 03 100 México, D.F. Miembro de Id Camara Nacional de In Ind~striaEditorial

Mexicana

Registiw No. 23 17 ISBN 970-15-1033-X

Derechos reservados. Esta obra es ptopied.d intelectual de su autor y 10s derechas de publicacicin en lengua española han sido legalmente transferidus al editor. Prohibida su repri~ducciónparcial o total por cualquier medio sin permiso por escrito del propietario de los derechus dzl copyright. NOTA IMPORTANTE La inforniacirrn cnnten ida en esta oliri tienc un i'iii ex~lu~ivamente diddctico y. por lo tanto, no esti previsto sil aprovcchamirnio 3 nivtl profcsirinai ti industrial. Las indicaciones técnicas y programas incluidos. han cidn elahnrados COI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas de control. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no será jurídicamonte responsabte por: errores u nmi R ~ t no pulsando la tecla F9, tambitn al pulsar S el icono correspondiente de la barra de herramientas (flecha azul). Animate (o teclas ctrMF9). Modo de ejecucihn animada. Ejecuta el programa de forma continua pero actualizando todas las ventanas cada vez que se ejecuta una instrucción. Es m& Eenro que el modo "Run" pero permite ver como van cambiando los registros. Tal vez sea d modo de ejecución más util y rccomendablc. Se entn en este modo seleccionando D s h i r ~ ~ > e rAninia también al pulsar sobre el icono correspondiente de la barra de herramic (doble flecha azul).

*

Hah Paro. Para la ejeciicibn del programa y actirajixa todas las ventanas. Se consigue seleccionando D~hti~gger > Run o pulsando la tecla E5. Tambidn se entra en cstc modo al activar el icono correspondiente de la bam herramientas (dos barras verticales azules). Sfep Inro. Ejecuci6n paso a paso. Eiccuta una soJa instnicciCin del progama cada vez actiializando los valores dc las ventanas. Es la forma mis lcnta de simuIaciiin pero se compnieba fáci 1mente como van evolucionando todos los registros y memorias, siendo muy facil dstectar los posibles errores. En este modo se entra seleccionando Debugger > Srep Info o piilsando la tecla F7. Tnmbjézi pulsando sobre el icono correspondiente de la barra de herramientas.

*

Resef. Equivale a un reset por activación del pin MCLR. En este modo sc entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. También si se pulsa sobre el icwo correspondiente de la barra de herramientas.

Pan1

aemho tic

Seleccionn donde Iia

i

i

la figura9-4 que

t~ t.

Esta dir icuentre, e

.

-

fine una ( mblador :

:to. Dondle quiera Ique

Ejemplo I :

A continuación se

:]Ni?LED

PORTB

...

:D~P

id

bc

~DFF

icof

bs

D

P(

-DFF

se conecta i:n cstn Iine

LED

bsf

BLOCK (Dflne n lnes (genmlmentc marcada entre las

.

tl Ranw O, : nm.;o:i1 Rznm 1 . : El LER sc conccia 3

; ACCCW al Banco 1. ; Confrgum csla línea como salida. ; hcccw :i1 Banco O. : Encicndi:el diodo L

Esta directiva emula #DEFINE del ANSI C standard. Los simbolos definidos con este mCtodo no están disponibles Dara ser usados mr el MPLAB. anterior ejemplo). 15. Si este valor no cuwrior al: de la si a lo largo del ion de variables, definida .4.

9.9 CONVERS

ARIO NATURAL A BCD

La conversión de un numero expresado en binario natural a formato hcu es una d e las opcracianes más utilizadas en los progamas con microcontrolador y que merece ser analizada en detalle. Por eiemplo el valor 124 expresado en binario n a t m 1 seria . 01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidades qudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta coni~crsihn.Un programa ejemplo que lo irnplernenta. seria el descrito a continuaci9n y que s,e pttede comprobar sobre el circuito de Iri figura 9-6. ***si

nienzo los valores a RAM 4de datos.

., -1

h e ,--m

-A

. Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrla e n m psicioncs :dcmem~irinsilamadas Ccntcna~.Docenas y L'nirladcs A d m i s a l tiiial 1las unidades estaráti en el ; nihhl c bajo del repsmi W y las dcccnas cn cl nlbhlc alto. En Ins didas LEDs canectados al o de calida se visuaii7arán !as dmenas y la* L ; El m :niuni

valor que p

:El procediniientr2 utilizado 1 :ejempln quc trai;" A.

l*...s,-,

!;

I

MICROCO~OLAWR PIC16F84.DESARROLLO DE PROYECTOS

OWMA

{Decenas)

NO, IH NO, m!

NO,mi NO. resi

NO,mi NO, m NO. mca lo

Incremcn NO. hcrt . . .. .

S).

cenas).

NO. lncmcnta (Uccenas). NO. Incremonta (aecenas).

movlw subwf

btfi~; Foto

NO.Incremnta (Decmia~). NQ. Incrementa (Decenas). NO. Incrt:menta (Dccmiaii). NO. Incrtmenta (Decenas). NO. lncrt:mcn ta (Decenas).

NO. reSra 10 NO, Festa 10 NO,resr f n NO. mt

Si. @ecenari)=O, y aldemb

NO, resta 10

NO.Inemnenta (Decenas)

hln lnm...-..M+- I r % * r * n n r l ,*v.iii~ibiiibiira(r,c bCil02,J.

incrementa (Cenfew )

sí, se

te 'Numero".

r-

1l

UDE ON",

j

Modo "TermostatqOFF", donde funciona como tmnúrnetra normal sin termostato. Se reconoce por el flag F-Temosiato-OFF, que es el bit O del ~ g i s f t nFlagsMhs. Modo " T ~ r m o s t a t ~ A je'', u ~donde t sc ajusta la ternperahira dewda cuando funcione como termostato. Se reconoce por el flag F-Tmostam-Ajuste, que es el bit 1 del registro FlagsMdou. Modo "TemostatqON, &nd< tiuiciona como termómetro normal y, a d e d , como termostato. Se m o n m por rl tliie F-Termostato-ON, quc es el bit 2 del registro FlagsModos.

; Así pues, el contenido del regism (Flas~Mdcrsorcs J.ri:;;cr Sr!iiiiiii cncrips~iladi>s scgúii se inilict?en la figiira 3 2-2.

El funcional: una mane

añadir el (

Estos disposili\*os ticneii Lina c;iracteristica de transferencia como la que se muestra en la 1Tgii1~ 32-3. Fn csta cuma se aprccia que si la tensibn de entrada aumenta desde O V hasta un nivel ,ilio la traiicicicín se prtiducc siguiendo b curva A y conmuta para el valor V I' . dcnoininnrlo amhral superior. Por cI contrano, si la entrada esti a un nivel alto y disininuyc Iiiistü 01'.I,I tranciciiiii sc prodiice sigiirendo 13 curva B cuando se alcanza el dcnoniiiiadci taoibr:il ieihrioi V ,-. I,o.; valores de y de V , - para el caso del 40106 depeiidcri de la tc.r~~~iiiii dc iilinieritnciiin y piicdcn tomar Icis valores de la t-bla 32-1, Eli !;\ ciirva d,: i:;!ti~f~rc:i~ia dcl iiivcrsor Schrnitt cs iniportante observar que la tmiisiciori dc salid:: dc i\ito - 3 Brijri cs distinta que la dc Unjo -+ Alto. A estc fenbmeno se Ic coni3i'c coino Xliaii'esis.

Tal

E st con señait 32- 1 se mi digital. Ci vuelve a ti consideni 40 106, la ;

RA-MA 1

Trigger ntiene 6

:muestra

esde O V i el valor )el alto y lcanza el el 40106 .l.

a que la 5meno se

FIguru 32-3 Curva de truisv/;~i.c~~?r'ina r.lo r 117 ini)ojntir. Triggcr ,S~,hrnift El inversor Tnggcr Srhmitt, y todos. Icis disposiii~os cor, ~ q i r : iipo ric funciominicnto, utiliza el sirnholo de la figiiia 32-3 pai:i iridici~iq i i c pucdcii rcspciririci dc una manera fiable ante striales q i i e cambi:iii con Icrititud. Ilsta s~rt-il~oI~gi;i sc h x i cii añadir el dibujo de la pifica de histcresis en la ciitr:id;i corrvsprindici~l~.

Tabla 32- 1 I "rrinresclk tT y 1 T ~ I A W o1 40 1/16 (tr)~Ii>.~ k )r il:,r{:i.

i

~:o/tio.s)

Estos circuitos son de ~ a utilid;id i ~ cuando sc clrscn c(:nii-{il:ii. 1111 r*it-L-iiitodigiVal con señales que no lo so11o señales digitalcs coil una srii:il dc i-iii di: ,iriniar;ln. En 1;i íiglir;i 32- 1 se muestra como actúa un circuito no invcrcoi- lfenlc a iitia s;:i-i;tl rliic ri;i cs ~ iii-aiiicritc i digital. Cuando la señal V I alcanza 21 valor V., ' I;i sal¡da V,, h n c c i i l : ~:I ~ i iiiil:cI i al11i y rir! vuelve a tomar un nivel bajo hasta que 1;i ciiirada n o Ilcgilc n \ ', l:,~ la tigul-i~32- 1 sc 11;i considerado un no inversor para una mis, ficil cxplicricicin. I'nia iin iiivcr;c>i. ~ o t i i ocl 40 106, la señal de salida hubiera cstado invertida reYIiEicici dc 1;i t i ~ , i i i n

5 IX

U I C R o C O U T R O W R PIC I6F84. DPSARROLLQ DE QROYECrOS

-

8M-MA

CR A M A

En conclusión, un dispositivo Trigger Schmitt produce transiciones de calida limpias y rápidas, aunque la entrada no 10 sea. Et rnimonkolador PTC I6F84A posee Ia línea RA4 con entrada Trigger Scmitt (figura 5-7) que se puede utilizar para este fin sin ~eoecidadde intercalar un 40 106. I

R7 337

32.3 LDR Las resistencias dependientes de la luz, LDR aight Dependertr Rcsistor) o fotmistencias, son dispositivos que varían su rmisíencia en funci6n

de la luz que incide sobre su supwficie. Cuanto mayor ssea la intensidad luminosa que incide sobre ella menor será la resistencia entre extremos de la misma. Para su fabricacibn se utilizan materiales fotosensibIes.Su a w n fisicn y sUnbologia

mLr.~común se muestra cn la figum 32-4.

.

.. , ,

-

8

L

.-

.. - .

. :S-.

.:

i; +.-:.

.. -

-

.. -

LDR

LDR

,

F o m fisica

Shbofo eléctrico más común de 3n LDR

I * .CL YUL Ie mcurwc ; del miiduilii LCD vc

Figz~ro32-4 LDR

:basta 99

Su valor nominal se especifica sin que incida la luz externa. Así, por ejemplo, una LDR de valor nominal 50 m, como la de la figura, tendri dicho valor si se tapa de manera que no incida la luz sobre su superficie, si se la acerca a una bombilla de 60 W

:ZONA D'EDATOS

puede bajar hasta unos 30 a.

Las principales aplicaciones de estos componentes son cnntroles de iluminación, control de circuitos con selb,en a l m q , etc. La forma más sencd1a de conectar estos sensores de luz a un rnicrocontmladores mlizando un divisor de tensión con la LDR y un potmi0metm, que permite ?jurzar el nivel de luz a detectar, A la salida'del divisor de tensión se le coloca una puerta Trigger Schmitt para conformar la señal, tambikn puede hacerse m una entrada de a t e tip como la RA4 del PICláF84A tal mucstaa la figura 32-5.

I

1

I

El p r o p m Senso-DR-Ol.acm haz de luz que incide sobre la LDR.

menta el número de veces que es c o d o un

DRG

i

Inicia

O

CAPITI~U) 32:

t M-MA

SENSORES PAR.4 MI~ROROBOTICA 519

ies de salida 84A posee la -a este fin sin

Resistor) o uz que incide ella menor an materiales ura 32-4. t

lre

- Incide luz sobre LUR --> Entrada RA4= ' O Corla ha2 de luz cobre LDR --> Entrada RA4="1' (Flanm Aspendenle) Vuetue a Incldir luz sobro LDR -> Enirada RA4= "0" (Flanai Descendente)

-

Figuru 32-5 Cvn~xionde una LDR a la mlruda Trigger Srhniirr RA4 de un P1CI 6F84A

LDR

9

; Una LDR ae i ea la entrada Trigger Schrnia RA.t/TOCKI aplicando impulsos d Timw O Eada la W de htz y la LDR En la pantalla ;vez que se os cure^ al intmpnetse ua-i objeto ;del d u l o LCD se visualiza e1 númao de veces que se hkmmpeel haz & luz en dos dlgiios ; (ha99 * o ) .

ejemplo, una si se tapa de billa de 60 W

:iluminación,

controlador cs mite ajustar el puerta Tngger :ste tipo con10

es cortado un

ORG

O

4 1

bEf

LCD-inicializa STATUS,RPO b'00101W OPTION-REG STATLiSJWO

ctf

TMaO

inicio bsf rnovlw mowf

; AoocsodSanm l. ; TMRO mino contador por flan00 scendenre de ;R A W K 1 . . Prescaier asi& d Watchdog.

; Acceso al Banco O. ; lnicializa contador.

; La seccih "PrincipP es de mantmhiento.

So10 se dedica a visualizar el Timer 0, cuya

;cuenh sc increinenta coii bs flancos ascendente prucedente de : RA4iTOCKI donde se ba conectado la LDR.

Iri

cntmda Triggcr Schriiitt

;C

d la LDR

Principal. cal1 niovf cal! cal1 goto

;ZONA DE DA

LCD-Lineal TMR0.W Bm-a-BCD

; Se pone al principio de la lhm 1.

1,CD-Byte

: Visudiza, apagando las dxenss en c a ~ o de q~iesean 0.

; k e l T u n e r O. ; Se debe visualiznr en BCD.

hiricipal

Este programa solo pertnite contrir dc forma corrccta hasta 99. Se deja al lector su mejora para ~iridcraumentar la cuenta y utilizarlo. por ejemplo, en la coinputüción de los ob,jcios que están en una cinta trarisportadora, pcrscitias quc pasan por uria puerta. etc. Estc niisrno programa se l~iiedeutilizar para otros censores que sc dcscrihcn mas adelante, por qjcmplo para cotitar el iiiutierci dc objctos que pasan por delante dc iin sensor dc iiltrasonidos. El circuilu de la figiiia 32-6 jiiilto con cl prograina Sorisor .ILDR_-fll.asmconstituye otra aplicacihri típica. Se trata de un interruptor crepiiscular, que cs un circuito para cricender una Iimpara cuando llega la noche y apagarla con los prirncros raycis del sol.

Inicio bsf bif

bcf kf bcf

PrUicipd

btfss Boto EacierideLw caii btfss

soto Y RE1.E

e

bsf

REO

4%caU btk

g*

bcf Fin

cal1 goto

INcLLrn END

+***I**bC*ir4*$******,***i******L4*

1

ScnSoI-LDR-

~*****Lm*****~**********C******I*~*Y*

; Programa de un interruptor crepuscuIat:una b p a r a se inatendrh encendida mientras wa ; de noche. Uria LDR detectarh la luz arnbicnte (sin que le Heme la luz de la Ihpm quc ;pretende conu.olar) y estad conectada a la 8ntrada Ttigger Scbrnirt RA4.

Este tipo I LED, y un recep define el tipo ya :

al lector su lacion de los :rtri. etc. Este idelante, por

11 serisor de

i

; Cuando la LDR detecte osmidad el sistema activará ima kmpara: ; - LDR ihuninada 3 Enb& PIC = "0" -A Lhpmapagada.

; - L D R a i o ~ ~ ~ i d a d EneadaPIC="l" -> ALbmpani-ida.

se conecta

:ZQNADEC~D~~S**********+*I***********I****~****I****~******~******W******** ORG hiciti ; Acceso al Bataco 1.

bsf bsf

ni constittiye

:ircuito para

s del sil.

; Lhm donde se conecta la calida. ; EnTrigger Schmi~del PIC don& ; b LDR.

#DEFRIE LmpmPORTB,I #DEFINE LDR PORTA,4

bcf bcf

; A-

bcf

;En principio

I h p a r a upapda.

al Bmco O.

Principal btfs9

LDR

gow

ApaWpara

cal1 btfss

Retad- 20s

; J?ntrada=l?, &DR en &?.

;No,LDR

i ! i m h d a por el sol.Apga la Idmpm.

Encid-

W R

baf

Fin Lampara

goto

Fin

APasaLampara cal1 Mfsc

;Espffaesietimppmnbu~Ioaat&$ : &nmda=l?, ¿LDR sigue en oscuridad? ;No,sale fuera. ;SI, mciendc la lamparrt



; Espera este tiempo p m conñrmar la luz de1 mi. ; ¿EnW=O?, iLDR sigtic ihiiaimda por ~ U del Z sol? ;No.sale hem. ; si, apw Igmpara.

Retado-20s LDR Fm

bcf Fin

cal1 soto

LamP ~

0

~

2

0

s

; Permaneceenelesardo~n~~lmtriosestetiemp~.

Principal

INCLWDE 4U5TARDOS.MC> END

32.4 FOTOSENSORES ACTIVOS Este tipo de sensores consta de un emisor de luz, que nonnahente es un diodo LED, y un receptor. que suele ser un fotodiodo o un fototransistor,la situacirjn de ambos define el tipo ya sea reflexión o por barrera como se estudiará a continuacicín.

522

M I C R O C O ~ O L A W RPICl h%M.DESARROLLO DE PROYECTOS

0 RA-VA

Sti aplicacjbn. entre om, suele ser la detecciiin de la prcscncja de objetos, medida de distancias inuy cortas, lectura de cisdigos de barras, etc. En microrob6tica suelc :para dcitectar una marca o seguir una línea (normalmente negra sobre fondo

vcc:

..

Los problemas mis comunes que suelen darse con este tipo de sensorcs son que la reflexión depende las características del material y del color;en principio los colores mis claros reflejan el haz de luz infranoja m i s que los oscuros. La luz ambiente es una importante fuente de mido a tener en cuenta.

Al 2;:

Sensor optico CNY7Q es un sensor optico reflexivo con salida a transistor (figura 32-7) Vishqk. TeIej~nken Semlcondttctors (www.vishay.cum). Tiene una constmcciOn compacta donde el emisor de luz y el receptor se colocan en la misma dirección para detectar la presencia de un objeto por medio del empleo de la rcff e x i h del haz de luz idmmoja IR (Infraredl sobre el objeto. La tongjtud de onda de habajo es 950 m. El emisor es un diodo LED infrarr~~io y el detector consiste en zin fototmnsistor. La distancia del objeto reflectante dcbe estar entre los 5 y 10 mm de distancia. La corriente directa del diodo Ir= 50 m4 y la intensidad del colector es de IC= 50 inA.

#

El circuitr Utiliza un arnplrfi ha canectado cr potcnciólrnctro qui

Vista desde arriba Aspeicto y pati1Iaje

Diagrama interno

Fiipr-a32- 7 Sensor cipiico relferivocon salida

n fransisfni.CW70

.

ara conectar estos dispositivos hay que polariz;rrlos, ésa es la fiinci~nde Inq resistencias del circuito de la fipura 32-8, donde se mt!esiran las dos posibles formas de conexión. según se quiera la salida alto para color blanca o negra.

El invmor Trigger Schmitt 40106 se intcrcata pam corifomras las tensiones a valora lógicos. Hay que tener en cuenta que los valores de msiciiin de la puerta son VTt = 2.9 V y V; = 1,9 V para una tensión de alimenlacion de 5V y no podemos variarlos.

f

CAPITULO32: SENSDRFS P,WA MICROROB~JTICA 523

P RA-MA

is, m e d i h rica suele

bre fonclo

Funcionamiento del Circuito (A): - Detecta Blanco --r Transistor Salurado - - r E n h d a al inversor "U --> Entrada al VC "1" Detecta Negro -> Transistor en Cone Entrada a) inversor "1" -r Entrada al VG'O"

-.

-

vcc=5v

VCC=SV

son que la dores más ite es una

32-7)

riene una la misma flesion del ia.10 cs 950 insistor. La .a corriente - Detacta Negro

--r Trans151oren Corte --> Entrada al inversor "O" --> Entrada al pC "1"

Figflru 3.2-8 Cirtrritu tr;tlzcosde conexiupr del CM70

El circuito de la figiira 32-9 permite ajustar la tensión de disparo del CNY70. Utiliza un amplificador oper~cional,que trabaja como comparador de tensiiin, al que se le ha conectado en la rtitnda no inversora cl sensor y a la entrada inversora iin potencibmetro que traja como un divisor de tensión. VCC'W

1'70

ción de las formas de

S

tensiones a erta son VT

ariarloS.

FiA

r

C ' A P ~ U L 33; ~ ) CONS 1-KUCC'IOYDE UN MCI1C)KOBC)T 559 -

-.

El motor izquierdri se enciientra cunectado a los d r i v m 3 y 1,qire a su vez están controlados pur las lineas KB2 y Rl33 del micmcontrolador.

El modo dt fiiiiciiiiiainiento de lo5 rnotriires se niuestra en 135 tablas 33-3 y 3 3 4 .

Tabla 33-3

roitrrol dcl inotvr, de~ttclao

Tabh 33-4 Conlrol del m u : izquierdo ~

En caso que 31 montar10 cl motor le gire en sentido contrario. In iinico que ticrie que hacer es inveitii siis cuncxicincs. La iorografía de la figura 33-19 miiestiu el aspecto quc prcscnia el microbot ''Trasto" cebo cl circuito implernentado.

33.7 NWEt DE CONTROL 33.7,l Estrategia a seguir para un rnicrribot rastreadór Antes dc rcalizar cl programa dcbzmos fijar la estrategia que Jebe seguir el inicrobut, ya sea lima qiie se cornportc c o m un robo1 rristreador 0 pala cualquier otra hinciiin De esta riuiierti podren-ios fiar el al~oriimcide conixol. €11 principio parece razonable peitsar en cualqiiiera de las siguierites estrategias a la hora de discfiar-el algor ítnici dc hiii~cioriamiento:

Primer .4ignritma. Depcndjcrido de la posición de los sensores podemos hacer que el micrrihcit tome las dccisiunes ~nostradasen la f i w a 33-20, En este dibujo los ~uacirados dc la derrclia e Izquierda indican lectura del s c i w r corresporidic~tte:si cs blaiico indica que detecta fondo blanco y si es negro que encueiipa encima de la lirica nzga.

Salida por el borde izquardo. Realizar giro a la derecha

Permanece sobre la linea n ra Seguir hacia d3aite

Salida por el borde derecho. Realizar giro a la izquierda

Está fuera de la línea girar a la derecha o a la izquierda

El P continuació cntiende el (

Analizando este algoritmo detenidamente se puede comprobar que no es lo

suficientemente bueno. puesto que el seguiiniento de la linea dcpende de la imprecisibn del camino seguirlo por el microbot, es decir, depende de la anchura

de la pista. Esto puede ocasicitiar retrasos en el recorrido, cabeceus no dcscndos o

incluso que 11egue a perderse.

Segundo Algoritmo. En este caso, dependiendo dc la posición donde se encuentra el microbot sobre b Iínea, decidimos seguir urio de los bordes, eri nuestro caso el borde derecho, es decir, la detección de negro-blaiico respectivamente por los sensores colocados a la derecha y a la izquierda tal y como se muestra en la figura 33-21.

bianco si

; ;

- S el sensor I

; lndependi ; -Sielmi ; hasta que w

; La sedal de los ;inversor 40106 ; Color Blancr ; (No estienci ; - CoIw Negm ; (Estiencima +

Salida por el borde izquierdo. Realizar giro a la derecha

Permanece sobre la tinea negra Realizar giro a la derecha

Salida por el borde derecho.Seguir hacia delante

EstA fuera de la Iínea girar a la izquierda

Figura 33-2 1 Decisio~resr7 irirrinr seghi el sepndo algoritnru

;ZONA DE DA

0 Robot Raslreador

ConfiguracibnPuertos: RA4 RA0 -> Entradas

: ZONA DE C ~

ORG Ha salido por la derecha?

lnicio

bsf

por la izquierda'

bsf

¿RAO=I?

bsf NO

Gira a la derecha: RB3=1, R02=1 RB1=1, RBO=O

Sigue camino recto: RB3=1. RB2=1 RBi-1, RBO=I

Gira a la izquierda.

Figura 3 3-?2 Diagratnu r i'rflujo dd prugrama del micvnrnhof ru~trmdor

clrf bcf hcipal movlw

bcEsi soto

movlw b&

-

1

w.4

~ I A

CAP~TLLO 37: < ' C ) ~ ~ S T R U C CD I ~f NI1N RIICKOROROT 561

a3 RA.MA

33.7.2 Programa del rastreador linea o

ia

El programa quc realiza el s c p n d o algoritino del rastrcador se muestra a continuación, es fácil deducir su funcionamiento si hernril; seguido los i-azoriarnientos y se entiende el organigrama de la rigiirri 33-22

-

k la :Iiiira

dos U

ICse C:

en

lanco tal y

3 linea

!rda

Programa de control para el micnibut TRASTO, el cm1 se desplaza siguiendo una lhea negra ; marcada ~oii~c fondo blanco a malo & pi.;ta. ;Los sensores iipticuu de reflexibn a y 7 0 están situados en Ia p a delantera inferior del ;mimbot: El sensor de la derecha esti conwbdo ü RAO y el sensor d e la izquierda a M.1. ;

;El programa adopta la estrategia de seguir la linea por el híirde derecho: ; - Si derecta que esti en el borde d m ~ h osmsor : izquierdo sobre negro y derecho sobre ; blanco sigue en hacia delante. : - Si el sensor de Ia derecha detecia liiiea negra gim hacia la daecha buscando el borde, ; independientementede como estk el sensor de la izquierda. ; - Si el microbot tiene los dos sensores fuera de la Iínra. se le hace girar a la itquierda ; hasta que vuelva a c n c o n ~ I d ~ . ; La sena1 de los sensores CNY70 se aplican a hs:entrddas del micrmontroIador a baves de un ; invavor 40 106 de m a n a tal, que para color: : - Color Blanco --I transistor saturado --> enal inversor "O" --> RAx = "1"

: entrada al inverwr "1 " -2 ; (Esti encima de la linca negra. wta dentro de La pista)

-

"O.

-CONFIG -CPOFF & -WDT-OFF & -PWRTI-ON & - X u S C LIST P=1 6FS4A INCLUDE ), (PLLATli)i (PC) Flap afectados: Nin uno Cbdigo de OP : b ] ~ d d < w Dcscripcihri: Salvaguarda la direcciiín de vuelta en la Pila y despiiés llama a la siibrutina situada cn la dirección cargada ea el PC. Tarda dos ciclos máquina cn ejecutarse. Ejemplo: Aqui cal1 Alli

Sintaxis: Openndos: Opcraciun; !ue a ésta se :ste caso. la

salta.

+

Antes instnicción: Después instrucción:

C es uno

(PC)= Dirección de "Aqui". (PC) = Direccibn de "Alli". (TOS) = Dirección de "Aqui" + 1 .

Borra f

M

Siiitaxis: Operandos: Opcraciiin:

clrf f O 5 f 1 137 OOh (0

+

I+Z Flags afectados: Z

(CiearJ

1

lmfl

CMigodeOP: ~ O ]DU M I I R Descripción: Se borra el contenido del registro 'f y el flag Z se activa poniéndose a 1". LG

ie a ésta se

;te caso, la

Ejemplo: Antes inctnicción: Después instmcciCin:

clrf FlagReg (FlagReg) = L? y Z = ¿? (FlagReg) = 0x00 y 2 = 1.

;O

(FlagReg).

576

MICROCONTROLADOR PIC 16F84. DEShRKOLLO DE PROYECTOS

Borra el registró W

C ~ W Sintaxis: Operandos: Operación:

v ~.\-h4~

clnv Ninguno OOh (W)

+

(Cllear W)

1+z

Flags afe~tados:Z Código de OP : 00 O001 1 Oxxx 1 x x u El registro de trabajo W se carga con OOh. El flag Z se pone a " 1". Descripción:

1

m

li!

1

1

Ejemplo: Antes instrucción: Después insmcción:

clnv ;0 (W)=¿? y Z=i? (W) 0x00 y Z = l.

+ (w)

Sintaxis:

Operandi

b

:!

,].i

ch~dt

Borra el Timer del Watchdog

'1

I

'1

Sintaxis: Operandos: OpcraciGn:

clrwdt

Código

Ninguno OOh WDT O 3 WDT prescalei-

+

(C'leur Wmclidog Timer)

l+PD

- -

Flags afectados: TO , PD CiidigodeOP: 00 ~ 0 0 0 0 ( 0 1 1 0 ~ 0 1 0 0 ~ Descripción: Se borra el Tirner del Watchdog (WDT). Los bits de estado se ponen a " I ".

1

Después instnicciiin:

5y

del rcgistro

Sintaxis: Operandc

(Timer WDT) = ,? (Timer WDT) = 0x00 bit de estado = 1 bit de estado =1

Operaciiii Flags afe< Codigo di Descripci

5

Complementa f

Operandos:

Ejemplo:

O 5 f 5 1 t7 d 6 [0,1]

Operación:

(7) + (destino)

(Cumplt.rnent$

nW

Flags afectados: Z Descripciiin:

twi. 113

Ejemplo:

Hace el complemento del contenido del registro 'f bit a bit. El r.esultado se almacena eii cl registro 'f si d=l y cn cl registro W si dlO, en este casci 'f no varía. comf Regl ,O : (Real 13 CW)

-

(Regl) = b'00010011',(W)= ¿'? (Reg 1) = b'00010011', (W) = hvl1 101 1 ceros') Y Z = O.

Antes instnicción: Después instmciiún:

Sintax 1s: Operandos: Operacibn:

\

6

3

(invertido unos y

decf f tl"

(Issue apl Error Afe,s.sage)

Esta directiva genera un mensaje dc emir idintjco A cualquier error dcl ensamblador MPASM. Si el psuceso de ensamblado ejecuta esta directiva aparcct: la cliííica pantalla de error. El texto dcl mensaje debe ir eiitrecornitlado y puedc tcner hasta 80 caracteres.

Ejemplo

En

memoria

1

C M-.Mi\

APENDICE D: PRTNCIPAI,ESDIREC:TIVASDEL ENS!\L~ULAUORMPASM 597

,\RA-~IA

rnacro

Ejemplo: C'hequeoError

MACRO Argumento1 IF Argumento1 % SS :Si el argumentoestá fuera de rango ERROR "emir-c hrckhg-O l el argumento está fuera de rango" ENDIF

efinrlion)

EN DM

1

CRO. Liis

Otro ejemplci se describe en la directiva 1F.

IF iblador

Comienza un bloque de código condicional

Sintaxis:

IF

... .... ENDIF kn,~fa~rfl

I

(Begin Conditionally Assemhled C'oJe Blvck)

Descripción:

'uhr~l,. Su -irlores tan

C'umienzo dc cjecucihn de un bloque condicional dc cnsarnblado. Si .;t:tpr;- es verdadera el ciidigu ii~inediatoal iF sc msariiblara. En caso contrario, tas itistnicciories siguientes sc saltoii hasta encontrar una directiva ELSE 0 una directiva ENDIF.

anc.r;t t i i i s :cioncc de M1 c1 caso

La evaliiación de una expresión que sea cero se coi-isidcradesde el punto de vista dc la lógica falsa. La evaluaci8n de una exprcsjon que resulte cualquier valor distinto de cero se considera como verdadera. La directiva IF cipcra con el valor lógico dc una expresión: una expresiiin verdadera ( h e ) garantiza devolver un valor distinto de cero, y ralsa @se) cl valor cero.

p". ? error

:rror del parece [a ,ner hasta

i

Ejemplo 1: JF

Verjinn= 1 00 hOA

rnovlw rnovwf

io-l

rnovlw

0x01

movwf

io-l

;Comprueba la versión actual

ELSE ENDF

Ejemplo 2: Eri e1 siguiente ejemplo si la etiqueta "FinTahla" se localiza en una dirección di: tiicmona de programa mayor de OxFF el encambiador emitiri un mensaje dc error. ...... FinTabla IF (FinTabla> OxFF) ERROR "iCLilD.4DO!: La tabla ha superado el tam;iiru de la pigina & los" h4ESSG "primeros 256 byks de memoria ROM. NO funcioiiarb correctamente." ENDF

598

MlCROCCiNI~ROLACiOKPIC lbF81. DESAMOLLO DE PROY FCTOS

$2 R A - ~ I A

-

INCLUDE Sintaxis:

Incluye ficheros fuentes adicionales MCLUDE ). Si se especifica totalmente el camino del ficheru includc solo sc buscara en ese canino. Si no se indica camino el orden dc la búsqueda es: el directorio activo actual, en segundo lugar 21 directorio del archivo fiiente y por último cn el directorio ejecutable de MPASM. Sc explica eii el cripitiilo 10. 11

by

Ejemplo:

1;

INCLUDE '

i

Descripción:

(Lisding ilpliuns)

I

I i f

i

MES%

La directiva LlST tiene efecto sobrc al proccso de ensamblado y sobre el formato del fichero listable de salida scgiin una larga lista de opciones que se detallan en el manual "MFASM L'SER 'S GUJDE" y en la ayuda del MPASM. De todas la más importante es la que indica el procesador utilizado scgúti detalla el siguiente cieniplo.

I

Ejemplo: LIST P-P16F81A

Sintaxis: 1

; El PIC16FMA cdmo procesador utilizado.

It i

4

1

y

1

!

1

Descripcihi

Ect; finalizar el caractcrcs.

APENDIC.~ L) PRINCIPALES I)IRECTTVAS DEI- ENSAMRI AUOR MP.4SM

I~A-M,~

MACRO

adicionales

Sintaxis:

de la

o hay ningl~n BANCO O

-

--

INOF

80h

OPTION

81h

PCL

82h

E 2

83h -

85

FSR

STATUS FSR

PORTA

TRISA

85h

TRlSB

--

86h B7h

EECONI

BBh

'",

€€CON2

89h

Cij

PCLATH

8Ah

INTCON

8Bh

.. .

04h

BANCO t

-

YI

STATUS

84h 3

'aE

OCh MAPEADO EN BANCO O

NO IMPLEMENTADO FISICAMENTE. (SE LEEN COMO "O").

F i g i t u E-I Memorzu R4 M de datos del PIC16F84

6U2

hiICROCONTROLADClR PlC 16F84.DESARROLLO DE PROYECTOS

'8;

ICA MA

Rl

disp~nib

mznioria

con cl re;

(T

aplicada

microcor alimcntai

PCL ticr csl-rito con los

PIC I 6FX8 corrcspot;

RAh4 O21

escritos c rcgistro P la alimeni

Tabla E-l Rcgi..~h.os del SFR. (Speciaibitnclinn Rcgisters)

OOh Banco O, 80h Banco 1

4 ui

rcgistro tisico)

O1h Banco O (Timer O). Tempori7adorlcontador de 8 bits. Se incrementar con una señal externa aplicada al pin KA4IlOCKi o de acucrdo a una señal interna proveniente dcl reloj del microcontrtilador. Se explica ampliamente en capitulas 15 y 18. Al conectar la alimentación su conten ido es desconocido, (TMRO) = b'xxxxxxxx'.

PCL

un registro fisico)

-

Fl i

Registro para el direccionamiento indirecto de datos. Éste no es un registro disponible Eisicamcntc. Utiliza el contenido del FSR para seleccionar indirectamente la memoria de datos o RAM del usuario; la instrucción determinará lo que se debe hacer con cl rcgistro seiíalado. El direccionamiento indirecto se explica en el capítulo 16.

lineiic del Pucrtri A

02h Banco O, 82h Banco 1

(Progrcdm Counter Low byte). Byte bajo del contador de programa, figura E-3. El PIC16F84 dispone de un contador de programa de 13 bits. Sus bits de menor peso corrcspondcn a los 8 bits del rcgistro PCL, implementado en la posición de memoria RAM 02h (y duplicado en la posición 82h del Bancol} por lo que pueden ser leidos o escritos directamente. Los cinco bits de mayor peso del PC corresponden con los del rcgistro PCII que no pueden ser leídos ni escritos directamente (figura E-2). Al conectar la alimentación se inicializa a (PCL) = b'00000000' y (PCH) = b'00000' PCH

,

8 7

5 7 PCiAT;

PCt

o

'k

AL" resultado

PCLATH

Figura E2 ComposiciOn d ~PC l en instrucciones con PCL como destino PCH 12 11 10

2

K

PCL

8

7

o

PCLATH 4 : 3 >

PCLATH

f i q r u E-3 Compu,~iciÓn del PC en ímtmcciones "cal1" y "goto

"

-M I I ' R I Y ~ O Y 'HOLAUOR I PIClbFR4

604

DEShRKOLLO DE PROYECTO$.

STATUS

I

RA-MA -

03h Banco O, 83h Banco 1

El registro de estado o STATUS indica el estado de la Última operación aritmética o lógica realizada, la causa de reset y los bits de seleccibn de banco para la memoria cit. datos. A los bits del registro de estado se les suele denominar tlags o bandera. Al conectar la alimentación su contenido es (STATUS) = b'0001 lsxx'.

FSR

1

Scli: INDF se direcciona contenido 1

Tabla E-2 Regisrro de esdudo n STATUS octavo bit, En instrucciones de suma

aritméticas se actila cuando se presenla acarreo desde el bit m i s significativo del

C

(Cany bitJ. Flag de acarreo en cl

resultado, lo que indica que el resultado ha desbordado la capacidad del registro

sobre el que trabaja, es decir. el resultado de la operacibn ha superado el valor 11111 1 1 1:. (25Sio),que es el maxinlo valor que se puede representar con 8 bits. En el capítulo 8 se explica en dctalle su funcionamiento: o C = O. En la suma significa que no ha habido acarreo y en la resta quc e1 resultado ha sido negativo.

o C =: 1. En la suma sjgtiifica que ha habido acarreo y cn la resta q i ~ zcl

+

resultado ha sido positivo.

DC (Digit Cany). Flag dc acarreo en el 4" bit de nienos peso. En operaciones aritméticas se activa cuando hay un acarreo entre el bit 3 y 4. es decir, cuando

hay acarreo entre los nibbles de menor y de mayor peso. Z (zero). Flag de cero. Se activa a "1" cumdu e1 resultado dc una uperacion aritmética o IOgica es cero. o Z = O. El resultado de la ultima operación ha sido tlistiiitu de cero. o Z = l . El resultado de la última operacion ha sido cero. /PD (Power Doii'n). Flag de bajo cuiisuiiio. Es un bit de siilo lectura, nci puede

ser escrito por el iisiiario. Sirve para detectar cl modo de bajo consunirl. o /PD = O. Al ejecutar la instrucción slcep y entrar en reposo. o /PD = 1. Tras conectar la atimentación VD,, o al ejecutar clvwdf. m 0 (Timar Out). Flag indicador de fin temporizacibn del Watchdog. Es iin htt

de sólo lectura, no puede ser escrito por ct usuario. Se a c t j ~ aen "O" cuando cl circuito de vigilancia Watclidog finalizii la teniporizacion. Sirve para detectar si

una condición de reset fue producida por el Wuichdog Tlmer. o ITO = O. Al desbordar el temporizador del Watchdcig. o ITO = 1. Tras conectar VD, (funcionamiento noitiial) o al ejctiitar las

instrucciones clrwdt

o sleep.

RPO (Regist~i-Bmik Select bit). Selección del banco para cl direccionamiento directo. Señala el batico de memoria de datos seleccionado. o R P O = O. Selecciona el Banco O. o RP I l. Selecciona el Banco 1.

escribirse

Ranco 1. alimentacic

Puei

escribirse c (entrada o Banco 1. interrupcio entrada.

(EE, que accede (EEADR)

W1 (Register Bunk Select bit). No utilizado en el PlC 16F84. 1RP1.No utilizado en el PIC 16F84.

Banco 1 aritmética o

memoria de

>anderas. Al

'm

I

1

Bit O

1

FSR

04h Banco O, 84h Banco i

Se lector de registros para direccionarniento indirecto. En asociación con el registro INDF sc utiliza para seleccionar indirectamente los otros registros disponibles. El direcciunamiento indirecto se explica en capitulo 16. Al conectar la alimentación su contenido es desconocido, (FSR) = b'xxxxxxxx'.

I I

I

de suma lificativo del

1 del registro xdo el valor u con 8 bits. les

resta que el resta que el

PORTA

O5h Banco O

Puerto de entrada/salida de 5 bits (pines RAO a RA4). E1 puerto A puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de sus pines se llama TRISA y esta localizado en la dirección 85h del Banco 1. Su pin RA41TOCKi también puede servir de entrada al Timer O. Al conectar la alirnentaciiin ueda confi~uradocomo e&da.

a

PORTB

06h Banco O

operaciones

ccir, cuando

ra, no piiede o.

Puerto dc cntrada/salida de 8 bils @ines REO a RB7). El puerto B puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de sus pincs sc llama TRiSB y csta localizado en la dirección 886 del Banco 1. Algunos de sus pines tienen funciones alternas en la generación de intempciones (ver capitulo 17). Al conectar la alimentación queda configurado como entrada.

EEDATA

08h Banco O

fr.

ig. Es un bit Y' cuando cl a detectar si

ejecutar las

(EEPROM Data Hegister). Contiene los bytes que se van a escribir o que se han leido de la EEPROM de datos. Al conectar la alirnentacion su contenido es desconocido,

(EEDATA) = b'xxxxxxxx'.

EEADR

09h Banco O

(EEPROM Address Register). Contiene la direccion de la EEPROM de datos a la que acceder para leer o escribir. Al conectar la alimentación su contenido es desconocido, (EEADR) = b'xxxxxxxx'.

i. 1

1

hf1CRUCONTKi)LAWR PIC\ hFF6. DESAHKOLLO DE YROI'FL'TDS

606

PCLATH

% -:

I C h$.\ ~

o A Banco ~ 0

(Pc Latch Hágh). Registro qiie permite acceder de toma indirecta s la parte alla del contador de progamas en algunas instrucciories, la1 coma se iiescrihc en la figura E3. Al concctar la aliinentacibn se resctea (PCLATH) b'---U001)O'.

INTCON

OBh Banca O. 8Bh Banco 1

(fntc~.rupisCdtiriwl Regkrer). Registro para el coiitrol de las intcmpciones. Es el encargado dcl manejo de las inter-pciones. í'onticiie los R bits que se rriucstran en la tabla E-2. de Tos cuales unos acmn corno flags señafadoresdel estado de la iiitemipcion y otros como bit de permiso o auturizacicin p a n que se pueda prodiicir la intcrrupciun. Al conectar la alimentación su conteiiidu es (TNTCON) = b'00Ci00110.u'.

Tublu E-3 Registro de c'otiluol dt'la.c.). Flag de habilitacion global del permiso de intempciiin. Se borra aiitoriiaticatrietitc cuando se reconoce una interrupción para cvitar que se prodiizca ninguna otra mientras se está atendiendo a la primera. Al retornar de la intcrrupcihn con una instrucción re@e, el bit GIE se vuelve a activar poniéndose a "1 ". o GIE = O. No autoriza interrupción de niilgun tipo. o GIE = l . Autoriza cualquier tipo de interrupcihn. Se pone a "1" aiitumaricamctitc con la instruccion resJit7.

itadu dc

ado. mbiadu. externa

[N?'.

OPTiON

81h Banco 1

Registro de configuración i-iiiiltiple, aunque su misión principal es gobernar el comportamiento del TMRO. Algunos microcotitroladores PIC tienen una ~nsmccion denomina& también option, por ello. el fabt.icatite Mi~~rochip recomienda darle otro iiombrz a cstc registro. Así en el ficliero de definición de etiquetas P16F84A.INC' se le non-ibra ccittio OPTION-REG. Al concctar la alimentación todos sus bits se ponen a "1", (OPTION-REG)= b'llllI111'.

-ri!pción por

(FFti) a

iiri

Tohku E-3 Registro OPTIONREG

PS2:PSO (Prescaler Rafe Select bits). Bits para seleccionar los valores del Prescaler o rango con el quc actúa el divisor de frecuencia, segiin la tabla E-5.

PSA (Prescaler Assignment hitj. Asignacioti del divisor de frecuencia. El Prescaler es compartido entre el ThlRO y el WDT: su asignación es mutuamente excluyente ya que solamente a uno de ellos se puede aplicar el divisor de frecuencia a la vez. o PSA = O. El divisor de frrcueticia se asigna al TMRO. o PSA = 1. El divisor de frecuencia se asigna al Watchdog. TOSE (TMROSnitrr-eEdge se lec^ bit). Selecciona flanco de la seña! al TMRO. o TOSE = O . TMRO se incrementa en cad;i tlaiico ascendente de la señal aplicada al pin RA41TOCKI. o TOSE = 1. TMRO se incrementa en cada flanco descendente de la scñal aplicada al pin RA41TOCiU. TOCS (TMROClock Souvce S~lt7t.fbii). Selecciona la fuente de señal del TMRO. TOCS = 1. Pulsos intrd~icidosa traves del pin RAWTOC'M tTMRO como contador). INTEDG (Inrrrrupf Edge Selecr bit). Sclector de flarico de La interrupcibn rNT. o INTEDG = O. Interrupción por flanco descendente del pin RBOIINT. o INTEDG = L . Interrupción por flanco ascendente del pin RBOIINT. IRBPU, (Rmislor Purt B Pul/-Up Enclblc bit). Habilitación de las rcsjstencias de hll-Up del Puerto B. o IRBPU = O. Habilita las resistencias de Pull-Up del Puerto R . o /RBPU = 1. Deshabilita las resistencias de Pull-Up del Puerlo B. o

Registro de configuración de las líneas del Puerto A. Es el registro de control para el Puerto A. Un "O" en el bit correspondiente al pin lo configura como salidii. mientras que un "1" lo hacc como entrada. A! igual quc cl Puerto A, solo disponc de 5 bits. Al conectar la alimentación todos sus bits se potien a " 1",(TRISA) = b'--- 1 1 1 1 1 '.

E Bit 7

m

:' RA-MA

A P ~ N D I CE: KEGIS'IROS ESPECIALES 609

r RA-MA

86h Banco 1 Rcgistro de configmcion de las líneas del Ptierto B. Es el registro Jc control para cl Puerto A. Uii "O" en el bit corrcspondietite al pin lo configura como salida, mientras quc un "1" Ici ha-c corno entrada. Al conectar la alirnentaciiiri todos sus bits se ponen a

"l".(TRISB)-b'11111111'.

EECONI

88h Banco í

(EEPROM L'o~rh.01Register 1). Registro para cl coiitrol de la rnemr~riaEEPROM de datos. Al conectar la dimcntación su contenido es (EECONI ) = b'--4~001)'.

uencia. El nación es aplicar c l

NRO. e la señal

le la señal

1 TMRO. 5adiir).

4RO cutriu

'

Tahlu E-6 Rt.gisiro de ronlrol de la EEPROM de dubox IWCON

RD (Read Controi Bit). Bit de control dc lectura cn la EEPRIIM. Al ponerlo en "1" se inicia la lectiira de un byte en la EEPROM de datos. Estc bit se limpia (se

pone a "0")por h~rdwareautoditicamente a[ finali7ar la Iechira de La posición

EEPROM.

o RD = O. No inicia la lectura de la EEPROM o la misma ha terminado. o RD = 1 . Inicia la lectura de la EEPROM. Se borra por tiardware. WR tWritc1 Control Bid). Bit dc coilti-o1 de escritura eri la EEPROM. Al prinerlo en "1" se inicia uwi escritura dc uri byte en la EEPROM de datos. Este bit se

limpia (se pone en "0") por hardwñre autciinaticaniente una vez Ea escritura de la EEPROM tia terminado.

u WR = O . No inicia la escritura de la EEPROM o la misma ha terminado. o WR = l. Inicia la escritura de la EEPROM. Se borra por hai-dware. WREN (EEPKOM WrifeEnuble bir). Permiso de escritura en la EEPROM. o WREN = O. Prohíbc la iiscrjtiira de la EEPROLl o WREN = l . Permite la escritura de la EEPROM. WRERR (EEPHOM Writt3 Error FIug Bit). Flag de cnor en la escritura. Se posiciona a "1 " cuando la operación de escritura temiria prernaturamcnte dehido

a ciialquier condiciiin de rcsct. . o WRERR = O. La operación de escritura se ha completado correctamente. o WRERR = l . La operacibn dc escritura ha terminado prematurariientz. EElF (EEPROM Wrile Op~ratiunInlernyf Flag BIEJ. Flag dc cstado dc iiitzrrupciijn por finalizaciiisi de escritura en EEPROM. Señala el final con éxito de la aperacion de escritura de un byte en la EEPROM.

1' ¤

61U

hliCRKON~CR0LADOKPICl hF84 DLSARROLLU DE PROYEC'I'US

I,R~-MA

o EEIF = O . La operación de escritura de la EEPROM no ha terminado o no comenzó. o EEIF = 1. La operación de escritura de la EEPROM ha terminado. Debe borrarse por software. Bits 5, 6 y 7 (Unimplcmentcd). No implemcntados fisicatnente. Sc leen "O".

89h Banco 1 {EEPROM C'untrol Register 2). Este registro no est5 implemeníadci fisicamente, por lo que es imposible leerlo (si se intenta leer, todos siis bits se leen ccinio ceros). Se emplca como dispositivo de seguridad durante el proceso de escritura de la EEPROM, para evitar las interfercncias en el largo intervalo de tiempo que prcciva su desarrollo.

REGISTRO DE CONFIGURACIÓN El PIClBF84 dispotie de una palabra de configuracion dc 14 bits que se escribe durante el proceso de grabación del microcontrolador y que no se puede modificar dwantc la ejecución de un programa. Dichos bits ocupan la posición reservada de men~oriade programa 2007h.

Tabla E- 7 Regisbu de coi$girroción (ConfigwrationWorrl)

FOSC (Flag Oscilntor Selecdioral. Selecciiiri del tipo de oscilador: o FOSC - 00. Oscilndor de bajo consunio LP (32 kH7 - 200 kHz) o FOSC=01.Osciladorestind;lrXT( 1110kHz-4MHz) o FOSC = 10. Oscilador de alta velocidad HS ( 4 MHz - 20 MHz) o FOSC = 1 1. Oscilador cle bajo coste RC. WDTE (Wutclrltug EnaAle). Bit de habilitación dcl Il'atchdog. u WDTE = O. Watchdog deshabilitado. o WDTE = 1. Watchdog habilitado. PWRTE cPori'rr-up Timer Encrhlcl. Activaciiin del temporizador Power- Up. o PWRTE = 9. Temporizador Poww- Up deshabilitado. o PWRTE= 1.TernporizadorPci~u~r-Uphahilit;ido. CP ~C'ode~ot~~~dionbit~BitdeprotecciÓndeciidigo. o CP = O. Toda la memoria de programa cstá protegida contra lecmas indeseables.

VPP

D

-ainente,

ros). Sc PROM, lo.

GRABADOR T20-SE

escribe

odi ficar latia de

1K5

DTh

Data 110

--

TxD

-1 ..

Zocaro PIC tA Pines

TxD

R4 I k

'dPP

A VPP

D TxD

D CCK

4

2-lo

PIC 28

Ptnas

-L -

& -

-

Fi-quraF- l E~qia~nzu elt'ritico

-

-

Cara de componentes

Cara de pistas

Figura F-2 Placa de Circuito Im11w.so quc u

LlSTADO DE COMPONENTES:

D3,DJ D5 D6 JI

1N414Y Zénerde 5Vl %W 1 Zenerde 8V2 L/zW 1 Zocalo 8 pines

J2 53 P1

Zócalo 18 pines i Zócalo 28 pines 1 Conector DB9 hembra BC547 'I

Ql,Q2 43

I

A-:. . -2

-:-- ---:-

. .;.1

+> -< +.:* m

:

y&:%:/

4

1

BC557 s.

R1

100Z

R2

IOk

1 \

Figirru F-3 Grabador TEtO-SE

ASCII es el acrhniinci tic . 4 r m ~ r l l ' r l t l Stund~rrdCede for Iraformadion Jnb~rchange (Código Normalizado Arnet.iclirio liara el Intercambio de Información). E1 código ASCIl cs un sistcrna de rcprcsentación utilizado en los sistemas digitales (incluido ordenadores) que utiliza un esquema de codificacion que asigna valores numéricos a las letras, níiriieros. signos de puntuación y a otros caracteres. Al normalizar los valores utilizados para dichos caracteres se logra que, en sistemas dipitales, microcontroladores, ordenadores y programas inforrnáticos intercambien infomaci8n. Dado su origen en el sistema binario, el código ASCIl cstá coinpiiesto por 256 valores quc cstan divididos a la mitad en el conjunto est;indaiízado y el conjunto extetidido de L 28 valores cada uno. 4

Cbdiga ASCII estiindar. E1 conjunto ASCII bkico, o estandar. utiliza 7 bits para cada codigo, lo que da como resultado 1211 cbdigos de c m c t e r c s desde O hasta 127 (OOh hasta 7Fh hexadecimal). Son los niismcis eri todos los sistemas operativo., y lenguajes de programación. Norn~dtnentc estos códigos se representan con 8 bits, poniendo el octavo bit o MSB a cero.

Cúdigo ASCll extwdido. So11 10s caracteres del 128 hasta el 255 (8Oh al FFh hexadecimal) y no hay uii aciierdn respecto a ellos. Se asignan a conjuntas de caracteres que varían según los fabricantes y programadores de software. Estos códigos no son intercaiiihinbles entre los diferentes programas y sistemas digitalcs como los caracteres ASCII estándar. En el conjunto de caracieccs ASC'II cstandar se diferencian dos grupos:

Códigos de control. Los prirneros 32 valores (del O al 31) están asignados a los cbdigos de cotitrol de coniunicaciotics y de impresora (caracteres no imprimibles,

1

014

Xi II'R( X7C)KI'ROI.AIIOK P-C: I I,t $4. DESAKKOLI.0 CIE PROYFC'TOS

CI K