Apuntes ELECTRÒNICA DIGITAL IIbis

download Apuntes ELECTRÒNICA DIGITAL IIbis

of 39

Transcript of Apuntes ELECTRÒNICA DIGITAL IIbis

APUNTES DE LA MATERIA DE

ELECTRNICA DIGITAL II

1

UNIDAD I INTRODUCCION A LOS MICROPROCESADORESI.1 ORGANIZACIN BSICA DE UNA COMPUTADORA.Una computadora consta de 5 partes esenciales: 1. UNIDAD ARITMTICA Y LGICA (ALU) La Unidad Aritmtica y Lgica (ALU) realiza operaciones sobre los datos segn lo indicado por la Unidad de Control. Cada ALU se caracteriza por el tipo de datos que puede manejar y el conjunto de operaciones que puede realizar sobre tales datos. Las operaciones ms tpicas son: - Aritmticas: suma, resta, multiplicacin y divisin. - Lgicas: AND, OR, XOR, etc. - Corrimiento y Rotacin de datos 2. UNIDAD DE MEMORIA La memoria almacena grupos de dgitos binarios (palabras) que pueden representar instrucciones (programa) que la computadora ejecutar y los datos que sern operados por el programa. La memoria tambin sirve como almacenamiento de datos intermedios y finales de operaciones aritmticas. La unidad de memoria consiste en dispositivos RAM y ROM tpicos de todas las computadoras Memoria RAM Las unidades de memoria que pierden su informacin almacenada cuando se retira el suministro de energa elctrica se denominan voltiles. Una memoria RAM es de est clase. Las unidades de RAM de circuitos integrados se consiguen en dos modos de operacin posibles: esttica y dinmica. La RAM Esttica consta bsicamente de flip-flops internos que almacenan la informacin binaria. La informacin almacenada sigue siendo vlida mientras se aplique energa a la unidad. La RAM Dinmica almacena la informacin binaria en forma de cargas elctricas que se aplican a capacitores. La carga almacenada en los capacitores tiende a descargarse, y en forma peridica se debe recargar renovando la memoria dinmica. La RAM dinmica ofrece menor consumo de energa y mayor capacidad de almacenamiento en un solo chip de memoria, pero la RAM esttica es ms fcil de usar y tiene ciclos de escritura y lectura ms cortos.

2

Memoria ROM. Una memoria no voltil retiene su informacin almacenada an cuando el suministro de energa fue retirado. Las memorias ROM se pueden programar en varias formas distintas. La primera se denomina programacin en mscara donde el comprador llena una tabla de verdad que desee que la ROM satisfaga, entonces el fabricante crea la mscara (que es un patrn de conexiones y no conexiones). Este procedimiento es costoso por la mscara la cual tiene un costo de algunos miles de dlares. La ROM de mscara se utiliza solo en aplicaciones de gran volumen. En la mayora de las ROM, la presencia o ausencia de un diodo o transistor hace la diferencia entre un cero y un uno. Para aplicaciones menores hay opciones ms efectivas en costo como por ejemplo: Memoria PROM (Programmable Read Only Memory). Tambin llamada PROM con conexin fusible las cuales no se programan durante un proceso de manufacturacin sino que son programadas por el usuario. Sin embargo una vez programada una PROM se parece a una ROM en que no puede borrarse ni reprogramarse. Por lo tanto, si el programa en la PROM es errneo o tiene que ser cambiado, la PROM tiene que ser desechada. Las PROM utiliza conexiones fusibles que pueden ser quemadas de manera selectiva por el usuario para programar un 0 lgico en una celda. Una vez que se funde una conexin fusible, ya no puede volver a conectarse. Memoria EPROM (Erasable Programmable Read Only Memory). Una EPROM puede ser programada por el usuario y tambin puede borrarse y reprogramarse tantas veces como se desee. Una vez programada, la EPROM es una memoria no voltil que contendr sus datos almacenados indefinidamente. EL proceso para programar una EPROM implica la aplicacin de niveles de voltaje especiales (comnmente en el orden de 10 a 25 V). En una EPROM las celdas de almacenamiento son transistores MOSFET que tiene una compuerta de silicio sin ninguna conexin elctrica (es decir una compuerta flotante). En su estado normal, cada transistor est apagado y cada celda guarda un uno lgico. El transistor puede encenderse mediante la aplicacin de un pulso de programacin de alto voltaje, el cual inyecta electrones de lata energa en la regin formada por la compuerta flotante. Estos electrones permanecen en esta regin una vez que ha finalizado el pulso ya no existe ninguna trayectoria de descarga. Esto mantiene al transistor encendido de manera permanente, aun cuando se retire la potencia de alimentacin del dispositivo; con esto la celda guarda ahora un 0 lgico Una vez que se ha programado una celda de la EPROM, se puede borrar su contenido exponiendo la EPROM a la luz ultravioleta (UV), la cual se aplica a travs de la ventana que se encuentra sobre el encapsulado del circuito. La luz UV produce una fotocorriente que va desde la compuerta flotante hacia el sustrato de silicio; con esto se apaga el transistor y se lleva de nuevo a la celda hacia el estado 1 lgico. El proceso de borrado requiere entre 15 y 30 minutos de exposicin de los rayos UV. Memoria EEPROM (Electrically Programmable Read Only Memory). La PROM elctricamente borrable (EEPROM) se invent alrededor del ao 1980 como una mejora a la EPROM. 3

La EEPROM aprovecha la misma estructura de compuerta flotante de EPROM. Agrega la caracterstica de borrado elctrico a travs de la adicin de una delgada regin de xido arriba del drenaje de la celda de memoria MOSFET. Aplicando un voltaje alto (21 V) puede inducirse una carga en la compuerta flotante, donde permanecer an cuando se suspenda el suministro de energa. La inversin del mismo voltaje produce una eliminacin de las cargas capturadas de la compuerta flotante y borra la celda. Ya que este mecanismo de transporte de cargas requiere corrientes muy bajas, la programacin y el borrado puede hacerse por lo general en el circuito. 3. UNIDAD DE CONTROL Dirige las actividades de la unidad aritmtica y lgica y de los dispositivos de E/S hasta que el programa termina su ejecucin. Cada unidad realiza su tarea bajo la influencia sincronizada de la unidad de control. En otras palabras enva seales a la ALU que determina que tipo de operacin aritmtica o lgica va a realizar, accesa una localidad de memoria al proporcionar una direccin apropiada determina a donde enva la informacin, que viene del dispositivo de entrada, etc. 4. UNIDAD DE ENTRADA Consiste en todos los elementos o dispositivos usados para dar informacin y datos externos a la computadora y ponerlos en memoria o en la ALU, lo cual lo determina seales que provienen de la unidad de control. 5. UNIDAD DE SALIDA La unidad de salida consiste en todos los dispositivos usados para transferir datos informacin desde la computadora hasta el mundo externo.

4

PRINCIPIO DE FUNCIONAMIENTO DE UN SISTEMA DE COMPUTADORA BSICO

La unidad de control y la ALU son conocidos en conjunto como UNIDAD CENTRAL DE PROCESAMIENTO (CPU) o Procesador. Debido a la integracin en gran escala (LSI) y al mayor desarrollo en la tecnologa de los semiconductores fue posible integrar estas dos unidades en un solo integrado llamado MICROPROCESADOR. El microprocesador es un circuito integrado dedicado a la ejecucin de un programa almacenado. Esto significa que todo microprocesador necesita un programa. El programa al ser ejecutado por el microprocesador, hace que las computadoras cumplan con sus tareas, por ejemplo: leer un teclado, leer una seal anloga por medio de un convertidor anlogo-digital, etc. Es necesario que al ser encendida la computadora, el programa est almacenado, ya que el microprocesador buscar automticamente su programa. En otras palabras, si la computadora se enciende y se apaga, el programa no debe perderse. El dispositivo donde resida el programa debe cumplir con esta condicin: no perder su informacin al desenergizarse y tenerlo disponible para ser accesado directamente por el microprocesador al energizarse. Esto es cumplido satisfactoriamente por una memoria tipo ROM. Pero por otra parte, la memoria ROM no puede recibir informacin del microprocesador para guardarla. La memoria ROM solo se programa en fbricas por medio de procesos qumicos. 5

Durante la ejecucin del programa, es necesario frecuentemente almacenar temporalmente el resultado de alguna informacin que posteriormente ser utilizada por el microprocesador. La memoria RAM cumple con esta funcin. El inconveniente de la memoria RAM es su volatilidad, ya que al desenergizarse pierde su informacin, esto quiere decir que una memoria RAM al energizarse contiene basura, basura es cualquier informacin no entendible por el microprocesador y adems que no corresponde a nada proporcionado por el usuario. Cuando el microprocesador obtiene informacin de una memoria RAM ROM, se dice que el microprocesador lee tal memoria. Cuando el microprocesador guarda informacin en una memoria RAM, se dice que escribe en la memoria. Normalmente es necesario que la computadora interacte con el usuario o con el mundo exterior. Para ello se necesitan conectar dispositivos perifricos al microprocesador adems de dispositivos RAM y ROM. Por ejemplo, tal vez se necesite conectar leds, displays, teclados, CDA, CAD, etc, se dice que los perifricos son de entrada o de salida segn den o reciban informacin del microprocesador. Cuando el microprocesador lee la memoria ROM, la informacin es transmitida de la ROM al microprocesador por medio del bus de datos del microprocesador. Cuando el microprocesador escribe en la memoria RAM, la informacin es transmitida tambin por medio del bus de datos del microprocesador a la memoria RAM. Cuando el microprocesador lee informacin de una memoria RAM, por ejemplo, al depositar la memoria su informacin en el bus de datos, es necesario que esta informacin no afecte a los perifricos; la informacin solo debe de fluir de la memoria al microprocesador, sin embargo la memoria ROM y los perifricos todos estn conectados al bus de datos. En el caso de los perifricos, es necesario de que exista un medio que asle al perifrico del bus de datos cuando la informacin no corresponde a dicho perifrico. Este medio de aislamiento se llama interfaz. Hay interfaz de entrada y de salida. En el ejemplo del microprocesador, leyendo la memoria RAM. Cuando la memoria RAM deposita su contenido en el bus de datos, la memoria ROM y los perifricos deben estar aislados en su conexin al bus de datos durante la transferencia de informacin. La informacin depositada en el bus de datos por la RAM solo ser accesada por el microprocesador. Cuando el microprocesador escribe en un perifrico de salida, el microprocesador deposita un dato en el bus de datos. Las memorias RAM y ROM y el perifrico de entrada deben estar aislados del bus de datos en este momento, y solamente la interfaz de salida debe conectar su perifrico al bus de datos del microprocesador. De esta manera el dato llegar hasta el perifrico correspondiente. La interfaz de salida deja pasar los niveles lgicos que hay a su entrada y los pasa a su salida como si fueran un grupo de interruptores. Cuando la informacin ha llegado al perifrico, nuevamente la interfaz de salida asla al perifrico del bus de datos. El concepto de aislamiento se conoce como alta Impedancia. 6

7

SISTEMA DE BUSES

La computadora tiene 3 buses, estos llevan toda la informacin y seales relacionadas con la operacin del sistema. Estos buses conectan al microprocesador con cada unos de los elementos de E/S y con la memoria de tal manera que la informacin pueda fluir entre el microprocesador y cada uno de los elementos. En otras palabras, el microprocesador esta continuamente relacionado con la transmisin y recepcin de informacin de una localidad de memoria o dispositivo EIS. Bus de Direcciones Este es un bus unidireccional debido a que la informacin fluye sobre l en una sola direccin, desde el microprocesador hacia memoria o desde el microprocesador hacia dispositivo EIS. Cuando microprocesador coloca niveles lgicos en las lneas del bus de direcciones, cada una de estas direcciones corresponde a una localidad de memoria 8

RAM o ROM donde se encuentra almacenada una palabra de 8 bits o direcciones que corresponden a un dispositivo E/S Bus de datos Es un bus bidireccional debido a que la informacin puede fluir en ambas direcciones dependiendo de que el microprocesador est desarrollando una operacin de lectura o de escritura. Durante la operacin de lectura las lneas del bus de datos actan como entradas al microprocesador y l recibe datos que han sido colocados en el bus por las memorias o dispositivo EIS. Durante una operacin de escritura actan como salida y el microprocesador coloca datos en l los cuales son enviados a memoria o dispositivo E/S. Bus de Control Este conjunto de seales se usa para sincronizar las actividades de los elementos de la computadora. Algunas de estas seales de control son READ o WRITE que el microprocesador enva a otros elementos para indicarles que tipo de operacin est realizando.

9

I.2

EJECUCIN DE UN PROGRAMA PASO A PASO

El microprocesador es el corazn de cualquier computadora. Realiza muchas funciones como por ejemplo: 1. Proporciona las seales de control y reloj para todos los elementos de la microcomputadora. 2. Extrae las instrucciones y los datos de la memoria 3. Transfiere los datos a y desde la memoria y los dispositivos de entrada / salida. 4. Decodifica las instrucciones 5. Ejecuta las operaciones aritmticas y lgicas especificadas por las instrucciones 6. Responde a las seales de control generadas en entrada/salida tales como RESET E INTERRUPCION. Contiene toda la circuitera lgica necesaria para llevar a cabo las funciones anteriores pero, en general, no existe manera de tener acceso a la lgica interna. En lugar de ello se puede controlar lo que ocurre dentro del microprocesador mediante un programa formado por varias instrucciones mismo que se coloca en la memoria para que el microprocesador lo ejecute. Esto es lo que hace al microprocesador tan verstil y flexible, cuando se desea cambiar su operacin, solo es necesario cambiar los programas almacenados en la memoria de programa. La lgica interna del microprocesador es muy compleja pero puede considerarse como formada por tres secciones bsicas: 1. Control 2. Registros 3. ALU La funcin principal de la seccin de Control es traer de la memoria y decodificar (interpretar) las instrucciones que estn en la memoria y forman parte de un programa, para despus generar seales de control necesarias para ejecutar las instrucciones. Tambin genera las seales de control para la RAM y dispositivos de Entrada/Salida externos. La seccin de registros contiene varios registros (dentro del microprocesador) y cada uno tiene una funcin especial. El ms importante de todos ellos es el contador de programa (PC), el cual contiene la direccin donde se encuentra la direccin de la siguiente instruccin que se leer de memoria. Otro registro es el acumulador (A) el cual es utilizado como registro principal para muchas instrucciones Los dems registros del microprocesador se emplean para realizar funciones muy diversas como conteo o almacenamiento con propsitos generales.La ALU efecta una gran variedad de operaciones aritmticas y lgicas. Ests operaciones siempre incluyen la adicin y la sustraccin, y las operaciones lgicas AND, OR,

10

EXOR corrimiento, incremento y decremento. Durante la operacin de la computadora. Las operaciones que la ALU realiza se llevan a cabo bajo el control de la seccin de control la cual hace lo que indican los cdigos de instruccin que trae de la memoria. El siguiente ejercicio describe como un microprocesador ejecuta paso a paso un programa almacenado en memoria. El programa almacenado en la memoria:

1. El registro PC contiene la direccin de inicio del programa

2. Fase FETCH (ir por) de la instruccin MOV

11

12

3. Fase de ejecucin de la instruccin MOV

4.

Fase FETCH de la instruccin ADD

13

5. Fase de ejecucin de la instruccin ADD

6. Fase FETCH de la instruccin MOV

14

7. Fase de ejecucin de la instruccin MOV

8. Fase de ejecucin de la instruccin MOV

15

INTRODUCCIN A LOS MICROCONTROLADORES Importancia de los microcontroladoresLos microcontroladores son usados en una enorme gama de aplicaciones, por ejemplo: Hay microcontroladores de 8,16,32 bits en cuanto a su bus de datos 18 a 80 pines en cuanto a tamao fsico Instrumentacin mdica Industria automotriz Control de mquinas industriales Aparatos domsticos Etc...

Qu es un microcontrolador?Es un circuito integrado que contiene: CPU Memorias RAM y ROM Puertos paralelos 16

-

Puertos serie Timers Entradas anlogas Etc...

Cuya finalidad es resolver problemas con un mnimo de componentes. Mientras que un microprocesador (como el 8088) tiene un software con un gran nmero de instrucciones, el de un microcontrolador cuenta con pocas instrucciones. En resumen, los microcontroladores tienen un software altamente desarrollado, mientras que los microcontroladores poseen un software con menos instrucciones, registros y modos de direccionamiento, lo cual permite optimizar su funcionamiento. Adems en el grupo de instrucciones de los microcontroladores hay instrucciones que son de pocos bytes de longitud (optimiza la memoria ) y otras de pocos ciclos de ejecucin (optimizacin de tiempo).

Un microprocesador un microcontrolador?Ante un problema propuesto, se debe decidir primeramente si se necesita un microprocesador o un microcontrolador. Cuando el software tiene una importancia considerable o cuando el material necesario (RAM, ROM, puertos ...) es demasiado, tal vez un microprocesador sea lo ms conveniente. Si la solucin conviene hacerla con un microcontrolador, lo ideal es resolver el problema con los recursos propios del microcontrolador ya que el nmero de componentes sera mnimo, y esto implica menos conexiones externas, menos circuitos impresos , menor tamao etc... En Resumen: MICROPROCESADOR MICROCONTROLADOR CPU, RAM, ROM I/O serie, I/O paralelo, Timers, Interrupciones externas, etc...

ARQUITECTURA

CPU

CONJUNTO DE INSTRUCCIONES

Software poderoso, la informacin la maneja de manera sencilla, Conjunto de instrucciones cuenta con loops optimizado y orientado a automticos, aplicaciones de control. decrementos, incrementos etc...

17

APLICACIONES

Se aplica en diseos Su mayor aplicacin la pequeos, de encuentra en un componentes mnimos sistema de realizando actividades de microcomputadoras control de dispositivos I/O

18

ARQUITECTURA DEL AT8958252Caractersticas Generales Compatible con MCS-51 8 Kbytes de memoria Flash reprogramable Interfaz Serie SPI para programacin de la memoria 1,000 ciclos de escritura y borrado - 2 Kbytes EEPROM o 100,000 Ciclos de escritura y borrado - Voltajes de operacin 4v a 6v - Operacin completamente esttica: 0 Hz a 24 MHz - Candado para memoria de programa - 256 bytes de RAM interna - 32 lneas I/O programables - 3 Timers/contadores de 16 bits - 9 Fuentes de interrupcin - USART serie programable - Interfaz Serie SPI - Modos de Ahorro de energa - Timer Watchdog programable - Apuntador de Datos doble Configuracin de pines

19

Organizacin de la Memoria en el AT89S8252 El microcontrolador AT89S8252 tiene espacios separados para memoria de programa y memoria de datos.

Memoria de Programa En el AT89S8252, el Vector Reset es 0000H, esto significa que siempre el microcontrolador es energizado o reinicializado, este busca su programa en la direccin 0000H. La terminal EA determina si la memoria de programa interna, ser considerada en el funcionamiento del microcontrolador.

20

Conexin de Memoria de Programa Externa En la siguiente figura se muestra la conexin de una memoria EEPROM para ejecucin de un programa externo. Los puertos P0 y P2 se usan como buses en la bsqueda del programa.

Operacin: 1. El microcontrolador deposita la direccin 0000H ( PC= vector reset) en P2 (Ai-A8) y P0 (A7-A0) 2. El microcontrolador incrementa PC 3. El microcontrolador pulsa ALE, as el byte bajo de la direccin (P0) es capturado por el latch. 4. El microcontrolador cambia la funcin de P0 ( bus de direccin bus de datos) 5. El microcontrolador pulsa PSEN, activando la memoria para ser leda. 6. La memoria deposita en su bus de datos el contenido del lugar de memoria seleccionado (Ai-A0) 7. El microcontrolador lee el contenido del bus de datos y lo decodifica y lo ejecuta

21

Memoria de Datos Memoria de Datos Interna: El espacio de memoria de datos interna se encuentra dividido en 3 bloques, los cuales se conocen como: Los 128 bytes bajos, los 128 bytes altos y el espacio SFR ( Registros de Funcin Especial). Las direcciones de la memoria de datos interna son siempre de un byte de longitud lo cual implica un espacio de nicamente de 256 bytes de direccin. Sin embargo con los modos de direccionamiento para la RAM interna se puede manejar hasta 384 bytes (128x3) usando un simple artificio: Los 128 bytes altos son solo accesados por direccionamiento indirecto y El espacio SFR se accesa solamente por direccionamiento directo Es decir el microcontrolador distinguir un lugar de memoria de RAM interna con direccin E0H, de un registro de funcin especial con direccin E0H tambin.

Por ejemplo: MOV A, 0E0H ; Accesa el registro acumulador ubicado en el espacio SFR Accesa la localidad de memoria RAM con direccin E0H (128 bytes

MOV R0, #0E0H MOV A, @R0 ; altos)

Los 128 bytes bajos de RAM interna Los primeros 32 bytes de este bloque de RAM interna son agrupados en 4 bancos de 8 registros. Las instrucciones del programa reconocen a estos registros como R0 hasta R7.

22

Dos bits (RS1,RS0) en la Palabra de Estado del Programa (PSW ) indican que banco de registro est activo.

Por ejemplo: Si RS1,RS0 = 00 R0 R1 R2 R3 . . . R7 R0 R1 R2 R3 . . . es es es es el el el el lugar lugar lugar lugar de memoria de memoria de memoria de memoria 00H 01H 02H 03H

Si RS1,RS0 = 01

es es es es es

el el el el el

lugar lugar lugar lugar lugar

de memoria de memoria de memoria de memoria de memoria

07H 08H 09H 0AH 0BH

23

R7 es el lugar de memoria 0FH Si RS1,RS0 = 10 R0 R1 R2 R3 . . . R7 es es es es el el el el lugar lugar lugar lugar de memoria de memoria de memoria de memoria 10H 11H 12H 13H

es el lugar de memoria 17H

Si RS1,RS0 = 11

R0 R1 R2 R3 . . . R7

es es es es

el el el el

lugar lugar lugar lugar

de memoria de memoria de memoria de memoria

18H 19H 1AH 1BH

es el lugar de memoria 1FH

Estos 32 bytes pueden usarse como lugares de memoria para el modo de direccionamiento directo o como registros (R0-R7) para el modo de direccionamiento de registro. Los siguientes 16 bytes ( 20H- 2FH) arriba de los bancos de registros forman un bloque de espacio de memoria direccionable por bit. Es decir es posible acceder individualmente cada uno de los 128 bits. Se dice que cada bit tiene una direccin. Por ejemplo,la instruccin MOV A,20H lo que hace es cargar en A el contenido del lugar de memoria 20H. Pero la instruccin MOV C, 20H, lo que hace es cargar en el bit C el estado del 5 bit del lugar de memoria 20H

24

SFR (Registros de Funcin Especial) Mapa de Memoria 0F8H 0F0H B 0E8H 0E0H ACC 0D8H 0D0H PSW 0C8H T2CON T2MO D 0C0H 0B8H IP 0B0H P3 0A8H IE 0A0H P2 98H SCON SBUF 90H P1 88H 80H TCON P0 TMOD SP 0FFH 0F7H 0EFH 0E7H 0DFH 0D7H 0CFH 0C7H 0BFH 0B7H 0AFH 0A7H 9FH 97H PCON 8FH 87H

RCAP2 RCAP2 L H

TL2

SPCR TH2

SPSR WMCO N TL0 DP0L TL1 DP0H TH0 DP1L TH1 DP1H SPDR

Estos registros estn implementados como RAM interna y estn ubicados en las direcciones 80h a FFH, en este espacio se encuentran el Acumulador, el registro B, etc... Los Registros de Funcin Especial que tienen direcciones que terminan en 0 u 8H son direccionables por bit.

25

UNIDAD II MODOS DE DIRECCIONAMIENTO E INSTRUCCIONESCada microprocesador Microcontrolador posee un grupo de instrucciones capaz de ejecutar cada instruccin, sus alcances y sus particularidades son la base para una programacin eficiente del microprocesador. Para poder entender el grupo de instrucciones, es necesario conocer primero los registros de funcin especial y los modos de direccinamiento del microcontrolador.QUE SON LOS REGISTRO DE FUNCIN ESPECIAL (SFR)?

Los registros internos del AT89S8252 estn implementados como RAM interna y estn ubicados en las direcciones 80H a FFH; en este espacio se encuentran el acumulador, el registro B, el registro de banderas, los registros de control de timers, etc. Es decir, cada uno de estos registros de funcin especial (SFR) tiene una direccin asignada en la RAM. Por ejemplo, el acumulador tiene la direccin E0H, el registro de banderas tiene asignada la direccin D0H; sin embargo, los fabricantes de los ensambladores para el AT89S8252 han diseado el ensamblador, de tal manera que es posible accesar tales registros tanto implcitamente como directamente. De tal manera que una instruccin INC A (incrementa en 1 el contenido del acumulador), har lo mismo que la instruccin INC E0H. Recuerde que el espacio SFR slo se accesa con el modo directo de direccionamiento. Una ventaja de asignar direcciones a los registros del AT89S8252 es que algunos de ellos pueden ser direccionados por bit. O sea que sus bits pueden ser direccionados por las instrucciones booleanas. Por ejemplo, la instruccin SETB 0E0H pone en 1 el bit de menos peso del acumulador. A pesar de que el espacio disponible en SFR es de 128 bytes, no se usan todos. Los lugares no usados estn disponibles para futuras mejoras. DESCRIPCIN DE ALGUNOS DE LOS REGISTROS DE FUNCIN ESPECIAL. Acumulador (A). Es un registro de 8 bits que se usa en la mayora de las instrucciones aritmticas, lgicas y algunas de transferencias de datos. Su uso es el mismo que en la mayora de los microprocesadores, aunque en el AT89S8252 pueden ser algunas veces registro destino registro fuente. 26

Apuntador de Stack (SP). Es un registro de 8 bits que se usa para definir la regin de RAM interna que funcionar como stack. Su operacin es ascendente al empujar datos al stack, y se usa prcticamente con el modo de direccionamiento indirecto. Registro B. Es un registro de 8 bits que se usa de manera particular en las instrucciones MUL y DIV. Puede usarse de manera general mediante el modo de direccionamiento directo. Palabra de Estado del Programa (PSW). Es el registro de banderas, es decir, cada bit indica el estado de las operaciones realizadas por el CPU.

C: Bandera del Cargo. En adiciones, esta bandera sirve para indicar cuando hay un cargo del bit siete al bit 8 (que no existe).En sustracciones, indica cuando el sustraendo es menor que el minuendo. En operaciones booleanas tiene la funcin de acumulador. AC: Bandera del Cargo Auxiliar. Esta bandera tiene sentido solo cuando se hacen sumas de nmeros en BCD. Es usada por el CPU para ajustar el resultado de una suma de nmeros en BCD. F0: Bandera de uso general. F0 es una bandera disponible para el usuario, no tiene una funcin particular, as que el usuario la define. RS1 y RS0: Banderas de Seleccin de Bancos de Registros. Este par de bits pueden determinar qu banco (de los cuatro que hay) est activado. RS1 y RS0: Banderas de Seleccin de Bancos de Registros. Este par de bits pueden determinar qu banco (de los cuatro que hay) est activado.

OV: Bandera del Overflow. La bandera OV se usa para indicar cuando la suma de dos nmeros con signo (o resta) ha excedido la capacidad de representacin, o sea que si al sumar o restar dos nmeros con signo se excede el rango de +127 -128, la bandera OV lo indicar. 27

P: Bit de Paridad. El Bit P se pone en 1 en 0 automticamente al final de cada ciclo de mquina segn si la paridad de los bits del acumulador es par o impar. Si P se pone en 1, esto indica que el nmero de unos en el acumulador es impar, si P se pone en 0, esto indica que el nmero de unos en el acumulador es par. Generalmente, el bit P se usa en comunicacin serie; para deteccin de errores en la transmisin de datos.

MODOS DE DIRECCIONAMIENTO El modo de direccionamiento, es la manera en que se indica al CPU como obtener el dato que va a operar. Con el modo de direccionamiento se dice al CPU si el dato esta en un registro Ri , en memoria interna de datos, etc. En el AT89S8252 los modos de direccionamiento estn optimizados tratando de tener siempre la mayor velocidad de ejecucin de la instruccin.MODO DE DIRECCIONAMIENTO INMEDIATO.

Este modo de direccionamiento se utiliza cuando se desea manejar constantes. El valor de la constante acompaa al cdigo de operacin para formar la instruccin. 10 byte cdigo de operacin. 20 byte operando Por ejemplo la instruccin MOV A, #55H. Indica al Microcontrolador que cargue el nmero 55H en el registro A. El smbolo # indica que el nmero que le sigue es el operando que se manejar en la operacin. Sin la H, el nmero dado ser considerado como decimal. Por ejemplo: MOV A,#20H En el AT89S8252, hay una sola instruccin donde el operando es de 16 bits, esta es: MOV DPTR, #cte. de 16 bits 28

MODO DE DIRECCIONAMIENTO DIRECTO En el modo de direccionamiento directo, en la instruccin se especifica la direccin de memoria donde se encuentra el operando manejado. Por ejemplo: MOV A, 50H significa que el registro A se cargar con el contenido del lugar de memoria 50H (no es el 50H el nmero que se cargar en A, sino el contenido del lugar de memoria 50H). En este caso, si en el lugar de memoria 50H hay 3AH, entonces la instruccin har que A se cargue con 3AH. Con este modo de direccionamiento, solo puede accesarse los 128 bytes bajos de la RAM interna y los registros de funcin especial (SFR). Esta instruccin consta de dos bytes, un primer byte es el cdigo de operacin y el segundo byte es la direccin de memoria que se accesar. 1o. byte cdigo de operacin. 2o. byte direccin Si el bit de ms peso de la direccin es cero, se har referencia a los 128 bytes bajos de RAM interna. Si el bit de ms peso de la direccin es uno, se har referencia a los registros de funcin especial. MODO DE DIRECCIONAMIENTO INDIRECTO. En este modo de direccionamiento, la instruccin especifica un registro cuyo contenido es la direccin del operando. Para direcciones de 8 bits (RAM interna), solamente se pueden usar los registros R0 y R1 del banco de registros seleccionado o el registro SP. Para direcciones de 16 bits, slo puede usarse el registro DPTR. Esta instruccin consta de 1 byte: cdigo de operacin i

donde los siete bits de mas peso contienen el cdigo de operacin, y el bit de menos peso (i igual a 0 1) determina que registro (R0 R1) se usar como apuntador. Por ejemplo: MOV A, @R1 La @ significa modo de direccionamiento indirecto, si por ejemplo en el registro R1 hay 40H y en el lugar de memoria 40H se tiene 7CH, la instruccin har que A se cargue con 7CH. Con el modo de direccionamiento indirecto puede accesarse la RAM interna (00HFFH) y la RAM externa, mas no los registros de funcin especial; puesto que estos solo se accesan en modo de direccionamiento directo. 29

MODO DE DIRECCIONAMIENTO DE REGISTRO. Los bancos de registros, que contienen los registros de R0 a R7, pueden ser accesados por ciertas instrucciones que llevan una especificacin de registro de 3 bits dentro del cdigo de la instruccin. Las instrucciones que accesan los registros de sta manera son eficientes, ya que ste modo elimina un byte de direccin. Cuando la instruccin se ejecute, se selecciona uno de los ocho registros del banco seleccionado. Los dos bits de seleccin de banco del registro PSW seleccionan uno de los cuatro bancos.

n n n: Registro usado en la instruccin (0 - 7).

MODO DE DIRECCIONAMIENTO RELATIVO. Slo se usa en instrucciones de salto. Una direccin relativa (o desplazamiento) es un nmero con signo de 8 bits, el cual se suma a el contenido del contador de programa (CP) para obtener la direccin de la siguiente instruccin que se ejecutar. Ya que se usan slo 8 bits para la direccin relativa (la direccin relativa es un byte ms en la instruccin.), el rango de salto es de -128 a +127 bytes. Antes de ejecutar la instruccin, el Microcontrolador hace que su contador de programa apunte a la direccin de la siguiente instruccin. Por ejemplo: la instruccin SJMP consta de dos bytes:1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 e r b y t e C d ig o d e O p e r a c i n 2 o b y t e D ir e c c i n r e l a t i v a

Si se tiene la instruccin SJMP como sigue: Memoria de Programa

30

0258 0259 025A 025B 025C 025D 025E 025F 0260 0261

80 07

0258 0259 025A 025B 025C 025D 025E 025F 0260 0261 80 F9

a ) S a l to h a c i a a d e l a n t e

b ) S a l to h a c i a a t r a s

En el primer caso, cuando el AT89S8252 ejecuta la instruccin SJMP, IP contiene la direccin 025A, por lo tanto: 025A + 07 = 0261 es la direccin de la siguiente instruccin que se ejecutar. En el segundo caso, cuando el AT89S8252 ejecuta la instruccin, IP contiene 0261, por lo tanto: 0261 + FFF9 = 025A es la direccin de la siguiente instruccin que se ejecutar. MODO DE DIRECCIONAMIENTO ABSOLUTO Este modo de direccionamiento solo se usa con las instrucciones ACALL y AJMP. Son instrucciones cuya ventaja es que son solamente de dos bytes de longitud. Estas instrucciones permiten solamente saltos dentro del banco de 2K presente. Esto se debe a que los cinco bits de ms peso de la direccin a donde se pretende saltar son los mismos cinco bits de la direccin de la instruccin. El Microcontrolador tomar los cinco bits de mas peso de la direccin de la instruccin, y solamente aadir los once bits restantes, estos se encuentran en la instruccin de dos bytes:

A

10

A

9

A

8

C O D IG O D E O P E R A C I N

primer byte

31

A

7

A

6

A

5

A

4

A

3

A

2

A

1

A

0

segundo byte Por ejemplo, si la instruccin ACALL AJMP se encuentran en 1140H, el banco definido es: 00010XXX....X es decir: 1000H 17FFH

Si la instruccin se encuentra en ste rango, se podr saltar, dentro de l con instrucciones de dos bytes. El banco queda definido por los cinco bits de mas peso de PC en el momento de ejecutar la instruccin. Si el ensamblador se encuentra una instruccin AJMP TEC de la siguiente manera: 3C00H AJMP TEC los cinco bits de la direccin son: 00111, lo cual definir el banco 00111XXX ....X o sea: 3800H 3FFFH Si la etiqueta TEC se encuentra en este rango, la instruccin AJMP se podr utilizar. MODOS DE DIRECCIONAMIENTO LARGO. Este modo de direccionamiento se usa slo con las instrucciones LCALL y LJMP. Son instrucciones de tres bytes e incluyen una direccin de 2 bytes, de tal manera que 32

se puede saltar en el rango completo de memoria de programa, o sea 64K. La desventaja es que ocupa tres bytes de longitud en ROM.

33

GRUPO DE INSTRUCCIONESINSTRUCCIONES ARITMTICAS. Tiempo BANDERAS de Cy AC OV P Ejecuci n (s) 1 X X X X 1 1 1 1 2 1 1 4 4 1 X X X X X X X X X X X X X X X X

Mnemnico ADD A, ADDC A, SUBB A, INC INC INC DPTR DEC DEC MUL DIV DA

Operacin A=A+ A=A+ + C A = A - -C A=A+1 = + 1 DPTR = DPTR +1 A=A-1 = - 1 B:A = BA A = INT[A/B] B = MOD[A/B] ajuste decimal

Direccionamiento dir ind reg inm x x x x x x x x x x x x

A

solo acumulador x x x solo data pointer solo acumulador x x x solo registros A y B solo registros A y B solo acumulador

A AB AB A

INSTRUCCIONES LGICAS Direccionamiento dir ind reg inm x x x x x x x X X x x x x Tiempo de Ejecucin (s) 1 1 2 1 1 2 1 34

Mnemnico ANL ANL ANL #Dato ORL ORL ORL A, , A , A, ,A

Operacin A = A and = and A = and #dato A = A or = or A = or #dato A = A xor

,#dato XRL A,

x

x

x

XRL XRL #dato CLR CPL RL RLC RR RRC SWAP

, A , A A A A A A A

= xor A = xor #dato A = 0 A = not A Rota a la izq. un bit del acumulador Rota a la izq. el cargo Rota a la derecha un bit del acumulador Rota a la derecha el cargo Intercambia nibbles

X x solo acumulador solo acumulador solo acumulador solo acumulador solo acumulador solo acumulador solo acumulador

1 2 1 1 1 1 1 1 1

INSTRUCCIONES DE TRANSFERENCIA DE DATOS Direccionamiento dir ind reg inm x x x x x x x x x x x x x x x x x x Tiempo de Ejecucin (s) 1 1 2 2 2 2 1 1

Mnemnico MOV A, MOV , A MOV , MOV DPTR, #dato PUSH POP XCH XCHD A, A, @Ri

Operacin A = = A = DPRT = constante inmediata de 16 bits SP = SP + 1 MOV @SP, MOV , @SP SP = SP - 1 A y Intercambian datos A y @Ri intercambian los nibbles de menos peso

TRANSFERENCIA DE DATOS QUE ACCESAN AL ESPACIO DE MEMORIA DE DATOS EXTERNA. Note que para accesar a la RAM de datos externa, el acumulador es siempre el destino o la fuente del dato.

35

Ancho de direcciones 8 bits 8 bits 16 bits 16 bits

Mnemnico MOVX A, @Ri MOVX @Ri, A MOVX A, @DPTR MOVX @DPTR, A

Operacin Lectura externa RAM @Ri Escritura externa RAM @Ri Lectura externa RAM @DPTR Escritura externa RAM @DPTR

Tiempo de ejecucin (s) 2 2 2 2

INSTRUCCIONES BOOLEANAS

Mnemnico ANL C, bit ANL C, /bit ORC C, bit ORL C, /bit MOV C, bit MOV bit, C CLR C CLR bit SETB C SETB bit CPL C CPL bit JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel

Operacin C = C AND bit C = C AND NOT bit C = C OR bit C = C OR NOT bit C = bit bit = C C=0 bit = 0 C=1 bit = 0 C = NOT C Bit = NOT bit salta si C = 1 salta si C = 0 salta si el bit = 1 salta si el bit = 0 salta si el bit = 1,

Tiempo de ejecucin (s) 2 2 2 2 1 2 1 1 1 1 1 1 2 2 2 2 2 36

limpiando al bit

INSTRUCCIONES DE SALTO La siguiente tabla muestra la lista de saltos incondicionados. Mnemnico JMP Direccin JMP @A + DPTR CALL direccin RET RETI NOP Operacin Salta a la direccin Salta a la direccin + DPTR Ejecuta la subrutina que est en direccin Regresa de la subrutina Regresa de la interrupcin No operacin Tiempo de ejecucin (s) 2 2 2 2 2 1

La siguiente tabla muestra la lista de saltos condicionales. Todos estos saltos especifican la direccin destino por el mtodo de desplazamiento relativo. Estn limitados a saltar distancias desde -128 a +127 bytes con respecto a la direccin de las siguientes instrucciones. Direccionamiento dir ind reg inm solo acumulador solo acumulador x x x x x x 2 Tiempo de Ejecucin (s) 2 2 2 2

Mnemnico JZ JNZ DJNZ CJNE rel rel , rel

Operacin

Salta si A = 0 Salta si A 0 Decrementa y salta si no es 0 A, , rel Salta si A salta si #dato

CJNE , #dato, rel

37

INTERFAZ PROGRAMABLE PARA PERIFRICO

(PPI)

8255

38

Conexin de Memoria de Datos externa y un PPI (Interfaz Programable para Perifrico)

39