Está en la página 1de 236
CONTENIDO
CONTENIDO

Prólogo

CONTENIDO Prólogo Capítulo 1 . NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 1 . 1 .

Capítulo 1.

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

1.1.

1.2.

1.3.

1.4. Herramientas para trabajar con los PIC 16F87x

Las nuevas aplicaciones exigen mayores prestaciones

16F87x Las nuevas aplicaciones exigen mayores prestaciones Dos nuevas líneas de PIC: familias PIC 16F87x y

Dos nuevas líneas de PIC: familias PIC 16F87x y PIC 18Cxxx

El PIC pobre (PIC 16F84) y los ricos (PIC 16F87x)

Programar PIC es fácil: recordando el viejo PIC16F84

Programar PIC es fácil: recordando el viejo PIC16F84 Diseñar con PIC es fácil: presentación de los

Diseñar con PIC es fácil: presentación de los sensores analógicos más utilizados

presentación de los sensores analógicos más utilizados C a p í t u l o 2

Capítulo 2.

ARQUITECTURA. DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

Y REPERTORIO D E I N S T R U C C I O N E

Introducción

Procesador RISC con arquitectura Harvard Organización de la memoria de programa Organización de la memoria de datos RAM

memoria de programa Organización de la memoria de datos RAM 2.4.1. Registros específicos para el control

2.4.1. Registros específicos para el control de la memoria de programa

2.4.2. Control de la memoria de datos

Diagrama de conexionado Repertorio de instrucciones

Programar PIC es fácil: el primer programa con los PIC16F87x

Diseñar con PIC es fácil: actuadores para diversas aplicaciones: los motores

el primer programa con los PIC16F87x Diseñar con PIC es fácil: actuadores para diversas aplicaciones: los
C a p í t u l o 3 . 3.1. 3.2. 3.3. 3 .

Capítulo 3.

3.1.

3.2.

3.3.

3.4.

PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE LAS ME- MORIAS FLASH Y EEPROM

Los registros de control

Registro de estado (STATUS)

de interrupciones 1 (PIEI)
de
interrupciones 1 (PIEI)

Registro de opciones (OPTION)

Registro para controlar las interrupciones

3.4.1. Registro de control de interrupciones (INTCON)

3.4.2. Registro de

3.4.3. Registro de permiso de interrupciones 2 (PIE2)

permiso

3.4.4. Registros de los señalizadores de interrupciones 1 y 2 (PIR1 y PIR2)

3.5.

Lectul-a y escritura de las memorias EEPROM y FLASH

Programar PIC es fácil: un programa que maneja las iiiemorias FLASH de código y EEPROM de datos

maneja las iiiemorias FLASH de código y EEPROM de datos Diseñar con PIC es fácil: ampliación

Diseñar con PIC es fácil: ampliación de periféricos para el trabajo con PIC

fácil: ampliación de periféricos para el trabajo con PIC C a p í t u l

Capítulo 4.

LAS PUERTAS DE EIS Y RECURSOS ESPECIALES DEL PROCE- SADOR

4.1.

4.2.

4.3.

4.4.

4.5.

4.6.

4.7.

Puertas de E/S

4.1. 1.

4.1.2.

4.1.3.

4.1.4.

4.1.5.

Palabra de configuración

.,
.,

Puerta A

Puerta B

Puerta C

Puerta »

PuertaE

Palabras de identificacion

Reinicialización o reset

Perro guardihl (W DT: watchdog timer)

Modo de reposo o de bajo consumo

Programación de los PIC 16F87x

Programar PIC es fácil: utilización de los recursos del PIC

PIC es fácil: utilización de los recursos del PIC Diseñar con PIC es fácil: ampliación de

Diseñar con PIC es fácil: ampliación de los recursos del PIC

con PIC es fácil: ampliación de los recursos del PIC C a p í t u

Capítulo 5.

LOS TEMPORIZADORES

del PIC C a p í t u l o 5 . LOS TEMPORIZADORES 5.1. Tipos

5.1. Tipos y características generales

. LOS TEMPORIZADORES 5.1. Tipos y características generales 5.2. Estructura interna y funcionamiento del TMR 1

5.2. Estructura interna y funcionamiento del TMR 1

5.3. Registro de control del TMR 1 (T1CON)

5.4. Chuleta-resumen de los registros asociados al TMR 1

5.5. Funcionamiento y programación del TMR2

CONTENIDO

vii

5.6.Chuleta.resumen de los registros asociados al TMR2

Programar PIC es fácil: iiiidiendo el tiempo

Diseñar con PIC es fácil: aplicación de los PIC al control de motores y sensores

Capitulo 6.

MÓDIILOS DE CAPTURA. COMPARACIÓN Y MODULACIÓNDE ANCHURA DE PULSOS

1

6.1. Introducción a los módulos CCP

6.2. Modo captura

6.3. Modo comparación

6.4. Chuleta-resumen de los registros asociados al módulo de captura y al de com-

paración

6.5. Modo de n~odulaciónde anchura de pulsos (PWM)

6.6. Chuleta-resumen de los registros asociados al módulo PWM

Programar PIC es f'ácil: trabajo con los módulos CCP

Diseñar con PIC es fácil: aplicación de los microcontroladores: la microbótica

Capítulo 7.

EL CONVERSOR A/D

7.1.

7.2.

7.3.

7.4.

Presentación del conversor analógico/digital

Registros de trabajo

del conversor analógico/digital Registros de trabajo Estructura interna y configuración del C A/D

Estructura interna y configuración del C A/D

Chuleta-resumen de los registros asociados al conversos analógico/digital

de los registros asociados al conversos analógico/digital Programar PIC es fácil: adquisición de valores con los

Programar PIC es fácil: adquisición de valores con los conversores A/D

Iliseííar con PIC es fácil: visuali~aciónde valores por pantallas LCD

92

93

100

105

105

106

107

108

109

110

112

124

129

129

129

131

136

137

145

Capitulo 8.

Capitulo 8 . M O D U L O DE COMUNICACIÓN SERIE SINCRONA: MSSP

MODULO DE COMUNICACIÓNSERIE SINCRONA: MSSP

153

8.1.

Introducción

 

153

8.2.

ModoSPI

155

8.3.

Manejoyprogram;~ciónenelmodoSPI

 

156

8.4.

Módulo MSSP trabajando en modo I2C

 

159

 

8.5.

Conceptos fundai~ientalessobre el bus 12C

 

160

 

8.5.1.

Concepto del bus 12C

 

160

 

8.5.2.

Ter~ninologiadel bus 12C

 

162

8.6.

Características generales

 

162

8.6.1. Transferencia del bit

 

163

8.6.2. Transferencia de datos

 

164

viii

CONTENIDO

8.6.3. Arbitraje sin sincronización de reloj

8.6.4. Formato

8.7. Direccionamiento

8.7.1. Definición del primer byte

8.8. Especificaciones eléctricas

8.8.1. Tiempos

8.9. El bus 12C y los PIC 16F87x

8.10. Chuleta-resumen de los registros usados para el bus 12C

8.11. Funcionamiento del modo maestro

8.11.1. Condición de inicio (start)

8.11.2. Condición de repetición de inicio (start)

8.11.3. Modo maestro en transmisión

8.11.4. Modo maestro en recepción

8.11.5. Secuencia de reconocimiento

8.11.6. Condición de parada (stop)

Programar PIC es fácil: comunicación mediante el módulo MSSP

181

Diseñar con PIC es fácil: comunicación de datos digitales por radio frecuencia

186

Capitulo 9.

EL USART: TRANSMISORIRECEPTOR SÍNCRONOIASÍNCRONO SERIE

191

9.1.

Comunicación serie asíncrona

191

9.2.

Generador de baudios

193

9.3.

Transmisor asíncrono

195

9.4.

Receptor asíncrono

198

Programar PIC es fácil: comunicación serie con el USART

201

Capítulo 10.

EL FUTURO ESTÁ AQUI: LA FAMILIA PIC18CXXX

EL FUTURO ESTÁ AQUI: LA F A MI L I A PIC18CXXX

207

10.1. Esto es otra historia

10.2. Las grandes aportaciones

10.2.1. Espacio lineal de direccionamiento

10.2.2. Complejo juego de instrucciones

10.2.3. Diseño optimizado para compilador C

10.2.4. Herramienta modular para la emulación

10.2.5. Otras ventajas

10.3. Diagrama de conexionado

10.4. Arquitectura interna

10.5. Organización de la memoria de programa

10.6. Organización de la memoria de datos

10.7. Repertorio de instrucciones

CONTENIDO

ix

Apéndice A: La familia PIC al completo

223

Bibliografía y direcciones de interés relacionadas con los PIC

229

Índice

231

Para completar la foriiiación cle los lectores que accedieroii al estudio y desarrollo de aplicacione\

Para completar la foriiiación cle los lectores que accedieroii al estudio y desarrollo de aplicacione\ con microcontroladores basándose en la Primera Parte del libro ((Mi(i~oc~or~ti-olucJo~-e,cPIC. Di\cfio Prácticbo de Aplic cr<ionc\ ),.y ante la aparición de los nuevos modelo\ que MlCKOCHIP ha comer- cializado recientemente, los autores han escrito una continuación de dicho libro, reforzados con la colaboración de la profesora Susana Roinero de ESTDE (Universidad de Deusto). Para seguir esta obra es prerrequisito conocer teórica y prácticamente la primera parte. Las populares y masiva\ aplicacione\ de lo\ tnicrocontroladorec de 8 bits en productos con te- clado/pantalla de la década que comenzó en 1990, ha dado paja a otras mucho más ambiciosas, que requieren dispositivoc programables con mác recursos y mejor rendimiento. Los autores han intentado crear una herramienta de aprendizaje práctica, eficaz y muy amigable, que vaya mostrando progresivamente el funcionamiento teórico, el comportamiento práctico, la pro- gramación y la puesta a punto de las aplicaciones con los modernos microcontroladores PIC. Siguiendo la estrategia de la primera parte, dedicada exclusivamente al PIC 16x84, también en ésta se ha elegido una subfamilia de niicrocontroladores para dejarrollar el programa teórico-prác- tico. Hemos seleccionado los cuatro modelos que comprende la subfamilia PIClóF87.i. que supo- nen un espectacular avance con respecto al PIC 16x84. Además de disponer de mayor c;ipacidad de memoria y funcionar a más velocidad con mejor rendimiento, ectos microcontroladores poseen iii- tegrados todos los recursos que precisan las aplicaciones comerciales de nivel medio y alto. También y como atención a los lectores mác exigentes, se describe la familia PICl8Ci i 1, que ec- llamada a utilizarse en los proyectos más exi,centes. La mayoría de los temac o capítulos, al igual quc en la primera parte, los hemos dividido en tres secciones:

en la primera parte, los hemos dividido en tres secciones: f ,aTeoría. Se expone con clar~dad
en la primera parte, los hemos dividido en tres secciones: f ,aTeoría. Se expone con clar~dad
en la primera parte, los hemos dividido en tres secciones: f ,aTeoría. Se expone con clar~dad

f ,aTeoría. Se expone con clar~dady senc~llezel funcionamiento, las prestaciones, la programación

y el manejo de cada recurso Cada tema se dedlca a un recurso.

manejo de cada recurso Cada tema se dedlca a un recurso. 2"rogramar PIC es fácil. Para

2"rogramar PIC es fácil. Para cada tema y para cada recurso se han preparado una serle de ejer- CICIOS, programas y dlseños, con los que progres~vamentese util~zanlos conceptos expuestos en /a teoría Toda la colecc~ónde ejerc~c~ospropuestos se pueden reallzar íntegramente con las herramlen- tas bas~cascomerc~al~zadaspor M~crosystemsEnglneerlng Concretamente se preosa el económico

con las herramlen- tas bas~cascomerc~al~zadas por M~crosystemsEnglneerlng Concretamente se preosa el económico

xii

PRÓLOGO

xii PRÓLOGO Bajo esta estructura el libro consta de 10 temas y un anexo. El primer

Bajo esta estructura el libro consta de 10 temas y un anexo. El primer tema se destina a mos- trar la necesidad y las aportaciones de los nuevos PIC. Se recuerda la programación general del PIC16x84, poniendo de relieve algunos detalles que habrá que modificar en los nuevos modelos, y se describe el funcionamiento y control de algunos sensores analógicos, que se utilizarán en los ejer- cicios. El segundo tema presenta la arquitectura, el diagrama de patitas y el repertorio de instruc- ciones de la subfamilia PIC16F87x. En la programación se hace un enfoque de las peculiaridades de los nuevos PIC y los bancos de memoria y en cuanto a los periféricos se estudian los motores. El tercer tema muestra las características y asignación de funciones de los diversos bits de los princi- pales registros de control y las operaciones de lectura/escritura de las memorias FLASH y EE- PROM, se realiza un programa de lectura/escritura de dichas memorias y se estudia la tarjeta de am- pliación de periféricos Mical-o'PIC10. A partir del tema 4 se van analizando los nuevos recursos de los PIC 16F87x, dedicando cada tema a la explicación de un recurso: Puertas de E/S, Temporizado- res/Contadores 1 y 2, Módulos CCP, Conversor AD, Comunicación Serie, etc. Cada tema contiene un programa resuelto que puede realizarse sobre las herramientas de Micl-osysterns Engineering co- mentadas anteriormente y a la vez se van describiendo periféricos especiales como los módulos de R.F., los microbots, etc., y las nuevas herramientas usadas en los ejercicios, como el ZOC87x para adaptación al Micro'PIC TI-ainel-de los PIC16FX7x y las tarjetas de ampliación de periféricos Mi- CI-O'PICTI-ainel- Plus y la MSx84 encargada del control de motores DCV y PAP. Finalmente, la obra se completa con un anexo que ofrece las características de los modelos actuales de microcontrola-

dores de Micl-ochip.

Agradecemos muy sinceramente la colaboración de Micnr-osystemsElzgineel-irzg (Bilbao), que ha puesto a nuestra disposición todas las herramientas que hemos necesitado y toda la información so- bre sus productos y los ejercicios que soportaban. Los lectores interesados en conocer más a fondo dichas herramientas pueden dirigirse directamente a sus oficinas en C/ Gral. Concha 39,48012 Bil- bao, o bien, visitarla a través de Internet (www.arrakis.es1-msysen-). Igualmente expresamos riues- tro agradecimiento a los Sres. Benito Moreno y Pepe Bustamante de Sagitr-o17(Madrid) y a nuestros

amigos Goyo y Jorge de Bilbao Electl-ónica.

Para no encarecer el libro se ha prescindido de incluir disquete o CD, puesto que toda la infor- mación y programas de interés pueden ser recogidos por Internet (www.microchip.com y www.arra- kis.es/-msyseng). Por nuestra parte nos brindamos a ayudar en lo que podamos a nuestros lectores en la dirección autores@inf.deusto.es.

Por nuestra parte nos brindamos a ayudar en lo que podamos a nuestros lectores en la
Por nuestra parte nos brindamos a ayudar en lo que podamos a nuestros lectores en la
NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC
NECESIDAD Y
APORTACIONES
DE
LOS NUEVOS PIC

1.1. LAS NUEVAS APLICACIONES EXIGEN MAYORES PRESTACIONES

Es posible diseñar un PLC comer-cialcon un PIC16F84, con sólo 1 K palabr-as de memoria de có- digo, 64 bytes para datos, 13 líneas de EIS digitales y un contador-tempot-izadol-? A nuestro alumno Iván Trueba no le era suficiente. Por eso, para poder culminar con éxito su proyecto de 3.O de Ingeniería Técnica en Electrónica tuvo que ampliar notablemente los recursos del PIC16F84. Mediante el protocolo del bus 12C aumentó con dos puertas más las líneas de E/S y, en- tre otras cosas, añadió un conversor A/D que permitiese el tratamiento de señales analógicas. De es- ta forma, en lugar de usar un solo circuito integrado que contuviese todo lo necesario, el proyecto requirió más de media docena. (Figura 1.1.)

proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1
proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1
proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1
proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1
proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1
proyecto requirió más de media docena. (Figura 1.1 .) F i g u r a 1

2

MICROCONTROL.ADORF<S<(PIC>,.LIISEÑO PRÁC'TIC'~DE APLICACIONES

Todo lo que utilizó nuestro alumno para implernentar el PLC y mucho más está contenido en uno de los modelos de microcontroladores de la subfamilia PICIhF(Y7.i-. Dos de los autores de este libro (.José Mari J~SLISC~I~U)somos profesores eri la Universidad de Deusto y nos dedicamos a enseñar computadores y microcontroladores a los futuros ingenieros. So- mos de la opinión de que esta tecnología CS(I U~I.CII(~C~CICIC~I~O))y por eso, en cada curso, dirigimos n~uchosproyectos a nuestros alumnos y a la hora de poner ejemplos siempre nos acordamos de ellos y sus experiencias. Así que, para no cambiar de alumno. con motivo de la presentación del proyec- to final del Grupo Duro, 1~~Úi7decidió ser el mejor y para ello proyectó el parking más espectacular y completo que pueda uno imaginar. En la Figura 1.2 se ofrece una fotografía de la maqueta del «l~u~-kit?gii~tcligcutr»controlada desde un PC. No sólo gobiernci las barreras de entrada y salida del gar.je, sino qiie además dispone de sensores en todas las plazas para controlar su liso y tarificar la estancia. Por otra parte, en las ventanas del monitor del PC el encargado tiene acceso a una corn- pletísiina información con un alto nivel de seg~iridadante robos. incendios, gases, etc. Para poder soportar las varias decenas de sensoi-es y periféricos que teriía el parking, Ivhn nece- sitó utilizar cinco microcontroladores PIC 16F84 intercornunicados por bus 12C y coinple~i~entad con más de 20 circuitos integrados adaptables al mencionado bus. En dicha circuitería se ampliaba la ~riemoria.las E/S, se aííadían conversores A/D, reloj en tiempo real, memorias no volátiles, etc. Tdmbién ,Jallicr Ronrpl-a, Director Técnico de Zurlihul, considerado uno de los pioneros de la

aplicación de los PIC, Iia pasado por el mismo probleina en el diseño de las ((ho~trsi/lt~ligr',71c'.pi,tque

el diseño de las ((ho~trsi/lt~ligr',71c'.pi,t que fabrica su empresa. La boya «TUNABAL D+ l~ln~u/ diante

fabrica su empresa. La boya «TUNABAL D+ l~ln~u/

diante el uso de artilugios a la deriva. Estos artilugios son plataformas construidas con maderas vie-

jas y todo tipo de materiales que sueltan los barcos atunervs al mar. Al cabo de un par de semanas estas plataformas han atraído una gran cantidad de plancton que se ha fijado en su estructura y que actúa como suculento cebo de los atunes. Cada barco suelta a la deriva varias decenas de platafor- mas y para optirnizar el rendimiento de la pesca se precisa conocer su situación y la posible atrac- ción de bancos de atúnidos. Para proporcionar esta información cada artilugio incorpora una boya.

revolucionando la pesca del atún me-

una boya. revolucionando la pesca del atún me- sut»esti F i g u r a 1

sut»esti

una boya. revolucionando la pesca del atún me- sut»esti F i g u r a 1

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

3

La boya de Zltnihal lleva incorporado un transceptor D+ de última generación con el que envía to- dos los datos a través de la Red Inmarsat. La boya incorpora cuatro sondas de pesca y proporciona información sobre la posición, el rumbo, la velocidad, temperatura del agua y concentración de pes- cado. La ecosonda y el sistema de indicadores intermitentes incorporan microcontroladores PIC12C508. Mediante paneles solares, la batería de alimentación se mantiene cargada indefinida- mente. Para desarrollar el sistema de control de la boya Jai.tic.1- Rome~wtuvo que utilizar los micro- controladores más potentes y veloces del mercado. (Figura 1.3.) Las posibilidades de aplicación de los microcontroladores cada vez son mayores, pero también requieren cada vez mis prestaciones. A continuación, se ofrece una tabla con una relación de posi- bles clientes y aplicaciones.

 

MILES DE CLIENTES

Consumo

Automoción

Ofimática

Telecomunic.

Industria

Black&Decker
Black&Decker
f3ldup~inkt

f3ldup~inkt

Alp5

Codex

Ai~leric~~n

Goldstar

RMW

Applc Comp~itt~r

Ei icsson

5ciisors

IVC
IVC

Hamilton Beach

Forcl
Forcl

CM-Del(o

Coiiner

Compaq

tiayes

Kyocera

Cvde A1'1rni Foxhoro

Cvde A1'1rni

Foxhoro

Cvde A1'1rni Foxhoro

Mitsubishi

tionda
tionda

DEC

Motorola
Motorola

General Electric

Panasonic

Lexus

IBM

Nokia

Honeywell

Philips
Philips
MercedeslBenz
MercedeslBenz

Logitech

Northern

Pitney Bowes

Samsung

Nissan

Microsoft
Microsoft

Telecom

Robertshaw

Sanyo

Robert Bosch

Mitsunii

Pac~fic Monolithics Rockwell
Pac~fic
Monolithics
Rockwell

Tandy

S~emens

S~emens

NCR

United

Technologies

 

Wayne Systems

1.2.

1 . 2 . DOS NUEVAS LINEAS DE PIC: FAMILIAS PICl6F87X Y PIC18CXXX

DOS NUEVAS LINEAS DE PIC: FAMILIAS PICl6F87X Y PIC18CXXX

 

Mic*i-oc,l?iplo había anunciado y todos los ingenieros que utilizamos los PIC lo estábamos esperan- do ansiosamente, pero hemos tenido que traspasar la barrera del 2000 para poder disponer fácil- mente y en cantidad de los nuevos PIC adaptados a las exigencias de nuestro tiempo. El ascenso de Mic-I-oc-hipal segundo puesto del ranking mundial de fabricantes de microcontroladores de 8 bits, se- gún la encuesta de Dataqrrcst realizada en junio de 1998, debía mantenerse con la aportación de in- vestigación y desarrollo que ha tenido que hacer la empresa para sacar al mercado estas dos nuevas líneas de ~nicrocontroladores.

Figura 1.S.

de ~nicrocontroladores. F i g u r a 1 . S . I;i)tog~-trfi'tr tlc Itr ho?rr

I;i)tog~-trfi'trtlc Itr ho?rr (IT(/N,~BAL/>+ /11t71o1

(10.5 1101.
(10.5 1101.
tlc Itr ho?rr (IT(/N,~BAL />+ /11t71o1 (10.5 1101. \(it)>, ( otl\tl olll/ll-fl.\(/ Zl~l~lI?~~l i{i(l(r
\(it)>, ( otl\tl
\(it)>,
( otl\tl

olll/ll-fl.\(/ Zl~l~lI?~~l

(10.5 1101. \(it)>, ( otl\tl olll/ll-fl.\(/ Zl~l~lI?~~l i{i(l(r (.o11 II~~CI o( o~~tt.olu~lo~.~\ (II~UY~:~/-

i{i(l(r (.o11II~~CIo( o~~tt.olu~lo~.~\(II~UY~:~/-

4

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Equipo de TV Receptor de radio Reproductor de CD Control

Equipo de TV Receptor de radio Reproductor de CD Control remoto Vídeo consola Cámara Mando de garaje Detector de monóxido de carbono Microondas Lavadora Secadora Aparatos de cocina Aspiradora

Sistema de seguridad del vehículo Detector de radar ABS Velocímetro Ciimatizador Inyección de combustible Suspensión activa Sensor de airbag

Ratón de ordenador Teclado Escáner Impresora Plóter Fotocopiadora Lector de código de barras Unidad de disco

Teléfono celular

Control de motores Compresor Termostato Utilidades de medida Robótica Procesos de control Detector de humo Lector de tarjetas

Teléfono

inalámbrico

ldentificador de

llamadas
llamadas

Módem

Figura 1.4.

Tabla de aplicaciones que requieren microcontroladores y clientes que desarrollan dichas apli- caciones.

y clientes que desarrollan dichas apli- caciones. F i g u r a 1 . 5

Figura 1.5.

Tabla con las características relevantes de los cuatro nzodelos de PIC16F87x, junto a las del

PIC16F84A.

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

5

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 5 Con la incorporación de esta familia, el conjunto

Con la incorporación de esta familia, el conjunto de microcontroladores PIC de 8 bits se distri- buye en cuatro gamas:

PIC de 8 bits se distri- buye en cuatro gamas: Figura 1.6. Principales características de los
PIC de 8 bits se distri- buye en cuatro gamas: Figura 1.6. Principales características de los
32 niveles de pila 77 instrucciones de 16 bits PlCl7Cxxx 16 niveles de pila 4
32 niveles de pila 77 instrucciones de 16 bits PlCl7Cxxx 16 niveles de pila 4
32 niveles de pila 77 instrucciones de 16 bits PlCl7Cxxx 16 niveles de pila 4
32 niveles de pila
77 instrucciones de 16 bits
PlCl7Cxxx
16 niveles de
pila
4 vectores de interrupción
58 instrucciones de 16 bits

GAMA MEJORADA

GAMA ALTA

P!Cl2C6xx, PIC16Cxx v PlCl6F87x 8 niveles de pila 1 vectur de interrupción 35 instrucciones de
P!Cl2C6xx, PIC16Cxx v PlCl6F87x
8 niveles de pila
1 vectur de interrupción
35 instrucciones de 14 bits
PIC 12C5xx- .- LPIC-16C5x
2 niveles de pila
33 instrucciones de 12 bits
bAL!P-!ED!A
bAL!P-!ED!A

GAMA BÁSICA

-- -- - --

- - -- -

-.

12 bits bAL!P-!ED!A G AMA BÁSICA -- -- - -- - - -- - -. En

En la Fig~iríi1.7 re puede ver una I-epre\ent~icióngráfica que recoge toda\ la\ f;tmilia<. En este lihrci iros vanlos a centrar en la 5ubi'amilia PIC 16F87x porque con\ider:imo\ que e5 el 4- guiente paso natiiral de\pué\ del PIC16F84, porque tenemos 121 convicción de yue va a ocupar lor puestos mi¡\ altos del mercado y porque sus característica\ le hacen ideal para aprendel. con ellos to- do\ lo\ nuevor recur\o\. Se destinará un capítulo a coirreirtar el t'uncionamiento y iiiane.jo de lo\ mo- delos de la familia del futuro PIC 1XCxxx.

de lo\ mo- delos de la familia del futuro PIC 1 XCxxx. 1 . 3 .
de lo\ mo- delos de la familia del futuro PIC 1 XCxxx. 1 . 3 .
de lo\ mo- delos de la familia del futuro PIC 1 XCxxx. 1 . 3 .

1.3. EI, PIC POBRE (PIC16384)Y LOS RICOS (PIC16F87X)

Hasta el año 2000 han sido muchos los rnillone\ de pie~asdel PIC 16F84 que se haii vendido eii to- do el mundo. Este irrodelo había venido precedido por el PIC 16C84, prcícticarneiite igual. col1 ex- cepcicín de la n1eniori;i de programa que era de tipo EEPROM en lugar de FLASH. Con ainbos ti- pos de meri~oriasse teiiía la posibilidad de grabar y bol-rar programas eléctricameiite. lo cual suponía que podía estar insertado en el mismo zócalo durante todo el procsw fe diseño y del~iiracicín.Lo\ i~iodelode rnicrocontroladores progi-amable5 conocido5 hasta entonces disponía11úc inei-i~orilide programa EPROM, que exigía soirieterla durante cierto tiempo a rayo\ ultravioleta en el procejo de borrado. Esta operación suponía uii grave inconveiiiente y la pogiblc rotura de las p:~tita\dcl cir-cui- to integrado cuando se rerrli~abanmucho\ bol-rada\.

to integrado cuando se rerrli~abanmucho\ bol-rada\. La memoria FLASH de los PIC soporta hasta 1.000

La memoria FLASH de los PIC soporta hasta 1.000 operaciones de escritura/borrado, mediante un proceso totalmente eléctrico que no precisa sacar al microcontrolador de sil zócalo. Esta caracterfs- tica hace a esta memoria ideal en los ambientes de diseño y educacionai. La memoria EEPROM para datos que tienen los PIC soportan 100.000 operaciones de grabado/bo- rrado.

y educacionai. La memoria EEPROM para datos que tienen los PIC soportan 100.000 operaciones de grabado/bo-
Nt:('ESIl)AD
Nt:('ESIl)AD

Y APORTACIONLS DE 1-OS NUEVOS PIC'

7

iblic 1.oc.llipha tenido cíi\ponibles de\cle liace iii~icliotienipo iiiicrocoritrolaciorc\ tiiuy potetite\ LX)- iiio los fatnosos PIC 16C73 y 73 de Iii gama media, pero con nlemoria EPROM parit el progr:ii~~:i.E\- to\ di\positivo\ alcati~abanc:ipacidade\ de ineinoi-i:i de 3 K, con lC>2byte\ de KAM de dato\. con c90nver\orA/D de 8 hit\ cte varios canaleí de etitracla, puertas de com~ii~ic:ición\cric (USAR'T. 12C, SPI), ii~ódulo\C('P, vario\ Timer y frecuencia de funcionriiniento de 20 MI]/. Se tratahlt cic f'iC\ «111u)~rico\» e11 rec~ir\o\. El PfC 16FX-Ctielle iiitbinoii;i FLASH. pelo coi1 iiil~iciipaciclrid de 1 K palal.)i.:is, \6lo tieiie iiir Ti- iner ), 13 líneas de E/S digitale\ y el modelo norrnal soporta una l'recuencia tic 10 MHr. auncluc el <<A>>llega a lo\ 20 MH/. E\ un inicroconti-olador «pobre», pero su \cncillez y bii~oprecio, inicios :i iii ini:igii~:icitin(le lo\ proy~cti\t;i\.ha logr¿idoqiie \e le ccin\idere <<muyresiiltóii>>

\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una
\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una
\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una
\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una
\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una
\e le ccin\idere <<muyresiiltóii>> Los nuevos PIC16F87x se pueden considerar como una

Los nuevos PIC16F87x se pueden considerar como una combinación de las virtudes del PIC16F84 con la inclusión de los recursos de los PIC 16C73 y 74. Incorporan la memoria FLASH, con una capa- cidad de 4 K y 8 K palabras de 14 bifs, sin cambiar la estructura interna del procesador y conservando el m~smorepertorio de instrucciones.

La irienioria RAM de dato\ de lo\ PIC I6FX7x po\ee una capacidad de 102 byte\ en (lo\ de lo\ inodelos y de 368 bytcs en lo\ otro\ dos. Aunque superan ampliamente los 68 byte\ del PIC 16FX4. inantieneii la mi\tna e\tructura ba\ada en 4 bancos de 128 byte\ cada uno, \clcccionables con lo\ hit\ RPO y RPI del Regijti-o de E\tatlo. (Fig~ira1 .X.) La memoria de tirito\ no volátil de 64 byte\ tipo EEPROM que tenía el PIC'16FX-Cen 104 t-iilevo\ PIC 16F87x de 28 patitaí s~ibeha\ta 128 bytes, y en loí de 40 patitas a 256 bytes.

En lo\ PIC16FX7x \e manejan ha\ta 14 posibles fuentes de interi.upcióri y 3 Tiriler. frente ;i la\ 3

f~it.i~te\y 1 Tiinei- del PIC'I6FX-C.

coi1 3 puertas en lo\ PIC <le28 patitri\ 4 Ii;i\ta 5 eii lo\ de 30. AdcrnAs, lo\ iiut.\o\ I'IC iticorporati

lo\ \iguicnte\ recur\os inexi\tet-ite\ en el PIC 16FX3:

lo\ \iguicnte\ recur\os inexi\tet-ite\ en el PIC 16FX3: El núinri-o dc puesta\ taiiihien se ve auil-ieiiiritlo
lo\ \iguicnte\ recur\os inexi\tet-ite\ en el PIC 16FX3: El núinri-o dc puesta\ taiiihien se ve auil-ieiiiritlo

El núinri-o dc puesta\ taiiihien se ve auil-ieiiiritlo jii\t:iiici:il~iieiitc.

taiiihien se ve auil-ieiiiritlo jii\t:iiici:il~iieiitc. 1) Do\ ~~l(jdltlo.\ C'CP. Son capaces de capturar y

1) Do\ ~~l(jdltlo.\C'CP.Son capaces de capturar y comparar impulsos. La captiira \e efectúa con una pic.ci\ióri de 12.5 ns y una resolución de 16 bit\. iiiientras que la coinpiiracioil con igual rc\oI~iciO~~;ilcan~auna precisión de 200 ns. AdemLís, la sección PWM varía Iri :incl~~ii-;idc lo\ ii~ip~ilso\.tbcnica rnuy empleatia en el control de motores.

rnuy empleatia en el control de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2
rnuy empleatia en el control de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2

BANCO O

OOh

7Fh

rnuy empleatia en el control de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2
BANCO 1
BANCO 1

FFh

en el control de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2 BANCO 3

BANCO 2

el control de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2 BANCO 3 F

BANCO 3

de motores. BANCO O OOh 7Fh BANCO 1 FFh BANCO 2 BANCO 3 F i g

Figura 1.8.

Mn/lc;jtrrlclolos I7it.v KPí) J. KPI tlcl Kcgi.vt/ntic Esttrtlo sc I~~~.(III:LII~10,s 308 I~J'ICS(Ic KAM tlo tltr-

tic Esttrtlo sc I~~~.(III:LII~ 10,s 308 I~J'ICS (Ic KAM tlo tltr- tos el1 los PIC'1 fik'(S7.V.

tos el1 los PIC'1fik'(S7.V.

8

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

2) Cornunicac-iólzserie. En esta subfamilia se ha potenciado muchísimo el tema de las comuni-

caciones y en cuanto a la serie tipo admite dos modelos. La típica USART, orientada a la co- municación entre subsistemas o máquinas (RS-232) y la MSSP, destinada a la comunicación entre diversos circuitos integrados y que admite el protocolo 12C y SPI Cornurzic.ac~iónpar-alelo. En los PIC 16F87417de 40 patitas está disponible el protocolo PSP,

3)

más rápido que la comunicación serie, pero que hipoteca muchas líneas de E/S: ocho de la Puerta D y tres de control de la Puerta E. (Figura 1.9.) 4) Conversol- AID. En todos los PIC16F87x existe un conversor Analógico/Digital de 10 bits, con 5 canales de entrada en los microcontroladores de 28 patitas y 8 en los de 40 patitas.

de 28 patitas y 8 en los de 40 patitas. 1 . 4 . HERRAMIENTAS PARA

1.4. HERRAMIENTAS PARA TRABAJAR CON LOS PIC16F87X

El fabricante se ha esforzado en acompañar a los PIC 16F87x con el complemento adecuado para de- sarrollar las aplicaciones de forma sencilla y cómoda. Para ello, trabajando en su conocido entorno MPLAB Integrated Development Environment (IDE), disponible en la dirección de Internet:

www.microchi~.com,ha comercializado el kit MPLAB-ICD, (Figura 1.1O), caracterizado por:

* PrograrnadordelosP/C16F87x.

-

Depuración del rn~crocontrolador en el circuito de aplicación. rn~crocontroladoren el circuito de aplicación.

Ejecución en tiempo real, con puntos de parada hardware. de parada hardware.

Ejecución paso a paso, paso a paso,

Funcionamiento con alhentación de 3 a 5,5 V y frecuencia de alhentación de 3 a 5,5 V y frecuencia de

KHz a
KHz a

Estos PIC con memoria FLASH pueden ser grabados con su programa de aplicación después de su montaje en el producto final. Esta programación llamada ICSP (Progl-arnación Ser-ie en Cir-c-ui- to) tiene las siguientes ventajas:

Ser-ie en Cir-c-ui- to) tiene las siguientes ventajas: .íneas de datos 1 Líneas de coi Figura
.íneas de datos 1 Líneas de coi
.íneas de datos
1
Líneas de coi

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

9

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 9 1 ." Reduce considerablemente 2.a Disminuye el tiempo

1." Reduce considerablemente 2.a Disminuye el tiempo y el cost 3." Hace posible la calibracidn en

tiempo y el cost 3." Hace posible la calibracidn en Posibilita la inclusión de cód~ El
tiempo y el cost 3." Hace posible la calibracidn en Posibilita la inclusión de cód~ El

Posibilita la inclusión de cód~

El kit MPLAB-ICD consiste en una tarjeta conectada al puerto serie del PC y de la que sale una «cabeza» que incorpora uno de los microcontroladores PIC16F87x, que se inserta en el mismo zó- calo que utilizará el PIC definitivo. El MPLAB-ICD une a su alto precio relativo, su especificidad para trabajar exclusivamente con los PIC16F87x. Con la idea de abaratar las herramientas y usar un sistema de desarrollo universal, Mici.osystems Engineei-ing ha diseñado un sencillo y económico zócalo adaptador para los PIC 16F87x en el Micr-o'PIC Ti-uinei-,con el que se puede grabar, borrar, depurar y ejecutar progra- mas en los nuevos PIC, con la posibilidad de conectarle todos los periféricos del sistema de desa- rrollo y ver su comportamiento en tiempo real. El zócalo adaptador ZOC871-,(Figura l.1 l), se introduce en el zócalo libre de 28 patitas del Mi-

ci-o'PIC Trainer.

En el kit ZOC87x que se comercializa, se incluye, junto con el software necesario, un micro- controlador PIC 16F873 grabado con un programa que presenta diversos mensajes sobre la pantalla LCD del Miel-o'PIC Ti-ainei: El mencionado ZOC87x también permite la grabación de los PIC16F87x sobre el programador Micro'PIC P/-og?-ammc~-. La realización de todos los ejercicios, programas y proyectos que se proponen en este libro exi- gen la siguiente relación de herramientas de la ingeniería bilbaína Mical-osystemsEngi~zeering:

de la ingeniería bilbaína Mical-osystemsEngi~zeering: Figura 1.10. El kit MPLAB-ICD pel-nlite ti-uhujui- con

Figura 1.10.

El kit MPLAB-ICD pel-nlite ti-uhujui-con los PIC16F87'í desde un PC hujo el entor-ízosoj'tnw-

1-eMPLAB.

IO

MICROCONTROLADORES «PIC,,. DISENO PRÁCTICODE AP1,ICACIOYES

Figura 1.11.

DE AP1,ICACIOYES F i g u r a 1 . 1 1 . l;ofog/.c~flcrtlel rcíc,trlouilrr/~tliclo/. ZOC87\,

l;ofog/.c~flcrtlel rcíc,trlouilrr/~tliclo/.ZOC87\, ylic p~/.t?/ir(-'t/.lrh(rltr~.(.otilo.\ PIC 16F87-Ycrl rl Mi- c.~-o'PlCTrtrit~cl:

1 "
1 "

Slstema de desarrollo ~<M1croJPICTralner

2

" Zocalo de adaptación <<ZOC87xj>para trabajar con los PIC16F87x

3 " Tarjeta de ampilacion de periférlcos <~M~cro'PlCTralner Plus,., con perlférlcos conectables por bus 12C.

Plus,., con perlférlcos conectables por bus 12C. 4 " Tarjeta de ampl~ac~ón de
Plus,., con perlférlcos conectables por bus 12C. 4 " Tarjeta de ampl~ac~ón de

4

" Tarjeta de ampl~ac~ón de per~féricos<<M~cro'PlC/O>,, con motor, sensores analogicos, trlacs, etc Tarjeta de ampl~ac~ónde per~féricos<<M~cro'PlC/O>,,con motor, sensores analogicos, trlacs, etc

En la Figura 1.12 se aprecia la interconexión de las dos tarjetas de ampliacihn de periféricos al sistema de desarrollo Mic.1-o'PIC Tizrir~el;que lleva alojado el zócalo de adaptación ZOC<Y~-Y,que le permite trabajar con los PIC 16F87x. A los PIC l6F87x se les puede grabar el programa en el modo ICSP-LV. que re lleva a cabo con una tcnsicín ig~1a1a la de alimentación de +5 V. La patita RBI/PGM se de\tiiia a seleccionar el Modo de Programación y RB6/RB7 a recibir los datos en serie y los impulso\ de relo-j,respectiv¿irnetite.

en serie y los impulso\ de relo-j,respectiv¿irnetite. Figura 1.12. Itztcr.c*ot~c~.viór~ dr l(n
en serie y los impulso\ de relo-j,respectiv¿irnetite. Figura 1.12. Itztcr.c*ot~c~.viór~ dr l(n
en serie y los impulso\ de relo-j,respectiv¿irnetite. Figura 1.12. Itztcr.c*ot~c~.viór~ dr l(n

Figura 1.12.

los impulso\ de relo-j,respectiv¿irnetite. Figura 1.12. Itztcr.c*ot~c~.viór~ dr l(n tt11-jcfuMic.ro'PIC

Itztcr.c*ot~c~.viór~dr l(n tt11-jcfuMic.ro'PIC Tlwit~cl-c 011 Iris tios

1.12. Itztcr.c*ot~c~.viór~ dr l(n tt11-jcfuMic.ro'PIC Tlwit~cl- c 011 Iris tios ttr~.jota.\(le ~rl///)li(i(ihl.

ttr~.jota.\(le ~rl///)li(i(ihl.

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

11

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 11 RECORDANDO EL VIEJO PIC16F84 En esta sección demostraremos,

RECORDANDO EL VIEJO PIC16F84

En esta sección demostraremos, capítulo a capítulo, que la programación de los nuevos PIC hace más sencilla la realización de ciertas tareas en muchos casos. como consecuencia de sus recursos. Todo es cuestión de probar y no quedarse en meros espectadores, así que manos a la obra que co- mienza la función y usted es el principal actor.

Enunciado

Vamos a comenzar recordando cói~iose trabaja con el PIC 16F84 para pasar luego a mayores con los PIC 16F87x. Tenemos un PIC 16F84 trabajando a 4 MHz, en el cual se han conectado 2 interruptores en las líneas RA1 y RA2 de la Puerta A y 2 LEDs eri las líneas RBO y RB 1 de la Puerta B. El programa debe mostrar cuándo el valor lógico que introducen ambos interruptores es cero. Pa- ra ello, si los dos interruptores introducen por la Puerta A nivel lógico 0, los LEDs de la Puerta B deben encenderse, y en los demás casos permanecen apagados.

Esquema eléctrico

Tras entender lo que se pide hay que especificar el esquema eléctrico del circuito para saber cómo están conectados los periféricos. (Figura 1.13.) En dicho esquema se representa el PIC, con los ele- mentos auxiliares que siempre necesita (cristal, alimentación y circuito de reset), y los periféricos de entradalsalida que se utilizan en cada moniento. En este ejercicio tanto los interruptores como los LEDs están conectados para ser activos por ni- vel alto. En el caso de los interruptores este hecho no altera la resolución del problema, pero si los LED estuvieran conectados para activarse por nivel bajo, el valor para encenderlos y apagarlos se- ría justamente el contrario.

y apagarlos se- ría justamente el contrario. Organigrama Otra práctica muy recomendable antes de empezar

Organigrama

Otra práctica muy recomendable antes de empezar a programar es plasmar en un organigrama la for- ma de resolver el problema. (Figura 1.14.) Cuanto más complicado sea dicho enunciado, más abstracto será el organigrama, pudiendo in- cluso necesitarse varios para llegar a un nivel aceptable de concretización. Al contrario, si el pro- blema es sencillo el programa es casi una traducción inmediata del organigrama a código.

Figura 1.13. Mhz E.~quema eléctrico correspondiente al ejercicio pi-opuesto. INICIALIZACI~N PA ENTRADA PB SALIDA

Figura 1.13.

Figura 1.13. Mhz E.~quema eléctrico correspondiente al ejercicio pi-opuesto. INICIALIZACI~N PA ENTRADA PB SALIDA

Mhz

E.~quemaeléctrico correspondiente al ejercicio pi-opuesto.

INICIALIZACI~N PA ENTRADA PB SALIDA APAGAR LEDs ENCENDER LEDs
INICIALIZACI~N
PA ENTRADA
PB SALIDA
APAGAR LEDs
ENCENDER LEDs
Programa comentado Una vez dados estos pasos previos estamos en disposición de comenzar la programación.

Programa comentado

Una vez dados estos pasos previos estamos en disposición de comenzar la programación. Vamos a seguir unas reglas básicas a la hora de escribir los programas que, aunque no son obli- gatorias, facilitan la lectura y la comprensión.

son obli- gatorias, facilitan la lectura y la comprensión. Siguiendo estas normas y en base al

Siguiendo estas normas y en base al esquema eléctrico y al organigrama se obtiene el programa que aparece bajo estas líneas. Antes de continuar, ¿por qué no intenta resolverlo usted mismo y com- prueba luego cómo anda su práctica de programación con los PIC? Recuerde que no hay un modo único de resolución y que se aprende practicando y cometiendo errores.

LIST

P= 16F84

HEX

Se indica el tipo de ; procesador

;

RADIX

; Sistema de numeración

INCLUDE

«P16F84.INC»

hexadecimal ; Se incluye la definición de

;

los registros internos en ; una librería Inicio en el Vector de : Reset Va a la primera instrucción

;

;

ORG

0x00

INICIO ;
INICIO
;

END

; Fin de programa

14

MICROCONTRO1,ADORES «PIC». DISENO PRÁCTICO DE AI'LICACIONES

«PIC». DI S E N O PRÁCTICO DE AI'LICACIONES Llega Iii hora de probar la soluci6n

Llega Iii hora de probar la soluci6n del problema para ver si se coniporta co111o está previsto. Los pasos a realizar serin siempre los siguientes:

Los pasos a realizar serin siempre los siguientes: l." Llamar a un edltor de textos cualqu~era

l." Llamar a un edltor de textos cualqu~eray copiar el programa Grabarlo sin formato con extensión

«ASM».

el programa Grabarlo sin formato con extensión «ASM». 2." Ensamblarlo con el ensamblador de M~crochip

2." Ensamblarlo con el ensamblador de M~crochipllamado MPASM. Corregir errores si los hubiera volv~endoal paso 7< 3." Grabar el microcontrolador utilizando el sistema de desarrollo Micro'PlC Trainer y su software de grabación PICME-TR. 4.' Probar la solución utilizando los periféricos contenidos en el MicroJPICTrainer.

los periféricos contenidos en el MicroJPICTrainer. Se explican a continuación detalladamente los tres
los periféricos contenidos en el MicroJPICTrainer. Se explican a continuación detalladamente los tres
los periféricos contenidos en el MicroJPICTrainer. Se explican a continuación detalladamente los tres

Se explican a continuación detalladamente los tres últimos pasos.

Utilización del ensamblador MPASM

El ensamblador MPASM es un programa de libre distribución que se puede obtener en la página web de Microchip, y que sirve para ensamblar ficheros con extensión ASM. Su aspecto se muestra en la Figura 1.15. Para desplazarse por los campos de la pantalla se usan los cursores y el tabulador. Los pasos pa- ra ensamblar un programa son:

- - ---
- - ---

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

15

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 1 5 Grabación y prueba de un programa en

Grabación y prueba de un programa en el Micro'PIC Trainer

El sistema de desarrollo Micro'PIC Trainer está ideado para grabar en el microcontrolador el pro- grama, una vez ensamblado y convertido en formato HEX, y probar posteriormente dicho progra- ma utilizando los periféricos de que dispone. Empezaremos nuestro acercamiento a la placa identificando las partes más importantes de la misma, tal y como se muestra en la Figura 1.16.

de la misma, tal y como se muestra en la Figura 1.16. Figura 1.16. Sistema de

16

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Antes de utilizar los periféricos arriba descritos hay que

Antes de utilizar los periféricos arriba descritos hay que grabar el programa en el PIC. Se reali- zarán los siguientes pasos:

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

17

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 1 7 Si vuelve al programa que acabamos de
NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC 1 7 Si vuelve al programa que acabamos de

Si vuelve al programa que acabamos de realizar y grabar, comprobará que las líneas de E/S han sido configuradas de modo que coincidan con los periféricos dispuestos en el Micro'PIC Ti-ainer. Para este primer programa sólo necesitamos dos interruptores y la barra de diodos LED, de mo- do que desconecte la pantalla LCD y el display de 7 segmentos abriendo sus jumpers correspon- dientes. Asegúrese de que los jumpers A/D de las líneas RA1-RA2 están en la posición Digital e introduz- ca ahora diferentes combinaciones para comprobar el funcionamientodel programa. Si éste no se com- porta como esperaba no es un fallo sintáctico, ya que los errores han sido corregidos hasta obtener un programa correctamente ensamblado. El fallo será semántico, es decir, deberá repasar el código fuente para comprobar en qué punto difieren el organigrama del programa en ensamblador y corregirlo.

el organigrama del programa en ensamblador y corregirlo. Figura 1.17. Aspecto del programa de grabación PICME-TR.
el organigrama del programa en ensamblador y corregirlo. Figura 1.17. Aspecto del programa de grabación PICME-TR.

18

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES PRESENTACIÓN DE LOS SENSORES ANALÓGICOS MÁS UTILIZADOS

PRESENTACIÓN DE LOS SENSORES ANALÓGICOS MÁS UTILIZADOS

Aunque el PIC 16F84 sirve para realizar un sinfín de aplicaciones comerciales y su aprendizaje es muy didáctico y sencillo, existen ciertas aplicaciones muy comunes para las cuales este PIC no sir- ve. Estamos hablando de aquellas que requieren la utilización de censores analógicos. Vamos a p're- sentar en este apartado dos sensores que, aunque muy utilizados en diversos aparatos que maneja- mos a diario, no eran soportados directamente por el PIC 16F84.Los nuevos PIC 16F87x7al disponer derconversor A/D, pueden usarlos cómodamente.

disponer derconversor A/D, pueden usarlos cómodamente. El sensor de luminosidad: LDR Un sensor de luminosidad
disponer derconversor A/D, pueden usarlos cómodamente. El sensor de luminosidad: LDR Un sensor de luminosidad

El sensor de luminosidad: LDR

Un sensor de luminosidad tipo LDR es un elemento cuya resistencia entre bornes varía en función de la luz que incide sobre su superficie. Así, cuando no existe luz presenta una resistencia infinita y su resistencia va decreciendo, hasta llegar a cero, según va aumentando la luz. Su uso puede ser interesante en todas aquellas aplicaciones en las cuales el hecho de existir más o menos luz determine cierto comportamiento del sistema. Por ejemplo, la iluminación de la entra- da a una vivienda, de una habitación o de un criadero de peces, puede regularse automáticamente de modo que se active una o varias bombillas con la detección de determinados niveles de luminosidad. Es un elemento sin polaridad y se puede encontrar con diferentes diámetros según el rango de va- lores de luminosidad que sea capaz de diferenciar. (Figura l.18.)

de luminosidad que sea capaz de diferenciar. (Figura l.18.) f Figura 1.18. Aspecto y circuito práctico

f

NECESIDAD Y APORTACIONES DE LOS NUEVOS PIC

19

A la derecha de la Figura 1.18 se muestra el esquema de conexionado al PIC. La tensión gene- rada según el grado de luminosidad se aplicará por una de las patitas analógicas del PIC 16F87x de- bidamente configurada, y será transformada en un valor digital para su tratamiento posterior. Cuan- do no exista luz, el voltaje de salida, VOUT,será 5 V y con luminosidad máxima O V.

El sensor de temperatura estándar: LM35

Otro sensor analógico ampliamente utilizado es el de temperatura. En el mercado existen muchos modelos de sensores de temperatura y su elección depende de diversos parámetros, como pueden ser el rango de temperaturas que sean capaces de admitir, la precisión necesaria, el coste, la resistencia que debe presentar a ciertas condiciones ambientales, etc. En la siguiente tabla se presentan los valores de algunos de estos sensores.

SENSOR

 

RANGO

INCREMENTO

PROPIEDADES

LM335A
LM335A

-40"C-1OOC

0,lO mV/"C

 

PRCl O0

-40"C-I5OC

OC-100W

Precisión debido a su comportamiento lineal Resistente.

100"-138,5
100"-138,5

W

PTl 00

PTl 00

-50" C - 500" C

100W -O"C

100W -O"C

Reducido tamaño y rápida respuesta.

PTC (Coeficiente de Temperatura positivo)

Diferentes

Baja resistencia a baja temperatura y aumenta rápidamente al superar la temperatura de referencia.

En circuitos de aviso. Protección contra sobretensiones y sobrecorrientes.

NTC (Coeficiente de Temperatura negativo)

D~ferentes

Alta resistencia a baja temperatura y al contrario.

Buena fiabilidad a bajo coste. Muy empleados en electrodomésticos.

Termopar tipo N

Termopar tipo N

-

50 C - 400" C

 

Altas temperaturas. Elevada vida útil. Espacios reducidos.

Uno de los sensores más utilizados es el LM35, también llamado estándar. Sus características son:

LM35, también llamado estándar. Sus características son: 1." Su tensión de salida VoUT es proporcional a

1." Su tensión de salida VoUT es proporcional a la temperatura en una proporción de 10 mV/"C.

a la temperatura en una proporción de 10 mV/"C. rango de funcionarnie to estd comprendido entre
a la temperatura en una proporción de 10 mV/"C. rango de funcionarnie to estd comprendido entre

rango de funcionarnie to estd comprendido entre 0"C y 100" C.

to estd comprendido entre 0" C y 100" C. ZPa Su 3.a Su tensión de funcionarn/

ZPaSu

3.a Su tensión de funcionarn/!nto V. esta entre 1-4 VDC y +30 VDC.

4."Su precisión es de 2 0,9"C.

En la Figura 1.19 se muestra el aspecto externo de un sensor de temperatura estándar. La pa- tita En la Figura 1.19 +Vs se debe conectar a la tensión positiva, comprendida entre +4 V +Vs se debe conectar a la tensión positiva, comprendida entre +4 V y +30 V. GND será co -

Figura 1.19. GND Aspecto de un LM3.5. La disposición de las patitas del sensor del

Figura 1.19.

Figura 1.19. GND Aspecto de un LM3.5. La disposición de las patitas del sensor del dibujo
Figura 1.19. GND Aspecto de un LM3.5. La disposición de las patitas del sensor del dibujo

GND

Aspecto de un LM3.5. La disposición de las patitas del sensor del dibujo se corresponde con un sensor cuya parte plana está orientada hacia arriba.

con un sensor cuya parte plana está orientada hacia arriba. nectada a O V y VoUT

nectada a O V y VoUTse conectará a la línea correspondiente del PIC. A éste llegará el voltaje proporcional a la temperatura captada, que será convertida en un valor binario para su posterior tratamiento.

Bajo la denominación de PIC16F87x se hace referencia a una subfamilia de microcontrolado- res PIC
Bajo la denominación de PIC16F87x se hace referencia a una subfamilia de microcontrolado- res PIC

Bajo la denominación de PIC16F87x se hace referencia a una subfamilia de microcontrolado- res PIC de la gama media, que se identifica por tener como memoria de programa una de tipo FLASH y una serie de recursos semejante a los modelos más potentes, como por ejemplo los PIC16C73/4, teniendo estos últimos el inconveniente de que su memoria de programa es de tipo EPROM. Dos de los cuatro modelos que componen esta subfamilia están encapsulados con 28 patitas (PIC16F873/6),mientras que los otros dos tienen 40 patitas (PIC 16F874/7). Con la intención de se-

guir potenciando la línea con memoria FLASH, Microchip también comercializa los microcontro- ladores PIC 16F62x, que con un precio «rompedor» mantiene el encapsulado de 18 patitas, aumen- tando considerablemente los recursos internos en comparación con el PIC16F84. Como se mostró en el capítulo anterior en la tabla de la Figura 1.5, las principales diferencias en- tre los PIC 16F87xcon 28 patitas y los de 40 se concentran especialmente en el número de líneas de E/S disponibles, pero a continuación se citan las tres diferencias más relevantes:

continuación se citan las tres diferencias más relevantes: Con la intención de ir acostumbrando al lector
continuación se citan las tres diferencias más relevantes: Con la intención de ir acostumbrando al lector

Con la intención de ir acostumbrando al lector a conocer los recursos de los PIC16F87x se re- sumen seguidamente. (Figura 2.1.)

de ir acostumbrando al lector a conocer los recursos de los PIC16F87x se re- sumen seguidamente.

22

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES F i g u r a 2 . 1 . Tabla

Figura 2.1.

Tabla de los principales recursos de los rnicrocontroladores PIC16F87x

2.2. PROCESADOR RISC CON ARQUITECTURA HARVARD

Esta arquitectura aplicada por Microchip en sus microcontroladores se caracteriza por la indepen- dencia entre la memoria de código y la de datos. Así, tanto la capacidad como el tamaño de los bu- ses de cada memoria se adaptan estrictamente a las necesidades del diseño, facilitando el trabajo en paralelo de las dos memorias, lo que permite obtener altas cotas de rendimiento. La filosofía RISC se hace patente en el reducido número de instrucciones que forman su repertorio. Sólo consta de 35 instrucciones, que se ejecutan en un ciclo de instrucción, equivalente a cuatro períodos de reloj, ex- cepto las de salto que necesitan dos ciclos. (Figura 2.2.) Una primera aproximación a la arquitectura interna de los PIC16F87x se muestra en la Figura 2.3. Debe tenerse en cuenta que la mayor diferencia entre los modelos de 40 patitas y los de 28 reside en el número de Puertas de E/S, que en el primer caso asciende a 5 y en el segundo a 3.

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

23

DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 2 3 F i g u r a 2 .

Figura 2.2.

Los buses para instrucciones y datos son totalmente independientes y se ajustan a las necesi- dades de cada memoria, permitiendo el acceso simultáneo.

1
1

Obsérvese en la Figura 2.3 que la memoria de código está direccionada por el PC (Contador de Programa) en conexión con la Pila de 8 niveles. La memoria de datos RAM contiene el Banco de Registros Específicos y el Banco de los Registros de Propósito General y transfiere información bi- direccional por el bus de datos de 8 líneas que interconecta todos los elementos. Finalmente. el Ca- mino de Datos está formado por una ALU-~~8 bits que trabaja conjuntamente con el Registro de Trabajo W.

que trabaja conjuntamente con el Registro de Trabajo W. Direccionamiento h Dirección "I Datos 11 1
Direccionamiento h Dirección "I Datos 11 1 1 I I 1 I RECURSOS 1 i
Direccionamiento h
Dirección
"I Datos
11 1
1
I
I
1
I
RECURSOS 1
i INTERNOS
I
1 I 1 I
1
I
1
I
1
1

11 11 1

I I 1 I RECURSOS 1 i INTERNOS I 1 I 1 I 1 11 11

24

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

En el esquema de la Figura 2.4 se presenta con más detalle la arquitectura correspondiente a los modelos PIC 16F874/7 de 40 patitas. Los otros dos modelos de la subfamilia tienen idéntica arqui- tectura, pero carecen de las puertas D y E, así como de las funciones que éstas soportan.

D y E, así como de las funciones que éstas soportan. PUERTA A 13 8 MEMORIA

PUERTA A

13 8 MEMORIA DE có~lco (FLASH) PILA8 NIVELES MEMORIA DE DE 13 BlTS DATOS -
13
8
MEMORIA DE
có~lco
(FLASH)
PILA8
NIVELES
MEMORIA DE
DE 13 BlTS
DATOS
- (SRAM)
%
PUERTA B
MEMORIA DE DE 13 BlTS DATOS - (SRAM) % PUERTA B RCl/Tl OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA
RCl/Tl OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
RCl/Tl OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

RCO/Tl OSO/Tl CKI

TEMPORIZADOR DE ' 1 TEMPORIZADOR DE INICIO OSC2/CLKOUT ' i BROWN-OUT , DEPURACION t EN
TEMPORIZADOR DE
'
1
TEMPORIZADOR
DE INICIO
OSC2/CLKOUT
'
i
BROWN-OUT
,
DEPURACION
t
EN CIRCUITO
I
PUERTA E
TIMERO
CONVERSOR ND
PUERTA SERIE
EEPROM
CCP2
S~NCRONA
USAR1
L

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

25

DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 2 5 La memoria FLASH, en la que se graba

La memoria FLASH, en la que se graba el programa de aplicación en los PIC16F87x, puede tener una capacidad de 4 K u 8 K palabras de 14 bits cada una. Dicha memoria está dividida en páginas de 2 K palabras y está direccionada con el PC, que tiene un tamaño de 13 bits. La Pila, que tiene 8 niveles de profundidad, es transparente para el usuario, es decir, funciona automáticamente y no dis- pone de instrucciones para guardar o sacar de ella información. Con la instrucción CALL y con las interrupciones el valor del PC se salva en el nivel superior. Con las instrucciones RETURN, RET- FIE y RETLW el valor contenido en el nivel superior de la Pila se carga en el PC. Al poseer la Pila sólo 8 niveles le corresponde al programador preocuparse por los anidamientos en las subrutinas pa- ra no sobrepasar dicho valor. El vector de Reset ocupa la dirección OOOOh y el vector de Interrup- ción la 0004h, igual que en el PIC16F84. (Figura 2.5.)

MEMORIA DE CÓDIGO

OOOOh VECTOR DE RESET 0004h VECTOR DE INTERRUPCI~N o 0005h PÁGINA O 2 K 07FFh
OOOOh
VECTOR DE RESET
0004h
VECTOR DE INTERRUPCI~N
o
0005h
PÁGINA O
2
K
07FFh
NIVEL 1
0800h
r
I
PÁCINA 1
I
2 K
1
OFFFh
1OOOh
* PÁGINA 2
2
K
17FFh
1800h
NIVEL 8
r
12
o
* PÁGINA 3
PILA LlFO
2 K
1FFFh
L

13

O

* Sólo implementadas en los modelos de 8 K

26

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

2.4. ORGANIZACIÓNDE LA MEMORIA DE DATOS RAM

La memoria de datos tiene posiciones implementadas en RAM y otras en EEPROM. En la sección RAM, se alojan los registros operativos fundamentales en el funcionamiento del procesador y en el manejo de todos sus periféricos, además de registros que el programador puede usar para informa- ción de trabajo propia de la aplicación. Más adelante, se estudiará la memoria EEPROM para guar- dar datos de forma no volátil, a la que se considera como un dispositivo especial. La RAM estática consta de 4 bancos con 128 bytes cada uno. En las posiciones iniciales de cada banco se ubican los Registros Específicos que gobiernan al procesador y sus recursos. Dos modelos de PIC16F87x tienen 192 bytes de RAM y los otros dos 368 bytes. Los modelos de menor capacidad no tienen implementadas físicamente algunas posiciones.'La Figura 2.6 presenta los cuatro bancos de la RAM, indicando en las primeras posiciones de cada uno los nombres de los registros que contienen. En las Figuras 2.6 y 2.7 las posiciones con trama oscura no están implementadas físicamente y siempre se leen como O. Los registros específicos marcados con la nota (1) no se hallan implemen- tados en los PIC de 28 patitas. Para seleccionar el banco al que se desea acceder en la RAM se emplean los bits 6 y 5 del Re- gistro de Estado, denominados RP1 y RPO respectivamente, según el código siguiente:

RP1 y RPO respectivamente, según el código siguiente: Para manipular adecuadamente los elementos internos de los

Para manipular adecuadamente los elementos internos de los PIC hay que conocer la misión de los bits de los Registros Específicos.

la misión de los bits de los Registros Específicos. 2.4.1. Registros específicos para el control de

2.4.1. Registros específicos para el control de la memoria de programa

Los 13 bits contenidos en el PC, que direccionan la memoria de código, están guardados en dos re- gistros específicos. El registro PCL guarda los 8 bits de menos peso y se puede leer y escribir. Los bits <12:8> del PC se alojan en el registro PCH, que al no poder ser leído ni escrito, se accede a él a través del PCLATH. Las instrucciones de salto CALL y GOTO sólo proporcionan 11 bits de la dirección a saltar. Es- to limita el salto dentro de cada banco de 2 K. Cuando se desea salir del banco actual hay que pro- gramar correctamente los bits PCLATH <4:3> que seleccionan al banco. Es labor del programador modificar el valor de dichos bits en las instrucciones CALL Y GOTO. (Figura 2.8.)

2.4.2. Control de la memoria de datos

Para direccionar la memoria RAM de datos estructurada en 4 bancos de 128 bytes cada uno existen dos modos diferentes:

Para direccionar la memoria RAM de datos estructurada en 4 bancos de 128 bytes cada uno

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

27

DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 2 7 Banco O Banco 1 Banco 2 180h

Banco O

Banco 1

Banco 2

180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh
180h
181h
182h
183h
184h
185h
186h
187h
188h
189h
18Ah
18Bh
18Ch
18Dh
18Eh
18Fh
190h
191h
192h
193h
194h
195h
196h
197h
198h
199h
19Ah
19Bh
19Ch
19Dh
19Eh
19Fh
Registros de
1AOh
Propósito
General
80 Bytes
1EFh
Mapeados con
1FOh
70h-7Fh
1FFh
Banco 3

28

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

OOh 01h 02h 03h 04h 05h 06h 07h 08h 09h OAh OBh OCh ODh OEh
OOh
01h
02h
03h
04h
05h
06h
07h
08h
09h
OAh
OBh
OCh
ODh
OEh
OFh
10h
Ilh
12h
13h
14h
15h
CCPR1H
16h
CCP1CON
17h
RCSTA
18h
TXREG
19h
RCREG
1Ah
CCPRZL
1Bh
CCPR2H
1Ch
CCP2CON
ADRESH
ADCONO
Registros de
Propósito
General
96 Bytes
7Fh
Banco O
80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
91h
92h
93h
94h
95h
96h
97h
98h
99h
9Ah
9Bh
9Ch
9Dh
9Eh
9Fh
Registros de
AOh
Propósito
General
96 Bytes
FFh
Banco 1
1OOh lOlh 102h 103h 104h 105h 106h 107h 108h 109h 10Ah lOBh 10Ch 1ODh 1OEh
1OOh
lOlh
102h
103h
104h
105h
106h
107h
108h
109h
10Ah
lOBh
10Ch
1ODh
1OEh
1OFh
110h
107h 108h 109h 10Ah lOBh 10Ch 1ODh 1OEh 1OFh 110h 19Fh 1 AOh 1FFh Banco 2

19Fh

1AOh

1FFh

Banco 2

Banco 3

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

29

-

' 12
'
12

PCH

PCL

Y REPERTORIO DE INSTRUCCIONES 2 9 - ' 12 PCH PCL 8 O L- t PCLATH
8 O L- t PCLATH <4-O> .
8
O
L-
t PCLATH <4-O> .

PCL ANTERIOR + x

PCLATH

8 O L- t PCLATH <4-O> . PCL ANTERIOR + x PCLATH 12 11 PCH 10

12

11

PCH

10

T

PCL

-

. PCL ANTERIOR + x PCLATH 12 11 PCH 10 T PCL - O , f

O

, f PCLATH <4:3> DESDEEL CÓDIGOOP
,
f
PCLATH <4:3>
DESDEEL
CÓDIGOOP

Figura 2.8.

DESDEEL CÓDIGOOP F i g u r a 2 . 8 . PCLATH En la figura

PCLATH

En la figura superior se muestra cómo se carga el PC. Abajo se muestra la carga del PC con las instrucciones CALL y GOTO.

En el modo de direccionamientodirecto, los bits RP1 y RPOdel Registro de Estado <6:5> se en- cargan de seleccionar el banco, mientras que la dirección dentro del banco la determinan 7 bits pro- cedentes del código OP de la instrucción. Para el direccionamientoindirecto se usa el registro FSR, en el que sus 7 bits de menos peso señalan la dirección, y el banco lo determina el bit de más peso de FSR concatenado con el bit IRP del Registro de Estado <7>. (Figura 2.9.)

2.5. DIAGRAMA DE CONEXIONADO

En la Figura 2.10 se muestra el diagrama de distribución y asignación de las 28 o 40 patitas de los encapsulados PDIP (doble hilera de patitas de plástico) de los PIC16F87x. Los encapsulados con menos patitas carecen de las puertas D y E. La Figura 2.11 muestra algunas de las posibles opciones de encapsulado que utiliza Microchip para proteger a sus microcontroladores. La asignación de funciones para las diferentes patitas es la siguiente:

30

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

Figura 2.9.

DIRECCIONAMIENTO DlRECTO

DIRECCiONAMIENTOINDIRECTO

2.9. DIRECCIONAMIENTO DlRECTO DIRECCiONAMIENTO INDIRECTO I I BANCO O BANCO 1 SELECCIÓNDE BANCO BANCO 2 BANCO
I I BANCO O BANCO 1 SELECCIÓNDE BANCO
I
I
BANCO O
BANCO 1
SELECCIÓNDE
BANCO

BANCO 2

BANCO 3

I BANCO O BANCO 1 SELECCIÓNDE BANCO BANCO 2 BANCO 3 Formas de seleccionar el banco

Formas de seleccionar el banco y la dirección de la memoria RAM en los direccionamientosdi- recto e indirecto.

3 Formas de seleccionar el banco y la dirección de la memoria RAM en los direccionamientosdi-

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

31

DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 31 Figura 2.10. Diagrama de asignación y conexionado de
DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 31 Figura 2.10. Diagrama de asignación y conexionado de

Figura 2.10.

Diagrama de asignación y conexionado de las patitas de los dos posibles encapsulados en los modelos de la subfamilia PIC16F87x.

asignación y conexionado de las patitas de los dos posibles encapsulados en los modelos de la

32

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Los PIC16F87x al carecer de las Puertas D y E tienen
«PIC». DISEÑO PRÁCTICO DE APLICACIONES Los PIC16F87x al carecer de las Puertas D y E tienen

Los PIC16F87x al carecer de las Puertas D y E tienen 22 líneas de E/S (6 de la Puerta A, 8 de la B y 8 de la C). Además, no disponen de puerta paralela esclava y sólo conectan al conversor A/D mediante 5 canales.

8 de la C). Además, no disponen de puerta paralela esclava y sólo conectan al conversor
8 de la C). Además, no disponen de puerta paralela esclava y sólo conectan al conversor

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

33

2.6. REPERTORIO DE INSTRUCCIONES

Los mismos formatos, iguales modos de direccionamiento y las mismas 35 instrucciones que te- nía el PIC16F84 sirven para todos los modelos PIC16F87x, por lo que no vamos a volver a repe- tirlos. No obstante, en los nuevos PIC, al contener más recursos, existen nuevos Registros Específicos de control cuyos bits se deberán escribir o leer para su gobierno. Dichos recursos y sus registros aso- ciados serán el tema de los próximos capítulos. En la Figura 2.12 se ofrece un cuadro resumido del repertorio de instrucciones.

MlCROCHlP PACKAGE OPTIONS

del repertorio de instrucciones. MlCROCHlP PACKAGE OPTIONS lSLead CERDlP "JW" &Lead PDlP "p Pgiead

lSLead CERDlP

"JW"

MlCROCHlP PACKAGE OPTIONS lSLead CERDlP "JW" &Lead PDlP "p Pgiead PDiP "'P" PB

&Lead PDlP

"p

Pgiead PDiP

"'P"

PB &S$OC LBIDID CHIP CAWRIER {OoPICCj

PB &S$OC LBIDID CHIP CAWRIER {OoPICCj 32-Lead PLCC "1" P&Lead CEROiP "IW"
PB &S$OC LBIDID CHIP CAWRIER {OoPICCj 32-Lead PLCC "1" P&Lead CEROiP "IW"

32-Lead PLCC

"1"

LBIDID CHIP CAWRIER {OoPICCj 32-Lead PLCC "1" P&Lead CEROiP "IW" 14-lead PDIP "P"

P&Lead CEROiP

"IW"

14-lead PDIP

"P"

P&Lead CEROiP "IW" 14-lead PDIP "P" 28Cead Skrnny PDIP "SP" 44-Leed PLCC "L"

28Cead Skrnny PDIP "SP"

44-Leed PLCC

"L"

28Cead Skrnny PDIP "SP" 44-Leed PLCC "L" 4O.Lead CERDlP *IW" 68-le& CERQUAD "CL"

4O.Lead CERDlP

*IW"

44-Leed PLCC "L" 4O.Lead CERDlP *IW" 68-le& CERQUAD "CL" 18-Lead PDIP "P 40-Lead

68-le& CERQUAD

"CL"

4O.Lead CERDlP *IW" 68-le& CERQUAD "CL" 18-Lead PDIP "P 40-Lead PDIP "'P" 6aLead

18-Lead PDIP

"P

68-le& CERQUAD "CL" 18-Lead PDIP "P 40-Lead PDIP "'P" 6aLead Shriflk PDIP "SP

40-Lead PDIP

"'P"

18-Lead PDIP "P 40-Lead PDIP "'P" 6aLead Shriflk PDIP "SP 6S1ead PLCC "L"

6aLead ShriflkPDIP

"SP

6S1ead PLCC

"L"

6aLead Shriflk PDIP "SP 6S1ead PLCC "L" 8.4-Cead PCCC "L" F i g u r a

8.4-CeadPCCC

"L"

Figura 2.11.

Opciones de encapsulados para los microcontroladores PIC. (Cortesía de Microchip.)

34

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Figura 2.12. Principales características de las 35

Figura 2.12.

Principales características de las 35 instrucciones que componen el repertorio de los

PICl6F87x.

\

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO'DE INSTRUCCIONES

35

DE CONEXIONES Y REPERTORIO'DE INSTRUCCIONES 3 5 EL PRIMER PROGRAMA CON LOS PIC16F87X Tras el repaso

EL PRIMER PROGRAMA CON LOS PIC16F87X

Tras el repaso a la programación de microcontroladores PIC llevado a cabo en el tema anterior, va- mos a repetir el mismo ejercicio pero esta vez con los PIC16F87x y, más concretamente, con el PIC16F873. Puesto que el enunciado, aparte de trabajar con un nuevo PIC, es el mismo, no vamos a repetirlo. Igualmente ocurre con el organigrama. El esquema eléctrico, sin embargo, presenta al- gunas diferencias.

Esquema eléctrico

embargo, presenta al- gunas diferencias. Esquema eléctrico Como puede observarse en la Figura 2.13, el modo

Como puede observarse en la Figura 2.13, el modo de representar los periféricos de entradalsali- da no varía más que en el lugar que ocupan, ya que la distribución de las patitas del PIC ha cam- biado. Los condensadores que acompañan al cristal de cuarzo ahora son de 15 pF y no de 27 pF como eran en el PIC16F84 para trabajar a la misma frecuencia. Por último, ahora hay 2 patitas Vss envezde 1.

Por último, ahora hay 2 patitas Vss envezde 1. Programa comentado , Se presenta a continuación

Programa comentado

,

Se presenta a continuación la resolución del ejercicio propuesto utilizando un PIC16F873. De- bido a que las funciones de este PIC son mayores, sus patitas tienen asignadas varias tareas, y la discriminación entre dichas tareas es la diferencia más notable con respecto al ejercicio del te- ma anterior. Así, además de configurar las líneas de la Puerta A como de entrada o salida, hay que decir, en el caso de que vayan a ser entradas, si dichas entradas serán analógicas o digitales. En el tema correspondiente al Conversor Analógico/Digital se verán todas las combinaciones po- sibles. Otra cosa a tener en cuenta es que el número de bancos de la memoria de datos RAM ha au- mentado a cuatro. Esto quiere decir que para movernos por ellos necesitamos estar pendientes no só- lo del bit 5 del registro Estado <RPO>, sino del 5 y del 6 <RPl:RPO>. En el programa se ha inclui- do este hecho aunque en este caso no era necesario por partir de los dos bits a O al comienzo del programa. Se ha incluido un * en todas las líneas que se han añadido o han variado.

los dos bits a O al comienzo del programa. Se ha incluido un * en todas

36

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES RESET i( Figura 2.13. Esquema eléctrico del ejercicio
«PIC». DISEÑO PRÁCTICO DE APLICACIONES RESET i( Figura 2.13. Esquema eléctrico del ejercicio

RESET i(

«PIC». DISEÑO PRÁCTICO DE APLICACIONES RESET i( Figura 2.13. Esquema eléctrico del ejercicio propuesto

Figura 2.13.

Esquema eléctrico del ejercicio propuesto para el PIC16F873.

LED

PRÁCTICO DE APLICACIONES RESET i( Figura 2.13. Esquema eléctrico del ejercicio propuesto para el PIC16F873. LED

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

37

DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 3 7 Prueba del programa: el ZOCF87x Para la

Prueba del programa: el ZOCF87x

Para la prueba de este programa, deberemos seguir los pasos vistos en el tema anterior en cuanto a edición, ensamblado, etc., teniendo en cuenta que los campos que antes eran rellenados con PICI 6F84 ahora lo son con PIC16F873. Una vez obtenido el fichero HEX podemos utilizar el sistema de desarrollo Micro'PIC Trainer para la grabación y uso de periféricos, ya que como se vio éste dispone de un zócalo de 28 patitas donde insertar los PIC 16F873 y PIC 16F876. Para ello, se utiliza el ZOCF87x, que adapta el encapsulado estrecho de estos PICs al ancho del zócalo de la placa. En la fotografía de la Figura 2.14 puede observarse dicho zócalo de adaptación colocado sobre el Micro'PlC Trainer. Obsérvese además que el zócalo para los PIC de 18 patitas (junto al anterior) permanece vacío, ya que no pueden existir dos PICs en la placa al mismo tiempo. Los pasos a seguir para la grabación de un PIC de 28 patitas desde el Micro'PIC Trainer son si- milares a los ya descritos para un PIC16F84 y se resumen en los siguientes:

38

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Figura 2.14. Fotografía que muestra la colocación del

Figura 2.14.

Fotografía que muestra la colocación del zócalo ZOC87x sobre el Micro'PIC Trainer. (Corte- sía de Microsystems Engineering.)

muestra la colocación del zócalo ZOC87x sobre el Micro'PIC Trainer. (Corte- sía de Microsystems Engineering.)

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

39

DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES 39 \ ACTUADORES PARA DIVERSAS APLICACIONES: LOS MOTORES Unos

\

ACTUADORES PARA DIVERSAS APLICACIONES: LOS MOTORES

Unos de los actuadores más vistosos y versátiles para el trabajo con PICs son los motores. Los mo- tores pueden mover una cinta transportadora; un motor puede ser lo que suba o baje una polea con un objeto en su extremo; puede abrir o cerrar una puerta e incluso posicionar un brazo articulado. En este apartado se van a ver dos tipos de motores:

En este apartado se van a ver dos tipos de motores: Diferencias entre los motores DC

Diferencias entre los motores DC y PAP

Las características más destacables de los motores DC se resumen en:

1 Buen par de fue, y esfabilida 2;' Baja inercia en arranque y pa 3,'
1
Buen par de fue,
y esfabilida
2;' Baja inercia en arranque y pa
3,' Pesoy tamafiorwjucidoe;.
4.'
Fdclfm@n@@.
L

Esto les hace ideales en aplicaciones en que se precisa coordinar la velocidad de varios motores al mismo tiempo, y/o en que el motor tiene que responder instantáneamente a las señales de control para un encendido/apagado y cambio de sentido. Su peso y tamaño reducidos les posibilita además para formar parte de sistemas móviles sin incrementar el peso ya existente. Los motores PAP a su vez se caracterizan por:

. 1,' Su movimiento es par incr&&ts'de &ngYb,&&'&ehbjy exactm.< 2." Maycr
. 1,'
Su movimiento es par incr&&ts'de
&ngYb,&&'&ehbjy exactm.<
2." Maycr simplicidad en
la lb@& de control.
:
'
*
S
3.' Su manejo d8ptande del mdelo,
.
.t
4.'
SU eje no recorre todas /aslposicimimpdsbtes. '
.
-
+

El funcionamiento de un motor PAP se logra aplicando en sus bornes un conjunto de señales de control especificadas por el fabricante, por lo que un programa realizado para un motor determina- do deberá modificarse si el motor es cambiado.

40

MICROCONTROLADORES «PIC». DISENO PRÁCTICO DE APLICACIONES

Sin embargo, el que sea controlado por ese conjunto de señales tiene la ventaja de que en todo momento se conoce su ángulo de giro exacto, número de vueltas dadas, etc., sin necesidad de sen- sores externos tipo encoder, lo que le hace propicio para aplicaciones en que se necesita gran preci- sión de movimiento. El modelo se elegirá en función de la precisión del ángulo de giro que se ne- cesite.

Motores DC

Los motores DC internamente están compuestos por un imán (estator) que crea un campo magnéti- co en el cual se encuentra una bobina o electroimán arrollada en un eje giratorio (rotor). La tensión de alimentación aplicada al motor hace que se generen unas fuerzas de atracción y repulsión entre el campo magnético del estator y del rotor, lo que hace que el motor se mantenga en movimiento. En la práctica, el control sobre dicho motor se realiza con la aplicación de tensión en los dos hi- los que salen al exterior: con un hilo se determina el encendido/apagado del motor y con el otro el sentido de giro. Como la tensión e intensidad que proporcionan las líneas del PIC no son suficientes para exci- tar un motor DC, se hace necesaria la utilización de algún circuito integrado específico. Uno muy utilizado es el L293B, que consta de 4 drivers. La Figura 2.16 muestra la mitad de es- te circuito integrado con dos de sus cuatro drivers.

Figura 2.15.

integrado con dos de sus cuatro drivers. Figura 2.15. Fotografia de un servomotor de corriente continua

Fotografia de un servomotor de corriente continua modelo S3003 de Futaba.

un servomotor de corriente continua modelo S3003 de Futaba. Figura 2.16. Mitad del circuito integrado L293B

ARQUITECTURA, DIAGRAMA DE CONEXIONES Y REPERTORIO DE INSTRUCCIONES

41

Cada pareja de drivers puede ser usada para el control de un motor DC. El significado de las pa- titas del esquema es el siguiente:

significado de las pa- titas del esquema es el siguiente: El funcionamiento con este tipo de
significado de las pa- titas del esquema es el siguiente: El funcionamiento con este tipo de

El funcionamiento con este tipo de motores es sencillo: a través de una patita del PIC (debida- mente configurada como salida habilitará el motor, y una segunda patita marcará el sentido de gi- ro con su señal. Dependiendo delkv ltaje suministrado variará la velocidad del motor. Dicha veloci- dad también puede ser controlada a través del PIC con las técnicas conocidas como PWM y PFM. En la PWM (Modulación de Anchura de Pulsos) se aplican al motor (en su línea de marchalpa- ro) pulsos de amplitud variable. En la PFM (Modulación de Frecuencia de Pulsos) se mantiene la anchura de impulsos pero varía la frecuencia de los mismos.

Motores PAP

Los motores PAP, al igual que los DC, se basan en las fuerzas electromagnéticas creadas entre es- tator y rotor, pero ambos constan de más de dos polos. Esto hace que se necesiten conjuntos de im- pulsos para generar unas fuerzas que los hagan girar, y que este giro no sea continuo sino de un cier- to número de grados. En la práctica también se usa para su control el circuito integrado L293B, conectado tal y como muestra la Figura 2.18.

conectado tal y como muestra la Figura 2 . 1 8 . Figura 2.17. Fotografia de

42

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

«PIC». DISEÑO PRÁCTICO DE APLICACIONES Figura 2.18. Esquema completo del circuito L293B con un

Figura 2.18.

Esquema completo del circuito L293B con un motor PAP conectado.

En este caso, se necesita el circuito L293B completo para controlar un motor PAP. La forma de actuar sobre él sería introducir por las líneas A, B, C y D (debidamente conectadas a las líneas del PIC) la secuencia marcada por el fabricante que podría ser, por ejemplo, como la mostrada en la Fi- gura 2.19. Entre paso y paso se debe introducir un pequeño retardo para dar tiempo al motor a realizar el giro. Variando la duración de dicho retardo se puede modificar la velocidad del motor.

BOBINAS

BOBINAS

se puede modificar la velocidad del motor. BOBINAS BOBINAS SENTIDO HORARIO SENTIDO ANTIHORARIO Figura 2.19.

SENTIDO HORARIO

SENTIDO ANTIHORARIO

3.1. LOS REGISTROS DE CONTROL Para gobernar el fdncionamiento de los recursos de los PIC

3.1. LOS REGISTROS DE CONTROL

3.1. LOS REGISTROS DE CONTROL Para gobernar el fdncionamiento de los recursos de los PIC existe

Para gobernar el fdncionamiento de los recursos de los PIC existe un conjunto de registros especí- ficos cuyos bits soportan el control de los mismos. Dichos registros están ubicados en las primeras posiciones de cada banco de la memoria de datos RAM y para aprovechar toda la potencia de los microcontroladores es necesario conocerlos. En las Figuras 2.6 y 2.7 del capítulo anterior se mos- traba el contenido de la memoria RAM de los PIC16F87x y la denominación y situación de los re- gistros específicos junto a los de propósito general. Las posiciones OOh, 80h, lOOh y 180h no son re- gistros físicos sino direcciones indirectas. Este tema, en su primera parte, está dedicado a la exposición de la misión de los bits de los prin- cipales registros de control, algunos de ellos similares a los del PIC16F84. Las diferencias entre los registros de los PIC16F87x de 28 y 40 patitas se debe a carecer los primeros de las puertas D y E, con lo que no disponen de los registros PORTD, PORTE, TRISD y TRISE. Tampoco tienen los re- gistros que controlan la puerta paralela esclava que sólo está implementada en los modelos de 40 pa- titas.

3.2. REGISTRO DE ESTADO (STATUS)

Sin duda éste es el registro más usado de todos, pues sus bits están destinados a controlar las fun- ciones vitales del procesador.Por este motivo, está duplicado en las cuartas posiciones de cada ban- co (03h, 83h, 103h y 183h).(Figura 3.2.)

Figura 3.1.

REGISTRO DE ESTADO

(Figura 3.2.) F i g u r a 3 . 1 . REGISTRO DE ESTADO 7

7

-'

\ 1
\
1
(Figura 3.2.) F i g u r a 3 . 1 . REGISTRO DE ESTADO 7

Estructura interna del Registro de Estado.

44

MICROCONTROLADORES «PIC». DISEÑO PRÁCTICO DE APLICACIONES

Los tres bits de menos peso son los señalizadores de ciertas condiciones en las operaciones 1ó- gico-aritméticas.

condiciones en las operaciones 1ó- gico-aritméticas. Los señalizadores PD# y TO# son activos por nivel bajo
condiciones en las operaciones 1ó- gico-aritméticas. Los señalizadores PD# y TO# son activos por nivel bajo

Los señalizadores PD# y TO# son activos por nivel bajo (#) y sirven para indicar la causa que ha provocado la reinicialización del procesador.

causa que ha provocado la reinicialización del procesador. Los señalizadores PD# Y TO# son muy importantes

Los señalizadores PD# Y TO# son muy importantes en el proceso de Reset porque indican la causa que la ha originado y permiten actuar en consecuencia. No son escribibles. Los PIC se resetean al conectar la alimentación (POR: Power-on Reset). También se resetean

cuando la tensión de alimentación baja de 4 V (BOR: Brown-out Reset), aunque esta función es fac- tible desactivarla poniendo a O el bit BODEN, presente en la palabra de configuración. Tanto en el Reset POR como en el BOR los bits PD# y TO# toman el valor 1, mientras que en los demás casos depende de la causa que ha provocado el Reset.

Finalmente, los tres bits de más peso del Registro de Estado se emplean para seleccionar el ban- co de la RAM al que se desea acceder. En el direccionamiento directo, como se vio en el capítulo anterior, se utilizan los bits RPl y RPO de acuerdo con la siguiente codificación.

/

RPl y RPO de acuerdo con la siguiente codificación. / El bit IRP se usa concatenado

El bit IRP se usa concatenado con el bit de más peso del registro FSR para elegir el banco de RAM en el direccionamiento indirecto.

E Seleccidn del banco de RAM en dir&cimdo inqimto, , O:Banco O y 1 (OOh-m
E Seleccidn del banco de RAM en dir&cimdo inqimto, ,
O:Banco O y 1 (OOh-m ).
1: Banco 2 y 3 (100h-IFFh).

PRINCIPALES REGISTROS DE CONTROL