Sei sulla pagina 1di 34

Los Microcontroladores de National, Philips y Motorola

6
6

LA SERIE COP DE NATIONAL

Los microcontroladores COPSAx7 OTP son miembros de la familia de los COP8 y utilizan como “corazón” un arquitectura con un chip de 8 bits. Estos dispositivos fueron fabricados bajo el proceso EPROM de alta densidad, de la National Semicon- ductor, y ofrecen una gran variedad de chips, con amplia gama de temperatura y rangos de tensión de trabajo, con la fi- nalidad de satisfacer un vasto número de aplicaciones. Las características "clave" incluyen ar- quitectura mapeada de memoria de 8 bits, un contador y un timer de 16 bits con dos registros de 16 bits que se vinculan con tres selectores (Generación PWM de Procesador Independiente, Contador Ex- terno de Eventos y Disponibilidad de Cap- tura de Entradas), dos selectores HALT/IDLE con capacidad para guardar y con la po- sibilidad de la presencia de un interruptor multimedia para despertarse, un oscilador R/C tipo chip, salidas de corriente eleva- das, opciones seleccionables para el usuario, tales como WATCHDOG, configu- ración del Oscilador y potencia de rese- teo. A los fines de brindar una acabada in- troducción, reproducimos el informe pre- parado por el Ing. Guillermo Jaquenod (a quien agradecemos su colaboración), del Departamento Técnico de la compañía de Semiconductores.

Tanto en México como en Argentina, hace unos años que se comercializa la lí-

nea de microcontroladores COP8SAx7 (donde x corresponde a las letras A, B y C) en versiones de bajo pinout (20 y 28 pa- tas) y encapsulado DIP. Estos nuevos mi- crocontroladores ofrecen prestaciones y performance en hardware y software comparables con las de microcontrolado- res de rango medio, con un precio similar al de los microcontroladores más econó- micos.

Prestaciones destacables de hardware

La línea COP ofrece varios elementos destacables de hardware, tanto en lo que hace a la arquitectura interna del núcleo de CPU como en los periféricos incorpora- dos en el chip.

La línea COP emplea una arquitectura interna tipo Harvard (con buses de instruc- ciones y datos separados), que permite que la mayor parte de las instrucciones (el 77%) puedan ser ejecutadas en un único ciclo de instrucción de un microsegundo, al realizarse simultáneamente el acceso al espacio de instrucciones (EPROM) y al es- pacio de datos (memoria RAM y periféri- cos), determinan con ello una performan- ce estadística próxima a 1 MIPS (un millón de instrucciones por segundo). A diferen- cia entre la línea COP y otros microcontro- ladores obtenibles en plaza que también presentan arquitectura Harvard, la com- plejidad propia de este tipo de arquitectu- ra ha sido adoptada sin limitar, por ello, la cantidad y versatilidad de las instrucciones disponibles, ni eliminar periféricos.

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 1
Figura 1

siones desde 2,7V a 5,5V y ofrecer un mo- do de consumo reducido (IDDLE) y un mo- do de muy bajo consumo (HALT). • La salida de los modos de bajo con- sumo (WAKE UP) puede ser activada des- de múltiples patas, o desde el timer T0 y generará, si así se lo desea, las interrupcio- nes consiguientes. • Los COP incorporan en forma están- dar una interfase de entrada/salida serie sincrónica Microwire PLUS (SPI compatible)

que les permite su fácil conexión con peri-

Figura 2
Figura 2

• Dentro de todos los

féricos serie, tales como conversores A/D, conversores D/A, etc.

COP, incluso los más pe- queños, existen dos timers, lla- mados T0 y T1: el timer

• Los COP poseen un monitor de ope- ración (Watch-Dog) y un monitor de clock. • Poseen abundantes pines de entra- da/salida paralela (16 I/O en los chips de 20 patas y 24 I/O en los de 28 patas), don- de ciertas entradas son de tipo SCHMITT-

Trigger y pueden ser programadas para incorporar internamente una resistencia de pullup y operarán como salidas; ciertas patas poseen una capacidad importante de manejo de corriente de hasta 10mA. • Posee varias opciones de oscilador que van desde una fuente externa, un os- cilador RC interno al que se le puede alte- rar la frecuencia mediante un capacitor externo, hasta un oscilador a cristal/reso- nador en donde la inclusión o no de la re- sistencia de polarización es programable. • Finalmente, el diseño total de los COP ha sido realizado con un control de velo- cidad de transistores (slew rate) y niveles de señal internos al chip, orientados a la generación de bajos niveles de irradiación electromagnética (EMI: electro magnetic interference), lo que lo hace ideal para su uso en el área de comunicaciones e ins- trumentación. Esta tecnología permite hablar de re- ducciones en el nivel de generación de interferencias en el orden de 20dB respec-

T0 es un contador simple de 12 bits que opera en modo libre y descendente y es usado sólo para la salida controlada de los modos de bajo consumo, y operación del Watch- Dog-Clock; el timer T1, de 16 bits, ofrece en cambio una versatilidad realmente destacable, al poder ser operado en 8 modos distintos, que en sus variaciones permiten el conteo de eventos externos (External Event Counter), detección de flancos (Input Capture) y un modo de ge- neración de señales de PWM que opera en forma independiente al procesador. • Los COP (figuras 1y2) vienen en ver- siones con EPROM borrable (encapsulado cerámico con ventana) y en versiones OTP de bajo costo, y ofrecen desde 1K de EPROM y 64 bytes de RAM (COP8SAA7), hasta 4K de EPROM y 128 bytes de RAM

(COP8SAC7).

• El empleo de tecnología CMOS estáti- ca le permite operar en frecuencias que van desde continua hasta 1MIPS, con ten-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

to a procesadores similares que operan en la misma frecuencia.

Prestaciones destacables de software

Los pequeños COP no sólo ofrecen re-

cursos notables de hardware, sino que también tienen características de softwa- re propias de procesadores más elabora- dos, que permiten generar fácilmente es- tructuras de código propias de lenguajes de alto nivel.

Manejo de RAM como registros a tra-

vés de dos registros de indirección B y X: la disponibilidad de dos registros que pue- den ser operados como índices y progra- mados para su postincremento o su post decremento automático permite el ma- nejo de tablas en RAM en forma eficiente. • Carga inmediata de memoria: esta capacidad permite la carga de datos constante en memoria sin necesidad de pasar por el acumulador y la memoria. • Exchange: esta instrucción permite el intercambio de valores entre el acumula- dor y la memoria, sin necesidad de pasos intermedios. • Con instrucciones especiales para uso de la indirección en el espacio de memo- ria de programa:

  • a) JID (Jump Indirect): salto indexado

ideal para crear estructuras tipo SWITCH o CASE.

  • b) VIS (Vector Interrupt Select): ideal

para la realización de Interrupt Dispat- chers.

  • c) LAID (Load Acumulator Indirect): pa-

ra el acceso indexado a tablas en EPROM. • Swap nibbles y Ajuste decimal: (ope- ración en BCD): estas instrucciones son de gran utilidad para operar con números en BCD. • Manejo del stack (PUSH y POP): para

la salvaguarda de valores intermedios sin necesidad de definir áreas de almacena- miento estático y para el pasaje de pará- metros y devolución de resultados de su- brutinas. • Manejo de bits (set reset test): para el manejo de los ports y registros internos a nivel de bit.

Comparación de los COP con otros procesadores de plaza de costo similar

Quizás, quien analice las prestaciones de los COPS, si ha trabajado previamente con microprocontroladores de mayor per-

formance y costo, no resulte sorprendido, pues encontrará en los COP lo que pare- cía natural en aquellos. Lo sorprendente de las prestaciones de los COP surge cuando se los compara con microcontro- ladores de similar pinout y costo. Si se analizan en nuestro mercado las ofertas de microcontroladores que tienen un costo de mostrador inferior a los cinco dólares, sólo encontrará las opciones que propone Motorola a través de los MC68HC705J1A y MC68HC705K1, y micro- chip con sus PIC_15C54, PIC_16C56 y PIC_16C58. En las líneas siguientes se anali- zan los puntos donde más difieren estos procesadores de los de la línea COP.

• Diferencias más notables con el

MC68HC705K1: este microcontrolador de 16 patas y arquitectura Von Neumann ofrece la mitad de EPROM (504 bytes) y la

mitad de RAM (32 bytes) que el COP más pequeño (COP8SAA7 de 20 pines). Tiene sólo 10 pines de I/O frene a los 16 del COP

y, aunque su ciclo de instrucción más rápi- do es de 2 MIPS para algunas instruccio- nes, la mayor parte de ellas requiere 2 ci-

clos de reloj, con lo que su máxima perfor- mance está también alrededor de 1 MIPS; asimismo, el hecho de que la mayor parte de las instrucciones sea de 2 bytes hace que el aprovechamiento de su escasa

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

EPROM sea aun menor. El Timer del MC68HC705K1 es uno elemental, de tipo free-run y de lectura solamente, siendo su única fuente de reloj el oscilador interno del chip, y sólo puede generar interrupcio- nes por Overflow y cuatro opciones de di- visión adicionales (llamadas Real Time In- terrupt). Cualquier señal de PWM o captu-

ra de eventos que se desee realizar debe ser por software, con dedicación casi to- tal de la CPU. El acceso a periféricos serie debe simular la interfase SPI por software. En cuanto al software, sólo posee un regis- tro índice sin opciones de autoincremento o decremento, no permite el uso del Stack, la carga inmediata de datos en memoria, el intercambio entre acumula- dor y memoria, ni posee instrucciones pa- ra manejo de datos BCD.

• Diferencias más notables con el

MC68HC705J1A: este microcontrolador de 20 patas y arquitectura Von Neumann po- see EPROM (1.240 bytes) y Ram (64 bytes) en cantidad comparable al COP más pe- queño (COP8SAA7 de 20 pines), y tiene 14

pines de I/O (frente a los 16 del COP). En el resto de sus características es idéntico al MC68HC705K1.

• Diferencias más notables con el PIC

16C54: este microcontrolador de 18 patas posee arquitectura RISC tipo Harvard, 512 palabras de EPROM y 25 bytes de RAM, en cantidad comparable al COP más pe- queño (COP8SAA7 de 20 pines), sólo 12 pi- nes de I/O (frente a los 16 del COP) y un costo similar. Su subsistema de Timer es al- go más elaborado que el de los chips de Motorola, aunque más elemental que el de los COP; en él, el contador es legible y la escritura se hace por software, puede

recibir su señal de clock reloj del reloj inter- no o de una pata externa, y posee un prescaler programable. Sin embargo, al igual que los procesadores de Motorola, cualquier generación de señales de PWM,

o acceso a periféricos serie (donde debe simularse la interfase SPI) deba ser realiza- da por software, con dedicación casi to- tal de la CPU. No tiene mecanismos de in- terrupción (ni internos, ni externos), posee un único registro de indirección (FSR) y un Stack mínimo de sólo dos niveles sin posibi- lidad de accesos tipo PUSH/POP que limi- ta seriamente la posibilidad de anida- miento de subrutinas. La velocidad de los PIC es notable (5 MIPS), pero la ausencia de interrupciones, y el reducido set de ins- trucciones disponible (33 instrucciones) ha- cen que su performance neta sea com- parable a la de los otros microcontrolado- res analizados; la ausencia de interrupcio- nes, por su parte, hace que la detección de eventos sólo pueda ser realizada a costa de ocupar totalmente la CPU, o con inclusión de test "salpicados" en el có- digo, con una pésima latencia de aten- ción y disminución en la eficiencia del có- digo. Otras serias diferencias de hardware con los COP y los chips de Motorola es la inexistencia de pull-up/down, programa-

bles en las patas de I/O y un modo de ba- jo consumo (SLIIP) del que sólo se sale por RESET.

• Diferencias más notables con el PIC 16C56: es totalmente similar al PIC 16C54, sólo que posee 1K palabras de programa.

• Diferencias más notables con el PIC 16C58: es totalmente similar al PIC 16C54, sólo que posee 2K palabras de programa y 72 bytes de RAM.

Características Fundamentales de la Serie COP

Damos a continuación las característi- cas más “atractivas” que suelen darse so- bre esta familia. Tenga en cuenta que algunos concep-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

tos ya fueron vertidos en el informe que hemos dado al comienzo; reseñamos, en este caso, la “versión” del fabricante

  • - Son microcontrolador tipo OTP de 8 bits y bajo costo.

    • - Poseen espacios de programa OTP

con protección para lectura y escritura.

  • - Son diseñados para que tengan emi-

siones de poca radiación. -El kit se provee con conectores Multi- port para “despertar” (permiten su funcio- namiento en forma versátil), con interrup- tores opcionales de 4 a 8 pines.

  • - Tienen 8 bits de espacio de almace-

namiento en EFROM. -El operador puede optar por relojes se- leccionables por el usuario:

* Reloj controlado por Cristal/Resonador * Opcion Cristal/Resonador con resiten- cia sobre chip. * Oscilador Externo * Oscilador R/C Interno

* Un timer con dos interruptores. * Interfaz Serial MICROWIRE/PLUSTM. * Despertador de puertos múltiples.

* Trampa de Software

* VIS de fábrica (interruptor de fábrica).

  • - El puntero SP es de 8 bits (en RAM).

  • - Tiene dos Punteros Indirectos de Me-

moria de Datos, 8 bits.

  • - Manejo de Bit Real.

  • - Mapeo de Memoria I/O.

  • - Instrucciones aritméticas BCD.

Características Periféricas

  • - Lógica de Despertador de Entradas

Múltiples.

  • - Posee un timer de 16 bits con dos re-

gistros de 16 bits que soportan:

* Un selector PWM de Procesador Inde- pendiente. * Un contador para evento externos. * Un selector contador de Captura de Entrada.

  • - Posee un timer de inactividad

  • - La interfaz es Serial MICROWIRE/PLUS

  • - Poseen Reseteo Interno, seleccionable

(Compatible con SPI)

por el usuario. -Están provistos con la posibilidad

WATCHDOG y Lógica de Reloj de Monitor.

  • - Tienen 12 salidas altas de corriente. El cuadro 1 resume algunas característi-

cas a tener en cuenta.

Características del CPU

Características I/O

  • - Opciones I/O de software selecciona-

bles:

* Salida TRI-STATE * Salida para tirar y presionar * Entrada Débil para tirar * Entrada de Impedancia Alta

  • - Versatilidad en las ins-

trucciones de configura- ción, las cuales son de muy facil utilización.

  • - Tiempo cíclico de ins- trucciones.

    • - Posee ocho Interrup-

tores de servicio de fuen-

tes múltiples con vector:

* Interruptor Externo * Timer de inactividad

TO

Cuadro 1

Cuadro 1
  • - Entradas Schmitt

en puertos G y L

  • - Hasta 12 salidas de corriente elevada.

    • - Eficiencia de Pin

(ej. En un paquete de 44 pines, 40 son desti- nados a I/O).

Diseño CMOS Estático Completo

  • - Drenaje Bajo de

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 3
Figura 3

Corriente (normalmente <4 pA).

National logró la re- ducción 15 dB-20 dB en las transmisiones EMI, cuando los dise- ños ya incorporaron su circuito de reducción de patente EMI.

Arquitectura

La familia COPSAx7 está basada en una arquitectura de hard- ware, que permite a las tablas de datos

-

Operación simple de abastecimiento:

tener un acceso directo hacia la memoria

2.7V a 5.5V.

de programas. Esto es realmente impor-

-

Dos selectores para guardar: HALT y

tante para las aplicaciones modernas que

IDLE.

se ubicaban en los microcontroladores, ya

 

Rangos de Temperatura

que la memoria de programa, usualmen- te, es ROM o EPROM, mientras que la me-

0ºC a +70ºC, -40ºC a +85ºC, y de -40ºC a +125ºC

moria de datos, normalmente, es RAM. Como consecuencia, las tablas de datos

Soporte de Desarrollo

regularmente, deben ser contenidas en

-

Paquete con ventanas para DIP y

ROM o EPROM, en consecuencia, no se

PLCC

pierden cuando el microcontrolador tiene

-

Emulación en tiempo real y elimina-

un corte de electricidad.

ción de funciones erróneas, por completo, de programa ofrecido por MetalLink De- velopment System En la figura 3 se da el diagrama en blo-

En una arquitectura modificada de Hardware, tanto la ida y venida de ins- trucciones como la transferencia de datos de memoria pueden extenderse, con dos

ques del integrado COP8SAx7. La familia COPSAx7 de dispositivos in- corpora circuitos que brindan protección contra interferencias electromagnéticas, es decir, un problema que se incrementa en los diseños de los microcontroladores, de hoy en día. La tecnología de reducción, patenta- da por EMI, de National, ofrece circuitos de reloj EMI, drivers de salida de encendi- do gradual (GTO) y filtros internos, que ayudan a circunscribir muchas de las edi- ciones EMI que influencian los diseños de control incorporados.

líneas de escenario, lo cual permite que la próxima instrucción se desplace de la me- moria de programa mientras la instrucción actual está siendo ejecutada, por medio de la utilización de la memoria de datos. Esto no es posible con una arquitectura de dirección simple tipo Von Neumann. La familia COPSAx7 soporta un esque- ma de multitudes de software que permi- te al usuario incorporar muchos llamados de subrutinas. Esta capacidad es importante cuando se utilizan Lenguajes de Nivel Elevado. Con una pila de hardware, el usuario está

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

limitado a un número pequeño y fijo de ni- veles de pilas.

de código óptima y, también, utilización de memoria de programa.

Juego de Instrucciones

En el terreno vinculado al costo/benefi- cio, de los microcontroladores de 8 bits, de hoy en día, la flexibilidad y el tiempo son varios de los temas claves, para el mercado, que los diseñadores de sistemas enfrentan al tratar de construir un produc- to de muy buena ingeniería que pueda competir perfectamente en el mercado. Muchos de estos temas pueden tratarse de manera tal que el juego de instruccio- nes del microcontrolador se ocupe de las tareas de procesamiento. Y esa es la ra- zón por la cual la familia del COP8 ofrece un conjunto de instrucciones único y una eficiencia de código que requieren los mi- crocontroladores de hoy día, para suminis- trar flexibilidad, funcionalidad, costos re- ducidos y tiempo rápido para su arribo al mercado, La eficiencia de código es importante ya que permite a los diseñadores empa- car, en chip, de una forma más funcional en menos espacio de memoria de progra- ma (ROM/OTP). Seleccionando un micro- controlador con menos tamaño de me- moria de programa, podemos obtener costos más bajos de sistema, como así también, la seguridad de saber que se pueden empaquetar más en el espacio de memoria de programa disponible.

Herramientas Clave del Juego de Instrucciones

La familia del COPSAx7 incorpora una combinación única de herramientas vin- culada al juego de instrucciones, las cua- les proveen a los diseñadores, eficiencia

Ejecución de Código de Ciclo Simple/Byte Simple

La eficiencia se debe al hecho de que

la mayoría de las instrucciones pertene- cen a la variedad de byte simple. Debido a que el código compacto no ocupa una suma sustancial de espacio de memoria de programa, los diseñadores pueden in- tegrarle atracciones adicionales, así como funcionalidad en el espacio de memoria de programa del microcontrolador. Ade- más, la mayoría de las instrucciones eje- cutadas por el dispositivo son de ciclo sim- ple, lo cual conduce a un tiempo mínimo de ejecución de programa. En realidad, el 77% de las instrucciones son de byte sim- ple, ciclo simple, y proveen un código mayor, así también, como eficiencia de ti- po I/O, además de una ejecución de có- digo más veloz.

Instrucciones Multifunción, Muchos Byte Simples

El juego de instrucciones COPSAx7 utili- za muchas instrucciones multifunción, byte simples. Esto permite que una instrucción simple logre realizar funciones múltiples, tales, como DRXZ, DCOR, JIK y Carga- /Cambio, con post incremento y post de- cremento, para nombrar algunos ejem- plos. En muchos de los casos, el conjunto de instrucciones puede ejecutar, en forma simultánea, tres funciones con la misma instrucción de bite simple.

JID: (Salto Indirecto). Instrucción de by- te simple, eventos externos de decodifica- ción y saltos a rutinas de servicios corres- pondientes (frases simples hasta otros nive- les de lenguaje más elevados).

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

LAID: (Carga de Acumulación Indirec- ta) Tabla de instrucción de Byte simple provee un sendero de datos eficiente des- de la memoria de programa hasta el CPU. Esta instrucción puede ser utilizada para la búsqueda de tabla y para leer la memo- ria de programa completa, en caso de necesitar verificación de cálculos.

vos de esta familia pueden manejar hasta

  • 64 bytes, tanto de programa como de

memoria de datos. En la tabla 1 tenemos los dispositivos que componen esta familia de microcon- troladores. El 8051, que es el elemento básico, contiene las siguientes funciones:

RETSK: (Salto de Retorno) La instrucción de byte simple permite retornar desde la rutina y, así, saltar a la próxima instrucción. La decisión puede ser realizada en la su- brutina misma y guardar el código.

• CPU de 8 bits optimizada para aplica- ciones de control.

• Capacidad de procesamiento "Boo- leana extensiva" (álgebra de Boole), lógi- ca de bit único. • 32 líneas bidireccionales e individual- mente dirigibles de entrada y salida (I/O).

AUTOINC/DEC: (Auto Incremento/Auto Decremento). Estas instrucciones utilizan los dos punteros de memoria B y X para hacer procesar, de modo más eficiente, el bloque de datos.

LOS MICROCONTROLADORES DE PHILIPS

La familia de microcontroladores y peri- féricos que tienen por base el 8051 está

basada totalmente en el patrón industrial para 8 bits, de alta performance, que tie- nen una arquitectura optimizada para aplicaciones en control secuencial en tiempo real. Los componentes de es-

ta familia encuentran apli- caciones que van desde el control de máquinas indus- triales y de instrumentación hasta el control automotriz. Los dispositivos de la serie pueden obtenerse en ver- siones con ROM o EPROM internas o, solamente, con la CPU. Con excepción de la 83C751, todos los dispositi-

• RAM de datos de 128 bytes on-chip. • Dos temporizadores / contadores de

  • 16 bits.

• UART dúplex completa. • 5 entradas de interrupciones con dos niveles de prioridad. • Oscilador de clock on-chip. • Memoria de programa de 4K bytes on-chip. • Espacio para direccionamiento de programa en la memoria de 64 bytes. • Espacio para direccionamiento de la memoria de datos de 64K bytes. • Disponible tanto en cubierta DIL de 40 pines como en cubierta PLC de 44 pines.

 

Tabla 1 - 8051 Familia de microcontroladores

 

Nombre

Versión sin

Versión con

BYTES

BYTES

TIMERS

Tipo de

ROM

EPROM

ROM

RAM

16 bits

Circuito

8051

8031

4k

128

2

NMOS

80C51

80C31

87C51

4k

128

2

CMOS

8052

8032

8k

256

3

NMOS

80C52

80C32

87C52

8k

256

3

CMOS

80C053

87C054

8k

192

2

CMOS

83CL410

80CL410

4k

128

2

CMOS

83C451

80C451

87C451

4k

128

2

CMOS

83C528

80C528

87C528

32k

512

3 + WD

CMOS

83C550

80C550

87C550

4k

128

2 + WD

CMOS

83C552

80C552

87C552

8k

256

3 + WD

CMOS

83C562

80C526

8k

256

3 + WD

CMOS

83C652

80C652

87C652

8k

256

2

CMOS

83C654

87C654

16k

256

2

CMOS

83C751

87C751

2k

64

1

CMOS

83C752

87C752

2K

64

1

CMOS

83C851

80C851

4K

128

2

CMOS

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

El microcontrolador 80C51 es la versión CMOS del 8051, siendo totalmente com- patible con el 8051 en términos de funcio- namiento. Sin embargo, como se trata de un dis- positivo CMOS (a diferencia del 8051, que es NMOS) el consumo es mucho menor. En la figura 4 tenemos el diagrama en blo- ques del 80C51, a partir del cual haremos el análisis. Todos los miembros de esta se- rie poseen espacios separados para direc- cionamiento y programa de datos, según muestra el diagrama de estructuras de la memoria en la figura 5.

Esta separación permite que los datos de la memoria sean accesados por una dirección de 8 bits, lo que da como resul- tado un almacenamiento y manipulación más rápidos que los efectuados por una CPU de 8 bits. Sin embargo, direcciones de 16 bits también pueden ser usadas, generadas por el registrador DPTR. La memoria de programa (ROM o EPROM) puede ser leída, pero no graba- da. Tenemos disponibles 64K bytes de es- pacio para la memoria de programa. En el 80C51, los 4K bytes inferiores están on-chip. En las versiones sin ROM, toda la memoria de progra- ma es externa. El "strobe" para la lectura de la memoria es el PSEN (Program Store Enable). La memoria de datos (RAM) ocupa un espacio se- parado para el direcciona- miento, a partir del programa de memoria. En el 80C51, los 128 bytes de la memoria de datos es- tán sobre el chip. El espacio de la memoria de datos ex- terna puede dirigir hasta 64K bytes de una RAM externa). En la versión sin ROM, los 128 bytes inferiores son on- chip. Una CPU genera las se- ñales de lectura y grabación (RD y WR), según se necesite, durante los accesos a la me- moria externa. Las memorias de datos ex- terna pueden combinarse con memorias de programas, si se lo desea, a través de la aplicación de señales RD y PSEN en las entradas de una

Figura 4
Figura 4
Figura 5
Figura 5

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 6

Figura 6

puerta AND, se utilizará su salida como "strobe" de lectura para la memoria de datos / programa externa.

Memoria de Programa

En la figura 6 tenemos el diagrama en bloques de la memoria de programa. Después de reseteada, la CPU inicia la ejecución del programa a partir de la di- rección 0000h. Tal como se muestra en la figura 6, ca- da interrupción es designada por una di- rección fija en la memoria de programa. La interrupción se origina cuando la CPU salta hacia la dirección correspon- diente, donde tiene su inicio la rutina de servicio (rutina de tratamiento de interrup- ción). Una interrupción 0 externa, por ejem- plo, determina una dirección 0003h. Si se usara una interrupción 0 externa, la rutina de servicio debería comenzar por la dirección 0003h. Si la interrupción no se usara, la dirección estaría dis- ponible como memoria de programa de uso general. Las direcciones de las sub-ru- tinas de tratamiento de inte- rrupción están separadas por intervalos de 8 bytes: 0003h para la interrupción externa

0; 000Bh para el timer 0; 0013h para la in- terrupción externa 1; 001Bh para el timer 1, etc. Si una rutina de tratamiento de interrup- ción fuera lo suficientemente corta (como en el caso de aplicaciones para control), puede permanecer totalmente en el inter- valo disponible de 8 bytes. Rutinas de ser- vicio más largas pueden usar una instruc- ción de salto para evitar direcciones de

interrupciones subsiguientes, si otras inte- rrupciones no estuvieran en uso. Los 4K by- tes inferiores de la memoria de programa pueden estar tanto en la ROM on-chip co- mo es una ROM externa. El pin EA (Exter- nal Access) permite hacer la selección. En el 80C51, si el pin EA fuera conecta- do al Vcc, el programa iría a buscar las di- recciones de 0000h hasta OFFFh en la ROM interna, y de 1000h hasta FFFFh en la ROM externa. Si el pin EA fuera conectado al Vss, en- tonces el programa trabajaría como las direcciones de la ROM externa. La figura 7 muestra el hardware pone la ejecución de trabajos externos. Observe que las 16 líneas de I/O (ports 0 y 2) están dedicadas a la cancelación de instrucciones durante las acciones ex- ternas de la memoria de programa. El port 0 (PO, en la figura 7) sirve como multiplexador de direcciones y datos. Ella emite el byte inferior del contador de programa (PCL) como una dirección y,

Figura 7

Figura 7

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 8

Figura 8

entonces, permanece en un estado fluc- tuante en espera de la llegada del byte de código de la memoria de programa. Durante el intervalo en el que el byte inferior del contador de programa fue vá- lido en el port 0, la señal ALE (Address Latch Enable) juega este byte en un latch (cerrojo) de direccionamiento. Mientras tanto, el port 2 (P2 en la figura 7) emite un byte superior del contador de programa (PCH). Entonces, PSEN, a través del "strobe" permite que el microcontrola- dor lea el byte del código en la EPROM. Las direcciones de memoria de programa son siempre 16 bits, aun cuando se use un espacio real de menos de 64 bytes. En es- tas condiciones, la ejecución del progra- ma externo sacrifica dos ports de 8 bits, PO y P2, para funcionar en la dirección de la memoria de programa.

Memoria de Datos

La mitad derecha de la figura 5 (pági- na 103) muestra los espacios internos y ex- ternos de la memoria de datos disponible en el 80C51. En la figura 8 tenemos una configura- ción de hardware que permite accesar hasta 2K bytes de una memoria RAM ex- terna. En este caso, la CPU opera a partir de la ROM interna.

La CPU genera las señales RD y WR, a medida que sean necesarias durante el acceso a RAM externa. Pueden usarse hasta 64K bytes de memoria externa. Las direcciones para ac- cesar los datos de la memo- ria externa pueden utilizar tanto 1 como 2 bytes de ex- tensión. Las direcciones de 1 byte también son usadas en conjunto con una o más líneas de I/O para paginar la RAM, según mues- tra la misma figura 8.

En el caso de que la parte más alta sea emitida por el port 2, pueden usarse direc- ciones de dos bytes. La memoria interna de datos está grafi- cada en la figura 9. El espacio de la me- moria está dividido en 3 bloques que son referidos como: 128 - inferiores, 128 - supe- riores y espacio del SFR (Special Function Register). Las direcciones de la memoria de da- tos interna son siempre de 1 byte de ex- tensión, lo que implica un direccionamien- to de sólo 256 bytes. Además de eso, los modos de direccio- namiento de la RAM interna pueden, de hecho, acomodar 384 bytes, utilizan un truco simple: las direcciones directas, por encima de 7Fh, accesan un espacio de memoria y las direccio-

nes superio- res a 7Fh ac- cesan un es- pacio dife- rente. La figura 9 muestra los 128 - superio- res y el SFR ocupados

Fig. 9

Fig. 9

Todo sobre PICs

105

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

 
Fig. 10
Fig. 10

por el mismo bloque de di- recciones: de 80h hasta FFh, mientras que, en realidad, son entidades físicamente di- ferentes.

van de 00h a 7Fh. Todos los bytes en los 128 - inferiores resultan accesibles tanto por direccionamiento directo como indi- recto. Los 128 - superiores, tal como muestra la figura 11, sólo son accesibles por direc- cionamiento indirecto. En la figura 12 tenemos una visión del Special Function Register (SFR) y del espa-

 

Los 128 by-

Fig. 11
Fig. 11

tes inferiores de la RAM es- tán presentes

en todos los dispositivos 80C51, como se grafica en la figura 10. Los 32 bytes

cio que ocupa. Esta estructura incluye latches (cerrojos) de puertas, timers, controles, periféricos, etc. Estos registradores pueden ser accesi- bles, solamente, por direccionamiento di- recto. Dieciséis direcciones en el espacio SFR son accesibles tanto por byte como por bit. Los SCF pueden accesarse por bit y son los que tienen direcciones termina- dos en 0h u 8h. A través de la segunda parte de esta nota, los proyectistas podrán tener una mejor visión de cómo y dónde usar el mi- crocontrolador 80C51 y sus periféricos.

El Set de Instrucciones del 80C51

El Set de Instrucciones del 80C51 está especialmente confeccionado para su utilización en aplicaciones de control con 8 bits.

Proporciona gran varie- dad de modos de direccio- namiento rápido para acce- der a la RAM interna, con lo que se facilitan las operacio- nes con bytes en pequeñas estructuras de datos. El Set de Instrucciones prevé, además, un soporte extensivo para variables de 1 bit, como los del tipo de datos separados, así permite la manipulación directa del

bit en sistemas lógicos y de

inferiores están agrupados en 4 bancos de 8 registradores. Las instrucciones del programa llaman a estos registradores externamente de R0 a R7. Dos bits del PSW (Program Status Word) seleccionan del banco de registra- dores cuál va a ser usado. Este procedimiento permite una utiliza- ción más eficiente del espacio para códi-

go, ya que las instrucciones son más cor- tas que las que usan direccionamiento di- recto.

Los 16 bytes siguientes, por encima de los bancos de registradores, forman un bloque de espacio de me- moria dirigible por bit. El set de instrucciones del 80C51 incluye una amplia selección de instrucciones de bit único, y los 128 bits de esta área pueden ser di- rectamente dirigidos por es- tas instrucciones. Las direc- ciones de bits en esta área

Fig 12

Fig 12

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

control que requie- ran un procesa- miento booleano.

Fig 13
Fig 13

dirección de 8 bits en la instrucción. Sólo la RAM interna de datos y la SFR pueden ser directamente direccionadas.

  • b) Modo Indirecto

En el direccionamiento indirecto, la ins- trucción especifica un registrador que contiene una dirección del operando. Tanto la RAM interna como la externa pueden ser indirectamente direcciona- das.

  • c) Instrucciones del Registrador:

Los bancos de registradores que contie- nen los registradores de R0 a R7 pueden ser accedidos por ciertas instrucciones que lleven una especificación de registra- dor de 3 bits conjuntamente con el códi- go de la instrucción (opcode). Las instrucciones que acceden los regis- tradores en esta forma son "code effi- cient", ya que así se elimina la necesidad de un byte de dirección. Cuando la instrucción es ejecutada, uno de los ocho registradores del banco seleccionado es accedido mientras que uno de los cuatro bancos es selecciona- do en el tiempo de ejecución por los dos bits de selección de bancos en el PSW (figura 13).

Program Status Word (PSW)

El Program Status Word (PSW) contie- ne diversos bits de status que indican el estado corriente de la CPU. El PSW, que se muestra en la fi- gura 13, reside en el espacio de la SFR. El PSW contiene el bit de carry, o carry auxiliar (para operaciones en BCD), los dos bancos de registradores para selec- ción de bits, el aviso de overflow, un bit de paridad y dos flags de uso que puede ser definido por el usuario. El bit de carry, además de servir para su función específica, también actúa como acumulador para un cierto número de operaciones booleanas. El bit de paridad indica el número de "uns" no acumulados. Si P=1, entonces el acumulador contiene un número impar de "uns". Si P=0, el acumulador contiene un número par de "uns". Vemos así que si tenemos en cuenta el número de "uns" en el acumulador suma- do al valor de P, tendremos siempre un re- sultado par.

Modos de Direccionamiento

En el 80C51 tenemos los siguientes mo- dos de direccionamiento:

a) Modo Directo:

En esta modalidad de direccionamien- to, el operando está especificado por una

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

  • d) Instrucciones Específicas

de Registradores:

Algunas instrucciones son específicas para ciertos registradores como, por ejem- plo, las que siempre operan en el Acumu- lador o en el Data Pointer, de modo que para ellas no se necesita bit alguno de di- reccionamiento para su uso. El opcode lo hace por sí solo.

destinado a la lectura de tablas de con- sulta en la Memoria de Programa. Otro ti- po de direccionamiento indexado se usa para el caso de una instrucción JUMP. En este caso, el direccionamiento de destino de una instrucción JUMP es computado como la suma de los datos del acumula- dor con el Data Pointer.

  • g) Instrucciones Aritméticas:

  • e) Constante Inmediata:

El valor de una constante puede seguir el opcode en la Memoria de Programa. Por ejemplo:

MOV A, 100

carga el acumulador con el número decimal 100. El mismo número puede especificarse en dígitos hexadecimales como 64 h.

  • f) Direccionamiento Indexado:

Sólo la Memoria de Programa puede ser accedida con direccionamiento inde- xado, siendo, después, sólo posible la lec- tura. Este modo de direccionamiento está

El menú de las instrucciones aritméticas del 80C51 está listado en la tabla 2, don- de están indicados los modos de direccio- namiento que pueden usarse con cada instrucción para acceder el <byte> ope- rando. Los tiempos de ejecución en la lista de la tabla 1 son para una frecuencia de clock de 12MHz. Todas las instrucciones aritméticas son ejecutadas en 1µs, excep- to la INC DPTR, que lleva 2µs, y las instruc- ciones de multiplicación y división, que lle- van 4µs. Obsérvese que cualquier byte en el es-

pacio interno de la Memoria de Datos puede ser incrementado sin pasar por el Acumulador.

  • h) Instrucciones Lógicas:

Tabla 2

Tabla 2

La tabla 3 muestra la lista de instrucciones lógicas dis- ponibles en el 80C51. Las ins- trucciones que realizan ope- raciones booleanas (AND, OR, Exclusive OR, NOT) con bytes utilizan bit por bit. Los modos de direccionamiento que pueden usarse para ac- ceder el operando están lis- tados en la misma tabla. Todas las instrucciones lógi- cas que están en el Acumu- lador son ejecutadas en 1µs, con base en un clock de

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Tabla 3
Tabla 3
Tabla 4
Tabla 4

Tabla 5

Tabla 5

12MHz. Las otras demoran 2µs. Si la operación se origina como res- puesta a una interrupción, el hecho de no utilizarse el Acumulador economiza tiem- po y esfuerzo en el sentido de la introduc- ción de datos en la pila de ejecución de la rutina de servicio.

i) Transferidores de Datos:

La tabla 4 muestra el me- nú de instrucciones que es- tán disponibles para el movi- miento de datos por los es- pacios disponibles en la Me- moria Interna. En ella también tenemos los modos de direcciona- miento que pueden utilizarse con cada instrucción. Con un clock de 12MHz, todas es- tas instrucciones son ejecuta- das tanto en 1µs como en 2µs. La instrucción MOV <dest>, <src> permite la transferencia de datos entre cualquier locación de la RAM o SFR, sin pasar por el Acu- mulador. Recuérdese que hasta 128 bytes de datos de la RAM pueden accederse sólo por direccionamiento in- directo, y que el espacio de la SFR solamente puede ser accedido por direcciona- miento directo. En la tabla 5 puede obser- varse una lista de instruccio- nes para transferencia de datos accediendo la Memo- ria Externa de Datos. Sólo pueden utilizarse di- reccionamientos indirectos, y la elección puede recaer tanto por direccionamientos de 1 bit, tipo Ri, donde Ri puede ser R0 o R1 del banco seleccionado, como tam- bién de dos bits, del tipo DPTR. La desventaja de la utilización de direc- cionamientos de 16 bits, en caso de que pocos k bytes de la RAM externa estén comprometidos en un solo control, es que

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Tabla 6

Tabla 6

Tabla 7

Tabla 7

los direccionamientos de 16 bits usan to- dos los 8 bits del port 2 y, también, el barri- do de direccionamientos. Por otro lado, direccionamientos de 8 bits permiten el direccionamiento de po- cos bytes de la RAM sin sacrificar todo el port 2. Todas estas instrucciones son ejecu- tadas en 2µs con un clock de 12MHz. Nótese que en todos los accesos a la RAM externa el Acumulador está funcio- nando como origen y destino de los da- tos. La tabla 6 muestra las dos instrucciones que están disponibles para la lectura de tablas de consulta en la Memoria de Pro- grama. Como estas instrucciones acceden so- lamente la Memoria de Programa, las ta- blas de consulta sólo pueden ser consulta- das y no actualizadas.

j) Instrucciones Booleanas:

Los dispositivos 80C51 con- tienen un procesador com- pleto para instrucciones boo- leanas (bit único). La RAM interna contiene 128 bits direccionables, y el espacio SFR puede aceptar hasta 128 bits direcciona- bles. Todas las líneas de ports son direccionables por bit, y cada una puede ser tratada como un port de bit único. Las instrucciones que ac- ceden estos bits no tienen una única función: también pueden operar un menú completo de opciones, tales como descolocación, fija- ción, apagado, comple- mentación, puerta OR, AND, etc. Estas operaciones de bit único no se obtienen fácil- mente en otras arquitecturas sin la ayuda de una buena cantidad de software orientado para esta finalidad. El Set de Instrucciones para el procesa- dor booleano se observa en la tabla 7. Los direccionamientos de los bits de 00h hasta 7Fh están en los 128 inferiores, y los de 80h hasta FFh se encuentran en el es- pacio SFR. Nótese que el Set de Instruccio- nes booleanas incluye operaciones ANL y ORL, pero no la operación XRL (Exclusive OR). Una operación XRL resulta fácil de im- plementar mediante el software.

Offset relativo: Los direccionamientos de destino para estos saltos están especifi- cados al dispositivo por medio de un ar- chivo o por un direccionamiento real en la Memoria de Programa.

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

k) Instrucciones de Salto (JUMP):

En la tabla 8 vemos una lista de jumps incondicio- nales al tiempo de ejecu- ción para un clock de 12 MHz. La distancia del salto está limitada a la banda de -128 a +127 bytes relati- vos a la instrucción que si- gue el JMP. JMP es el mo-

Tabla 8

Tabla 8

Tabla 9

Tabla 9

Ciclo de

Máquina

Un ciclo de máquina consiste en una secuen- cia de 6 es- tados, nu- merados desde S1 hasta S6. Cada es- tado exige, por lo me- nos, dos pe- ríodos del os- cilador, lo que significa que un ciclo de máquina demora 12 ciclos del os- cilador, co-

rrespondien-

tes a 1µs si la

Fig. 14
Fig. 14

Fig. 15

Fig. 15

do mnemónico de la ins- trucción. La tabla 9 mues- tra la lista de jumps disponi- bles en el 80C51. Todos es- tos jumps especifican el di- reccionamiento de destino por el método de offset re- lativo, y, por eso, están limitados a una dis- tancia de -128 a +127 bytes a partir de la instrucción que determina el salto. Es im- portante observar que el usuario especifi- ca el assembler (ensamblador) o direccio- namiento real de destino de la misma for- ma que en los jumps comunes: como un archivo de constantes de 16 bits. Otra aplicación para esta instrucción está en las comparaciones del tipo "menor que".

Timing de la CPU

Todos los microcontroladores 80C51 po- seen un oscilador on-chip que puede utili- zarse como fuente de señal de clock para la CPU. Para usar el oscilador on-chip conecte un cristal al resonador cerámico entre los pines XTAL1 y XTAL2 del microcontrolador y capacitores a tierra, tal como muestra la figura 14. En la figura 15 tenemos ejemplos de có- mo utilizar un oscilador externo como ge- nerador de clock.

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

frecuencia del clock fuera de 12 MHz. Ca- da estado está dividido en mitades que corresponden a Fase 1 y Fase 2. La figura 16 muestra la secuencia de estados y fa- ses para diversos tipos de instrucciones. Las secuencias descriptas son las mismas tanto para la utilización de una Memoria de Programa interna como externa. El tiempo de ejecución también es indepen- diente del uso de las memorias usadas.

externas, 2 por timer y el port serial de in- terrupción. A continuación damos una vi- sión general de la estructura de interrup- ciones del dispositivo, ya que una profun- dización mayor sólo sería posible con un análisis más detallado del manual del componente.

Habilitación de Interrupciones

Estructura de Interrupciones El 80C51, en su versión sin ROM y con EPROM, posee 5 fuentes
Estructura de Interrupciones
El 80C51, en su versión sin ROM y con
EPROM, posee 5 fuentes de interrupción: 2
Cada fuente de interrupción puede ser
habilitada o inhabilitada individualmente
por la colocación o el retiro de un bit en
la parte de la SFR denominada IE (Inte-
rrupt Enable). Este registro contiene, tam-
bién, un bit de inhabilitación
global que permite la habili-
tación o inhabilitación de to-
das las interrupciones al mis-
mo tiempo.
Prioridades de
Interrupción
Figura 16
Cada fuente de interrup-
ción puede programarse indi-
vidualmente para presentar
uno o dos niveles de priori-
dad por la utilización de un
bit en la SFR denominado IP
(Interruptor Priority). Una inte-
rrupción de baja prioridad
puede detenerse por una in-
terrupción de alta prioridad
pero NO por otra de baja
prioridad. En caso de recibir-
se dos pedidos de interrup-
ción al mismo tiempo, será
atendido el de mayor nivel
de prioridad.
Si fueran recibidas dos ins-
trucciones de interrupción de
igual prioridad al mismo tiem-
po, una secuencia interna de
  • 112 Todo sobre PICs

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

evaluación determina cuál es la que de- berá ser atendida. Simulando un Tercer Nivel de Prioridad Vía Software: Algunas aplicaciones exigen más que los dos niveles de prioridad dis- ponibles en el 80C51. En estos casos, un software relativa- mente simple puede utilizarse para tener el mismo efecto de un tercer nivel de prio- ridad. Este software aumenta un tiempo de 10µs (con 12MHz) para las interrupciones de prioridad 1.

Nota

La descripción de la arquitectura que dimos fue simplificada, ya que la compleji- dad del dispositivo no nos permite hacer una descripción completa en el poco es- pacio que disponemos. No obstante, esperamos que haya sido lo bastante detallada para permitirle al proyectista una visión de las posibilidades del dispositivo.

MICROCONTROLADORES DE MOTOROLA

Ningún componente electrónico impac- tó tanto en la estructura de nuestra indus- tria (y en la sociedad en general) como lo hizo el microprocesador. Ni siquiera el tran- sistor, o el circuito integrado, modificaron tanto las estructuras; ya que en el fondo sólo cambiaron el tamaño, las prestacio- nes y el precio de los equipos; pero las in- dustrias siguieron siendo como eran antes:

un lugar donde se montaban componen- tes sobre una placa, se probaban los con- juntos, se colocaban en un gabinete y se vendían. De hecho cada componente te- nía una función para la cual había sido construido y no se podía emplear para otra cosa.

Un microprocesador es otro tipo de componente. Nace con la capacidad de ser adecuado para diferentes usos; el mis- mo micro puede usarse para una gran cantidad de aplicaciones, que ni siquiera su propio fabricante conoce. En este artí- culo, vamos a presentar una aplicación del microprocesador Motorola MC68HC705J1 donde se lo utiliza para controlar la cerradura eléctrica de una puerta, con introducción de un código nu- mérico por un teclado; pero con el mismo integrado, se puede realizar una interfaz para comunicarse con una PC en forma remota, o un detector de estado del cierre de puertas de una casa, o cualquier otra aplicación que pueda resolverse con compuertas lógicas, con temporizadores o que implique el ingreso de datos y su pro- cesamiento matemático o lógico y la sali- da de los datos procesados con destino a diodos LEDs, relés, optoacopladores, triacs, etc. Esta ductilidad en su comportamiento es debida a que el integrado permite que el diseñador programe las funciones que debe cumplir, incluso si no está conforme con el funcionamiento o desea realizar otra aplicación, puede desprogramar el integrado y volverlo a programar tantas veces como lo desee, si se trata de la ver- sión EPROM. Esto merece un comentario más extenso.

LAS VERSIONES EPROM Y OTP

Primero vamos a explicar qué significan las iniciales del subtítulo:

EPROM: ERASABLE PROGRAMABLE READ ONLY MEMORY - MEMORIA DE LECTURA SOLAMENTE, BORRABLE Y REPROGRAMABLE OTP: ONE TIME PROGRAMING - MEMO- RIA DE LECTURA SOLAMENTE, QUE ADMITE UNA UNICA PROGRAMACION Una vez programados o grabados, am-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

bos dispositivos realizan la misma función. La diferencia fundamental entre ambos, está en el precio. La relación de precios entre un EPROM y un OTP para el modelo que describimos, es de unas trece veces. La versión EPROM, se utiliza sólo para el proceso de desarrollo; una vez que el pro- totipo ha sido depurado en su funciona- miento, el producto industrial se realiza con la versión OTP. En general el precio de la OTP es comparable al precio de 3 ó 4 compuertas lógicas y su prestación es muy superior. El significado de la palabra programar o grabar es el siguiente. El microprocesador contiene una memoria, en donde se guar- dan ordenadamente los datos necesarios para que funcione. A la memoria pode- mos considerarla como una cajonera de las que utilizamos para guardar materiales. Cada cajoncito tiene su número (sólo que este caso es un número hexadecimal, ver apéndice A). Cada cajoncito, al que lla- maremos dirección o posición de memo- ria, tiene ocho separaciones internas (cel- das de memoria) en donde vamos a co- locar un cartón escrito con un uno o un cero (que llamamos bit). Cada bit tiene una determinada posición en el cajón, a los más internos los llamamos los menos significativos y a los más externos, los más significativos. Cada bit es un dato que de- seamos almacenar para recuperarlo pos- teriormente y utilizarlo adecuadamente. Los conjuntos de ocho bits forman una cadena de símbolos o palabra, que en in- glés se denomina BYTE. Para no confundir los términos en lo sucesivo vamos a llamar “bit” a cada elemento y “octeto” al con- junto de ocho bits (las cadena de 4 bits re- ciben en inglés el nombre de “nibble” y nosotros lo llamaremos cuarteto). Al grabar el programa, se determina el uso de cada posición de memoria como contenedora de una instrucción (por ejemplo: sumar,

comparar, realizar la operación lógica AND, etc) en tanto que otras posiciones de memoria se destinan a guardar datos fijos (simplemente números digitales trans- formados a binarios). En cualquiera de los dos casos, las posiciones de memoria tie- nen guardados una serie de uno o ceros; sólo que el micro los decodifica adecua- damente, para transformarlos en números o instrucciones. Las memorias se ordenan según su ca- pacidad de almacenar octetos, cuartetos o palabras de otra cantidad de bits. Por ejemplo, el micro que nos ocupa tiene una capacidad de almacenar 1.200 octe- tos, en su memoria EPROM, disponibles pa- ra el uso (hay posiciones prohibidas que no pueden utilizarse, es decir que son co- mo cajones trabados). Con el mismo lugar asignado para la memoria, podrían mane- jarse 2.400 cuartetos en otro dispositivo que funcionara con organización de 4 bits. Para simplificar las cosas se puede decir que nuestra memoria tiene una capaci- dad de 1200x8. Una EPROM está construida con una matriz de transistores MOSFET, que quedan en una condición de conducción (cero) o de corte (uno), según el estado de carga de su compuerta, que puede considerase como un capacitor. Estos capacitores tie- nen tan buena aislación que conservan su carga por muchos años, manteniendo los datos grabados; este proceso se realiza con pulsos de tensión de unos 14V. La úni- ca manera de borrar la memoria, es expo- ner el chip a la luz ultravioleta, que ingresa por una ventana transparente. En ese mo- mento, la luz genera portadores de carga en las aislaciones de las compuertas, co- mo para que éstos descarguen el capaci- tor. Luego se puede volver a escribir sobre la memoria, una vez tapada la ventana. Una OTP es una matriz de diminutos fusi- bles que se queman en el momento de la

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

escritura (también se requiere una tensión más alta que la normal para producir la fu- sión de los microfusibles). Con esta estruc- tura, una vez grabada, la memoria no puede ser borrada. El proceso de escritura de las memorias se realiza con una placa especial (que se incluye en el kit de desarrollo junto con un micro tipo EPROM) y que sirve para grabar cualquiera de los dos dispositivos. Esta pla- ca se conecta a una PC, donde se corre un disquete especial que se entrega con el kit de desarrollo. El programa de trabajo desarrollado se escribe en la PC desde la misma, se transfiere al micro a través de la placa de desarrollo. Luego se retira el mi- cro de la placa del kit de desarrollo y se ubica definitivamente en la placa de pro- ducción, si es una OTP, o en la placa pro- totipo, si es una EPROM. En realidad el disquete que viene con el kit de desarrollo no sólo sirve para escribir el programa en nuestro micro; ésa es sólo una de sus funciones. También per- mite realizar la “simulación” del mi- cro J1 y los componentes externos con la PC y correr el programa de- sarrollado, para verificar su funcio- namiento en forma virtual, sin reali- zar ninguna placa prototipo. Una vez completada esa primera eta- pa del desarrollo, se pasa a una se- gunda etapa llamada de “emula- ción”; en esta etapa, la PC cumple sólo la función del micro J1, sin componentes externos y sirve pre- cisamente para probar la placa prototipo de nuestro desarrollo. Re- cién como tercera etapa, se pro- cede a grabar el micro.

La Tensión de Alimentación

Es costumbre que cuando un

dispositivo está construido con MOSFETs, las tensiones de alimentación negativa y positiva se llamen VSS y VDD, respectiva- mente (S de SURTE = surtidor y D de DRAIN = sumidero). El Motorola J1 opera con una tensión de fuente simple de 3,3 a 5V, co- nectada a la pata 9 (VDD) y con el nega- tivo de fuente conectado a la pata 10 (VSS). Un micro es un dispositivo cuyo consu- mo puede ser muy variable, en función del programa, de la tensión de fuente y de la velocidad a la cual trabaja el dispositivo. En el modo de funcionamiento normal, la velocidad está directamente determinada por la frecuencia del cristal o filtro cerámi- co del clock (este tema se tratará en el próximo punto). Pero aparte del modo de funcionamiento normal, el J1 tiene otros dos modos de funcionamiento: WAIT (len- to) y STOP (parado); esos modos de fun- cionamiento están previstos para que el dispositivo reduzca dramáticamente el

Figura17
Figura17

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 18
Figura 18

consumo, ya que está previsto para ser ali- mentado con pilas, cuando trabaja como control remoto, o en los sistemas de alar- ma en caso de corte de energía. Por todo esto, el consumo debe expre- sarse a través de una tabla, en función de la tensión de alimentación, la frecuencia del cristal y el modo de funcionamiento. Ver figura 17. Otra cosa a tener en cuenta con res- pecto al consumo, es que es sumamente variable por pulsos, debido a las caracte- rísticas de los circuitos digitales, que consu- men sobre todo durante las conmutacio- nes. Esto obliga a conectar dos capacito- res, entre el terminal de VDD y el de masa; uno de valor alto (electrolítico) y otro de valor más pequeño, con buenas caracte- rísticas de respuesta a altas frecuencias (cerámico multicapa o poliéster metaliza- do) de 0,1µF. Los capacitores deben conectarse lo más cerca posible de los terminales del mi- cro, con pistas cortas y anchas.

De otro modo, la tensión VDD tendría lo que se llama ruido digi- tal, que puede causar un funciona- miento errático del dispositivo. Ver figura 18.

Oscilador de Clock

Un micro es un dispositivo que funciona de modo secuencial; por lo tan- to, todo su funcionamiento se basa en la generación de una señal llamada de CLOCK (reloj) que determina el ritmo de funcionamiento de todo el dispositivo. En general, todos los procesos internos se lle- van a cabo justo cuando el CLOCK cam- bia de estado; por ejemplo, la circulación de los datos, que se transfieren interna- mente en forma sincrónica con el clock. La señal de clock se puede generar de diferentes maneras, según qué elementos se conecten sobre las patas 1 (OSC1) y 2

(OSC2).

El sistema más estable es conectando un cristal y un resistor entre ambas patas y dos capacitores a masa desde cada pa- ta. Ver figura 19. El resistor cumple la función de hacer

arrancar al oscilador, y su uso puede evi- tarse, ya que el micro tiene un resistor inter- no de 2M, que queda conectado o no, en función de la grabación de la memoria (una posición de memoria se dedica ex- clusivamente a realizar las modi-

ficaciones de la arquitectura in- terna del dispositivo, en función de las necesidades del circuito). La frecuencia máxima del cristal que puede utilizarse, depende de la tensión de fuente: para una tensión nominal de 5V, se recomienda usar un cristal de 4MHz o menor, en tanto que para una tensión nominal de

Figura 19
Figura 19

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 20
Figura 20

3,3V se recomienda no superar los 2MHz. El tipo de cristal más recomendable es el de corte AT, para evitar la sobreexcitación del oscilador. Ver figura 20. Cuando se trata de fabricar dispositivos de bajo costo, lo más recomendable es utilizar un resonador cerámico, en lugar del cristal. La estabilidad del resonador ce- rámico, es menor que la del cristal; pero es suficiente para la mayoría de las aplica- ciones (el micro puede trabajar como temporizador y la estabilidad de tiempo es directamente proporcional a la estabilidad del CLOCK). Ver figura 21. En el futuro, este micro estará previsto para usar un oscilador RC, en el que no se requiera buena estabilidad. Se debe con- sultar al representa local de Motorola, por la disponibilidad de esta prestación. Un micro puede trabajar en forma en- ganchada con otro, del mismo o de dife- rente tipo, inclusive de otra marca, mien- tras sea un CMOS compatible. En este ca-

so, la conexión es muy simple: la pata uno se utiliza como pata de entrada, dejando libre la pa- ta dos. Ver figura 22. La velocidad con la que el micro realiza cada ciclo de ins- trucción, es directamente pro- porcional a la frecuencia del clock. En este modelo, cada ci- clo de instrucción dura 476nS, si

el cristal es de 4MHz y VDD es 5V (en realidad el clock interno trabaja a 2MHz, ya que el generador de clock tiene acoplado un divisor por dos). Para VDD de 3,3V y cris-

tal de

2MHz, ca-

da ciclo

de instruc-

ción dura

aproxima-

damente

1µS.

Figura 22
Figura 22

RESET Y WATCHDOG (COP)

La abreviatura COP significa: COMPU- TER OPERATING PROPERLY que se traduce por: OPERACION APROPIADA DEL COMPU- TADOR. El micro realiza su tarea en forma rutina- ria y secuencial, cumpliendo cada paso

de programa y cuando llega al último, co- mienza reiterativamente por el

primero o por otro, si el último paso así se lo indica. Esta rutina, se puede alterar de dos mane- ras diferentes: por el RESET, o por una interrupción IRQ. En este punto trataremos el modo RE- SET. El RESET, se puede producir automáticamente, o como una condición buscada exterior-

Figura 21
Figura 21

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

mente con un pulsador, conec-

Figura 23
Figura 23

sis de tensión) que aumenta la inmunidad del micro frente al ruido, para evitar que se produzca un RESET indeseado. Ver figu- ra 23. La versión EPROM de este dispositivo no tiene ni el resistor ni el diodo y, por lo tanto, se debe prever su ubicación en la placa prototipo.

Las Interrupciones IRQ

La pata 19 es de doble función, sirve como una entrada de interrupción o co- mo pata de grabación del programa, cuando se trabaja con tensiones superio- res a 12V. Entre 0V y VSS, esta pata opera deteniendo el programa normal, pero acumulando previamente todos los datos existentes en cualquier tipo de componen- te interno, capaz de memorizar datos (re- gistros, memoria volátil, etc.) Cuando ter- mina el programa de interrupción, el pro- grama principal continúa funcionando normalmente, en el paso en donde se ha- bía interrumpido su funcionamiento. Cuando se realiza una interrupción, el micro sale de su programa normal y realiza otro programa. Es como dejar de realizar el trabajo habitual, para realizar otro en forma momentánea y luego volver a la ta- rea normal. En realidad, existen otras 4 pa-

tado desde la pata 20 a masa. Cuando se opera el RESET, el micro retorna a una condición preestablecida de arranque, carga todos los dispositivos que pueden memorizar con los oc- tetos indicados por el progra- ma (generalmente 00000000) y luego arranca por el primer pa- so de programa. En algunos casos (sobre todo cuando se está en una etapa poco avanzada del desarrollo) se pueden producir errores de funcionamiento, que lleven al programa a trabajar sobre un la- zo cerrado, del cual no puede salir por sí mismo (en la jerga se dice que el sistema se quedó colgado). Tambien puede ocurrir que, por error, se pretenda acceder a una posición de memoria ilegal (una dirección reservada para un uso fijo del micro). En ambos casos, opera un sistema lla- mado WATCHDOG (literalmente: perro guardián). El WATCHDOG produce un RE- SET automático, si es que el micro demora más que un tiempo preestablecido para realizar su rutina principal; del mismo modo opera, si se pretende utilizar una posición de memoria ilegal. A este sistema también se lo llama COP WATCHDOG (literalmente perro guardián de la operación apropiada del microcomputador). En la versión OTP, existe un resistor inter- no conectado a la tensión de fuente VDD; es decir, que sólo basta con conectar la pata 20 a masa con un pulsador. También existe un diodo interno, que limita la ten- sión si ésta supera a la de fuente y que además arrastra hacia masa la tensión de la pata 20, cuando se desconecta la fuen- te VDD. La pata 20 no opera directamen- te sobre micro, sino que lo hace a través de un SCHMITT TRIGGER (disparador de Schmitt: dispositivo de disparo con histére-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

tas que pueden producir interrupciones (15, 16, 17 y 18). Estas patas pueden usar- se como entrada IRQ, o como entrada o salida de datos. La elección se realiza por el programa junto con la grabación del dispositivo. A este tipo de selección, se la conoce como MASKABLE (enmascarable) y se refiere a la polifuncionalidad del dis- positivo, que permite utilizar alguna de sus pata para una u otra función (cambio de máscara, careta o disfraz). También es ENMASCARABLE el funciona- miento de las patas de IRQ, ya que pue- den responder al cambio de estado positi- vo a negativo, o a ambos cambios de es- tado, o simplemente al estado bajo de las patas. La pata 19 requiere un resistor externo a VDD, si se desea que el dispositivo opere como una compuerta OR, entre las infor- maciones de las patas 15, 16, 17 y 18 (cualquiera a masa produce una IRQ) aunque tiene prioridad la interrupción por la pata 19 a masa, que produce un IRQ de diferente tipo. Similarmente a la pata del reset, la pata 19 IRQ opera sobre el mi- cro a través de un disparador de Schmitt, para reducir la respuesta al ruido. Debe prevenirse toda tensión sobre esta pata con un valor superior al de VDD.

Patas de Entrada y Salida (PORTS)

Este dispositivo tiene dos ports paralelos de entrada salida (I/O = INPUTS/OUTPUTS). Estas patas interconectan el micro con el mundo exterior. Por ellas se pueden intro- ducir datos, para operar luego sobre ellos y entregar los resultados como leds que se encienden, o relés que operan. Cualquiera de las patas de ambos ports, pueden ser una entrada o una sali- da; basta con grabar los datos adecua- dos en determinadas direcciones de me-

moria para que una pata sea una entra- da, o se transforme en una salida. Por su- puesto el programa dirigirá información hacia las salidas, o la tomará de las entra- das. Los ports se nombran como PA y PB por comodidad. El port B tiene 6 patas, que cumplen sólo las funciones normales de entradas y salidas. El port A tiene 8 patas, que además de su función específica de I/O, cumplen con otra función extra. Des- de la PA0 hasta la PA3, cumplen funciones de ingreso de señales de interrupción IRQ (como se mencionó en el punto 7) y la PA4 a la PA7, cumplen funciones de salida reforzada, ya que admiten una carga de 10mA, capaz de excitar un LED en forma directa. Cada port tiene su propia direc- ción de memoria, en donde se pueden leer o almacenar datos.

Sistema Temporizador Multifunción

Este micro tiene un temporizador pro- gramable de 16 etapas. Su utilidad es ob- via; permite demorar las acciones del mi- cro (por ejemplo, cerrar un relé un tiempo después de ingresar un pulso de entrada) y todo de manera sencilla y con una pre- cisión dada por el cristal. La demora pue- de ser fijada en el momento de grabar la memoria, o introducirse desde un teclado, etc. Las funciones del temporizador y del sis- tema de WATCHDOG, están relacionadas forzosamente entre sí, dada la función de éste con respecto al tiempo que tarda el sistema, en recorrer todos los pasos del programa. Por ejemplo, el simple progra- ma para cerrar un relé por un tiempo de- terminado a través de un teclado; requie- re que el sistema de WATCHDOG tenga una demora variable. Recién cuando pa- se un tiempo igual a la duración del pro-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

grama, más la demora introducida por el teclado, más un tiempo de tolerancia fijo; opera el WATCHDOG reseteando el siste- ma.

Unidad Central de Proceso CPU

Es la parte del micro que realiza el pro- cesamiento de los datos de entrada y emite los datos de salida, en función de las órdenes que encuentra en el progra- ma. La CPU es, en realidad, un conjunto de etapas, cada una de las cuales cum- ple una función clara y precisa, que vere- mos a continuación:

ALU: unidad aritmética y lógica. La ALU realiza las operaciones aritméti- cas y lógicas entre dos variables de pro- gramas (datos captados y acumulados en registros o memorias transitorias). Los circuitos aritméticos binarios, deco- difican las instrucciones y predisponen a la ALU para realizar la operación selecciona- da. La aritmética binaria está basada en el algoritmo de la adición; la substracción se realiza como la adición de un número negativo. La multiplicación no se realiza como una operación discreta (en un solo paso) pero puede realizarse como una opera- ción de adiciones sucesivas y desplaza- miento de dígitos binarios. La instrucción para realizar una multipli- cación se llama MUL y requiere 11 ciclos del reloj interno, para completar una ope- ración. Las operaciones lógicas son las que comparan dos números binarios, emitien- do un 1 o un 0, en función de que se cum- pla o no la operación lógica solicitada (< menor que; > mayor que; = igual a). CPU REGISTER: REGISTROS DE LA UNIDAD CENTRAL DE PROCESO

Un registro es una pequeña unidad de memoria de lectura y escritura, del tipo vo- látil, que en general tiene un tamaño que no supera los dos octetos. La CPU necesita

utilizar 3 registros de 8 bits y 2 de 16 bits, para poder operar adecuadamente. En este artículo, sólo daremos una mínima descripción de los mismos, que se irán completando en sucesivas publicaciones.

“A” = ACUMULADOR: Acumula uno de los sumandos o el resultado de una suma durante las operaciones aritméticas. “X” = REGISTRO INDICE: El CPU utiliza es- te registro para determinar la dirección condicional del operando; también se lo utiliza como registro transitorio similar al “A”. SP: PUNTERO DE PILA= Es un registro de 16 bits que contienen la dirección siguien- te de la pila de instrucciones. PC: CONTADOR DE PROGRAMA= Es un registro de 16 bits que contiene la direc-

ción de la siguiente instrucción. CCR: REGISTRO DEL CODIGO DE CONDI- CION= Es un registro de 8 bits en donde los 3 dígitos más significativos no se utilizan y están fijos en 111.

El resto de los bits contiene un indica- dor de la máscara de interrupciones y 4 in- dicadores del resultado de la operación que está siendo efectuada. Ver figura 24.

Memoria Volátil

La EPROM analizada anteriormente, es una memoria no volátil, ya que mantiene su información luego de cortar la fuente. Si bien permite la escritura, esta debe reali- zarse utilizando la placa de desarrollo, es decir que el micro no puede cargar infor- mación en la EPROM. Por este motivo el micro cuenta con una pequeña memoria RAM para guardar

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 24
Figura 24

información mientras la fuente permanece conectada (es del tipo volátil) pero que es fácil de grabar y leer y sobre todo con ac- ceso rápido a cada posición de memoria solicitada. La capacidad de esta memo- ria, es de sólo 64 octetos, pero es más que suficiente para este micro de bajo costo. Las posiciones de memoria no se repiten en ambos tipos de memoria.

zar un diagrama en blo- ques del micro, ya que se mencionaron todas las etapas que forman parte del mismo. Este diagra- ma se diferencia de un diagrama del tipo analó- gico, por la existencia de un bus bidireccional que interconecta todas las etapas del micro. Esto simplemente significa que estas etapas pueden intercambiar información, porque todas tienen un port paralelo de I/O. Ver fi- gura 25.

Descripción Funcional de las Patas (PINOUT)

Registro de Máscara de Opciones

Ya sabemos que éste es un integrado MASKABLE, las características de la másca- ra le indicarán al micro como debe predis- poner sus patas, para realizar la función solicitada y si debe o no conectar los componentes MASKABLES que contienen en su interior. La máscara de opciones se guarda en un registro determinado, que si bien forma parte de la EPROM (o de la memoria OTP) se lo considera especial dada su importan- cia. De cualquier modo estas posiciones de memoria no forman parte de lo que se llama la USER EPROM (parte de la EPROM a la cual se puede acceder libremente mediante el programa).

Estructura del Micro

Con lo visto hasta aquí, se puede reali-

En la figura 26, se muestra el PINOUT del dispositivo en las versiones del montaje convencional 20 PDIP y de montaje super- ficial 20 SOIC.

Cerradura Eléctrica

En esta nota de aplicación, se ejemplifi- ca el uso del micro con ingreso de datos, por intermedio de un teclado matricial de 4X4. El funcionamiento del dispositivo pue- de resumirse del siguiente modo: el dato numérico que se ingresa por el teclado, se compara con el número clave grabado en una posición de memoria. Si el resulta- do de la comparación, indica que los nú- meros son iguales, se emite una salida que opera un relé. El relé es capaz de excitar a una bobina tragante, interna a la cerradu- ra de la puerta, para permitir su apertura. Si los números no coinciden, el relé no opera y se levanta otra salida, que se utili- za como alarma por intento de violación de la cerradura.

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 25
Figura 25

EL ESTADO DE STOP

Existen dos maneras de resolver el sof- ware (programa). Si el sistema va a operar con energía de emergencia es convenien- te que el sistema quede en STOP hasta que se introduce algún dato. La rutina principal en este caso lleva al micro a tra- bajar en el modo STOP, a la espera de una

señal IRQ de interrupción. En este estado el microprocesador se encuentra detenido en un paso de programa determinado. Como no existen cambios de estado, el consumo del micro es mínimo, ya que la potencia se desarrolla sólo cuando los transistores conmutan. En efecto, si un transistor está saturado, tiene corriente de colector, pero su tensión CE es de unos po-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

cos mV y la potencia disipada es mínima. Si un transistor está cortado, su corriente de colector es mínima y aunque su tensión CE es la de fuente, tampoco se desarrolla una potencia importante (P = E.I). El único modo de modificar este estado de STOP es por intermedio de una señal de interrupción. Esta se genera automáti- camente cuando se introduce el primer dí- gito del código. En efecto, las conexiones de las filas del teclado, se envían a las pa- tas PA0 a PA3, que operan como entrada de datos o de interrupciones indistinta- mente. Por lo tanto, cuando se pulsa cual- quier número, una de las filas queda co- nectada a una de las salidas del micro PB0 a PB3, que en ese momento se encuen- tran en el estado alto. Ver figura 27. Las patas PA0 a PA3 están conectadas internamente a una compuerta OR, por lo tanto cualquiera de ellas que tenga un es- tado alto, genera una señal IRQ. Ver figura 28. La entrada de habilitación de la AND, se encuentra alta en el funcionamiento en STOP, por lo tanto cualquier interrupción por PA0 a PA3, genera una señal IRQ que envía a sistema a la sub-rutina de interrup- ción. En el otro modo de funcionamiento, que es el que explicaremos en este artícu- lo, el programa se encuentra explorando constantemente la matriz de teclado.

La Exploración del Teclado

La función del sofware es averiguar con exactitud cuál de las teclas fue pulsada. Para esto es necesario mantener baja la pata de habilitación de la AND, para que las entradas PA0 a PA3 se comporten co- mo entradas de datos. Luego, la rutina baja todas las salidas menos la PB0 y verifica el estado de las en- tradas PA0 a PA3. Si ninguna de las entra- das tiene un estado alto, significa que la

Figura 26
Figura 26

tecla presionada no corresponde a la pri- mera columna. Por lo tanto, bajando la sa- lida PB0 y levantando la PB1, se vuelven a verificar todas las entradas. De este modo se continúa hasta llegar a la salida PB3. La subrutina se interrumpe sólo cuando detecta la columna y la fila correspondiente a la tecla presionada. Debemos aclarar que el proceso ante- rior dura muy poco tiempo y por lo tanto, se completa antes de que el usuario le- vante el dedo de la tecla. Inclusive, ape- nas se determina el número pulsado, el programa llama a una sub-rutina de de- mora, por la cual no se acepta ninguna

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 27
Figura 27
Figura 28
Figura 28
Figura 29
Figura 29

entrada por algunos milisegundos. Esto evi- ta el llamado error por rebote de la tecla (DEBOUNCE) que se produce si el contac- to no es franco, lo cual produce una en- trada con varios máximos sucesivos, por variación de la resistencia de contacto

(DEBOUNCE = REBOTE).Ver figura 29. El sistema es tan rápido, que podría de- tectar tres veces el mismo número, produ- ciendo un error en el ingreso del número que ya no coincidiría con la clave. La manera de evitar esta falla, es utili- zando una rutina de demora una vez de- tectada la entrada del teclado, de modo que se evite la captación de las siguientes que se presenten en un lapso de algunos mS. Además, cada vez que se pulsa una tecla se enciende el led verde, para con- firmar la acción. Luego de captar el primer dígito y al- macenarlo como dígito menos significati- vo en la RAM, el sistema vuelve a la rutina

principal y queda en el modo STOP, hasta

que el usuario marca el siguiente dígito y así sucesivamente hasta cargar los 4 dígi- tos que forman el código (la cantidad de números del código puede llevarse a 8 sin inconvenientes). Al cargar el cuarto dígito, el sistema va a la subrutina de comparación.

Subrutina de Comparación

El sistema compara el número acumula- do en la RAM, con el número clave exis- tente en el programa. Si ambos son igua- les, se produce una salida alta por el port A6, que provoca el cierre del relé por un intervalo de unos 5 Seg. Durante este intervalo, el usuario puede operar manualmente la puerta, ya que el relé opera un tragante, ubicado en el marco de la misma. Si el número ingresado difiere del núme- ro clave, se levanta la salida A5. Esta salida, está implementada simple- mente con un conector. Dejamos librado su uso a la imaginación del lector, ya que dicha salida puede utilizarse para accio- nar un led remoto, o un BUZZER local, o uti-

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

lizar una sirena de dos tonos, tal como su- gerimos en la figura 30. Si el número no corresponde, PA5 se le- vanta, Q1 y Q2 conducen y la tensión so- bre C1 llega al valor de fuente. En este momento, quedan alimentados los dos os- ciladores unijuntura Q4 y Q5. Q5 genera el tono principal alto, en tanto que Q4 gene- ra el tono bajo de modulación. Los preset P1 y P2 permite realizar una variedad de tonos de alarma, a elección del lector. Cuando desaparece la alarma, C1 se des- carga lentamente y produce el apagado gradual de la sirena. El amplificador Dar- lington, puede excitar un parlante de 4 Ohms con una potencia de 6W (o 3W con 8 Ohms) y en este momento el consumo sobre la fuente es de 1,2 A. El transistor Q8 debe montarse sobre un disipador ade- cuado. Para desconectar la alarma, se debe digitar el número correcto o desco- nectar el amplificador desde el interior de la vivienda.

Circuito Completo

En la figura 31 se puede observar el cir- cuito completo que no requiere mayores explicaciones, ya que cada etapa se trató adecuadamente. Sólo falta explicar el fun- cionamiento del circuito de reset automá-

tico. Se trata de un circuito RC, que produ- ce el reset automático cuando se da ali- mentación al sistema. Su función es retar- dar la alimentación de la pata 20 (RESET) por unos instantes, de manera que se pro- duzca el reseteo del sistema y luego llevar la pata a la tensión de fuente. El resona- dor cerámico integrado MURATA, puede reemplazarse con un cristal de 4MHz y dos capacitores, tal como se observa en la fi- gura 32.

CONCLUSION

El autor sabe que lo dicho de este pro- yecto es algo más que una simple infor- mación. Es una clara explicación sobre un nuevo modo de proyectar y de utilizar una PC y un KIT de desarrollo de bajo costo. Por su- puesto no pretendemos que cada lector compre un kit de desarrollo, pero tal vez, puedan juntarse los alumnos de las escue- las de electrónica y comprar un kit por ca- da división y realizar las prácticas en la es- cuela. Es cierto que se puede trabajar sin el kit, pero el trabajo de depuración del progra-

ma, lleva su tiempo y siempre es mejor realizarlo simulando y emulando el micro con la PC, para no tener que grabar la EPROM varias veces. Sólo la parte final del desarrollo, debería realizarse grabando la

Figura 30
Figura 30

Todo sobre PICs

125

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

Figura 31

Figura 31

EPROM del micro. Con referencia a la nota de aplicación de la cerradura electrónica,

te del texto, solamen- te se pretendió dar los principios básicos de los microprocesa- dores y se brindó to- dos los medios para poder armar una apli- cación, de modo que el lector se familiarice con esta moderna técnica de desarrollo y con el micro J1 de MOTOROLA. Si el lector es fabri- cante de algún pro- ducto que utiliza compuertas o tempo- rizadores y está pen- sando en modernizar su producto, le voy a dar un último dato, que lo va a ayudar a decidirse. Este micro puede programarse para que sea imposible acceder al pro- grama interno y de este modo evitar co-

Figura 33
Figura 33

el micro puede ser adquirido ya graba- do en

pias del producto. Ya no va a ser necesa- rio que borre los códigos de sus compuer-

tas, use un micro y active el llamado bit de protección, para que nadie pueda copiar su programa. Es como si alguien fabricara

  • Electro- un circuito integrado exclusivamente para

    • compo- usted, o mejor aun, es como si lo fabricara usted mismo. En futuros textos, se continuará con los temas que no pudieron tra- tarse aquí por problemas de espacio. Ya no nos con- formaremos simplemente

nentes, o

hacerlo

grabar en

otras fir-

mas que

se dedi-

can a

grabar

EPROMs.

Con lo

dado en

esta par-

con utilizar un micro ya gra-

Figura 32
Figura 32

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

bado. Explicaremos las técnicas de pro-

R1

RESISTOR DE 10K 1/8W 5%

gramación, simulacion y emulación, para

R2

RESISTOR DE 10K 1/8W 5%

que cada lector pueda realizar los pro-

R3

RESISTOR DE 39 OHMS 1/8W 5%

yectos completos. En la figura 33 se da

R4

RESISTOR DE 39 OHMS 1/8W 5%

un esquema aconsejable para el circuito

R5

RESISTOR DE 10K 1/8W 5%

impreso.

C1 CAPACITOR DE POLYESTER METALIZA-

Lista de materiales de la cerradura electrónica

DO .1µF C2 CAPACITOR ELECTROLITICO 100µF C3 CAPACITOR ELECTROLITICO 22µF

CI1 CIRCUITO INTEGRADO MOTOROLA

D1

DIODO 1N4004

MC68HC705J1AP

D2

DIODO LED ROJO

RC1RESONADOR CERAMICO MURATA

D3

DIODO LED VERDE

CST4.00MGWA

TC1 TECLADO MATRICIAL DE 4X4 RL1 RELE SIMPLE INVERSOR CON BOBI- NA DE 5V

Q1

TRANSISTOR BC548 C

EL RESONADOR CERAMICO SE PUEDE

REEMPLAZAR POR:

X1

CRISTAL DE 4MHz CORTE AT

C3 CAPACITOR CERAMICO NP0 27 pF C4 CAPACITOR CERAMICO NP0 27 pF

Programas de Aplicación de

STA

PORTB

#$00

LDA

#$00; CARGO EL CONTADOR DE

la Cerradura Electrónica

STA ZAR A CONTAR LDX

NUMEROS CONT ;CON CERO PARA EMPE-

1) DISPOSITIVO ABREPUERTA CON MICRO J1A

BSET

7, PORTA ; APAGO EL LED VERDE

 

PROGRAMA PRINCIPAL

EPROM

EQU

$0300

RESET

EQU

$07FE

CLI

INT

EQU

$07FA

CLR

PDRA

PORTA

EQU

$00

INI_LOOP

CLC

PORTB

EQU

$01

LDA

#$01 ; barro el port B rotando un "1"

DDRA

EQU

$04

LOOP

STA

DDRB

EQU

$05

PORTB

;

por las 4 columnas y espero

;

PDRA

EQU

$10

JSR

DELAY

se presione una tecla y se:

PDRB

EQU

$11

ASLA

;

genere la interrupción

ISCR

EQU

$0A

CMP

#$08

IRQR

EQU

1

BNE

LOOP

IRQE

EQU

7

BRA

INI_LOOP

MOR

EQU

$7F1

CONT

EQU

$D0

CELDA

EQU

$D1

RUTINA DE ATENCION DE INTERRUPCION

 

INTERRUP

JSR

INICIALIZACION

DECOD

;

decodifico fila y columna de la tecla

 

STA

$E0

; presionada

 

ORG

EPROM

JSR

GRABA

;

grabo el caracter en ram

COMIENZO

LDA

#$F0

JSR

DELAY2

STA

DDRA ;PA0-PA3=ENTRA

AEM

JSR

 

DA / PA4-PA7=SALIDA

DECOD

;

vuelvo a decodificar para impedir que

 

LDA

#$FF

CMP

$E0

; el rebote de la tecla genere una

STA

DDRB; PB=SALIDA

BEQ

AEM

; interrupción no deseada

LDA

#$00

JSR

COMPARA

; comparo con el código

LOS MICROCONTROLADORES DE NATIONAL, PHILIPS Y MOTOROLA

BSET

IRQR,ISCR

; habilitación

BNE SAL2

LDX #$00

STX CONT

LDA CELDA

CMP $700,X

BNE SAL2

NOP

;

si no se tip. 4 números me voy sin comp.

;

;

;

;

;

código de habilitación me voy.

RTI

como se tipiaron 4 números

 

coloco el contador en 0 y

RUTINA DE GRABACION DEL CODIGO INGRESADO

 

comienzo A

OMP

comparar contra el código de hábil.

GRABA

LDX CONT

; RECUPERO EL CONTADOR

; APAGO EL LED VERDE

; si cualquier num. carg. no coinc. con el

 

DE NUMEROS

 

STA CELDA,X;

EN LA POS. CELDA

INCX

 

GUARDO EL CAR.DE TECTADO

CPX #$04

 

CPX #$04

; ME FIJO SI SE TIPIARON 4 NUMEROS

BEQ ACT

BEQ SAL1

; SI SE TIPIARON 4 NUMEROS ME VOY

LDA CELDA,X

INCX;

COMO NO LLEGUE A TIPIAR 4 NUMEROS

JMP COMP

STX CONT;

GUARDO EL NUEVO VALOR DEL CONT.DE

ACT

JSR ACTIVAR

; como el cod. ingresado es el correcto

 

NUM.

SAL2

RTS

;

activo el dispositivo a controlar.

 

BCLR 7, PORTA JSR DELAY2 BSET 7, PORTA

; PRENDO EL LED VERDE

RUTINA DE ACTIVACION DEL DISPOSITIVO DE CONTROL

RTS

;

VUELVO AL PROGRAMA PRINCIPAL

 

ACTIVAR

BSET 6,PORTA

 

BSET 5,PORTA

RUTINA DE DECODIFICACION DE TECLADO

 

JSR DELAY3

 

BCLR 6,PORTA

DECOD

LDA PORTA

BCLR 5,PORTA

AND #$0F

RTS

STA $C1

;

GUARDO LA FILA

LDA PORTB

STA $C2

;

GUARDO LA COLUMNA

VECTORES DE RESET E INTERRUPCION

LDX #$00

LDA $C1

;

RECUPERO LA FILA

ORG RESET

COMP1

CMP TABLAPRI,X

FDB COMIENZO

BEQ WW

;

AQUI DETECTO LA FILA DENTRO DE LA TABLA

ORG MOR

INCX

DB $24

INCX

ORG INT

INCX

FDB INTERRUP

JMP COMP1

WW

LDA $C2

;

RECUPERO LA COLUMNA

COMP2

CMP TABLAPRI+1,X

RUTINAS DE RETARDO

BEQ ZZ

;

AQUI DETECTO LA COLUMNA DENTRO DE LA TABLA

INCX

ORG $400

INCX

DELAY

LDX #$FF

INCX

RET

DECX

JMP COMP2

NOP

ZZ

LDA TABLAPRI+2,X

;DEJO

EN EL ACUM.EL CAR. DE TECTADO

BNE RET

RTS

RTS

TABLA DE COORDENADAS DE CADA TECLA

 

ORG $420

 

DELAY2

LDA #$FF

TABLAPRI

DB $01,$01,$1

;

—-

;

;

;

;

;

RET1

LDX #$FF

DB $01,$02,$2

| FILA 0

RET2

DECX

DB $01,$04,$3

|

NOP

DB $01,$08,$A

—-

BNE RET2

DB $02,$01,$4

—-

NOP

DB $02,$02,$5

| FILA 1

BRN *

DB $02,$04,$6

; |

BRN *

DB $02,$08,$B

; —-

DECA

DB $04,$01,$7

; —-

BNE RET1

DB $04,$02,$8

;

;

;

;

;

| FILA 2

RTS

DB $04,$04,$9

|

DB $04,$08,$C

—-

DELAY3

LDX #$0B

DB $08,$01,$F

—-

RET3

JSR DELAY2

DB $08,$02,$0

| FILA 3

DECX

DB $08,$04,$F

; |

BNE RET3

TABLAFIN

DB $08,$08,$D

; —-

RTS

RUTINA DE COMPARACION DEL CODIGO INGRESADO

 

ORG $0700 DB $02,$02,$02,$02 código de habilitación

COMPARA

LDX CONT

;

recupero el contador de números

CPX #$04

;

me fijo si

se tipiaron 4 números

  • 128 Todo sobre PICs