Microcontrolador PlC16F84

Desarrollo de proyectos

Enrique Palacios Municio
Fernando Remiro Domínguez
Lucas J.  López Pér...
Microcontrolador PIC l6F84. Desarrollo de proyectos
© Enrique ¡’alguen Municio.  Fernando Remiro Domínguez
y Lums J.  Lópe...
ÍNDICE

rnómcau. ..

   

Capitulo l:  MICROCONTROLADOR PlC16F84.. .

1.1 Microcontroladores PIC . .
12 Alimentación de un...
X MICROCONTROLADOR PICIGIWÓ.  DBARROLUJ DE PROYECTOS

Capitulo 3: GRABACIÓN DE MICROCONTROLADORES PIC . ... ... ... .. . ....
x11 MICROCONTRDLADOR Pnclarxo,  DESARROLUO Di:  rxovscms mom
7.10 Fichero lístable . ... ... .. . . 98
7.11 Prácticas de l...
11.3 Gobiemo de in display de 7 segmentos
11.3 Practicas de 

XIV MICROCONFROLADOR Pl(' IAFSA.  DESARROLLO DE PROYECTOS

 ...
XVl MICROCONTROLADOR PlC16F84 DESARROLLO DF.  PROYECTOS

Capítulo 19: TECLADO MATRICIAL

19.1 Teclado hexadecimal . ... .....
XVIII MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS

amm

26.7 Conexión entre PCF8574 y PlCl6F8
26.8 Ejemplo de progr...
xx MJCROCONFROLADOR Picmm.  DESARROLLO o:  rnmrccms tu:  ¡wm
33.2.2 Motores de corriente continua con reductores 545
33.2....
XXII MICROCONTROI ADOR PICIGFM.  DESARROLLO D]:  FROYECIOS «¡IM MA

microcontroladores,  siendo un chip ordinario de 18 pa...
MICROCONTROLADOR PlC16F84

1 .  MICROCONTROLADORES PIC

Un microcontrolador es un circuito integrado programable que conti...
Z MICROCONTROLADOR PlC16F84. DESARRDLID DE PROYECTOS DRAMA

Este libro se centra en el estudio de un microcontrolador PIC ...
4 MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS o RAMA

El PlC16F84 tiene dos puertos,  ta] como se ilustra en la figu...
6 MICRDCONTROLALXR PlC16F84 DESARROLLÚ DE PROYECTOS e-kA-MA

o “nm *  r
4,6lMl-lz

2.66 MHz
311 kHz

¡,34 MHz

756 kHz
82,...
X MICROCDNFROLAKXM?  PlClbFü-í.  DFSARROLLO Dl:  ¡’RUYECKJS DIA-MA

El PlC16F84 permite otros causas de reset quc serán ex...
10 MICRUCONÏROLAIÑK PlC16F84. DESARROLLO DE PROYECTOS 0M MA

El PlC|6F84 es capaz dc gobcmar directamente diodos LED de do...
lZ MICROCONTROLADOR PlC16F84. DESARROLLO DF,  PROYECTOS GRAMA

o Cuando no se aplica tensión alguna el LED está apagado bl...
I4 MICROCONTROLADOR PIC lbFM DESARROLLO DL PRÜYELTOS CJRNMA

que se exponen en estos capitulos,  sobre circuitos reales co...
fi MICKKXÏONTROLAIXJR PICHIFM DLSARROLLO É ¡‘KÜYECÏUS alt-MA

2.5.2 Control con relé miniatura en cápsula DlL

Para cargas ...
IR MICROCON ÏROLNDOR PlClblÏM DFSARRÜLLÜ I'll‘.  PROYECTOS s ¡At-MA

Debido a las características de los triacs la carga d...
GRABACIÓN DE
MICROCONTROLADORES PIC

3.1 GRABACIÓN DE UN MICROCONTROLADOR

Un microcontrolador es un circuito integrado pr...
22 MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS l,  ¡AMA
Sofware Programador
(IGProg)
‘í’ Cable serie‘ nos (Para

— ...
LAMIIEMICÓNDI‘ m
se com;  amount Dt
use».  ‘Mr

Figura 3-5 Evquema de un grabador compalible JDM bárít-o rin alimentación ...
26 MTOIOCONTROLADOR PIC!  SPM.  DESARROLLO DE PROVECIUS

cum

3.5 PROCESO DE GRABACIÓN

Antes de nada hay que conectar el ...
2X MICROCONTROLADOR PlC16F84. DFSARROI ¡,0 DE PROYEÉTOS e MMA

5° A continuación se debe seleccionar el dispositivo a grab...
30 MI('R(X‘ON'I'RÍ)LADOR PICISÑH DESARROLLO DE PROYECTOS . : ¡tuu

9° Para proceder a la grabación del chip basta con acti...
32 MICROCUNTROIADOR PlC16F84. DESARROLLO DE PROYECTOS ORA-MA

Windows XP.  Este fichero se puede descargar de la Web wwwjc-...
34 MICROCONTROLADOR PlC16F84. DBARROLLO DE PROYECTOS o MMA

- Comprobar con un polímctro que no hay ninguna conexión del c...
36 MKÏRDCONTKULADOR PICIÓFM.  DESARROLLO DE PKOYEÍTOS e IA-MA

Enwenndorjlflbin:  En el display de 7 segmentos conectado al...
3B MICROCONTROLADOR PICIÓFÉÓ DESARROLLO DE PROYECTOS QIAMA

Memoria de datos RAM.  Se destina a guardar las variables y da...
40 MICROCONTROLADOR PlC16F84. DILSARROLU) DE PROYECTOS

EMME

Registro utilizado en el direccionamienlo irtdireclo (no es ...
42 MICROCONTROLADOR PlC16F84. DFSARRUIJÁJ DE PROYECTOS a RAMA

PICI6C84 fue reemplazado por el PICl6F84A de modo que los d...
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Microcontrolador pic16 f84   desarrollo de proyectos Full Digital  simon
Próxima SlideShare
Cargando en…5
×

Microcontrolador pic16 f84 desarrollo de proyectos Full Digital simon

1.931 visualizaciones

Publicado el

El Mejor libro para Aprender a programar el pic 16f84
en ensamblador con ejemplos ilustrados

Publicado en: Ingeniería
  • Sé el primero en comentar

Microcontrolador pic16 f84 desarrollo de proyectos Full Digital simon

  1. 1. Microcontrolador PlC16F84 Desarrollo de proyectos Enrique Palacios Municio Fernando Remiro Domínguez Lucas J. López Pérez Alfaomega Ra-Ma’
  2. 2. Microcontrolador PIC l6F84. Desarrollo de proyectos © Enrique ¡’alguen Municio. Fernando Remiro Domínguez y Lums J. López Pérez ISBN 84-7897-600-0, edición original publicada por ¡lA-MA Editorial, MADRID. España. Derechos reservmlosfi RA-MA Editorial MARCAS COMERCIALES: RA-MA ha intentado a lo largo de este libro distinguir las marcas registradas tk los términos descriptivos, siguiendo el estilo de mayúsculas que utiliza el fabricante. sin ÏHRMÍÓ“ de lnlflflgll’ l‘ marcay sóla on benoflclo del propietariode la misma. Primera edición: Allaontegt Grupo Editar, México. agosto 2004 C3 Z004 ALFAOLIECA GRUPO EDITOR. S. A. ¡I! C. V. Pitágoras l 139, Col. Del Valle, 03 [00 México, D. F. Miembro do li Cámara Nacional d: ln (ndistria Editorial Mexicana Registro No. 23l7 ISBN 910-l5-1033-X Derechos reservados. Esta obra es propiedad intelectual de su autor y los derechas de publicación en lengua española han sido legalmente transferidos al editor. Prohibida su reproducción parcial v total por cualquier medio sin permiso por escrito del propietariode los derechos del copyright. NOTA IMPORTANTE La información cnntonida un esta obru tien: un ñu exclusivamente didáctitc y. por lo tanto, no está previsto su aprovechamiento J nivel profesional o ln- dustrial. Las indicaciones técnicas y programas incluidos. han sido elnhnrn- dos con gran cuidado por el autur y reproducidos hajo estrictas nomas de control. ALFAOMEGA GRUPO EDITOR. S. A. de C . V. no será jurídicamen- te responsable por: errores u nminiones: daños y perjuicios que se pudieran atribuir al uso de la información comprendida un este libro, ni por la utiliza- ción indebida que pudiera dirsele. Edición autorizada para ventaen México y todo el continente americano Impreso en México ' Primal in Multa A ml m yer. Maribel. por nt‘- apoya. carino _l-' paciencia. .4 mix hrjox. Crislinuy Enrique. mi mqvonfuente Alt‘ alegrías y stmlr/ ircciones. A mis patinar. Enrique)! Sagrario. en reconocimiento a su sacrificio. Enrique .4 mitpafies, hijo y demás personas importan/ ys de m1’ vida Lucas A mis dos mujeres, Natalia con In que chddícomparrir mis diasy Atómica que me alegra cada dia det-rie que nació y que a sus tres años no deju de querer trt-udanne a ercribir y programar microcontroladores y periférica. Fernando
  3. 3. ÍNDICE rnómcau. .. Capitulo l: MICROCONTROLADOR PlC16F84.. . 1.1 Microcontroladores PIC . . 12 Alimentación de un PICIGFR 1.3 Puertos de entrada/ salida. 1.4 Oscíladnszw. 1.4.1 Osciladnr XT 1.4.2 oscilador RC 1.4.3 Oscíladoms HS y LP. 1.4.4 Utilizando una señal de reloj externa 1.5 Reset". .. 1.6 Montaje del entrenador Capítulo z: rnnmímcos BÁSICOS 2.1 Díodo LED . ... ... ... ... ... ... ... .. 2.2 hnemnptores y pulsadoresuw, 2.3 Entradas digitales con optoaoopladores. 2.4 Display de siete segmentos 2.5 Controlandocargas a 230 V 2.5.] Control con relé . . . ... ... ... .. 2.5.2 Contmlcon relé msmamraen cápsula DIL. 2.5.3 Control mediante fotoniac 2.5.4 Conlml de potencia con nine 2.6 GSSSIZSZZoo ocsIaunuuLI-Awn—— I-n É
  4. 4. X MICROCONTROLADOR PICIGIWÓ. DBARROLUJ DE PROYECTOS Capitulo 3: GRABACIÓN DE MICROCONTROLADORES PIC . ... ... ... .. . . 3.1 Grabación de un microcontrolador . . 3.2 Grabadores. ... ... ... ... ... . 3.3 Sottware de grabación lC-Prog. 3.4 Grabación con medios reducidos. 3.5 Proceso de grabación . ... ... ... .. 3.6 Buffer de almacenamiento de programas 3.7 lC-Prog trabajando bajo Windows 2000 o XP 3.8 Enores frecuentes en la programación 3.9 Prácticas de laboratorio . ... ... ... ... ... ... ... .. Capitulo 4: ORGANIZACIÓN DE LA MEMORIA . ... ... ... ... ... ... ... ... ... ... ... ... .. 4.] Arquitectura interna del PlC16F84“ 4.2 Organización de la memoria 4.3 Memoria de programa . ... . . . 4.4 El contador de programa (PC) . 4.5 Memoria de datos . ... ... ... .. . . 4.6 Diferencias entre el PICl6F84A y el PlCl6C84 4.7 Registros del SFR . ... ... ... ... ... ... ... ... ... ... .. 4.8 Registros relacionados con los puertos 4.9 Registro PCL y contador de programa 4.10 Registro de uabajo W . ... .. 4.1 l Registro de estado o STATUS. 4.12 Estado de los registros tras un reset. 4.13 Registro de configuracion . ... ... ... .. Capitulo 5: ARQUITECTURA INTERNA . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 5.1 Microprocesador y Microcontrolador. 5.2 Arquitectura de Von Neumann 5.3 Arquitectura Harvard . ... ... ... . . . 5.4 Procesador segmentando. 5.5 Procesador RlSC 5.6 Arquitectura ortogonal . . 5.7 Puertos“. 5.8 Puerto A. 5.9 Puerto B. . Capitulo 6: ENSAMBLADOR . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 6.] Lenguaje máquina 6.2 Lenguaje ensamblado 6.3 Programa ensamblador. 6.4 Ficheros resultantes del o RAMA 33288818E‘: ‘.2.’ «au-MA 6.5 El código firente" 6.5.1 Etiquetas. 6.5.2 Código de operación. 6.5.3 Operando; 6.5.4 Comentarios 6.5.5 Normas de estilo para escnhrr un archivo fuente. 6.6 Constantes mrméricas y alfanuméricas 6.7 Operadores aritméticos. ... ... ... ... ... ... 6.8 El repertorio de instrucciones. 6.9 Instrucciones de carga 6.9.1 c1rw. ... . 6.9.2 clrf f . . 6.9.3 movlw k 6.9.4 movf Ed 6.9.5 movwf f 6.10 Instrucciones de brt. 6.l0.l bcf f, b . . 6.10.2 bsf Cb . . 6.11 Instrucción “goto 6.12 Configurar las lineas de los puertos 6.13 Directivas 6.13.1 END _. 6.13.2 EQU . . 6.13.3 ORG. . 6.13.4 __CONFIG. 6.13.5 LIST P= l6F84A. . 6.13.6 INCLUDE <Pl6F84A. lN(>. Capítulo 7: MPLAB . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 7.] Entomoli/ PLAB 7.2 Primeros pasos con MPLAB ID 7.3 Ensamblado del programa . ... .. 7.4 Fichero hexadecimal resultante. 7.5 Ventanas de visualización . . 7.5.1 Ventana de visualizan n e a meruona e programa 7.5.2 Ventana Disassernblym. 7.5.3 Ventana de visualimción de los registros del SFR 7.5.4 Ventana de contenido de la memoria RAM. 7.5.5 Ventana personalimda Watch 7.5.6 Linea de estado . . 7.6 Simulación bisica. ... ... 7.7 Simulación mediante Breakpoints y Tram 7.8 Simulacion de . . 7.9 Grabación con el archivo ï E n rn i‘. ÉSSEBSSSSSSÉÉÉÏÉZ} ll da‘? !HESSSÉQSÉSSSSSÉQSSSSESS%
  5. 5. x11 MICROCONTRDLADOR Pnclarxo, DESARROLUO Di: rxovscms mom 7.10 Fichero lístable . ... ... .. . . 98 7.11 Prácticas de laboratorio . 99 Clpítlllo 8: PROGRAMACIÓN ELEMENTAL . ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 101 8.1 Instruccioncsdesuma 101 8.1.l addlw [02 8.1.2 nddwf f, d.. . 102 8.2 Instruccíonesderesïa 103 8.2.1 sublw k. . 103 8.2.2 subwf f, d 103 8.3 Incrcmentarydecremenrar 104 8.3.1 decf fd. 104 8.3.2 ¡ner f, 104 8.4 Insrruccioneslógícas 104 8.4.1 andlw k. 105 8.42 andwf f, 105 8.4.3 com! Cd 105 8.4.4 iorlw k 105 8.4.5 iorwf f, d 106 8.4.6 rlf fid. 106 8.4.7 rrf fiat. .. ¡O6 8.4.8 swapf f, d 107 8.4.9 xorlw k. 107 8.4.l0xorwf f, l07 8.5 Insrrucción“sleep . 108 8.6 Algunas instrucciones utile 109 8.7 Herramientas . ... ... ... ... ... ... . . . lll 8.7.I Ensambladoresycompiladores lll 8.7.2 Simuladores software lll 8.7.3 Emuladores . ... ... .. . . 113 8.7.4 Gmbadoresoprogmmadores 113 8.7.5 Sistcmasde desarrollo” 113 8.8 Proyecwsconmediosreducido | l4 8.9 Desarrollo de proyectos sencillos | l5 8.10 Prácticas de laboratorio l l7 Capítulo 9: SALTOS 119 9.1 Saltos condícíonales H9 9.2 Saltosenflunción deunbit. “ 120 9.2.1 Instrucción “btfsc f, b [20 9.2.2 instrucción “btfss f, b". 120 9.3 Saltos en función de un 9.3.1 Instrucción “decfsz Cd” 9 3.2 Instrucción “incfsz Cd" 9.4 Colnpnmcíón de registros. ..“ 9.4.1 Comprobar que un registro vale 0 9.4.2 Comprobar igtaldad mov dos registro 9.4.3 Comprobar que un registro es mayor o menor que mm. 9.4.4 Programa ejempl 9.5 Lazos o bucle: 9.5.1 Lazo de rtpehc . 9.5.2 Lazo con condición de tesleo. 9.5.3 Lazo que se repiteun número conocido de veces 9.6 Programación y algoritmo 9.7 Diagramas de flujo 9.8 Más directivas innportante 9.8.1 CBLOCK y ENDC. 9.8.2 {ÍDEFINE . ... ... ... ... ... ... ... ... .. 9. 9 Conversión de binario natural a BCD. 9.10 Salto indexado 9.1 l Salto indexado desconociendo. 9.12 Prácticasde laboratorio . ... . . . Capitulo 10: SUBRUTINAS 10.1 Subrutínas . ... ... .. . . 10.2 Subrulinas anidadas 10.3 La pila 10.4 Instrucciones call y ‘¡emm 10.5 Ejemplo de utilización dc las subrutinas. 10.6 Ventajas de las subrulínas 10.7 Librería de subrutinas 10.8 Dírccliva“lNCLUDE' I0. 9 Simulación de snbmtinas en MYLAB 10.10 Programacion esmmturada . ... .. . . lO. I l Practicas dc laboratorio . ... ... ... . . . Capitulo ll: MANEJO DE l 1.1 Tablas de datos en memoria de programa 11.1.1 Instrucción Www" 11.1.2 DirectívaWDT’ . 11.2 Más directivas. 11.2.1 MESSG 11.2.2 ERROR" 11.2.3 lFyENDIF . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. . . c um ÍNDICE xn: l2] 121 l2l l22 122 122 123 l23 125 125 l26 [26 127 127 130 [30 130 131 134 ¡36 l38 14] l4l 143 145 146 l47 149 149 149 154 155 156 ¡S7 157 157 159 .160 ¡60 . ... l6l . . 16]
  6. 6. 11.3 Gobiemo de in display de 7 segmentos 11.3 Practicas de XIV MICROCONFROLADOR Pl(' IAFSA. DESARROLLO DE PROYECTOS Capítulo 12: SUBRUTINAS DE 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 Capitulo 13: LCD. .. Visualizador DCI) Palrllaje. . 13.1 132 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.13 13.14Prácticas de laboratorio”. ... ... ... .. Ciclo máquina“. ... ... ... ... ... ... Medir tiempos con MPLAB Instrucción “nop”. .,, ... ... ... ... . Retardos mediante ¡ano simple Retardos mediante lazos anidad Libreria con subnrtinas de retnrdos Rebotes en los pulsadores Caracteres definidos en la CGROM Modos de funcionamient Comandos de control. .. Conexión de LCDrnediante 4 bits Visualización de caracteres 13.10 Visualímción de valores numérico 13.11 Conexión de LCD mediante 8 bits 13.12 Visualización de mensajes fijos. Practicas de laboratorio. .. DDRAM Librería de Visualización de mensajes en mo Capítulo 14: EEPROM DE 14.1 14.2 14.3 14.4 14.5 l 4.6 14.7 14.8 14:10 Memoria EEPROM de datm Registro EECONI libreria de subrutina. Lectura de la EEPROM de datos Escritura en ¡a EEPROM de datos. Directiva "DE" Ventana "EEPROM"en el MPLAB . Programa ejemplo" , ,,, ,,, ._ Bloquear un circuito“. Prácticas de lahonitori DRAMA 162 166 1Q 169 171 171 172 174 176 ¡81 184 187 187 193 189 191 191 192 193 194 201 202 203 204 208 209 213 213 215 216 217 217 218 218 218 22] 222 ona-m ÍNDICE xv Capitulo 15: TIMERÍI 15.1 15.2 15,3 15.4 15.5 15.6 15.7 15.8 15.9 El Timer 0 (TMRO) TMRO como contador TMRO como temporizador. El TMRO es un registro del Divisor de frecuencia (Prescaler Bits de configuración del TMRO . . 15.6.1 Del registro INTCON 15.6.2 Del registro OPTION Ejemplo del TMRO como contado Ejemplo del TMRO como temporizado Prácticas de laboratorio . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . Capítulo 16: OTROS RECURSOS . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. , . 16.1 162 16.3 16.4 16.5 16.6 El Watchdog Modo de bajo consumo o “SLEEP”. Direccionamiento indirecto Mar: ros. ... ... ... ... ... .. Resistencias de Pull-Up del Puerto B Prácticas de laboratorio . . Capítulo 17: INTERRUPCIONES. LECTURA DE ENTRADAS . ... ... ... ... . . . l7.l 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 17.10 Interrupción ¡7.11 Practicas de laboratori Técnica Polling interrupciones . . Funcionamiento de una interrupción Flags relacionados con interrupcicne l7.4.l Del registro INTCON 17.4.2 Del registro 01711014 Instrucción “rerñe” Interrupción externa lNT Registros alterados por la intemrpción. Averiguar la causa de la interrupción Fases de una interrupción Capítulo 18: INTERRUPCIÓN POR DESBORDAMIENTO DEL 18.1 18.2 18.3 18.4 18.5 TIMER 0 . ... ... ... . . . Interrupción producida por el TMRO Temporizaciones exactas Temporizaciones largas Temporizador digital . . Prácticas de ¡aboratori 223 223 224 224 225 225 226 226 226 227 229 233 235 237 241 243 249 250 253 253 255 257 258 258 259 259 260 26 l 264 264 267 268 271 27 1 273 274 276 286
  7. 7. XVl MICROCONTROLADOR PlC16F84 DESARROLLO DF. PROYECTOS Capítulo 19: TECLADO MATRICIAL 19.1 Teclado hexadecimal . ... ... ... ... ... ... ... ... .. 19.2 Conexión de un teclado a un PICI6F84 19.3 Algoritmo de programación 19.4 Librería de 19.5 Ejemplo de aplicación s. 19.6 Cerradura electrónica 19.7 Prácticas de laboratorio Capítulo 20: COMUNICACIÓN CON ORDENADOR”. 20.1 Puerto serie RS232 . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ,. a 20.2 El Baudio . ... ... ... ... ... .. 20.3 Niveles lógicos ¡{S232 . 20.4 Formato de un byte 20.5 MAX232 20.6 Conexión puerto y 4 20.7 Libreria de subrutinas para RS232 . 20.8 El HyperTenninal . ... ... ... ... ... ... ... .. 20.9 Programa ejemplo. .." 20.10 Librería RS232_MEN N 20.11 Sistema de monitorización 20. 12 Sistema de gobierno desde ordenador 20.13 Prácticas de laboratorio . ... ... ... ... ... . . . Capítulo ll: BUS l2C . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 21.1 Elbus]2C. ... ... ... ... 21.2 Hardware del bus l2C 21.3 Transferencia de un bit por la lrnea SD 21.4 Condiciones de START y STOP 21.5 Transferencia de datos” 21.6 Fomrato de una transferencia datos 21.7 Tipos de fomratos de transferencia. 21.8 Temporización. ,.. .., s.. ... ... ... ... ... ... . 21.9 Conexión de bus l2C a un PlC l6F84. 21.10 Librería de submtinm para bus l2C 21.1 l Dispositivos l2C . ... ... ... ... ... ... ... .. . . Capítulo 22: 24LC256, MEMORIA EEPROM EN BUS 22.1 Memoria EEPROM serie 24LC256 22.2 Paginación de 1a memoria 24LC256 22.3 Direccionamiento como esclavo. .." 22.4 Conexión de una 24LC256 a un PlCl6F84 22.5 Escrífiura enla memoria 24LC256.. ... ... ..‘. . o ¡una 290 290 292 293 298 299 303 305 305 307 307 308 309 310 312 315 3 l 8 3 l 9 322 324 328 331 331 333 334 334 335 336 337 338 339 340 343 345 345 346 347 347 348 0M wr ÍNDICE xvu 22.6 Lectura de la memoria 24LC256 22.7 Libreria de subrutínas. .." 22.8 Ejemplo típico de aplicar: n . ... ... ... . . . 22.9 Grabación de datos mediante cl IC»Pro 22.10 Visualización de mensajes largo 22. l l Control de muchos mensajes . Capítulo 23: DSl624, TERMÓMETRO EN BUS l2C . ... ... ... ... ... ... ... ... ... ... ... .. 23.1 El sensor de temperatura DSl62 23.2 Direccionamiento como esclavo 23.3 Lectura dela temperatura . ... . . . 23.4 Registro de contro] 23.5 Comandos. ... ... ... .. 23.6 Librería de subrutinas 23.7 Termómetro digital . ... ... ... ... .. . . Capítulo 24: 081307, RELOJ CALENDARIO EN BUS 24.1 El reloj-calendario DS1307 . ... ... ... ... ... . . . 24.2 Conexión de un DSl307 a un PlC16F84. 24.3 Registros del DSl307 24.4 Registro de control . . 24.5 Escritura en el DSl307 24.6 Lectura del DSl307. 24.7 Librería de subrutinas. 24.8 Programa del reloj calendario digital Capítulo 25: SAAl064, CONTROLADOR DE DISPLAY 25.1 SAA! O64, controlador de display . ... ... ... ... ... ... ... ... ... ... ... .. 25.2 Circuito típico para modo estático. 25.3 Circuito típico para modo dinámico 25.4 Dírteccionamienw como esclavo 25.5 Registros intemos 25.6 Escritura en el SAAl064 25.7 Programa ejcmplo. ... ... . 25.8 Tennómem) de visualización en displays Capitulo 26: PCF8574, EXPANSOR DE BUS l2C . ... ... ... ... ... ... ... ... ... ... ... ... ... .. 26.1 El expansor de bus l2C PCF 8574.. 26.2 Direccionamiento como esclavo 26.3 Escritura en el PCF8S74.. ... ... . 26.4 Lectura del PCF8574.. . 26.5 ' 26.6 349 350 352 354 355 356 359 359 360 360 362 363 364 367
  8. 8. XVIII MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS amm 26.7 Conexión entre PCF8574 y PlCl6F8 26.8 Ejemplo de programa . ... ... . . . 26.9 Constitución intema del puerto 26.10 Teclado hexadecimal en bus I2 Capítulo 27: PCF859l. ADC Y DAC EN BUS l2C 27.l PCF859l 272 Diroccionarniento como esclavo. 27.3 Registro de control . ... . . . 27.4 El PCF859l como DA 27.5 Resolución del DAC. ... 27.6 Ejemplos del PCF8S9| como DAC 27.7 El PCF859l como ADC . ... ... ... . . . 27.8 Ejemplo del PCF859l como ADC Capítulo 23: aus DE UNA LÍNEA . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . . 28.1 Sensor dc temperatura DSl 820.. 28.2 Diagrama en bloques del DSl820 . 28.3 Lectura de la temperatura 28.4 Bus de una linea 28.5 Señales del bus de una ines 28,6 Inicialización: Pulsos Reset y Pr noe. 28.7 Escritura de un bit sobre el DSl820 . ... .. 28.8 Lectura de un bit procedente del DSl820 . 28.9 Libreria de subrutirias para bus de l línea. 28.10 Único DSl820 conectado al bus de 1 llric 28.l l Termostato digital. Capítulo 29: MOTORES DE CORRIENTE CONTINUA . ... ... ... ... ... ... ... ... . . . 29.1 Puente en H. .. 29.2 Driver L293B 29.3 Giro en un unico sentido . 29.4 Giro en los dos sentidos . . 29.5 Conexión de motor c. c. y PlC16F84. 29.6 Control de velocidad Capítulo 30: MOTORES PASO A PASO . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 30.1 Motores paso a paso (PAP). 30.2 Principio de fimcionamiento 30.3 Motores PAP bipolares 30.3.1 Motor PAP bipo aren rn o rep 30.3.2 Motor PAP bipolar en modo Half St 30.4 Motores PAP unipolares 414 415 416 417 423 423 424 425 426 428 430 436 43 8 467 472 473 475 481 48 l 482 484 485 485 486 r ¡(AMA ÍNDICE xix 30.5 Constitución interna de un motor PAP. 30.6 Disposición de las bobinas. 30.7 Parámetro de los motores P . 30.8 Control de los motores paso a past 30.9 Identificación de un motor PAP“. 30. IO Conexion motor PA P bipolar y PI . (¡F84 30.11 Conexión motor PAP Unipolary PlC16F84 30.12 (Ïonlrul de motor PAP en modo Full Step . . 3013 Realización de secuencias de movimientos 30.l4 Control dc motor PAP en modo l-lalfStcp 30. l S Control de velocidad . ... ... ... ... ... ... ... ... ... .. . . Capitulo 3|: SERVOMOTORES DE RADIOCONTROL . ... ... ... ... ... ... ... ... . . . 3 l . l Servumotores para microrobótica. 3 l .2 Funcionamiento del servomotor 31.3 Tenninales 3 l .4 Conexión de un scrvomotor a un PlCl6P8 Capítulo 32: SENSORES PARA MICROROBÓTICA . ... ... ... ... ... ... ... ... ... ... . . . 32.1 Sensores para mierorobótica 32.2 Inversor Trigger Sclrm’ 40106 32.3 LDR . ... ... ... ... ... ... ... ... ... ... .. 32.4 Fotosensorcs activos . ... ... ... .. . . 32.4.1 Sensor óptico CNY70 32,42 Sensores ópticos 0PB703/4/ 32.4.3 Ejemplo de aplicación . . 32.4.4 Sensor óptico de barrera H2! A 32.5 Sensores inli-arrojos GPZDXX 32.5.1 Principio de funcionamiento 32.5.2 (¡P2005 . 32.5.3 GPZDIS 32.5.4 GP2Dl2 . . 32.6 Receptor para control remoto SFH5ll 32.6.1 Descripción. “ 32.6.2 Circuito detector 32.6.3 Circuito emisor” 32.7 Sensor de proximidad lS47lF 32.8 Burnpers . ... ... ... ... ... ... ... ... ... .. 32.9 Detector por ultrasonido SR. F04 Capítulo 33: CONSTRUCCIÓN DE UN MICROROBOT 33.1 Introducción a la Microbótica 33.2 Nivel fisico. Motores“ 33.2.! Motores de comente continua e pequeña potencia. 489 490 49 l 492 492 494 495 496 498 500 502 505 505 507 508 509 SIS Sl 5 515 5 l8 521 522 524 525 S26 527 528 529 530 530 53! 531 533 533 S33 535 537 S43 543 545 545
  9. 9. xx MJCROCONFROLADOR Picmm. DESARROLLO o: rnmrccms tu: ¡wm 33.2.2 Motores de corriente continua con reductores 545 33.2.3 Servomotores 545 33.2.4 Modificación dc un servomotor 546 33.2.5 Fijación del motor a la estructura . 549 33.3 Nivel fisico. Estructura . ... ... ... ... ... ... ... ... .. 550 33.31 Estructuras 550 33.3.2 Estructura del microrobot experimental ‘Trasto’ 551 33.4 Nivel fisico. Ruedas . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. , . 552 33.4.1 Estructuras según la colocacion de las ruedas. 552 33.4.2 Ruedas “Iocas". ... 553 33.4.3 Ruedas de tracció 554 33.5 Nivel fisico. Movilidad 555 33.6 Nivel de reacción S56 33.7 Nivel de control 559 33.7.] Estrategia a seguir para un microbot rastreado 559 33.7.2 Pmgraipa del rastreador. S61 33.7.3 Estrategia a seguir para un ro t etector de alrzz 562 33.7.4 Programa de robot detector de baliza . ... ... ... ... ... .. 563 APÉNDICES A. CARACTERÍSTICAS TÉCNICAS DEL PICl6F84A S65 B. REPERTORIO DE S69 C. CONSTANTES Y OPERADORES . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 587 D. PRINCIPALES DIRECTIVAS DEL ENSAMBLADOR MPASM . ... ... ... . . . 589 E. REGISTROS ESPECIALES . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 601 G. CÓDIGO ASCII . ... ... ... ... ... ... ... .. m3 H DIRECCIONES DE INTERNET. 615 l. CONTENIDO DEL CD-ROM. 617 ÍNDICE s19 PRÓLOG0 Los micioconuoladorcs se utilizan cn circuitos electronicos comerciales desde hace unos años de foma masiva. debido a que permiten reducir el tamaño y el precio de los equipos. Un ejemplo de éstos son los teléfonos móviles, las cámaras de video, la televisión digital, la transmisión por satélite y los homos microondas. Pero hasta hace poco tiempo, para el aficionado a la electrónica resultaba poco menos que imposible incluirlos en sus montajes por diversas razones: alto precio, complejidad de los montajes y, principalmente, por la escasez y el alto precio dc las herramientas soflware. En los últimos años se ha facilitado enorme-mente el trabajo con los microcontroladores al bajar los precios, aumentar las prestaciones y simplificar los montajes, de manera que en muchos ocasiones merece la pena utilizarlos en aplicaciones donde antes se utilimba lógica discreta. Diversos fabricantes ofrecen amplias gamas de microcontroladores para todas las necesidades. Pero, sin duda, hoy en dia los microcontroladores más aceptados para diseños aficionados (y buena parte de los profesionales) son los microcontroladores PIC fabricados por Mcmchrp Technology Inc, que recientemente se anunciaba como el mayor fabricante del mundo de microcontroladores de 8 bits. En este auge ha influido decisivamente la política de Microchíp al ofrecer la dociunentacidn y todo el sofiware necesario de forma gramita en su página Web wwmmicrochrpram. Esto, junto con otras cuestiones técnicas, han hecho que hoy en día resulte muy fácil incluir los microcontroladores PIC no solo en los diseños de los aficionados a la electrónica, sino también cn complejos sistemas digitales. Entre los microcontroladores PIC destaca el PICI6F84 cuya simplicidad, prestaciones, facilidad dc uso y precio lo han convenido en cl más popular de los
  10. 10. XXII MICROCONTROI ADOR PICIGFM. DESARROLLO D]: FROYECIOS «¡IM MA microcontroladores, siendo un chip ordinario de 18 patillas, cuya pequeña estructura de plástico contiene mucha de la tecnologia que se necesita conocer para entender los sistemas dc control con microprocesadores. El PlC16F84 es un dispositivo ideal para aprender tecnicas de soflwarc y del microprocesador. especialmente para estudiantes de electrónica con im conocimiento previo mínimo, Es rclativamcnte bamto y, mejor aún, puede volverse a utilizar porque cs fácilmente reprogramublc. El microcontrolador es tm dispositivo independiente y programable; y cl estudiante, ya sea ingeniero o aficionado, puede utilizarlo sin saber en detalle como funciona Por otra parte, podemos aprender mucho estudi-ándolo internamente. Los autores de este libro llevamos muchos años dedicándonos a la enseñanza de microprocesadores y microcontroladores. Cuando comenzamos a impartir nuestras primeras clases sobre microprocesadores, las prácticas de laboratorio eran realizadas por los alumnos sobre unos entrenadores más bien voluminosos. que disponían dc un teclado. una pantalla con unos pocos displays y todo el sistema que hacia que aquello funcionara. Los estudiantes tecleaban una lista de códigos hexadecimalcs, pulsaban la tecla run y comprobaban si esa lista de códigos realizaba la función esperada. Pocos alumnos tenian claro lo que estaban haciendo e incluso algunos creían quc esa “maleta“ cm el microprocesador. Como anécdota, cuando uno de ellos tuvo un microprocesador en sus manos pregunto donde estaba c1 teclado. Nuestra experiencia docente nos ha demostrado que para dominar este mundo de la electrónica programable es necesario quc el alurrmo realice Nodo", desde el esquema a la soldadura del último terminal, e incluso, la maqueta que dé sentido al sistema microprogramable. Este metodo de trabajo plasmado cn el libro tiene grandes verrugas. Entre otras, dispone que sea el propio lector quien trabaje en un entomo real, creado por él mismo y no cn un sistema preconcebido que en la mayoría de los casos tarda en comprender. No implica depender de costosos equipos, accesibles únicameme en laboratorios, sino que precisa exclusivamente de medios de trabajo presentes en la vida cotidiana. Y por último. potencia la autosuficiencia y la capacidad creativa del lector, al sa el mismo el que constantemente modifica el sistema y, afianza su autoestima al comprobar que lo que ha creado, funciona y realiza la tarea para la que fue ideado. En este libro tratamos de plasmar la experiencia adquirida en nuestros años de docencia y facilitar la creación de nuevas prácticas tomando como base las aqui descritas, habiéndose comprobado su correcto fimcionarniento, salvo error de trascripción. También hemos querido mostrar una gran variedad de periféricos que pueden usarse junto con un miaoprooesador/ micrucontrolador, desde el más común de los transista-es, a complejos sensores para bus l2C. “MM, Pkóuxst: um La teoria desarrollada va siempre dirigida a hacer las prácticas, siendo lu imprescindible para la realización de los proyectos de dificultad creciente que trabajan sobre circuitos reales. Esperamos que la lectura de este libro le resulte sencilla y sobre todo que cumpla la (‘mandan para la que esta escrito. que con los pocos medios técnicos dc los que se suclc disponer en casa. sea capaz de desarrollar proyectos microprogranrables de una forma autodidacta. Cualquier aficionado, estudiante o ingeniero. con ayuda de este libro, debe ser capaz de empezar a utilizar el PlClfil-‘B-‘l inmediatamente en sus propios proyectas y diseños. Nuestro agradcciinicnto a las fabricantes Microchip Techno/ og Inc, Philips Sïïmrcnnducrorx y Dallas" üvmiconductors, asi como a la erupricsa Sagirron por su constante esfuerzo cn ayudar a los usuarios en la utilizacion de sus produclos. Ql-¡ÜWIXVS 571351191110 agradecer a todos los compañeros y alumnos. la ayuda prestada, sugerencias y participación cn el desarrollo de esta obra: Camion Gómez. Julio Redondo, Jesús Sanz, Javier Temprado, Gemma Gil, Juan M. Morales, José M. Escobosa, Ana Zamora. Nuria Torijarto, Jose’ A. Sanz, Alejandro Pico, Loli Moreno. Sergio González-Nicolás, _Javicr Garcia-Caro, Diego A. Córdoba, Alfonso Maflín. Eduardo F. Garcia Folgar. Angel Toledo y Fernando Blanco. LOS AUTORES
  11. 11. MICROCONTROLADOR PlC16F84 1 . MICROCONTROLADORES PIC Un microcontrolador es un circuito integrado programable que contiene todos los componentes necesarios para controlar el funcionamiento de una tarea determinada, como el control de una lavadora, un teclado de ordenador, una impresora, un sistema de alarma, ole, Para ésto, el rnicrocontroladorutiliza rruy pocos componentes asociados. Un sistema con microcontrolador debe disponer de una memoria donde se almacena el programa que gobiema el funcionamiento del mismo que. ¡mn vez programado y configurado, sólo sirve para realizar la tarea asignada, La Indización de un microoontroladoren m circuito reduce notablcmcnteel tamaño y número de componentes y, en consecuencia, disminuye el número de averías y el volumen y el peso de los equipos, entre otras ventajas. El microcontrolador es uno de los inventos más notables del siglo XX En el mercado hay gun cantidad de ellos, con multitud de posibilidades y caracteristicas. Cada tipo de núcrooonoolador sirve para una serie de casos y es el diseñador del sistema quien debe decidir cual es el nucrooonuolador más idóneo para cada uso. En los últimos años han tenido un gran auge los microcontroladores PIC fabricados por Mcrvchip Technology Inc, Los PIC (Peripheral Interface Controller) son una familia de mícrowrmoladores que ha tenido gm aceptación y desarrollo en los últimos años gracias a que sus buenas caracteristicas, bajo precio, reducido consumo, pequeño tamaño. gran calidad, fiabilidady abundancia de información, lo convienen en muy facil, cdt-nodo y rápido de utilizar.
  12. 12. Z MICROCONTROLADOR PlC16F84. DESARRDLID DE PROYECTOS DRAMA Este libro se centra en el estudio de un microcontrolador PIC muy popular, el PlC16F84. Está encapsulado en un económico DlL de 18 pines (figura l -l ). Debido a sus múltiples aplicaciones y facilidad de uso es uno de los microcontroladores más utilizados en la actualidad para la realización de proyectos sencillos, ¡g ¡w s-icierm V OSCHCLKIN oscmcLKouT VDD nav nas R35 aaa VV8:|9LOld Ertcapsulado DIL-1 8 Símbolo Figura l-I Microcontrolador PIC] 6F84A El microcontrolador PlC16F84 puede trabajar con una fi-ecuencia máxima do. 10 MHz. La versión avanzada PlCl6F84A-20 puede llegar hasta los 20 MHz. Todos los circuitos planteados en este líbfl) se han realizado con el PIC l6F84A-04 (4 MHz máx). En la figura l-2 se describe un eÏemplo de aplicación. Se trata del entrenador básico que se va a utilizar en los primeros temas de este libro para el aprendizaje de su martejo y programación. Este circuito se explica a continuación. 1.2 ALIMENTAClÓN DE UN PlC16F84 Normalmente el microconoolador PlCl6F84 se alimenta con 5 voltios aplicados entre los pines Vnn y Vss que son, respectivamente, la alimentación y la masa del chip. La figura l-2 describe un circuito de alimentación que obtiene los 5 voltios a panir deuna temión continua de l2 voltios y de al menos l amperio. Este circuito se basa en el popular regulador de tensión 7805. Dispone de un diodo a la aio-ada para protegerlo en el caso que se aplicar-an tensiones con la polaridad invertida. El condensador C4 reduce considerablemente el rizado de la misión de entrada que finalmente el regirlador 7805 se encarga de estabiliza’ a los 5 voltios de alimentación de todo el entrenador. Por último dispone de un diodo LED indicador de encendido. viuda CAPÍTULOL Micnormmïomrxïuriciau s El consumo de corriente para cl funcionamiento del microcontrolador depende dc la tensión de alimentación. de la frecuencia de trabajo y de las cargas que soporten sis salidas. siendo del orden de unos pocos militmtpcrios. El circuito dc alimentación del nticroimnuolndor debe trauma como el dc cualquier otro dispositivo digital. debiendo conectarse un condensador de desacoplo de unos l00 nF lo más cerca posihlc dc los pinos dc alintcntavión. Figura I-J Entrenador pam aprendizaje del microcontrolador PIC I 6F 84 1.3 PUERTOS DE ENTRADA/ SAMBA El vnicrowrmnlador se comunica con el mundo exterior I través de los puertos. Estos atún constituida por linuis digitales dc entraría/ salida que trabajan entre 0 y 5 V. lmpuamsscptrodmoonfigumoomomusdaspammmbirdatosommsalidaspam gobcrnarditpositivos extemos
  13. 13. 4 MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS o RAMA El PlC16F84 tiene dos puertos, ta] como se ilustra en la figura l-2; v El Puerto A con 5 lineas, pines RAO a RA4. v El Puerto B con 8 lineas, pines RBO a RB7. Cada línea puede ser configurada como entrada o como salida, independientemente unas de otras, según se programe. Así, por ejemplo, en el circuito de la figura 1-2 el Puerto A es configurado como entrada para leer los interruptores y el Puerto B es configurado como salida para activar la barra de diodos LEDs y el display de siete segmentos. Las líneas son capaces de entregar niveles "ITL cuando la tensión de alimentación aplicada en Von es de 5V. La máxima capacidad de corriente de cada una de ellas es: I 25 mA, cuando el pin está a nivel bajo, es decir, cuando consume corriente (modo sink). Sin embargo, la suma de las intensidades por las 5 líneas del Puerto A no puede exceder de 80 mA, ni la suma de las 8 líneas del Puerto B puede exceder de 150 mA. o 20 mA, cuando el pin está a nivel alto, es decir, cuando proporciona corriente (modo source). Sin embargo, la suma de las intensidades por las 5 líneas del Puerto A no puede exceder de 50 mA, ni la suma de las 8 lineas del Puerto B puede exceder de 100 mA. 1.4 OSCILADOR Todo microcontrolador requiere de un circuito que le indique la velocidad de trabajo, es el llamado oscilador o reloj. Éste genera una onda cuadrada de alta frecuencia que se ufiliza como señal para sincronizar todas las operaciones del sistema. Este circuito es muy simple pero de vital importancia para el buen funcionamiento del sistema. Generalmente todos los componentes del reloj se encuentran integrados en el propio microcontrolador y tan solo se requieren unos pocos componentes exremos, como uri cristal de cuarzo o una red RC, para definir la fiecuencia de trabajo. En el PlC16F84 los pines OSCI/ CLIGN y OSCZ/ CLKOUT son las lineas utilizadas para este fin. Permite cinco tipos de osciladores para definir la frecuencia de funcionamiento: XT. Cristal de cuarzo. RC. oscilador con resistencia y condensador. HS. Cristal de alta velocidad. LP. Cristal para baja frecuencia y bajo consumo dc potencia. Externa. Cuando se aplica ima señal de reloj extema. ‘I'M-MA CAPÍTULO! MICROCONTROLADOR PKÏIÓHM S 1.4.1 oscilador XT Es el más utilizado y está basado en el oscilador a cristal de cuarzo o en un resonador cerámico. Es un oscilador estándar que permite una frecuencia de reloj muy estable comprendida entre l00 kHz y 4 MHz. La figura l-2 muestra la conexión típica. En muchos proyectos se utilim un cristal de 4 MHz. El cristal debe ir acompañado de dos condensadores entre 15 y 33 pF. Si se compmeba con un osciloscopio la señal en el pin OSCZ/ CLKOUT. sc debe visualizar una onda senoidal de igual frecuencia que la del cristal utilizado. 1.4.2 oscilador RC Es un oscilador de bajo coste formado por una red RC (figura l-3). Su principal inconveniente es la baja precisión, pero como contrapartida está su bajo precio. que lo hace interesante para muchas aplicaciones en las que no importa la exactitud de tiempos. vcc Ren 3 3,. PIC16FB4A CSCZÍQKOUÏ Fon-A Figura I -3 Configuración del oscilador RC Los valores recomendados por el fabricante para este tipo de oscilador son: 5 k0 s Rex! S [00 m y Cext > 20 pF. Los valores de frecuencia correspondiente para cada valor de condensador y resistencia se reflejan en la tabla I-l, La frecuencia del oscilador dividida por cuatro, está disponible en el pin OSCZ/ CLKOUT y puede ser usada pam sincroninr otros circuitos. 1.4.3 Osclladores HS y LP El oscilador de cristal o resonador de alta velocidad HS (High Speed CryraI/ Resonalor) trabaja a una ficcuencia comprendida entre 4 MHz y 20 MHz para el PlCl6F84A.
  14. 14. 6 MICRDCONTROLALXR PlC16F84 DESARROLLÚ DE PROYECTOS e-kA-MA o “nm * r 4,6lMl-lz 2.66 MHz 311 kHz ¡,34 MHz 756 kHz 82,8 kHz V "422 kHz 243 kHz 26,2 kllz Tabla I —I Frecuencia del oscilador RC para ziifarenler valores de componentes El oscilador de cristal dc cuarzo o resonador cerámico dc baja potencia LP (Low Power Crystal) es un oscilador de bajo consumo. Su cristal o resonador está diseñado para trabajar con frecuencias comprendidas entre 32 kHz y 200 kHz. OSCHCLKIN J: ' PIC16FB4A OSCHCLKOUÏ Figura I-4 oscilador configuración HS, XT y LP El circuito para cualquiera de las configuraciones HS, LP y XT es el mismo (figura l-4). El wilor de los condensadores Cl y C2 depende del cristal o resonador según unas tablas que facilita el fabricante. La resistencia R5 sólo es necesaria para algunas versiones del tipo HS. 1.4.4 Utilizando una señal de reloj externa Esta posibilidad suele ser utilizada para hacer funcionar varios microcontroladores a partir de una única señal de reloj (figura l-S). La frecuencia del oscilador dividida por cuatro, está disponible en el pin OSCZ/ CLKOUT. Se utiliza en pocas ocasiones Señaldarnloi W. .. n: > F asc/ A OSCÜCLKIN PICWGFMA OSCZ/ CLKÜUT Figura 1-5 Circuito para señal de reloj externa (‘IQtMA CAPÍTULO l: MICROCONTROLADOR PIClSFM 7 1 .5 RESET El llamado reset en un microcnmrolador provoca la reínicialización de su funcionamiento, un “comienzo u funcionar desde Cero". En este estado, la mayoria de los dispositivos intemos del microcontrolador toman un estado conocido. En los microcontroladores se requiere un pin de reset para reiniciar el funcionamiento del sistema cuando sea necesario. El pin dc rosct en los PIC se denomina MCLR (Master Clear) y produce un reset cuando se le aplica un nivel logico bajo. vw) RED/ ANT mi R51 . m2 u: . ms Rm ¡ua/ maxi Ru nas una RB‘! vici eran PIC! nFuA A) TlPlCA CONEXIÓN DEL PIN MCLR. B) RESET MEDIANTE ‘FULSADOR EN PIN MCLR. Figura I-6 Algunas conexiones‘ para al pin MCLR Para tener un control sobre el reset del sistema, se puede conectar un pulsador tal como se muesln en la figura l-6(B) y conseguir un reset manual llevando momentáneamente el pin MCLR a masa cada vez que sc presiona el pulsador. El reset permanecerá mientras tengamos cl pulsador presionado y no comenzará la secuencia de arranque hasta que no lo liberemos, suministrando asi un nivel lógico “1" al pin MCLR. El fabricante recomienda conectar en serie con el pulsador una resistencia de S0 a 100 Q. El PlC16F84 también permite el llamado Power-On Reset (POR), que proporciona un reset al microcontrolador en el momento de conectar la fuente de alimentación. El PIC dispone de un temporizador denominado Reset PWRT (Power-up Timer), que proporciona un retardo de 72 ms desde el momento de la conexión a la alimentacion; un reset se mantiene durante este tiempo, garantizando que Vcc alcance un nivel aceptable de tensión para un arranque correcto del sistema. Para utilizar este tipo de reset, hay que conectar el pin MCLR al positivo de la alimentación (figuras l-ó). Además, hay que programado así durante el proceso de grabación. Con ésto sc evita utilizar las tradicionales redes RC extemas de otros microcontroladores.
  15. 15. X MICROCDNFROLAKXM? PlClbFü-í. DFSARROLLO Dl: ¡’RUYECKJS DIA-MA El PlC16F84 permite otros causas de reset quc serán explicadas en capitulos posteriores. 1.6 MONTAJE DEL ENTRENADOR Una vez analizado el entrenador para el aprendizaje del microcontrolador PlCl6F84 descrito en la figura l-2 se puede pasar a su montaje bien sobre placa de prototipos Pratobaard, sobre una placa wrapping, circuito impreso, o cualquier otro soporte. En cl montaje hay que respetar las siguientes nonnas: Comprobar todos los componentes que sea posible antes de su montaje. El PIC se situará de manera tal que sea facilmente extraible, preferiblemente en el lateral derecho de la placa (izquierdo para zurdos). de modo que no pasen cables por encima. o Es recomendable alojar el microcontrolador en un zócalo de pines tomeados para no doblar las patillas y evitar que se rompan. o Los indicativos de menor peso de los arrays de diodos LEDs e intemrptores se colocarán a la derecha. o Los cables deben ser lo más corto posible. No se deben utilizar cables contiguos del mismo color. o Hay que respetar el rojo para el positivo de ln alimentación y el negro para el negativo. o Una vez. terminado todo, debe procederse a la comprobación de nuevo de todas las conexiones. No se debe temer el "perder" diez minutos en esta fase. ya quc después puede abonar gran cantidad de tiempo en averías. La tensión de alimentación de l2 V de tension continua se puede obtener con un alimentador que puede adquirirse facilmente en cualquier tienda de electrónica o en un hipemicreado. Si lo desea el lector puede montarlo a partir del esquema de la figura l-7. Jl Dt 220V 8400600 otZV h t ct sV/ IA J: 2200u/25V Figura I-7 Esquema de un alimenladar de 12 V de tensión continua PERIFÉRICOS BÁSICOS Las prácticas de los primeros capitulos se realizaran sobre el entrenador del esquema de la figura l-2 en el que se utiliza como entrada unos interruptores y cuya salida se aplica a unos diodos LEDs. Es posible que el lector desee adaptar estas" prácticas para su proyecto utilizando otros tipos de periféricos como los explicados en este capítulo. En este libro se ha procurado utilizar componentes fácilmente localizables cn cualquier tienda de electrónica. Si el lector desea buscar las características técnicas de versiones concretas. o adquirir componentes que en su tienda habitual no le es posible encontrar. puede intentarlo en las siguientes direcciones de Internet: vgwamidalu s. _5yv'v’. mlkr0l¡. cs o wwwjírmclleom. Las caracteristicas técnicas de todos los componentes utilimdos también se facilitan en el CD-ROM que acompaña a esta obra. Si el lector está impaciente por comenzar a programar el microcontrolador y las prácticas las va a realizar sobre el entrenador de la figura l-2, puede por ahora saltarse este capítulo sin que sufra la continuidad del libro y volver a él conforme vaya utilizando los distintos componentes y circuitos que describimos en este tema. 2.1 DIODO LED El diodo LED es un dispositivo que permite comprobar el funcionamiento dc los circuitos de fomia cómoda mediante la emision de luz. lis barato y fácil de conectar a la salida de un vnicrocontrolador, Se polariza en directo con una tensión en extremos entre 1,2 y 2,2 V, según modelo. y sólo requiere de 5 a 30 mA para su encendido.
  16. 16. 10 MICRUCONÏROLAIÑK PlC16F84. DESARROLLO DE PROYECTOS 0M MA El PlC|6F84 es capaz dc gobcmar directamente diodos LED de dos formas distintas, tal como se indica en la figura 2- l: o Concctando el cátodo del diodo a la salida del microcontrolador y el ánodo al positivo de la alimentación a través de una resistencia limitadora, como cl diodo DI de la figura 2-l. En este caso, el LED se ilumina con un nivel bajo de salida (0 V). o Conectando el ánodo del diodo a la salida del microcontrolador a través de una resistencia limitadora y el eátodo a masa, como el diodo D2 de la figura 2-l. En este caso, el LED se ilumina con un nivel alto de salida (5 V). La resistencia limita el valor dc la coníente a un valor adecuado para iluminar el LED. Debe tener un valor comprendido entre 220 y 330 Sl. En la figura 2-l se ha elegido 330 S1 que limita la corriente a un valor de unos lO mA que proporciona una luminosidad suficiente para la mayoria de las aplicaciones. Si al lector le gusta que emita más luz. puede bajar su valor a 220 fl. sv sv ici FICIGFBAA Dt SE ENClENDE CDN SALIDA A NIVEl amo pz sz ENCIENDE con sauna A NNEL Ano Figura 2-I Formas de conectar un LED a un microcontrolador Los diodos LED también se pueden encontrar eneapsulados en barras dc 8 ó lO LED (figura 2-2) como los que se conectan a la salida del Puerto B de la figura l-2, Üüiiiïliii B) ASPECTO FÍSICO A) CONSTITUClÓN INTERNA Figura 2-2 Bmw de I 0 diodos LED «ru-MA CAPÍTULO z, PERIFÉRIFOS nAsrcos rr 2.2 INTERRUPTORES Y PULSADORES » al“ Estos dispositivos permiten introducir un nivel lógico "0" o en que se encuentren, “cen-ado” o “abierto". según la posición La lectura del estado de interruptores y pulsadores es muy simple, basta con conectar estos dispositivos entre una entrada y masa, tal como se indica en la figura 2-3 y forzar la entrada a un nivel lógico alto (5 V) mediante una resistencia de Pull-Up de unos lO k. 5V sv v ¡Oti rn: l l PULSADOH ¡NTERRUPTOR AElEÑTO ->«n—¡ cEaRAoo-nt-o- ABlERTO Figura L3 Niveles de tensión ideales en homes dc un interruptor, pulsador. ele. Mientras el dispositivo esta abierto, la entrada mantiene una tensión de 5 V quc corresponde a un nivel lógico “l", Cuando se cierra. la entrada pasa a valer 0 V correspondiente al nivel lógico “0". Hay muchos tipos de conmutadores, finales de carrera. detectores y sensores digitales con un funcionamiento similar a los pulsadores c interruptores. 2.3 ENTRADAS DIGITALES CON OPTOACOPLADORES En algunos proyectos es necesario utilizar como entrada señales de alta tensión o señales relacionadas con la tensión de la red electrica. Estas tensiones no se pueden aplicar directamente al microcontrolador y cs necesario aislar cléclricamente el circuito mediante un optoacoplader can un montaje como el de la figura 2-4. El 4N25 es un popular oploucoplador. cn cuya cápsula DlL-o se encierra un diodo LED y un tirtatransistor. Es fácil deducir su funcionamiento: o Cuando se aplica una tensión VW. circula una corriente por el LED del optoacoplador emitiendo un haz de luz que incide sobre el transistor y lo satura. En este caso a la entrada del nticrocontrolador sc aplica un nivel hajn, igual que cuando estaba cerrado el interruptor de la figura 2-3.
  17. 17. lZ MICROCONTROLADOR PlC16F84. DESARROLLO DF, PROYECTOS GRAMA o Cuando no se aplica tensión alguna el LED está apagado bloqueando el transistor. En la entrada se aplica un nivel alto igual que cuando estaba abierto el interruptor del circuito de la figura 2-3. La tensión directa en extremos del LED 4N25 en conducción es de 1,2 V y para que se ilumine hay que hacer circular una corriente de unos 5 mA. La resistencia en serie con el LED debe permitir que circule esta intensidad, asi, por ejemplo para una tensión Vw de 24 voltios se conectada una resistencia con un valor comercial de 4k7 (o mejor 3k9) ya que: _ VÍN-LZV _ 24V -l,2V Rl-e-efltáók SmA SmA El diodo LED soporta una tensión máxima inversa de sólo 3 V. Para aplicaciones en con-lente alterna hay que conectar en paralelo con el LED un diodo de protección en inverso o, mejor, utiliur un optoaeoplador que ya lo lleve integrado como el Hl lA l, VIN 5V SV lCl PIC15F84A (' t vmmzv ¡me 5”“ ‘ RA1 “MET. RAZ R212 ¡{A3 R53 RAA/ TOCKI R34 R55 nas ¡a7 a; U} > ÜSC1 OSCZ Figura Z-4 Gobierno de una entrada mediante aptoacop/ adar 4N25 Puede comprobarse que los dos circuitos están eleetricamente aislados, la única comunicación entre ambos es la luz que emite el LED. 2.4 DISPLAY DE SIETE SEGMENTOS El display de siete segtncntos es un periférico digital de salida que se utiliza para representar valores numéricos (figura 2-5). Cada display consta de 7 segmentos y un punto decimal, todos ellos son diodos LEDs. Estos diodos sc pueden encontrar en dos configuraciones posibles. según los pines que tengan unidos: ánodo común o eátodo ¡RAJJA CAPÍTULO 2- PERIFÉRICOS BÁSICOS ii común. Los segmentos de los displays se controlan directamente mediante el Puerto B y según el tipo de display la conexión al microcontrolador varía según indica la figura 2-5. La figura l l-2 del capitulo “Manejo de tablas" muestra las posibles combinaciones de salida para la representación de números, letras y algunos signos en estos displays El principal problema de los displays de 7 segmentos es que requieren de muchas lineas para su control. El capitulo Z5 explica el circuito integrado SAAl064 que permite el gobiemo de 4 displays con un escaso número de lineas. ici Proteina LOS szomnros n! fllSPlAV cueca como» sE trauma cow NlVEL me ue sauna me ssominros o: manu mono comun s: llUMlNAN ccN NlVEl wo as sum Ets! LsE A TDSRSiSD A) CONEXION DE UN DISPLAY DE cAroDo a) coNExlcN DE UN DlSPLAY ci ENCAPSULADO MAs comun A UN PIcIeFuA DE Anaco COMUN FRECUENTE D) CONSTITUClON DE UN DtSPLAY DE cAmDo COMÚN E) coNsTirucIoN DE UN DISPLAY oE ANooo COMUN Figura 2—5 E1 display de siete segmentos 2.5 CONTROLANDO CARGAS A 230 V Las explicaciones de los primeros capitulos se realizarán sobre el entrenador de la figura l-2. Es probable que el lector desee probar para su proyecto algunas aplicaciones
  18. 18. I4 MICROCONTROLADOR PIC lbFM DESARROLLO DL PRÜYELTOS CJRNMA que se exponen en estos capitulos, sobre circuitos reales con cargas de 230 V (bombillas, calefactores motores, etc). A continuación se detallan varios circuitos apropiados donde el PIC l 6F84 controla una carga alimentada con los 230 V de la red eléctrica. Fs importante advertir que estos circuitos trabajan sobre la red eléctrica dc 230V. Cualquier error, además de ocasionar daños serios cn cl circuito, puede provocar lesiones personales, luego hay quc ser muy cauto durante el montaje y revisarlo concienzudamcntc. Tenga especial cuidado en aislar bien todas aquellas conexiones o cables cuyo contacto con la piel humana pueda producir descargas eléctricas, sin olvidarse tampoco de la pane metálica dc los componentes de potencia. 2.5.1 Control con relé La utilización de un relé es la fonna más sencilla para gobcmar dispositivos a partir de una salida del pucno, como muestra la figura 2-6. Un par de transistores Darlington son necesarios para controlar el relé. RED 23o v- V RELE CARGA m «zoom m amas o amas C r: C 0 s a a 0. . E E C B E aulas E no54? sois? (visto por debajo) 59139 Figura 2-6 Gobierno de una carga de potencia a Imvér de un relé Cuando la salida del microcontrolador proporciona un nivel alto a la base del Darlington, pasa a conducción y activa cl relé que, al cerrar sus contactos, puede controlar una potencia mayor en la carga. Este circuito también aísla elécrricamente la carga del microcontrolador. El valor de la potencia a controlar depende de los contactos del relé y varia mucho según el modelo. aunque casi todos ellos pueden soportar más dc 5 Amper-ios. r ¡mm CAPiTuLoz PERIFFRICOS BÁSICOS is Es indispensable conectar un diodo cn paralelo con la bobina dcl role’, tal como muestra la figura Z-(i, como protección frente zi los picos de fuerza contraelectromotriz producidos por la carga inductiva de la bobina en el momento de la conmtnaciún, Para controlar un cierto número dc rclós a partir dcl mismo microcontrolador, sc puede utilizar un circuito integrado especializado tal como el ULN2003, figura 2-7. Este chip dispone dc sictc circuitos inversores realizados intemamcntc con circuitos Darlingtort, que aguantan una tension máxima de 50 V y pucdcn alimentar cargas de hasta 500 mA, incorpora también los indispensables diodos de proteccion. IN| OUTl m2 ' cun m3 OUTB m4 43m4 m5 curs ms cure m7 ouw Gm a Ludi” 9 COMMON DIODE ¡‘l d. Figura 2-7 Driver ULN2003 La figura 2-8 describe el esquema típico de conexión, donde el ULNZOOS alimenta las bobinas de siete rieles. ULN2D03 PIClGFBÁA Figura 2-8 Circuito tipica de gobierna de varios rek-Ïs con ULNZÜOS
  19. 19. fi MICKKXÏONTROLAIXJR PICHIFM DLSARROLLO É ¡‘KÜYECÏUS alt-MA 2.5.2 Control con relé miniatura en cápsula DlL Para cargas de hasta l0 W es rttejor utilizar ¡’elés de láminas enenpsulndos en DlL, que necesitan una menor intensidad de activación, aunque sus contactos no pemtitcu activar cargas grandes. Ia figura 2-9 ¡nuestra un ejemplo de aplicación donde sólo es necesario un transistor para gobemar a rele’. Normalmente estos relés llevan incorporados dentro de la cápsula el diodo de protección, como se puede apreciar en la figura, para los modelos que no lo llevan es necesario conectarlo en el circuito. sv AUMENÏACIDN cansan 14 J, O C‘ HR“ RÁÍ ¡El RR? ÑBÏ ¡un naa “m” RMNOWI CARGA MAXIMA ¡son mA. row, ICI 91:16:34.: Figura 2-9 Gobierno de pequeñas cargas u trat-¿r de un relé tb láminas en cúprula DlL 2.5.3 Control mediante fototriac En el Circuito de lu figura 2-10 los contactos del relé son sustituidos por un fototriae. cuyo funcionamiento es similar al dc un interruptor controlado por luz. El necesario aislamiento entre cl microcontrolador y la carga de 230V se hace mediante un optoacoplador MOC304l, qiic es un circuito integrado que incluye un LED quc controla al fototriac. Este dispositivo está especialmente diseñado para usarse como interface de sistemas lógicos con equipos que tienen que alimentarse con los 23 0 V de la red eléctrica. Sus caracteristicas mas significativas son: o Incorpora un pequeño y económico encapsulado Dll’ 6. Su tensión de aislamiento de 7500 V garantiza un perfecto aislamiento entre la red eléctrica y el microcontrolador. I Es capaz de proporcionar hasta IÜO mA, que le pemritiria alimentar directamente pequeñas cargas de hasta 20 W. - Su fototriac intemo permite el control de la casi totalidad de los grandes triacs, lo que no seria posible si se utilizara un fototransístor ordinario, ' Cuenta con un detector de paso por cero intemo, lo que permite econominr un número no despreciable de componentes extemos. ¡»MMA (‘APlTlJLO 2: ruturtïtuws BASICOS 17 Cuando el instante dc la conmutación de un triac no coincide con rm cruce por cero de la tensión de la red el cambio repentino en la corriente produce un ruido eléctrico de alta frecuencia que introduce interferencias en la tensión de red que, por ejemplo, puede dar lugar a que señales indeseables aparezcan en la pantalla de un receptor dc televisión o que se hagan audibles “chasquidos" en el altavoz de un receptor de radio. Para evitar estos problemas el MOC304l posee un detector de past) por cero que conmuta al fototriul: ¡’micamerue cuando la tensión aplicada al mismo pase por cero. Figura 2-10 E1 PIC I 6F84A controlando una carga alimentada a 230 V y menorde 20W En la figura 2-l0, cuando la línea del Puerto B se ponga a nivel alto TTL (S V) hará circular una corriente de unos 15 mA por el diodo LED del MOC304l, éste emitirá luz. lo que provocará que el fototriac entre en conducción en el siguiente paso por cero de la tensión dc red. Una vez que el fototriac entra en conducción, se comporta prácticamente como un interruptor cerrado que enciende la carga. Hay que recordar que el mac se desactiva automáticamente cada vez que la corriente pasa por cero, por lo quc es necesario bien redisparar el triac en cada semipenodo, bien mantenerlo con la señal de control activada durante el tiempo que necesite mantenerse encendida la salida, Cuando la llnen de] Puerto B pasa a nivel bajo TTL (0 V) el LED del MOC304l se apaga. En el siguiente paso por cero de la tensión de red, el triac deja de conducir. comportándose como un interruptor abierto de forum que la carga deja de recibir corriente y se apaga. La resistencia R1 de 220 Q conectada al ánodo del LED de entrada al MOC304l garantiza una circulación de los 15 mA que especifica el fabricante. La red serie del condensador de 10 nF y la resistencia de [00 fl cn los esquemas de las figuras 2- lO y 2-1 1 conectada en paralelo con el rriac mejora el funeionatrticnto del circuito para disparos indeseables del triac producidos por los picos bruscos de la tensión de red que se pueden presentar aleatoriamente. Esta red R-C es responsable de que el circuito tenga un cierto consumo, de aproximadamente 0,1 W, aunque este desactivado. El condensador Cl debe ser capaz de soportar al menos 400 V.
  20. 20. IR MICROCON ÏROLNDOR PlClblÏM DFSARRÜLLÜ I'll‘. PROYECTOS s ¡At-MA Debido a las características de los triacs la carga debe tener una potencia minima por debajo de la cua] el circuito no funciona. Esta potencia ¡nlnima es de aproximadamente l W para el circuito de la figura 2-10. F. I fututriac integrado en cl MOC304l puede conmutar cargas dc hasta 100 mA. es decir, 23 W a 230V. Por tanto. esta configuración puede manejar cargas entre l y 23 W. 2.5.4 Control de potencia con triac La figura 2-l l describe un circuito tipico (le control de potencia con triac, donde la carga es Conmutada ¡mediante el triac Ql, cuyo funcionamiento es similar al de un interruptor pero controlado por la con-iente que circula por su entrada G. A su vez. esta entrada es gobemada por el firrotriac del MOC304I. Este circuito puede controlar cargas con potencias entre 10 y 1500 W o mayores dependiendo del triac utilizado. sv Ü C3 - El TRIAC necestla un ¡AMADOR m; L: m‘ -Lap. InaIneütIcade| TRlACvauinfiaT2 ’ - El mu: se pianos tambor un funóón ao IA paar-na In la carga. n n a Figura 2-11 El PIC l 6F84A contrukmdo una carga alimentada a 230 V Cuando el fototriac del MOC304l entra cn conducción, drena la corriente suficiente a través del ten-nina! de gobierno de Q1 como para conseguir que éste entre en conducción. La resistencia R2 de 360 fl limita la corriente que pasa por el fototriac para evitar que supere su tmlor máximo de 100 mA. El triac utilizado en este ejemplo es un BTl37-400 dc 400V/8A, con el que se puede controlar hasta cargas de 1500 W. Este triac se puede cambiar en función de la potencia cn la carga por alguno de los siguientes modelos: BTl36 (4 A), BT137 (8 A), BTl38 (l2 A), BTl39 (¡6 A) o sus equivalentes. Para cargas fuertemente inductivas cs conveniente elegir un triac que aguante hasta 600 V. tal como el BTl37-600. viu- «xml in. ‘ l‘ll‘ElittlttItItIt lv Para conseguir estas potencias, el triac debe ír montado sobre un buen radiador de calor, de forma que el Semiconductor se rcfngere adecuadamente. A la hora de poner el radiador hay que señalar que la parte metalica del componente suele conectarse nl temiinnl T2. por lo que se debe aislar Cllltliltlüxlllltftllt. ‘ el triac del radiador mediante una lamina de mica y un separador dc plástico para el tomillo. 2.6 ZUMBADOR En muchos proyectos es necesario indicar mediante tina señal audíble la ocurrencia de un evento. Para ello namralmente se utiliza un zumbador piezoeléctrioo miniatura como el de la figura 2-12. "IÍIQII/ ‘tl Z-I. ‘ Zumlvurhu'piuzrn'lát lrlt u Un zumbador miniatura funciona con tensiones comprendidas entre 3 y 16 V y su consumo no supera los l0 mA. por lo que puede ser alimentado directamente por la salida de un microcontrolador, tal como e indica cn la figura 2-13. Kit ¡now MA ZUMBADOR EMïTE SDNtDO CON sAuuA A NIVEL BAJO Rnn/ wv Rm Rm un un; RA} ¡m3 RMTDCK R54 mas mas ZUMBADOR EMVTE SONIDO CON SAuDA A NNEL ALTO Fisura 2-13 ( ‘num nin ¿lv un zumbadar miniatura a un microcontrolador
  21. 21. GRABACIÓN DE MICROCONTROLADORES PIC 3.1 GRABACIÓN DE UN MICROCONTROLADOR Un microcontrolador es un circuito integrado programable que contiene todos los componentes necesarios para controlar el funcionamiento dc una ¡arca detenninada, como el control de un teclado de ordenador, una impresora. un sistema de alarma, una lavadora, etc. El microcontrolador dispone de una memorln de programa interna donde se almacena el programa quc lo controla y que consiste realmente cn una serie de números ltexadecimales. Así por ejemplo. un programa para el entrenador básico dc la figura ¡»2 que simplemente lea la infommción proporcionada por los interruptores del Puerto A y la visualice cn los LEDs conectados al Puerto B. tendría el siguiente fonnato (el significado de estos números se discutirá en el capitulo 6): i683 OIXG 30FF 0085 1283 0805 0086 2805 El programa de control se graba en la memoria de programa mediante un equipo fisico denominado grabador o programador, siguiendo el esquema dc la figura 3-l. El grabador sc conecta a un ordenador normalmente a través de un puerto scric (‘OM I o COM 2 mediante el cable de conexión adecuado (algunos grabadores utilizan cl puerto paralelo de la impresora). En el ordenador se ejecuta un soflwarc que controla la grabación de la memoria de programa del microcontrolador, Este proceso se denomina grabar o programar el microcontrolador.
  22. 22. 22 MICROCONTROLADOR PlC16F84. DESARROLLO DE PROYECTOS l, ¡AMA Sofware Programador (IGProg) ‘í’ Cable serie‘ nos (Para — 0 ° puerto COM) Ordenador Personal San” o mwnnudo, (T EZO-SE o compatible JDM) Figura 3-I Configuración para grabar micracmrlroladoms‘ can mecíios reducidas 3.2 GRABADORES El grabador o programador es el equipo fisico donde se procede a grabar la memoria del microcontrolador con las instrucciones del programa de controi. Tiene un zócalo libre sobre el que se inserta el circuito integrado a grabar, el cual debe orientarse adecuadamente siguiendo la señal de la cápsula del chip. Hay multitud dc grabadores comerciales en el mercado que se pueden adquiriren cualquier tienda de electrónico. Microchip ofrece el grabador PICSTART PLUS, de muy fácil utilización y gamitizada fiabilidad respaldada pord fnbricantetfigura 3-2). Figura 3-2 Prugrmnudur PICS TART PLUS de Mirror/ up Teuhnulugi‘ Im’ 1 uA-MA CAPITULO 3: GRABACIÓN DE MICROCONTROLADORFS HC 23 En Intemet pueden loealizarse múltiples grabadores de bajo com» para microcontroladores PIC. Uno de los mk populares s el denominado JDM y sus múltiples versiones mejoradas, tal como el TEJO-SE que se puede adquirir en cualquier tienda de electrónica por un precio muy asequible (figura 3-3). Si el leelor desea mamario por si mismo. cn el apéndice F se proporcionainformación para ello. Figura 3:3 Grabador 7520-55 El programador JDM y algunas de sus versiones está descrito en la Web de su diseñador Jens Dyekjser, www, ¡'dm. homgage. dldneypie. hrm. LAALIMENTACION ns .5 v ' ES EXTERNA AL CIRCUITO __‘ Figura 3-4 Exquema da un grabador Compatible JDM bis-ica can alimentación ¿tierna En las figuras 3-4 y 3-5 se describen dos versiones básicas de este programador que apenas requiere componentes. Evidentemente ln fiabilidad de este programador es mucho menor quc ln dcl PICSTART PLUS, pero su facilidad de construcción lo hace mriy interesante para mitltiples aplicaciones. Aunque hay quc hacer una observación y es que estos grabadores tan básicos no funcionan correctamente en algunos ordenadores. portátiles sobre todo. Además, una conexión incorrecta puede dañar el ordenador.
  23. 23. LAMIIEMICÓNDI‘ m se com; amount Dt use». ‘Mr Figura 3-5 Evquema de un grabador compalible JDM bárít-o rin alimentación ett-lema Al inscrmrun chin en el programador, hav que cerciorarse de que todos los pines o patillas del dispositivo estén rectos y de que entren bien en cl Zócalo. Hay que letter mucho cuidado porque estos pines se doblan y se rompen con extrema facilidad. Cuando se renlimn frecuentes reprogmmacioncs es aeonseiable utili7ar un zócalo auxiliar entre cl microcontrolador y el zócalo del programador, de tal modo qiie sea los pines del 7ócalo auxiliar los que sufran ¡Hs frecuentes inserciones y no los pines del dispositivo. Otra altemativa. es reemplazar cl zócalo dcl programador por un zócalo de fuerza de inserción nula ZlF (Zero Irrxañion Forte), aunque ticnc el inconveniente de su elevado precio (figura 3-6). t“ Figura 3-6 Zócalo dejirenzl de imerrión nula 3.3 SOFTWARE DE GRABACIÓN lC-PROG El IC-Pmg es uno de los software más populares para la grabación de microcontroladores PIC. Permite la programación de muchos dispositivos y está probado con numerosos programadores. entre cllos todos los compatibles con JDM. Es de libre distribución y en la página Web Mvnxic-progeom se puede descargar y recoger todo la información de uso. Una vcz descargado. la instalación de este software es muy sencilla. basta con descomprimir el fichero immgJ/ p y seguir el procedimiento usual en Windows, Este archivo consta del fichero ÍCpI'0g. (', 'l’. que contiene todo el código necesario para si n M MA CAPÍTULO l, GRABACIÓN DE MICROCONTKOLADORFS PIC 25 funcionamiento. con versiones para cualquier sistema operativo Windows. En caso de utilizar este software con Windows XP, 2000 a NT, es necesario descargar el archivo Í('p! '()g. .'_l’. ‘ de B misma Web y situado en la misma carpeta. junto con el ícprogrexe. E1 las próximas pagina Kc citpondrán las conocimientos básicos para tnliajarcon la última versión, al cierre de la edición de este libro, IC-Prog 1405€, con la pretensión de ayudara todos aquéPos cpe se enfrentan por primera vez a este software. Para un análisis profundo de todas sus pusibilidadessc remite a la documentación técnica. ya que el propio programa IC-Prag tiene un buen sistema de ayuda qiio pennite un rápido anrendiie. 3.4 GRABACIÓN CON MEDIOS REDUCIDOS Una de las grandes ventajas de los microcontroladores PIC es quc penniten desarrollar el proceso de grabación con muy poco gasto. Para aquéllos que desarrollan solo ocasionalmente proyectos sencillos basados en microcontroladores. es suficiente utilizar el procedimiento de grabación con medios reducidos que se indica a continuación. Segtín el esquema de la figura 3-1, este procedimiento mitin el siguiente material: Figura 3-7 Cable para conectar el programador u Hui/ rn de los puertos C 0M] o COMZ o Un ordenador personal. ’ Un cable de conexión entre ordenador y programador dal tipo serie DB9 pam puerto COM (figura 3-7). Este cable se puede adquirir en tiendas aspecialiradas a bien fabricarlo mediante dos conectores DR9 (ltembm y macho) y cable. preferiblemente plano, concxionando los pines con el mismo númem en cada extremo, es decir d: tcnninal l de un conector con el terminal l del otro. 2 con 2, 3 con 3. etc. 0 Ch programador TE20-SE, di adquisición m cualquier tienda do electrónica. En apéndice F y en el CD-ROM que acompaña a esta libro se ofrecen planos para su construcción. 0 Como software se utiliza el lC-Prog LOSC, que puede bajarse liblunenme d: la Web wwwicjggoom, y que se incluye en el CD-ROM que acompaña a esta obra. gracias a la generosidad de Bonny Gijzen, su autor.
  24. 24. 26 MTOIOCONTROLADOR PIC! SPM. DESARROLLO DE PROVECIUS cum 3.5 PROCESO DE GRABACIÓN Antes de nada hay que conectar el programador a uno de los puertos serie COM disponibles en el ordenador fomiando la estructura indicada en la figura 3-1. A continuación se inserta el microcontrolador PIC en el zócalo del programador respetando la correcta orientación de la cápsula. P 2.. : srrr 3m ; un un : un un cm ¡rn- 1 rm rn : 1m un : 3m arrr : ¡rn rrrr : un un r ¡rn un “El! !! “¡l¡¡! 1:33:11‘ ¡E1331! zrn nn Jrrr sin srn ¿rn nn rm rn un Jrrr un zrrr srn nn Irrr sur ¡rn un Jrrr un = ::= ::f ¿s: ::: ::: =‘ : ==: ::: = : === ==: : F ¡guru J-X Pantalla Iípica del IC -Prog Una vez que el programa está correctamente instalado. los pasos a seguir para trabajar con el IC-Prog 1.05€ son los siguientes. Sugerimos al lector que los vaya probando en su ordenador según se va explicando: fi Iniciar el programa ejecutando el fichero ¡cpragexe o pulsando sobre el icono correspondiente. Conviene crear un acceso directo ‘causen desde el escritorio de Windows para mayor comodidad la primera vez que lo ejecutamos enlrdremos en una pantalla de presentación de la que se salc aceptando todos las opciones por defecto. Si trabaja con Windows 2000 o XP apareceran unas pantallas de error debido a que todavia no se ha configurado correctamente como se explica en el apanado 3.7. Seguidamente aparece una pantalla en inglés. similar a la figura 3-8. donde se presenta toda la infomiación necesaria para programar cl dispositivo. Esta pantalla posee, al MCIIOSZ cum 3.. 4o CAPITULO 3: GRABACIÓN DE MICROOOMROLAÍXRFS PIC 27 o Un área de código (Program Code), donde se almacena la información a ¡grabar La columna de la izquierda contiene la dirección fisica de memoria del dispositivo, (Address). En el centro del campo se presenta el valor hexadecimal y la columna de la derecha contiene la misma información en código ASCH. o Un área de configuración (Configuralian), donde se indica el valor de algunos parámetros necesarios para la correcta grabación. Para cambiar el idioma se debe seleccionar en el menú Setring > Option: > Language y elegir el idioma (figura 3-9). am un 1m 1m ‘¡rn vn . rm arn- wn n11 sur am amanvrm "iíiíïiiïiiïál Figura 3-9 Elección del idioma Configurar el hardware necesario para programar los microcontroladores PIC, es decir adaptar el lC-Prog al programador utilizado, en el caso que nos ocupa un programador compatible con JDM, Para ello hay que acceder al menú Ajustes > Tipo hardware, con lo que aparccerá la pantalla de la figura 3-10, en la que se debe elegir el tipo de programador como JDM y seleccionar el puerto serie adecuado (COM I a COM 2). según lo tenga conectado en el ordenador. Figura 3-¡0 Selección del programador
  25. 25. 2X MICROCONTROLADOR PlC16F84. DFSARROI ¡,0 DE PROYEÉTOS e MMA 5° A continuación se debe seleccionar el dispositivo a grabar. en este caso el microcontrolador PlCl6F84A. en el menú Ajuxlex > Drlvpasitivo i‘ Microchip PIC > Már > PICI6F84A. tal como se describe en la figura 3-l l. "‘” "“““““"”‘ "“"”' ’ “ ' un o “ma [dear ams hurto: gun-m ¡ganan-m ‘¿a mas ‘ ' ‘ p‘ .3 . g q; j mew- Um , e PlC ¡X53 PlC-Szsjü 9.; num-ames o ¡rei-asus Duaxttm-Cnflwflw leen-nue r3 r PUE“ hast“? onnn: arrr Jrrr Erin-haha! ¡“tam mu, ‘ none: Jrrr 3m Graw-e: ' num: Jr" Jrrr snmcamïñww) QÉLÏS‘: uma: Jrrr arn “ " ‘ no”: 3," a, " ¡an-causan pusieran PC! 74 unn: l! " Jn! JH! Jrn l! !! arn “M5 " '75 com: Jrrr Jrn Jn! ¡rr! Jrrr Jrn “V3573 WW” mua: Jrn Jrn Jrn Jr" ¡rn un — "W135" ‘WWW Jr" arre ¡rn ¡rn sur ’ 976mb? ! "C1556? Jr" ¡rn Jr" l! " Jrn Jrrr Jrrr Jrrr nn “(V7575 95'59‘ arrr un ¡rn ¡rn nn am Jrrr 3m "y; P1C| ECB3 v Hcrsnu: Figura 3-1 I ScIcrtiú/ r ¡lvl nticrrxvrtlrx¡[adm- El nombre del dispositivo seleccionudo aparecerá en una ventana de la barra de herramientas (figura 3-12). Pulsando en la flecha de lar ventana se puede elegir cualquiera de los dispositivos soportados por el software IC-Prvg. ‘¿a My)! v: es 3 F ¡guru 3-[2 El lmlflhït’ ¡lvl dirpoviliir: wlutx-¡nttrrzizi upurucr vn lu ven/ unn 6" Elegir el oscilador que vo a utilizar el microcontrolador en cuestión (LP, RC. XT. llS). Para ello cn la ventana (lrcilmlor se ‘lrge el lípo . T (oscilador a ensutl de enano) paint los nronlujes que se malizrn en este libro (figura 3-l3). 7" A continuación es rtocesario activar los Bits de configuración. que permiten seleccionar varias configuraciones del dispositivos (figura 3-l3). En la paurtzilla del IC-Prog se muestran tres: o WDT (¡Valchrlag Tinwr). Habilitación del Wa/ vhriog. cuyo significado se explicará en el capitulo ló. En aplicaciones sencillas se dcshztbilitn. t PWRT (Power-tip Timer). Temporizador al encendido. lín aplicaciones sencillas se activa. 0 CP (Code Pratt-el). Protección de código de programa. Cuando se programa la protección del código. no es posible leer el contenido de lu memoria. de tal manera que el código del programa no se puede copiar. ni r u MA FAPITVLK) 3' GRABACION DE . 1l(‘Rt)(ï)N1R()lzlXJRJ-_S PIC 29 alterar, aunque si se puede volver a bomtr completamente todo el microcontrolador‘ En aplicaciones sencillas se suele deshabilitar. G-Ü "F-S’ QVKEM F3533 Lïnctúncáfignswymn unan: 1m ¡rn Jrrr Jnr 1m un! srrr zvrrr anna: ¡rn Jrn Jrrr l! " Jrrr Jrrr arrr ¡rr! num: arrr srrr nrrr un! ¡rn arn ¡rn urn muy: Jrrr arn un sr" srrr ¡rn Jrrr JI? ! unan: un arrr ¡rn un Jrn un Jrrr ¡rn unn: arn srn Jrn Jnr Jrn un Jrrr un : Jrn arrr Jrrr ¡rn Jrrr ¡rn ¡rn srrr : 3m un ¡rn Jrn zrrn un 3m ¿rr-n arn ¡rn Jr" nn Jrn ¡rn arrr Jrn Jrrr ¡rn Jrrr Jrrr Jrn arn- arn ¡rn yyyyyyyy ¿nscwmmm un un Jrrr un Jrn arrr un ¡rn yyyyyyyy rm? : arrr un Jr" ¡rn un Jrn arrr Jrrr nanny fl p. ..“ ¿marnan (‘cv nrrnnnnnn yyyyyyyy . nnnnnnnn yyyyyyyy nrrnrrnrrnn "nun nnnnnnnn yyyyyyyy nrrnnnnnn 11111111 nrrnnnnnrrynynn "Mïnwvj nnnnnnnnyyyyyyyy sm rm -" " " "Ïfï" {V 1777117" .1 Panama! » ym Figura J-IJ Sd/ ¡‘CCÍÓII del tipo de oxciladori‘ ¿lv los bin‘ de configuración 8° El lC-Prog ya está en condiciones de proceder a la grabación de datos cn el dispositivo in. mido en el programador, Pan ello. en ln pantalla de edición se escriben los daros del programa de control a grabar. Por ejemplo, un programa de control pam cl circuito de la figura l-2 que lea l¡¡ infonnncion proporcionada por los interruptores del puerto A y la vi ¡alice en los LEDs conectados al Puerto B tendria el lbrmulo: "I683 0l86 30H‘ 0085 ¡.283 0805 0086 2805". (el significado de estos números lrexadecímnles se discutirá en el capítulo (a). Una vez escritos estos códigos. la pantalla de edicion tendria cl aspecto de lu tigum 3- 14. lzn el capítulo 7 se explicará como cargar estos datos más eficazmente a partir de un archivo creado anteriormente. sin necesidad de leclearlo. ¿sem {Aavv Me- Niue: (mudo Eutanasia: ya Amd: É-B "F f‘ Q Vïfiv 51°} ‘WWW :1’ Y: (‘cerrar Ctúnamwan- 50491522A - : 16D] 0186 1011 l"! !! ITU"! |15|]! DDR5 Till‘) [ly j A 0%”, : zrrn ¡rn un Jrn 3m Jrn 1m Jrn yyyyyyyy [fi : Jr" Jrn un arn arrr arrr Jrrr Jrn yyyyyyyy " F ¡guru 3-I4 Dalai u grabar en ¡’I nticnx-onlrolador
  26. 26. 30 MI('R(X‘ON'I'RÍ)LADOR PICISÑH DESARROLLO DE PROYECTOS . : ¡tuu 9° Para proceder a la grabación del chip basta con activar el menú Comando > Prrigrrama todo (figura 3-15) o bien pulsar la tecla dc función F5. También puede pulsar sobre el icono correspondiente dc la barra dc herramientas (rayo sobre chip). El chip comenzar-Ji a ser programado con los datos cargados cn cl buffer activo. Jrrr Estando arrr arrr tletlicaU-arvso un 3!" ya”. rs sr" arrr 3", 3,"- Ameam fimïttnd srrr arrr srrr Jrrr ¡rrr ¡rn ¡rn yyyyyyyy srrr s"? ¡rr! Jrrr arrr un Jrrr yyyyyyyy arre Jrrr Jrrr un ¡rn ¡rn Jrrr yyyyyyyy arrr Jrrr Jrrr Jrrr Jrrr ¡rn Jrn yyyyyyyy un- un un avi! un un un xt v Bis sangran-m Figura 3-15 Contcrrzar‘ a programar‘ al PlC16F84/l lO" El proceso de grabación se irá mostrando. tal como puede apreciarse cn Ia figura 3-l6, El tiempo cmplcado en la grabación dcl PlCl6F84A dcpcndcrá dc la rapidez dcl ordenador con cl quc se está trabajando. l l" Una vcz tenninrtda la prograrttación se procederá atrtorttriticarttcrttc a lu verificación de los datos escritos cn cl chip. infonnundo de este proceso con una pantalla como la que mumtru cn la figura 3-l6. Dc este modo. asegura quc la programación del dispositivo hn sido efectuada concctamcnte. Dirpo: i|ivo: PlC1SFE -»_, Dixon: FIC1SFB . From-ramo como (‘Üïübfiti Van-cando cémcotiozn; word: ÏZFÉFÏÍÏÁFZFEÏÍÏ i. (‘Ml I Figura 3- I ó Patria/ lar que aparecen zíururrlr- ul ¡rmcavzr dc ¡imgranurcizírr l‘ vuri/ ¡urrcirírr En cl caso dc quc la verificacion ltaya sido correcta. sc infomtará dc ¡ul ltccho mediante la vcntnnzi representada cn la figura 3-l7 y cl proceso dc grabación ltabrá finalizado. (‘RAMA CAPITULO 3, ÜÏABACIÓN DE MICRÜCÜNTROLADORESHC 3| Figura 3-l 7 Grabación correcta Si un microcontrolador está protegido contra la lectura de código, es decir ticnc habilitada la opción Cl’ (Code Protect) del área de configuración (figura 3-2l). los datos grabados no pueden ser leídos en la fase de verificación y, por tanto, em no puede realizarse visualiundo un error de verificación, sin embargo ln grabación puede haber sido realizada oomclamentc. Más adelante se explica como evitar ata pantalla de error, l2" Una vcz grabado el PIC l6F84A se debe extraer del programador y comprobar su correcto furtcionamiento dentro del circuito correspondiente. En este caso el programa lo quc hace cs sacar por el Pucno B el dato leído de las cinco lineas del Puerto A al que está conectado un army de intemiptorcs. Esto se puede comprobar con el circuito de la figura 1-2. l3° Los datos grabados en el microcontrolador y la configuración se pueden salvar a un fichero utilizando cl procedimiento usual de Windows mediante la selección del menú: Archivo > Guardar como y poniendo al archivo un nombre con extensión ‘bin, por ejemplo Etttrenador_0l . bin. 3.6 BUFFER DE ALMACENAM| ENTO DE PROGRAMAS El ¡(Í-Prog dispone de 5 bulTers para guardar datos en memoria. cada uno de ellos puede almacenar bien el contenido de un chip o dc un archivo. Permite realizar diferentes operaciones con ellos. como programar un chip. comparar su contenido, etc. El acceso a cada uno dc estos buifcrs sc hace mediante las pestañas que aparecen en la parte inferior dc la pantalla principal dcl lC-Prog (figura 3-l8). g suerersjatmudmmsr Figura 3-18 Acceso a [ox buflerx de daras 3.7 IC-PROG TRABAJANDO BAJO WINDOWS 2000 O XP En caso dc trabajar con los sistemas operativos Windows 2000, XP o NT, se debe tener cn la misma carpeta que el archivo ejecutable irprugexe, el fichero irprogugur para
  27. 27. 32 MICROCUNTROIADOR PlC16F84. DESARROLLO DE PROYECTOS ORA-MA Windows XP. Este fichero se puede descargar de la Web wwwjc-progcom . Además hay que activar la opción de Habilitar Driver NT/ ZÜOÜ/ ¡Pfi localizada en el menú Ajustes > Opciones > Miscelánea (figura 349). Cwfllfmlcldn l mu: | l-c l num-uan I una l nvntuvlsnln l Snvtwd | u— | sm Inn-hn ÍF’? ‘ HUIGHVoema-‘i W - »_ ——-", ¡áu¿nmm ‘¡. - N, i — i - ' W ¡’mancuerna " A" r hnuaunuunemreu "rumana lr lïlïJ Figura J -I 9 Para Wmlam NT. 2000 y XP hay que "Habilitar Driver NT/ ZÜÜO/ XP " 3.8 ERRORES FRECUENTES EN LA PROGRAMACIÓN Cuando por alguna causa la programación no se realiza correctamente lGProg infonna de cllo mediante el aviso oportuno. El error más frecuente en la programación de un PIC es el mostrado en la ventana de la figura 3-20, que informa de un error al verificar el contenido del chip en la dirección OOOOh. que mi la primera posición dc memoria de programa del mismo. Figura 3-20 Pantalla tipica de error en Ia programación Este emi suele estar motivado por algún fallo en la comunicación entre el ordenador y el programador, como puede ser: La mala conexión de] cable serie. La colocación errónea del PIC en el programador. La configuración incorrecta del puerto serie COM l o COM 2. Un chip defectuoso. Una configuración de la protección de código. ¡cono mui-IM CAHTULO 3: GRABACIÓN DF. MICROCONTRDLADORFS PIC 33 Para solucionarlo se deben seguir los pasos enumerados a continuación: l" Ascgurarsc que no está seleccionada la protección de código CP cn los bits de configuración (figura 3-21). Este es un enor muy típico y en este caso el programa leería los 8 primeros bytes dc datos como ceros, avisando el error de verificación en la primera dirección. Figura 3-21 La protección del código puede ocasionar una ¡ianta/ Ia de aparente error Si desea mantener la protección de código y que no aparezca este error en la fase de verificación, es necesario que la deshabilitc. Para ello debe seleccionar el menú Ajustes > Opciones > Programacion y deshabilitar las dos casillas de verificación tal como se muestra en la figura 3-22. ¡n ¡rr/ z/Jt/ ¡I/ IIIII/ I/ a . s - Ma“ * Figura JAZZ Si configura la protección del código. conviene deshabilitar la verificación 2° Una vez verificado que no ha elegido la opción de protección de código para programar el PIC puede continuar con las siguientes comprobaciones: o Revisar que el PIC se encuentra bien introducido en el zócalo dcl programador, con la dirección de la cápsula correcta y sin ninguna patilla doblada o rota, lo que desgraciadamente es frecuente. a Verificar quc cl cable serie esta bien conectado en sus dos extremos, tanto en el conector del programador como en el ordenador.
  28. 28. 34 MICROCONTROLADOR PlC16F84. DBARROLLO DE PROYECTOS o MMA - Comprobar con un polímctro que no hay ninguna conexión del cable rota. 0 Debe asegurarse de que ha elegido en Ajustes > Tipo > Hardware, ei tipo de programador correcto (JD/ W y ei puerto COM adecuado. o Comprobar que el dispositivo elegido es el que realmente está programando (PICIÓFMÁ). 3° En caso de que ninguna de estas comprohaeiones diera resultado se aconseja repetir la programación eon otro chip que este en buen estado para poder descartar que el fallo este cn el sofiware o grabador y asi asegurar que es el chip el que sc encuentra en mal estado. Cuando se trabaja en uno de los sistemas operativos Windows XP, Windows NT o Windows 2000, también se puede dar la pantalla de error mostrada en ia figura 3-23. Figura 3-23 Error tipica para xislemus operativa: Windows 2000, XP y NT Este error indica que el sistema no puede acceder a ios puertos del ordenador y por tanto tampoco al grabador conectado a ellos. como se indicó anterionnente para solucionarlo se deberá instalar ei fichero icprog. .rys en el mismo directorio que el archivo ejecutable icpragexe y, además. activar la opción de Habilitar Driver NT/ ZÜM/ XP. quc se encuentra en el menú Ajustes > Opciones > Miscelánea (figura 349). Una vez habilitado este driver, ei programa pedirá volver a iniciarse y, a partir de esc momento, ya estará perfectamente preparado para realizar la programación de los dispositivos necesarios. 3.9 PRÁCTICAS DE LABORATORIO Rcspetando el procedimiento descrito en este tema, realícese la grabación en ci microcontrolador de los programas que se indican y compruebesc su correcto funcionamiento cn ei entrenador básico de ia figura i-2. EntrenadorJlLbin: Los diodos LEDs conectados ai nibbie bajo dei Puerto B sc apagan y los del nibble alto sc encienden. Los datos a grabar son (ci significado de estos números hexadecimaies se explicará en un próximo capitulo): i683 0186 i283 30F0 0086 2804 t: IAJAA CAPÍTULO 3: GRABACIÓN DE MICROCONTKOLADORFS PIC 35 Entrenadorfllbln: El Puerto B, que actúa como salida, es controlado por ei bit 0 del Puerm A, que actúa como entrada De manera tai, que: o Si RAO = l, se encienden todos los LEDs de salida. o Si RAI = 0. se encienden solo los LEDs dei nibble alto. Losdatosagrabarson: i683 0186 30H’ 0085 1283 30FF ICOS 30170 0086 2805 Entrenarlor_03.bin; Lee por el Puerto A una cantidad siempre menor de 8. Esta cantidad indica el número de LEDs que se ilumina a ia salida. Asi, por ejemplo, si Ice el dato "——-00l0i“ (cinco en decimal), en los LEDS conectados al Puerto B se iluminar-á el código "000illll". con los cinco diodos LEDs (D4, D3. D2, Di y D0). Los datos a grabar son: i683 0186 JOFF 0085 i283 0805 2009 0086 2805 0782 3400 340i 3403 3407 340i’ 34 l F 343F 347F 34FF ¡sus ¡una mu una nos ¡una ¡mas : nus 01M 3401 son: no7 un! su! z sur 347! Jrrr sen" un un nn" - 3st! arrr un: art-t un un un Jrrr sur srrr an! un an! Figura 3-24 Dalos a grabar can el ÍLLPrOg para el programa Enlrenador_03.hin Entrenador_04.bín: Los diodos pares conectados al Puerto B sc encienden durante 0,4 segundos y los impares permanecen apagados. Después se encienden los Impares durante ei mismo tiempo y se apagan ios pares. Los datos a grabar son: i683 01 K6 i283 3055 0086 Z009 2009 0986 2805 30C8 008D 3017 9 008€ 0000 ORSC 280D 088D 2808 0008 Entrenadorjfnbln: Por la barra de LEDs conectada al Puerto B, un LED encendido rota a la izquierda durante 0,4 segundos en cada posición. Cuando llega al final se apagan todos los LEDs y de nuevo repite ia operación. Los datos a grabar son (observan! que son muy parecidos al anterior): i683 Oi 86 i283 i403 0] 86 2009 Z009 0D86 2805 30C8 008D 30F9 (JOSC 0000 OBSC 280D 088D 2808 0008
  29. 29. 36 MKÏRDCONTKULADOR PICIÓFM. DESARROLLO DE PKOYEÍTOS e IA-MA Enwenndorjlflbin: En el display de 7 segmentos conectado al Puerto B se visualiza la cantidad leida por el puerto A. Así por ejemplo si por la entrada se lee "--- 0l0l", en el display se visualin "S". Los datos a grabar son: [683 0186 30FF 0085 1283 0805 390F ZOOA 0086 2805 0782 343!’ 3406 345B 344!’ 3466 346D 347D 3407 347F 3467 3477 347C 3439 345E 3479 3471 CAPÍTULO 4 ORGANIZACIÓN ‘DE LA MEMORIA 4.1. ARQUITECTURA INTERNA DEL PlC16F84 La figura 4—l representa el diagrama de bloques del PlC16F84. Destacan los siguientes componentes que serán explicados más adelante: o Memoria de programa tipo ROM Flash de l k x l4 bits. I Memoria de datos dividida en 2 áreas: o Area RAM constituida por 22 registros de propósito especifico (SFR) y 68 de propósito general. o Area EEPROM de datos fonnada por 64 registros de 8 bits. o ALU de 8 hits y registro de trabajo W, del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de entrada/ salida o el propio código de instrucción. o Dos puertos para la comunicación con el mundo exterior: PORTA de 5 bits <RA4:RAO> y PORTB de 8 bits <KB7:RBO>. o Contador de programa de l3 bits, lo que en teoria permitiría direccionar 4 k de palabras de memoria, aunque el PlC16F84 sólo dispone de l k de memoria implementada. 4.2 ORGANIZACIÓN DE LA MEMORIA Dentro del PlCl6F84 se distinguen tres bloques de memoria: 0 Memoria ¡le programa. En sus 1024 posiciones contiene el programa con las instrucciones que gobieman la aplicación. Es del tipo no volátil, es decir. el programa se mantiene aunque desaparezca la alimentación.
  30. 30. 3B MICROCONTROLADOR PICIÓFÉÓ DESARROLLO DE PROYECTOS QIAMA Memoria de datos RAM. Se destina a guardar las variables y datos. Es volátil. es decir, los datos almacenados se borran cuando desaparece la alimentación. Memoria EEPROM de datos. Es una pequeña área de memoria de datos de lectura y escritura no volátil. gracias a la cual, un corte del suministro dc la alimentación no ocasiona la pérdida de la infommción. que estará disponible al reinjcializarse el programa. Se analizará con detenimiento en el capítulo 14. MEMORIA DE HE RIA DE DATOS “o m" PROGRAMA con ‘s ’ um POSICIONES (FLASH) RAH BDh 000h RESET .4 -—T OPTIÜN SUI 001i’! RA‘ f‘ PCL 52h í 002?! RAZ E" r fi —--" * RAS N STATUS STATUS 53h g UÜJH . T - - z - e FSR FSR 54h (IUCN INT M” POHTA ÏRISA i 55h É 005+. 7 i PÜRTB ÏÑlSB 83h [- ¡T067! . . . REI] Ñ<—c . .. K771 í UÜ7h m” 55mm EECDNI aan e cuan Rm EL ¡sana ¡zoom es» É OAI! PCLÁTH PCLATH UAH m” PUERTO INTCON ÏÉÁÏÉIÏÑ ' n94 E Rasxka _ mea. .. REGISTROS MAPEADO ¡BUSH- PROPOSIVO aANco a ND IMÑI EMENÏÁDÜ 64 Posiciones rlsicmeure. DE MEMÉIA DE (SE LEEN COMO V‘) DATOS EEPROM DECODIFICADOR —— DE lNSTRUCClONES VW PERRO euAmiAN vss L W PowER uv v ¡aser MCLR OSCI ' n I OSCILADOR 05°? aus oe DHECCIONES Figura 4—l Arquitectura interna del PIC I 61-‘ 84 o ¡um cmrum 4; ORGANIZACIÓN DE LA MEMORIA 39 4.3 MEMORIA DE PROGRAMA El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del progi-anta de contml. El programa a ejecutar siempre es el mismo, por tanto, debe estar grabado de forma pemianente. Esta característica de “no volatilidad" garantiza que la memoria mantenga su contenido aún sin alimentación, de forma que el programa no necesite volver a ser cargado en el sistema cada vez que se utilice. La información contenida en estas memorias debe ser grabada previamente mediante un equipo fisico denominado programador o grabador. Este cquipo se debe conectar a un ordenador que mediante un software controla la grabación de la memoria de programa del microcontrolador. A cstc proceso se le llama programar o grabar el microcontrolador y se ha estudiado ampliamente en el capitulo anterior. El PlC16F84 es un microcontrolador con un tipo memoria de programa no volátil denominada ROM Flash, quc permite una grabación muy sencilla rápido y cómoda. lo que representa gran facilidad en el desarrollo de diseños. La memoria del programa del PlClñFlléhtiene una capacidad de l k (1024 posiciones) y está organizada en palabras de l4 bits. Asi pues, la memoria de programa comienzo en la posición 000h (posición inicial de reset) y llega hasta la JFFh (figura 4»l ), El PlC16F84 admite unas 1.000 grabaciones, y el fabricante garantiza que la información pcmtancce inalterable durante varias decenas de años. 4.4 EL CONTADOR DE PROGRAMA (PC) Un programa mtá compuesto por instrucciones que generalmente se ejecutan de foma secuencial. En el PlC16F84 cada una de esas instrucciones ocupa una posición de memoria de programa. El contador de programa o PC (Program Counter) es un registro intemo que se utiliza para direccionar las instrucciones del programa de control que están almacenadas en la memoria de programa (ver figura 4—l). Este registro contiene la dirección de la próxima instrucción a ejecutar y se incrementa automaticamente dc manera que la secuencia natural dc ejecucion del programa es lineal, una instrucción después de otra. El microcontrolador PlC16F84 dispone de un contador de programa que le permite direccionar los lk x l4 bits de memoria de programa implementada. desde la posición 000h hasta la 3FFl1. En el esquema dcl entrenador basico de la figura L2. cuando el microcontrolador se conecta a la alimentación o cuando ocune un reset, el contador de programa se pone a cero fonando asi que la dirección de inicio sea la 000h. La primera instrucción ejecutada será la que esté grabada en esta posición.
  31. 31. 40 MICROCONTROLADOR PlC16F84. DILSARROLU) DE PROYECTOS EMME Registro utilizado en el direccionamienlo irtdireclo (no es un registro fisico) Timer/ Contador dc 8 bit Registro con los 8 hits ma’: bajos del Contador de ¡’mmm — -- — -- m HEIEIIEEM EEDATA Registm dc dalos EEPROM EEADR Registro de direcciones EEPROM PCLATH z ButÏer escrito wn los s un mn altos del PC — BANCO l 80h INDF Regixfro ulihzado en el direccionumicnto irtdirecto (no es un registro fisico) OPTION / RBPU INTEDG TOSC num Ém Registro con los 8 hit más bajos del Contador de Programa STATUS “u” HÜÉE- 84h FSR Registro utilizado como puntero en el dírvccionamicnlo indirecto E- Reg. u: configuracion de la: lineas un mm A A . . 86h TRJSB Registro de configuración dc las lineas dcl Puerto B 87h Posición no implementada. sc lcc como 0 88h EU’ EECONI —- WRERR WREN E EECONZ Reg. de control par: grabar en la EEPROM dc datos (no es un registro fisico) PCLATH -— Bulïer cscnlo con los S bit más altos del PC INTCON ora rara INTE m TDIF RBIF Tabla 4—l RegLrtros del SFR (Special Function Registran? ) n ¡(R-MA CAPÍTULO 4: ORGANIZACIÓN DE LA MEMORIA 4] 4.5 MEMORIA DE DATOS En esta memoria se almacenan los datos que se manejan en un programa Estos datos varian continuamente, por lo que esta memoria debe ser de lectura y escritura. Se utiliza memoria denominada RAM que es de tipo volátil, con lo cual los datos se borran en caso de que desaparezca la alimentacion. La figura 4—l muestra la estructura de la memoria de datos RAM del PlC16F84 donde sc aprecia que está dividida cn dos partes: o Registros de Funciones Especiales SFR (Special Function Regolers). Son los primeros registros, cada uno de ellos cumple un propósito especial en el control del microcontrolador. o Registros de Propósito General GPR (General Purpose Registran). Son registros dc uso general que se pueden usar para guardar los datos temporales del programa que se esté ejecutando. Tiene 68 posiciones para cl PlC16F84. La memoria de datos cuenta con dos bancos de memoria, Banco 0 y Banco l: o Los registros del SFR están agmpados entre las direcciones 00h a 0Bh para el Banco 0 y entre las direcciones 80h hasta SBh pam el Banco l. Algunos de los registros dcl SPR se encuentran duplicados cn la misma dirección cn los dos bancos. con el objeto de simplificar su acceso. Asi por ejemplo, el registro STATUS se localiza en las direcciones 03h (Banco 0) y 83h (Banco l). c El banco de registros de propósito general está formado por 68 posiciones de memoria, ya que sólo son operativas las del Banco O (direcciones desde la OCh hasta la 4Fh), porque las del Banco l se mapean sobre el Banco O. Es decir. cuando se apunta a un registro de propósito general del Banco l (direcciones de 8Ch hasta OCFh), realmente se accede al mismo registro del Banco 0. Para seleccionar el banco a acceder hay que configurar el bit 5 (RPO) del registro STATUS. Con RPO = 0 se accede al Banco 0 y con RPO = 1 se accede al Banco l. El Bar-teo 0 es seleccionado automáticamente después de un reset. Las zonas dc memoria 50h-7Fh y DOh-FFh no son empleadas y devuelven 0 en caso de lectura. 4.6 DIFERENCIAS ENTRE EL P| C16F84A Y EL PIC16C84 El microcontrolador PlCl6C84 cs un microcontrolador anterior nl PlCI6F84A y totalmente compatible con cl. la diferencia principal es que su memoria de datos tiene menor tamaño. El PIC1 (¡C84 tiene 32 registros de propósito general (cl mapa de meritorio de datos llega hasta 2Fh) frcntc a los (r8 registros disponibles en el PlC16F84. El
  32. 32. 42 MICROCONTROLADOR PlC16F84. DFSARRUIJÁJ DE PROYECTOS a RAMA PICI6C84 fue reemplazado por el PICl6F84A de modo que los diseños que lo utilicen como elemento de control dcbcn scr actualizados. Este proceso es transparente, sc puede sustituir uno por otro sin realizar ningún tipo de modificación en la mayoria de las aplicaciones. 4.7 REGISTROS DEL SFR La tabla 4—l detalla los registros de funciones especiales SFR (Special Functiun Registers), Estos registros se describen en su totalidad en el apéndice E y se irán explicando a lo largo del libro. Por ahora sc destacan los siguiennes: 4.8 REGISTROS RELACIONADOS CON LOS PUERTOS Los registros relacionados directamente con los puertos son: I PORTA. cn posición 05h del Banco 0. Pueno de entrada/ salida de 5 bits (pines RA4:RAO). El Puerto A puede leerse o escribirse como si se tratara dc un registro cualquiera. El registro que controla el sentido (entrada o salida) de sus pines se llama TRISA y está localizado en la dirección 85h del Banco l. I PORTB, en posición 06h del Banco 0. Puerto de entrada/ salida de 8 bits (pines RB7:RBO). El Puerto B puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla elscmido (entrada o salida) de sus pines se llama TRISB y está localizado en la dirección 86h del Banco l. 0 TRISA, posición 85h del Banco l. Registro de configuración de las lineas del Puerto A. Es el registro de control para cl Puerto A. Un “O” en el bil correspondiente al pin lo configura como salida, mientras que un “l” lo hace como entrada, o TRISB, posición 86h del Banco I. Registro de configuración de las líneas del Puerto B. Es el registro de control para cl Pucno B. Un “0“ en el bit correspondiente al pin lo configura como salida, mientras que un “l” Io hace como entrada. 4.9 REGISTRO PCL Y CONTADOR DE PROGRAMA El PlCl6F84 dispone de un contador de programa de [3 bits constituido por dos registros (figura 4-2): I PCL (Program Counrer Law byte). implementado en la posición dc memoria RAM 02h (y duplicado en la posición 82h del Banco l). Su contenido corresponde con los 8 bits más bajo del contador de programa. Estc registro puede ser leido o escrito directamente. üMMA CAPITULO 4: ORGANIZACIÓN DE. LA MEMORIA 43 o PCH (Program Counter High byte). Los cinco bits de mayor peso del PC corresponden con este registro. No puede ser leido ni escrito directamente. PCH PCL 12 8 7 0 % Figura 4-2 Composición del Contador de Programa (PC, Pragram Caumer) Durante la ejecución nomral del programa el PCL se incrementa con cada instrucción, a menos que se trate de algrma instrucción de salto. Al conectar la alimentación se inicialiu a (PCL) = b'00000000’ y (PCH) 1 b‘0()000’. Los 13 bits del contador de programa le penniten dircccionar hasta 8 k x 14 bits. Sin embargo, el PlC16F84 dispone tan solo de 1k x 14 bits de memoria ímplententnda, desde la posición 000h hasta la 3FFh. Los 3 bits de mayor peso del PC no los tiene en cuenta, así pues, las direcciones 30h, 430h, 830h, C30h, l430h, l830h y 1C30h sc consideran la misma. 4.10 REGISTRO DE TRABAJO W El registro de trabajo W (Work) es el registro principal y participa en la nrayorla de las instrucciones. Se localiza dentro de la CPU del PlC16F84 como se aprecia en la figura 4—l . La misma figura muestra como el microcontrolador posee una ALU (Arithmetic Logic Uni! ) de 8 bits. Esta sc encarga de realizar las operaciones lógicas o aritméticas que requiere la ejecución del programa con dos opemndos, rmo que proviene del registro W y el otro que se encuentra en mralquier otro registro o en el propio código de instmcción. 4.11 REGISTRO DE ESTADO O STATUS El registro ¡le estado o STATUS ocupa la posición 03h del Banco 0 ó la 83h dcl Banco l y es uno dc los registros más importantes y utilizados. Los bils dc este registro indican el estado de la última operación aritmética o lógica realizada, la causa de reset y los hits de selección de banco para la memoria de datos. A los bits del registro de estado se les suele denominar flags o banderas. Su constitución intema se muestra cn la tabla 4-2. A continuación sc explican sus bits principales, en capítulos posteriores se explicarán cl resto y en el apéndice D se realiza una descripción detallada dc todo el conjunto.

×