4. 1
1 h
Microcontrolador PICI 6F84
Desarrollo de proyectos
Enrique Palacios Municio
Fernando Remiro Dominguez
Lucas J. Lopez Perez
Alfaomega 4+
)Ra-Ma'
5. 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,
reservxicis 0 RA-MA Editorial
MADRID. Erpaiía. Derc~hos
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 a editor. Prohibida su
l
repri~ducción parcial 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 in-
dustrial. Las indicaciones técnicas y programas incluidos. han cidn elahnra-
dos COI] gran cuidado por el aur(ir y reproducidas bajo esirictas normas de
control. ALFAOMEGA GRUPO EDITOR. S.A. i1eC.V. no será jurídicamon-
te responsabte por: errores u nmi<ioner; dairos y perjuicios quc se pudieran
atribuir al uso de la información comprendida en este libro, ni por la utiliza-
ci6n indebida que pudiera dársele.
Edición autorizda para venra e n Mkxici<i y todo el continente americano
-
Impreso en Mdrico PrintM in M e ~ k o
6. A mi m yer. Maribrl, por- sic a p q n o ,c.ari,ioy paciencia.
rk
.4 mi,v hijos. C'i-istN ra Enrique. mi rnaymfi~cnir liltiyrias 1'slrtis/;rcciones.
A n l i PUIJI-CS. Eririque y Sagr~rriu, rc.c.ujiociniieritu a su sacrificio.
~ cbti
Enrique
. mir pudre.^, hgo y demús ppersoncls it~~port~irirta v i h .
1 ~k rni
Lucas
A mis dos mujeres, Natalia con la que decidí compurrir mi.? dius *c ,A~icinicii me
que
uir7gi.u cudu diu J J . ~ narici y que a sus tre.y oños no deju de quewr rlj~tltf~irrne
que a
escribir y progrumor microcon~oladores per.i/L:r.icos.
y
Fernando
7.
8.
9. Capitulo 1: MICROCONTROLADOR PIC16FS4..........................................
1.1 Micrricontrolarlures PIC ...................................................................................
1.2 Alimentación de un PIC16F84 .....................................................................
1.3 Puertos de entraddsalida ..................................................................................
1.4 Oscilador ...........................................................................................................
1.4.1 Oscilador XT .....................................................................................
1.4.2 Oscjlador RC .....................................................................................
. .
1.4.3 Osciladores HS y LP ......................... .............................................
1.4.4 Utilizando una señal de reloj externa ................................................
1 . 5 Reset ..................................................................................................................
1.6 Montaje del entrenador.....................................................................................
capitulo 2: PERTFÉFUCOS BASICOS .........................................................
2.1 Diodo LED........................................................................................................
2.2 Interruptores y pulsadores ..................... . ....................................................
2.3 Entradas &@talescon optoacopladores...........................................................
. .
2.4 Display de siete segmentos .........................................................................
2.5 Controlando cargas a 230 V .............................................................................
2.5.1 Conml con relé .................................................................................
2.5 .2 Control con re14 miniatura en cápsula DIL .......................................
2.5.3 Control mediante fototriac .....................
. .........................................
2.5.4 Conml de potencia con tnac ..............................................................
2.6 Zumbador..........................................................................................................
10.
11.
12.
13. 9.3 Saltos en funcidn de un registro................... .... ............ ............................... ,.,..
. "decfsz f,d" . ..... ............... ....................... .............. ...........
9.3.1 I ~ h c c i o n
r
9.3.2 Instrucción "incfsz f,d"............................................ ....... ....... ..... .......
.,
9.4 Cotnparacion de registros.. . ................... .. ...... ......... ....... .. .............. ... .. ... ..
. . .. .. .. .
9.4.1 Comprobar que un registro vale O .................................... . ......,......,.
9.4.2 Comprobar igualdad enlre dos regismos.................. ..... .... ......... . .... ... .
9.4.3 Comprobar que un registro es mayor o menor que otro....................
9.4.4 Programa ejemplo..... ..... .................... ............ ...- . ....... ....... .... ..... .. .
.. ... ..
9.5 Lazos o bucles........................ ...........................
...................,.,.,.., .....................
.
9.5.1 Lazo de repeticihn infinita......... ...................... .......... .. ....... .... ..
... ...
9.5.2 Lazo con condición de testeo.......... ................................. ...................
9.5.3 Lazo que se repite un numero conocido de veces..............................
9.6 Programacion y algoritmo.. ............... ......... . ..,....... ..... .. . .. ,.. .. . .. ... ....... ...
.. .. .. .. ..
9.7 Diagrama de flujo ..... ..... ..... ..
.. . .. .. ... ... ... .............. -................. ..... ...........
. . .
9.8 Más directivas importantes .............................. ........................... .....................
9.8.1 CBLOCK y ENDC............................ .... . ............................. ..............
9.8.2 #DEFINE ..................................... .. .....................................................
9.9 Conversionde binarionatural aBCD................................. .. ..........................
.............. .............. . .......,..
9.10 Salto indexado ......... ........................... .....................
9.1 1 Salto indexado dcscontrolado ........................ ..... . ....................................
9.12 Prácticas de labamtorio ..................................................................................
Capitulo 10: SUBRUTTN.4S................ .......... ............................... .....................
10.1 Subrutinas ...................... .
.. ......................... ........................... .....................
1 0.2 Subrutinas anidadas.... ...... ......... ..... ............... ................. .. ..... ... .. ......... ..... ...
.. .
10.3 La pila .....................
. ............... .....................................................................
10.4 Tnstnicciones "call" y "retuni".......... ... ................. .. . ....... .. . .. ............. ..
. .. .. .. .. ..
10.5 Ejemplo de utilización de las subrutinas........... ...........................................
10.6 Ventajas de las subrutinac ..................................... ........................................
10.7 Lbreria de subrutinas........... ................. ...................... .. .... ....... ......... ..
.. .. .....
10.8 Directiva "INCLUDE"........... ..... ....,.. ........ ... .... ....... ... ....... .......... ....... ... ..
.. ... .
10.9 Simulación de subnitinas en MPLAEI . .......... ....... ....... ................... ..... .., ....
...
.,
10.10 Programacion estructurada........................... .. .q,.,.............,,,
...qq.....,,,-..........,q,
1O .11 Practicas de laboratorjo ................ ..... . ........ ..... .. .............. .......... .. . .. ...
. ... .. . ..
Capitulo 11: MANEJO DE TABLAS .....................................................
1 1 . 1 Tablas de datos en memoria de programa .....................................................
-'
11.1.1 Insmccion retlw ............................................................................
11 73
1 1 -1.2 Directiva "DT' .......... ...................... ... ..,.,... .., ..... .......,., ,.,....-.......
..... .
1 1.2 M i s directivas.................................................................................................
11.2.1 MESSG .......................................................... .
...................................
11.2.2 ERROR ..............................................................................................
11.2.3 [FyENDF........................................................................................
14. XIV MICRW0NTRC)tADC)R PIC'IbFB4. DCSiiR ROLLO DE PROYECTOS w nA-hW -
$
1 1.3 Gobierno de un display de 7 segmentos .................................................... 162
1 1.3 Practicas de laboratorio ..................................................................................
Capítulo 12: SUBRUTINAS DE RETARDO ................................................
12.1 Ciclo miquina ...............................................................................................
169
i
12.2 Medir tiempos con WLAB .................................. .................................. 171 I
12.3 .
Instniccion 'hop"..........................................................................................
I
17 1 1
12.4 Retardos mediante lazo simple ..................................................................... 172
12.5 Retardos mediante lazos anidados............................................................... 174
12.6 Librería con subnitinas de retardos.............................................................. 176 I
12.7 Rebotes m los pulsadores ......................... . . ................................................ 18 1 1
12.8 Practicas de laboratorio.................................................................................. 184 1
Capitulo 13: LCD ................................................................................................ 187 C
13.1 Visualizador LCD........................................................................................... 187 1
13.2 Patillaje ............................................................................................................ 188 1
13.3 DDRAM ......................................................................................................... 189 1
13.4 Caracteres definidos en la CGROM ............................................................ 191 1
13.5 Modos de funcionamiento........................ ................................................. 19 1
.. 1
13.6 Comandos de control ................................................................................. 192 1
13.7 Conexión de LCD mediante 4 bits ..............................................................
1 3.8 Librería de subnitinas .................................................................................... 194 C
13.9 Visualizacibn de caracteres .......................................................................... 201
1'
13.10 Visualizacj6n de valores numéricos .............................................................. 202
1
13.1 1 Conexibn de LCD mediante 8 bits ................................................................ ?O3
1
13.12 Visualización de mensajes fijos ..................................................................... 204
1'
13.13 Visualización de mensa-iesen mo~iniiento ................................................... 208
13.14 Prkticas de laboratorio ......................................................................... 209
1'
Capítulo 14: EEPROM DE DATOS .................................................................. 213
1'
14.1 Memoria EEPROM de datm ......................................................................... 213 1'
14.2 Registro EECON 1....................................................................................... 215 1 '
14.3 Librería de subrutinas..................................................................................... 216 1'
14.4 Lectura de la EEPROM de datos ................................................................... 2 17 1'
14.5 Escritura en la EEPROM de datos.............................................................. 217 1'
14.6 Directiva "DE" ................... .
. ..................................................................... 218
14.7 Ventana "EEPROM" en el MPLAB .......................................................... 218 C
14.8 Programa ejemplo...........................................................................................
. .
14.9 Bloquear un circuito ....................................................................................... 22 1
1I
14.10 Prácticas de laboratorio.................................................................................. 227- 1I
11
1I
11
15.
16.
17.
18.
19.
20.
21.
22.
23. iía estructura de La teoria desarrollada va siempre dirigida a hacer las prácticas, siendo 13
m entender los imprescindible para la realimción de los proyectos de dificultad crecieiite que trabajan
sobre circuit~s
reales.
: software y del Esperamos que la lectura de este libro le resulte seilcilla y sobre todo que cumpla
M conocimiento la finalihd para la que esta cscriio, que con los pocos niedicis técnicos de los qiie se siicic
itilizar porque es dispuner en casa. sea cap= de desarrollar proyecuis tiiicroprobmables dc una forma
autodidacta. C'ualqiiier aficionado, estildiantc o ingzriiero, con ayuda de este libro, debe
ser capaz de empezar a utili7ar el PICl hF84 inmediatamente en sus propios proyectas y
lgramable; y el diseiios.
en detalle cómo
ente. Nuestro agradeciiniento a las iiibricantes Micruchip Tt'clinology inc, Phidip
Sem~conducror~ Dullu,c Smiconductors, así como a la erliprcsa Sagiiron por su
y
la enseñ;uiza de constante esfuerzo en ayudar a los usuarios en la uiilizacion de sus producios.
rnpartú nuestras
317 realizadas por Querertios finalmcntc agadecer a todos 10s compañeros y alumnos. la ayuda
an de un teclado, prestada, sugercticias y participación en el desarrollo de esta obra: Carmen Ghtticz, Julio
uello funcionara. Redondo, Jesús Sanz, Javier Tempradu, G e m a Gil, Jiian M. Morales, Jcid M.
n la tecla r?in y Escobosa, Atia &irnora. Nuria Tririjatw, José A. Sanz, Alejandro Pico, Loli Moreno.
S alumnos ieniair Sergiu González-Nicolás, Javicr G m ia-Caro, Diego A. Cbrdoba, Alfonso Martíii,
"'maleta" era el Eduardo F. Garcia Folgar. Ángel Toledo y Fmando Blanco.
rcicesador eri siis
LOS AUTORES
s este mundo dc
sdz el esquema a
tid do al sistema
gas. Entrc otras,
1 p e1 misnio y
r
comprender. No
itorios, sino que
m Y por Ultimo,
:4 mismo el que
ar que lo que ha
S
-; años de
IS aqui descritas.
ipción. También
rse junto con un
-es, a complejcs
24. CAPITULO 1
MICROCONTROLADOR PIClóFS4
1 . MICROCONTROLADORES PIC
Un microcontrolador es un circuito integrado programable que contiene todos los
componentes necesarios para contrc~lar el funcionamiento de una tarea determinada,
como el control de m a lavadora, un teclado de ordenador, una impresora, un sistema de
alaril~a,ctc. Para ésto, el rnicrocontrolador utiliza muy pocos componentes asociados. Un
sistema con rnicrocontrolador debe disponer de una memoria donde se almacena el
programa que gobierna el funcionamiento del mismo que. ima vez programado y
configurado, siilo sirve para realizar la tarea asignada. La utilizacion de un
rnicrocontroladoren un circuito reduce notablemente el tamatlo y número de componentes
y, en consecuencia, disminuye el niimero de averías y el volumen y el peso de los
eqiiipos, entre otras ventajas.
El microcontrolador es uno de los inventos más notables del siglo XX. En el
mercado hay y a n cantidad de ellos, con multitud de posibilidades y caracteristicas. Cada
tipo de microconmlador sirve para una serie de casos y es el diseñador del sistema quien
debe decidir cual es el micrwuntrolador más id6neo para cada uso.
En lm últimos ~ í í u han tenido un gran auge los microcmtroladores PTC fabricados
s
por Microchip Technology Inc. Los P IC (Peripheral Inteqace Conmllerj son una familia
de microcorrtroldores que ha tenido gran acepíación y desasrollo en los Últimos afím
gracias a que sus buenas c mterísticas, bajo precio, reducido consumo, pequeRo tamailo.
gran calidad, fiabilidad y abundancia de infomiacih, lo convierten en muy fácil, ciimodo
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38. 130 V (bombillas. Es indispcnsablc coilcclar un diodo cn paralclo con la bobina dcl rc16, tal como
ipropiados donde muestra la tigurü 2-6. coino protecciOn frente ¿ilos picos de fuerza coiitraeiectromotriz
ica. producidos por la carga inductiva de la bobina eri el inomento de la coniniitaciiin.
Iéctrica dc 230V. Para controlar uri cicrto núincro dc rclCs a partir dcl niismo ~nicrocontrolador,
sc
provocar lesiones piiede tititizar un circuito integrado especializado tal coiilo el U LN2003, figura 2-7. Este
aje y revisarlo chip dispone de siete circuitos inversores rediizados internamente con circuitos
las conexiones o I)arlingtori, quc aguaiitan una tcnsión inaxii~iadc 50 V y pucdcn alimentar cargas de
is eléctricas, sin hasta 500 mA, incorpora tainbiCn los indispcnsablcs diodos dc protcccion.
iar dispositivos a
ir de transistores
1 CARGA GND w7 l--N DIODE
COMMON
Figura 2- 7 Driver ULN2003
La figura 2-8 describe el esquema tipico de conexión, donde el ULN2003 alimenta
las bobinas de siete reles.
I I 5.. 5
o
ULN2003
o
O
>
17 6
RBOIIMT 7
RBI
UA2 RB2
- RA3
W4TTDCKI
RB3
RB4
10
11
R55 12
RB6 IN7 OUT7
rq RB7 13 8 GND COM.
g
to a la base del
BOBINAS
:ontactos, puedc -
:lectricamentc la
de los contactos
oportar más de 5
F i p r u 2-8 Circuito ttr'yico de gobierno de varios reI&scon ULN2003
39. -
16 MICROCOWROLAWR PIC 1 hFR4 T)LSARROLLO DE I'KUY CCTOS -' R 4-MA -
I RA-M)
í
2.5.2 Control con relé miniatura en cápsula DIL
de la
Para cargas de hasta 10 W es riiejor utilizar reles de láminas encapsulndos en DIL, alta f
que necesitan una menor inta~sidridde activacibn, aunquc sus contactos no perniitzii dar 11
activar cargas grandes. La f i p r a 2-9 muestra un ejemplo de apjicacitin donde s61o es
necesario un tratisistur para gobernar et reli. Normalmentt estos relés llcvan
incorporados dentro de la cipsula el diodo de protección, como se ~iuede apreciar en la fototr
figura, para 10s modelos que tio lo llevan es necesario conectarlo en el circuito.
5v
ALlMENTAClON CARGA
'l
-
-
-
CARGA
R1 u1
10k BC547 CARGA hiiAxiMA
(500 mA. 1bW)
Figui
F i p r u 2-9 Gobierno de p~qrtriln~
cargas u trai.L.rd~ un rd&de láminas en cu~)sulu
DIL
hará i
2.5.3 Control mediante fototriac ~ U Z .1i
la te
En el circuito de I:i figura 2-10 los contactos del relé son siistitiiidos por un prácti
fciiotriac, cuyo funcionamiento es similar al dc un iiltemiptor controlado por luz. el ti
rí
es ne
El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace cona;
mediante w o p t ~ ~ o p l a d o r
i MOC3041, qiic es iiii circuito integ~dc) incluye iin LED
que
que controla al fototriac. Este dispositivo esti rspccialmente diseñado para usarse coino
interface tic sistemas 1Ógic0s con equipos que tienen que alimentarse coi1 los 230 V de la apag:
red clectiiila. Sus carac tensti cas mas significativas son: conil
Incorpora un pequeño y eConíirriicoencapsulado DIP 6 . corrii
Su tensibn de aislamiento de 7500 V garantiza un perfecto aislamiento entre la
red eléctrica y el microcontrolador.
Es capaz de proporcionar hasta 1 O0 niA, que le permitiría alimentar garar
directamente pequeilas cargas de hasta 20 W.
Su fototriac interno permite el control de la casi totalidad de los grandes tiiacs,
lo que no seria posible si se iitilizara un fototransistor ordinario. de la
cjrcu
Cuenta con un detector de paso por cero inlenlo, lo que permite economizar
de rt
un número iio despreciable de componentes externos.
c ircu
El cc
40.
41.
42. ~ciamínima Para conseguir cstas potencias, el triar: debe ir montado sobre un buen radiador de
rna es dc calor, de forma que el semiconductor cc refigere adecuadamente. A la llora de poner el
;mdo en el radiador hay que sefialas qzie la parte rnetiilica del componente suele conectarse al
. Por tanto. temiinal T2. por lo que se dcbe aislar cuidado(;aincntc el triac de! radiador rncdiante una
lamina de mica y un separador dc plishco para el tornillo. I
'-
2.6 ZUMBADOR
ic, donde la En muchos proyectos es necesario indicar mediante tina sefial audible la ocurrencia
r a! de un de un evento. Para ello normalmente se utiliza un zurnbsidor piezoeléctrico miniatura
;u vez, esta corno cl de la figura 2-12.
rolar cargas
Un zumbador miniatura funciona con tensiones comprendidas entrc 3 y 16 V y su
consumo no supera los FO mA, por 10 que puede ser alimentado directamente por la
salida de un microcontrolador, tal como s indica cn la figiim 2-13.
e
SUM&ADOR EMITE SONIDO
CON SALIDA A NIVEL B A l O
tc entrc en
olnac para
ZUMBADOR EMITE SONIDO
CON SALIDA A NIVEL ALTO
137 (8 A) 822
'uctivas ei
Fisura 2-13 Conexihn de irn aimbador ininiafirt-a a un microconfroJador
43.
44. 22 fICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS ~RA-M
En
microcontr:
múltiples v
tienda de ci
por sí mism
1 -
Ordenador Personal Grabador E> Programador
(TEPO-SE o compatible JDM)
Fjxlrra 3-1 Coyf;guraci¿inpar[/p b o r micrmot iri-orudorps con medios redz4cilr'os
3 2 GRABADORES
.
El grabador o programador es el equipo físico dondc se procede a p h a r la
memoria del rnicrocantrolador con l% instnicciones del prapma de control. Tiene un
a
zkalo libre sobre el
quc se inserta el circuito integrado a grabas, el cual debe orientarse
uadarnente siguiendo la señal de la capsula del chip. Hay multitud d.c grabad ores
:rciaEes en
mercado que se pueden adquirir en cualquier tienda de clec trbnica.
e1
Microchip o k c e el gmbador PICSTART PLUS, de muy ficit utilización y
ihzada fiabilidad respaldada por el fabricante (fipra3-2).
En las
quc apenas r
miicho rncnu
muy iiitcrcsai
que estos g~
purtAtiles soh
45. En ltiternct pueden localizarse múltiples grabadores de bajo c o n para
microcontroladores PIC. Uno de 10s más populares es el denominado JDM y sus
iniiltiples versiones mejoradas, tal como el TEJO-SE que se puede adquirir en cualquier
tienda de electriinica por un precio muy asequible (figura 3-3). Si 1 ntarlo
por si mismo, cn c1 apkndjce F se proporciona información para el1
-
. 1
--
amador
Iible JDM)
El programador JDM y a l s n a s de sus version¢s la Wcb
2- e grabar la
diseñrtdor Jens Dyekjm, w . i d r n . h o m ~ a ~ c . d k / n e w ~ i c .
:rol. Tiene un
zbc orientarse
fe grabadores
-ir(inica.
ES EXTERNA AL CfRCUtTO
3-4 de cornpnfildeJBM bO.cico cor
Fig~rcr Esqzt~rna 110pl1~1dor
Eir las figums 3-4 y 3-5 se describen dos versiones básicas de este pmprnador
qite apenas reqiiicrc cornponcntes. Evidentemente P fiabilidad de este programador es
a
mucho menor qiic In dcl PICSTART PLUS. pero su facilidad de construcciiin lo hace
mriy intcrcsantc para miiltiplcs aplicaciones. Auiiqiic hay quc hacer tina obsen~acicin es
v
que estos p.abadores tan hrisicos no funcionan cor~ectamenteen algunos ordcnnc
pottfitjlcs scihre todo. Ademb, iina conexión incorrecta puede dañar cl ordenador.
46. 1 24 MICROCONTROLAWR PICI 6W. DF5AR ROLLO DE PROYECTOS m~4-WA -
r' M-h~
l D1
TU
n7
lWi4 funcionamiel
u i i g cstc
fl7r
de
jq)mg.si:~
En 15
x
la iiltima ver:
I
L y y- E
5 - ayudar a todc
~K profundo dc
DB
s m
programa ¡ .C
-
-
3.4 G R
1.fiE.I L
.
t C Avriromri lio
Fimrvn -, -, YYYL,CI.*" M b ni.nhn/Lr
i r n h. L.I.C.C.",
l l r l
rnnind;hlo IT) fiA hr;r;rn
IUY.I,I&, YUil.U,l
c;i? n1;montn~Mnoviornrr
-.Lr
"I...IL..<UL.V..
L"I.I
I " Y l l . .l.<. ,.U
Una (
' "i n ~ " ' " " -.. - ' r"P."""""q
Al ""-'."' nian rhin' pn pl nrnummndnr hnv n i r ~ r r i n r n r c ~
r ""' mp " que todos los pines o desrirrciilar e
patilla$ del disposiiivo esttn rectos y de que entren t~ien el 2,,,,,.q l r i ,,n , ,
en iXr U, ,,
,
niin +L tm m r
L
- tb a sólo O C ~ S
mucho cuidado porqlie estos pines se doblan y :se rompen con extrema facilidad.
"""-
í'iinndn CP r"". '" --""- ""- ""."'-' "..
"- r~nli7-nf'"...-"-""'-'rmrnummnrinnrr rc nrnnc&nhl~iitili7nr iin 7iirnln
r ~ r i i ~ n t ~ c '-..'"-"..-"
L
'*'-""
material:
ixiliar entre el micmcontrolador y el zócalo del proprnador, de tal modo qiie sea los
nes del 7ócalo auxiliar los que sufran Ii frecuentes insercioncs y no los pines del
rs
spositivo. Otra alternativa, es reernplaz~r el z k F o del programador por un zócalo de
em dc inserción nula Z F (Zgfo Jnserfion Forre), aunque ticnc cl inconveniente de su
evado precio [figura 3-G).
P'ig74ru -,-, '
* Unc
Figura
3 coi
El IC-Pr~g es uno ac ios s o h a r e más populares para la grabación de
microcontrnladores FIC. Permite la prpgmrnaciOn de miichos dispositivos y esti probado * Un
con numerosos programadores. entre ellos todos los compatibles con JDM. Es de libre elect
distrihucián y en la pigiiin Wch ~ w v . i c - ~ r o ~ csc m
o piicdc descargar y recoger toda la o frct
infamación de uso.
Com
Una vez descargndo, la jnstalaciirn de estc software es muy sencilla. basta con Web
-
.. - - y . - . . . . , " firh~rriirnrriu 7in v wrniir rl n m r ~ r i i m i ~ n t-..... ~n Winrlnwc Fctp
qrnmnrirnir PI
. .-*T.
- p . - + . - - - Y--.-.." ,.'-"--..".-"'Y iiqii~l-". .. .-..-Y ..*.* --.,--
J
- n obra
d~ivo consta del ficliero ieprog.e.re, qiie contiene todo el código necesario para su
47. hncionamiento, con versiones para cualquier s i s t m a oprativo Windows. En caso de
utilkar este software con Windows XP, 2000 o NT, es necesario descargar e! archivo
icprog..yde F misma Web y situarlo en la misma cavela, junto con el icpvog.a.
a
En las próximas piginas v rxpondfin las conocimientos básicos pñra trabajar con
la última versión, al cierre de la cdición de este libro, JC-Prog 1.OSC, con la pretensi~n dc
ayudar a todos aquéllos que se enfrentan por primera vez a este s o h a r e . Pasa un anilisis
profundo de todas sus posibilidades se rcmite a la documentación tknica, ya que el propio
prograina IC-Pro2 tiene un buen sistema dc ayida qiie permite un rápido anrendizaie.
3.4 GRA 5~ CON MEDIOS REDUCIDO
Una de las grandes ventajas de T s micmntmladores PIC es que pcrrniten
o
xlos los pines o amar: el proceso de p h a c i h n con muy poco gasto. Para aqitéllos qiie desarrollan
rollar ,
I4ay que tener S610 ocasionallmente proyectos ; basados en micmontroladores, es suficiente
Iidad. utilinIr el procedimjenro de in con medios reducidos que se indica a
contil~uación.S e ~ i n esquemr
el gma 3-1, este pmediiniento utiFiw el siguiente
ili7ar un zkrtlo material:
3d0 que sea los
o los pines del
jr un zócaIo de
nveniente de su
Figuro 3- 7 conectar elprogru~r~uurirrrcrvv., de los puelios
Cuurcy u r ~ u COMI o CUML
Un ordenador personal.
m Un cable de conexión entre ordenador y pmgmmador del tipo serie DB9 para
puerto COM (figura 3-7). Este cable se puede adquirir en tiendas especializadas
o bien fabricarlo mediante dos conectores DR9 (hembra y macho) y cable,
preferiblemente plano, concxionando los pines con el mismo nUmero en cada
extremo, es decir el: terminal 1 de un conector con el terminal I del otro. 2 con 2,
b.c.v,.w,4n dc 3 con 3, etc.
y cstli probado Un programador TE20-SE, ds adquisicihn en cualqiiier tienda de
)M. Es dc libre electrónica. En apíindicc F y e m-ROM que acornpafiiia a este libro se
rccogcr toda la ofmen planos para su construcci,,,.
* Como sottWm se utiliza el IC-l%g 1.0:iC, que 1 bajarse librrmente di la
~uede
cilla. basta con Web www.ic-rmn.com. y que 4e incluye: en el C D-ROM que acornpaiía a 4sta
,
Windows. Este obra, p c i a s a Iri generosidad de Bonny Gijzen, su autor.
:esario pan su
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79. que sólo !a línea
I del puerto y la
~ctum distinta a
in de ser de esta
ieración de una
W 7 : W . Tcdas
ir, conectada a la
mgramaaas para
y r a 5-9 muestra
variación dc una
la ultima sefial
le las señales de
o TNTCON.
ienfación LENGUAJE MÁQUINA
máxima
I I I ~11and0
está
~
El Único lenguaje que entienden los rnicr~ontroladoreses el formado par Ios ceros
:ia dcl chip, esta ! unos dd sistema binario. Cualquier instrucción qiie deba ser cj~cutadapor 61
:
luede exceder de rnicrocontrolador debe estar expresada en binario. A este lenguaje se le denomina
lenguaje rnhquina, por ser el que comprende el microcontrnlado~Los códigos de este
leripiia,je que fonnari Ins iristnicciones se llaman c6dijys máquina. Así por ejemplo.
cuaiido el microcontrolador PlC láF84 lee cl chdigo mricluina " '1 11 11000 1 1 10 1 W, esti
recibiendo la instmccion: ".rrrmn58 al regi,v/ro de trabajo W y g-uurda e/ resi~lratfo en
Pin esk mismo regi~tro W".
RB7,R84
:J;? - c T, +-y
r
.
.t 't-
Cualquier otro lenguaje que se utilice debe ser tndticido a unos y ceros para que el
rnicrocontrolador pueda procesarlo. Dicha codificaciOn binaria resulta incdrnoda para
traba-jar, por lo que muchas veces se utiliza la codificación hexadecimal para facilitar la
interpretación de los códigos miquina y no saturar las pantallas (ni los cerebros) de unos
y ceros, Asi por ejemplo, en el capitujo 3 se pracedio a grabar los microcontroladom
80. 5H M1C'ROCC)NTROLADOR P C AF84. DESAñROL LO DF. PROYECTOS
11 3 RA-m
utilizando el pi-ugmrna IC-Prog, que trabaja cn lenguaje máquina, pero utilizando la
codificacion hexadeciinal, tal cotrio se aprecia en el cjemplo de la figiira 6- l.
6.2 LENGUAJE ENSAMBLADOR
El lenguaje máquina cs difícil de utilizar por el horiihre ya que se aleja de su fonna
natural de expresarse, por esto se irtiliza el lenguaje ensamblador, que es la forma de
zitprwar las instrucciones de una f m a más natural al hombre y quc, siti embargo, es
muy cercana al microcontrolador porque cada una c k sus instmcciones se corresponde
con otra en ciidigo máquina que e1 microcontroladcir es capaz de interpretar.
El leti-=aje cnsarnblador utiliza nembnicos que son grupos de canctzrcs
alfaniiméricos que siinbolizan las órdenes ci tareas a realizar con cada instruccjón. Los
nemonicos se corresponden con las iiiiciales dcl nombre de la insuuccion en inglés, de
fom~aque "recuerdan" la operaciori quc realiza la instrucci8n, lo que facilita su
mertiorizacion.
Así. por ejemplo: para oriictiar al rnicrocoritrolndor PIClóF84: "sumu 58 al
rrxistro rh? lt!rriliujo W y gear7i-du el resultado en este m i . ~ m ~
registro W", en leiigiajc
cnsarnblador sería "addw d'5'58'"quc es mucho m i s amable qiic cl"1111100011l010"
del lenguaje máquü-ia.
Resumiendo con un ejemplo:
Instrucción: "Srriirri W
58 ul r-e,yisiim d~ ~t-ublljo y r~~~.ulíudo
~ ~ C I Y el ~ U
I
en SIL' ~ni.~tno
registro ".
Elisamblador: uddw d'5H '.
Máquina: 1 1 1 1 10 00 11 1 O 1O (expresado en binanol.
3 E3 A (expresado eii hexadccimal).
6.3 PROGRAMA ENSAMSLADOR
El programa ensamblador es un software que se encarga de traducir los
nemonicos y símbolos alfanumkricos del prcgrama escrito en ensamblaclor por el usuario
a código máquina, para qiic piieda ser interpretado y ejecutado por el mjcrocontrolador.
E1 programa escrito en lcnguaje ensamblador recibe la denominación de código
fuente, archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo
hizntc debe ser traducido a código riiiquina, de lo cual se encarga el programa
ensamblador. La mayoría de los ensambladores proporcionan a su salida un fichcro que
sucle tener la extensión *.hex. Este fichero puede ser grabado en la memoria de p r o p m a
mediante la utilización de un grabador de microccintroladores.
81.
82.
83.
84.
85.
86.
87.
88. hli MIC'KcX'ONTROLADORPTC I GF84. DESARXCJLLO DE PROYECTOS E RA-M h
6-2 Repertorio de ipisfrucciones del PIC16 F84
Tatill~
Las instrucciones se recogen e n L tabla 6-2 y detallan cn su totalidad en el
a
apéndice B. En este capitulo se estudiimin 111s instrucciones inás scnrillas.
6.9 INSTRUCCIONES DE CARGA
Las instrucciones de transferencias de datos son típicas de todos los procesadores y
su misión es transferir el contenido un registro fuerite (f! a iiti registro destino (d) o bien
cargar el destino con utia constante. En los microcoilrroladritrs PIC todos los datos
residen en posiciones de la triemoria de datos y en el registro de trabajo W. 6.9
En la explicacion de estas instrucciones se ernplea muchas veces una nomenclahita
especial muy sirriplc basada en parintesis y flechas. Con los paréntesis se destaca que se del 1
trata del "contenido" de las posiciones de iiienioria y la flecha la Jircccibn d e lad re@
transferencia de los datos. Algunos cjcmplos: resul
( W ) 3 (PORTB): Significa "el conr~niLio registro W
se truns$ere u1
del w
Ante
puerto B.'.
(2Bh) 3 (W): Significa "el contenido
la pwíció~?
dr 2Bk de M M de m
h t o s se bransjere al registro ri'c. traht-rjo Hp'.
Et
ia
2Bh i (W): Significa "e/ regt~trode tti-ub(?jose c~irgacon el dato Ante
ZRIi". (Notar la auscncia de parkntesis).
w
Hay cinco instruccioiies de carga propiamente dichas:
6.9,
6.9.1 clrw
regis
(Cleur W). El contenido del registro W se borrri (se cargsi con b'00000000') y cl
flag Z sc activa a " I ". Esta instrucción también se podria cotisiderar como aritmética. Ejw
Ante
-1
89. fi R A M A
Ejeir ctw
Antc (W) = Z = l.'?
- .
Ninglino 1 Despues instrucc~on: ( N r )= ~ l x f l f ty L = l . .
Ninguno 1
Ninguno
Ninmin~ 1
(Clemfl. El contenido de1 regrstro ' f se b m (se carga con b'000000007 y el flag
o
Z se adiva a uno. Esta instmccibntambién se d n a considerar como aritmética.
mo. PD
Ninguno
m,rnD
1 Qerr
Antc
npcr
6.9.3 movlw k
.I total idai
(Mnve Literal to W). El re3ist-m W se carga con el valor de los 8 bits de la
constanic'k'. Ningiin flag del registro de estado es atkctado.
.i3 I I I Ubb30
lestino (d) o bien
' todos los datos
C'. 6.9.4 movf f,d
(Movej.El contenido del registro 'f se carga en el registm destino dependiendo
'
una nomenclatura
se destaca que se del valor de 'd'. Si 'd' = O el destino es el regstro W, s Vd* I el destino es el propio
i =
direcciót
'..-iuni
IBA & h!AM de
registro 'f. El f l a ~ del registro S T A T U S - ~ U ~ ~ ~Z se activa a "1" si el
resulitado de la
. .
Eiemn 10 F :
Ante
Dcspuks instn
Z -
i es ccrcE.
n
movt PORXd, 0
p R'A) = Ox 1Ik
O1 .
(POR?'A) = 0x11 A,
afectado:
: (PORTAI
(W) = i',
(W) = o:
+ 1w) I
r w
11 &
2em
i.
i - >
' r p con el dato Aiizei
Dcsp el resultaido de Ia 1
(Move W lo 1 .
)Carga el contenido del registro W al registro 'f. Nirigún flag, del
registro de estado es afectado.
I
Qmplo:
Antes inshcc ión:
Despuks iinstniccihn:
rnovwf PORTB
(PORTR) = i,?
(PORTB) = 0x4
: (W) -9 (PORm
I
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113. y seleccionar Orrprtt ro File y salvar cl fichero de la forma ya conocida en el entorno
'indows.
h i t o general de1
:contenido de la
5TbTL5
PCL . .
-.
.
3 de estado
Aunque no es una ventana de visualizaci6n propiamente dicha, la linea de estado
proporciona infomciiin muy iitil sobre la situacibn actual del microcontrolador. Se ubica
1
m la pane inf&or de la pantalla y ofrece infomnacion en todo momento del estado de Ia
-------
simular1n.i
..."."O
.,
Es especialmente útil la infamación sobre el contenido del contador de progama.
del registro de trabajo W.También indica el valor de las flags de STATUS. Si la letra está I
m rnaqúsculas indica que ese flag vale "1 " y, si es miniicc~alas "O". Asi en el ejemplo
vale I
de la flgtn 7-13, Z =O, DC =1 y C=E.
---+
WFAQ?u ..
--
:~~~JTARTa ; l
~ S .
.
-. -
; ....... - -
~ W m P 7 a h 3 - . w :- .
2 duros . ...... --+--- L .
Fipcrn 7-iJ , A ~ ,wc- G , ~ L ~ Lcon la infamación del PC, W yJrapP~ SIn
, ~ ~ I~) del
hre simb6licci que
de usiiario.
7,6 SIMULACI~N
BASICA
T m el proceso dc ensamblado sc p d e a la simiilacibn del programa, Mientras
w ejecuta la simutacibn del programa es interesante visualizar el contenido de las
tc supervisar los
ventanas explicadas antes y comprobar el efecto m cada una de ellas.
iso concreto. Para
wdro de dililogo Es conveniente antes dc nada, comprobar que está cargado correctamente el
ee pulsando sobre IPLAB SIM, tal como se explicb en L figura 7-4.
a
Los cinco comandos m& importantes p m la simulaci6n se localizan dentro del
rla m posteriores menú Debbuger y se muestran en la f_ 7-24.
i m
I I 1 .'
,
114. 92 MICROCONTROLADOR PIC IóFR4. DE'RROLLO DE PROYECTOS c A-MA
m Rfrn. Modo de ejecucibn continua. Ejecuta el programa constantemente. Las
ventanas abiertas en el paso anterior no se actualizan hasta que no se produce
una parada. Es la fama m i s rápida de simular el programa, pero no se "vi
como evoluciona la memoria ni los distintos registros. En este modo se i
seleccionando Beliijgger > R ~ t n pulsando la tecla F9, tambitn al pulsar S
o
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 ~ ~ >r
e Aninia
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 Pan1
entra selcccionarido Dehiigger > Re-re! o pulsando la tecla F6. También si se aemho tic
pulsa sobre el icwo correspondiente de la barra de herramientas. Seleccionn
donde Iia i
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153. i la figura9-4 que
t~
t
.
. . -
Esta dir fine una ( :to. Dondle quiera Ique <nome>
icuentre, e mblador :
Ejemplo I :
A continuación se
:]Ni?LED PORTB s conecta i: cstn Iine
e n
...
bsf LED
BLOCK (Dflne n :D~P id bc tl Ranw O,
lnes (genmlmentc ~DFF icof bs : n .o: Rznm 1 .
m; i1
-DFF D P( : El LER sc conccia 3
marcada entre las
; ACCCW al Banco 1.
; Confrgum csla línea como salida.
; hcccw : Banco O.
i1
: Encicndi: diodo L
el
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 9.9 CONVERS ARIO NATURAL A BCD
cuwrior al: de la
si a lo largo del La conversión de un numero expresado en binario natural a formato hcu es una
ion de variables, 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
. I
01 1 1 1100, para expresarlo en BCD hay que separas Fas centenas, decenas y unidades
definida
qudando: 0001 0010 0100. La figura 9-5 txplica cl:diagmma de flujo para resolver esta
.4. Un
coni~crsihn. 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 . Un nu m m hinario de 8 bits cs curivcnido 3 RCD. El erultadri se gl~qrrl e n m psicioncs
a
a RAM 4de datos. :dcmem~irins ilamadas Ccntcna~. Docenas y L'nirladcs A d m i s a l tiiial 1las unidades estaráti en el
., -1 h e ,--m -A
; 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 ! s dmenas y la* L
a
; El m valor que p
:niuni
:El procediniientr2 utilizado 1
"
:ejempln quc trai; A. l*.s,
.,
.-
154. MICROCO~OLAWR
PIC16F84.DESARROLLO DE PROYECTOS OWMA
{Decenas)
movlw
subwf
NO, I
H Incremcn S).
btfi~;
NO, m! NO. .
.. .
.
hcrt cenas).
Foto
NO,mi NO. lncmcnta (Uc cenas).
NO. resi NO. Incremonta (aecenas).
NO,mi NO.Incremnta (Decmia~).
NO, m NQ. Incrementa (Decenas).
NO. ma lo
c NO. Incrt:menta (Dc cmiaii).
NO. reSra 10 NO. Incrtmenta (Decenas).
NO, Festa 10 NO. lncrt:mcn ta (Decenas).
NO,resr f n hln lnm..-. + I r % * r * n n r l
. .M -
,*v.iii~ibiiibiira
(r,c bCil02,J.
NO. m t Si. @ecenari)=O, y aldemb
incrementa (Cenfew )
NO, resta 10 NO.Inemnenta (Decenas)
sí, se
te 'Numero".
r- 1l
UDE <PI(
CSLGLAIB(UL :u zona ac memona ac usuano comicnz.. ... . .
i . .
Centenas ; dirrccii h a R h M de datos.
Decer)y
a ; Pmició
Unida ; Pmici8
ENüí
Numero EQU
ORG ;El pmg
inicio
bsf STAT ;Accesob al Banco 1
clrf TRlSE : l s liniz del F erio R se contigam wmo sdicta.
a u
bcf STAT :Acceso al Banco I1.
b
mua
n pr
clrf Centenas :Carga 10s qismr;con el res1~ltado inici: "BCD-lncr
clrf Decenas ; En principio (Cenitenaspo y i[Dcce:enas)=
movlw Numero
moru : Se carga el n m binano a convertir.
ú m
Bm-Restui 10
1
movh ; Alahu les va restaindo 10en c
. .
subwt : pa-da. (WJ==(Untdades)-lo.
?, i ( W ) Vi!
,. . <
menor de 1
BCD
155.
156. RAO ABOff N f
R41 RB1
RA2 RB2 : Lns salidai se o h t i i
RA3 R53 : RR5 (SI;' i, m (53:
4
RMOCKI RR4
R85
RB6 ; ZONA D'E DATOS
Fignrn 9-6 Circttito paro compmhar el programa RCD_Ol.mm
novlw P
iioluri 3
1cf S
EI salto indexado es una tknica que pemiite resolver problemas que puedan ser
aovf- P
representado mediante tina tabla de verdad, En el PICI 6F84 se basa en la utilización de la ndlw h
instniccihn addyf PCI,,F, de este modo, la direccihn del saIto se consigue sumando a[ ddwf P
contador de programa (PCL) un valor de desplazamiento almacenado en el regiswo de
trabajo W. oto C
oto C'
oto C
En el salto indexado, la dirección del salto se co~sigue
sumando a un registro base
(el PCL) un valor de desplazamiento alrnrlcenado en un registro índice que es el registro
de trabajo W.A cste valor de dcsplazamiento se le denomina también qfl~et. ejecutar la
Al
instmccihn cw PCL,F el registro base TCL) debe estar cargado w n la p r i ~ m
r
d
direccion de Fa tabla, apuntado de esta manera al origen de ba
t . >!o C
nnO
ovlw h'
En el siguiente ejempto se asimila f5cilmwite la utilidad de salto indexado ..-
IlCl i4
hardware utilizado s d el esquema de la figura 9-7. .mt
ovlw h'l
,tn h.
id
: tmp11
:matar un: tabla dc Ii verdad m
a : i iancja dc te ovlw h'l
;Por qjtmpto, la Iabla seri de 3 enmb s tal como I itn A'
1717
157. C ' M ~ U L O SALTOS
9:
135
o o 1 1 a o 1 o o I;(cd*I-6nl).
o 1 o 1 1 o o o 1 i;(-hz).
o r i 1 o o 1 1 1 I;@orSi@&tf).
1 O O ] 1 O O O O O;wgumidn4).
1 O 1 1 O O O i 1 l;(CdgumcibnS)-
1 1 O [ O 1 0 1 1 l;(Conftguracibnó).
1 1 1 1 i 1 i 1 1 l;(Wguraciún7).
;im enbndw C, B. A se mectai.mia las llneas del puerto A: RA2 C , M (B) y RAU {A).
() 1
;Lassalidasse~enenelpuertnB:
;RBS(S5),lU34 (M), 3 (S3).RB2 (521, M (Sl) RBO (SO).
M 1 y
;ZONADEDATOS * * * S H * * * l * % ' * * * * W ' * * * * S I * * * * * * * * * * * * 5 * 1 I I * L * I * * * * * * * * * * * * * * * h * * * * U * * * * *
CONFIG CP-OFF & -ri'DT-QFF & -PWRTEEON & XT-OSC
EST P=16F84A
INCLüDE 4'16F84A.lNG
;ZONADEC~D~GOS**'*******************Q"'*L******~****#********S:*****~***++***********
ORG O ; El pmgrama conireriza en h direaibn 0.
bsf STATWSH'O ; Acceso d Banco l .
clrf TMSB : Las heas del hiato B se c o n f i p m u como saiida.
movlw blOOO1 1 111' :Las 5 líneas det Puerto A se configuran como eukada.
mowf TRISA
bcf STATUS,RPO ;Acceso al Banco O.
s que puedan ser
movf PORTA,W ;Leo el valor de las variables de e n e .
i utilizxiiin de la
andlw b'00000t1i' ;Se queda c los a c bits de enaada.
m e
;igue sumando al ; Salta a la configuracibn &macla.
en el registro de
goto Conf1~0iiO
gota Configuracion 1
goto Co~guracion2
un registro base goto Corhgumcicin3
que es el registro goto Conñguraciod
;fr. Al ejecutar la goto ConfiguracionS
I con la primera goto Cdguraciaaó
goto Configmcion7
rnovlw b'0000101Ot ; Confipuracibn O.
Ito indexado. El goto Activasalida
; configuracibn l.
'.CL*******I*
movlw b'OO1OOO1li :Cun-ih 2,
movb b'0000111~' ; C 0 n ñ ~ i S 3.
o
gota ActívaSaW
Cdgumíon4
158. 136 MICROCONTROLADOR PrC 1 bFM. DESARROLLO DE PRUY ECTOS F RA - MA
mvIw
El reg
8 0 un reg
C ~ i d
mvlw
Los bi
Conf~iioti6 puede
mwh PC LA
soto
Cwfigmcion7
mvlw
ActivaSalida
mw
Yf ;V i d i z a por el pueFto de salida
En las soluciones de los ejercicios facilitadas en el CD-ROM que acompaña a este
libro, se describe otra forma de implemmitacibn más eficaz mediante el p r o v a
indexado-O1 B.acai. El PCLl
bits son transfe
tiznen por dcsti
Cuando !
instnicciiin .ad
es así, cl salto e
que el registro
prueba de un sa
; P r o w a para cor
;Se debe comproba
9
; ZONA DE DATO
INCLUO
LIST
;ZONA DE C ~ D I
paru comprnhur ios programas de tabla de ivrdac3
Figura 9-7 Cit.~liliio ORG
Inicio
goto
c h
9.1 1 SALTO INDEXADO DESCONTROLADO
Como ya se explicb en el tema 4, los 13 bits contenidos en el coniador de programa ORG
Principal
y que direccionan la memoria de código estan guardados en dos registros específicos niovlw
(figura 9-8): addwf
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195. i RA-VA
¿ CAP~TULO SUBRL'ITNAS DE RETARDO
12: 173
;ta iiistniccion tarda
cnstal de cuarzo de
Carga contador R..ContA can Carga contador R-ContB con
valor inicial "K" valor inicial "M"
Carga contador R-ConlA con
valor inicial "K*
Pequerio tiempo de espera
urrido
Decrementa R-CoiitA
:S resulta necesario
;intervalospueden
simple de algunas A). ESTRUCTURA DE UNA SUBRUTINA
DE RETARDO CON UN LAZO SIMPLE.
:0nseguir el retardo Oecrementa R-ContB
rucción es conocido
:I registro R-Corrr.4,
ibtenw el tiempo de
ijerite fragmento de
B). ESTRUCTURA DE UNA SUBRUTINA DE
la figura 12-4(A) se RETARDO CON DOS LAZOS ANIDADOS
máquina. Figura 12-4 Esfruchci-ade Iw sub~4tjna~ r~~tnrdo
d(9
d valor de "6".
Es fácil deducir que el valor de constante "K" con el que se ha cargado
la
~iiicialmente contador R-ContA vendrá dado por la sigiiientc ecuación, donde el tiempo
el
:cm (al saltar). viene expresado en ps:
; miquina.
Ziempo=5+4K K=
<=249).
196. EJEMPLO: Calcular el valor de la constante K, para obtener una subrutina de
retardo de 500 ps con la estructura de de la figura 12-qA).
1
; apaga durante
Soluci6n: Aplicando la ecuación se obtiene:
;ZONA DE DA
Tiempo - 5 - 500 - 5
K=- - = 123,7
4 4
Así pues se elige K=123, obteniSndcise un tiempo de retardo real de:
Tiempo=5+4K=5+4+123=497ps
El ajuste fino para Ios 500 ps exactos se consegurta añadietido 3 instrucciones nop #DEFINE LED (
al principio de la subrutina de retardo. ;ZONA DE C O
ORG
12.5 RETARDOS MEDIANTE LAZOS ANlDADOS inicio
bsf
hcf
Para lo genecic18nde retardos de niayor duración deber1 ulilizarse lazos aiiidados,
bff
poniendo un lm dc retardo dcntrv cli: otro. La forma de liacerlo se explica en Ins Principal
subrutinas "Retardo-200ms" y "Retardo-1 00ms" del siguiente programa ejcinplo, donde bsf
a partir de la csmictura de 1 ms conseguido en la sccciiin anterior se obtienen rctardos cal1
mayores mediante la redlización de lazos anidados, figura 12-4(B). Este programa es una d
aplicacion de un LED intenriitcnte para cl circiiito de la figura 12-5.
i~til bcf
caii
catl
gom
D1
RBO R1
Figura 17-5 Internaitenle
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338. W i
318 MlCKIX:OKTROLAWR PIS lriF84, DESARRULW DE PROYWTLiS c~ 4 . ~ 4 O RA-MA
20.9 PROGRAMA EJEMPLO
Escribir por el teclado de un ordenador y que esta infomacibn se -¡sualice en la
pantalla del módulo LCD de un sistema con microcontrolador es un ejemplo inmediato de
las aplicaciones que la conexión entrc microcontrolador y puerto RS232 cle un ordcnddor
puede ofrecer. Para cl cvmcto fiincionamiento del siguiente programa ejemplo hay que
cutnplir los tres requisitos fundamentales de este tipo de comunicaciones:
Hardware: Se ejecuta sobre el circuito di: la figura 20-13, no se ha de olvidar
conectarlci al pumo COM 1 o COhl2 dcl ordenador a través del cable RS232.
Un programa de coniunicaciones quc se debe abrir en el ordenador, como el
evper-Tertninalu otro siini lar.
Programa de control del rnicrocontrolador que se debe ejecutar en el
rriiccocontrolador.
Un programa de control grabado en el rnicrocontrolador podría scr el siguiente
cjcinplii suficientemente documentado:
;En el m&lo LCD se visualizan los caracteres que se escriban en el teclado del ordenador
;y se mnsmiten a h v e s de su puerto serie. E s &?tos v o l v e a ser enviados por el
m
; microcontrolador a1 ordenador, por lo que tambikn se visualizxia en su moiútor.
;Se utilizani un programa de comunicaciunespara que el ordenador pueda enviar datos
;a través de ru puerto serie, como el HyperTminal de Windows o alguno similar.
; Concluyendo, lo que re escriba cn el teclado del ordenador aparecer6 en la pantalla de' Figura ;
; mduto LCD y cn el monitor del HyperTemind.
7
:~~NADE~AT~S**********5*5******C*C*****Qdii**OiPiP*****CC******~~*~****L**************
Una aplicacii
hacia el ordenador.
RS232-MEN.MC, 1
"RS232-M(
cl microcon
"RS232 LU
del ordenad
ORG O
In1c10
cl
a1 LCD_Lnicializa ;Ini~dLCUyIaslúiwiaiquese .+~**L**L.*%***4**.*
J
1 RS232-lnicializa :van a utiIizar en la c m w i w i h c m e puzrto
l I
?
Ptincipd ; Serie ñS232. j mbrutinaa
di RS232-LeeDato ;Esperamibirunmhctm. a;
- tmds del 1
mwwf GtmdaLMo ;Guarda el daui mibi&.
d WD-Cmter ;Lo v i s u d k