INFORME DE: PROYECTO TERMINAL JINGENIERIA …

82
INFORME DE: PROYECTO TERMINAL 11 JINGENIERIA ELECTRONICA EN COMUNICACIONES Tema: JSISTEMA TRANSMIIS MENSAJES INALAMB PROFR. DONAC 92224925 Gonz#ez Rosas Alejandro 93320615 Rodriguez S;erratos tmardo 94218918 vera uarcia PaMo 92323992 / Alumnos y Matrículas: Barrera Estevez AleJandro 30 de Marzo de 1999 -

Transcript of INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Page 1: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

INFORME DE: PROYECTO TERMINAL 11 JINGENIERIA ELECTRONICA E N

COMUNICACIONES Tema:

JSISTEMA TRANSMIIS MENSAJES INALAMB

PROFR. DONAC

92224925 Gonz#ez R o s a s Alejandro 93320615 Rodriguez S;erratos tmardo 94218918 vera uarcia PaMo 92323992

/ Alumnos y Matrículas: Barrera Estevez AleJandro

30 de Marzo de 1999 -

Page 2: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

INDICE GENERAL

Piigina

INTRODUCCION Y PRESENTACION ..................................................... 2

LISTA DE MATERLAL ............................................................................ 5

DESARROLLO DEL P R O m C T O

CIRCUITO DEL TRANSMISOR ............................................................... 6

PROGRAMA DEL TRANSMISOR ............................................................ 9

CIRCUITO DEL RECEPTOR ................................................................. 13

PROGRAMA DEL RECEPTOR ............................................................... 14

MODULOS TXM-418-A Y SILRX-418-A ................................................. 22

FOTOGRAFIAS DEL PROYECTO TERMINADO ...................................... 26

INTRODUCCIÓN A LOS PICS ................................................................ 3.

CONCLUSIONES GENERALES .............................................................. 82

Page 3: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

MARZO DE 1999

PROYECTO TERMmAL DE INGENIERIA ELECTRONICA 11

NOMBRE: “MENSAJES POR RADIOFARO” (SISTEMA DE TRANSMISION INALAMBRICA DE MENSAJES BASADO EN PIC)

I) INTRODUCCI~N: En estos tiempos de inverosímil desarrollo de los dispositivos electrónicos de

estado sólido, la necesidad de intercambio de información, pronta, segura y oportuna, ha surgido como una necesidad imperiosa y demandante. Diversas formas de llevar a cabo esta comunicación han aparecido, entre las que podemos mencionar Ias redes de computadoras de área local (LAN’s), de área amplia(WAN’S), la comunicación celular, por radiopaquetes, satelital, etc.. Una modalidad interesante de llevar a cabo algunas de tales formas de comunicación es mediante el empleo del aire como canal o medio físico de enlace. Es posible que tal medio no sea en algunos casos el más óptimo, sin embargo ofrece ventajas que en situaciones especiales no pueden ser despreciadas. La comunicación inalámbrica resulta ser entonces una muy viable opción para cubrir diversas necesidades de transferencia de información.

DESCRTPCION DEL PROYECTO:

En ocasiones, es muy Útil establecer comunicación entre dos estaciones o equipos (computadoras, impresoras, fax, etc.) sin usar cables, principalmente cuando el espacio fisico es reducido y/o de difícil acceso o cuando una red cableada no resulta ser la mejor opcián de comunicación cualquiera que sea su topoíogía(bus, anillo estrella, etc.). De esta forma se evitan desplazamientos fisicos innecesarios o simplemente se hace posible el enlace entre dos o más estaciones y el intercambio de información entre ellas que por otro medio no podria realizarse. Por otra parte, un sistema de enlace inalámbrico puede ser usado como “respaldo” de otro que se encuentra fisicamente cableado, principalmente cuando este último se interrumpe o deteriora. Generalmente, importantes empresas como los bancos, por ejemplo, cuentan con estos dos tipos de canales comunicación, asegurando la continuidad en la transferencia de la información y el cumplimiento con las necesidades de los usuarios en caso de emergencia por el deterioro o mal-funcionamiento de alguna de las dos formas de enlace mencionadas.

En esencia, las técnicas empleadas en los dos tipos de comunicación son similares, siendo la diferencia principal el tipo de canal o mediQ fisico que se emplea. Partiendo desde esta perspectiva, y utilizando los conocimientos en comunicaciones que se han adquirido, hemos pretendido realizar una aplicación de la transmisión de datos: se trata de un sistema de envío y recepción de mensajes inalámbrico, mismo que resultaría muy útil

2

Page 4: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

como equipo de señalización, emergencia o simplemente como transmisor-receptor de información, que bien puede emplearse en avisos publicitarios en algún almacén comercial. El sistema tiene la capacidad de cubrir distancias de hasta 200 metros, con una velocidad de transmisión de hasta 1 O Kbps a una frecuencia de 41 8 MHz (UHF). Además, el transmisor puede mandar 16 mensajes de longitud variable a cada una de hasta 32 unidades receptoras mismas que pueden contar con un despliegue de cristal líquido, por ejemplo, para visualizar la información. Estas características bien pueden llenar los requerimientos mínímos de comunicación de cualquier empresa ubicada en un edificio de regular tamaño.

Para lograr llevar a cabo nuestro proyecto, y tomando en cuenta que el desarrollo de un sistema basado en un microcontrolador puede resultar bastante oneroso, se busca una mejor opción, misma que fue encontrada en los integrados denominados PIC’S (las siglas vienen de su nombre en inglés: Programmable lnterrupt Controller), pues estos circuitos de relativamente reciente aparición, ofrecen una excelente alternativa como microcontroladores con la gran ventaja de ser más versátiles y en la mayoría de los casos, mucho más baratos que los típicos microprocesadores. Empleamos en la unidad transmisora el PIC 16LF84-04P de Motorola, y el PIC 16C55 en la receptora

Cabe señalar que la programación de un PIC puede realizarse en lenguaje ensamblador obedeciendo a una arquitectura RISC, es decir con un número de instrucciones más reducido que la de un clásico microprocesador (SOi88,280, etc.), aunque también puede llevarse a cabo en lenguajes de alto nivel como el lenguaje C. Más adelante se precisa en forma profiinda las características de un PIC, su funcionamiento y programación así como las posibilidades de aplicación de tales microcontroladores y sus diferencias con los clásicos microprocesadores.

El diagrama a bloques del transmisor y del receptor es el sigwiente:

MODULO TRANSMISOR

3

Page 5: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

MODULO RECEPTOR

Validación I de dirección

PUERTO C I I t

I I I I I I 1 A I

I PUERTO B

Todas las especificaciones de componentes y desarrollo del proyecto sera tema de las siguientes páginas. En esta breve descripción sólo se intenta presentar el trabajo y dar los mínimos detalles para conocerlo,

4

Page 6: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

11) LISTA DE MATERIAL

a) Módulo transmisor - 2 CI GD4049 (inversor) - 1 CI LM311 (comparador) - 1 CI MC14.5026 (codificador) - 1 CI PICl6LF84 (PIC microcontrolador) - - Radiometrix Co. de Inglaterra) - - - - - - - - 9 leds miniatura. -

un módulo radiotransmisor de UHF TXM-418 (fabricado por la empresa

1 cristql con tkecuencia de 4 MHz. 3 interruptores normalmente abiertos tipo miniatura. 3 capacitores de 33 pF 1 capacitor de 222 nF 8 resistencias de 10 KC2 1 resistencia de 1 KCI 1 capacitor de 100 pF

Tarjeta de circuito impreso, alambre, soldadura.

b) Módulo Receptor

1 decodificador MC 145027 1 dip-switch de 8 interruptores 1 CI PIC 16CS5 1 latch 74LS374 1 memoria EEPROM 2864 I despliegue de cristal líquido (LCD) AND491 1 módulo receptor SILRx-418-A (fabricado por Radiometrix Co. de Inglaterra) 1 cristal a 4 MHz. 2 capacitores cerámicos de 20nF 2 capacitores ceramicos de 33 pF 7 resistencias de 10 K 2 resistencias de 100 K 2 resistencias de 1 K Tarjeta para el circuito, alambre, soldadura

Se proporcionarán más adelante las características y especificaciones de los componentes que así lo requieren, como es el caso de los módulos UHF transmisor: TXM-418-A y receptor: SERX-418-A, así como todo 10 referente a los PIC’S mencionados (especificaciones, programación, etc.).

5

Page 7: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

111) PROCEDIMIENTO Y DESARROLLO DEL PROYECTO:

La unidad transmisora que se detallará más abajo, tiene la capacidad de controlar hasta 32 unidades receptoras vía enlace inalámbrico, cubriendo una distancia de hasta 200 metros. La transmisión por aire se lleva a cabo mediante el par transmisorheceptor de UHF llamados el TXM-4 18-A y SILRX-4 18-A respectívamente, cuyas características principales son expuestas en forma profunda, por separado, más adelante.

a) Transmitiendo mensajes

La circuitería para el transmisor es relativamente simple. El control es llevado a cabo por un PIC 16C54, programado para leer dos switchs conectados al puerto B de este vers, a los bits PB5 y PB6. El switch SWI es el “contador de direcciones”. Cuando el switch está cerrado, el PIC incrementa la entrada de direcciones del codificador M145026 hasta un máximo de 31. Otro incremento más, causa que el contador de direcciones “se regrese” a cero. La dirección identifica a una de 32 unidades receptoras.

Este circuito se presente enseguida:

Figura 3

6

Page 8: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

En forma similar, SW2 opera como “contador de datos” correspondiéndole el despliegue de mensaje. El valor máximo para el contador de datos es 15. De nuevo, cualquier incremento más causa que el contador de datos regrese a cero.

Los valores de datos y direcciones están en las salidas PBO y PB4 del puerto B y en el puerto A del PIC respectivamente. Estos valores son conectados a las correspondientes entradas del codificador M145026 y vía leds se indican los valores de ta dirección y datos del usuario. Es decir, se tienen 4 bits para indicar hasta 16 direcciones de datos diferentes para una misma dirección de unidad receptora (del O al I5 en binario), a los que le corresponden 4 leds. Se utilizan 5 bits para diferenciar hasta 32 direcciones para las unidades receptoras, como ya se mencionó anteriormente, y para visualizarlo se usan 5 leds. Los componentes pasivos alrededor del codificador se colocan a una frecuencia de reloj relativamente lenta de 8.53 Khz.

El switch SW3 es el switch transmisor. Cuando el switch está cerrado, la salida del IC pone e1 código de datos en el pin 15.La salida de datos se conecta a la entrada del módulo radio transmisorTXM-418-A vía el comparador 1C5(LM31 l), el cual provee un nivel lógico de 12v al transmisor. El código entonces es transmitido.

Varias opciones están disponibles en la eleccián de antena. La que hemos usado, cumple con los requerimientos y recomendaciones del fabriwnte de los módulos UHF, y es un simple trozo de alambre rígido, calibre 22 de 16.5 centímetros de largo. Cabe señalar que existen otros modelos de antenas. Todas estas posibilidades se presentan y detallan en las especificaciones de los módulos UHF que se hace más adelante.

El número de funciones disponibles en el transmisor es dictado por el software para microcontroladores PIC, que es relativamente simple. El programa tiene dos fiinciones principales. Una está para leer el switch del contador de direcciones, SWI. Si el switch está cerrado, el contador de direcciones es incrementado y el valor es puesto a la salida por el puerto adecuado. El otro está para leer el switch dei contador de datos, SW2. Si este switch está cerrado, el contador de datos es incrementado y el valor es puesto a la salida por el puerto apropiado.

Usando un PIC para el control, las funciones se reducen a un chip contador. Si la lógica normal fuera usada, el chip contador podría ser fácilmente de cuatro Ó cinco.Este microcontrolador permite hacer diseños mucho más simples y exige menos demanda en el suministro de potencia comparado con un clásico microprocresador. También da más flexibilidad puesto que el soAware puede ser fácilmente modificado.

SOFTWARE DEL TRANSMISOR.

Incluso el programa relativamente simple para el microcontrolador transmisor requiere pensar en la codificación antes de que se intente. Primero, el funcionamiento individual de los bloques en forma aislada como se presenta enseguida..

Los bloques fiincionales descritos aquí son:

7

Page 9: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

0 Inicialización de variables y del Microcontrolador. Eliniinación de rebotes de los switchs. Incremento del contador de direcciones y salida. Incremento del contador de datos y salida.

Se pueden no necesitar algunos de los bloques dependiendo de la aplicación.

, Se preescala el t i m a intmo pr 256 y se pone a\ I¿TCC(pin3)

Se recuerda que éstas son subnitinas. El control principal del programa también requiere coordinar las rutinas.

1nicialización.- Usualmente, el microcontrolador requiere inicialización una sola vez. Esto es normalmente la primera operación para ejecutar el encendido. Los puertos deben ser puestos como entrada o salida, o una combinación de ambos, y la opción de reloj en tiempo real (rtc) en el registro debe ser puesta a 1. En este caso, el rtc, es usado en un reloj interno y tiene asignado un pre-escalamiento que lo divide por 256. Esta división es usada en una rutina de retardo para el brinco de los switches.

Finalmente, las salidas necesitarán estar activadas para valores iniciales y cualquier variable, ó requisitos de archivo inicializados. El diagrama de flujo, se muestra en la Fig. 4 y el correspondiente código es mostrado en el listado completa bajo la etiqueta INITP.

SWITCE DE REBOTES.

Una simple rutina de retardo elimina la posibilidad de rebotes cuando se activa algún switch. Este retardo es derivado del RTC, el cual se pone para incrementar vía reloj interno, a través de un preescalamiento a 256. El registro RTC, es limpiado entonces por el ciclo del programa hasta que el bit 7 del rtc es uno. El diagrama de flujo de esto que se menciona, se muestra en la figura siguiente:

Ink, Ro. A de entrada

Iniciaiiza Pto. 13, bits O, 1 y 2 a la entrada el resto a la salida

J

Fig. 4

8

Page 10: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

INCREMENTO DEL CONTADOR DE DIRECCIONES.

Cuando el switch del incremento de dirección, SW1, es activo, la rutina UP- ADDRESS es llamada. La rutina de retardo en llamada inmediatamente, afín de eliminar algún posible rebote del switch. En el retorno de la rutina de retardo, el switch es probado de nuevo. Si este no ha sido desactivado, la rutina no toma ninguna acción. Se protege en contra del ruido y saltos de la señal.

Si este switch está todavía activo, el contador de direcciones es incrementado si el valor presente es menor que 3 1, en otro caso se pone a cero. La rutina entonces espera hasta que el switch se suelta y de nuevo se previenen rebotes llamando a la rutina de retardo. El valor de la dirección está entonces en la salida en el puerto apropiado.

INCREMENTO DEL CONTADOR DE DATOS.

La operación de esta rutina es idéntica a la de incremento del contador de direcciones, con tres excepciones: se lee el switch de incremento de datos, SWZ, con valor máximo de 15, y la salida de datos para un diferente puerto,

EL CONTROL DEL PROGRAMA,

En un inicio el programa principal o de control, llama la rutina de inicialización y entonces entra a un ciclo que prueba dos switches continuamente. Si uno de estos switches es presionado, el programa es dirigido a la rutina apropiada, como puede verse en el listado del programa que se presenta enseguida:.

PROGRAMA DE LA UNIDAD TRANSMISORA

l i s t p=16c84 dato equ 10h address equ ilh p o r t a equ 5 poLtb equ 6 W equ O

-*****INICIO D m PROGRAMA********** 0rg o goto i n i c i o org 4 gota i n i c i o org 5

inicio c a l l i n i t p ; SE INICIALIZAN PUERTOS repeat b t f s c portb, 6 ; SE HACE TEST PARA INCREMENTAR DIRECCION

call up-address ; LLAMA A RUTINA DE INCREMENTO DE DIRECCION b t f s c portb, 5 ; TEST PARA INCREMENTO DE DATOS

Page 11: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

call goto

delay clrf del - loop

btfsc goto goto

next retln

up - address c a l l btfss goto

wait-as btfsc goto call movlw addwf btfsc goto

cont-address movf mowf

end-up-address zetlw

address-zero clrf goto

up - data call btfsc goto

wait ds btfsc got0 call movlw addwf btfsc gato

movf mowf

retlw

clrf goto retlw

-

cont data -

end-up-da t a

data zero -

initp bsf m o v l w mom€ movlw m o w f rnovlw m o w f bcf

up - data repeat I

1 ; RETARDO

; LLAMA A RUTINA DE INCREMENTO DE DATOS

1r6 ; SE HACE T E S T AL B I T 6 next ; SI B I T 6 ENTONCES S A L T A A NEXT de 1-10 op ; S I NO SPLLTAA DEL-LOOP O ; REGRESO

; RUTINA DE INCREMENTO D E DIRECCIONES delay ; RETARDO PARA ELIMINAR REBOTES portb, 6 ; PREGUNTA S I E L BOTON FUE OPRIMIDO end up address ; S I NO SE OPRIMIO E L BOTON, NO HACE NADA por:b,T wait-as delay 1 address , 1 address 5 address-zero

address, w portb

; ESPERA HASTA QUE EL BOTON S E A SOLTADO ; ESPERA SWITCH DE DIRECCIONES ; LLAMA A RUTINA PARA ELIMINAR REBOTES ; PONE W = 1 PARA INCREMENTO DE LA DIRECC. ; DIRECCION = DIRECCION + ; PREGUNTA SI. DIRECCION ES > 31 ; SI ES AS1 SE V A A CERO ; RUTINA DEL CONTADOR DE DIRECCIONES ; TOMA DIRECCION ; LA MANDA A LA S A L I D A

O

address cont address - delay portb, 5 end up data portb,S wait ds dela; 1 dato, 1 dato, 4 data-zero

dato, w porta

; RUTINA PARA INCREMENTO DE DATOS ; PREGUNTA S I E L BOTON EWE PRESIONADO ; S1 NO FUE PRESIONADO NO HACE NADA ; ESPERA HASTA QUE E L BOTON ES SOLTADO ; ESPERA E L BOTON DE DATOS ; E L I M I N A REBOTE CUANDO SE SUELTA EL BOTON ; PONE W = l PARA INCREMENTO DE DATOS ; DATO = DATO+1 ; PREGINTA S I DATO >15 ; S I DATO >15 E L CONTADOR VA A CERO

; TOMA DATO ; LO MANDA A LA S A L I D A

o ; RUTINA DE REGRESO A CERO

dato cont - data O

3,5 O porta OeOh portb 7 1 3#5

i RUTINA DE I N I C I A L I Z A C I O N DE PUERTOS

i RTCC PREESCALAR ENTRE 256

1 o

Page 12: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

mvlw o ; SE LIMPIA EL REG. W movwf dato ; DATO = O rnovwf address ; DIRECCION = O mow f port a mowf portb retlw O end

Es conveniente mencionar que para poder programar un PIC, se requiere de un programador que cuente con esta capacidad, por lo que pudiera pensarse en la necesidad de adquirir uno de estos equipos. Sin embargo, si no se cuentan con recursos suficientes para comprarlo, generalmente las casas comerciales que venden los PIC’S, cuentan con el servicio de programado del microcontrolador y es bastante barato.

Por otra parte debido a que se trata de un transmisor de radiofrecuencia UHF a 418 MHz, siendo ésta una frecuencia en donde se tienen pocas posibilidades de interferencia por ruido externo al aparato, se eligió diseñar el circuito impreso tratando que las pistas fueran lo más delgadas posibles para evitar posibles capacitancias parásitas que disminuyeran la eficiencia del transmisor.

Una fotografía por las dos caras del módulo transmisor ya terminado y en pleno funcionamiento se anexa en las páginas siguientes. Se podrá observar que fueron necesarias algunas modificaciones al diseño original debido a que se utilizó finalmente un PIC diferente al que inicialmente se tenía, pues las prestaciones que el 16LF84 ofrecía eran superiores a las del 16C54 que era el PIC original para el proyecto.

Page 13: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

b) Recibiendo las mensajes

Los mensajes para desplegar por el receptor son almacenados en una EPROM. El contenido del mensaje actual variará dependiendo de la aplicación particular. La programación de la EPROM se realizará se@” el o los mensajes que se desee desplegar, pudiendo ser, tales mensajes, de longitud variable hasta de 127 caracteres y hasta por un número máximo de 15 de ellos ubicados en 15 localidades de inicio bien especificadas.

Como una guía, los mensajes para la EPROM usados en la unidad de desarrollo fueron escritos en ensamblador usando la directiva de ensamblador “define mensaje”.

L a EPROM ha sido programada. L a máxima longitud del mensaje en esta aplicación es de 127 caracteres, el cual es adecuado para la mayoría de los módulos display de cristal líquido.

El PIC usado en el receptor es el 1 6 ~ 5 5 , el cuál es de 20 terminales de E/S programables. Claramente, algunos recursos de E/S compartidos son necesarios. Para lograr esto, parte de la dirección de la EPROM es guardada usando un latch de datos octal 74LS374. En efecto, un sistema de bus es creado. Este bus usa el puerto C del PIC para transferir datos y los bits 0-2 y 4-7 del puerto b para el control de la transferencia de datos, Figura 5. Un diagrama a bloques del receptor y la sección del decodificador es mostrado en la Figura 6.

SOFTWARE Y FUNCIONAMTENTO DEL CIRCUITO.

El módulo radio-receptor recibe la transmisiór) codificado y pasa el dato digital a la entrada del decodificador M145027. Si la dirección transmitida se empareja con la organización de direcciones en los switches detectores de direcciones, el decodificador emite una transmisión válida, VT, señal y salida del código transmitido.

Esto permite hasta 32 módulos receptores ser usados o controlador por una unidad transmisora. La señal VT del pin 11 del PTC(trancmisión válida) conecta el bit 3 del puerto B al PIC, el cual bajo control del programa, espera hasta que la señal VT se active en bajo.

Cuando el PIC recibe un VT activo, de nuevo bajo el control del programa, el PIC lee el código del decodificador vía puerto A. Este código es entonces usado como los cuatro bits más significativos de la dirección de la EPROM así se forma la “dirección base’* del mensaje a ser desplegado. Para desplegar el mensaje, el PIC debe realizar las siguientes acciones:

1-+ La dirección base - el código recibido - debe estar a la salida en las líneas de dirección A 7-10 (As - 10 en el puerto B vía los bits 0-2, y A 7 guarda el bit 7 del puerto C)

2-+ Las líneas de dirección menos significativas son puestas a cero y lo guarda en la A 0-6

de la EPROM. El dato es leído de la EPROM.

I2

Page 14: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

El circuito completo de la unidad receptora se presenta enseguida:

Si el dato es cero, el proceso ha terminado (la cadena con terminación nulo).

3 El dato es escrito en el módulo LCD.

La dirección es incrementada.

-+ Va al paso 2.

Como se mencionó en la descripción del transmisor, cada operación debe estar aislada y debe codificarse individualmente. El módulo receptor es más complejo que la unidad transmisora, se debe tener gran cuidado al ejecutar eí aislamiento y desarrollo de cada operación o subrutina.

Cuando una operación particular es desarrollada, es importante que esta operación sea probada tanto como sea posible antes de pasar a la próxima tarea.

13

Page 15: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Esto puede llevarse a cabo usando sirnuladores denominadas PIC-DATS, corriendo cada subrutina para varias señales en la unidad receptora. De esta forma, cada rutina vista paso a paso. Aquí, los requisitos individuales siguientes fueron aislados.

-+ Inicialización del PIC. -+ Retardo. -+ Espera para “no ocupado” del mó&lo LCD. -+ Escribe datos al modulo LCD. -+ Inicializa el módulo LCD- 4 Reloj de direcciones para el tatch. -+ Leer la EPROM. + Rutina de programa principal.

El listado del programa muestra cada una de las operaciones anteriores correspondientes a una subrutina. Cuando los programas son desarrollados, cada subrutina es probada y salvado su contenido. Cuando la operación de la rutina es aceptable, esa rutina es usada como requisito dentro del programa. Esta es la mejor fomia para desarrollar un control adecuado. El programa completo es presentado a continuación:

P R O Q U DEL MODULO RECEPTOR

l c d en equ 7 ; l c d enable b i t lcdIwr equ 6 ; l c d W/notW b i t l c d K S equ 5 ; l c d reg se1 b i t (same as la tch en) l a t c h - en equ 5 ; l a t c h enable a c t i v e high eprom-oe equ 4 ;epram output enable a c t i v e l o w V t equ 3 ; v a l i d transmit b i t eprom data equ llh ; s t o r e for eprom data message-code equ 12h ; s t o r e for received code address equ r t c c equ s t a t u s equ porta equ portb equ portc equ zero equ w e w

o w r e s e t goto

org s t a r t c a l l

c a l l c a l l

repeat b t f s s goto

wai t-vt-valid b t f s c gota goto

delay c l r f

13h ; s t o r e for address

If f h s t a r t O i n i t p delay i n i t l c d partb# vt repeat

;checar s i hay transmisian va l ida

portb, vt ;checar s i continua transmision va l ida v a l i d t x wait-%-valid

r t c c ;******** L-0 EN s t a r t ******

14

Page 16: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

del-loop b t f s c r tcc,7 goto next goto d e l - loop

next re t lw O ; * * * * E S P E R A A QUE EL LCD NO ESTE OCUPADO******* w a i t b f rnovlw Offh ;wai t f o r no t busy b i t

t r i s p o r t c ;conf igura a l puer to C como ent rada bsf por tb , lcd-wr ;set read b s f p a r t b , l c d - en ; h a b i l i t a a l l c d

b t f s s p o r t c , 7 ;prueba e l b i t bf goto bf gone ; s i es cero, lcd mod not busy goto w a i t b f l ; t ra ta r de nuevo

bf-gone bcf por tb , lcd-en ; d e s h a b i l i t a lcd bcf portb,lcd-wr ; regresa a e s c r i b i r movlw O tris p o r t c ;conf igura puer to C como salida r e t l w O

wai t - b f l

;****ESCRIBE UN CARACTER AL MODULO LCD DESDE LOCALIDAD DE eprom data***** ;+****** LLAMADO EN next *Y***** w r i t e - lcd -

c a l l w a i t bf movf eprom data,w mow€ portc- ; h a c i a e l puer to C b s f p o r t b , l c d rs bsf por tb , lcd-en bcf portb, lcd-en bcf por tb , lcd-rs - movlw Offh ;configura a l puer to C como en t r ada t r i s p o r t c r e t l w O

;carga en Vi e l da to e n r e g i s t r o llh

- * * * * * I N I C m I ' A AL LCD********* i n i t lcd -

movlw t r i s movlw mowf bsf bcf c a l l b s f bcf c a l l bs f bcf c a l l movlw mowf bs f bcf c a l l rnovlw movwf b s f bcf ca l l movlw

O p o r t c 38h p o r t c po r tb , l cd en por tb , lcd-en - de lay por tb , lcd-en p o r t b , l c d - en de lay p o r t b , l c d en por tb , l cd Ien de lay 38h p o r t c p o r t b , l c d en portb, lcdxen de lay a porte p o r t b , l c d e n por tb , 1cd;en wai t bf 1

-

; conf igura a l l c d pa ra 8 b i t s , 2 l í n e a s ;y tamano de ma t r i z 5x7 ;pulso en enable del lcd

;se r e p i t e e l pu lso

; r e p i t e e l pulso por t e r c e r a vez

; r e p i t e por c u a r t a vez

;apaga a l lcd ;*******NUNCA ENCIENDE AL LCD ;******Y NO I N I C I A L I Z A LA RAM

;bor ra a i l c d

i

15

Page 17: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

movwf bs f bcf c a l l movlw movwf bsf bcf c a l l

set-lcd movlw t r i s movlw

s e t m w f bs f bcf ca l l movlw movwf bs f bcf c a l l movlw mowf bs f bcf c a l l movlw mvwf bs f bcf c a l l movlw movwf bs f bcf movlw

r e t l w i npu t t r i s

;enciende a l lcd s i n parpadeo

p o r t c por tb , lcd-en portb,lcd-en wai t - bf 6 ;conf igura modo de en t r ada de p o r t c ; c a r a c t e r e s a l l c d por tb , lcd-en por tb , lcd-en w a i t bf O ; conf igura a i puer to C como s a l i d a p o r t c 38h ; reconf igura a l l c d p o r t c por tb , lcd-en por tb , lcd-en w a i t b f Oeh

portb, lcd-en por tb , lcd-en w a i t bf 6 ;conf igura a l modo de en t r ada

por tb , lcd-en por tb , lcd-en wai t bf 1 ;bor ra a l Lcd p o r t c por tb , lcd-en por tb , lcd-en wai t - bf O .**********??????Y p o r t c por tb , lcd-en p o r t b , l c d - en Offh ;configura a l puer to C coma en t r ada p o r t c O

-

POKtC

-

P O K t C

-

clock-latch-data C l K W

t r i s p o r t c mOVf address , w ;carga en W e l byte menos s i g n i f i c a t i v o movwf p o r t c ;de l a d i r ecc ion de l a eprom bs f portb, la tch-en

por tb , l a t c h en bcf rnovlw Offh t r i s p o r t c

7

16

Page 18: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

INlClALlZACIoN DEL PIC.

A3 A2 A l A0 B7 B6 86 84 83 82 8.1 BO Deccdifcadar D9 DB 07 06 VT EPROM OE A10 A 9 A8 Despliegue LCD EN RMI RS Latch EN EntradaíSalida 1 1 1 1 O O O O 1 O O O Inicial 110 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 Valor inicial x x x x o o o 1 o o o o x x x x x x x x

La inicialización del PIC se divide en dos partes: la operación de las puertos y el registro de OPTION. Las puertos son puestos como entrada o salida y se les asigna un valor inicial como indica la Tabla 1,

C7 C6 C6 C4 C3 C2 C l CO

D7 D6 D 5 D4 03 D2 D 1 DO D7 LE 05 D4 D3 02 D I DO A7 A6 A5 A4 A3 A 2 A l A 0 110 I/O 110 I/O I/O 110 I10 IIO

Tabla 1 (Localidades para los puertos en el módulo receptor)

En este caso, el registro OPTION (ver programa del receptor)es utilizado para poder preescalar el timer a 256 y asignarlo al rtc corno un reloj interno. La rutina de ejecución de estas acciones pueden ser vistas en el listado del programa bajo el nombre N T P .

RETARDO,

La rutina de retardo, es un retardo de propósito general para ser usado en otras rutinas. Esta es similar al descrito en la sección del Transmisor de este proyecto, y por lo tanto no se describirá más aquí.

ESPERA PARA “NO OCUPADO” DEL MÓDULO LCD.

Las sefiales de control del mbdulo LCD se unen como se indica en la Tabla 1. El puerto C se ve como un bus de datos mientras los tres bits de control son derivados del puerto B y tienen funciones como se indica en l a Tabla 2.

Bits de control utilizados por el LCD (despliegue de cristal I Íquído) NIVEL PUERTO 6

bit 5 bit 6 bit 7 RS RNV E

O lnsüip Leer Deshabilita 1 Entrada datos Escribir Habilita

Tpbla 2

18

Page 19: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

El módulo LCD saca los comandos internos a comandos de instrucción. Mientras el comando es ejecutado, no pueden escribirse comandos o datos al módulo. El módulo de despliegue usa la señal de ocupado para indicar el estado actual del dispositivo y es accedido para ejecutar el ciclo de lectura y examinar el estado del bit 7, “la señal de ocupado”. Si la señal de ocupado está en lo alto, entonces una operación interna esta en proceso y no se puede escribir información en el dispositivo.

ESPERA PARA “NO OCUPADO”.

Esta rutina ejecuta la siguiente secuencia:

-+ Hace entrada el puerto C. -+ El módulo LCD es puesto para “lectura”, pero poniendolo en le bit R/w y

-+ El puerto C como bus de datos, es entonces lectura y el bit 7 es probado, -+ El bit 7 es un 1 lógico, el paso 3 es repetido. -+ Los bits de lectura y habilitación son limpiados. -+ El puerto C es puesto como salida.

habilitándolo por medio del bit de habilitación.

La rutina asociada con este proceso puede ser vista en el listado del programa bajo la etiqueta (WAIT-BF). Este es un nonibre sugerido; estos ciclos de la subrutina espetan hasta que el módulo LCD no está ocupado antes de que sean ejecutados.

Escribe datos al módulo LCD. Esta rutina escribe datos, se sostiene en un registro de archivo, nombrado EPROM-DATA, para el módulo LCD. En esta aplicación, el dato es un dato previamente recuperado de la EPROM y almacenado por la rutina READEPROM, descrita posteriormente. Esta operación de escritura es consumada por la ejecución de los siguientes pasos:

-+ Llamar a la rutina W A I T B F . Esto hace seguro que el módulo de LCD este en lectura para escribir datos. Note también que el puerto C este como salida.

-+ Tomar dato en el registro de archivo EPROM-DATA es recuperado, localizado en el registro W, y puesto a la salida del puerto C, mientras son conectadas las terminales de datos al módulo LCD.

-+ Poner el bit W S del módulo LCD a 1 lógico por selección de datos, y habilitación del módulo LCD, pero localizando un cero lógico en la terminal de habilitación.

-+ Reloj de datos dentro del módulo LCD pero limpiando el bit de habilitación, pero incapacitando el módulo LCD.

-+ Poner el puerto C como entrada.

19

Page 20: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Para usar esta rutina, el programa de control tiene que enviar datos al display al módulo LCD en el registro de archivo apropiado. En esta caso el registro de archivo 1116

igual a la etiqueta EPROM-DATA.

Se debe notare que el nombre elegido, WRITE LCD, es sigriificativo. Esta realización de el programa es más fácilmente entandible-y por lo tanto fácilmente de mantenerse y suprimir errores.

lNlCIA1,IZACTC)N DEL MbDUCO LCD.

Esta rutina trata, esencialmente, de escribir una serie de comandos que se detallan en las especificaciones del despliegue de cristal líquido, pudiendo utilizarse un AND 491 o el Hitachi LM032L . Un comando es escrito’ para el módulo LCD pero ejecutando los siguientes pasos:

3 Se pone el puerto C como salida y el código del comando apropiado.

-+ El dispositivo es habilitado por el bit de habilitacian y el comando de reloj limpiando el bit de habilitación. Note que el bit IUS es sacado en la condición default, o lógico, mientras selecciona el comando de modo.

-+ Espera hasta que sea el comando completo. Note que la espera para “no ocupad^'^, no puede ser usado hasta que el dispositivo sea inicializado.

Este proceso es repetido con los códigos de comando apropiados, con una llamada a rutina de retarda entre comandos sucesivos. La secuencia de cbdigo de comandos usados en esta instancia es mostrada en la Tabla 3.

Orden del comando : 1 2 3 4 5 6 7 1 CODIGO 38H 38H 38H 38H 8H 1H 6H(H=hexadecimal) Tabla 3

Refiriéndonos a la listado del programa del receptor, el nombre usado para la rutina es INIT-LCD. Atendiendo que las últimas cuatro secuencias de código pueden ser llamadas por la rutina SET-LCD mientras esta fabricando parte de la rutina INIT-LCD. La rutina SET-NT es usado cuando el módulo LCD está previamente inicializado pero modificando la operación requerida, o como en este caso limpiando y moviendo el cursor al comienzo de la línea uno.

Latch del reloj de direcciones.- Antes de que el dato de la EPROM pueda ser recuperada, la dirección correcta debe estar presente en las lineas de dirección, esto es llevado acabo por el guardado de Ia ‘dirección dentro del latch de dirección, Esta secuencia requerida es la siguiente:

Pone el puerto C como salida. Retiene la dirección actual y la envía al puerto C. Pone entonces en bajo el bit de habilitación del latch para el latch del reloj, este es el bit 5 de1 puerto B, llamado LATCH-EN.

20

Page 21: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

0 Restaura el puerto C como entrada.

En el listado del programa, esta subrutina es llamada “CLOCK-LATCH-DATA”.

Leyendo datos de la EPROM.- En una operación de datos normal, es leer de la EPROM automáticamente cuando el microprocesador ejecuta la operacibn 1eer.Todas las señales de control son previstas por el microprocesador. En este caso l a transferencia de datos debe estar ejecutado bajo el control del programa pero produciendo la siguiente secuencia.

0 Habilita las salidas de la EPROM por limpia de la salida de habilitación el cual es el bit 4 del puerto B, etiquetado LATCH-EN.

0 Lee el puerto C el cual ahora tiene los datos aplicados a la EPROM. 0 Tncapacita las salidas de la EPROM por poner la salida de habilitación en alto.

Esta secuencia es llevada por la rutina READEPROM en el listado del programa.

El programa principal simplemente llama cada subrutina que es requerida. Una facilidad no mencionada hasta aquí es la capacidad para incluir nuevas líneas de control dentro de cada mensaje. El código de alimentación 1010 es usado para indicar que el cursor en el módulo LCD podría moverse al comienzo de la línea dos. Así cada código es leído de la EPROM, y este es probado para una nueva línea. Si la nueva línea es requerida la subrutina L N - 2 es llamado.

DETALLES DEL ClRCUTTO DEL RECEPTOR.

El diagrama del circuito completo se muestra en la Fig. 5. Note que el puerto C del PIC es usado como bus del sistema. Cada dispositivo en el bus es capaz de estar en tercer estado para lo cual permite que cada dispositivo pueda ser seleccionado por el programa de control. Debe estar claro que es muy importante que el programador tenga cuidado para habilitar sólo un dispositivo a la vez para evitar un conflicto de bus.

Un transmisor es capaz de controlar hasta 32 unidades receptoras. El par transmisor/receptor ha sido diseñado para ser usados en casi cualquier ambiente. El despliegue de la información puede ser llevado a cabo de muy diversas maneras, como ya fue mencionado, desde un pequeño despliegue de cristal líquido como el AND491, hasta un enorme panel de lámparas para avisos publicitarios, por ejemplo. Todo dependerá de la aplicación que se le dé a este interesante sistema. En realidad, se trata de un útil y versátil sistema de comunicación inalámbrica que reúne características aceptables para ser empleado como sistema señalizador de mensajes, intercomunicador, transmisor de información importante, etc. Sólo la imaginación del diseñador marcará el límite en la aplicación que pudiera dársele.

Se anexa fotografias del anverso y reverso del módulo transmisor en las siguientes páginas.

21

Page 22: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

171)

DIAGRAMA A BLOQUES DEL STLRX-418-A:

ESPECIFICACIONES DEL MODULO RECEPTOR SILRX-418-A

vccrl- V W U cI-3

LAW conltolkd

1592 kn DElECi

Fig.6

El SILkX-418-A es en realidad, un completo radio receptor UHF de FM en un pequeño módulo. Junto al transmisor compatible, el TXM-418-A, se puede lograr un enlace en un solo sentido, capaz de alcanzar una distancia de mas de 200 m. en campo abierto.

Características Típicas Incluidas: Montaje PCB, ahorro de espacio tipo SIL.

0 Recepción SAW controlada de Fm de banda ancha a 41 8 MHz 0 Sensibilidad típica de 0.5pV (-1 13 dBm) para una S/R de 20 dB 0 Alta tasa de transmisión 5 Kbps.

Salida digital y analógica de datos. c Salida de detección de portadora.

Respuesta rápida de habilitación, <3ms para el ciclo de trabajo, en el modo de ahorro de

Amplio rango en valores de alimentación, de 4.0V a 9.0V, Bajo consumo de corriente, 13mA DC, 130pA en modo de ahorro de energía.

energía

El modulo receptor SIL= es particularmente adecuado para aplicaciones portátiles alimentadas con baterías, en donde sus bajos requerimientos de potencia y pequeño tamaño son una ventaja.

Breve Descripción: El receptor SIL= es un sistema “superhet”(superheterodino) FM de doble

conversión con un “slicer“ de datos controlado por la salida AF. Adicionalmente cuenta con

22

Page 23: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

una rápida señal de detección de portadora, para indicar a los circuitos externos que hay una señal presente. Esta señal es extremadamente útil cuando son implementados circuitos con ciclos de trabajo de ahorro de energía o para indicar a la lógica externa que una señal está siendo recibida. Se deriva internamente el grado de reducción de ruido debido a la presencia de una portadora recibida.

El STLñX-418 esta diseñado para trabajar con un transmisor compatible (TXM- 4 18). Con la adición de una antena sencilla esta pareja puede ser usada para transmitir datos seriales a más de 200 m. El rango del enlace de radio es muy variable y depende de muchos factores, principalmente, el tipo de antena utilizado y el medio ambiente en el que opera. El rango de 200 m. mencionado es una distancia de operación confiable en campo abierto, utilizando una antena de alambre recto de ?4 de longitud de onda en ambos extremos del enlace, a 1.5 m sobre el piso. Una antena mqs pequeña, interferencia u obstáculos (por ejemplo construcciones) reducirán el rango de trabajo confiable (menos de 30 m. en casos extremos). lncrernentanáo la altura de la antena, reduciendo la tasa de transmisión o una antena receptora mas larga incrementarían el rango (3Km máximo).

Descripción de las terminales a pines del módiila SILRX-418-A:

Pin 4 Ovolts Pin 5 Vcc

Pin 6 AF

Pin 1 EntradadeRF La antena del receptor es conectada a esta entrada. Tiene uan impedancia RF nominal de 50Q y esta capacitivamente aislada del circuito interno.

Pin 2 TienaRF Este pin debe ser conectado a cualquier tierra fisica con la que trabaje la antena.

Pin 3 DETECT Este pin puede ser usado para obtener una detección de portadora, para habilitar circuitos externos cuando una señal este siendo recibida. Si la función de detección no esta siendo utilizada, se debe de conectar una resistencia pull-up de 1OKS2 a Vcc. Tierra de alimentación. Alimentación positiva de 4V a 9V 13mA. La alimentación debe estar limpia (<2mV pp) estable y libre de ruido digital de alta frecuencia. Un filtro en la alimentación es recomendado, a menos de que el modulo obtenga la alimentación de su propia fuente regulada de voltaje. Esta es la salida del demodulador. Tiene un voltaje constante de DC de aproximaadamnete 1.4V y puede ser utilizado para controlar detectores de datos analógicos tales como chips de modems o decodificadores DTMF. Se pueden obtener irnpedancias tan bajas como 2KSZ y tan altas como 1 OOpF.

23

Page 24: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Pin 7 DATA Esta salida digital del “slicer” interno de datos es la versión cuadrada del pin 6 (AF). Esta señal es usada para controlar decodificadores digitales externos, esta es la información real, Se pueden obtener impedancias tan bajas como 1KQ y arriba de InF.

Dimensiones fisicas: I

2 0 m n

pinspacing:264nm 3 4 6 6 7 1 I 1 2 . . J . .. . . . . . . . . , . . , . . . , , .. . . . . .. . . . . . . . . .. . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .

30.48 ríüil a C ” L L

6 mm w

21 r r n l

9 P a IWel

Fig. 7

Slicer” de Datos Interno: Una salida de datos CMOS compatible esta disponible en el pin 7, esta salida es

normalmente para controlar decodificadores digitales o un microprocesador que realice la decodificación de datos. El “slicer” de datos en el modulo del receptor esta diseñado para aceptar datos con un amplio rango de ancho de pulsos. El “slicer” de datos tiene una tiempo de respuesta de lOms, este es el tiempo de establecimiento del comparador adaptivo. Sistema de Codificación:

Los módulos receptor y transmisor no cuentan con codificadoresídecodificadores internos esto permite la flexibilidad para enviar diferentes tipos de datos. Son requeridos codificadores y decodificadores para dar al sistema un alto grado de protección para talsos disparos debido a el ruido/interferencia/sistemas vecinos y razones de seguridad. Existe una gran variedad de codificadoresídecodificadores adecuados para ser utilizados con los módulos: MM57C22, MM574 I O; National Semiconductor. UM3750, UMC. Series HT 1 2, Holtek. Series MC 145026, Motorola.

24

Page 25: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Salida AF: Esta es la salida del demodulador después de ser almacenada y filtrada. Dado que es

tomada en el modulo antes del “slicer” de datos, puede ser utilizada para controlar “slicers” de datos externos de demoduladores, en casos donde el “slicer” de datos interno no es apropiado. Tal es el caso donde una subportadora analógica es utilizada. La salida AF es también un punto de prueba muy útil para moiiitorear señales o interferencia. La salida AF esta acoplada al demodulador FM, debido a esto el nivel de DC varia con la frecuencia de la señal entrante.

z.% mm

i ~* - L

V) ESPECIFICACIONES DEL MODULO TRANSMISOR TXM-418-A

DIAGRAMA A BLOQUES DEL TXM-4 18-A VCC 6 - 9 VOLT

I I ’ h I I I

oscillator ct modulator 4 T t I

SAW WBFM Data LPF 47 K DATA oscillator modulator

4 18 MHz band RF OüT pass filter L tcl- -d -i*

-

A- o VOLT

I DataLPF 1 DATA __I

Características: Montaje PCB, ahorro de espacio tipo SIL. Transmisión SAW controlada de FM de banda ancha a 41 8 MHzOJHF)

0 Velocidades de transmisión de SKbps(versión A) y 1 OKbps(versión F) 0 Transmisión analógica o digital (datos de entrada) 0 Licencia aprobada en el Reino Unido bajo la especificación MPT 1340

Rango de alimentación: de 6 a 9V CD 0 Modulación FSK

Dimensiones fisicas: Fig.9

6 mm I .c--)

30 mm I ñ.5mm 10.7 mm

\ PCB level

I 20.32 mm

c-

pin spacing 2.54 mm

25

Page 26: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

I

Como se puede observar, se trata de iin iniiy pequeño módulo transmisor que puede caber en cualquier caja de cerillos. Breve descripción:

El TXM-418-A ha sido diseñado para trabajar con su correspondiente receptor SILñX-418-A y con la adición de una simple antena en cada uno de ellos, es posible que sean utilizados en Ia transferencia serial de datos hasta a una distancia promedio de SO0 metros. El rango de este radio-enlace es variable, y depende de variados factores, principalmente del tipo de qntena empleada y del ambiente de operación. Estos 200 metros han sido medidos en campo abierto utilizando un simple alambre como antena (1/4 de long. de onda) en ambos extremos del enlace y a una altura de 1.5m sobre la superficie. Una antena más corta, interferencias u obstáculos podrían reducir el rango de trabajo (incluso hasta los 30 rn en casos extremos). Pero si la altura de la antena se incrementa o si se disminuye la veIocidad de los datos o el largo de la antena receptora, se incrementaría el rango de operación pudiendo alcanzar incluso hasta 3 km.

Descripción de las terminales o pines del TXM-418-A

Pin 1 RF GND

Pin2 RF OUT

Pin3 Vcc

Pin 4 Vss

Pin5 DATAIN

Esta terminal debe ser conectada a tierra fisica y debe ser ligada al pin No. 4

Esta terminal se conecta directamente a la antena seleccionada. La impedancia de salida es de 50sZ.

Vcc. Polo positivo de la fuente de poder. El voltaje en esta terminal puede variar de +6V hasta +9V DC.

OV. Para la fbqción de modulación y suministro de poder

Terminal que podría ser directamente manejada por un dispositivo lógico CMOS alimentado por la misma fuente de poder que el módulo.

Cabe señalar que tanto en la unidad transmisora como en la receptora se utilizó el mismo tipo de antena que fue un alambre rígido de 16.5 cm. de largo segín las siguientes especificaciones:

Fig. 1 O 0-0; mm mn=mn-#od uopprr w i n arose woun& on t-z rnm &ornoror nwnwir

47s MHz - 26 turns 4*3 Mu2 -2.4 turnt AL Hrilka# antnnns

26

Page 27: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

FRENTE

( FOTOGRAFIA DE LA UNIDAD TRANSMISORA CON TODOS SUS COMPONENTES, EN PLENO FUNCIONAMIENTO )

26

Page 28: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

REVERSO DE LA UNIDAD TRANSMISORA

27

Page 29: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

FRENTE

UNIDAD RECEPTORA

Page 30: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

vq NICROCONTROLADOFUW PROGRANIABLES

¿QUE ES UN MICROCONTROLADOR?

Es un circuito integrado programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna. Esta ultima característica es la que le confiere la denominación de << controlador incrustado >> (embedded controller).

El microcontrolador es un computador dedicado. En su memoria sólo reside un programa destinado para gobernar una aplicación determinada; sus líneas de entraddsalida soportan el conexionado de los sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontaolador solamente sirve para gobernar la tarea asignada.

En resumen; un microcontrolador es un computador completo, aunque de limitadas prestaciones, que esta contenido en el chip del circuito integrado y se destina a gobernar una sala tarea.

La industria Informática acapara gran parte de los microcontroladores que se fabrican. Casi todos los periféricos del computador, desde el ratón o el teclado hasta la impresora, son regulados par el programa de un microcontrolador. Los electrodomésticos de línea blanca (lavadoras, hornos, lavavajillas, etc. ) y de línea marrón (televisores, videos, aparatos musicales, etc.) incorporan numerosos microcontroladores. Igualmente, los sistemas de supervisión, vigilancia y alarma de los edificios utilizan estos chips para optimizar el rendimiento de los ascensores, calefacción, aire acondicionado, alarmas de incendio, robo, etc.

Las comunicaciones y sus sistemas de transferencia de información utilizan profundamente estos pequeños computadores incorporándolos a los grandes automatismos y en los modernos teléfonos. La instrumentación y la electromedicina son dos campos idóneos para la implantación de estos circuitos integrados. Una importante industria consumidora de microcontroladores es la de automóviles, que los aplican en el control de los aspectos tan populares como la climatización, la seguridad y los frenos ABS.

3 o

Page 31: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Uso de microcontroladores Dor sectores

-_ ---_

Gráfico que muestra la distribución de la producción mundial de microcontroladores en las diversas áreas de aplicación

1.1. DIFERENCIA ENTRE UN MICROPROCESADOR Y UN MICROCONTROLADOR

EI microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), también llamada procesador, de un computador. L a UCP esta formada por la Unidad de Control, que interpreta las instrucciones, y el Bus de Datos, que las ejecuta.

Las patitas del microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitirle conectarse con la memoria y los módulos de entrada salida E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a Ia que se destine.

31

Page 32: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Estructura de un sistema abierto basado en un microprocesdr. La dipnibiliabid de los buses en el exterior permite que se corflgure a da medida de la aplicación.

El rnicrocopitrolador es un sistenza cerrodo. T d s las yaríes del computador están contenidas en su inferior y solo saden al exferior las lineas que gobiernan 19osper$$%xw.

1.2 ARQUlTECTVRA INTERNA

Un microcontrolador posee todos los componentes de un computador, pero con unas características fijas que no pueden alterarse.

Las partes principales de un microcontrolador son:

1. Procesador 2. Memoria na volátil para contener el programa 3. Memoria de lectura y escritura para guardar los datos 4. Líneas de E/S para los controladores de periféricos

a) Comunicación paralelo b) Comunicación serie c) Diversas puertas de comunicación (bus 12C, USB, etc.)

a) Circuito de reloj b) Temporizadores c) Perro guardián (I' Watch Dog 'I)

d) Convertidores AD y DA

5. Recursos auxiliares

32

Page 33: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

e) Comparadores analógicos í) protección ante fallos en la alimentación g) Estado de reposo o de bajo consumo

1.2.1 EL PROCESADOR

La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de los microprocesadores de arquitectura Harvard frente a las tradicionales que seguían la arquitectura de Von Neumann. Esta ultima se caracterizaba porque la UCP se conectaba con una memoria Única, donde coexistían datos e instrucciones, a través de un sistema de buses.

En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, además de propiciar el paralelismo, permite la adecuación del tamaño de las palabras y los buses a los requerimientos específicos de ias instrucciones y de los datos. También la capacidad de memoria es diferente.

El procesador de los modernos microcontroladores responde a la arquitectura RISC (Computadores de Juego de Instrucciones Reducido), que se identifica por tener un repertorio de instrucciones de maquina pequeño y simple, de forma que la mayor parte de las instrucciones se ejecuta en un ciclo de instrucción.

Otra aportación .Frecuente que aumenta el rendimiento del computador es el fomento del paralelismo implícito, que consiste en la segmentación del procesador (pipe-line), descomponiéndolo en etapas para poder procesar una instrucción diferente en cada una de ellas y trabajar con varias a la vez.

1.2.2 MEMORIA DE PROGRAMA

El mícrocontrolador esta diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de ampliación.

Como el programa a ejecutar siempre es el mismo, debe estar grabado en forma permanente. Los tipos de memoria adecuados para soportar esta función admiten cinco versiones diferentes:

1. ROM con mascara:

33

Page 34: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

En este tipo de memoria el programa se graba en un chip durante el proceso de su fabricación mediante el uso de “máscaras”. Los altos costos de diseño e instnimental solo aconsejan usar este tipo e memoria cuando se precisan series muy grandes.

2. EPROM:

La grabación de esta memoria se realiza mediante un dispositivo fisico gobernado desde un computador personal, que recibe el nombre de grabador. En la superficie de la cápsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria a rayos ultravioleta para producir su borrado y emplearla nuevamente. Es interesante la memoria EPROM en la fase de diseño y depuración de los programas, pero su costo unitario es elevado.

3. OTP (Programable una vez):

Este modelo de memoria sólo se puede grabar una vez por parte del usuario, utilizando el mismo procedimiento que en la memoria EPROM. Posteriormente no se puede borrar. Su bajo precio y la sencillez cfe la grabqción aconsejan este tipo de memona para prototipos finales y series de producción curtas.

4. EEPROM:

La grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho más sencillo al poderse efectuar de la misma forma que el grabado, o sea, eléctricamente. Sobre el mismo zócalo del grabador puede ser programada y borrada tantas veces como se quiera, lo cual la hace ideal en la enseñanza y en la creación de nuevos proyectos. El fabuloso PIC16c84 dispone de 1K palabras de memoria EEPROM para contener instrucciones y también tiene algunos bytes de memoria de datos de este tipo para evitar que cuando se retira la alimentación se pierda información.

Aunque se garantiza 1 .OOO.OOO de ciclos de eccriturahorrado en una EEPROM, todavía su tecnologia de fabricación tiene obstáculos para alcanzar capacidades importantes y el tiempo de escritura de las mismas es relativamente grande y con elevado consumo de energía.

5. FLASH:

Se trata de una memoria no volátil, de bajo consurno, que se puede escribir y borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas últimas. El borrado sólo es posible con bloques completos y no se puede realizar sobre posiciones concretas.

Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo largo de la vida del producto, como consecuencia del desgaste o cambios de piezas.

Por sus mejores prestaciones esta sustituyendo a la EEPROM para contener instrucciones. De esta forma Microchip comercializa dos microcontroladores prácticamente iguales, que

34

Page 35: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PTC16C84 y el PIC16F84 respectivamente,

1.2.3 MEMORIA DE DATOS

Los datos que manejan los programas varían continuamente, y esto exige que la memoria que Io contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la mas adecuada aunque sea volátil.

Hay microcontroladores que disponen como memoria de datos una de lectura y una de escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la perdida de la información, que esta disponible al reiniciarse el programa. El PIC 16C84, el PIC 16F83 y el PIC 16F84 disponen de 64 bytes de memoria EEPROM para contener datos.

1.2.4 LINEAS DE E/S P A W LOS CONTRQCADORES DE PERIFERICOS I"

A excepción de dos terminales destinadas a recibir la alimentación, otras dos para el cristal de cuarzo, que regula la frecuencia de trabajo, y una mas para provocar el RESET, las restantes terminales de un microcontrolador sirven para soportar su comunicación con los periféricos externos que controla.

Las líneas de E/S que se adaptan con los periférkos manejan información en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos con líneas que soportan la comunicación en serie; otros dispositivos de conjuntos de líneas que implementan puertos de comunicación para diversos protocolos, como el I*C, el USB, etc.

1.2.5 RECURSOS AUXILIARES

Según las aplicaciones las que orienta el fabricante cada modelo de microcontrolador, incorpora una diversidad de complementos que refberzan la potencia y la flexibilidad del dispositivo. Entre los rkcursos más comunes se citan los siguientes:

Circuito de reloj, encargado de generar los impulsos que sincronizan el fúncionamiento de todo el sistema. Temporizadores, orientados a controlar tiempos. Perro Guardián, ("watchdog"), destinado a provocar una reinicialización cuando el programa queda bloqueado. Convertidores AD y DA, para poder recibir y enviar señales analógicas. Comparadores analógicos, para verificar el valor de una señal analógica. Sistema de protección ante fallos de la alimentaciórr.

35

Page 36: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

g) Estado de reposo, en el que el sistema queda I' congelado I' y el consumo de energía se reduce al mínimo.

1.3 PROGRAMACTON DE MICROCONTROLADORES

La utilización de los lenguajes más cercanos a la maquina (de bajo nivel) representan un considerable ahorro de código en la confección de los programas, lo que es muy importante debido a la estricta limitación en la capacidad de la memoria de las instrucciones. Los programas bien realizados en Lenguaje Eiisarnblador optimizan el tamaño de la memoria que ocupan y su ejecución es muy rápida.

Los lenguajes de alto nivel mas empleados con microcontroladores son el C y el BASIC, de los que existen varias empresas que comercializan versiones de compiladores e interpretes para diversas familias de microcontroladores. En el caso de los PIC es muy competitivo e interesante el compilador de C PCM de la empresa CCS y el PBASIC de micmLab Engineering.

1.4 TNSTRUMENTAL DE TRABAJO

Siempre que se diseña con circuitos integrados programables se precisan herramientas para la puesta a punto del hardware y del software.

Con referencia al software, además de los compiladores o interpretes de los lenguajes usados, es muy importante disponer de simuladores software, que consisten en programas que simulan la ejecución de instrucciones representando el comportamiento interno del procesador y el estado de las líneas de E/S. Como se simula por software al procesador, el comportamiento no es idéntico aunque proporciona una aproximación aceptable, especialmente cuando no es esencial el trabajo en tiempo real.

Microchip pone libremente a disposición de sus usuarios, a través de Internet (http:/hw.microchzp. corn), ensambladores como el MPGSM y simuladores como el MPStM, Microsystems Engineering comercializa un simulador muy completo para el PIC 16x284 y vanos compiladores e interpretes de lenguaje C y BASIC (hrrp://kww. arrakis. edrngwetig).

Respecto a las herramientas de hardware, una indispensable e5 el grabador, encargado de escribir el programa en la memoria del microcontrolador. Existen grabadores muy completos capaces de trabajar con muchos modelos muy de diferentes familias, pero su elevado precio los aleja de los usuarios personales. Para estos últimos existen bastantes versiones de sencillos grabadores, específicos para ciertos modelos de microcontroladores, que gobernados desde un computador personal se ofrecen por un precio ligeramente superior al de un libro.

Page 37: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

VI) LOS MICROCONTROLADORES DE 8 BITS. LOS " PIC "

2.1 LA ELECCION.

A continuación resumimos algunas características, por las cuales los profesionales de la Microelectrónica y la Microinformática; prefieren la aplicación de PIC'S en sus diseños:

e Sencillez de manejo Buena información Buen promedio de parámetros: velocidad consumo tamaño, alimentación, código compacto, etc. Herramientas de desarrollo fáciles y baratas.

0 Diseño rápido

Los PIC deslumbran a quienes lo usan porque:

0

o

Las programas son compactos. 0

a

*

Su costo es comparativamente inferior al de sus competidores. Tienen un juego reducido de instrucciones, 35 en la gama media.

Bajo consumo aunado a un amplio rango de voltajes de alimentación. Mucho herramientas de soRware que pueden recoger libremente a través de Internet desde Microchip. Existe una gran variedad de herramientas hardware que permiten grabar, depurar, borrar y comprobar el comportamiento de los PIC. La gran variedad de modelos de PIC permite elegir el que mejor responde a los requerimientos de la aplicación.

2.2 LA FAMILIA DE LOS PIC

Una de las labores más importantes del ingeniero en diseño es la elección del modelo de inicrocontrolador que mejor satisfaga las necesidades del proyecto con el mínimo presupuesto.

En 1997 el fabricante los PIC dispone de 52 versiones diferentes y cada año aumenta considerablemente su lista.

Microchip dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a la mayoría de los clientes potenciales.

37

Page 38: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

2.2.1 GAMA ENANA: PIClLC(F)XXX DE 8 TERMTNALES

Se trata de un grupo de PIC de reciente aparición que ha acaparado la atención del mercado. Su principal característica es su reducido tamaño, al disponer todos sus componentes de 8 terminales. Se alimenta de un voltaje de corriente continua comprendido entre 2.5 V y 5.5V y consume menos de 2 mA. Cuando trabaja a 5V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones respectivamente. En la siguiente figura se miiestra el diagrama de conexión de uno de estos PIC.

Diagrama de conexiones de los PIC I 2 C m de la gama enmaa

Aunque las PIC enculos sob tieijen 8 terminales, pueden destinar h t a 4 como líneas de E/S para los perijiiricos porque disponen de un osciludor inferno R-C.

La siguiente tabla presenta las principales características de los modelos de esta subfamilia que el fabricante tiene la intención de potenciar en un futuro próximo. Los modelos 12C5XX pertenecen a la gama baja, siendo el tamaño de las instrucciones de 12 bits; mientras que los a2C6XX son de la gama media y sus instrucciones tienen 14 bits. Los modelos 12F6XX poseen memoria FLASH para el programa y EEPROM para los datos.

MODELO

PIC12C508 PIC12C509 PIC12C670

PIC1 2C680

PIC12C681

5 12x1 2 1024x 12 512x14 1024x14 I i::;: 2048x 14 512x12 80x8 y 16x8

(FLASH) ( EEPROM) 1024x14 8 0 x 8 ~ 1 6 ~ 8

(FLASH) (EEPROM)

4MHz I 6 I 4 M H Z 6 2 4 m z 6 4

TEMPORIZADO TERMiNA ,YqT TMRO + WDT 8 TMRO + WDT 8 TMRO + WDT

Caracteristicas de los modelos PIC I2C(F)XX de la gama enana.

38

Page 39: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

2.2.2 GAMA BAJA O BASTCA: PIC16C5X CON INSTRUCCIONES DE 12 BITS

MODELO

PIC16C52 PIC16C54

PIC16C54

Se trata de una serie de PIC de recursos limitados, pero con una de las mejores relaciones costdprestaciones. Sus versiones están encapsidadas con 18 y 28 terminales y pueden alimentarse a partir de una tensión de 2.5 V, lo que les hace ideales en las aplicaciones que funcionan con pilas. Tiene un repertorio de 33 instrucciones cuyo formato consta de 12 bits. No admiten ningún tipo de interrupción y la Pila solo dispone de dos niveles.

MEMORTA MEMORT FRECUEN LINEA TEMPORTZAD TERMINA

(x12BITS) DATOS MAXIMA E/S

384 25 4 m z 4 TMRO + WDT 18 512 25 20 M H Z I2 TMRO+WDT I8 512 25 20 h4Hz 12 TMRO+WDT 18

PROGRAMA A CIA S ORES LES

EPROM ROM (bytes)

A continuación se muestra su diagrama:

A PIC16CRS

4A PIC16C55 PIC16C56

Diagrama de conexiones de los PIC de lo gama baja que corresponden a la nomenclalura PIc'I6C54,t%

25 20 MHz 12 TMRO+WDT 18

512 24 20 MHz 20 TMRO+WDT 28 1 K 25 20 h4Hz 12 TMRO+WDT 18

512

La siguiente tabla presenta las principales características de esta subfamilia:

39

Page 40: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

PIC16C57 2K 72 20 MHz 20 TMRO-tWDT PICl6CR5 2 72 20 MHz 20 TMRO+WDT

PíC16C58 2 K 73 20 MHz 12 TMRO+WDT

PIC 16CR5 2 73 20 MHZ 12 TMRO+WDT

7B K

A

; 8A K

Principles caracíerísíicas de los mudelos de la gama baja

28 28

18

18

2.2.3 GAMA MEDIA: PICl6CXXX CON INSTRUCCIONES DE 14 DITS

Es la gama mas variada y completa de los PIC. Abarca los modelos con encapsulado desde 18 terminales hasta 68, cubriendo varias opciones que integran abundantes periféricos. Dentro de esta gama se halla el " fabuloso PIC 16x84" y sus variantes.

El repertorio de instrucciones es de 35 de 14 bits cada una y compatible con la de la gama baja. Sus distintos modelos contienen todos los recursos que se precisan en las aplicaciones de microcontroladores de 8 bits: también dispone de interrupciones y una Pila de 8 niveles que permite el anidamiento de subnitinas.

L a gama media puede clasificarse en las siguientes subfamilias:

a) Gama media estándar (PICC55X). b) Gama media con comparador analógico (PIC 1 6C62W64W66X): c) Gama media con módulos de captura (CCP), modulación de anchura de impulsos

d) Gama media con CAD de 8 bits (PIC 16C7X). e) Gama media con CAD de precisión (PIC 14000). f) Gama media con memoria FLASH y EEPROM (PIC 16X8X) g) Gama media con driver LCD (PIC 16C92X).

(PWM) y puerto serial (PIC 16C6X).

Encuadrado en la gama media también se halla la versión PIC14C000, que soporta el diseño de controladores inteligentes para cargadores de baterías, pilas pequeñas, fuentes de alimentación inintemmpibles y cualquier sistema de adquisición y procesamiento de señales que requiera gestión de la energía de alimentación. Los PIC14COOO admiten cualquier tecnología de las baterías como Li Ion, NiMH, NiCd, Pb, y Zinc.

A continuación se muestra las principales características de los PIC de gama media:

40

Page 41: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

MODELO

PIC16C84

PIC16f84

PIC16f83

PIC16CR 84

PIC16Cr8 I 3

I

Caracierisiicas relevonies de los motlelos pic16x8x de la gama media.

MEMORIA MEMORIA REGISTR TEMPORWAD E/S RANG PATIT PROGRAMA DATOS os ORES O AS

RAM ESPECIFI VOLTA EEPROM cos JE

1 Kx14 36 64 I1 4 13 2-6 18 EEPROM

1K x 14 68 64 1 1 4 13 2-6 18 FLASH

512Kx 14 36 64 1 1 4 13 2-6 18 FLASH

1Kx14ROM 68 64 1 1 4 13 2-6 18

512K x 14 36 64 1 1 4 13 2-6 18 ROM

En la siguiente figura se muestra el diagrama de conexiones del PIC16C74 de 40 terminales, el cual ofrece una gran variedad de recursos que pueden incluir los PIC de esta gama.

Diagrama de ierminales del PIC16C74, U F ~ O de los modelos máy representaiivm de la gama media

41

Page 42: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

2.2.4 GAMA ALTA: PICl7CXXX CON INSTRUCCIONES DE 16 BITS

MEM. DATO

Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema gestión de interrupciones vectorizadas niuy potente También requieren variados controladores de periféricos, puertos de comunicación serial paralelo con elementos externos y una multiplicación hardware de gran velocidad.

REG- TEMP. CA PW ESPE P M

Quizás la característica más destacable de los componentes de esta gama es su arqzriteciirr'a abierta, que consiste en la posibilidad de ampliación del microcontrolador con elementos externos. Para este fin, las terminales sacan ai exterior las líneas de buses de datos, direcciones y control, a las que conectan las memorias o controladores periféricos. Esta filosofía de construcción del sistema es la que empleaba los micropmesadores y no suele ser una practica habitual cuando se emplea en microcontroladores.

S

A continuación se muestra las Características más relevantes de los modelos de esta gama, que son utilizados en aplicaciones muy especiales con grandes experimentos.

CI PROGRA

232 48

3 I 4 K x l6

4+WD 2 2

454

454

T

T 48 4+WD 2 2

48 4iwD 2 2

454

902

T

T 76 4+WD 4 3

76 4+WD 4 3 I I T 1 I

CAD 10 bit

12

12

- INTE RRU

P. 11

I t

11

18

18

- EIS

- 33

33

33

-

-

50

50

- Caracferísíicas mas destaca& de los npdelos PIC1 7CXXYd la gama alta

2.3 DESCRIPCION Y APLICACIONES GENERALES

La diversidad de los modelos de PIC tiene una finalidad: poder seleccionar él mas Por este motivo conviene tener un conocimiento adecuado para cada aplicación.

fundamental y actualizado de cada gama.

42

Page 43: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

En cuanto ala gama enana, la familia PICl2CSXX, se trata de un conjunto de Tienen un precio muy bajo y microcontroladores CMOS encapsulados con 8 terminales.

resultan sumamente competitivos.

Todos lo PIC enanos tienen un formato único para sus instrucciones, aunque hay modelos con 12 bits, otros con 14 y otros con 16. En este grupo los mas usados son los de 12 bits que proporcionan una extraordinaria compactación en el código de los programas, pudiéndose cifrar en el doble con respecto a otros similares.

La arquitectura RISC, tipo Harvard, unida a ia segmentación del procesador, consigue que el ciclo de ejecución de una instrucción sea de i microsegundo cuando funciona a una frecuencia de 4 MHz. Todas las instrucciones duran este tiempo menos las de salto, que duran el doble.

Los PIC enanos son muy apreciados en las aplicaciones de control de personal, en sistemas de seguridad y en dispositivos de bajo consumo que gestionan receptores y transistores de señales. Su pequeño tamaño los hace ideales en muchos proyectos donde esta cualidad es fundamental.

Dentro de la gama baja el PIC14000 resulta muy interesante por los recursos que incorpora: convertidor A/D de media p alta resolución (de 10 a 16 bits), sensor interno de temperatura, comunicación serial y muy bajo consumo. Son aptos para el control de cargadores de baterías, monitores de estado de pilas y baterías, fuentes de alimentación ininterrumpibles, gestión del consumo de energía de alimentación y sistemas de adquisición de datos, especialmente la temperatura.

La gama baja, representada por los PIClóCSX, tiene proyección sobre los dispositivos de alta velocidad usados en la industria de la automoción, el control de motores y los receptores transmisores y procesadores de bajo consumo encargados de la gestión de comunicaciones. Dentro de esta gama se encuentra la subfamilia gama media. Así, dispone de Pila de 8 niveles y múltiples &entes de interrupción.

Los microcontroladores PIC de la gam8 baja consiguen superar a sus competidores en velocidad, a los que aventajan en un factot cercano a 4; y también en compresión del código, que llega a ser del doble.

En la gama media hay una subfamilia, PIC16C62X, con recursos muy especiales, pero manteniendo el bajo precio y el consumo reducido, que es muy recomendable en aplicaciones relativas a la gestión de cargadores de baterías, control de sensores remotos con bajo consumo, etc.

Con diez versiones diferentes, la subfamilia PIC16C6X de la gama media se caracteriza por la incorporación de numerosos recursos (varios temporizadores, mC>dulo de captura, comparación, puerta serie SPí e I'C, puerta paralela PSP, etc. ). Mejorando estos modelos, la serie PIC1 6C7X es una muestra de las posibilidades del procesador RISC funcionando a 20 MHz, con un ciclo de instrucción de 200 ns. Los componentes de esta serie son muy

43

Page 44: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

apreciados en los sistemas de alarma y seguridad, así como en el control remoto de censores de automoción.

El PIC16X8X y sus variantes pertenecen a la gama media y su novedad es la inclusión de memoria EEPROM o Flash para contener el programa.

La memoria EEPROM, de igual forma que la Flash, puede grabarse y borrarse eléctricamente, sin someterla a rayos ultravioleta como sucede en el borrado de las EPROM con ventana. Además, se puede realizar la grabación y el borrado en serie, lo cual posibilita la grabación de un programa, su depuración y su borrado tantas veces como se desee y manteniendo insertado el PIC en el zócalo de la aplicación. La memoria EEPROM admite hasta 1 .OOO.OOO de ciclos de escrituralborrado y almacena la información durante más de 40 años. La memoria Flash tiene un valor típico de 1.000 ciclos de escrituraíborrado, pero aventaja técnicamente en varios aspectos a la EEPROM.

El hecho de poder emplear el mismo dispositivo cuando se realizan numerosos diseños o cuando se prueban muchos programas en la fase de aprendizaje resulta muy práctico y económico. Aplicaciones típicas de estos microcontroladores son el control de puertas de garaje, instrumentación, inmovilizadores de vehículos, tarjetas codificadas, pequeños sensores, etc. La grabación de los PIC16X8X en el propio circuito les hace recomendables para el almacenamiento de datos de calibración y para la modificación de programa al variar las condiciones del entorno; por ejemplo, al cambiar la pieza de un automóvil el programa de control del motor se modifica para su adecuación.

La serie PIC 16C9XX tiene como novedad la inclusión de un controlador programable de LCD, que gestiona íntegramente cualquier pantalla de cristal líquido.

Dentro de la gama alta, la subfamilia PIC17C4X, con 58 instrucciones de 16 bits, tarda en ejecutar cada una 121 nanosegundos cuando knciona a 3 3 M H z (las de salto tarda el doble). El núcleo de procesador está mejorado respecto al de la gama media y la Pila dispone de 16 niveles. También se han aumentado las fuentes de interrupción y se ha incorporado un rnultiplicador hardware de 8 s 8 bits en un ciclo, para aplicaciones que exijan un cálculo matemático intensivo. Aplicaciones industriales que requieran alta velocidad y cálculos complejos, instrumentación y telecomunicaciones, son las ideales para los componentes de la gama alta.

El PIC17C752 y el PIC17C756 son los modelos más representativos de la gama alta y están encapsulados con 64 y 68 patitas respectivamente. Tienen una elevada capacidad de memoria que alcanza los 8 K x 16 y 16 K x 16 en el área reservada a las instrucciones y 454 y 902 bytes en la reservada a los datos, respectivamente. Poseen 12 canales para un convertidor AD de 1 O bits, 4 canales para un módulo de captura de 16 bits, 2 USART, bus FC, etc.

44

Page 45: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

3 EL INTERIOR DEL PROCESADOR

3.1 ARQUITECTURA MODERNA Y REVOLUCIONARIA

Para lograr una comparación de código óptima y una velocidad superior a la de sus competidores los microcontroladores PIC incorporan en su procesador tres de las caracterisicas más avanzadas en los grandes compputadores:

0 Procesador tipo RISC 0 Procesador segmentado 0 Arquitectura Harvard

Con la incorporación de estos recursos los PIC son capaces de ejecutar en un ciclo de instrucción todas las instrucciones, excepto las de salto, que tardan el doble. Una condicion imprescindible es la simetria y ortogonalidad en el formato de las instrucciones, que en el caso de los PIC de la gama media tienen una longitud de 14 bits. De esta forma se consigue una compactación en el codigo del programa para un PIC16X84 2,24 veces superior al de un 68HC05, funcionando a la misma fercuencia.

El conjunto de instrucciones se reduce a 35 y sus modos de direccionamiento se siplifican al máximo.

Con la estructura segmentada se pueden realizar simultaneamente las dos fases en que se escomponen cad ainstrucción. Al misma tiempo en que se esta desarrollando la fase de ejecución de una instrucción se rrealiza la fase de busqueúa de la siguiente.

La arquitectura HARVRD es uno de los pilares en los que se sustenta la organizción de los PIC. Gracias a ella se pueden acceder de forma simultanea e independiente a la memoria de datos y a la memoria de iiistrucciones.

El aislamiento y diferenciación de los dos tipos de memoria permite que cada uno tenga la longitud y el tamaño más adecuado.

Otra característica relevante de los PIC es le manejo intensivo del Banco de Registros, los cuales participan de una manera muy activa en la ejecución de las instrucciones. Como se muestra en la siguiente figura la ALU efectúa sus operaciones lógico-aritméticas con dos operandos, uno que recibe desde el registro W (Work), que hace las veces de “Acumulador” en los micropocesadores convencionales, y otro que puede provenir de cualquier registro o del propio codigo de la instrucción. El resultado de la operación puede

45

Page 46: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

-.-

almacenarse en cualquier registro o en W. Esta funcinalidad da un carácter completamente ortogonal a las instrucciones que puede utilizar cualquier registro como operando fbente y destino. La memoria de datos RAM implementa en sus posicioneslos registros especificos y los de proposito general.

Para analizar de forma global el fbncionamiento del procesador, la parte importante es la ejución de una instrucción. Todo comienza con ala fase de busqueda, que la inicia el Contador de Programa facilitando la dirección de la memoria de instrucciones donde se ubica. Su código binario de 14 bits se lee y se carga en el Registro de Instrucciones desde donde se transfiere al decodificador y a la Unidad de Control. Aveces, dentro del código de la instrucción, existe el valor de un operando (literal) que se introduce como operando a la ALU, o bien una dirección de la memoria de datos donde recide otro operando.

La ALU es la encargada de realizar la operación logico-admetica que implica la instrucción decodificada. Uno de los operandos lo recibe desde el registro W y el otro desde un registro o de la propia instrucción.

Tanto el banco de registros especificos, en el que cada uno tiene una misión concreta, como el de registros de prosito general residen en la RAM. La EEPROM de datospuede contener datos que no se desee perder al quitar la alimentación, pero su acceso esta controlado con unos registros especiales,

La operación de E/S conlos perifericos las soportan las puertas A y B. Existe un Temporizador, TMRO, para encargarse de las funciones de control de tiempos. Finalmente, hay unos circuito auxiliares que dotan al procesador de unas interesantes posibilidades de seguridad, reduccion del consumo y reinicialización.

3.2 MEMORIA DE PROGRAMA

La arquitectura de los PIC de la gama media admite un mapa de memoria de programa capaz de contener 8192 instrucciones de 14 bits cada una. Este mapa se divide en paginas de 2048 osiciones. Para direccionar 8 K posiciones se necesitan 13 bits, que esla longitud que tiene el Contador de Programa. Sim embargo, existen Pics como el PIC 16C84, que sólo tiene implementadas 1 K de posiciones, por lo que ignora los 3 Bits de más peso del PC.

En la gama media la verdadera aportación es el PIC16C84, el cuál utiliza un memoria de programa del tipo EEPROM, capaz de ser escrita y borrada electricamente. Lo mismo sucede con el PIC16F84, cuya memoria de intrucciones es de tipo Flash.

3.2.1 EL CONTADOR DE PROGRAMA Y LA p r u

41 ibwal que todos los registros espeicíficos que controlan la actividad del procesador, el Contador de Programa, está implementado sobre un par de posiciones de la memoria RAM. Cuando se escribe el Contador de Programa como resultado de una operación de la ALU,

46

Page 47: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

los 8 bits de menos peso del PC residen en el registro PCL, que ocupa, repetido, la posición 2 de los dos bancos de la memoria de datos. Los bits de más peso, PC “12:8”, residen en los 5 bits de menos pqso del registro PC LATH, que ocupa la posición OA H de los dos bancos de la memoria RAM.

En las instrucciones GOTO y CALL de la gama media los 1 1 bits de menos peso del PC provienen del código de la instrucción y los otros dos de los bits PCLATH “4:3”.

Con los 1 1 bits que se cargan en el PC desde el código de las instrucciones GOTO y CALL, se puede direccionar una página de 2 K de la memoria. Los bits restantes PC “12: 11” tienen la misión de apuntar una de las cuatro páginas del mapa de memoria y, en los modelos de PIC que alcanzan ese tamaño dichos bits proceden de PCLATH “4:3”.

La pila es una zona aislada de las memorias de instrucciones y datos. Tiene una estructura LIFO, en la que el Último valor guardado es el primero que sale. Tiene 8 niveles de profundidad cada uno con 13 bits. Funciona como un “bufe?’ circular, de manera que el valor que se obtiene al realizar el noveno “desempilado” (pop) es igual al que se obtuvo en el primero.

La instrucción CALL y las interrupciones originan la carga del contenido del PC en el nivel superior ó ‘‘cima” de la Pila. El contenido del nivel superior se saca de la Pila a1 ejecutar las instrucciones RETURN, RETLW y RETFIE. El contenido del registro PCLATH no es afectado por la entrada ó salidad de información de la Pila.

3.3 MEMORIA DE DATOS RAM

La memoria de datos dispone de dos zonas diferentes:

e Area de RAM estática Ó SRAM, donde reside el Banco de Resgistros Específicos (SFR) y el Banco de Registros de Propósito General (GPR). El primer banco tiene 24 posiciones de tamaño byte, aunque dos de ellas no son operativas, y el segundo 36.

Area EEPROM de 64 bytes donde, opcionalmente se pueden almacenar datos que no se pierden al desconectar la alimentación,

La zona de memoria RAM se haya dividida en dos bancos (banco O y bancol) de 128 bytes cada uno. En algunos PICS como el PIC16C84 sólo se hallan implementadas fisicamente las 48 primeras posiciones de cada banco, de las cuales las 12 primeras están reservadas a los Registros de Propósito Especifico (SFR), que son los encargados del control del procesador y sus recursos. Algunos de dichos registros se hallan repetidos en la misma dirección de los dos bancos, para simplificar su acceso (KNDF, ESTADO, FSR, PCLATH e INTCON). La posición apuntada por la direccibn 7 H y la apuntada por la 87 H no son operativas. Los 36 registros restantes de cada banco se destinan a Registros de Propósito General y en realidad sólo son operativos los 36 del banco O porque los del banco, se mapean sobre el banco O, es decir cuando se apunta a un registro general del banco 1 , se accede al mismo del banco O. Tal como se muestra en la siguiente figura:

47

Page 48: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

MEMORIA DE oAms I55 INOF lNDF

o1 TMW OPTIO\I

az PC L P C L

O3 EtiT.*W E S T M O

Qa F SR FSR

os PUERTA.4 TIUS A

cx PUERTA6 TRr5 B

I

3F

La memoria RAM de datos se divide en dos bancos de 128 bytes cada uno, aunque solo los 48 primeros de cada banco están implementados en el PIC16C84. Las 12 primeras posiciones de cada banco se reservan a los registros de propósito especial (SFR), y las 36 restantes a las de propósito general (GPR)

Para seleccionar el banco a acceder hay que manipular el bit 5 (RPO) del reBistro ESTADO. Si RPO=l se accede al banco 1 , y si RPO=O se accede al banco O. Tras un Reset se accede automáticamente al banco O. Para seleccionar un registro de propósito general no hay que tener en cuenta el estado del bit R P O , porque al estar mapeado el banco 1 sobre el banco O, cualquier direccionamiento de un registro del banco I corresponde al homólogo del banco O. En e1 direccionamiento directo al los registros GPR se ignora el bit de más

48

Page 49: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

peso, que identifica el banco y sus direcciones están comprendidas entre el valor OxOc y Ox2f en hexadecimal.

Los registros SFR se clasifican en dos grupos. En uno se incluyen aquellos que controlan el núcleo del microcontrolador (ESTADO, OPTION, N C O N , etc.) y en el otro, los que caracterizan la operatividad de los recursos auxiliares y periféricos. La siguiente tabla presenta la estructura de estos registros y los valores que toman después de un Reset.

1 DTR I NOMBR

I I

I 0 3 H I ESTADO

04 €3 FSR

O5H PUERTA

I I B I

0 8 H EEDATA w OAH PCLATH

BANCO 1

L 1 83H I ESTADO

BIT BIT BIT BIT BIT BIT BIT BIT VALOR VALOR 7 6 5 4 3 2 1 O TRASEL OTRO

RESET RESET

Usa el contenido de FSR para direccionar la memoria (no ---- ---- ---- ..--- es un rea. físico) Reloj/Contador en tiempo real de 8 bits xxxx uuuu

Byte de menos peso del PC O000 O000

IRP RP1 RPO TO# PD# Z DC C O00 1 oooq lxxx quuu

Direccionarniento indirecto con INDF xxxx uuuu I xxxx uuuu

---- ----- ----- RA4 RA3 RA2 RAl R A O ---x ---u 1 xxxx uuuu

xxxx uuuu

O000 O000

,

, RB7 RB6 RB5 RB4 RB3 RB2 RBI RBO xxxx uuuu

I No implementado, se lee como “0” ---- ---- ---.. ---- Registro de datos de EEPROM xxxx uuuu

Registro de direccionamiento de EEPROM xxxx xxxx uuuu

xxxx uuuu

xxxx uuuu

O000 G E EEI TOI 1NT RBI TO1 INT RBI 0000 0000

E E E E F F F ooox ooou l

Usa el contenido de FSR para direccionar la memoria (no ---- ---- ---- ---- es un reg. fisico) RBP INT TOC TOS PSA PS2 PSI PSO 1 1 1 1 1 1 1 1 u E S E I 1 1 1 1111

Byte de menos peso del PC O000 O000 O000 O000

IRP I RPl I RPO I TO# I PD# I Z 1 DC I 2 O00 1 oooq -

Page 50: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

1 I I ' . I 1 I I 84 H FSR Direccionamiento indirecto con TNDF

86H I TRISB

1 xxx quuu xxxx uuuu

+ 88H EECONl

0000

1 GIE EEI TO1 TNT RBI TO1 INT RBI O000 0000 L E E E E F F F ooox ooou

--- -- -- Configuración Puerta A

Configuración Puerta B

xxxx uuuu ---1 1111 -1

1111 1111 1111

No implementado, se lee como "O'' ---e- ----- ----- I EEI I WE I WE I WR 1 RD

--- I ---- 1 --- I ConfiguraciónPuertaA 1 --o O000 I ---o

1111 1111

---O xOOO ---- q000 --- ---- ---- ..*c

l I I F 1 R I N I I Registro de Control EEPROM (no es un renistro físico)

Especificaciones de los registros SFR de los bancos de la memoria de datos RAM. La abreviatura x significa desconocida; u: no cambia; -:no implementado, se lee como O, y q: valor que depende de la condicibn

---- - - -e ---- ----

3.3.1 DIRECCIONAMIENTO DE LA MEMORIA DE DATOS

En los PIC de la gama media la memoria de datos esta organizada para alojar un máximo de 4 bancos de 128 bytes cada uno. En el PIC16C84 sólo tiene implementados los 48 primeros bytes de los bancos O y 1. Es el resto de los PIC de ésta familia, se destinan los bits del Registro ESTADO @PO y RP1) para determinar el banco y otros siete para elegir una de las 128 posiciones del banco seleccionado, como se muestra a continuación:

U

Page 51: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Los PIC de la gama media tienen organizada la memoria de datos en 4 bancos de 128 posiciones cada uno.

DIRECCIONAMTENTO DTRECTO

El operando que utiliza l a insstrucción en curso sw referencia mediante su dirección, que viene incluida en el código OP de la misma, concketamente en los 7 bits de menos peso. El banco a acceder lo detrminan los bits RPO RP1 del registro ESTADO. En el caso de los PIC 16C84 sólo se usa el bit RPO al tener implementados únivcamente dos bancos.

DIRECCIONAMTENTO INDIRECTO

Este modo de direccionamiento se usa cuando en una instrucción se utiliza como operando el registro INDF, que ocupa la dirección de O de ambos bancos. En realidad el registro iNDF no esta implementado fisicamente y cuando se les hace referencia, se accede a la dirección de un banco especificada con los 7 bits de menos peso del registro FSR. El bit de más peso de FSR junto al bit IRP del registro de ESTADO se encargan de seleccionar el banco a acceder, mientras que los 7 bits de menos peso apuntan a la posición.

3.4 EL REGISTRO DE ESTADO

Este registro es el mas usado, ocupa l a dirección 3 tanto del banco O como del banco 1 de la memoria de datos RAM. Sus bits tienen tres misiones distintas.

1 Se encargan de avisar las incidencias del resultado de la ALU C, DC y Z) 2 Indican el estado de Reset (TO# y PD#) 3 Seleccionan el banco a acceder en la memoria de datos (IRP, RPO y RP1)

En la siguiente figura se muestra el diagráma de distribución de los bits de registro ESTADO:

7 ESTADO O

R/w RIW w R R R/w R/w R/w I rRP RP1 1 RPO TO# I PD# 1 Z I DC I C I

Estructura interna del registro ESTADO. Los bits 3 y 4 soió se pueden leer, mientras los demás también se pueden escrbir

5 1

Page 52: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Los bits TO# y PD# indican el estado del procesador en algunas condiciónes y no se pueden escribir. Por este motivo la instrucción chf ESTADO deja el contenido de dicho registro con el valor OOOu uluu, siendo u el símbqlo de “no cambia”. Sólo se ponen a O los tres bits de más peso el bit Z (cero) se pone a 1 y los restantes no alteran su valor.

A continuación se describe la misión de los bits del registro ESTADO:

C: Gcarreoíllevada en el bit de más peso

1: Cuando este señalizador vale 1 indica que se ha producido acarreo en el bit de más peso del resultado al ejecutar las instrucciones &ofy a&hv.

O: No se ha producido acarreo.

C también actua como señalizador de acarreo en el caso de la instrucción de resta, como mbwf y sublw. En este caso la correspondencia es inversa (si vale 1 no hay acarreo y si vale O si).

DC: Acarreofilevada en el 4” bit

Igual significado que C pero refiriendose al 4” bit. De interés en operaciones en BCD.

Z Cero

1: El resultado de una instrucción lógico-aritmética ha sido O.

O: El resultado de una instrucción lógico-aritmética no ha sido O.

PD#: “Power Down”

1: Se pone automáticamente a 1 después de l a conexión de la alimentación al microcontrolador o al ejecutar ia instrucción clrwdt.

O: Se pone automáticamente a O mediante la ejecución de la instrucción sleep.

TO#: “Time Out’’

1: Se pone a 1 después de la conexión de la alimentación o al ejecutarse las instrucciones clrwdt y sleep.

O: Se pone a O cuando se produce el desbordamiento del Perro Guardián (Watchdog).

RPi - RPO: Selección de banco en direccionamiento directo.

52

Page 53: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Como el PIC16X84 sólo tiene dos bancos, únicamente emplea el bit R P O , de forma que cuando vale 1 se accede al banco 1 y cuando vale O se accede al banco O. Después de un Reset RpO=O,

TRP: Selección del banco eii direccionmiento indirecto.

Este bit junto con el de más peso del registro FSR sirven para determinar el banco de la memoria de datos seleccionado. En el PIC16X84 al disponer de dos bancos no se usa este bit y debe programarse como O.

53

Page 54: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

” __. .-

4 RECUSOS FUNDAMENTALES: TJCMPORIZADORES, PUERTAS DE E/S Y EEPROM DE DATOS.

4.1 EL PAPEL DE LOS TEMPORIZADORES,

Los PIC disponen de un procesador rápido y potente. En el se incluye la memoria de programa, la de datos, la ALU, la Unidad de Control y algunos registros especiales. Si dentro de un microcontrolador únicamente exsistiese un procesador sólo se podrían ejecutar instrucciones lógico-aritméticas y de transferencia. Pero un microcontrolador es mucho más que un procesador, es un “computador integral”, en el que además del procesador hay puertas de E/S para conectarse con periféricos, canales de comunicación, temporizadores para controlar tiempos, sistema de interrupciones capáz de detectar anomalías o sucesos especiales, sistemas de seguridad, modo de funcionamiento con bajo consumo y un largo etcétera de recursos que configuran la potencia integral de un computador.

Los PIC contienen todos los recursos posibles, aunque su fabricante no les incluye en todos los modelos, sino que los alterna para poderse ajustar óptimamente a las necesidades de cada diseño.

Los PIC 1 6X8X contienen pocos recursos en comparación a otros familiares, pero poseen los suficientes para resolver gran parte de las aplicaciónes típicas de los microcontroladores. Sobre todo disponen de una memoria de programa tipo EEPROM (FW16C84) Ó Flash (PXC16F8X), que Ies posibilita regrabar el programa en su totalidad.

A continuación se describen los recursos más importantes de los PXCi6X8X, que son:

0 Ternporizador/Contador TMRO Perro Guardián (Watchdog)

0 Puertas de E/S. Memoria EEPROM de datos.

4.2 TEMPORIZADOWCONTADOR TMRO.

Un4 de las labores más habituales en los programas de control de dispositivos suele ser determinar intervalos de tiempo concreto, y recibe el nombre de temporizador (timer) el elemento encargado de realizar esta función. También suele ser frecuente contar los impulsos que se producen en el exteríor del sistema, y el elemento destinado a este fin se denomina contador.

Si las labores del temporizador o contador se asignan a un programa principal se perdería mucho tiempo y el procesador tendría menos atención a actividades más importanten. Por éste motivo Se diseñan recursos específicamente orientados a estas misiones.

54

Page 55: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Los PIC16XSX poseen un temporizador/contador de 8 bits, llamado TMRO, que actúa de dos maneras diferentes:

1. Como contador de sucesos, que están representados por los impulsos que se aplican al pin RA4/TOCKI. Al llegar al valor FF H se desborda el contador y, con el siguiente impulso, pasa a O0 H, advirtiendo esta circunstancia activando un señalizador y/o provocando una interrupción.

3. Como temporizador, cuando se carga en el registro que implementa al recurso un valor inicial se incrementa con cada ciclo de ’instrucción hasta que se desborda, o sea, pasa de FF H a O0 H y avisa poniendo a 1 ‘un bit señalizador y10 provocando una interrupición, tal corno IC, muestra la siguiente figura:

Esquema simplificado de un tertíporizador contador. Corno temporizador se carga con un valor inicial que se va incrementando hasta el desbordamiento. Como contador va incrementando con cada impulso que se la aplica. AI alcanzar el máximo valor binario se “desborda” y pasa a cero,circunstancia que indica un señalizador.

Para que el TMRO fiincione como contador de impulsos aplicados a la patita TOTKI hay que poner a 1 el bit TOCS, que es que ocupa la posición 5 del registro OPTION.

En ésta situación, el registro TMRO, que es el hubicado en la dirección 1 del banco O de la memoria de datos, se incrementa con cada flanco activo aplicado en la patita TOCKI. El tipo de flanco activo se elije programando el bit TOSE, que es el que ocupa la posición 4 del registro OPTION. Si TOSE=l, el flanco activo es el descendente, y si TOSE=O, es el ascepdente. Cuando se desea que TMRO fiincione como temporizador el bit TOCS=O.

En realidad, los PIC16XSX y los de la gama baja disponen de dos temporízadores, el TMRO y el Perro Guardián. El primero actua como principal y sobre el recae el control de tiempos y el contaje de impulsos. El otro vigila que el programa no se “cuelgue”, y para ello cada cierto tiempo comprueba si el programa se está ejecutando normalmente. En caso contrario, si el control está detenido en un bucle infinito a la espera de algún acontecimiento que no se produce, el Perro Guardian “ladra”, lo que se traduce en un Reset que reinicializa todo el sistema.

55

Page 56: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

A menudo el T M R O y el Perro Guardián precisan controlar largos intervalos de tiempo y necesitan aumentar la duración de los impulsos de reloj que les incrementa.

Para cubrir este requisito se dispone de un circuito programable denominado divisor de frecuencia, que divide la fi-ecuencia utilizada por diversos rangos.

Para programar el comportamiento del TMRO, el Perro Guardián (WDT) y el divisor de fiecuencia utilizan algunos bits del registro OPTION y de la Palabra de Configuración. En la siguiente figura se proporciona un esquema simplificado de l a arquitectura del circuito del control de tiempos usado en los PIC 16X8X.

squema simplificado de la sección dedicada al control de tiempos en la arquitectura de los PIC 16X8X

El divisor de fiecuencia puede usarse como el TMRO ó con el WDT. Con el TMRO actúa como PRE-DIVISOR es decir, los impulsos pasan primero por el divisor y luego se aplican al TMñO, una vez aumentada su duración. Con el Perro Guardián actúa después, realizando la función dé POST-DIVISOR. Los impulsos que divide por un rango el divisor de frecuencia, pueden provenir de la señal de reloj interna (Fosc/4) o de los que se aplican a la patita TOCKI.

El TMRO se comporta como un registro de propósito especial (SFR) ubicado en la dirección 1 del banco O de la memoria de datos. En igual dirección, pero en el banco 1 , se halla el registro OPTION.

56

Page 57: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

TMRO puede ser leído y escrito en cualquier niomento al estar conectado al bus de datos. Funciona como un contador ascendente de 8 bits. Cuando hnciona como temporizador conviene cargarle con el valor de los impulsos que se quiere temporizar, pero expresados en complemento a 2. De esta manera, al llegar el número de impulsos deseado se desborda y al pasar por O0 H se activa el señalizador TOIF y/o se produce una interrupción.

Para calcular los tiempos a controlar con TMRO se utilizan las siguientes fórmulas prácticas:

Temporización =4- Tosc (valor cargado en el TMRO). (ñango del divisor).

0 Valor a cargar en el TMRO= Temporizaciód4ToscRango del Divisor.

En cualquier momento se puede leer el valor que contiene el TMRO sin detener su contaje. La isntrucción adecuada al caso es movf tmr0,w.

En la siguiente figura se muestra el esquema de funcionamiento del TMRO. Observece que hay un bloque que retrasa 2 ciclos el contaje para sincronizar el momento del incremento producido por la señal aplicada en TOCKI con el que producen los impulsos internos de reloj. Cuando se escribe TMRO se retrasan dos ciclos su incremento y se pone a O el divisor de frecuencia.

I I ','"-+?y-

Esquema general del funcionamiento del TMRO. Cuando cuando se desborda se pone a 1 el señalizador TOIF

4.2.1 EL REGISTRO OPTION

L a misión principal de este registro es controlar TMRO y el divisor de frecuencia. Ocupa la posición 81 H de la memoria de datos, que equivale a la dirección 1 del banco 1 . El bit TOCS (Timer O Clock Edge Select) selecciona en el multiplexor MPX1 la procedencia de los impulsos de reloj, que pueden ser los del oscilador interno (Foscí4) o los que se aplican desde el exterior de la patita TOCKI. El bit TOSE (Timer O Clock Source Select) elige el

57

Page 58: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

tipo de flanco activo en los impulsos externos. descendente y si TO$E=O el ascendente.

Si TOSE=l el flanco actvio es el

IN-rEac MU PSI I

El bit PSA del registro OPTION asigna el divisor de frecuencia al TMRO (PSA=O) o al WDT (PSA=l).

Pc<)

Los 3 bits de menos peso de OPTION seleccionan el rango por el que dividen el divisor de Frecuencia Jos impulsos que se le aplican en su entrada. La siguiente figura muestra la distribución y función de los bits OPTION.

D O o V <I I O 1 u O 1 1 1 o o 1 O 1 1 1 9 1 1 1

l:z 1:r. 1 rB t:16- 1:32 1 : 6.4 1:1243 1:25(1

Distribucion y asignación de funciones de los bits del registro OPTION

El bit 6 INTEDG (Interrupt Edge) sirve para determinar el flanco activo que provocará una interrupción externa al aplicarse a la patita RBO/iNT. Un 1 si es ascendente y un O si es descedennte.

El bit 7 ñBPU# (RB Pull -Up) activa, si vale O, o desactiva, cuando vale I , las resistencias Pull -Up que pueden conectarse en las líneas de la puerta B.

58

Page 59: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

4.3 EL PERRO GUARDIAN (WDT)

Se trata de un contador interno de 8 bits que origina un Reset cuando se desborda. Su control de tiempos es independiente del TMRO y está vasado en una simple red R-C. Su actuación es-

4.4.1 LA PUERTA A

Las líneas RA3-RAO admiten niveles de entrada TTL y de salida CMOS. La línea RA4/TOCKI dispone de un circuito Schmitt Trigger que proporciona una buena inmundad al ruido y la salida tiene drenador abierto. RA4 multiplexa su función de E/S con la de entrada de impulsos externos para el TMRO.

Los bits del registro TRISA configuran a las líneas de la puerta A como entradas si están a 1 y como salidas si están a O.

En el circuito mostrado a continuación se muestra la adaptación de las patitas RA3-RAO a las señales internas del procesador.

I .

Conexión electrónica de las patitas RA3-RAO on las líneas de control y del bus de datos del procesador

Cuando se lee una línea de la puerta A (instrucción movfk pueitaa) se recoge el nivel Las líneas cuando actúan como salidas están lógico que tiene en ese momento.

59

Page 60: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

“lacheadas”, lo que significa que sus patitas sacan el nivel lógico que se haya cargado por última vez en el registro PUERTAA. La escritura de una puerta implica la operación c‘lectura/modificación/escrituray’. Primero se ie’e la puerta, luego se modifica el valor y finalmente se escribe en el “latch” de salida.

De la figura anterior se puede observar que cuando se saca un nivel lógico por una línea de l a puerta A, primero se deposita en la línea correspondiente del bus interno de datos y se activa la señal Write, lo que origina el almacenamiento de dicho nivel en la báscula de datos. En ésta situación, la báscula de configuración debería contener un O para que actuase como salida. Con estos valores la puerta OR tendría un O en su salida y la AND tmbién. Estos valores producen la conducción del transistor PMOS superior y el bloqueo del NMOS. Así, la patita de E/S queda conectada a la V»D tiene nivel alto. Como la línea de salida está lacheada conserva su valor hasta que no se reescriva en la báscula D.

Si una línea actúa como entrada el nivel lógico depositado en ella desde el exterior pasa a la línea correspondiente del bus interno de datos cuando se activa la señal READ y se hace conductor el dispositivo triestado que les une. Al programarse COMO entrada, los dos transistores MOS de salida quedan bloqueados y la salida en alta impedancia. Hay que tener en cuenta que cuando se lee una línea de entrada se obtiene el estado actuál que tiene su patita correspondiente y no el valor que haya almacenado en la báscula de datos. La información presente en una línea de entrada se muestrea al iniciarse el ciclo de instrucción y debe mantenerse estable durante su desarrollo.

4.4.2 LA PUERTAB

Consta de 8 líneas bidireccionales de E/S, RB7-RB0, cuya información se almacena en el registro PUERTAB, que ocupa la dirección 6 del banco O. El registro de configuración TRISB ocupa la misma dirección en el banco 1.

La línea RBOmJT tiene dos funciones multiplexadas. Además de la patita E/S, actúa como patita para la petición de una interrupción externa, cuando se autoriza esta función mediante la adecuada programación del registro INTCON.

A tadas las líneas de esta puerta se les permite conectar una resistencia PULL-UP de elevado valor con el positivo de la alimentación. Para este fin hay que programar en el registro OPTION el bit RBPU##=O, afectando la conexión de la resistencia a todas las líneas. Con el Reset todas las líneas quedan configuradas corno entradas y se desactivan las resistencias PULL-UP.

Las 4 líneas de más peso, RB7-RB4, pueden programarse para soportar una misión especial. Cuando las cuantro líneas actúan como entradas se les puede programar para generar una interrupción si alguna de ellas cambia su estado lógico.

60

Page 61: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Esta posibilidad es muy práctica en el control de teclados. En la siguiente figura se muestra el esquema de conexión entre las patitas RB7-RB4 y las líneas correspondientes del bus de datos interno.

t

4. t J

Conexión de las patitas RB7-RB4 y las líneas correspondientes ai bus interno de datos y las señales de control

El estado de las patitas RB7-RB4 en modo entrada se compara con el valor antiguo que tenían y que se había lacheado durante la ultima lectura de la puerta B. El cambio de estado en algunas de estas líneas origina una interrupción y la activación del señalizador RBIF.

La línea RB& tambiéii se utiliza para la grabación serie de la memoria de programa y sirve para soportar la señal de reloj. La línea ñ ü 7 constituye la entrada de los datos en serie.

4.5 LA PALABRA DE CONFIGURACION

61

Page 62: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Se trata de una posición reservada de la memoria de programa situada en la dirección 2007 H y accesible únicamente durante el proceso de grabación. Al escribirse el programa de la aplicación es necesario grabar el contenido de esta posición de acuerdo con las caractensticas del sistema.

En la siguiente figura se muestra la distribución y asignación de los 14 bits de la palabra de confibwración de los PIC 16FS;IZ que tienen las siguientes fiinciones:

Distribución de los bits de la Palabra de Configuración del PIClóFSX, que ocupa la dirección 2007 H de la memoria de programa

CP: BITS DE PROTECCION DE LA MEMORIA DE CODIGO

1 : No protegida

O: Protegida. El programa no se puede leer, evitando copias. Tampoco se puede sobreescribir. Además evita que pueda ser accedida la EEPROM de datos y, finalmente, si se modifica el CP de O a I , se borra completamente la EEPROM.

PWRTE: ACTWACION DE L TEMPORIZADOR “POWER-UP”

El temporizador “power-up” retrasa 72 ms la puesta en marcha o Reset que ese produce al conectar la alimentación ala PIC, para garantizar la estabilidad de la tensión aplicada.

I : Desactivado

O: Activado

WDTE: ACTlVAClON DE L PERRO GUARDIAN

1: Activtido el WDT

O: Desactivado

FOSCí-FOSCO: SELECCIÓN DEL OSCPLADOR UTILIZADO

1-1 : Oscilador RC

62

Page 63: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

1-0: Oscilador HS

0-1 : Oscilador XT

0-0: Oscilador LP

Una de las pocas diferencias que tiene el PIC16C84 con el PIC 16F84 es la actuación del bit PWRTE de la Palabra de Configuración, que tiene invertida su función en ambos. En el primero cuando ese bit vale 1 el temporizador de Power-Up esta activado, mientras que siicede lo contrario en el segundo. Este temporizador retrasa 73 nis el funcionamiento del microcontrolador al conectarse la alimentación para asegurar la estabilidad del voltaje aplicado.

4.5.1 PALABRAS DE IDENTIFICACI~N (ID)

Son 4 posiciones reservadas de l a memoria de programa ubicadas en la las direcciones 2000 H - 3003 H, que no son accesibles en el funcionamiento normal del microcontrolador y solo pueden ser leídas y escritas durante el proceso de grabación

Solo se utilizan los cuatro bits de menos peso de cada palabra de identificación (ID), en donde se almacena un valor que puede consistir en un número de serie, códigos de identificación, numeraciones secuenciales o aleatonas, etc.

4.6 LA MEMORIA EEPROM DE DATOS

Los PIC16X8X tienen 64 bytes de memoria EEPROM de datos, donde se pueden almacenar datos y variables que interesa que no se pierdan cuando se desconecta la alimentación al sistema. Soporta 1,000,000 de ciclos de escrituraborrado y es capaz de guardar la información sin alterarla mas de 40 años.

La memoria EEPROM no esta mapeada en a zona de la memoria de datos donde se ubican los registros SFR y GPR. Para poder leerla y escribirla durante el funcionamiento normal del microcontrolador hay que utilizar 4 registros del banco SFR:

EEDATA EEADR EECONI EECON:!

En el registro EEADR, ubicado en la dirección 9 del banco O, se carga la dirección a acceder de la EEEPROM de datos. Las 64 posiciones de un Byte ocupan las direcciones de un mapa que comienza en O0 H y termina en 3F H, por eso los 2 bits de mas peso del registro EEADR siempre valen O.

63

Page 64: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

En el registro EEDAI'A, ubicado en la dirección 8 del banco O, se depositan los datos que se leen o se escriben.

El registro EECON 1, que ocupa la dirección 88 H de la memoria de datos, o la dirección 8 H del banco 1, tiene misiones de control de las operaciones en la EEPROM y la distribución de sus bits se presenta en la siguiente figura, mientras que l a función de cada uno se explica a continuación:

EECONl

Distribución de los bits del registro EECONl de los PIC 16X8X

RD: LECTURA

I: Se pone a 1 cuando se va a realizar un ciclo de lectura de la EEPROM. Luego pasa a O automáticamente.

WR: ESCRITIJRA

I: Se pone a 1 cuando se inicia un ciclo de escritura de la EEPROM. Cuando se completa el ciclo pasa a O automáticamente.

WREN: PERMISO DE ESCRIURA

1: Permite la escritura de la EEPROM.

O: Prohibe la escritura.

WRERR: SENALIZADOR DE ERROR EN ESCRITURA

1: Se pone a 1 cuando una operación de escritura ha terminado prematuramente

O: La operación de escritura se ha completado correctamente.

EEIF: SEÑALIZADOR DE FINAL DE OPERACTÓN DE ESCRITURA

1: completado con éxito. Se pone a O por programa.

Cuando este señalizador se pone a 1 indica que a operación de escritura se ha

O: La operacibn de escritura no se ha completado

64

Page 65: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Un ciclo de escritura de una posición de la EEPROM de datos tiene una duración típica de 10 ms, que resulta muy larga para la velocidad del procesador. Por este motivo existen varios bits en el registro EECONl para supervisar la completa y correcta terminación del mismo.

El registro EECON2 eri realidad no esta implementado físicamente. Al leerlo todos sus bits son O. Solo se emplea como un dispositivo de seguridad durante el proceso de escritura de la EEPROM, para evitar las interferencias en el largo intervalo de tiempo que precisa su desarrollo.

Se inicia un ciclo de lectura colocando la dirección a acceder. en el registro EEADR y poniendo el bit RD=l en el registro EECONI . El dato leído estará disponible en le registro EEDATA en el siguiente ciclo y permanecerá en él hasta que se realice una nueva lectura o escritura en la EEPROM. PROCESA DE ESCRIIURA

Para escribir una posicibn de la EEPROM da datos el usuario debe seguir una determinada secuencia de instrucciones en las que participa el registro EECON2. Este registro, que en realidad no se halla implementado físicamente, solo asume fiinciones de seguridad en el proceso, cargándose en cl dos valores concretos: 55 H AA I-i. La duración típica de un ciclo de escritura es de 10 ms, que es notablemente larga en comparación con Ia velocidad del PIC.

El ciclo de escritura coniienza cargando en EEADR la dirección de la posición a escribir y en el registro EEDATA el valor a grabar.

Al acabar el proceso de escritura en el bit WR pasa a valer O automáticamente, mientras que el señalizador EELF se pone a 1. Este ultimo bit hay que ponerlo a O posteriormente inediaiite sottwore.

Una buena precaución es verificar si la escritura de la EEPROM ha sido correcta, para lo cual se suele restar el dato escrito con le que se existe en el registro EEDATA. Si no se ha producido error el señalizador Z pasa a valer 1.

65

Page 66: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

5 INTERRUPCIONES, RESET Y RECURSOS AUXILIARES

5.1 IMPORTANCIA DE LAS INTERRUPCIONES

Las llamadas a subrutinas mediante la instrucción CALL son desviaciones del flujo de control del programa originadas por instrucciones, por lo que se consideran síncronos. Se producen cada vez que se ejecuta dicha instrucción

Las interrupciones son desviaciones del flujo de control del programa originadas asíncronamente por diversos sucesos que no se hallan bajo la supervisión de las instrucciones. Dichos sucesos pueden ser externos al sistema, como la generación de un flanco o nivel activo en una patita del microcontrolador, o bien internos, como el desbordamiento de un contador.

El comportaniiento del microcontrolador ante la interrupción es similar al de la instrucción CALL de llamada a subrutina. En ambos casos se detiene la ejecución del programa en curso, se salva la dirección actual del PC en la Pila y se carga el PC con una dirección, que en caso de CALL viene acompañando a al propia instrucción, y en el caso de una interrupción es una dirección "reservada" de la memoria de código, llamada vector de interrupción ,

En los PICi6X8X el Vector de Interrupción se halla situado en la dirección 004 H, en donde comienza la Rutina de Servicios a la Interrupción (RSI). En general, en dicho Vector se suele colocar una instrucción de salto incondicional (GOTO), que traslada el flujo de control a al zoiia de la memoria de código destinada a contener la rutina de atención a la internipción.

L a RSl suele comenzai- guardando en la memoria de datos algunos registros cspecíficos del procesador. Concretamente aquellos que la RSI va a emplear y va a alterar su contenido. Antes del retorno al programa principal se recuperan los valores guardados y se restaura completamente el estado de procesador. Algunos procesadores salvan estos registros en la Pila, pero los PIC no disponen de funciones para meter (push) y sacar (pop) información de la Pila, utilizando para este fin registros de propósito general de la memoria de datos.

Los PIC i6X8X pueden ser interrumpidos por 4 causas diferentes, pero todas ellas desvían el flujo de control a la dirección 0004 H, por lo que otra de las operaciones iniciales de la KSl es averiguar cuál de las posibles causas ha sido la responsable de la interrupción en curso. Para ello se exploran los serializadores de las fuentes de interrupción.

Otro detalle importante de la RSI de los PIC16XSX es que es que estos microcontroiadores poseen un bit GIE (Global Intempt Enable) que cuando vale O prohibe todas las interrupcioiies. Pues bien, al comenzar la RSI dicho bit GIE se pone automáticamente a O, con objeto de no atender nuevas interrupciones hasta que se termine la que ha comenzado. En el retorno final de la interrupción, GIE pasa a valer

66

Page 67: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

automáticamente 1 para volver a tomar en cuenta las interrupciones. Dicho retorno de interrupción se realiza mediante la instrucción RETFIE.

Antes del retorno conviene borrar el señalizador de la causa de interrupción que se ha atendido, porque si bien los señalizadores se ponen a 1 automáticamente en cuanto se producen la causa que indican, la puesta a O se hace por programa. En al siguiente figura se muestra un organigrama de las fases más importantes que se desarrollan durante el proceso de ejecución de una interrupción.

4

! V E h a R D€ I WTE RRU P C I ~ N i

SALTO A LA RUTIMA DE

Organigrama de las operaciones principales de una interrupción en los PIC 16X8X. El señalizador de la fuente de interrupción hay que borrarlo antes del retorno para que no se

repita la misma interrupcibn

67

Page 68: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

5.2 CAUSAS DE lNTERR1JPCION

Los PIC 16X8X tienen 4 causas o fuentes posibles de interrupción:

1 Activación de iri patita RBOíINT. 2 Desbordamiento del temporizador TMRO. 3 Cambio de estado en una de las 4 patitas de mas peso (RB7:RB4), de la puerta B. 4 Finalización de la escritura e la EEPROM de datos.

Cuando ocurre cualquiera de los 4 sucesos indicados se origina una petición de intermpciirn, que s i se acepta y se atiende comienza depositando el valor del PC actual en ai Pila, poniendo el bit GIE=O y cargando n el PC el valor 0004 H, que es el vector de interrupción donde se desvía el flujo de control.

Cada fuente de interrupción dispone de un señalizador o “flag”, que es un bit que se pone automáticamente a 1 cuando se produce. Además cada fbente de intempcián tiene otro bit de permiso, que según su valor permite o prohibe la realización de dicha interrupción.

5.2.1 EL REGISTRO DE CONTROL DE INTERRUPCIONES INTCON

La mayor parte de los señalizadores y bits de permiso de las fuentes de interrupción en los PIC16X8X están implementados sobre los bits del registro ZNTCON, que ocupa la dirección OB H del banco O, hallándose duplicado en el banco 1, como lo muestra la siguiente fibwra:

(FlG. 6.2, PAG. 120)

Distribución de los bits del registro de Control de las Interrupciones en los PtC168X GIE: Permiso Global de Interrupciones.

1: Permite la ejecución de todas las interrupciones, cuyos bits de permiso individuales también las permiten.

O: Prohibe todas las interrupciones.

ERIE: Permiso de Interrupciones por fin de la escritura en la EEPROM.

1: Permite se origine una interrupción cuando termina la escritura de la EEPROM de datos.

O: Prohibe que se produzca ésta intempci6n.

TOTE: Permiso de Interrupción por sobrepasamiento del TMRO.

1: Permite una Interrupción al desbordarse el TMRO.

68

Page 69: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

O: Prohibe esta interrupción.

INTE: Permiso de Interrupción por activación de la patita RBOflNT.

1: Permite la Interrupción al activarse RBOENT.

O: Prohibe esta interrupción.

RBIE: Permiso de Interrupción por cambio de estado en RB7:RB4.

1: Permite esta Interrupción.

O: Prohibe esta interrupción.

TOIF: Sefializador de sobrepasamiento del TMRO.

1: Se pone a 1 cuando ha ocurrido el sobrepasamiento.

O: lndica que el TMRO no se ha desbordado.

IN'TF: Señalizador de Hctivación de la patita RBO/INT.

1: Se pone a 1 al activarse RBO/INT.

O: indica que KBO/INT aún no se ha activado.

RBIF: Señalizador de cambio de estado en las patitas RB7:RB4.

1 : Pasa a 1 cuando cambia el estado de alguna de estas 4 líneas.

O: No ha cambiado ei estado RE%7:RB4.

Cuando GIE =O no se acepta ninguna de las interrupciones. Si GIE=I sólo se aceptan aquellas fuentes de interrupción cuyo bit de permiso se lo consienta.

Siempre que se produzca una interrupción por cualquier causa, GIE=O y el PC se carga con el valor 0004 H, que es el vector de interrupción. Para conocer que causa ha provocado la interrupción se exploran los señalizadores, tres de los cuales se ubican en el registro INTCON y el cuarto, EIiIF, que se pone a 1 cuando finaliza la escritura de la EEPROM, se haya en el bit 4 del registro EECONl .

Los señalizadores deben ponerse a O por programa antes del retorno de la interrupción y son operativos aunque l a interrupción este prohibida con su bit de permiso correspondiente.

5.2.2 INTERRUPCIUN EXTERNA INT

69

Page 70: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

Esta fuente de interrupción es sumamente importante para atender acontecimientos externos en tiempo real. Cuando ocurre alguno de ellos activa la patita RBOANT y se hacc una petición de interrupción. Entonces, de forma automática, el bit INTF=I y, si el bit de permiso INTE=l, se autoriza el desarrollo de la interrupción.

Mediante el bit 6, llamado iNTDEG, del registro OPTION se puede seleccionar cuál será el flanco activo en RBO/INT. Si se desea que sea el ascendente se escribe un 1 en dicho bit, y si se desea el descendrnte se escribe un O.

El procesador explora el seílalizador lNTF al final del primer ciclo de reloj de cada ciclo de instrucción. Recuérdese que cada ciclo de instrucción constaba de 4 ciclos de reloj: Ql , Q2, Q3 y Q4. Al terminar Qi, se exploran los señalizadores produciéndose un período de latencia de 3 o 4 ciclos de instrucción desde el momento que hay un señalizador activado hasta que se iniciali7a l a interrupción.

Si INTE=1 y se aplica un flanco activo en RBO/INT, el señalizador INTF se pone a 1 automáticamente y se solicita una interrupción que es aceptada cuando GIE=l, Antes de regresar al programa principal hay que borrar INTF, puesto que en caso contrario al ejecutar la instrucción de retorno RETFE se volvería a desarrollar el mismo proceso de interrupción.

5.2.3 INTERRUPCION POR DESBORDAMIENTO DEL TMRO.

Cuando el TMRO se desborda y pasa del valor FF H al O0 H, el señalizador TOIF se pone automáticamente a I . Si, además, el bit de permiso de la intemipción del TMRO, TOIE=1 y el bit de Penniso Global de Interrupciones GIE=l, se produce una interrupcibn.

Si no se recarga el 7'1LIRO cuando se desborda, sigue contando desde O0 H a FF H. En cualquier momento se puede leer y escribir este registro, pero cada vez que se escribe se pierden dos ciclos de reioj para la sincronización.

Cuando se carga inicialmente el TMRO con el valor NIO, cuenta 256-N impulsos, siendo el tiempo que tarda en hacerlo el que expresa la siguiente fórmula,

e Temporización = 4 Tosc - (256 - Nlo) - Rango del Divisor de Frecuencia

5.2.4 DE LA PUERTA B.

INTERRUPClON POR CAMBIO DE ESTADO EN LAS LINEAS RB7:RB4

Esta interrupcióii está diseñada específicamente para detectar la pulsación de'una tecla correspondiente a un teclado matricial que se explora con 4 líneas de EíS. Para esta función se destinan las lineas RB7: RB4 de la puerta B, que cada vez que cambia el estado iógico de una de ellas forza al señalizador RBIF a ponerse a 1, y si los bits de permiso RBIE=GIE=l se autorizd la interrupción.

70

Page 71: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

5.2.5 INTERRIJ PClON POR FINAI,IZACION DE L A ESCRITURA EN LE EEPROM DE DATOS.

1 1 POR (RESET POR CONEXlÓN VDD)

El tiempo típico que tarda en desarroilarse una operación de escritura en la EEPROM de datos de los PIC 16X8X es de 10 ms, que es considerable comparado con la velocidad a la que el procesador ejecuta instrucciones. Para asegurarse que se ha completado la escritura y puede continuarse con el flujo de control del programa es aconsejable manejar la interrupción que se origina al finalizar la escritura, que pone automáticamente el señalizador EEIF a I , y se autoriza siempre que los bits de permiso EEIE=GIE=I .

Cuando se describió el proceso de escritura de la EEPROM de datos se indicó que se usaba un registro no real para asegurar la misma. Se trataba del EECON2, en el que se grababan dos valores el 55 H y el AA H. Durante la escritura de este registro debe prohibirse la aceptación de interrupciones para salvaguardar la operación de escritura, por eso en ese módulo se pone GFE=O.

En los PIC16CS4 y FIC16F8X se puede leer y escribir la EEPROM de datos aunque se haya protegido el código. En los PICCR8X, que disponen de memoria ROM para el código, existen dos bits para el código de protección: uno dedicado ala ROM de código y el otro a la EEPROM de datos

5.3 REINICIALIIZACION O RESET

Lo PICl6X8X tienen cinco causas que provocan la reinicialización del sistema, que consiste en cargar al PC con el valor O00 H (vector de Reset) y poner el estado de los bits de los registros específicos (SFR) con un valor conocido.

1 Conexión de la alimentación. POR (“Power On Reset”). 2 Activación de la patita MCLR##(“Master Clear Reset”), en funcionamiento normal. 3 Activación de la patita MCLR# en estado de reposo. 4 Desbordamiento de¡ Perro Guardián en funcionamiento normal. 5 Desbordamiento del Perro Guardián en estado de reposo.

En el registro ESTADO hay dos bits que indican las condiciones en las que se ha originado el Reset. Se trata de TO# (Timer Out) y PD# (Power Down) tal como se muestra en la siguiente figura.

I TO# 1 PD# I CONDICION DE RESET I

DESBORDAMENTO WDT EN ESTADO DE REPOSO ACTIVACION MCLR# EN FUNCIONAMlENTO NORMAL

I 1 I O I ACTIVACION MCLR# EN REPOSO I Condiciones de Reset reflejadas por el estado de los bits TO# y PD# del registro ESTADO

71

Page 72: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

5.3.1 RESET POR FALLO EN LA ALIMENTACION (“BROWN OUT”)

Se produce un fallo en la alimentación cuando el voltaje de la alimentación V»D desciende por debajo del valor mínimo, sin llegar a O, y luego se recupera. En esta situación es preciso provocar un Reset.

Para generar un Reset en un PlCIóXSX cuando hay un fallo en l a alimentación hay que colocar un circuito externo de protección, como los que se muestran a continuación:

I I 1

Cuando VT)~) desciende por debajo del valor V~+0.7 V, se produce un Reset por la activación de la patita MCLR#

El transistor Ql se bloquea y activa el Reset al pasar a nivel bajo la p a t h MCLR#, cuando el valor Vljt) desciende por debajo de 0.7 V

72

Page 73: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

L,a patita MCLR# puede conectarse directamente con VDD, pero debe colocarse una resistencia de valor superior a 100 SZ cuando se conecta con tierra, para evitar los problemas que puede originar la corriente que circula.

5.4 EL MODO DE REPOSO O DE BAJO CONSUMO.

Este modo de funcionamiento de los PIC está caracterizado por el reducido consumo de energía que requiere y está muy recomendado en aquellas aplicaciones en las que hay largos períodos de espera hasta que se produzca algún suceso asíncrono, como la pulsación de una tecla. En dichos períodos el procesador está inactivo.

El consumo típico del PIC es de 2 mA, aproximadamente, reduciéndose a menos de 10 p A en el modo de Keposo, Io que permite alimentarle con una pequeña pila durante casi dos años.

Para entrar en el modo de Reposo hay que ejecutar la instrucción SLEEP y se produce una situación muy especial de hncionamiento que parece como si el sistema se hubiera “congelado”, requiriendo el mínimo suministro de energía para mantener el estado del procesador sin ninguna actividad.

En Reposo la patita TOCKT se conecta a VD,> o a tierra, para eliminar la entrada de impulsos externos al 71hdRO. Por otra parte, como se detiene el oscilador principal que genera los impulsos Tosc, también se para TMRO. Las patitas E/S mantienen el estado anterior al modo de reposo y las que no se hallan conectadas a periféricos y actúan como entradas de alta impedancia se aconseja conectarlas a VDD o a tierra para evitar posibles fugas de comente. L a patita MCLR# debe conectarse a un nivel alto. Sin impulsos de reloj el procesador se congela y deja de ejecutar instrucciones hasta que se “despierte” y salga de ese estado.

Si el Perro Guardián continua activo en el modo de Reposo, al entrar en él se borra, pero sigue funcionando. Los bits del registro de ESTADO PD# y TO# toman los valores de O y 1 respectivamente.

Para salir del estado de reposo existen tres alternativas:

Activación externa de MCLR# para provocar un Reset. Desbordamiento del Perro Guardián si quedo operativo en el modo de reposo. Generacih de una interrupción. En este caso, curno TMRO está parado sólo pueden producirse los otros tres tipos de interrupción.

Los bits TO# y PD# se emplean para conocer la causa del Reset que despierta al sistema. PD#=O cuando se ejecuta la instrucción SLEEP. TO#=O cuando se desborda el Perro Guardián.

73

Page 74: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

6 MANEJO DEL REPERTORIO DE INSTRUCClONES

6.1 REPERTORIO RiSC

Todos los modelos de microcontroladores PIC responden a la arquitecruta RISC, que significa “Computador de Juego de Instrucciones Reducido”. No sólo implica que el número de instrucciones máquina que es capaz de interpretar y ejecutar el procesador es pequeños, como sucede en los PIC16X8X, que consta de 35, sino también que posee las siguientes características:

IAS insinrcciunes sou simples y ?-&pia&

La falta de complejidad en la operación que realizan las instrucciones de los procesadores RISC permite que sean ejecutadas, mayoritariamente, en un solo ciclo de instrucción. Los PIC tardan en ejecutar todas las instrucciones un ciclo, excepto las de salto, que tradan el doble.

Apenas tienen restricciones en el uso de operandos. Cualquier instrucción puede usar cualquier operando.

Todas las instrucciones tienen la misma longitud, 14 bits en los PIC16X8X, y todos los La arquitectura Harvard del procesador aisla la memoria de datos también, un bite.

instrucciones de la de di?tos, pudiendo tener diferente tamaño sus palabras.

6.2 TIPOS DE FORRíATO

Las instrucciones de los PIC de la gama media, entre los que se encuentran los modelos PIC16X8X, tienen 14 bits de longitud. Dicho formato se divide en diferentes campos de bits, cada uno de los cuales referencia a operandos o elementos que maneja la instrucción en la operación que realiza en el procesador. Se describen dichos campos:

Los bits de este campo sirven para definir la operción que realiza la instrucción.

h) Campo & ius opertuidw fuente (.f ) y destino (8).

Estos campos de bits definen los registros que actuan como operandos en la instrucción. Suelen referenciar la dirección que ocupan en la memoria de datos.

74

Page 75: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

c) Campo de operarulo inmediado u lileral ( k ) .

Es un campo de bits que contiene el valor de un campo inmendiato.

ci) Campo que referencia CI i m bit ( b ) .

Suele ser un campo de tres bits que indica Ia posición de un bit completo dentro de un registro de 8 bits.

En las instrucciónes de salto CALL y GOT0 hay un campo de bits que contiene la dirección de la siguiente instrucción que hay que ejecutar. Dicho campo de bits se carga en el PC en las instrucciones de salto incondicional.

Para estudiar los diversos formatos que admiten las instrucciones del repertorio de los PIClóXSX se clasifican en cinco grandes grupos, atendiendo al tipo de operación que desarrollan.

1 .- Operaciones orientadas a manejar registros de tamaño byte.

2.- Operaciones orientadas a manejar bits.

3 .- Operaciones que manejan valores inmediatos.

4.- Operaciones incondicionales de control del flujo del programa.

5.- Operaciones de salto condicional.

6.2.1 OPERACIONES ORIENTADAS A MANEJAR REGISTROS DE TAMAN0 BYTE.

El formato de las instrucciones que corresponden a este grupo se divide en tres campos:

1. Campo del Cbdigo OP de 6 bits. 2. Campo de la dirección del operando fuente ( f ) de 7 bits. 3. Campo que define el operando destino ( d ) de 1 bit.

Las instrucciones d este grupo tienen como sintaxis: mnemónico f,d. Cuando d = 1 el registro destino coincide con el fuente. Por ejenplo, si se desea incrementar el contenido de un registro, regl, y guardar el nuevo valor ene le mismo, se usa la instrucción: inc recl, 1

75

Page 76: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

La sibmiente figura muestra el formato de las instrucciones orientadas a manejar operandos que son registros de t i n byte. El operando fkente (0 se representa con los siete bits de la dirección que ocupa el registro en la memoria de datos. El destino puede ser el niismo operando fuente (d=l) o el registro W (d=O).

13 8 7 6 O I CODIGOOP 1 d l F (DULREGISTRO) I d = 1 El registro destino es “f’ d = O El registro destino es “w”

6.2.2 OPERACIONES ORJENTADAS A MANEJAR BITS.

El formato al que responden las instrucciones de este grupo tiene tres campos, los cuales se muestran en el siguiente formato que son las instrucciones que realizan operaciones que manipulan un bit. Los 3 bits del campo “d” indican la posición que ocupa el bit afectado dentro del registro fuente cuya dirección la expresa el campo “f’.

13 10 9 7 6 O I CODIGO OP I b (posición) 1 f (DlR.REGlSTR0) 1

I . Campo del Código OP de 4 bits. 2. Campo de la dirección del registro fuente ( 7 bits ). 3. Campo de la posición del bit en el registro ( 3 bits ).

6.2.3 OPERACIONES QUE MANEJAN UN VALOR INMEDIATO O LITERAL,

El formato correspondiente a este grupo de instrucciones sólo tiene dos campos:

1. Campo del Código OP con 6 bits. 2. Campo del valor iiimediato ( k ) con 8 bits.

6.2.4 OPERACIONES 1NCONDlCIONALES DE CONTROL DEL FLUJO DEL PROGRAMA.

Este tipo de instrucciones afectan al contenido del contador del programa ( PC ) y sirven para romper ia secuencia ordenada de las instrucciones del programa. Las instrucciones de este grupo tienen un formato con sólo dos grupos:

1. Campo del Código OF de 3 bits.

76

Page 77: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

2. Campo de la dirección del salto que se carga en el PC de 1 1 bits.

El formato presentado a continuación corresponde a las instrucciones de salto incondicional del tipo CALL y COTO. El literal (k) es el valor de la nueva dirección que se carga en el PC.

13 11 10 O [ CODIGOOP I K (LITERAL) I

6.2.5 OPERACIONES DE SALTO CONDICIONAL.

Los PIC disponen de unas pocas instrucciones " muy efectivas " que cuando se cumple una condición dan uii brinco ( skip ). Llamamos brinco a un saltito muy pequefio, concretamente sólo se salta una instrucción, la que hay detris de la condicional. La coiidición es el estado de un bit de un registro o la puesta a cero de un registro tras un decremento o un iricrenxnto.

I .a instrucción decfsz f,d responde al grupo de instrucciones que manejan registros de un byte. En este caso, si d = 1 , el destino es el propio registro fuente y lo que hace la instrucción es decrementar el contenido de f y dejar el resultado en f Pero, además, si el nuevo valor de f es cero se produce un brinco. Si no es cero el flujo de control continua con la siguiente instrucción.

El formato de las instrucciones de " brinco " es el mismo que el de las operaciones que manipulan registros de un byte.

El formato de las instrucciones de brinco condicional, se muestra a continuación, y se puede observar que coincide con el de las instrucciones que manejan registros de un byte.

13 8 7 6 O , 1 CODIGOOP I d f f (DIRREGISTRO) 1 d = I El registro destino es "f' d = O Ei registro destino es "w"

77

Page 78: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

6.3 PRECISIONES SOBRE NOMENCLATURA Y SIMBOLOS.

r

SIMBOLO SIGINIPICADO (Ixkh Es la forma que se usa en el lenguaje MPASM para referenciar a los números

hexadeciiriales de dos dígitos (hh) Representa la dirección en la memoria RAM de datos del registro fuente. Tiene un tamaño de 7 bits, con un direccionamiento de 128 posiciones comprendidas entre la dirección 0x00 y la Ox7f Es un bii que conforma el campo del formato de una instrucción que indica el registro destino. Si d = O es W, y si d = 3 es f Campo que contiene un valor inmediato, que puede ser un operando (8 bits) o una dirección para el PC (1 1 bits) Valor indeterminado de un bit. Puede ser 1 o O

f

d

k

X

En esta parte se utillizara la nomenclatura y los símbolos empleados por MICROCHIP para su lenguaje MPASM.

J o Contenido

f / Opciones

I < > Campo de un bit de un registro E En el conjunto

6.4 INSTRUCCIOK ES QUE MANEJAN REGISTROS.

f,d CLRF f CLRW --

Responden a la sintaxis nemónico f,d siendo f y d los dos operandos hente y destino que se hayan implementados por registros de 8 bits de la memoria de datos.

Borra f (Pone todos los bits a cero) 1 O0 O001 im ffff Z Borra w 1 O0 O001 oxxx Z

El registro f viene referenciado por la dirección de 7 bits que ocupa, mientras que el En la siguiente tabla se destino sólo por I , que si vale O es el W y si vale 1 es el fuente.

muestran las instrucciones de este grupo con sus principales características:

COMF f,d

- iNSTRUCCIONES QUE MANEJAN REGISTROS

SINTAXlS I OPERACION ICICLO I FORMATO 14 lSENALiZAnOREi u

xxxx Complementaf 1 O0 1001 d f E ffff z

‘F ISumaWyf I 1 I O0 O111 dfffffff 1 C,DZ,% 1 I I 1

ANDWF 1 AND W con f I 1 I O0 0101 dMF mr I

78

Page 79: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

MOVWF f i NOP ---

Decrementa f íncrementa f

RRF f,d t SUBWF Ed

z 1 O0 0011 dfE f33T 1 O0 1010 dfffffff

Mueve W y f No opera

1 O0 O000 1flT ffff ----- 1 O0 O000 oxxo -----

z ORentre W y f Mueve f

Rota f a la izada. a través del acarreo O000

I O0 1101 dfE ffff C Rota f a la dcha. a través del acarreo Resta W a f "i 1 O0 1100 dfRffff

1 O0 0010 dfffffff C. DZ. Z SWAP f,d

' X O R W F ~ ,

l'riiiciprles caraclerísfictrs úe las instrucciones de im P K i 6.Y8-Y que manejan como operandos registros de 8 bits. Se han excluido los de salto condicional que tienen el mismo formato,

- Int ercambia nibbles XOR de W con f

6.5 INSTRUCClONES QUE MANEJAN BITS.

----- 1 O0 1110 dfiTffTf 1 O0 0110 dfFfRf z

Sólo hay dos instrucciones en este grupo, pero son muy flexibles. Una de ellas pone a 1 ( bsf ) cualquier bit de ut i registro, mientras que la otra lo pone a O ( bcf ), tal como lo indica la siguiente tabla.

1 RCF f.b 1 Borra bit de f

En el formato de las iiistrucciones que manejan bits se representa con 3 bits l a posición que ocupa en el registro el bit b. El registro se especifica mediante su dirección de 7 bits.

BITS) ES 1 O 1 00th bfff flY

INSTRUCCIONES QUE MANEJAN BITS STNTAXiS 1 OPERAGION I crcLos I FORMATO (14 1 SEÑALIZADOR

( H S F f,b 1 Pone a I el bit f 1 1 I bi U l D D DIKr IIIí I -----

Características mas importantes de las dos instrucciones que manejan 1 bit detenninado de un registro.

Page 80: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

6.6 INSTRUCCIONES DE BRINCO ( SKIP ).

Explora 1 6it de f y brinca si

Explora 1 bit de f y brinca si

Decrementa f y si es O, brinca

vale O

vale 1

Decrernenta f y si es 1, brinca

Sólo hay cuatro instrucciones de salto condicional en los PIC de la gama media dos de ellas testan un bit de un registro y según valga 1 o O, brican o no. Hay que recordar que un brinco es un salto pequeño, sólo se salta la instrucción siguiente a la condicional. Las otras dos instrucciones incrementan o decrementan un registro y la posibilidad del brinco se efectua si con esa operación el valor del registro ha llegado a cero. Cuando estas instrucciones no brincan por que no se cumple la condición, tardan un ciclo de instrucción en ejecutarse. Caso que brinquen tardan el doble, como se esquematiza acontinuación.

S BITS) ES 1 (2) O1 lObb bfff ffff -----

l (2 ) O1 llbb bfffffff -----

l ( 2 ) O0 1011 dfE ffff - 1 (2) O 0 111 1 dfE ffff ---I

-----

I

S ADDLW k ANDLW

I B T F S S f,d

S ES Suma inmediata con W 1 11 l l l x kkkk kkkk C, DC, 2

AND inmediato con W 1 11 1001 kkkkkkkk Z -

I f d

1 1

INSTRUCCION€S DE “BRINCO” OPERACION -re-lCLo I FORMATO (1 T~X~Z~KZADOR

11 1000 kkkkkkkk z 1 1 OOxx kkkk kkkk ----

k SUBLW k XORLW k

Características mas relevantes de las cuatro instrucciones condiciofiales de brinco.

inmediato Resta W de un inmediato I 1 1 lIOx kkkk kkkk C, DC, Z

OR exclusiva con W 1 11 1010 kkkkkkkk ..---c

6.7 INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS.

Se trata de media docena de instrucciones que realizan una operación con un valor inmendiato de 8 bits que se proporciona dentro del formato de la instrucción, el cual sólo tiene dos campos: el del CMigo OP ( 6 bits ) y el del operando inmediato ( 8 bits ), tal como se muestra acontinuación:

INSTRUCCiONES QUE MANEJAN OPERANDOS INMEDIATOS -1 SNTAXI I OPERACION I CICLO 1 FORMATO ( I 4 BíTS) 1 SEÑALIZADOR I

.. I I I I -1

Características mas importantes de las instrucciones que manejan operandos inmediatos (k).

Page 81: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

6.8 INSTRUCCIONES DE CONTROL Y ESPECIALES.

En este grupo se incluyen las instrucciones que rompen la secuencia normal del programa porque alteran el contenido del PC y también las instrucciones especiales.

La instrucción de calto incondicional goto carga en el PC la dirección de la nueva instrucción. La instrucción call de Llamada o Subrutina, antes de cargar el PC con la dirección de la instrucción a saltar, salva la dirección de partida guardaddo en la cinta de la Pila el valor actual del PC. De esta manera al retornar de la subrutina se saca de la Pila la dirección de regreso del programa principal.

Para realizar un retorno de una subrutina se pueden emplear dos instrucciones. La más habitual es return, quc se limita a extraer de la cima de la pila el valor que carga en el PC otra más compleja es retlw k, que, además de hacer lo mimo que return, carga en W el valor inmediato k que contiene. Es decir, devuelve un parámetro desde la subrutina.

Para el final de las interrupciones hay otra instrucción cuyo nemónico es retfie. La operatividad de esta iiistrucción consiste en cargar en el PC el contenido de la cima de la Pila y poner el bytc GIE = I , pues al comenzar la interrupción este bit se pone automáticamente a O jjara evitar que cuando se atiende una interrupción se produsca otra. GlE es el bit de permiso de todas las interrupciones.

En cuanto a las funciones especiales, se han incluido dos en este grupo: slrwdt y sleep. La primera pone a O el contenido del Perro Guardián, es decir, lo refiesca o lo reinicializa. El Perro Guardián si se desborda ( pasa de Oxf€ a Ox00 ) provoca un Reset. La instrucción clrwdt hay que colocarla estratégicamente en ciertos puntos del programa para evitar la reinicialización.

81

Page 82: INFORME DE: PROYECTO TERMINAL JINGENIERIA …

VII) CONCLUSIONES GENEFULES

Resulta estimulante el logro del objetivo que este equipo de trabajo se trazó. Este consistía en conjuntar todos los conocimientos, o por lo menos la mayoría de ellos, adquiridos en el transcurso de cada trimestre, aplicándolos en el desarrollo de este pequeño, pero a nuestro juicio versátil, sofisticado y eficiente, sistema de transmisión y control de mensajes inalámbrico.

N o obstante, creemos que este proyecto es sólo un pequeíio esbozo de lo que se puede lograr cuando se reúnen conocimientos, recursos, ingenio y ganas de hacer las cosas. Además, el enfrentar a nuevos retos o situaciones desconocidas implica riesgos que muchas veces no queremos correr. Sólo que esta situación limita nuestro horizonte, lo que es indeseable para el desarrollo de cualquier ingeniero no importando su área de desarrollo.

.

Por otra parte, las aplicaciones que pudieran darse al presente trabajo, son realmente muy variadas. Como mencionamos, no sólo puede servir como base para construir un respaldo a una red de computadoras fisicamente enlazada con cables, sino que además puede ser utilizado como control de acceso remoto de usuarios, alarma de ruego, dispositivo remoto de monitoreo y sefialización industrial, para soportar todo tipo de alarmas de seguridad, sistema cerrado de mensajes, dispositivo de publicidad, simple transmisor de datos, etc.. El límite será impuesto sólo por la imaginación del individuo que se interese en desarrollarlo.

Las cualidades mencionadas en la presentación de este par transmisor/receptor, fueron plenamente demostradas en la prhctica, redirmando de esta manera, lo que hemos mencionado con anterioridad. Además el uso de PIC’S, convierte este trabajo en un ejemplo de aceptación, adaptación y aprendizaje de nuevas tecnologías que se vienen incorporando a las de los clásicos microprocesadores, con ventajas que saltan a la vista y de las que ya se habló bastante en el tema relacionado con tales microcontroladores(parte VI). Todo esto confirma que la formación que se ha recibido, si bien en ocasiones no es la más óptima, resulta suficiente para permitirnos desarrollar y terminar con éxito cualquier empresa que nos propongamos.

82