You are on page 1of 5

Motorola 68HC11 Paco Alcantara 1 INTRODUCCION

La familia Motorola 68HC11 (abreviado HC11 o 6811) es una familia de microcontroladores de Motorola, derivada del microprocesador Motorola 6800. Los microcontroladores 68HC11 son ms potentes y costosos que los de la familia 68HC05 y se utilizan en mltiples sistemas embebidos. Siguen la Arquitectura de von Neumann, en la que la memoria de programa, de datos y de entrada/salida se direcciona en un nico mapa de memoria. Internamente, el conjunto de instrucciones de la familia 68HC11 es compatible con la del Motorola 6801 y el Motorola 6809, con el aadido de un registro Y (que puede ser empleado por las mismas instrucciones que el registro X). La familia 68HC11 emplea instrucciones de longitud variable y se considera que emplea una arquitectura CISC. Tienen dos acumuladores de ocho bits (A y B), cuenta con un acumulador virtual D, que no es ms que la unin de A y B (16 bits), dos registros ndice de 16 bits (X e Y), un registro de banderas, un puntero de pila y un contador de programa. El microcontrolador Freescale 68HC12 es una versin mejorada de 16 bits del 68HC11. El microcontrolador Freescale 68HC16 es una versin de 16 bits mayoritariamente compatible sotware del 68HC11. El controlador robtico Handy Board de Fred Martin se basa en el 68HC11.1 Los 68HC11 tienen cinco puertos externos (A, B, C, D y E), cada uno de ocho bits excepto el D, que es generalmente de seis bits. El puerto A se emplea en captura de eventos, salida comparada, acumulador de pulsos y otras funciones de reloj; el puerto D para E/S serie y el puerto E como conversor analgico-digital. La familia 68HC11 puede funcionar tanto con memoria interna o externa. En caso de emplear memoria externa, los puertos B y C funcionan como bus de datos y direcciones respectivamente. Hay que decir que los puertos pueden funcionar como terminales de entrada-salida digital de propsito general. Sin embargo, se pueden configurar para que realicen una funcin especfica, asociada a cada puerto. A continuacin se detalla la funcin alternativa de cada puerto. (Los bits se numeran comenzando en el cero).

2 PUERTOS
PUERTO A (Funciones de reloj y temporizacin). Consta de 8 pines, los cules tres son de entrada (bits 0-2), cuatro de salida (bits 3-6) y uno bidireccional (bit 7). Bits 0-2: Capturadores de entrada. Cada vez que se produzca el evento programado en uno de estos tres pines, el contenido del registro TCNT se copia a otro registro TICx, donde x ser 1,2 3, segn el pin que tratemos. El evento a registrar se puede configurar y puede ser flanco de subida, de bajada o pulso a nivel alto. Bits 3-6: Comparadores de salida. Se sirve de una serie de registros (denominados TOCx) en los cules escribimos un valor numrico. Cuando este valor coincida con el del registro TCNT, se producir un evento en el pin correspondiente del puerto. Tambin es configurable y se puede

programar para que conmute, cambie a nivel bajo, o cambie a nivel alto. Bit 7: Comparador/Acumulador. Como se ha dicho, este pin es bidireccional, de forma que cuando se configura como salida toma funciones de comparador de salida, pero esta vez puede actuar tambin sobre los dems pines de salida (bits 3-6). Si se configura como entrada, funciona como un contador de pulsos. Mediante registros, puede programarse para que cuente cada vez que produzcan ciertos sucesos, como flanco de bajada, subida, nivel alto o nivel bajo. PUERTOS B y C (Bus de expansin). El 68HC11 dispone de un mapa de memoria constituido por las memorias que lleva internas. Sin embargo, de todo el rango de direcciones posibles, la mayor parte est desocupado. El microcontrolador se puede configurar en un modo especial (expanded) el cul usa los puertos B y C para direccionar todas las posiciones de memoria posibles (concretamente 16 bits de direcciones <> 65535 posiciones). El puerto B se usa para colocar los bits ms significativos de las direcciones (Bits 8-15). El puerto C tiene doble uso: bits menos significativos del bus de direcciones (0-7) y bus de datos (8 bits). Para ello, se emplea una seal denominada AS, que cuando se activa nos indica que el puerto C est poniendo una direccin vlida. Despus cambia, y coloca los bits de datos. Para poder hacer esto, hay que aadir un circuito externo, concretamente un registro de 8 bits con habilitacin, para que capture la direccin cuando AS est activa y la mantenga cuando se desactive. Normalmente suele ser el 74HC573. PUERTO D (Comunicacin serie). Se pueden establecer protocolos de comunicacin serie sncrona y asncrona. Puerto serie asncrono (SCI). Existen dos dispositivos, donde la salida de uno se conecta con la entrada del otro, y viceversa. La seal de reloj tiene la misma frecuencia para los dos dispositivos, pero no es compartida por stos. Bit 0 Recepcin (Rx). Entrada de los bits de datos. Bit 1 Transmisin (Tx). Salida para los bits de datos. La comunicacin serie asncrona se suele emplear en sistemas que estn distanciados varios metros. Debido a que el transmisor puede enviar bits en cualquier momento, es necesario el uso de un protocolo que permita conocer dnde est el comienzo de los datos y dnde su final (btis de comienzo, final...). La velocidad de transmisin es medida en Baudios (Baud), siendo normal un valor de 9600 Baudios. Todos estos parmetros son configurables por medio de registros en el 68HC11. Puerto serie sncrono (SPI). En este tipo de comunicacin hay un dispositivo que se comporta como maestro y uno o varios que estn sujetos a ste y que se llaman esclavos. Se usa una seal de reloj que ser la misma para todos los dispositivos. Se usan cuatro bits: Bit 2 MISO (en ingls, entrada maestro-salida esclavo). Salida de datos desde un esclavo hacia la entrada del maestro. Bit 3 MOSI (en ingls, salida maestro-entrada esclavo). Salida de datos desde el maestro hacia el/los esclavo/s. Bit 4 SCK, seal de reloj. Bit 5 /SS, permite seleccionar con qu esclavo desea comunicarse el maestro.

Esta comunicacin es tpica de perifricos que requieren de altas velocidades de transmisin, si bien estos slo pueden separarse varios centmetros. Al ser la seal de reloj compartida, no es necesario aadir bits adicionales de comienzo o final, y la tasa de transferencia aumenta. La configuracin del reloj, maestros, esclavos, etc. se hace mediante programacin de registros. PUERTO E (Conversin analgica-digital, CAD). El 68HC11 consta de un convertidor analgico/digital, el cul recibe una tensin comprendida entre 0 y 5 voltios; y devuelve, por medio de registros internos, valores de 8 bits (del 0 al 255), que son proporcionales a la entrada. Estos valores pueden ser utilizados en el programa para hacer clculos, por ejemplo. Si el modelo de HC11 es de 52 pines, el puerto tendr ocho entradas al convertidor, mientras que si es el modelo de 48, este puerto slo tendr cuatro entradas. Existen varias formas de trabajar con el CAD. Una es realizar conversiones de: o bien los cuatro bits menos significativos del puerto (bits 0-3), o bien de los cuatro bits ms significativos (bits 4-7). Otra forma es seleccionar un slo pin y trabajar con l. Adems, el CAD se puede configurar de forma que convierta una sola vez, o que realice conversiones continuas.

SET DE INSTRUCCIONES
Las instrucciones se dividen en distintos grupos. Todas las instrucciones tienen dos campos: uno es el mnemnico y el otro es el dato o la direccin a la que hace referencia la instruccin. Este campo es opcional. BLOQUE 1: Instrucciones de carga, almacenamiento y transferencia -CARGA: Estas instrucciones permiten introducir un nuevo valor en los registros, leer una posicin de memoria, un puerto etc... LDAA : Introducir un dato de 8 bits en el acumulador A Ej. LDAA #30 ; A:=30 (Direccionamiento inmediato) LDAA $1000 ; Introducir en A el contenido de la direccin $1000. LDD : Introducir un dato de 8 16 bits en el doble acumulador D (Formado por A y B yuxtapuestos) Ej. LDD #$FFCC ; D:=$FFFF > A:=$FF; B:=$CC LDD #$10; ; D:=$0010 > A:=$00; B:=$10 LDX : Introducir un dato de 16 bits en el registro ndice X Ej. LDX #$1000 ; X:=$1000 LDX 3,Y ; Meter en X el contenido de la direccin Y+3 LDX 5,X ; Meter en X el contenido de la direccin X+3. LDY :Introducir un dato de 16 bits en el registro de ndice Y LDS :Introducir un dato de 16 bits en el SP (puntero de pila). Esta instruccin hay que utilizarla al menos una vez en nuestros programas para inicializar la pila. Ej. LDS #$FC00 ;Inicializar la pila a partir de la direccin $FC00 hacia abajo

CLRA :Borrar el contenido del acumulador A. Esta instruccin hace lo mismo que LDAA #0, con la diferencia de que el direccionamiento es inherente y slo ocupa 1 byte, mientras que LDAA #0 ocupa 2 bytes. CLRB :Borrar el contenido del acumulador B. -ALMACENAMIENTO: Estas instrucciones permiten alterar una posicin de memoria, un puerto, registros internos, etc. STAA :Almacenar el acumulador A en una direccin de memoria. Ej. STAA $1000 ; Mandar el acumulador por el puerto A STAB :Almacenar el acumulador B. STD :Almacenar el doble acumulador D. (16 bits) STX :Almacenar el registro de ndice X(16 bits) STY :Almacenar el registro de ndice Y (16 bits) STS :Almacenar el puntero de pila SP. CLR :Poner a cero el contenido de una direccin de memoria. Ej. CLR $1000 ; Mandar un 0 por el puerto A -TRANSFERENCIAS: Permiten transferir datos entre registros y registros y memoria. El direccionamiento es inherente por lo que no es necesario especificar direccin. Con el mnemnico basta. PSHA :Introducir el acumulador A en la pila. Se introduce A en la direccin especificada por SP. SP se decrementa en 1 PSHB :Introducir el acumulador B en la pila PSHX :Introducir el registro de ndice X en la pila. Se introduce X en la pila. SP se decrementa en 2 unidades puesto que X es de 16 bits. PSHY :Introducir el registro de ndice Y en la pila. PULA :Sacar A de la pila. Se decrementa SP en una unidad y se introduce en A el dato contenido en la posicin apuntada por SP. PULB :Sacar B de la pila. PULX :Sacar X de la pila. SP se incrementa en 2 unidades ya que X es de 16 bits. PULY :Sacar Y de la pila. TAB :Introducir el valor de A en B TBA :Introducir el valor de B en A

TSX :Introducir el valor de SP en X TSY :Introducir el valor de SP en Y TXS :Introducir el valor de X en SP TYS :Introducir el valor de Y en SP XGDX :Intercambiar el registro D con el X XGDY :Intercambiar el registro D con el Y TBA :Introducir el valor de B en A TSX :Introducir el valor de SP en X TSY :Introducir el valor de SP en Y TXS :Introducir el valor de X en SP TYS :Introducir el valor de Y en SP XGDX :Intercambiar el registro D con el X XGDY :Intercambiar el registro D con el Y 3 BIBLIOGRAFIA Arquitectura Motorola 16 bits http://www.iearobotics.com/proyectos/libro6811/libro-6811.pdf

You might also like