inicio micros 8bits

Upload: kkkkkkkkkkkk

Post on 14-Oct-2015

253 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/24/2018 Inicio Micros 8bits

    1/195

    Iniciacin a los Microcontroladoresde las familias de 8 bits

    Jordi MaynIngeniero de Aplicaciones

    Rev. 2

  • 5/24/2018 Inicio Micros 8bits

    2/195

    1

    ndice

    Qu es un Microcontrolador? ______________________________________________________________ 8

    ndice ________________________________________________________________________________ 8

    Introduccin___________________________________________________________________________ 8Vista global de un Sistema con Microprocesador_____________________________________________ 8

    Entradas de un Sistema con Microprocesador _______________________________________________ 9

    Salidas de un Sistema con Microprocesador_________________________________________________ 9

    Unidad Central de Proceso (CPU) _________________________________________________________ 9

    Reloj (Clock) _________________________________________________________________________ 10

    Memoria del Microprocesador___________________________________________________________ 10

    Programa de un Microprocesador________________________________________________________ 10

    El Microcontrolador ___________________________________________________________________ 11

    Resumen _____________________________________________________________________________ 12Partes de cualquier microprocesador______________________________________________________ 12Tipos de Microprocesadores ____________________________________________________________ 12

    Nmeros y Cdigos de un microprocesador ___________________________________________________ 13

    ndice _______________________________________________________________________________ 13

    Introduccin__________________________________________________________________________ 13

    Nmeros Binarios y Hexadecimales_______________________________________________________ 13

    Cdigos ASCII________________________________________________________________________ 14

    Cdigo de trabajo del microprocesador ___________________________________________________ 15

    Cdigos Mnemotcnicos de las Instrucciones y Ensambladores ________________________________ 15Nmeros Octales ______________________________________________________________________ 16

    BCD (Binario Codificado en Decimal)_____________________________________________________ 17

    Resumen _____________________________________________________________________________ 18

    Elementos bsicos de la Lgica _____________________________________________________________ 19

    ndice _______________________________________________________________________________ 19

    Introduccin__________________________________________________________________________ 19

    Niveles lgicos ________________________________________________________________________ 19

    Transistores CMOS____________________________________________________________________ 19Puertas Simples _______________________________________________________________________ 20

    Inversor ____________________________________________________________________________ 20Puerta NAND _______________________________________________________________________ 21Entrada ____________________________________________________________________________ 21Puerta NOR _________________________________________________________________________ 21Entrada ____________________________________________________________________________ 22

    Puertas de Transmisin, Buffers y Flip-Flops_______________________________________________ 22Puerta de transmisin _________________________________________________________________ 22Buffer de tres estados _________________________________________________________________ 23Medio Flip Flop (HFF) ________________________________________________________________ 24

    Resumen _____________________________________________________________________________ 25

    Memoria y Entradas/Salidas Paralelas _______________________________________________________ 26

    ndice _______________________________________________________________________________ 26

  • 5/24/2018 Inicio Micros 8bits

    3/195

    2

    Introduccin__________________________________________________________________________ 26

    Analoga de una Memoria con unas Casillas________________________________________________ 26

    Cmo ve la Memoria el Microprocesador__________________________________________________ 27

    Kilobytes, Megabytes y Gigabytes ________________________________________________________ 27

    Tipos de Memoria _____________________________________________________________________ 27Memorias Voltiles ____________________________________________________________________ 27

    RAM: Memoria de Acceso Aleatorio (Random Access Memory) _______________________________ 27

    Memorias No-Voltiles _________________________________________________________________ 28ROM: Memoria de slo Lectura (Read-Only Memory) _______________________________________ 28PROM: Memoria Programable de slo lectura (Programmable ROM) ___________________________ 28EPROM: Memoria Elctricamente Programable (borrable por UV)______________________________ 28OTP: Memoria EPROM programable uno sola vez __________________________________________ 28EEPROM: Memoria Programable y Borrable elctricamente___________________________________ 28FLASH: Memoria Programable y Borrable elctricamente ____________________________________ 28

    E/S como un tipo de Memoria ___________________________________________________________ 28

    Estados internos y Registros de control____________________________________________________ 29Mapa de memoria _____________________________________________________________________ 30

    La Memoria como un Perifrico _________________________________________________________ 31

    Resumen _____________________________________________________________________________ 32Tipos de Memoria ____________________________________________________________________ 32

    Arquitectura del Microcontrolador __________________________________________________________ 33

    ndice _______________________________________________________________________________ 33

    Introduccin__________________________________________________________________________ 33

    Arquitectura del Microcontrolador_______________________________________________________ 33

    Registros de la CPU____________________________________________________________________ 34Tiempos _____________________________________________________________________________ 35

    Vista de un Programa __________________________________________________________________ 35Listado 1. Programa Ejemplo ___________________________________________________________ 36

    Funcionamiento de la CPU______________________________________________________________ 38Funcionamiento Detallado de las Instrucciones en la CPU_____________________________________ 38Guardar en el Acumulador (Modo de Direccionamiento Directo) _______________________________ 38Cargar el Acumulador (Modo de Direccionamiento Inmediato)_________________________________ 39Bifurcacin Condicional _______________________________________________________________ 39Llamada a una subrutina y Retorno de una subrutina _________________________________________ 39Listado 2. Ejemplo de Llamada a Subrutina ________________________________________________ 40

    Ver Funcionando un Microcontrolador ___________________________________________________ 41Reset ______________________________________________________________________________ 44Pin de RESET _____________________________________________________________________ 44Power-On Reset______________________________________________________________________ 44Reset por Watchdog Timer_____________________________________________________________ 44Reset por una Direccin ilegal___________________________________________________________ 44

    Interrupciones ________________________________________________________________________ 45Direccin del Vector __________________________________________________________________ 45Interrupciones externas ________________________________________________________________ 46

    Interrupciones de Perifricos internos_____________________________________________________ 47Interrupcin por Software (SWI)_________________________________________________________ 47

    Latencia de Interrupcin _______________________________________________________________ 47Interrupciones anidadas________________________________________________________________ 47

    Resumen _____________________________________________________________________________ 48

  • 5/24/2018 Inicio Micros 8bits

    4/195

    3

    Juego de Intrucciones del MC68HC05 _______________________________________________________ 49

    ndice _______________________________________________________________________________ 49

    Introduccin__________________________________________________________________________ 49Unidad Central de Proceso (CPU)________________________________________________________ 49

    Unidad Aritmtica/Lgica (ALU) ________________________________________________________ 50

    Control de la CPU _____________________________________________________________________ 50

    Registros de la CPU____________________________________________________________________ 50

    (A) Acumulador_______________________________________________________________________ 50

    (X) Registro de ndice __________________________________________________________________ 50

    (CCR) Registro de Cdigo Condicin _____________________________________________________ 51

    (H) Bit Medio acarreo __________________________________________________________________ 51

    (I) Bit Mscara de interrupcin __________________________________________________________ 51(N) Bit negativo______________________________________________________________________ 51(Z) Bit Cero_________________________________________________________________________ 51(C) Bit Carry/Borrow _________________________________________________________________ 52

    Contador de Programa _________________________________________________________________ 52

    Modos de Direccionamiento _____________________________________________________________ 53

    Modo de Direccionamiento Inherente _____________________________________________________ 54

    Modo de Direccionamiento Inmediato_____________________________________________________ 55

    Modo de Direccionamiento Extendido_____________________________________________________ 55Cdigo mnemotcnico_________________________________________________________________ 56

    Modo de Direccionamiento Directo _______________________________________________________ 56Cdigo mnemotcnico_________________________________________________________________ 57

    Modos de direccionamiento Indexado _____________________________________________________ 57Modo Indexado sin Ningn Desplazamiento _______________________________________________ 58

    Cdigo mnemotcnico_________________________________________________________________ 58

    Indexado con 8-bits de Desplazamiento____________________________________________________ 58

    Indexado con 16-Bits de Desplazamiento __________________________________________________ 59Cdigo mnemotcnico_________________________________________________________________ 60

    Modo de Direccionamiento Relativo ______________________________________________________ 60Instrucciones Prueba de bit (Bit Test) y Bifurcacin (Branch) __________________________________ 61

    Organizacin de las instrucciones por Tipo ________________________________________________ 61

    Resumen del Juego de Instrucciones ______________________________________________________ 65Smbolos de Cdigo de condicin________________________________________________________ 65Operadores Booleanas_________________________________________________________________ 65Registros de la CPU___________________________________________________________________ 65

    Modos de Direccionamiento Abreviacin Operandos _______________________________ 65

    Resumen _____________________________________________________________________________ 66

    Registros de la CPU____________________________________________________________________ 66

    Modos de Direccionamiento _____________________________________________________________ 66

    Ejecucin de Instrucciones ______________________________________________________________ 66

    Programacin ___________________________________________________________________________ 67

    ndice _______________________________________________________________________________ 67Introduccin__________________________________________________________________________ 67

    Escribiendo un simple programa _________________________________________________________ 67

  • 5/24/2018 Inicio Micros 8bits

    5/195

    4

    Diagrama de flujo _____________________________________________________________________ 68

    Cdigo Fuente Mnemnico______________________________________________________________ 69

    Programa de Retardo __________________________________________________________________ 70

    Listado Ensamblador __________________________________________________________________ 71Listado 3. Listado Ensamblador _________________________________________________________ 71Archivo de Cdigo Objeto______________________________________________________________ 73Directivas del Ensamblador_____________________________________________________________ 74Origen (ORG) _______________________________________________________________________ 74Igual (EQU)_________________________________________________________________________ 74Byte de Forma Constante (FCB) _________________________________________________________ 74Byte de Forma Doble (FDB)____________________________________________________________ 75Byte de Reserva de Memoria (RMB) _____________________________________________________ 75Pone el Nmero Base por defecto a Decimal _______________________________________________ 75

    Familiarizacin con el Juego de Instrucciones ______________________________________________ 76

    Desarrollo de la Aplicacin______________________________________________________________ 76

    Resumen _____________________________________________________________________________ 78

    Estructura del Programa Base______________________________________________________________ 79

    ndice _______________________________________________________________________________ 79

    Introduccin__________________________________________________________________________ 79

    EQUATES del Sistema _________________________________________________________________ 79

    Registros EQU para el MC68HC705J1A __________________________________________________ 79

    Aplicacin de los EQU del Sistema _______________________________________________________ 80

    Preparacin de los Vectores _____________________________________________________________ 80

    Vector de Reset _______________________________________________________________________ 80

    Interrupciones sin usar _________________________________________________________________ 81Variables de la RAM___________________________________________________________________ 82

    Bucle Base ___________________________________________________________________________ 82

    Bucle Secuenciador ____________________________________________________________________ 83

    Bucle del Reloj del Sistema______________________________________________________________ 83

    Sus Programas ________________________________________________________________________ 84

    Consideraciones de tiempo ______________________________________________________________ 84

    Consideraciones de la Pila (Stack) ________________________________________________________ 84

    Estructura de una Aplicacin Preparada __________________________________________________ 85Listado 4. Estructura del Programa Base (pg 1 de 5) ________________________________________ 86

    Resumen _____________________________________________________________________________ 91

    Perifricos Internos ______________________________________________________________________ 92

    ndice _______________________________________________________________________________ 92

    Introduccin__________________________________________________________________________ 92

    Tipos de Perifricos____________________________________________________________________ 92

    Temporizadores_______________________________________________________________________ 93

    Puertos Serie _________________________________________________________________________ 93

    Convertidor Analgico a Digital _________________________________________________________ 93

    Convertidor Digital a Analgico _________________________________________________________ 93

    EEPROM ____________________________________________________________________________ 94

  • 5/24/2018 Inicio Micros 8bits

    6/195

    5

    Control de Perifricos __________________________________________________________________ 94

    Temporizador del MC68HC705J1A ______________________________________________________ 94Ejemplo del Temporizador _____________________________________________________________ 96

    Usando el Software PWM______________________________________________________________ 100Listado 5. Listado del Programa PWM (pgina 1 de 2) ______________________________________ 101

    Ejemplo Prctico de un Control de Motor ________________________________________________ 103Teora ______________________________________________________________________________ 103

    Circuito de Control de un motor ________________________________________________________ 104

    Software del Control de Motor__________________________________________________________ 106Listado 6. Listado del Programa de Control de Velocidad (pgina 1 de 4)________________________ 108

    Resumen ____________________________________________________________________________ 112Otros Tipos de Perifricos_____________________________________________________________ 112

    Juego de Instrucciones___________________________________________________________________ 113

    ndice ______________________________________________________________________________ 113

    Introduccin_________________________________________________________________________ 114Juego de Instrucciones del MC68HC05___________________________________________________ 115

    ADC Suma con Acarreo ADC ____________________________________________________ 116

    ADD Suma sin Acarreo ADD___________________________________________________ 117

    AND AND Lgico AND_______________________________________________________ 118

    ASL Desplazamiento Aritmtico a la Izquierda ASL____________________________________ 119

    ASR Desplazamiento Aritmtico a la Derecha ASR __________________________________ 120

    BCC Bifurcacin si se pone a 0 el Acarreo BCC _______________________________________ 121

    BCLR n Pone a 0 un Bit en la Memoria BCLR n ______________________________________ 122

    BCS Bifurcacin si el Acarreo es 1 BCS________________________________________ 123

    BEQ Bifurcacin si es Igual BEQ_______________________________________________ 124

    BHCC Bifurcacin si Medio Acarreo es 0 BHCC______________________________________ 125

    BHCS Bifurcacin si Medio Acarreo es 1 BHCS ____________________________________ 126

    BHI Bifurcacin si ms es Mayor BHI________________________________________________ 127

    BHS Bifurcacin si es Mayor o Igual BHS_______________________________________ 128

    BIH Bifurcacin si el Pin de Interrupcin est en nivel Alto BIH _______________________________ 129

    BIL Bifurcacin si el Pin de Interrupcin est en nivel Bajo BIL________________________________ 130

    BIT Bit de Prueba de la Memoria con el Acumulador BIT __________________________________ 131BLO Bifurcacin si es ms Menor BLO ___________________________________________ 132

    BLS Bifurcacin si es Menor o Igual BLS ____________________________________________ 133

    BMC Bifurcacin si la Mscara de Interrupcin es 0 BMC___________________________________ 134

    BMI Bifurcacin si es Menor BMI ____________________________________________ 135

    BMS Bifurcacin si la Mscara de Interrupcin es 1 BMS ________________________________ 136

    BNE Bifurcacin si no es Igual BNE ___________________________________________ 137

    BPL Bifurcacin si es Positivo BPL_______________________________________________ 138

    BRA Bifurcacin Incondicional BRA _________________________________________ 139BRCLR n Bifurcacin si el Bit n es Cero BRCLR n ____________________________________ 140

    BRN Nunca Bifurcacin BRN ____________________________________________________ 141

  • 5/24/2018 Inicio Micros 8bits

    7/195

    6

    BRSET n Bifurcacin si el Bit n es 1 BRSET_______________________________________ 142

    BSET n Pone a 1 el Bit en la Memoria BSET n ________________________________________ 143

    BSR Bifurcacin a Subrutina BSR ________________________________________________ 144

    CLC Pone a Cero el Bit de Acarreo CLC _______________________________________ 145

    CLI Pone a Cero el Bit de Mscara de Interrupcin CLI_________________________________ 146CLR Pone a Cero CLR ________________________________________________________ 147

    CMP Compara el Acumulador con la Memoria CMP _____________________________________ 148

    COM Complemento COM ______________________________________________________ 149

    CPX Compara el Registro de ndice con la Memoria CPX ________________________________ 150

    DEC Decremento DEC ______________________________________________________ 151

    EOR OR-Exclusiva de la Memoria con el Acumulador EOR________________________________ 152

    INC Incrementa INC_______________________________________________________________ 153

    JMP Salto JMP________________________________________________________________ 154

    JSR Salto a Subrutina JSR ________________________________________________________ 155

    LDA Carga el Acumulador desde la Memoria LDA ____________________________________ 156

    LDX Carga el Registro de ndice desde la Memoria LDX __________________________________ 157

    LSL Desplazamiento Lgico a la Izquierda LSL ________________________________________ 158

    LSR Desplazamiento Lgico a la Derecha LSR______________________________________ 159

    MUL Multiplicacin Sin Signo MUL ______________________________________________ 160

    NEG Negado NEG __________________________________________________________ 161

    NOP No Operacin NOP________________________________________________________ 162

    ORA OR-Inclusiva ORA________________________________________________________ 163ROL Rotacin a la Izquierda por Acarreo ROL ________________________________________ 164

    ROR Rotacin a la Derecha por Acarreo ROR _______________________________________ 165

    RSP Reset del Puntero de Pila RSP ______________________________________________ 166

    RTI Retorno de la Interrupcin RTI __________________________________________________ 167

    RTS Retorno de Subrutina RTS ___________________________________________________ 168

    SBC Subtraccin con Acarreo SBC _____________________________________________ 169

    SEC Pone a 1 el bit de Acarreo SEC _____________________________________________ 170

    SEI Pone a 1 el Bit de Mscara de Interrupcin SEI ___________________________________ 171

    STA Guarda el Acumulador en la Memoria STA _________________________________ 172

    STOP Habilita la IRQy Para el Oscilador STOP_________________________________ 173

    STX Guarda el Registro de ndice X en la Memoria STX_________________________________ 174

    SUB Substraccin SUB_____________________________________________________ 175

    SWI Interrupcin por Software SWI___________________________________________ 176

    TAX Transfiere el Acumulador al Registro de ndice TAX________________________________ 177

    TST Prueba para Negativo o Cero TST ___________________________________________ 178

    TXA Transfiere el Registro de ndice al Acumulador TXA _________________________________ 179

    WAIT Habilita la Interrupcin, Para el Procesador WAIT________________________________ 180

    Tablas de Referencia ____________________________________________________________________ 181

  • 5/24/2018 Inicio Micros 8bits

    8/195

    7

    ndice ______________________________________________________________________________ 181

    Conversin de Hexadecimal a ASCII ____________________________________________________ 181

    Conversin de Hexadecimal a Decimal ___________________________________________________ 182

    Conversin de Decimal a Hexadecimal ___________________________________________________ 182

    Valores Hexadecimales vs. Instrucciones MC68HC05_______________________________________ 183Glosario ____________________________________________________________________________ 185

  • 5/24/2018 Inicio Micros 8bits

    9/195

    8

    Qu es un Microcontrolador?

    ndiceIntroduccinVista global de un Sistema con microprocesador

    Entradas de un Sistema con microprocesadorSalidas de un Sistema con microprocesadorUnidad Central de Proceso (CPU)RelojMemoria del microprocesadorPrograma del microprocesadorEl MicrocontroladorResumen

    Partes de Cualquier MicroprocesadorTipos de Microprocesadores

    Introduccin

    Este captulo pone el fundamento para una exploracin detallada del funcionamiento interno de unpequeo microcontrolador. Se podr ver que el microcontrolador es una de las formas ms bsicas de un sistemacon microprocesador. Aunque son mucho ms pequeos que los microprocesadores personales y los grandesordenadores, se construyen microcontroladores con los mismos elementos bsicos. En el sentido ms simple, losmicroprocesadores producen un modelo especfico basado en unas entradas y unas salidas, con las instruccionesen un programa con microprocesador.

    Como la mayora de microprocesadores, los microcontroladores son simplemente ejecutores deinstrucciones de propsito general. La estrella real de un sistema con microprocesador, es un programa deinstrucciones que son proporcionadas por un programador. Este programa le dice al microprocesador que realicelargas secuencias de acciones muy simples para lograr tareas tiles como las pensadas por el programador.

    Vista global de un Sistema con MicroprocesadorLa Figura 1proporciona una vista global de un sistema con microprocesador. Simplemente cambiando

    los tipos de dispositivos de entrada y de salida, ste diagrama de bloques podra ser el de un microprocesadorpersonal, un ordenador o un simple un microcontrolador (MCU). Los dispositivos de entrada y de salida(E/S) mostrados en la figura son lo tpicos encontrados en un sistema con microprocesador.

    Figura 1. Sistema tpico con Microprocesador

  • 5/24/2018 Inicio Micros 8bits

    10/195

    9

    Entradas de un Sistema con MicroprocesadorLos dispositivos de entrada proporcionan informacin del mundo exterior al sistema con

    microprocesador. En un ordenador personal, el dispositivo de entrada ms comn es el teclado, igual que unamquina de escribir. Los sistemas con microprocesadores normalmente usan dispositivos de entrada mucho mssimples como interruptores o pequeos teclados, aunque los dispositivos de entrada ms exticos se encuentranen los sistemas basados en microprocesador. Un ejemplo de un dispositivo de entrada extico para unmicroprocesador es el sensor de oxgeno en un automvil que mide la eficacia de la combustin tomandomuestras en el tubo de escape.

    La mayora de entradas del microprocesador pueden procesar slo seales de entrada digital,al mismonivel de voltaje que el de la fuente de alimentacin. El nivel 0 V o tierra se le llama VSSy el nivel positivo de lafuente de alimentacin se le llama VDD y es tpicamente de 5 Vdc. Un nivel aproximado de 0 voltios indica unaseal lgica 0y un voltaje aproximadamente igual al nivel positivo de la fuente de alimentacin indica unaseal lgica 1.

    Por supuesto, el mundo real est lleno de seales analgicas o seales que son de otros niveles de

    voltaje. Algunos dispositivos de entrada traducen los voltajes de seal de algn otro nivel a los niveles VDDyVSS, necesarios para el microprocesador. Otros dispositivos de entrada convierten las seales analgicas enseales digitales (a valores binarios 1 y 0) para que el microprocesador los pueda entender y manipular.Algunos microprocesadores incluyen circuitos convertidores analgicos/digitales en el mismo circuito integrado.

    Los transductoresse pueden usar para traducir otras seales del mundo real a niveles de seal lgicaque un microprocesador puede entender y manipular. Algunos ejemplos que incluyen transductores, como lossensores de temperatura, sensores de presin, detectores de nivel de luz y otros. Con estos transductores, casicualquier propiedad fsica se puede usar como entrada a un sistema con microprocesador.

    Salidas de un Sistema con Microprocesador

    Se usan dispositivos de salida para comunicar la informacin o acciones del sistema conmicroprocesador al mundo exterior. En un ordenador personal, el dispositivo de salida ms comn es la pantallaCRT(tubo de rayos catdicos). Los sistemas con microprocesador usan a menudo dispositivos de salida muchoms simples como los LEDs, lmparas, o zumbadores. Circuitos convertidores (a veces construidos en el mismocircuito integrado microprocesador) pueden convertir seales digitales a niveles de voltaje analgicos.

    Del controlador en microcontrolador viene del hecho de que estos pequeos sistemas conmicroprocesador normalmente controlan algo en comparacin con un ordenador personal que normalmente

    procesa informacin. En el caso del ordenador personal, la mayora de las salidas es de informacin (cualquierinformacin en una pantalla CRT o en el papel de la impresora). Por otro lado, en un sistema conmicroprocesador, la mayora de las salidas son seales de nivel lgico digital, que se usan para manejar LEDs odispositivos elctricos como rels o motores.

    Unidad Central de Proceso (CPU)La CPU (Central Processor Unit) es el centro de cada sistema microprocesador. El trabajo de la CPU es

    ejecutar obedientemente las instrucciones de un programa que le fue proporcionado por un programador. Unprogramacon microprocesador le dice a la CPU que lea (read) la informacin de las entradas y que la escriba(write) a la memoria de trabajo o que lea la informacin de la memoria de trabajo y la escriba a las salidas.Algunas instrucciones del programa involucran decisiones simples que causan al programa continuar con lasiguiente instruccin o saltar a un nuevo lugar del programa. En un captulo posterior, se vern de cerca el juegode instrucciones disponibles para un microcontrolador en particular.

    En un ordenador personal, hay varios niveles de programas, empezando con el programa interno, que esel control ms bsico del funcionamiento del microprocesador. Otro nivel incluye programas de usuario que secargan en la memoria del sistema cuando estn a punto de ser usados. Esta estructura es muy compleja y no seraun buen ejemplo para mostrar a un principiante cmo trabaja el microprocesador.

  • 5/24/2018 Inicio Micros 8bits

    11/195

    10

    En un microcontrolador normalmente, solamente un programa en particular est trabajando para elcontrol de una aplicacin. Por ejemplo, la CPU MC68HC05 slo reconoce 60 instrucciones diferentes, perostas son representativas del juego de instrucciones de cualquier sistema con microprocesador. Este tipo desistema con microprocesador es un buen modelo para aprender el fundamento de funcionamiento de unmicroprocesador, porque es posible saber lo que est pasando exactamente en cada paso de la ejecucin de un

    programa en la CPU.

    Reloj (Clock)Salvo excepciones, los microprocesadores usan un pequeo osciladordel reloj (clock) para activar la

    CPU, para mover de un paso a la secuencia siguiente. En el captulo de arquitectura de un microprocesador, sepuede ver que incluso las instrucciones simples de un microcontrolador estn compuestas de una serie de pasosan ms bsicos. Cada uno de estos pasos diminutos en el funcionamiento del microprocesador toma un ciclo delreloj de la CPU.

    Memoria del MicroprocesadorSe usan varios tipos de memoria para los diferentes propsitos en un sistema con microprocesador. Los

    tipos principales de memoria encontrados en un microcontrolador son:

    Memorias para almacenar el Programa: ROM (Read Only Memory): memoria slo de lectura, este tipo de memoria se programa en fabrica y se

    llama Mscara. EPROM (Erasable Programmable Read Only Memory): memoria slo de lectura, programable

    elctricamente y se borra por luz ultravioleta a travs de una ventana en la parte superior del dispositivo. OTP(One Time Programmable): memoria slo de lectura, programable elctricamente una sola vez. FLASH:memoria programable y borrable elctricamente, por bloques.

    Estos tipos se usan principalmente para almacenar los programas y los datos permanentes que deben permanecerinalterados incluso cuando no hay ninguna alimentacin aplicada al microcontrolador.

    Memoria para almacenar Datos: RAM(Random Access read/write Memory): memoria de acceso a lectura o escritura aleatorio, se usa para

    el almacenamiento temporal de datos y el clculo intermedio de los resultados durante las operaciones. Estetipo de memoria pierde los datos cuando se queda sin alimentacin.

    EEPROM (Electrically Erasable Programmable Read Only Memory): memoria slo de lectura,programable y borrable elctricamente.

    La unidad ms pequea de una memoria, es de un solo bit,que puede guardar uno valor lgico 0 o 1.Estos bits se agrupan en conjuntos de ocho bits para hacer uno byte. Los microprocesadores ms grandes utilizangrupos de 16 o 32 bits, llamados palabras o word. El tamao de una palabra (word) puede ser diferente paracada microprocesador, pero un byte siempre es de ocho bits.

    Los ordenadores personales trabajan con programas muy grandes y con grandes cantidades de datos,para ello usan formas especiales de dispositivos de almacenamiento, llamados almacenamiento en masa, como

    los discos blandos, los discos duros, y los discos compactos. No es raro encontrar varios millones de bytes dememoria RAM en un ordenador personal, con discos duros con varios gigabytes o discos compactos muysimilares a los usados para las grabaciones de msica con una capacidad de 640 millones de bytes de memoria deslo lectura. En comparacin, los sistemas con microcontrolador tpico tienen una memoria total entre 1,000 y64,000 bytes.

    Programa de un MicroprocesadorLa Figura 1muestra el programa como una nube, porque se origina en la imaginacin del ingeniero o

    programador del microprocesador. Esto es comparable a un ingeniero elctrico que piensa en un nuevo circuito oun ingeniero mecnico que deduce un nuevo ensamblaje. Los componentes de un programa son las instruccionesdel juego de instrucciones de la CPU. As como el diseador del circuito puede construir un circuito sumador

    con simple puertas AND, OR y NOT, un programador puede escribir un programa para sumar nmeros consimples instrucciones.

  • 5/24/2018 Inicio Micros 8bits

    12/195

    11

    Los programas se guardan en la memoria de un microprocesador donde pueden ser ejecutados de modosecuencial por la CPU. En el captulo de programacin, se aprender a escribir programas y prepararlos para sercargados en la memoria de un microprocesador.

    El MicrocontroladorHasta ahora se han visto varias partes de un sistema con microprocesador y ya se est preparado para

    hablar sobre los microcontroladores. En la mitad superior de la Figura 2 se muestra un sistema conmicroprocesador genrico, con una parte adjunta de contorno punteado. Esta parte, es un microcontrolador y lamitad inferior de la figura es un diagrama de bloques que muestra su estructura interior con ms detalle. Elcristal no se contiene dentro del microcontrolador, pero es una parte necesaria del circuito oscilador. En algunoscasos, se puede substituir el cristal por un resonador cermico que es ms econmico o un an menos caro conun conjunto RC (resistencia-condensador).

    Un microcontrolador puede definirse como un sistema microprocesador completo, que incluye laCPU, la memoria, un oscilador del reloj, las E/S y otros perifricos en un solo circuito integrado. Cuandoalgunos de estos elementos como las E/S o la memoria no estn incluidos, al circuito integrado se le llamamicroprocesador. La CPU de un ordenador personal es un microprocesador.

    Figura 2. Vista extendida de un Microcontrolador

  • 5/24/2018 Inicio Micros 8bits

    13/195

    12

    ResumenUn microcontrolador es un sistema microprocesador completo, incluyendo la CPU, la memoria, el

    oscilador del reloj y las E/S en un solo circuito integrado.

    Partes de cualquier microprocesador Una unidad central de proceso o CPU Un Relojde secuencia de la CPU Memoriaspara las instrucciones y los datos Entradaspara poner la informacin al sistema Salidaspara sacar la informacin del sistema Programapara hacer algo til con el microprocesador

    Tipos de MicroprocesadoresAunque todos los microprocesadores comparten los mismos elementos bsicos e ideas, hay diferentes tipos

    de microprocesadores para diferentes propsitos. Para los grandes ordenadores se usan microprocesadores muy grandes, que se usan para procesar grandes

    informaciones. Para los ordenadores personales se usan microprocesadores cada vez ms grandes, para hacer desde las

    tareas ms pequeas como el procesador de texto, hasta el diseo asistido. Para el control de muchos aparatos se usan los microcontroladores de un slo circuito, que pueden ser desde

    muy pequeos en prestaciones (por ejemplo, el ratn de un ordenador personal) hasta controles industrialesbastante complejos, debido a la alta integracin de los mismos.

  • 5/24/2018 Inicio Micros 8bits

    14/195

    13

    Nmeros y Cdigos de un microprocesador

    ndiceIntroduccin

    Nmeros Binarios y HexadecimalesCdigos ASCIICdigos de trabajo del microprocesadorCdigos Mnemotcnicos de las instrucciones y Ensambladores

    Nmeros OctalesBinario Codificado en DecimalResumen

    IntroduccinEste captulo discute los nmeros binarios, hexadecimales, octales y BCD que normalmente son usados

    por los microprocesadores.

    Los microprocesadores trabajan mejor con la informacin en una forma diferente que lo usan laspersonas, para resolver problemas. Los humanos tpicamente trabajamos con el sistema de numeracin en base10 (decimal), probablemente porque tenemos 10 dedos. Los microprocesadores trabajan con el sistema denumeracin en base 2 (binario), porque esto permite representar toda la informacin por dos dgitos, que slo

    pueden ser 0 o 1. A su vez, un 1o un 0puede ser representado por la presencia o la ausencia de voltaje lgicoen una lnea de seal o en los estados cerrado (on) o abierto (off) de un simple interruptor.

    Los microprocesadores tambin usan cdigos especiales para representar la informacin alfabtica y lasinstrucciones del microprocesador. Entendiendo estos cdigos ayudar a entender cmo los ordenadores puedenhacer tantas cosas, con las cadenas de dgitos que slo pueden ser 1 o 0.

    Nmeros Binarios y HexadecimalesLos nmeros decimales (base 10), el peso de cada dgito es 10 veces ms grande que el dgitoinmediato, el de su derecha. El dgito de ms a la derecha de un nmero entero decimal es el de la unidad, eldgito de la izquierda es el dgito de las decenas, y as sucesivamente.

    Los nmeros binarios(base 2), el peso de cada dgito es 2 veces ms grande que el dgito inmediato desu derecha. El dgito de ms a la derecha de un nmero entero binario es el de la unidad, el siguiente dgito a laizquierda es el dgito cuatro, el siguiente dgito es el ocho y as sucesivamente.

    Aunque los microprocesadores funcionan bastante cmodos con los nmeros binarios de 8, 16, oincluso 32 dgitos binarios, los humanos lo encuentran inoportuno trabajar con tantos dgitos en cada momento.El sistema de numeracin en base 16(hexadecimal) ofrece un compromiso prctico. Un dgito hexadecimal se

    puede representar exactamente con cuatro dgitos binarios, as que un nmero binario de 8 bits puede ser

    expresado por dos dgitos en hexadecimal.

    La correspondencia entre un dgito hexadecimal y los cuatro dgitos binarios que representan, sonbastante simples para los humanos. Los que trabajan con microprocesadores aprenden a traducir mentalmenteentre los dos sistemas muy fcilmente. Los nmeros en hexadecimal (base 16), el peso de cada dgito es 16 vecesms grande que el dgito inmediato de su derecha. El dgito de ms a la derecha de un nmero enterohexadecimal es el de la unidad, el siguiente dgito a la izquierda es el dgito 16, y as sucesivamente.

    La Tabla 1muestra la relacin entre los valores representados en decimal, binario y hexadecimal. Estostres diferentes sistemas de numeracin son simplemente maneras diferentes de representar las mismas cantidadesfsicas. Las letras desde la A hasta la F se usan para representar los valores hexadecimales correspondientes del10 hasta el 15, porque cada uno de los dgitos hexadecimales puede representar 16 cantidades diferentes;considerando que, los nmeros de normalmente utilizados slo incluyen 10 nicos smbolos (del 0 al 9), se

    tuvieron que utilizar otros smbolos de un solo dgito para representar los valores hexadecimales, del 10 hasta 15,con las letras (A - F).

  • 5/24/2018 Inicio Micros 8bits

    15/195

    14

    Decimal(base 10)

    Binario(base 2)

    Hexadecimal(base 16)

    0123

    0000000100100011

    0123

    4567

    0100010101100111

    4567

    89

    1011

    1000100110101011

    89AB

    12131415

    1100110111101111

    CDEF

    1617

    ..

    0001 00000001 0001

    ..

    1011

    ..100101

    ..255

    0110 01000110 0101

    ..1111 1111

    6465

    ..FF

    10241025

    ..65.535

    0100 0000 00000100 0000 0001

    ..1111 1111 1111 1111

    400401

    ..FFFF

    Tabla 1. Equivalencias entre Decimal, Binario y Hexadecimal

    Para evitar cualquier confusin sobre si un nmero es hexadecimal o decimal, se pone el smbolo $antes del nmero hexadecimal. Por ejemplo, 64 en decimal significa sesenta y cuatro y $64 en hexadecimalsignifica seis-cuatro, qu es equivalente a 100 en decimal. Algunos fabricantes de microprocesadores siguen alos valores hexadecimales con una H (tal como 64H).

    El sistema de numeracin Hexadecimal es una buena manera para expresar y discutir el proceso de lainformacin numrica para los microprocesadores, porque mentalmente es fcil para las personas convertir entrelos dgitos hexadecimales y los 4-bits binarios equivalentes. La anotacin hexadecimal es mucho ms compactaque en binario.

    Cdigos ASCIILos microprocesadores deben manejar muchos tipos de informacin diferente de los nmeros. El texto

    (los caracteres alfanumricos) y las instrucciones se deben poner en un cdigo, de semejante manera, para que elmicroprocesador pueda entender esta informacin. El cdigo ms comn para la informacin de tipo texto, es elcdigo estndar para el intercambio de informacin americano (o ASCII).

    El cdigo ASCII establece una correlacin ampliamente aceptada entre los caracteres alfanumricos ylos valores binarios especficos. Usando el cdigo ASCII $41, corresponde a la letra mayscula A, $20corresponde a un carcter de espacio, etc. El cdigo ASCII traduce caracteres a cdigos binarios de 7-bits, peroen la prctica la informacin de los caracteres se lleva normalmente con 8-bits, poniendo el bits ms significativoigual a 0 (el de ms a la izquierda).

    Este cdigo ASCII permite, que equipos fabricados por varios fabricantes, puedan comunicarse porquetodos usan este mismo cdigo. La Tabla 2muestra la relacin entre los caracteres ASCII y el valor hexadecimal.

  • 5/24/2018 Inicio Micros 8bits

    16/195

    15

    Hex ASCII Hex ASCII Hex ASCII Hex ASCII Hex ASCII Hex ASCII$00 NUL $16 SYN $2C , (coma) $42 B $58 X $6E N$01 SOH $17 ETB $2D - (dash) $43 C $59 Y $6F o$02 STX $18 CAN $2E . (period) $44 D $5A Z $70 p$03 ETX $19 EM $2F / $45 E $5B [ $71 q$04 EOT $1A SUB $30 0 $46 F $5C \ $72 r

    $05 ENQ $1B ESC(escape)

    $31 1 $47 G $5D ] $73 s

    $06 ACK $1C FS $32 2 $48 H $5E ^ $74 t$07 BEL

    (beep)$1D GS $33 3 $49 I $5F _

    (under)$75 u

    $08 BS(back sp)

    $1E RS $34 4 $4A J $60 ` $76 v

    $09 HT (tab) $1F US $35 5 $4B K $61 a $77 w$0A LF

    (linefeed)$20 SP

    (space)$36 6 $4C L $62 b $78 x

    $0B VT $21 ! $37 7 $4D M $63 c $79 y$0C FF $22 $38 8 $4E N $64 d $7A z

    $0D CR(return) $23 # $39 9 $4F O $65 e $7B {

    $0E SO $24 $ $3 : $50 P $66 f $7C $0F SI $25 % $3B ; $51 Q $67 g $7D }$10 DEL $26 & $3C < $52 R $68 h $7E $11 DC1 $27 (apost.) $3D = $53 S $69 i $7F DEL

    (delete)$12 DC2 $28 ( $3E > $54 T $6A j$13 DC3 $29 ) $3F ? $55 U $6B k$14 DC4 $2A * $40 @ $56 V $6C l$15 NAK $2B + $41 A $57 W $6D m

    Tabla 2. Conversin de Hexadecimal a ASCII

    Cdigo de trabajo del microprocesadorLos microprocesadores utilizan otro cdigo para dar las instrucciones a la CPU, llamado cdigo de

    trabajo o opcode. Cada opcode instruye a la CPU para ejecutar una sucesin muy especfica de pasos, quejuntos logran un funcionamiento pretendido. Los microprocesadores de diferentes fabricantes usan diferentesjuegos de opcodes porque estos opcodes son internamente alambrados en la lgica de la CPU. El juego deinstruccionespara una CPU especfica, es el conjunto de todos los funcionamientos que la CPU sabe realizar.Los opcodes son una representacin del conjunto de instrucciones y los cdigo mnemotcnicos son otros.Aunque los opcodes difieren de un microprocesador a otro, todos los microprocesadores realizan los mismostipos de tareas bsicas de maneras similares. Por ejemplo, la CPU MC68HC05 puede entender 62 instrucciones

    bsicas. Algunas de estas instrucciones bsicas tienen algunas ligeras variaciones, cada una requiere un opcodepor separado. El juego de instrucciones del MC68HC05 est representado a travs de 210 nicas instruccionesopcodes. En otro captulo se muestra cmo la CPU ejecuta realmente las instrucciones, pero primero senecesitan entender unos conceptos ms bsicos.

    Cdigos Mnemotcnicos de las Instrucciones y EnsambladoresUn opcode como $4C es entendido por la CPU, pero no significa mucho a un humano. Para resolver

    este problema, se usa un sistema de cdigo mnemotcnico equivalente a la instruccin. El opcode $4Ccorresponde al cdigo mnemotcnico INCA que significa incrementar el acumulador. Aunque en este libro semuestra la informacin que correlaciona las instrucciones mnemotcnicas y los opcodes que ellos representan,esta informacin raramente la usa un programador, porque el proceso de traduccin se maneja automticamente

    por un programa para el microprocesador llamado ensamblador(assembler). Un ensamblador es un programa

    que convierte un programa escrito en cdigo mnemotcnico, en una lista de cdigo mquina(opcodes y otrainformacin) que puede ser usado por una CPU.

  • 5/24/2018 Inicio Micros 8bits

    17/195

    16

    Un ingeniero primero desarrolla un conjunto de instrucciones para el microprocesador en forma decdigo mnemotcnico, despus usa un ensamblador para traducir estas instrucciones en opcodes para que laCPU lo pueda entender. En otros captulos se vern las instrucciones, como escribir un programa y el programaensamblador. Sin embargo, ahora solo hay que entender que las personas preparan instrucciones para unamicroprocesador en una forma de cdigo mnemotcnico, pero que el microprocesador entiende slo opcodes;as que, se requiere un paso, la traduccin de cambiar los mnemnicos a opcodes, que es la funcin del

    ensamblador.

    Nmeros OctalesAntes de dejar los sistemas de nmeros y cdigos, se ven los dos cdigos adicionales de los que se

    puede haber odo hablar. El sistema Octal (base 8) se us para algn trabajo del microprocesador, peroraramente se usa hoy en da. La anotacin Octal usa los nmeros del 0 al 7, representados en tres dgitos

    binarios, lo mismo que en hexadecimal se representan en cuatro dgitos binarios. El sistema octal tiene la ventajade usar los mismos smbolos de los nmeros decimales, a diferencia de los smbolos hexadecimales, que aadende la A a la F.

    Los dos motivos que causaron el abandono del sistema octal en favor del hexadecimal fueron: Enprimer lugar, la mayora de microprocesadores usan palabras de 4, 8, 16, o 32 bits; estas palabras no se puedenagrupar en grupos de tres bits. Algunos de los primeros microprocesadores usaron palabras de 12-bits agrupadosen tres bits cada uno. En segundo lugar el sistema octal no es tan compacto como el hexadecimal; por ejemplo, elvalor en ASCII para la letra mayscula A es 10000012 (en binario), 4116 (en hexadecimal) y 1018 (en octal).Cuando un programador est hablando sobre el valor ASCII de la letra A, es ms fcil decir cuatro y uno quedecir uno cero uno.

    La Tabla 3muestra la equivalencia entre el sistema octal y el binario. La columna binario directomuestra la equivalencia dgito por dgito, con los dgitos de la columna octal en grupos de tres bits binarios. El

    bit de ms a la izquierda (el noveno) se muestra escrito en negrita. Este bit se desecha para hacer los deseados 8-bits. La columna binario 8-bits tiene la misma informacin binaria que la columna binario directo,exceptuando que los bits se reagrupan en cuatro bits. Cada grupo de cuatro bits equivale a un dgito hexadecimal.

    Octal Binario directo Binario 8 bits Hexadecimal000

    001002003004005006007

    000 000 000

    000 000 001000 000 010000 000 011000 000 100000 000 101000 000 110000 000 111

    0000 0000

    0000 00010000 00100000 00110000 01000000 01010000 01100000 0111

    $00

    $01$02$03$04$05$06$07

    010011012013014

    015016017

    000 001 000000 001 001000 001 010000 001 011000 001 100

    000 001 101000 001 110000 001 111

    0000 10000000 10010000 10100000 10110000 1100

    0000 11010000 11100000 1111

    $08$09$0A$0B$0C

    $0D$0E$0F

    101 001 000 001 0100 0001 $41125 001 010 101 0101 0101 $55252 010 101 010 1010 1010 $AA377 011 111 111 1111 1111 $FF

    Tabla 3. Equivalencias entre Octal, Binario, y Hexadecimal

    Al traducir mentalmente los valores de octal a binario, el valor octal se representa con tres dgitos. Concada dgito octal representado con grupos de tres bits binarios, hay un bit de ms, (3 dgitos x 3 bits = 9 bits).

    Entonces es fcil olvidarse de quitar el bit de ms y terminar con un bit extra (el bit noveno). Al traducir dehexadecimal a binario, es ms fcil porque cada dgito hexadecimal equivale exactamente a cuatro bits binarios.Dos dgitos hexadecimales exactamente iguales de ocho bits binarios en un byte.

  • 5/24/2018 Inicio Micros 8bits

    18/195

    17

    BCD (Binario Codificado en Decimal)Binario codificado en decimal (BCD) es una anotacin hbrida usada para expresar valores decimales

    en forma binaria, Tabla 4. BCD usa cuatro bits binarios para representar cada dgito decimal. Cuatro dgitosbinarios pueden expresar 16 diferentes cantidades fsicas, pero en este caso habr seis combinaciones con valorde bit que son considerados invlidos (especficamente, los valores hexadecimales valor A hasta la F). Losvalores BCD se muestran tambin con el signo $ porque realmente son nmeros hexadecimales que representan

    cantidades decimales.

    Cuando el microprocesador hace que una operacin sume en BCD, realiza una suma binaria y entoncesajusta el resultado en la forma BCD. Por ejemplo, la suma BCD siguiente:

    910+ 110= 1010

    El microprocesador suma

    0000 10012+ 0000 00012= 0000 10102

    Pero 10102 es equivalente a A16que no es un valor BCD vlido. Cuando el microprocesador termina el clculo,

    se realiza un chequeo para ver si el resultado todava es un valor BCD vlido. Si hubiera cualquier acarreo de undgito BCD a otro o si hubiera cualquier cdigo invlido, se realizara una sucesin de pasos para corregir elresultado a la forma BCD apropiada. El binario 0000 10102 se corrige a 0001 00002 (10 en BCD) en esteejemplo.

    Decimal BCD Binario Hexadecimal0123456

    789

    $0$1$2$3$4$5$6

    $7$8$9

    0000000100100011010001010110

    011110001001

    $0$1$2$3$4$5$6

    $7$8$9

    CombinacionesBCD

    invlidas

    10101011110011101111

    $A$B$C$E$F

    10 $10 0001 0000 $1099 $99 1001 1001 $99

    Tabla 4. Equivalencia entre Decimal, BCD, Binario y hexadecimal

    En la mayora de casos, no es ineficaz el uso de la anotacin BCD en clculos con microprocesador. Esmejor cambiar de decimal a binario como informacin entera, el microprocesador hace todos los clculos en

    binario y cambia el resultado binario a BCD o a decimal, como se necesite para mostrarlo. Esto es cierto porque:Primero, no todos los microcontroladores son capaces de hacer clculos en BCD, porque necesitan un indicadorde acarreo dgito a dgito que no est presente en todos los microprocesadores (aunque las MCU de Motorolatienen este indicador). Segundo, obliga al microprocesador emular la conducta humana que es menos eficaz que

    permitir al microprocesador trabajar en su sistema binario nativo.

  • 5/24/2018 Inicio Micros 8bits

    19/195

    18

    ResumenLos microprocesadores tienen dos niveles lgicos (0 y 1) para trabajar con el sistema de numeracin

    binario. Probablemente porque las humanos tienen 10 dedos, se trabaja con el sistema decimal (base 10).

    Los nmeros hexadecimales usan 16 smbolos del 0 al 9 y de la A a la F. Cada dgito hexadecimalrepresenta un grupo de cuatro dgitos binarios. El smbolo $ primero se usa como un valor hexadecimal y elsmbolo H tambin como valor hexadecimal para distinguirlo de los nmeros decimales.

    ASCII es un cdigo ampliamente aceptado que permite representar la informacin alfanumrica envalores binarios.

    Cada instruccin o variacin de una instruccin tiene un nico opcode (valor binario) que la CPUreconoce como una peticin para realizar una instruccin especfica. Las CPUs de diferentes fabricantes tienen

    juegos diferentes de opcodes.

    Los programadores especifican las instrucciones con un cdigo mnemotcnico, como INCA. Unprograma llamado ensamblador, traduce el cdigo de instrucciones mnemotcnicas en opcodes para que laCPU las pueda entender.

  • 5/24/2018 Inicio Micros 8bits

    20/195

    19

    Elementos bsicos de los circuitos Lgicos

    ndice

    IntroduccinNiveles lgicosTransistores CMOSPuertas simples

    InversorNANDNOR

    Puertas de Transmisin, Buffers y Flip FlopsPuertas de TransmisinBuffer de tres estadosHalf Flip Flop (HFF)

    Resumen

    IntroduccinLos microprocesadores se componen de elementos digitales lgicos relativamente simples llamados

    Puertas, que son pequeos circuitos que pueden conectarse de varias maneras para manejar seales de niveleslgicos. Aunque esto libro no piensa proporcionar informacin detallada sobre el diseo con lgica, un poco deconocimiento de los elementos lgicos ms bsicos ayudarn a entender el funcionamiento interno de losmicrocontroladores.

    En este captulo se empieza con una vista sobre los requisitos de los niveles lgicos de voltaje. Tambinse muestran los transistores y las interconexiones de un microcontrolador CMOS tpico. Se explica un simpleinversor, una puerta NAND y NOR. Finalmente, se describe una transmisin en una puerta, un buffer de tresestados y un Flip Flop. Virtualmente cualquier parte de un microcontrolador se puede explicar con estos pocoselementos de lgica simple.

    Niveles lgicosAnteriormente, en la discusin de lo que es un microcontrolador, se explic que un nivel aproximado de

    0 voltios indica que es una seal lgica 0 y que un voltaje positivo aproximadamente igual a la fuente dealimentacin indica que es una seal lgica 1. Para ser ms preciso, hay un nivel de voltaje por debajo del cual elfabricante del microcontrolador garantiza que una seal se reconocer como vlido, lgica 0. Igualmente, hay unnivel de voltaje por encima del cual el fabricante del microcontrolador garantiza que una seal se reconocercomo vlido, lgica 1. Al disear un sistema con microcontrolador, se asegurar que todas las seales estnconforme a estos lmites especificados, incluso bajo las peores condiciones.

    La mayora de microcontroladores modernos usan una tecnologa llamada CMOS (Semiconductor delMetal-xido Complementario). Esto significa que los circuitos incluyen los dos tipos de transistores el N y el P.Los transistores se explicarn en mayor detalle despus de este captulo.

    En un circuito tpico CMOS, una entrada lgica 0 puede especificarse entre 0.0 voltios y 0.3 veces VDD.Si VDDes 5.0 voltios, esto traslada el rango de 0.0 a 1.5 voltios. Una entrada lgica 1 puede especificarse entre0.7 veces la VDDhasta VDD. Si VDDes 5.0 voltios, esto traslada el rango de 3.5 a 5.0 voltios.

    Transistores CMOSLa Figura 3muestra los smbolos para un transistor CMOS tipo N y P. Las caractersticas exactas de

    estos transistores se puede determinar por su esquema fsico, tamao y forma. El propsito de este libro, es

    tratarlos como dispositivos conmutadores simples.

    El transistor tipo N en la Figura 3tiene su terminal fuente [3] conectado a tierra. Para que un transistortipo N conduzca, el voltaje de la puerta [2] debe ser ms alto que el voltaje de la fuente [3], por una cantidad

  • 5/24/2018 Inicio Micros 8bits

    21/195

    20

    conocida como umbral. Se dice que este transistor tipo N conduce (entre los terminales [1] y [3]), cuando hayun voltaje lgico 1 en su puerta [2]. Cuando la puerta est en lgica 0, se dice que este transistor tipo N noconduce y acta como un interruptor abierto entre los terminales [1] y [3].

    Figura 3. Transistores CMOS N y P

    El transistor tipo P en la Figura 3tiene su terminal fuente [4] conectado a VDD. Para que un transistortipo P conduzca, su voltaje de puerta [5] debe ser ms bajo que el voltaje de la fuente [4], por una cantidadconocida como umbral. El transistor tipo P se diferencia del tipo N con un pequeo circulo en la puerta [5].Cuando hay un voltaje lgico 0 en la puerta [5] este transistor tipo P se dice que conduce y acta como uninterruptor cerrado entre los terminales [4] y [6]. Cuando la puerta est en voltaje lgico 1, este transistor tipo Pno conduce y acta como un interruptor abierto entre los terminales [4] y [6].

    Es relativamente fcil integrar miles transistores del tipo P y N en un microcontrolador y conectarlos devarias maneras para realizar operaciones lgicas complejas. En los siguiente prrafos, se ven algunos de loscircuitos lgicos ms bsicos que se encuentran en un microcontrolador.

    Puertas SimplesLos tres tipos de puertas lgicas bsicas encontradas en un microcontrolador son el Inversor, la puerta

    NAND y la puerta NOR. Un diseador de lgica usa varias combinaciones de estas puertas bsicas para formarcircuitos lgicos ms complejos, como los que suman dos nmeros binarios. Aunque que no se piensa en el libroensear tcnicas de diseo con lgica, se describen estos circuitos para dar un mejor entendimiento de cmotrabaja un microcontrolador con informacin digital.

    InversorLa Figura 4 muestra el smbolo lgico de un Inversor, su Tabla de verdad y un circuito CMOS

    equivalente. Cuando un nivel de seal lgico (0 o 1) se presenta a la entrada [1] de un inversor, el nivel lgicoopuesto aparece en su salida [2].

    Entrada[1]

    Salida[2]

    0 11 0

    Figura 4. Inversor CMOS

    Viendo el circuito CMOS equivalente a la derecha de la Figura 4 y la Tabla 5, se puede explicar losiguiente: Cuando la entrada [1] est a un nivel lgico 0, el transistor tipo N [4] no conduce y el transistor tipo P[3] conduce, la salida [2] que los une, est a VDD (lgica 1). Cuando la entrada [1] est en nivel lgico 1, eltransistor tipo P [3] no conduce y el transistor tipo N [4] conduce, conectando la salida [2] a tierra (lgica 0).

    TransistorEntrada[1] [3] [4]

    Salida[2]

    0 On Off Conectado a VDD(1)

    1 Off On Conectado a tierra (0)

    Tabla 5. Funcionamiento de una puerta Inversora

  • 5/24/2018 Inicio Micros 8bits

    22/195

    21

    Puerta NANDLa Figura 5muestra el smbolo de una puerta lgica NAND, su Tabla de verdad y un circuito CMOS

    equivalente. Cuando ambas entradas [1] y [2] de la puerta NAND estn en niveles lgicos 1, la salida [3] estar algica 0. Si cualquiera de las entradas de la puerta NAND est en lgica 0, la salida estar a 1.

    Entrada

    [1] [2]

    Salida

    [3]0 0 10 1 11 0 11 1 0

    Figura 5. Puerta NAND CMOS

    Viendo el circuito CMOS equivalente a la derecha de la Figura 5 y la Tabla 6, se puede explicar losiguiente: Cuando ambas entradas [1] y [2] estn en lgica 1, ninguno de los dos de los transistores tipo P [6] y[4] no conducen y los transistores tipo N [5] y [7] conducen, para que la salida [3] est conectada a tierra (lgica0). Cuando la entrada [1] est a lgica 0, el transistor tipo N [5] no conduce y desconecta la salida [3] de tierra,sin tener en cuenta la condicin del transistor tipo N [7]. Tambin, cuando la entrada [1] est a un nivel lgico 0,el transistor tipo P [4] conduce, conectando la salida [3] a V DD(lgica 1). Igualmente, cuando la entrada [2] esten nivel lgico 0, el transistor tipo N [7] no conduce, desconectando la salida [3] de tierra, sin tener en cuenta lacondicin del transistor tipo N [5]. Tambin, cuando la entrada [2] est a un nivel lgico 0, el transistor tipo P [6]conduce, conectando la salida [3] a VDD(lgica 1).

    Entrada Transistor[1] [2] [6] [4] [5] [7]

    Salida[3]

    0 0 On On Off Off VDD(1)

    0 1 Off On Off On VDD(1)

    1 0 On Off On Off VDD(1)

    1 1 Off Off On On GND(0)

    Tabla 6. Funcionamiento de la puerta NAND

    Aunque sta es una simple funcin lgica, muestra cmo los transistores CMOS pueden interconectarsepara realizar la lgica Booleana con simples seales de nivel lgico. La lgica de Boole (llamada as, por elmatemtico irlands que la formul) tiene 2 valores (0 y 1) basados en el sistema algebraico con formasmatemticas y relaciones.

    Puerta NORLa Figura 6muestra el smbolo lgico, la Tabla de verdad y un circuito CMOS equivalente. Cuando

    ninguna entrada [1] y [2] de una puerta NOR est a un nivel lgico 1, la salida [3] estar a un nivel lgico 1. Si

    cualquier entrada de la puerta NOR est a un nivel lgico 1, la salida estar a lgica 0.

    Entrada[1] [2]

    Salida[3]

    0 0 10 1 01 0 01 1 0

    Figura 6. Puerta NOR CMOS

    Viendo el circuito CMOS equivalente a la derecha de la Figura 6 y la Tabla 7, se puede explicar losiguiente: Cuando ambas entradas [1] y [2] estn a un nivel lgico 0, los transistores tipo N [5] y [7] noconducen y los transistores tipo P [4] y [6] conducen y la salida [3] queda conectada a VDD(lgica 1). Cuando la

  • 5/24/2018 Inicio Micros 8bits

    23/195

    22

    entrada [1] est a un nivel lgico 1, el transistor tipo P [4] no conduce, desconectando la salida [3] de VDDsintener en cuenta la condicin del transistor tipo P [6]. Tambin, cuando la entrada [1] est a un nivel lgico 1, eltransistor tipo N [5] conduce, conectando la salida [3] a tierra (lgica 0). Igualmente, cuando la entrada [2] est aun nivel lgico 1, el transistor tipo P [6] no conduce, desconectando la salida [3] de V DDsin tener en cuenta lacondicin del transistor tipo P [4]. Tambin, cuando la entrada [2] est a lgico 1, el transistor tipo N [7]conduce, conectando la salida [3] a tierra (lgica 0).

    Entrada Transistor[1] [2] [4] [5] [6] [7]

    Salida[3]

    0 0 On Off On Off VDD(1)

    0 1 On Off Off On GND (0)1 0 Off On On Off GND (0)1 1 Off On Off On GND (0)

    Tabla 7. Tabla de Verdad de la puerta NOR

    Puertas de Transmisin, Buffers y Flip-Flops

    Los microcontroladores incluyen los tipos ms complejos de puertas lgicas y los elementosfuncionales mostrados en la seccin anterior. En esta seccin, se estudian algunas de estas estructuras mscomplejas, las dos estructuras primeras la puerta de transmisin y el Buffer de tres estados introduciendo laidea de seales de alta impedancia controladas lgicamente, la tercera Medio Flip-Flop introduce unaestructura, que puede mantener una seal en la salida, an despus de que la seal de entrada haya cambiado.Los Flip-Flops son vitales para los microcontroladores, para realizar contadores y tareas secuenciales.

    Puerta de transmisinLa Figura 7muestra el smbolo lgico, la Tabla de verdad y un circuito CMOS equivalente. Cuando la

    entrada de control [3] est a un nivel lgico 1, se dice que la puerta de transmisin conduce y cualquier nivellgico presente en la entrada [1] tambin estar en la salida [2]. Cuando la entrada de control [3] est a un nivellgico 0, se dice que la puerta de transmisin no conduce y el nodo de salida [2] estar desconectado de todo(alta impedancia o Hi-Z).

    Control[3]

    Entrada[1]

    Salida[2]

    0 0 Hi-Z0 1 Hi-Z1 0 01 1 1

    Figura 7. Puerta de Transmisin CMOS

    Viendo el circuito CMOS equivalente a la derecha de la Figura 6 y la Tabla 7, se puede explicar losiguiente: Cuando la entrada de control [3] est a un nivel lgico 0, la puerta del transistor tipo N [6] estar a

    lgico 0 y la puerta del transistor tipo P [5] estar a un nivel lgico 1 (V DD). No hay voltaje entre tierra y VDD,que haran conducir el transistor tipo P [5] o el transistor tipo N [6], as que no hay ninguna conduccin entre laentrada [1] y la salida [2]. Desde el nodo de salida [2] est eficazmente aislado de todo, entonces se dice que esten alta impedancia (Hi-Z).

    Cuando la entrada de control [3] est a un nivel lgico 1, se dice que la puerta de transmisin conduce yentonces tiene una conexin directa de la entrada [1] a la salida [2]. Si las dos entradas de control [3] y [1] estna un nivel lgico 1, el transistor tipo P [5] conducir y conectar la entrada [1] y salida [2]. Aunque la puerta detransistor tipo N [6] est en nivel lgico 1, la fuente [1] tambin est al mismo voltaje, entonces el transistor [6]no conducir. Si la entrada de control [3] est a un nivel lgico 1 y la entrada [1] est a un nivel lgico 0, eltransistor tipo N [6] conducir y conectar la entrada [1] y la salida [2]. Aunque la puerta del transistor tipo P [5]est a un nivel lgico 0, la fuente [1] tambin estar al mismo voltaje, entonces el transistor [5] no conducir.

    La puerta de transmisin mostrada en la Figura 7a veces se llama interruptor analgico porque es capazde dejar pasar seales intermedias entre los niveles lgicos legales.

  • 5/24/2018 Inicio Micros 8bits

    24/195

    23

    Las puertas de transmisin pueden formar multiplexores de datos, como el mostrado en la Figura 8.Cuando la seal seleccionada [3] est a un nivel lgico 1, la puerta de transmisin [6] conducir y la puerta detransmisin [7] (debido al inversor [5]) no conducir. As que la salida [4] no tendr el mismo nivel lgico que laentrada [1] y las seales 1 de la entrada [2] no afectarn a la salida [4]. Cuando la seal seleccionada [3] est aun nivel lgico 0, la puerta de transmisin [7] conducir y la puerta de transmisin [6] no conducir. As que lasalida [4] no tendr el mismo nivel lgico que la entrada [2] y las seales 1 en la entrada [1] no afectarn a la

    salida.

    EntradaSeleccin[3]

    [1] [2]

    Salida[4]

    0 0 0 00 0 1 10 1 0 00 1 1 1

    1 0 0 01 0 1 01 1 0 1

    1 1 1 1

    Figura 8. Multiplexor de Datos 2:1

    Seleccin 1 2 6 7 40 0 0 Off On 00 0 1 Off On 10 1 0 Off On 00 1 1 Off On 11 0 0 On Off 01 0 1 On Off 01 1 0 On Off 1

    1 1 1 On Off 1

    Tabla 8. Funcionamiento del Multiplexor de Datos

    Buffer de tres estadosLa Figura 9muestra el smbolo lgico, un circuito CMOS equivalente y la Tabla de verdad para un

    Buffer de tres estados. Cuando la entrada de control [3] est a un nivel lgico 0, se dice que el Buffer no conducey la salida [2] est en alta impedancia que asla el nodo. Cuando la entrada de control [3] est a un nivel lgico 1,se dice que el Buffer conduce y cualquier nivel lgico que est presente en la entrada [1] tambin estar en lasalida [2].

    Control[3]

    Entrada[1]

    Salida[2]

    0 0 Hi-Z0 1 Hi-Z1 0 01 1 1

    Figura 9. Buffer de Tres-estados

    Viendo el circuito CMOS equivalente a la derecha de la Figura 9 y la Tabla 9, se puede explicar losiguiente: Cuando la entrada de control [3] est a un nivel lgico 0, la puerta del transistor tipo N [6] estar a unnivel lgico 0 y la puerta del transistor tipo P [5] a travs del inversor [9] estar a un nivel lgico 1 (V DD),entonces ambos transistores [5] y [6] no conducirn. El nodo de salida [2] quedar aislado del todo, se dice que

    est en alta impedancia.

    Cuando la entrada de control [3] est a un nivel lgico 1, la puerta del transistor tipo N [6] estar a unnivel lgico 1 y la puerta del transistor tipo P [5] estar a un nivel lgico 0. Si la entrada del Buffer [1] est a un

  • 5/24/2018 Inicio Micros 8bits

    25/195

    24

    nivel lgico 0, la salida del inversor [4] estar a un nivel lgico 1 y har conducir el transistor tipo N [8] y dejarde conducir el transistor tipo P [7]. Con la entrada de control [3] a un nivel lgico 1 y la entrada [1] a un nivellgico 0, la salida del Buffer [2] estar conectada a tierra a travs de los transistores tipo N [6] y [8] qu estarnen conduccin.

    Cuando la entrada de control [3] est a un nivel lgico 1, la puerta del transistor tipo N [6] estar a un

    nivel lgico 1 y la puerta del transistor tipo P [5] estar a un nivel lgico 0. Si la entrada del Buffer [1] est a unnivel lgico 1, la salida del inversor [4] estar a un nivel lgico 0, haciendo conducir el transistor tipo P [7] ydejar de conducir el transistor tipo N [8]. Con la entrada de control [3] y la entrada [1], ambas a un nivel lgico1, la salida del Buffer [2] se conectar a VDD a travs de los transistores tipo P [7] y [5], que estarn enconduccin.

    Nodo TransistorControl[3]

    Entrada[1] [4] [9] [5] [6] [7] [8]

    Salida[2]

    0 0 1 1 Off Off Off On Hi-Z0 1 0 1 Off Off On Off Hi-Z1 0 1 0 On On Off On GND

    (0)1 1 0 0 On On On Off V

    DD(1)

    Tabla 9. Funcionamiento del Buffer

    Medio Flip Flop (HFF)La Figura 10muestra el smbolo lgico y un circuito CMOS equivalente de un medio Flip-Flop (HFF).

    Cuando la entrada de reloj [2] est a un nivel lgico 1, la puerta de transmisin [9] conduce y la puerta detransmisin [8] no conduce. Se dice que el medio Flip-Flop es transparente, porque la seal de entrada [1] pasadirectamente a las salidas Q [3] y Q negada [4]. Cuando el reloj [2] est a un nivel lgico 0, la puerta detransmisin [8] conduce y la puerta de transmisin [9] no conduce. En este estado, el medio Flip-Flop se diceque est enclavado (latched). La puerta de transmisin [8], el inversor [6] y el inversor [7] forman un anilloestable y las salidas Q [3] y Q negada [4] permanecen al mismo nivel lgico que cuando el reloj cambi de 1 a 0.

    Figura 10. Medio Flip Flop

  • 5/24/2018 Inicio Micros 8bits

    26/195

    25

    ResumenAunque se piensa a menudo que los niveles lgicos son 0 voltios o 5 voltios, estos son realmente rangos

    de voltaje garantizados por el fabricante de la MCU. Para una MCU especfica que trabaja con V DD= 5.0 V, unnivel lgico 0 puede ser de 0.0 a 1.5 V y un nivel lgico 1 puede ser de 3.5 a 5.0 V. Siempre hay que referirse alas hojas de datos para cada MCU para obtener los voltajes lgicos 0 y 1.

    Las MCU CMOS se componen de miles de transistores tipo N y P. Un transistor tipo N conduce(conduce de la fuente hasta el drenador) cuando su puerta est a un nivel lgico 1 y su fuente est a unnivel lgico 0. Un transistor P conduce cuando su fuente est a un nivel lgico 1 y su puerta est a un nivellgico 0.

    Los transistores N y P pueden conectarse de varias maneras para realizar un trabajo lgico. Hay trestipos de puertas simples: los Inversores, las puertas NAND y las puertas NOR. La salida de un inversor siempretiene un nivel lgico opuesto a su nivel de entrada. La salida de una puerta NAND est en nivel lgico 0 cuandotodas sus entradas estn en nivel lgico 1. La salida de una puerta NOR est a un nivel lgico 0 cuandocualquiera o todas sus entradas estn a un nivel lgico 1.

    La salida de una puerta de transmisin o un Buffer de tres estados puede tener nivel lgico 0, lgico 1 oalta impedancia. Un salida tiene alta impedancia cuando parece no estar conectada a nada (un circuito abierto).

    Un medio Flip-Flop (HFF) tiene una condicin transparente y una condicin de enclavamiento(latched). En la condicin de transparente (con la entrada de reloj igual a un nivel lgico 1), la salida Q essiempre igual al nivel de la lgica presentada a la entrada. En la condicin de enclavamiento (la entrada de relojigual a un nivel lgico 0), la salida mantiene el nivel lgico que fue presente cuando el Flip-Flop estaba en sultimo lugar en la condicin de transparente. Los cambios en el nivel lgico de entrada, mientras el Flip-Flopest enclavado, no afectan al nivel lgico de salida.

  • 5/24/2018 Inicio Micros 8bits

    27/195

    26

    Memoria y Entradas/Salidas Paralelas

    ndice

    IntroduccinAnaloga de una Memoria con unas CasillasCmo ve la Memoria el MicroprocesadorKilobytes, Megabytes y GigabytesTipos de MemoriaMemorias Voltiles

    RAMMemorias No-Voltiles

    ROM, EPROM, EEPROM, OTP, FLASHEntradas/Salidas como un tipo de MemoriaEstados internos y Registros de controlMapa de memoriaLa Memoria como un Perifrico

    Resumen

    IntroduccinAntes de ver el funcionamiento de la CPU se puede discutir en detalle algunos conocimientos

    conceptuales que requiere la memoria del microcontrolador. En muchas clases de inicio a la programacin, lamemoria se presenta como algo similar a unas casillas donde se pueden almacenar mensajes y otrasinformaciones. Las casillas en que aqu se van a referir son como los buzones de un gran edificio. Es una buenaanaloga, pero necesita un poco ms de detalle para explicar los funcionamientos internos de una CPU.

    Analoga de una Memoria con unas Casillas

    La idea de que cualquier tipo de memoria sirve para guardar informacin, es cierta, pero no hay ningnpunto que diga como se guarda dicha informacin y no se tiene de una manera fiable como se puede recuperardicha informacin cuando se necesita. La serie de buzones de un edificio puede usarse como un tipo dealmacenamiento de memoria. Se puede poner informacin en un buzn numerado y cuando se quiere recuperardicha informacin, se puede ir al buzn con esa direccin y recuperarla.

    A continuacin, se puede llevar de manera anloga para explicar simplemente cmo ve la memoria unmicrocontrolador de 8-bits para que se pueda ser ms especfico. En una CPU de 8-bits, cada casilla (o buzn)

    puede ser un contenedor de un conjunto de ocho interruptores (on/off). En una casilla real, no se le puede ponerms informacin escribiendo ms pequeo, ni tampoco hay ninguna casilla vaca (son ocho interruptores y sonOn o Off). Los contenidos de una posicin de memoria pueden ser desconocidos o indefinidos a un momentodado, as mismo, los interruptores en las casillas pueden estar en un estado desconocido hasta que sean definidos

    por primera vez. Los ocho interruptores estarn en una fila, donde cada interruptor representa un solo dgito

    binario (bit). Un 1 binario corresponde a un interruptor cerrado (On) y un 0 binario corresponde a un interruptorque est abierto (Off). Cada casilla (posicin de memoria) tiene una nica direccin para que la informacin

    pueda guardarse y recuperarse fiablemente.

    En un edificio, las direcciones de los buzones pueden ser del 100 al 175 para el primer piso, del 200 al275 para el segundo piso, etc. stos son nmeros decimales que tienen significando para las personas.Anteriormente se dijo que las microcontroladores trabajan con el sistema numrico binario y unmicrocontrolador con cuatro lneas de direccin puede identificar 16 direcciones. Este microcontroladoridentifica las direcciones de las 16 posiciones de memoria (buzones) con el valor hexadecimal de $0 a $F.

    Los microcontroladores MC68HC05 ms pequeos, tienen 10 lneas de direccin que permitendireccionar 1024 nicas posiciones de memoria. En comparacin, el microcontrolador MC68HC11 de 8-bitstiene 16 lneas de direccin que pueden direccionar 65,536 nicas posiciones de memoria.

  • 5/24/2018 Inicio Micros 8bits

    28/195

    27

    Cmo ve la Memoria el MicroprocesadorUna CPU de 8-bits con 10 lneas de direccin ve la memoria como una fila continua de 1024 valores de

    8-bits. La primera posicin de memoria tiene la direccin 00 0000 00002y la ltima posicin tiene la direccin11 1111 11112. Estos 10-bits de direcciones normalmente se expresan como dos nmeros de 8-bits, esto seexpresa a su vez por cuatro dgitos hexadecimales. En la anotacin hexadecimal, estas direcciones van de $0000

    a $03FF.El microcontrolador especifica qu posicin de memoria se est accediendo (leer desde o escribir a)

    ponindose una nica combinacin de 1 y 0 en las 10 lneas de direccin. La intencin para leer la posicin oescribir en la posicin se hace poniendo un 1 (lectura) o un 0 (escritura) en una lnea llamada read/write (R/W).La informacin 'de' o 'para' la posicin de memoria se lleva con ocho lneas de datos. En cualquier posicin dememoria de un microcontrolador se puede 'escribir a' o se puede 'leer de'. No todos los tipos de memoria se

    pueden escribir, pero es trabajo del programador saber esto, no el microcontrolador. Si un programador ordenaerrneamente al microcontrolador escribir en una memoria de slo lectura, el microcontrolador lo intentar.

    Kilobytes, Megabytes y GigabytesLa unidad ms pequea de memoria de un microcontrolador es de un solo bitque puede guardar un

    valor 0 o 1. Estos bits se agrupan en conjuntos de ocho bits, para hacer un byte. Los microcontroladores msgrandes se agrupan en grupos ms extensos de 16 o 32 bits, para hacer una unidad llamada palabrao word. Eltamao de una palabra puede ser diferente para diferentes microcontroladores.

    En el mundo decimal, se expresan a veces nmeros muy pequeos o muy grandes, incluyendo unprefijo como mili, kilo, etc., antes de la unidad de medida. En el mundo binario, se acostumbra a utilizar prefijossimilares para describir grandes cantidades de memoria. En el sistema decimal, el prefijo kilo significa 1000 (o

    103). En el sistema binario, la potencia del nmero 2 que ms se acerca a 1000 10 es 210= 102410. Cuando se

    dice kilobytes (Kbytes) son mltiplos de 102410 bytes y aunque esta terminologa cientfica no es del todoexacta, a travs de los aos de uso se ha quedado como normal.

    Un megabyte es 220 o 1,048,57610 bytes. Un gigabyte es 230 o 1,073,741,82410 bytes. Un

    microcontrolador personal con 32 lneas de direccin, tericamente puede direccionar 4 gigabytes(4,294,967,29610) de memoria. Los microcontroladores pequeos discutidos en este libro tienen desde 512 byteshasta 16 kilobytes de memoria.

    Tipos de MemoriaLos microcontroladores utilizan varios tipos de informacin que requiere almacenarla en diferentes

    tipos de memoria. Las instrucciones que controlan el funcionamiento de los microcontroladores se guardan enuna memoria no-voltilpara que el sistema no tenga que ser reprogramado despus de que se deje de alimentar.Para trabajar con las variables y los resultados intermedios, es necesario guardarse en una memoria que puedaescribirse rpidamente y fcilmente durante el funcionamiento del sistema. No es importante conservar este tipode informacin cuando no hay alimentacin, por lo que puede usarse una memoria voltil. Estos tipos de

    memorias se les puede modificar su contenido escribiendo y slo se pueden leer por la CPU delmicrocontrolador.

    Otra informacin sobre las memorias, los datos de entrada son ledos por la CPU y los datos de salidason escritos por la CPU. Las entradas/salidas E/S (I/O input/output) y los registros de control son tambin unaforma de memoria del microcontrolador, pero son diferentes a los otros tipos de memoria, porque la informacin

    puede ser detectada y/o cambiada por otra cosa diferente de la CPU.

    Memorias VoltilesRAM: Memoria de Acceso Aleatorio (Random Access Memory)

    La RAM es una forma de memoria voltil que puede ser leda o escrita por la CPU. Como su nombre

    implica, se puede acceder a las posiciones de la RAM en cualquier orden. Esta es el tipo de memoria ms comnen un microcontrolador. La RAM requiere una cantidad relativamente grande de rea de silicio del circuitointegrado y debido a esto el costo es alto, por esto, normalmente las cantidades de RAM incluidas en losmicrocontroladores suelen ser pequeas.

  • 5/24/2018 Inicio Micros 8bits

    29/195

    28

    Memorias No-VoltilesROM: Memoria de slo Lectura (Read-Only Memory)

    La ROM consigue su informacin durante el proceso industrial del circuito integrado. La informacindebe ser proporcionada por el cliente antes de integrar el circuito, que una vez fabricado contendr estainformacin. Cuando se ha terminado el microcontrolador, esta informacin puede ser leda por la CPU pero no

    puede cambiarse. La ROM est considerada como una memoria no-voltil porque la informacin no cambia si se

    deja de alimentarla. La ROM es el tipo ms simple, ms pequea y ms barata de memoria no-voltil.

    PROM: Memoria Programable de slo lectura (Programmable ROM)La PROM es similar a la ROM, slo que puede se programa despus de fabricar el circuito integrado.

    EPROM: Memoria Elctricamente Programable (borrable por UV)La EPROM puede ser borrada exponindola a una fuente de luz ultravioleta. Los microcontroladores

    con EPROM tienen una pequea ventana de cuarzo que permite al circuito integrado ser expuesto a la luzultravioleta para borrarse. El nmero de veces que puede borrarse y reprogramarse una EPROM se limita a unoscientos ciclos y depende del dispositivo en particular. Para programar la informacin en una memoria EPROMse usa un procedimiento especial. La mayora de microcontroladores con EPROM usan un voltaje adicionaltpico de +12 Vdc, durante la programacin de la EPROM. La CPU no puede escribir informacin en una

    posicin de la EPROM tal como se hace para escribir en una posicin de la RAM.

    Algunos microcontroladores tienen internamente un circuito de programacin de la EPROM, para quela CPU del microcontrolador pueda programar las posiciones de memoria de la EPROM. Cuando la EPROM seest programando, no se conectan los buses de direcciones y de datos tal como se hara en una memoria normal.De manera anloga a las casillas, esto sera quitar el mueble entero de soporte de los buzones y tomndolo comoun almacn donde las cajas se llenaran con informacin. Mientras los buzones estn programndose, no se

    puede acceder a los buzones del edificio. Algunos microcontroladores con EPROM (no el MC68HC705J1A)tienen un modo especial de funcionamiento que los hace parecer una memoria EPROM normal de la industria.Estos dispositivos pueden programarse con un programador de propsito general de EPROM.

    OTP: Memoria EPROM programable uno sola vezCuando un microcontrolador con EPROM se encapsula con plstico opaco, se le llama un

    microcontrolador de programable una sola vez o OTP. Como que la luz ultravioleta no puede atravesar elencapsulado, la memoria no puede borrarse. El silicio dentro de una OTP es idntico a uno encapsulado con unaventana de cuarzo. El encapsulado en plstico es mucho ms barato que el encapsulado en cermico con unaventana de cuarzo. Las MCU con OTP son ideales para aplicaciones de alto volumen.

    EEPROM: Memoria Programable y Borrable elctricamenteLas EEPROM se pueden borrar elctricamente por los comandos de un microcontrolador. Para

    programar un nuevo valor en una posicin, se debe borrar primero dicha posicin y entonces realizar una serie depasos de programacin. Esto es algo ms complicado que cambiar una posicin de la RAM a la que simplementepuede escribirse un nuevo valor por la CPU. La ventaja de la EEPROM es que es una memoria no-voltil. LaEEPROM no pierde sus contenidos cuando se deja de alimentarla. La diferencia con la Memoria RAM es elnmero de veces que se puede borrar y reprogramar una posicin de EEPROM que est limitada, tpicamente a10,000 ciclos. El nmero de veces que se puede leer una posicin de EEPROM es ilimitado.

    FLASH: Memoria Programable y Borrable elctricamenteLas memorias Flash se pueden borrar y programar elctricamente (tpicamente a 10.000 ciclos de

    programacin/borrado). Ocupan menor rea de silicio dentro de un circuito integrado.

    E/S como un tipo de MemoriaEl estado y el control de las Entradas/Salidas, es un tipo de posicin de memoria que permite al sistema

    microcontrolador conseguir la informacin a o del mundo exterior. Este tipo de posicin de memoria esinusual porque la informacin puede detectarse y/o puede cambiarse por otra cosa diferente a la CPU.

    Los tipos ms simples de posiciones de memoria son los puertos de entrada y salida. En una MCU de 8-

    bits, un simple puerto de entrada consiste en ocho pins que pueden ser ledos por la CPU. Un simple puerto desalida consiste en ocho pins que la CPU puede controlar (escribir a). En la prctica, una posicin de un simplepuerto de salida normalmente se lleva a cabo con ocho bsculas y ocho caminos de realimentacin, que permitena la CPU leer lo que se escribi previamente en la direccin de dicho puerto de salida.

  • 5/24/2018 Inicio Micros 8bits

    30/195

    29

    La Figura 11muestra los circuitos equivalentes de un bit de RAM, un bit de un puerto de entrada y un

    bit de un puerto de salida tpico que tienen la capacidad de almacenar la lectura anterior. En una MCU real, estoscircuitos se repiten ocho veces para hacer una sola posicin de 8-bits de RAM, puerto de entrada o puerto desalida. El medio flip-flop (HFF), Figura 11, es transparente a la entrada. Cuando la seal de reloj est en estadoalto, los datos pasan libremente de la entrada D a la salida Q y 1. Cuando la entrada de reloj est en estado bajo,

    los datos se almacenan en las salidas Q y 1.

    Figura 11. Memoria y Circuitera de E/S

    Cuando la CPU guarda un valor en la direccin que corresponde el puerto de salida en la Figura 11(c),se activa la seal WRITE para almacenar el dato de la lnea del bus de datos en el medio flip-flop [4]. La salidade esta bascula, la cual tiene un buffer [5], aparece como un nivel digital en el terminal de salida. Cuando la CPUlee la direccin de este puerto de salida, se activa la seal READ para habilitar el multiplexor [6]. Estemultiplexor acopla los datos de salida del medio flip-flop hacia la lnea bus de datos.

    Estados internos y Registros de controlLos estados internos y los registros de control son simplemente posiciones de memoria. En lugar de

    detectar y controlar los pines externos, el estado y los registros de control detectan los niveles de seal lgicosinternos (indicadores).

    Mirando la Figura 11y comparando el bit de una RAM con el puerto de salida. La nica diferencia es

    que el bit de salida tiene un buffer para conectar el medio flip-flop a un pin externo. En el caso de un bit decontrol interno, la salida del buffer se conecta a alguna seal de control interno en lugar de a un pin externo. Unbit de estado interno est como un bit de puerto de entrada excepto que la seal que es detectada durante unalectura, es un seal interna en lugar de un pin externo.

  • 5/24/2018 Inicio Micros 8bits

    31/195

    30

    La familia de microcontroladores MC68HC05 incluyen pines de E/S paralelos. La direccin de cada

    terminal es programable por un software accesible por un bit de control. La Figura 12muestra la lgica para unpin de E/S bidireccional que incluye un latch en el puerto de salida y un bit de control de direccin de datos.

    Un pin del puerto se configura como una salida si su correspondiente bit DDR (registro de direccin de

    datos) se pone a 1. Un pin se configura como una entrada si su correspondiente bit DDR se pone a 0. Un reset opower on, ponen a 0 todos los bits DDR y configura todos los pines del puerto como entradas. Los bits DDRson capaces de ser escritos o ledos por el procesador.

    Figura 12. Puerto de E/S con Control de Direccin de Datos

    Mapa de memoriaPuesto que hay ms de mil posiciones de memoria en un sistema MCU, es importante saber de algunamanera por donde se ha pasado. Un mapa de memoria es una representacin grfica del espacio total de lamemoria de la MCU. La