Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción:
La familia de µcontroladores MC68HC11 está basada en el
Microprocesador de 8 bits 6800.
Fabricados con tecnología HCMOS. Velocidad de bus de 2 MHz.
Encapsulado PLCC de 52 pines.
Consumo entre 15 y 35 mA,
y alimentación de 5 Voltios.
Modo de funcionamiento de
bajo consumo (250 µw).
Sistemas Electrónicos 1
Familia MC68HC11 de Motorola
Familia MC68HC11:
Los dispositivos base corresponden a la serie A.
Sistemas Electrónicos 2
Familia MC68HC11 de Motorola
Sistemas Electrónicos 3
Familia MC68HC11 de Motorola
Descripción general:
Illustration © Motorola
Sistemas Electrónicos 4
Familia MC68HC11 de Motorola
Descripción general:
Registros internos de la CPU:
7 A 0 7 B 0 8 Bits Acumulador A y B
15 D 0 ó 16 Bits Acumulador D
15 IX 0 Registro Indice X
Sistemas Electrónicos 5
Familia MC68HC11 de Motorola
Acumuladores A y B:
⌧Registros de 8 bits. Existen instrucciones específicas para cada uno:
– STAA opr , STAB opr ; Guarda el contenido del acumulador A en la
posición de memoria indicada por opr.
⌧Funcionando como registro de 16 bits (D):
– STD opr ; (A) -> M, (B) -> M+1
Registros índices X e Y:
⌧Se usan para el modo de direccionamiento indexado. Offset de un byte.
– Cuando se utiliza el registro IY, el código de operación tiene un byte
extra.
Stack Pointer:
⌧Pila tipo LIFO.
⌧Se inicializa con la instrucción LDS opr.
Sistemas Electrónicos 6
Familia MC68HC11 de Motorola
Contador de Programa:
⌧Registro de 16 bits que apunta a la próxima instrucción a ejecutar.
Registro de Códigos de Condición:
⌧C: Bit de acarreo. Indica acarreo en la última operación aritmética.
⌧V: Bit de desbordamiento. Indica el desbordamiento de la capacidad del
Acumulador.
⌧Z: Bit de cero. Puesto a uno si el resultado de la última operación fue cero.
⌧N: Bit de negativo. Puesto a uno si el resultado de la última operación fue negativo.
⌧I: Bit de la interrupciones enmascarables. Puede ser activado por software o por
hardware para enmascarar las interrupciones, tanto internas como externas.
⌧H: Bit de acarreo auxiliar. Indica si ha habido acarreo entre los bits 3º y 4º del
Acumulador.
⌧X: Bit de la máscara de interrupción X. Este bit se pone a uno por hardware
(/RESET o /XIRQ) y es borrado sólo por programa.
⌧S: Bit de Stop. Cuando se pone a uno, inhabilita la instrucción STOP.
Sistemas Electrónicos 7
Familia MC68HC11 de Motorola
Modos de direccionamiento:
Inherente:
⌧El operando está implícito en el código de operación.
• 11 CBA ; Compara A y B.
• 11 RORB ; Rotación a la derecha de B a través del acarreo.
Inmediato:
⌧El operando está en el o los bytes que siguen al código de operación.
⌧El carácter identificador de este direccionamiento es: #.
• C9 75 ADCB #$75 ; Suma al ac. B el dato hexadecimal 75.
• 86 16 LDAA #22 ; Carga en el ac. A el dato decimal 22.
• 87 17 CMPA #%0001011 ; Compara el ac. A con un dato binario.
• C6 41 LDAB #’A’ ; Carga en ac. B el valor ASCII de la letra A.
• 86 12 LDAA #@22 ; Carga en el ac. A el dato octal 22.
• CE 12 3A LDX #$123A ; Carga en el reg. X el valor hex. 123A.
Sistemas Electrónicos 8
Familia MC68HC11 de Motorola
Modos de direccionamiento:
Directo:
⌧El byte que sigue al OpCode corresponde a la dirección del dato.
⌧Directamente sólo se puede acceder a las posiciones de memoria RAM
comprendidas entre: $0000 - $00FFH
• 96 75 LDAA $75 ; Carga en A el dato contenido en la dirección 0075H.
Extendido:
⌧La instrucción especifica la dirección completa del operando.
• F9 12 34 STAB $1234 ; Almacena el contenido de B en la posición
de memoria 1234H.
• F3 75 AF ANDA $75AF ; Realiza la AND lógica entre el contenido de
A y el byte de dirección 75AFH
Sistemas Electrónicos 9
Familia MC68HC11 de Motorola
Modos de direccionamiento:
Indexado:
⌧El byte que sigue al OpCode corresponde con un offset que se le suma al
registro índice IX o IY para obtener la dirección del operando.
• E6 75 LDAB $75,X ; Carga en B el dato contenido en la dirección
(X) + 75H.
Sistemas Electrónicos 10
Familia MC68HC11 de Motorola
Modos de direccionamiento:
Relativo:
⌧El byte que sigue al OpCode es un offset que se le suma al Contador de
Programa.
⌧Utilizado sólo para saltos cortos.
⌧Direccionamiento limitado a -128 / +127 posiciones respecto al Contador
de Programa.
• BEQ L1 ; Salta a la etiqueta L1 si el flag Z = 1.
Sistemas Electrónicos 11
Familia MC68HC11 de Motorola
Tipos de Instrucciones:
Instrucciones de Transferencia.
Instrucciones Aritméticas.
Instrucciones Lógicas.
Instrucciones de Rotación y Desplazamiento.
Instrucciones de Ruptura del Secuenciamiento del Programa.
Instrucciones de Control.
Sistemas Electrónicos 12
Familia MC68HC11 de Motorola
LDD (opr) Load Double Accumulator D (M) -> A; (M+1) -> B; IMM;DIR;EXT;IND,X;IND,Y;
Sistemas Electrónicos 13
Familia MC68HC11 de Motorola
STS (opr) Store Stack Pointer (SPH) -> M; (SPL) -> M + 1; DIR;EXT;IND,X;IND,Y;
STX (opr) Store Index Register X (XH) -> M; (XL) -> M + 1; DIR;EXT;IND,X;IND,Y;
STY (opr) Store Index Register Y (YH) -> M; (YL) -> M + 1; DIR;EXT;IND,X;IND,Y;
Sistemas Electrónicos 14
Familia MC68HC11 de Motorola
PSHA Push Accumulator A onto Stack (A) -> (SP); (SP) - 1 -> SP; INH;
PSHB Push Accumulator B onto Stack (B) -> (SP); (SP) - 1 -> SP; INH;
(XL)-> (SP); (XH)-> (SP-1);
PSHX Push index register X onto Stack INH;
(SP) – 2 -> SP;
(YL)-> (SP); (YH)-> (SP-1);
PSHY Push index register Y onto Stack INH;
(SP) – 2 -> SP;
PULA Pull Accumulator A from Stack ((SP)+1) -> A; (SP)+1 -> SP; INH;
PULB Pull Accumulator B from Stack ((SP)+1) -> B; (SP)+1 -> SP; INH;
((SP)+1) -> XH; ((SP)+2) ->
PULX Pull Index Register X from Stack INH;
XL ; (SP) + 2 -> SP;
((SP)+1) -> YH; ((SP)+2) ->
PULY Pull Accumulator Y from Stack INH;
YL ; (SP) + 2 -> SP;
Sistemas Electrónicos 15
Familia MC68HC11 de Motorola
Sistemas Electrónicos 16
Familia MC68HC11 de Motorola
ADCA (opr) Add Memory with Carry to A (A) + (M) + C -> A; IMM;DIR;EXT;IND,X;IND,Y;
ADCB (opr) Add Memory with Carry to B (B) + (M) + C -> B; IMM;DIR;EXT;IND,X;IND,Y;
SBCA (opr) Substract Memory with Carry from A (A) – (M) – C -> A; IMM;DIR;EXT;IND,X;IND,Y;
SBCB (opr) Substract Memory with Carry from B (B) – (M) – C -> B; IMM;DIR;EXT;IND,X;IND,Y;
Sistemas Electrónicos 17
Familia MC68HC11 de Motorola
Sistemas Electrónicos 18
Familia MC68HC11 de Motorola
Sistemas Electrónicos 19
Familia MC68HC11 de Motorola
Sistemas Electrónicos 20
Familia MC68HC11 de Motorola
COM (opr) One´s Complement Memory Byte $FF – (M) -> M; EXT;IND,X;IND,Y;
Sistemas Electrónicos 21
Familia MC68HC11 de Motorola
ANDA (opr) AND Accumulator A with Memory (A) • (M) -> A; IMM;DIR;EXT;IND,X;IND,Y;
ANDB (opr) AND Accumulator B with Memory (B) • (M) -> B; IMM;DIR;EXT;IND,X;IND,Y;
Sistemas Electrónicos 22
Familia MC68HC11 de Motorola
Sistemas Electrónicos 23
Familia MC68HC11 de Motorola
Sistemas Electrónicos 24
Familia MC68HC11 de Motorola
Sistemas Electrónicos 25
Familia MC68HC11 de Motorola
Sistemas Electrónicos 26
Familia MC68HC11 de Motorola
[r] = [M] ¿ C = 0; BHS / BCC [r] < [M] BLO / BCS Unsigned;
[r] < [M] ¿ C = 1; BLO / BCS [r] = [M] BHS / BCC Unsigned;
Sistemas Electrónicos 27
Familia MC68HC11 de Motorola
Sistemas Electrónicos 28
Familia MC68HC11 de Motorola
Instrucciones de Control:
Nemónicos Operación Descripción Direccionamientos
BCLR (opr)
Clear Bit(s) (M) • mm -> M; DIR;IND,X;IND,Y;
(msk)
BSET (opr)
Set Bit(s) (M) + mm -> M; DIR;IND,X;IND,Y;
(msk)
CLC Clear Carry Bit 0 -> C; INH;
Sistemas Electrónicos 29
Familia MC68HC11 de Motorola
Instrucciones de Control:
Nemónicos Operación Descripción Direccionamientos
Sistemas Electrónicos 30
Familia MC68HC11 de Motorola
Sistemas Electrónicos 31
Familia MC68HC11 de Motorola
Sistemas Electrónicos 32
Familia MC68HC11 de Motorola
Sistemas Electrónicos 33
Familia MC68HC11 de Motorola
Sistemas Electrónicos 34