bol i ii iii 2014

90
INTRODUCCIÓN A LOS MICROCONTROLADORES Y LABORATORIO Bolilla I INTRODUCCIÓN Sistemas de Numeración Características. Nomenclatura de cada sistema de numeración. Conversión entre sistemas. Binario a Decimal. Binario a Octal. Binario a Hexadecimal. Octal a Binario. Octal a Decimal. Octal a Hexadecimal. a Binario. Hexadecimal a Octal. Hexadecimal a Decimal. Decimal a Binario. Decimal a Octal. Decimal a Hexadecimal. Operaciones Lógico-Aritméticas. Operaciones Aritméticas Básicas. Suma. Resta. Multiplicación. División. Método de restas y sumas sucesivas. Operaciones Lógicas Básicas. AND. OR. EXOR. Sistemas de Numeración limitados en cifras. Binario limitado en 8, decimal y hexadecimal limitados en 2. Suma en sistemas limitados en cifras. Resta en sistemas limitados en cifras. Complemento al MVR. Ca2. Ca1. Comparación. Representación o Codificación. Números Naturales. Números Enteros. Código ASCII. Códigos BCD. Código Grey. Código Johnson. Codificación BCD. Suma. Resta. Números Enteros. Suma de números enteros. Definiciones y términos Nociones de Memorias Características Clasificación. Por uso de la memoria Por forma de acceso al registro deseado Por la forma de almacenamiento. Bolilla II MICROCONTROLADORES Descripción y Características Bloques Principales Características Generales. Funcionamiento básico Clasificación PIC16F628A Características y patillaje (Hoja de Datos) Características principales. Características Especiales. Patillaje. Diagrama interno. Tipos de fuente Clases de oscilador. Circuitos de Entrada o Salida. Circuitos de Entrada. Circuitos de Salida. Memoria interna. Mapa de Memoria Memoria de Programa Memoria de Datos. Memoria EEPROM Registros Internos. SFR del núcleo. SFR de periféricos Set de instrucciones del PIC16F628A Nomenclatura. Instrucciones orientadas a registros. Instrucciones orientadas a bit. 3

Upload: urogaitnas

Post on 13-Sep-2015

233 views

Category:

Documents


7 download

DESCRIPTION

electrico

TRANSCRIPT

  • INTRODUCCIN A LOS MICROCONTROLADORESY LABORATORIO

    Bolilla I INTRODUCCINSistemas de Numeracin

    Caractersticas. Nomenclatura de cada sistema de numeracin.

    Conversin entre sistemas. Binario a Decimal. Binario a Octal. Binario a Hexadecimal.Octal a Binario. Octal a Decimal. Octal a Hexadecimal. a Binario. Hexadecimal a Octal. Hexadecimal a Decimal.Decimal a Binario. Decimal a Octal. Decimal a Hexadecimal.

    Operaciones Lgico-Aritmticas.Operaciones Aritmticas Bsicas.

    Suma. Resta. Multiplicacin. Divisin. Mtodo de restas y sumas sucesivas. Operaciones Lgicas Bsicas.

    AND. OR. EXOR.Sistemas de Numeracin limitados en cifras.

    Binario limitado en 8, decimal y hexadecimal limitados en 2.Suma en sistemas limitados en cifras.Resta en sistemas limitados en cifras.

    Complemento al MVR. Ca2. Ca1.Comparacin.

    Representacin o Codificacin.Nmeros Naturales. Nmeros Enteros.Cdigo ASCII. Cdigos BCD. Cdigo Grey. Cdigo Johnson.

    Codificacin BCD.Suma. Resta.

    Nmeros Enteros. Suma de nmeros enteros.

    Definiciones y trminosNociones de Memorias

    CaractersticasClasificacin.

    Por uso de la memoriaPor forma de acceso al registro deseadoPor la forma de almacenamiento.

    Bolilla II MICROCONTROLADORESDescripcin y Caractersticas

    Bloques PrincipalesCaractersticas Generales.

    Funcionamiento bsicoClasificacin

    PIC16F628ACaractersticas y patillaje (Hoja de Datos)

    Caractersticas principales. Caractersticas Especiales. Patillaje.Diagrama interno. Tipos de fuenteClases de oscilador.Circuitos de Entrada o Salida. Circuitos de Entrada. Circuitos de Salida.Memoria interna.

    Mapa de MemoriaMemoria de ProgramaMemoria de Datos. Memoria EEPROMRegistros Internos.

    SFR del ncleo. SFR de perifricosSet de instrucciones del PIC16F628A

    Nomenclatura. Instrucciones orientadas a registros. Instrucciones orientadas a bit.

    3

  • Operacin con literales.Instrucciones de Control. SALTOS. Formas de cargarse el PC

    Bolilla III PROGRAMACINDiagrama de los Mdulo de prueba

    Banco de Led y de Swicht. Matriz de Led y de Swicht. Probador.

    Herramientas a utilizarEntorno de desarrollo MPLAB-IDE

    Conceptos y elementos bsicos de programacin. Diagrama de flujo

    Smbolos Grficos. Diseo de Diagrama de Flujo.

    Diagrama AlineadoDiagrama Sabana o Extendido

    Variable, Etiqueta, Puntero y Vector.Formas de Direccionar posiciones de memoria, registros o datos.

    Programa Fuente para el PIC16F628AProgramacin de Bajo Nivel.

    Formas de Direccionamiento del PIC16F628A.Sintaxis del Compilador.

    Comandos para el Compilador. Bits de Configuracin.Estructura del programa fuente.

    Asociacin Diagrama de Flujo Programa FuenteMovimientos y Asignaciones.

    Movimientos y asignaciones.Direccionamiento Indirecto por Registro.Operaciones.

    Saltos y Decisiones.Decisiones y manejo bit a bit. Lazos, bucle, loop o iteraciones. Matrices y series.

    Subrutinas.Direccionamiento Indexado.Contadores y temporizadores

    Bolilla IV USO BSICO DEL PICPerifricos.

    Puertos I/O. Deteccin de Pulso. TIMER0. Estructura. Funcionamiento y programacin.

    Interrupciones. Funcionamiento y Configuracin.Practicas con TMR0 como temporizado y contador, RB0 y RB4-RB7Modo Bajo Consumo

    Control de mecanismosMotor paso a paso de 4 o 3 hilos.Decodificador de posicin (Shift decoder o encoder)

    Control de Elementos Mediante Multiplexin en el Tiempo.Matriz de Elementos. Multiplexin de Matrices.

    Manejo de Matrices por Multiplexin en el TiempoMatriz de Salida. Display de Segmentos.Matriz de Entrada. Matriz de Swicht. Teclado Matricial.

    Bolilla V Otros PerifricosWachtDog Timer (Vigilante).

    Bloques Principales.Uso y Operacin.WDT y el modo SLEEP. Banderas TO, PD, POR y BOR. SLEEP y las interrupciones.

    4

  • Memoria EEPROM. Descripcin. Funcionamiento. Lectura-escritura desde softwareLectura-escritura desde el quemador.

    Bolilla VICOMUNICACIONES

    Introduccin a comunicacin de microprocesadores.Tipos de comunicacin

    Comunicacin Paralela. CaractersticasUnidireccional. Practica de envo y recepcin Unidireccional con aviso de dato valido (STB y ACK). Practica de envi y recepcinBi-direccional con Handshaking (Entrega en mano propia). Practica de envi y recepcin

    Comunicacin Serie. CaractersticasElementos (paridad, stop y arranque)Mtodos RZ, NRZ, Ancho de pulsoComunicacin maestro-esclavo y sin jerarquaProtocolos I2C, RS232 y RS485Memorias seriales.

    Bolilla VIICONVERSION A/D y D/A

    Principios. Mtodos. Practicas

    5

  • BOLILLA I: INTRODUCCIN

    Sistemas de Numeracin Se llama Sistema Numrico al conjunto ordenado de smbolos y a las reglas con que se combinan para representar las cantidades numericas.Cada sistema de numeracin se identifica segn la cantidad de simbolos diferentes que utiliza para su representacin. Este valorse llama base o raiz. Se usan en este texto varios sistemas de numeracin distintos. Los sistemas digitales usan el sistema binario, pero los operadores, programadores y usuarios estn acostumbrados a usar el sistema decimal. Porlo tanto se buscan sistemas numricos que sirvan de nexo entre el binario y el decimal.

    CaractersticasLa cantidad de smbolos diferentes en cada sistema define la base del mismo.Sistema decimal: base 10 (10 smbolos) : 0,1,2,3,4,5,6,7,8,9Sistema binario: base 2 (2 smbolos): 0,1Sistema octal: base 8 (8 smbolos) : 0,1,2,3,4,5,6,7,8Sistema hexadecimal: base 16 (16 smbolos) : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    Todos son ponderados, o sea que para cada smbolo su valor depende de su posicin relativa dentro del nmero. Por ejemplo 5271 en sistema decimal: el uno de ms a la derecha tiene orden cero, y el 5 de ms ala izquierda tiene orden 3. En este caso el smbolo de orden 0 representa una unidad, el smbolo de orden 1 representa 70 unidades, el smbolo de orden 2 representa 200 unidades y el smbolo de orden 3 representa 5000 unidades. Los sistemas con procesador usan el sistema de numeracin binario, pero se utilizan representaciones y conversiones a otros sistemas de numeracin. Para indicar en que sistema de numeracin se expresa cada nmero, se le coloca un subndice al final dependiendo del sistema al que pertenece: B binario, O octal, D decimal y H hexadecimal.La representacin ms comn es con el sistema hexadecimal, pues se necesitan menos smbolos para representar cantidades y adems de muy fcil conversin binario-hexadecimal y viceversa.

    Nomenclatura de cada sistema de numeracinEn los sistemas de numeracin ponderados cada cifra, segn su posicin relativa, tiene un orden, peso significativo o ponderacin dentro del nmero.En el sistema decimal se denomina:

    Unidades - orden 0Decenas - orden 1Centenas - orden 2Millares - orden 3Decimos - orden -1Centsimos - orden -2Milsimos - orden -3

    En el sistema hexadecimal, octal y binario no tienen una denominacin particular solo se le menciona el numero de orden de la posicin de cada cifra.En el sistema binario cada cifra se llama bit o binit y tiene su nombre segn el orden

    Bit 0 - orden 0Bit 1 - orden 1Bit 2 - orden 2Bit 3 - orden 3Bit 4 - orden 4

    Bit 5 - orden 5Bit 6 - orden 6Bit 7 - orden 7Bit 8 - orden 8Bit 9 - orden 9

    Un grupo de 4 bit ordenados se llama nible y de 8 bit se le llama byte. En un byte se le denomina nible alto al conjunto formado por Bit 4, Bit 5, Bit 6 y Bit 7 , y nible bajo al formado por Bit 0, Bit 1, Bit 2 y Bit 3.Al bit de menor orden se le llama LSB o bit menos significativo.Al bit de mayor orden se le llama MSB o bit ms significativo

    6

  • Conversiones entre sistemasEquivalencias entre los sistemas de numeracin

    Decimal Binario Hexa Octal Decimal Binario Hexa Octal

    00 0000 0 00 08 1000 8 1001 0001 1 01 09 1001 9 1102 0010 2 02 10 1010 A 1203 0011 3 03 11 1011 B 1304 0100 4 04 12 1100 C 1405 0101 5 05 13 1101 D 1506 0110 6 06 14 1110 E 1607 0111 7 07 15 1111 F 17

    Nmeros Binarios y su equivalencia decimal11010,1101B = 1 x 24 +1 x23 +0 x22 +1 x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4 11010,1101B = 26,8125DEste mtodo es llamado de cambio de base. Multiplicamos cada cifra del nmero del sistema origen (convertido a su equivalente en el sistema destino), por la base del sistema origen (expresada en el sistema destino) elevada a la potencia de su orden.

    Nmeros Binarios y su equivalente OctalMediante el cambio de base:110010,1101B 1x25 +1x24 +0x23 +0x22 +1x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4 110010,1101B = 62,64OUn mtodo ms practico es:110 010 , 110 101B = 62,65OSe toman grupos de 3 smbolos binarios a partir de la coma hacia la derecha y la izquierda, y se sustituye por el smbolo octal correspondiente. Nmeros Binarios y su equivalencia HexadecimalMediante el cambio de base es110010,1101B = 1x25 +1x24 +0x23 +0x22 +1x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4110010,1101B = 32,DHUn mtodo prctico parecido al sistema octal es:1101 1011 , 0110 1010B = DB,6AHSe toman grupos de cuatro smbolos binarios a partir de la coma hacia la derecha y la izquierda, y se sustituye por el smbolo hexadecimal correspondiente.

    Nmero Octal y su equivalencia Binaria365,72O = 011x100010 +110x100001 +101x100000 +111x1000-01 +010x1000-10365,72O = 11110101,111011BUn mtodo prctico para esta conversin es:365,724O = 011 110 101 , 111 010 100BSe sustituye cada smbolo octal por los 3 smbolos binarios equivalentes.Nmero Octal y su equivalencia Decimal365,724O = 3x82 +6x81 +5x80 +7x8-1 +2x8-2 +4x8-3 = 245,9140625DNumero Octal y su equivalencia Hexadecimal1257O = 1x83 +2x82 +5x81 +7x80 = 2AFHNumero Hexadecimal y su equivalencia Binaria

    7

  • F5,7CH = 1111x1000001 +0101x1000000 + 0111x10000-01 +1100x10000-10F5,7CH = 11110101,011111BUn mtodo practico es el siguiente:D9,E6H = 1101 1001 , 1110 0110BSe sustituye cada smbolo hexadecimal por los 4 smbolos binarios equivalentesNmeros Hexadecimales y su equivalencia OctalF36H = 17x202 +3x201 +6x200 = 7466ONmeros Hexadecimales y su equivalencia Decimal3AB,E5H = 3x162 +10x161 +11x160 +14x16-1 +5x16-2 = 939,894531D

    Conversin decimal-hexadecimal286,43D = 2xA2 +8xA1 +6xA0 +4xA-1 +3xA-2286,43D = 11E,6E14HUn mtodo ms prctico es:La parte entera 286286 / 16 = 17 y resto 14 >> E Smbolo de menor ponderacin17 / 16 = 1 y resto 1 >> 11 / 16 = 0 y resto 1 >> 1 Smbolo de mayor ponderacin

    286D = 1 1 E HLa parte fraccionaria 0,430,43 x 16 = 6 + 0,88 >> 6 Smbolo de mayor ponderacin0,88 x 16 = 14 + 0,08 >> E0,08 x 16 = 1 + 0,28 >> 10,28 x 16 = 4 + 0,48 >> 4 Smbolo de menor ponderacin

    0,43D = 0, 6 E 1 4 HConversin decimal-octal519,283D = 5x122 +1x121 +11x120 +2x12-1 +10x12-2 +3x12-3519,283D = 1007,2204OUn mtodo ms prctico es:La parte entera 519519 / 8 = 64 y resto 7 >> 7 Smbolo de menor peso significativo64 / 8 = 8 y resto 0 >> 0 8 / 8 = 1 y resto 0 >> 0 1 / 8 = 0 y resto 1 >> 1 Smbolo de mayor peso significativo 519D = 1 0 0 7 O La parte fraccionaria 0,2830,283 x 8 = 2 + 0,264 >> 2 Smbolo de mayor peso significativo0,264 x 8 = 2 + 0,112 >> 20,112 x 8 = 0 + 0,896 >> 00,896 x 8 = 7 + 0,168 >> 4 Smbolo de menor peso significativo 0,253D = 0, 2 2 0 4 O Conversin decimal-binario69,687D = 110x101001 +1001x101000 +110x1010-01 +1000x1010-10 +111x1010-1169,687D = 100010,1011BUn mtodo ms prctico es:Parte entera 6969 / 2 = 34 y resto 1 >> 1 Smbolo de orden 034 / 2 = 17 y resto 0 >> 017 / 2 = 8 y resto 1 >> 1 8 / 2 = 4 y resto 0 >> 0 4 / 2 = 2 y resto 0 >> 0 2 / 2 = 1 y resto 0 >> 0 1 / 2 = 0 y resto 1 >> 1 Smbolo de orden 6 69D = 1 0 0 0 1 0 1BParte fraccionaria 0.68750,6875 x 2 = 1 + 0,375 >> 1 Smbolo de orden -10,375 x 2 = 0 + 0,75 >> 00,75 x 2 = 1 + 0,5 >> 10,5 x 2 = 1 + 0,0 >> 1 Smbolo de orden -4 0,6875D= 0, 1 0 1 1B

    8

  • Operaciones Lgico-AritmticasOperaciones Aritmticas BsicasSuma

    Decimal 32 + 84 = 116Hexadecimal FB + A1 = 19CBinario 0110 + 1100 = 10010

    0 + 0 = 01 + 0 = 10 + 1 = 11 + 1 = 0 y hay Acarreo o Carry

    RestaDecimal 54 32 = 22

    835 647 = 188Hexadecimal AC 7B = 31

    D9E AF4 = 2AABinario 10011 01100 = 00111

    0 - 0 = 01 - 1 = 01 - 0 = 10 - 1 = 1 y pido 1 o Borrow

    MultiplicacinDecimal

    25 x 7 = 175 La multiplicacin se puede descomponer en sucesivas sumas del multiplicando. Tantas como indique el multiplicador.

    25 + 25 = 50 (2 veces)50 + 25 = 75 (3 veces) 75 + 25 = 100 (4 veces)100 + 25 = 125 (5 veces)125 + 25 = 150 (6 veces)150 + 25 = 175 (7 veces)

    Hexadecimal 17 7 x C =54 xBC 7 x B = 4D 114 FD 10E4

    Binario 110110 0 x 0 = 0 x 110 0 x 1 = 0 000000 1 x 0 = 0 110110 1 x 1 = 1 110110 101000100

    Aplicando sucesivas sumas 110110 (001 vez)+ 110110 (010 veces) 1101100 1101100+ 110110 (011 veces) 10100010+ 110110 (100 veces) 11011000+ 110110 (101 veces)100001110+ 110110 (110 veces)101000100

    En todo sistema de numeracin multiplicar por la base significa agregar un cero a la derecha del numero.

    9

  • DivisinLa divisin permite averiguar cuantas veces cabe el divisor en el dividendo. Calcula la proporcin entre el divisor y el dividendo.Se puede hacer la divisin clsica, sumar en divisor a si mismo hasta que llegue al valor del dividendo, o restar el divisor del dividendo hasta que el resto sea menor al dividendo.

    Decimal 245 /37 222 6023

    &Por el mtodo de sumas sucesivas

    37 (1 vez)+37 (2 veces) 74 Resultado menor que el dividendo+37 (3 veces)111 Resultado menor que el dividendo+37 (4 veces)148 Resultado menor que el dividendo+37 (5 veces)185 Resultado menor que el dividendo+37 (6 veces) 222 Resultado menor que el dividendo+37 (7 veces)259 Resultado mayor que el dividendo.

    El mayor nmero de sumas que su resultado no supere al dividendo es el cociente. La diferencia entre ese valor y el dividendo es el resto.

    Resto = 245 222 = 23

    Por el mtodo de sucesivas restas del divisor al dividendo. 245-37 (1 vez)208-37 (2 veces)171-37 (3 veces)134-37 (4 veces)097-37 (5 veces)060-37 (6 veces)023 Se debe detener cuando el resultado es menor que el divisor

    Este resultado es el resto, y el nmero de veces que se realizo la resta el cociente.

    Hexadecimal F2B9 /D4 D4 1251EB1A8 439 424 015 &

    4F5 /A3475 7080 &

    10

  • Por el mtodo de sumas sucesivas0A3 (1 vez)+A3 (2 veces)146 Resultado menor que el dividendo+A3 (3 veces)1E9 Resultado menor que el dividendo+A3 (4 veces)28C Resultado menor que el dividendo+A3 (5 veces)32F Resultado menor que el dividendo+A3 (6 veces)3D2 Resultado menor que el dividendo+A3 (7 veces)475 Resultado menor que el dividendo+A3 (8 veces)518 Se super el dividendo

    El nmero de veces que se suma el divisor sin superar el dividendo es el cociente.La diferencia de ese resultado con el dividendo da el resto

    Resto = 4F5 475 = 80

    Por el mtodo de restas sucesivas4F5-A3 (1 vez)452-A3 (2 veces)3AF-A3 (3 veces)30C-A3 (4 veces)269-A3 (5 veces)1C6-A3 (6 veces)123-A3 (7 veces)080

    El cociente es el nmero de veces que se resto el divisor del dividendo antes que el resultado de la resta sea menor que el divisor. Este ltimo resultado es el resto.

    Binario 11011 / 110 = 100 y de resto 11

    Mtodo Clsico11011 /110 110 1000001 000 0011 000 11 &

    Mtodo de Sumas sucesivas 110 01 +110 101100 Resultado menor que el dividendo +110 1110010 Resultado menor que el dividendo +110 10011000 Resultado menor que el dividendo+ 110 10111110 me pase

    11

  • El nmero de veces que se suma el divisor sin superar el dividendo es el cociente.La diferencia entre 11011 y 11000 es el resto.

    11011-11000

    resto = 11

    Mtodo de Restas Sucesivas 11011- 110 1 10101 Resultado mayor que el divisor- 110 10 1111 Resultado mayor que el divisor- 110 11 1001 Resultado mayor que el divisor- 110 100 11 Resultado menor que el divisor es el resto

    El cociente es el nmero de veces que se resto el divisor del dividendo antes que el resultado de la resta sea menor que el divisor.

    Operaciones Lgicas BsicasSolo son aplicables en el sistema binario. El smbolo => en una ecuacin indica operacin lgica.Operacin AND (&) o (*) o (.)

    0 & 0 => 00 & 1 => 01 & 0 => 01 & 1 => 1

    Para nmeros de varias cifras se realizan operaciones individuales entre bit de igual peso, sin generar ninguna clase de acarreo entre posiciones de diferente ponderacin.

    1110 1110 * 0110 0011 => 0110 0010

    Operacin OR (+)0 + 0 => 00 + 1 => 11 + 0 => 11 + 1 => 1

    Para nmeros de varias cifras se realizan operaciones individuales entre bit de igual peso, sin generar ninguna clase de acarreo entre posiciones de diferente ponderacin.

    1011 0110 + 0110 0111 => 1111 0111

    Operacin Exor (#)0 # 0 => 00 # 1 => 11 # 0 => 11 # 1 => 0

    1001 0111 # 0100 1011 => 1101 1100 Para nmeros de varias cifras se realizan operaciones individuales entre bit de igual peso.

    12

  • Sistemas de numeracin limitados en cifrasPor ser dispositivos fsicos los procesadores trabajan con un nmero finito de cifras. Lo que significa usar unsistema numrico limitado en cifras. Usan el sistema binario limitado a 4, 8, 12, 16, 32 bit o ms. En este texto se estudiara el sistema binario limitado a 8 cifras, el decimal y el hexa limitados en 2 cifras.Para operar con otros conjuntos numricos (enteros, reales, etc) se debe acordar una representacin con los 256 posibles valores disponibles.Adems del resultado, los procesadores, generan indicadores (banderas o flag) que nos dicen que clase de resultado dio. No dependen del valor en si, sino de las caractersticas del resultado. Se generan elegidos por convencin.En las operaciones aritmticas puede suceder que el sistema sea excedido por el resultado, por lo tanto es necesario avisar si sucede tal caso Si hubo desborde en la suma binaria CY=1Si no hubo desborde en la suma binaria CY=0

    Si pido uno prestado en la resta binaria BW=1Si no pido prestado uno en la resta binaria BW=0

    Si el resultado de la operacin lgico-matemtica es cero Z=1Si el resultado de la operacin lgico-matemtica no es cero Z=0

    Si el bit 7 del resultado de la operacin lgico-matemtica es igual a uno S=1Si el bit 7 del resultado de la operacin lgico-matemtica es igual a cero S=0

    Si hubo acarreo entre el bit 3 y el bit 4 AC=1 o DC=1Si no hubo acarreo entre el bit 3 y el bit 4 AC=0 o DC=0Se llama semiacarreo o acarreo digital.

    Si la sumatoria de los bit del resultado es cero P=0 (paridad par)Si la sumatoria de los bit del resultado es uno P=1 (paridad impar)

    Se define el mximo representable (MVR) como el valor mximo que se puede representar en un sistema limitado en cifras. Es el nmero donde cada cifra es el smbolo de mayor valor.Decimal de dos cifras 99Hexadecimal de dos cifras FFBinario de ocho cifras 1111 1111

    Las sumas cuyo resultado es mayor al MVR ponen a 1 la bandera (indicador o flag) CY.Como condicin de funcionamiento si al mximo representable le sumamos 1, dar como resultado 0 y el indicador CY valdr 1.Decimal 99 + 01 = 00 y CY=1Hexadecimal FF + 01 = 00 y CY=1Binario 1111 1111 + 0000 0001 = 0000 0000 y CY=1En estos casos decimos que hubo desborde o acarreo. Se observa tambin un semiacarreo AC, entre:

    las unidades y decenas en el sistema decimal la cifra de orden 0 ( x 160 )y la cifra de orden 1( x 161).el nible bajo y el alto en el sistema binario, o del bit 3 al bit 4

    Suma en Sistemas Limitados en CifrasDecimal

    23 + 45 = 68 y CY=0 AC=0 84 + 53 = 37 y CY=1 AC=0

    38 + 25 = 63 y CY=0 AC=184 + 47 = 31 y CY=1 AC=1

    Suma de mximos 99 + 99 = 98 y CY=1Hexadecimal

    C5 + 2A = EF y CY=0 AC=0B8 + 19 = D1 y CY=0 AC=172 + D8 = 4A y CY=1 AC=0

    13

  • 4F + B9 = 08 y CY=1 AC=1Suma de mximos FF + FF = FE y CY=1

    Binario 1101 1001 +0010 0001 1111 1010 y CY=0 AC=0

    1101 1011+0110 0001 0011 1100 y CY=1 AC=0

    1010 0111+0100 1010 1111 0001 y CY=0 AC=1

    1001 0111+1010 1001 0100 0000 y CY=1 AC=1

    Suma de mximo 1111 1111+1111 1111 1111 1110 y CY=1

    Resta en Sistemas Limitados en CifrasSe estudia el sistema decimal limitado a dos cifras y se extender el razonamiento al binario y al hexadecimal. Cuando el minuendo es menor que el sustraendo al final de la resta es necesario pedir una unidad a la cifra de la izquierda o un acarreo negativo, al cual llamamos borrow. El borrow se representa con BW. En la prctica activa la bandera CY.

    Decimal 43 - 25 = 18 y no hubo Borrow

    La resta es una operacin compleja de implementar. Lo importante es que la resta siempre reporte la diferencia entre los operandos. La resta se define:

    a - b = c a = b + cSe plantea desde otra forma equivalente

    a + (-b) = cSe debe buscar como representar el valor (-b)

    b - b = 00 Entonces

    b + (-b) = 00Observacin:

    En sistemas limitados en cifras sumar el valor 100 en forma terica es lo mismo que sumar 00 en forma practica. No podemos sumar 100, pero si podemos sumar 99 + 01.

    Considerando la observacin anteriorb + (-b) = 99 + 1

    Se deduce-b = 99 + 1 - b

    lo cual es -b = 99 - b + 1

    Se define el complemento a 10 de un valor x como la diferencia de x con el mximo representable ms uno.

    Ca10(x) = 99 - x + 1Tambin se define Ca10(x) como el valor que sumado a x da como resultado 0.Con el Ca10 podemos transformar la resta en una suma.

    a - b = a + Ca10(b)= cEjemplo:

    14

  • 43 - 25 = 18 y no hubo BorrowSe convierte en suma

    Ca10(25) = 99 25 + 01 = 75Queda

    43 + 75 = 18 y CY=1 Se observa que en esta suma hay un acarreo, indicando que en la resta original no hubo borrow. El borrow y el acarreo son de diferente valor. Ambos se representan con CYSe estudiara un caso donde el minuendo es menor que el sustraendo.

    43 - 57 = ?Y como

    Ca10(57) = 99 57 + 01 = 43 Queda

    43 + 43 = 86 y CY=0Este resultado seria el mismo que ejecutar la resta.

    43 53 = 86 y hubo borrowEl borrow significa que se pidi prestado uno. Por lo tanto el sustraendo es mayor que el minuendo.El carry = 0 indica que en la resta original hay borrow. Y nos indica que el minuendo es menor que el sustraendo.El valor del resultado a primera vista no representa la diferencia entre los dos valores. Pero se estudia comose relaciona con la diferencia.

    Ca10(-86) = 99 86 + 01 = 14Se comprueba

    57 43 = 14Se deduce que cuando la resta tiene borrow el resultado representa el Ca10 de la diferencia entre los operandos.

    BinarioEl mximo representable es en este caso 1111 1111.

    EjemploCalculo Ca10(1001 1011)

    El Ca10 del sistema binario corresponde al Ca2 del sistema decimal En la practica no se puede representar 1 0000 0000, as que se hace la resta con 1111 1111 y despus le sumamos 1. Cualquier valor ser menor que el MVR.

    1111 1111 0110 0100- 1001 1011 y +0000 0001 0110 0100 0110 0101

    EntoncesCa10(1001 1011) = 0110 0101

    Ejemplo de resta 1011 0010 -1001 0110 = ?

    Se hace el complemento del sustraendoCa10(1001 0110) = 1111 1111 - 1001 0110 + 0000 0001 = 0110 1010

    Se suman ambos valores 1011 0010 +0110 1010 0001 1100 y CY=1

    La resta no tiene borrow y su resultado es 00011100

    Otro ejemplo de resta 0111 0101 -1001 1000 = ?

    Se convierte en sumaCa10(1001 1000) = 1111 1111 1001 1000 + 0000 0001 Ca10(1001 1000) = 0110 1000

    15

  • 0111 0101+0110 1000 1101 1101 y CY=0

    La resta tiene borrow y su resultado es 11011101Al tener borrow se debe complementar el resultado para saber la diferencia.

    Ca10(1101 1101) = 1111 1111 1101 1101 + 0000 0001Ca10(1101 1101) = 0010 0011 Siendo esta la diferencia entre los operandos.

    HexadecimalMximo representable FFPor lo tanto el Ca10 del hexadecimal corresponde al Ca16 del decimal.Ejemplo

    Calculo Ca10(A2) FF 5D-A2 y +01 5D 5E

    Ejemplo de resta: E4 3F = ?

    Ca10(3F) = FF - 3F + 01 = C1

    E4+C1 A5 y CY=1

    La resta no tiene borrow y su resultado es A5

    Definicin de Complemento al MVR (Ca[MVR]) o (Ca[10-1])En un sistema con limite de cifras se define el complemento al MVR de x (diferente a

    opuesto y a inverso) como el valor que sumado a x da el mximo representable.x + Ca[10-1](x) = mximo representable

    Ejemplos:DecimalEn este sistema seria Ca9

    Ca9(12) = 99 - 12 = 87Ca9(83) = 99 - 83 = 16

    HexadecimalEn este sistema seria CaF

    CaF(A4) = FF - A4 = 5BCaF(15) = FF - 15 = EA

    BinarioEn este sistema seria Ca1

    Ca1(0111 0101) = 1111 1111 - 0111 0101 = 1000 1010Ca1(1001 1100) = 1111 1111 - 1001 1100 = 0110 0011

    Notas# Se deduce que

    Ca10(x) = Ca[10-1](x) + 1 # Se observa que

    Ca10[ Ca10(x) ]= xEjemplo decimal limitado a 2 cifras

    Ca10(73) = 99 73 + 1Ca10[Ca10(73)] = 99 ( 99 73 + 1 ) + 1 Ca10[Ca10(73)] = 99 99 + 73 1 + 1 Ca10[Ca10(73)] = 73

    # Se observa queCa[10-1]{Ca[10-1](x)} = x

    16

  • Ejemplo decimal limitado a 2 cifrasCa9(38) = 99 38 Ca9[Ca9(38)] = 99 ( 99 38 )Ca9[Ca9(38)] = 99 99 + 38 Ca9[Ca9(38)] = 38

    ComparacinEsta operacin lgica en si es una resta en la cual no interesa el resultado. Se recaban datos respecto al resultado y la relacin entre los operandos.Se puede saber cual de los operandos es mayor o si son iguales.La operacin de resta activa estos indicadores:

    BW Si no se pidio prestado uno en la resta vale 0Z Si el resultado es cero vale 1AC Si no hubo borrow entre los nibles bajos y los altos vale 1P Segn la paridad del resultado es su valorS Indicador de signo, copia el valor del MSB

    El anlisis de estos indicadores permite deducir como es la relacin de x con y o sea (x y )Si BW=0 entonces x >= y Si BW=1 entonces x < ySi Z=1 entonces x = ySi Z=0 entonces x ySi BW=1 o Z=1 entonces x y

    17

  • Representacin o CodificacinEn un sistema binario limitado a 8 cifras u 8 bit, o sea un byte, se pueden tener 256 valores diferentes.Se puede asociar cada valor a un nmero, letra o smbolo. Al intercambiar informacin con otros dispositivoses necesario que usen el mismo sistema de codificacin.Nmeros naturales (N):

    Si se asocia a los nmeros naturales podemos representar desde el 0 (0000 0000) hasta el 255 (1111 1111) inclusive en una correspondencia biunvoca

    Nmeros enteros (Z):Al representar nmeros enteros se debe prever como diferenciar a los negativos y los

    positivos, o sea como indicar el mdulo y el signo.Hay dos tcnicas posibles.

    I) Se usa el MSB como indicador del signo y los 7 bit restantes como el mdulo.bit 7 = 0 signo positivo y bit 7 = 1 signo negativo.1 111 1111 = -127 FF1 000 0001 = -1 810 000 0001 = 1 010 111 1111 = 127 7F0 000 0000 = 0 001 000 0000 = 0 80

    No hay relacin biunvoca por que el cero tiene dos representaciones posibles. Aunque es un cdigo viable no es 100% ptimo.

    II) Se usa del bit 0 al bit 6 para representar el modulo, pero a los nmeros negativos se le aplica el complemento a 2. As se representa

    0000 0000 = 0 000111 1111 = 127 7F

    Para hallar la representacin de -127:Ca2(0111 1111) = 1111 1111 0111 1111 + 0000 0001

    -127 = 1000 0001 81Se hace lo mismo para hallar la representacin de -1:

    Ca2(0000 0001) = 1111 1111 0000 0001 + 0000 0001-1 = 1111 1111 FF

    Para averiguar a cual valor representa el byte 1000 0000 se le aplica el Ca2Ca2(1000 0000) = 1111 1111 1000 0000 + 0000 0001 = 1000 0000

    1000 0000 = -128 80Permite representar 256 nmeros diferentes, desde -128 hasta 127 inclusive.

    Se pueden idear otras codificaciones multi-byte para nmeros fuera del rango [-128 , 127] o fraccionarios. Pero depende de cada usuario y sistema.

    Cdigo ASCII Estndar Americano derivado del Cdigo ISO que permite la transmisin de informacin entre

    maquinas. Con 256 combinaciones permite representar smbolos ortogrficos, gramaticales, especiales, dgitos y comandos de control del texto.Este sistema usa los 7 bit mas bajos para representar los smbolos, y el MSB ajusta la paridad del byte, as la misma es siempre par. Lo cual sirve para detector de errores.Hoy en da se le han realizado modificaciones generando as varias versiones de uso limitado.Codifica:

    Las letras del alfabeto inglesLos signos de la escritura inglesa ( ! ? ( ) . : , ; { } [ ] )Caracteres especiales ( \ / @ # $ % & = + - _ * < > ^ ~ | )Dgitos (0 1 2 3 4 5 6 7 8 9)Comandos especiales para control de textoCombinaciones sin usar para que cada usuario pueda agregar sus propios signos

    Cdigos BCDEs un sistema que representa cada smbolo decimal con un grupo de 4 bit. Hay varias formas de

    codificacin en BCD. El ms comn es donde cada dgito se convierte a su equivalente binario. Entonces cada numero decimal se convierte a una serie binaria donde cada 4 bit se representa un dgito.

    18

  • BCD 8421 es el ms comn0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001Se usan solo estas ttradas, lo cual facilita detectar errores de transmisinEn los sistemas de 8 bit el nible bajo representa las unidades y el nible alto las decenas.BCD 24210 0000 5 10111 0001 6 11002 0010 7 11013 0011 8 11104 0100 9 1111BCD exceso 30 0011 5 10001 0100 6 10012 0101 7 10103 0110 8 10114 0111 9 1100El que ningn nmero sea compuesto solo por ceros permite usar esa ttrada (0000) como smbolo de no informacin. Es un cdigo no ponderado, en el que por tanto no existe ninguna relacin de pesos. Su nombre proviene del mtodo de formacin del propio cdigo. Para obtener este nuevo cdigo, no tenemos ms que sumar 3 (11B) a la cifra equivalente en BCD natural.

    Cdigo Gray Este cdigo posee como caracterstica que el paso de un nmero al siguiente se efecta cambiando unsolo bit de cada vez. Tambin se le llama Cdigo espejo.0 0000 8 11001 0001 9 11012 0011 10 11113 0010 11 11104 0110 12 10105 0111 13 10116 0101 14 10017 0100 15 1000Cada bit en el Cdigo grey tiene su ponderacin segn su posicin y el numero a representar.La ponderacin de cada bit es . . . 255 127 63 31 15 7 3 1En binario natural la ponderacin es

    . . . 11111111 1111111 111111 11111 1111 111 11 1Se consideran los bits de valor 1 desde el MSB al LSB. El primero que vale uno tendr ponderacinpositiva. El siguiente que valga 1 tendr ponderacin negativa, el siguiente ponderacin positiva, el siguienteponderacin negativa y as sucesivamente con todos los bit que valen 1. Los bit de valor cero se ignoran. Por ejemplo:

    Cdigo grey 01101011 correspondeal decimal +0 +127 -63 +0 +15 +0 -3 +1 = 77al binario +0 +1111111 -111111 +0 +1111 +0 -11 +1 =1010011

    Para obtener la representacin de un nmero se procede del modo siguiente:1.- Se convierte el nmero a binario.2.- Al valor as obtenido, se hace una EX-OR con el mismo valor una vez movido un bit a la derecha

    (bit que se desprecia).Veamos un ejemplo: Obtener el cdigo Gray del decimal 14.

    1. 14D = 1110B2. 1110 EX_OR 0111 = 1001

    Luego el nmero 14 en cdigo Gray ser 1001Hay varias versiones del cdigo Gray.

    19

  • Cdigo JohnsonEs una secuencia donde se cambia un bit por vez y permite corregir errores de secuencia. Es muy usado en decodificadores de posicin. No representan ni se asocian a ningn valor, solo que despus de recibir unnmero ya sabemos cual recibiremos despus. Adems puede empezar con cualquier valor.Para el caso de 5 bit seria:

    11100110001000000000000010001100111011111111111110

    Esta rotacin de los bits se puede realizar hacia la derecha o la izquierda.

    Codificacin BCDLos sistemas que hacen de interfase entre los humanos y el micro son ms simples si el sistema de numeracin es en base 10. Se diseo un cdigo que representa con un byte nmeros en base 10 desde el 00 al 99. Se llama BCD, binario codificado decimal. Se puede representar un sistema decimal limitado a 2 cifras.El BCD 8421 permite realizar sumas y restas con menor dificultad. Por lo estndar que es hay gran cantidadde circuitos digitales diseados para manejar este sistema y los micros prevn su uso.

    Ejemplo 56D 0101 0110B 10D 0001 0000B

    Suma 22D + 57D = 79D CY=0 y AC=0 0010 0010B + 0101 0111B = 0111 1001B CY=0 y AC=0

    En este ejemplo ni las unidades ni las decenas superan el mayor smbolo.

    Otro caso58D + 27D = 85D CY=0 AC=10101 1000B + 0010 0111B = 0111 1111B CY=0 y AC=0

    Aqu el nible bajo tiene un valor ilegal. Es necesario ajustar el resultado binario para que sea acorde con el BCD. Se estudia el ajuste necesario llamado Ajuste DecimalSi se suma 09 y 01 el resultado debe se 10.

    09D 0000 1001B +01D +0000 0001B 10D 0000 1010B

    Se esperaba 0001 0000 como resultado pero dio 0000 1010. Se analiza la diferencia.

    0001 0000B -0000 1010B 0000 0110B

    Esta diferencia es constante para cualquier valor ilegal. Es el nmero de ttradas no usadas. Se usa para corregir los resultados incorrectos. Con solo sumar 0110 al nible bajo se ajusta el resultadoAplicamos la correccin a la operacin realizada.

    0111 1111B+0000 0110B 1000 0101B = 85D Resultado esperado

    CY=0AC=1

    20

  • Otro caso29D + 38D = 67D CY=0 y AC=10010 1001B + 0011 1000B = 0110 0001B CY=0 y AC=1

    Aqu ambos nibles son valores permitidos, pero hubo acarreo en el nible bajo. Esto indica que los nibles bajos suman ms de 15 entre si.Se espera 67 y resulto 61, la diferencia sigue siendo 6.

    0110 0001B +0000 0110B 0110 0111B = 67D Resultado esperado

    CY=0AC=0

    Otro caso62D + 53D = 15D CY=1 y AC=00110 0010B + 0101 0011B = 1011 0101B CY=0 y AC=0

    Se observa que el nible alto es una ttrada no valida. Tiene un valor mayor de 9. Se realiza un estudio similar al del nible bajo.Ajuste Decimal

    90D 1001 0000B +10D +0001 0000B 00D 1010 0000B

    Lo esperado es 0000 0000B y resulto 1010 0000B. Se analiza la diferencia. 0000 0000B -1010 0000B 0110 0000B

    Al sumar 0110 0000B se corrige la diferencia en el resultado 1011 0101B +0110 0000B 0001 0101B = 15D Resultado esperado

    CY=1AC=1

    Otro caso94D + 73D = 67D CY=1 y AC=01001 0100B + 0111 0011B = 0000 0111B CY=1 y AC=0

    Aqu ambos nibles son valores permitidos, pero hubo acarreo en el nible alto. Esto indica que los nibles altossuman ms de 15 entre si.Ajustamos el nible alto

    0000 0111B +0110 0000B 0110 0111B = 67D Resultado esperado

    CY=0AC=0

    Otro caso53D + 89D = 42D CY=1 y AC=1 0101 0011B + 1000 1001B = 1101 1100B CY=0 y AC=0

    Se observa que tanto el nible bajo como el alto tienen valores no permitidos. Se ajustan ambos nibles al mismo tiempo.

    1101 1100B+0110 0110B 0100 0010B = 42D Resultado esperado.

    CY=1AC=1

    21

  • Otro caso98D + 89D = 87D CY=1 AC=11001 1000B + 1000 1001B = 0010 0001B CY=1 AC=1

    Ambos nibles tienen valores permitidos pero la existencia de acarreo y semi-acarreo indica la necesidad de ajustar ambos. Se ajustan ambos al mismo tiempo.

    0010 0001B+0110 0110B 1000 0111B = 87D Resultado esperado.

    CY=0AC=0

    La mayora de los micros tienen una instruccin de ajuste decimal, que ejecutada despus de realizar una suma con nmeros binarios verifica el resultado y ajusta si es necesario.

    RestaEjemplo de resta

    75D - 34D = 41D BW=0 y AC=00111 0101B - 0011 0100B = ?

    Se convierte la resta en suma mediante el complemento a 10 del sustraendo. Se hace Ca10 por que el nmero binario representa un nmero decimal.Ca10(34) = 99 - 34 + 1 = 66DCa10(0011 0100) = 1001 1001 - 0011 0100 + 0000 0001 = 0110 0110B

    01110101B + 01100110B 11011011B

    CY=1AC=0

    Como todo resultado de suma BCD es necesario realizar el ajuste decimal.

    1101 1011B+0110 0110B 0100 0001B = 41D Resultado esperado

    CY=1 AC=1El CY indica que no hubo borrow.

    Otro caso84D - 36D = 48D BW=0 y AC=11000 0100B - 0011 0110B = ?

    Se convierte la resta en suma con el Ca9Ca10(0011 0110) = 1001 1001 - 0011 0110 + 0000 0001 = 0110 0100B

    1000 0100B +0110 0100B 1110 1000B

    CY=0AC=0

    Se realiza el ajuste decimal al resultado. 1110 1000B +0110 0000B 0100 1000B = 48D Resultado esperado.

    CY=1AC=0

    El valor del CY indica que no hubo borrow.

    Otro caso28D - 43D = 85D BW=1 y AC=00010 1000B - 0100 0011B = ?

    Se convierte la resta en suma con el Ca9

    22

  • Ca10(0100 0011) = 1001 1001 - 0100 0011 + 0000 0001 = 0101 0111B

    0010 1000B+0101 0111B 0111 1111B

    CY=0AC=0

    Se realiza el ajuste decimal del resultado. 0111 1111B+0000 0110B 1000 0101B =85D Resultado esperado

    CY=0AC=1

    El valor del CY indica que hubo borrow. La diferencia se calcula al hacer el complemento a 10 del resultado.Ca10(1000 0101) = 1001 1001 - 1000 0101 + 0000 0001 = 0001 0101La diferencia es 0001 0101B o 15D.

    Otro caso34D - 58D = 76D BW=1 y AC=10011 0100B - 0101 1000B = ?

    Se convierte la resta en suma con el Ca10.Ca10(0101 1000) = 1001 1001 - 0101 1000 + 0000 0001 = 0100 0010B

    0011 0100B +0100 0010B 0111 0110B

    CY=0AC=0

    No es necesario realizar el ajuste decimal. 0111 0110B = 76D Resultado esperado.

    El CY indica que hubo borrow. Se calcula la diferencia mediante el complemento a 10 del resultado.Ca10(0111 0110) = 1001 1001 0111 0110 + 0000 0001 = 0010 0100La diferencia es 0010 0100B o 24D.

    Se deducen una serie de pasos para realizar la resta entre nmeros binarios con codificacin decimal o sea BCD 8421.

    1) Realizar el Complemento a 10 del sustraendo.99D - sustraendo + 01D 1001 1001B - sustraendo + 0000 0001B

    2) Sumar el minuendo y el Ca10 del sustraendo.

    3) Realizar ajuste decimal del resultado.

    4) Interpretar el resultado. Si el CY=1 el resultado es la diferencia entre el minuendo y el sustraendo, siendo el ltimo menor

    que el primero Si el CY=0 el resultado es el Ca10 de la diferencia entre el minuendo y el sustraendo, siendo el

    ltimo mayor que el primero.

    Nmeros EnterosPara representar nmeros enteros se debe prever como diferenciar a los negativos de los positivos, o sea como indicar el modulo y el signo. La mejor forma es mediante el Ca2Su usa del bit 0 al bit 6 para representar el mdulo, pero a los nmeros negativos se le aplica el complemento a 2. As se representan:

    0000 0000B = 0D0111 1111B = 127D1000 0000B = -128D1111 1111B = -1D

    23

  • Se representan 256 nmeros diferentes, desde -128 hasta 127 inclusive.

    Se pueden idear otras codificaciones multibyte para nmeros fuera del rango [-128 , 127] o fraccionarios. Pero depende de cada usuario y sistema.

    Suma de nmeros enteros El acarreo en la suma se ve en el bit 7, o sea detectarse en el bit de signo o en la bandera S.a) Los dos positivos.

    +22D 0001 0110B+53D 0011 0101B+75D 0100 1011B

    S=0 CY=0 AC=0En este ejemplo el resultado es menor a +127 por lo tanto es correcto

    +89D 0101 1001B +45D 0010 1101B+134D 1000 0110B

    S=1 CY=0 AC=1El resultado es superior a +127 por lo tanto se puso a uno el bit7 y parece que el resultado es negativo. El acarreo se muestra en el bit 7.

    b) Los dos negativos-12D Ca2(0000 1100B) = 1111 0100B -57D Ca2(0011 1001B) = 1100 0111B-69D 1011 1011B

    S=1 CY=1 AC=0Ca2(1011 1011B) = 0100 0101B = 69D Resultado esperado

    El resultado es igual o mayor que -128 por lo que es correcto

    -112D Ca2(0111 0000B) = 1001 0000B- 54D Ca2(0011 0110B) = 1100 1010B-166D 0101 1010B

    S=0 CY=1 AC=0El resultado es menor a -128 por eso S=0 aunque sea negativo.

    c) Sumandos de diferente signo

    Positivo de modulo mayor111D 0110 1111B-77D Ca2(0100 1101B) = 1011 0011B 34D 0010 0010B

    S=0 CY=1 AC=0El resultado coincide con lo esperado

    Negativo de modulo mayor 54D 0011 0110B-93D Ca2(0101 1101B) = 1010 0011B-39D 1101 1001B

    S=1 CY=0 AC=0Ca2(1101 1001B) = 0010 0111B = 39D Resultado esperado.Se debe ser cuidadoso al estudiar el resultado de la suma de enteros. Se debe considerar el signo de los operandos y del resultado.

    24

  • Definiciones Y TrminosBIT- Unidad de informacin. BINIT- Abreviacin de Dgito Binario, pero por deformacin se llama BIT. Cada uno de los smbolos del sistema de numeracin binario.PALABRA- Conjunto de bits ordenados. Tambin se le identifica con grupo de 8 bits.BYTE- Conjunto ordenados de 8bit. (Cada bit tiene su ponderacin)MSB- Most Significative Bit - bit ms significativo, de mayor peso o ponderacin.NIBLE- Conjunto ordenado de 4 bit. Dos nibles forman un byte.DATO- Es una porcin de informacin, se usa como sinnimo de palabra. Tambin se le llama a los bytes no usados para comandar al micro.PROCESADOR- Dispositivo fsico. Conjunto de elementos capaz de ejecutar un programa.PROCESO- Secuencia de eventos para obtener un resultado o cumplir un objetivo.P MICROPROCESADOR- Procesador implementado en un solo chip o circuito integrado.MICROCONTROLADOR- Conjunto de los elementos de un sistema (procesador, RAM, ROM y perifricos) integrados en un solo chip.UCP, CPU- Unidad de Proceso Central o Unidad de Control de Proceso OPERACIN MATEMTICA- Son operaciones que cada bit afecta al bit de orden superior. Son la suma, la resta, la multiplicacin y la divisin. Solo los micros ms potentes y dedicados a clculos tienen la multiplicacin. La divisin solo algunos muy escasos. OPERACIN LGICA- Son operaciones donde cada bit no afecta a otro de mayor peso, como EX-OR, NAND, SET, RESET, AND, NOT, OR, etc.

    DECISIN- Es optar entre dos acciones a realizar dependiendo del resultado de alguna operacin lgica-matemtica.BUS- Conjunto de lneas fsicas que transportan bits asociados entre s. BUS DE DATOS- Conjunto de lneas fsicas que llevan datos. Cada una de ellas se encarga de transportar un bit de la palabra.BUS DE DIRECCIONES- Similar al anterior pero cada lnea transporta un bit de la direccin a utilizar.BUS DE CONTROL- Grupo de lneas fsicas que transportan a las seales para coordinar acciones dentro yfuera del micro. Es mas difcil distinguirlas por que no siempre corren paralelas entre si.REGISTRO- Dispositivo fsico para almacenar un dato, palabra o byte.MEMORIA- Dispositivo fsico para almacenar informacin, conformada por registros.BUFFER- Dispositivo fsico que acopla dispositivos entre si. Permite amplificar en corriente las seales entre elementos. POSICIN DE MEMORIA- Los registros dentro de la memoria estn ordenados, por lo cual cada registro tiene su posicin de memoria y esta se identifica con una direccin de memoria.DIRECCIN DE MEMORIA- Dato numrico que permite definir un registro o posicin de memoria dentro de la misma.

    RAM- Porcin de la memoria del sistema que puede ser escrita o leda. Generalmente alberga datos.ROM- Porcin de la memoria del sistema que solo puede ser leda. En general alberga comandos.

    25

    B7 B6 B5 B4 B3 B2 B1 B0ROTACION ALA IZQUIERDA

    B7 B6 B5 B4 B3 B2 B1 B0ROTACION A LA DERECHA

    B7 B6 B5 B4 B3 B2 B1 B0INTERCAMBIO DE NIBLESSWAP

  • MAPA DE MEMORIA- Esquema o representacin de todas las posiciones de memoria que visualiza las clases de datos y su uso en el sistema.

    BLOQUE- Representacin grfica de cualquier dispositivo o secuencia como un rectngulo con una entrada y una salida, identificado con la ecuacin que relaciona estas entre si.

    INSTRUCCIONES- Palabras que al ser ledas por el P desde la memoria le indican acciones a realizar. Cada P tiene su propio paquete de instrucciones.MNEMNICOS- Nombre de las instrucciones usadas por el programador en la escritura el programa fuenteCDIGO OPERATIVO- Valor numrico de la instruccin. A este valor numrico se le llama tambin Cdigo Mquina.PROGRAMA- Secuencia de instrucciones u rdenes para conseguir un objetivo o llegar a un resultado.SUBPROGRAMA- Pequeo programa, parte de otro ms extenso o principal.RUTINA- Similar al programa pero donde se acenta la idea de ser cclico o repetitivo.SUBRUTINA- Rutina o subprograma parte de otro, el cual puede ser invocado a ejecutarse varias veces. Simplifica el programa principal y puede ser representado como un bloque.SALTO O JUMP- El micro ejecuta las instrucciones una tras otra, buscndola en posiciones de memoria consecutivas. El salto se produce cuando se busca la siguiente instruccin en una posicin de memoria no consecutiva con la ejecutada anteriormente.BIFURCACIN- Rama que se abre del camino principal, solo desde una decisin puede surgir.LAZO, LOOP O BUCLE- Seccin de un programa que se ejecuta en forma ciclica.ARRAY o MATRIZ- Conjunto de datos los cuales tienen al menos una caracterstica en comn. Conjunto dedatos ordenados en 1 o ms dimensiones:

    1 dimensin Xa (a a los N) Se ordenan en base a un parmetro

    2 dimensiones Xa,b (a y b a los N) Se ordenan en base a 2 parmetros.

    3 dimensiones Xa,b,c (a, b y c a los N) Se ordenan en base a 3 parmetros.

    Permite tratar los datos como un objeto. Sin importar el agrupamiento que se haga de los datos estos siempre estarn colocados en posiciones sucesivas de memoria.

    26

  • SERIE- Grupo de datos almacenados en posiciones de memoria consecutivas. Es una matriz unidimensional. Se necesita definir la direccin de memoria del inicio de la serie y su extensin. Ejemplo inicio en nnmm y K elementos de longitud.

    TABLA- Grupo de datos almacenadosconsecutivamente. Se define indicando la posicin delprimer (Pi)y ultimo dato (Pf).

    VARIABLE- Elemento de programacin que puede modificar su valor. Fsicamentese debe asociar en una posicin de memoria RAMETIQUETA- Elemento de programacin que permite sustituir un valor numrico porun texto o una cadena de caracteres, lo cual ayuda a ordenar el programa.PUNTERO o VECTOR- Elemento de programacin (variable) que permitedireccionar un dato. Registro que almacena la direccin del inicio de una matriz, oalmacena la direccin del dato a ser tratado dentro de la matriz. Dentro de un lazocon solo actualizar su valor se obtiene otro elemento de la serie.VARIABLE DE LAZO- Variable utilizada en un lazo, la cual es chequeada para determinar si se continua repitiendo o no. Cuando alcanza el valor predeterminado se sale del lazo.PERIFRICO- Dispositivo fsico que se comunica con el uP, realiza acciones que liberan a este de hacerlas.Permite que el uP tome o entregue datos al exterior.PUERTOS- Datos de direccin para la seleccin de perifricos. Perifrico especifico para intercambiar datoscon el universo.DIAGRAMA DE FLUJO- Representacin grfica de cmo la informacin se modifica en un programa. Representacin grfica de un proceso, se muestran los pasos en bloques tales operaciones, decisiones, bifurcaciones y saltos.INTERRUPCIN- Seal del exterior que indica al procesador un eventoLSB- Low Significative Bit - bit menos significativo, de menor peso o ponderacin.LIFO- (Last IN, First OUT). Estructura donde el ultimo dato en entrar es el ultimo en salir. FIFO- (First IN, First OUT). Estructura donde el primer dato en entrar es el primero en salir. PILA- Estructura de datos de organizacin LIFO. Caracterizada por ser de facil acceso, se utiliza para almacenamiento temporal de los mismos. Puede implementarse en la memoria RAM o en un banco de registros dedicados a ese fin.COLA- structura de datos con organizacion FIFO. Caracterizada por ser de fcil acceso, se usa para intercambio de datos entre dispositivos, estructuras, subrutinas, etc. PIN, PATILLA, PATA o TERMINAL- Conexin fsica del dispositivo con el resto del circuito. Puede unirse por soldadura o por contacto a presin.

    27

  • Nociones de Memorias

    Caractersticas Son dispositivos electrnicos destinados a conservarinformacin. Estn formadas por elementos o clulas ordenadasllamados registros y un bloque de control. En cada registro seguarda un dato. Este dato puede se de uno o varios bit delongitud. La memoria tiene lneas de entrada y/o salida de datos(bus de datos) comunes a todos los registros y otras lneasdedicadas a seleccionar el registro con cual trabajar (bus dedirecciones). Las lneas que controlan el proceso de lectura o escritura forman el bus de control.El bus de control se compone por el indicador de operacin a realizar (lectura o escritura), el reloj maestro para sincronizar la operacin y alguna seal extra para coordinar el intercambio de datos en el momento que estos son estables y validos.Los parmetros ms importantes de una memoria son la capacidad de almacenamiento de informacin, eltiempo de acceso al dato seleccionado y el nmero de bit de cada dato.El nmero de bit de cada dato es la longitud de la palabra que almacena la memoria. Este valor multiplicado por el nmero de registros interna nos dice la capacidad de almacenamiento de la memoria

    2048 registros de 8 bit cada uno, es una memoria de 16 Kbit o 2Kbyte.16384 registros de 1 bit cada uno, es una memoria de 16Kbit.

    El tiempo de acceso se mide desde que se presentan los valores en los pines de control y hasta el momentoen que el dato es valido y estable.

    Se clasifican segnUso de la memoriaMtodo de acceder al registro deseadoMtodo fsico de almacenamiento de informacin

    ClasificacinPor el uso de la memoria

    Memoria de Programa ROM: Se almacena en ella las instrucciones del programa a ejecutar. Algunos micros tienen esta memoria de mayor nmero de registros y de bit que la memoria de datos. No pierde su informacin aunque pierda alimentacin. Se graba antes de poner a funcionar el sistema

    Memoria de Datos RAM: Se usan para almacenar informacin que varia a lo largo del programa. Tiene igual nmero de bit que la ALU del micro. Tiene que tener suficiente velocidad de acceso como para no entorpecer al procesador.Por la forma de acceder al registro deseado

    Acceso Aleatorio (RAM) o Paralelo: Permite seleccionar el registro con el cual trabajar escribiendoel valor que identifica al registro en los pines del bus de direcciones. Si cada registro esta en un estante de un armario, se trata solo de indicar la fila y la columna donde se ubica el cajn deseado. En este formato la velocidad de acceso es la misma para todos los registros, y su control es muy sencillo. Al necesitar un pin por cada linea de cada bus, cuanto mayor es la capacidad de la memoria mayor es el tamao del chip. El procedimiento puede diferir un poco de un modelo a otro pero bsicamente es este.

    En el bus de direcciones se selecciona la direccin de la posicin de memoria del registro a operar. Con el bus de control se indica que operacin se va ejecutar y en que momento hacerlo. El dato pasa por el bus dedatos hacia o desde la memoria. Pueden ser tanto internas como externas al chip del microcontrolador.El CB tiene seales bsicas como selector de lectura (RD) , selector de escritura (WR), habilitador de salidas (OE) , selector de chip (CS), etc.

    Acceso Serial: Para acceder a un registro se necesita acceder antes a los anteriores. O sea para que se lea un dato es necesario leer todos los bits de los datos previos. La velocidad de acceso varia segn la posicin del registro. Exteriormente tiene pocas lneas de control. En forma serial se indican los comandos para indicarle a la memoria que operacin se le aplicada, el clock maestro (CK) marca el tiempo

    28

  • de cada bit. Cada palabra entra o sale bit por bit por la misma lnea (D). Se cuentan los bits para saber cuando comienza y termina cada palabra, y as saber en que nmero de registro se est leyendo. Depende de la memoria en particular si se deben guarda los datos ledos en algn otro sitio. Las lineas S0 y S1 habilitan el funcionamiento del chip. Bsicamente tienen una memoria RAM interna y una interfase de comunicacin serial. Su control es complejo y requieren de un procesador o similar para manejarlas. Se usan como memorias externas al chip del microcontrolador, debido a que necesita dedicar pocos pines del mismo para controlarla.

    Mtodo fsico de almacenamientoROM Memorias que no pierden los datos por falta de alimentacin. Originalmente se grababan los datos durante el proceso de fabricacin de la memoria.

    PROM Se graban una vez y despus no se pueden alterar. En una matriz de fusibles, grabarla es quemar los fusibles deseados.

    UV-EPROM Se graban elctricamente los datos, se puede borrar con luz ultravioleta y volver a grabar. Se borra toda la memoria junta a travs de una ventana en el chip.

    EEPROM Se graban y borran elctricamente. Antes de re-escribirlas hay que borrarlas.FLASH-EPROM Se graban elctricamente y se pueden re-escribir sin necesidad de borrarlas

    previamente. Las tensiones de escritura y borrado de memoria han bajado con el avance de la tecnologa. Las primeras necesitaban pulsos de 26 volts, hoy en da la tecnologa permite que se graben con 3,3 volts y se sigue bajando. Consume menos y es ms pequea que las EPROM, adems de programable en el circuito. Es ms rpida, de mayor densidad y tolera ms ciclos de escritura/borrado que la EEPROM.Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados "en circuito", es decir, sin tener que sacar el circuito integrado de la tarjeta. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.

    OTP-ROM Son memorias que se pueden grabar una sola vez. Son PROM modernas, tiene su fuerteen el bajo precio para la fabricacin en grandes cantidades. RAM Memorias que pierden los datos almacenados si se pierde la alimentacin.

    ESTATICAS Despus de escritas si no desaparece la alimentacin conservan el dato. Los registros estn formados por FF o cerrojos.

    DINAMICAS Es necesario ir re-escribiendo o refrescando los datos guardados para que no se le borren. La informacin se guarda en condensadores, los cuales pierden carga con el tiempo. Algunos modelos incluyen circuitera para refrescar los datos si no se le est utilizando. Su ventaja radica en el poco espacio que ocupan, permitiendo grandes densidades.

    29

  • BOLILLA II: MICROCONTROLADORESDescripcin y Caractersticas

    Son sistemas que contienen un procesador y demas dispositivos neceasarios para su funcionamiento. Los procesadores son dispositivos electrnicos digitales sincrnicos programables que para funcionar necesitan,adems de alimentacin y seales externas, un programa, el cual contiene las instrucciones o comandos a seguir.

    Bloques PrincipalesEn su descripcin se observa que son una evolucin de los circuitos digitales combinacionales y secuenciales. La gran ventaja de los procesadores frente a los automatas y maquinas de estado es que la orden o seales de seleccion de secuencia se codifican en la memoria ROM del sistema. Lee el comando desde la memoria y determina cual secuencia debe ejecutar.El ncleo interno es el procesador. El externo delimita al controlador. Se lo define como micro cuando esta integrado todo en un solo chip.Sus partes principales son:

    Bloque de control- Es la seccion mas importante del sistema. En la mayoria de los diagramas de bloques de los procesadores no se dibuja. Pero cuanto ms complejo es, ms funciones tiene el dispositivo. El bloque de control es un generador de secuencias, (automata programable), la misma es seleccionada segunvarias seales o bit. Las diferentes secuencias que puede generar son la microprogramacion del procesador, determinadas durante el diseo del procesador. A todos los elementos del sistema les llegan seales de control. ALU- Unidad encargada de todas las operaciones lgicas-matemticas. Es un circuito combinacional sin capacidad de almacenamiento. Consta de dos entradas de operandos, varias lineas de seleccion de funciony dos salida, una para el resultado y otra de indicadores de la clase de resultado. Para poder operar, a la ALU se le asocia Acumulador, Banderines y lneas de control. Segn la cantidad de bit de las entradas se clasifica al procesador.Memoria de programa Dispositivo donde se almacenan ordenadas las instrucciones a seguir. Es una memoria ROMMemoria de trabajo Dispositivo donde se puede escribir y leer para guardar cualquier dato variable durantela ejecucin del programa. Es una memoria RAM.Registros internos Dispositivos para guardar informacin o datos importantes, de mayor frecuencia de uso o configuracin de funcionamiento. Pueden formar parte o no del mapa de memoria RAM.

    29

  • Acumulador Registro que acta en conjunto con la ALU. Le suministra uno de los operandos o es el destino de su resultado. La mayora de las instrucciones lo usan como destino o fuente de datos.Banderines son indicadores sobre la clase de resultado. Se almacenan en el registro de estado del programa PSW. Tambin puede guardar informacin sobre el estado del programa.Bus de Datos -DB. Lneas fsicas que interconectan todos los elementos que manejan datos en el sistema. Es una forma optima de poder interconectar varios dispositivos que manejen datos. Se multiplexa en el tiempo quien usa este bus (Registros Internos, ALU, Memoria, Perifericos, etc)) Bus de Direcciones -AB. Lneas fsicas que llevan la informacin para seleccionar el registro de la memoria con que se va a trabajar o cual puerto perifrico activarBus de Control -CB. Lneas fsicas que llevan las seales que se encargan de comandar el funcionamientode cada elemento. Aunque cada bit del bus tiene diferente significado o destino, igual comparten la finalidad de controlar.Registro de Instrucciones En el se guarda la instruccin mientras se la interpreta e implementa la secuencia de acciones a realizar.Contador de Programa Registro que guarda la posicin de la prxima instruccin a ejecutar. Tiene la capacidad de incrementar, decrementar o cargarse con un valor particular.Registro de Direcciones Registro donde se guarda la informacin sobre la posicin de memoria o periferico con la cual se esta trabajando. De l nace el AB.Perifricos Dispositivos que comunican el sistema con el mundo exterior.

    Caractersticas GeneralesLos microcontroladores son dispositivos electrnicos digitales sincrnicos programables que para funcionar adems de alimentacin y seales de entrada necesitan un programa para ejecutar.. Son electrnicos por la tecnologa de aplicacin. Son digitales por que manejan seales discretas, es decir con niveles cuantificados o pre-establecidos. En este caso solo dos posible (1 o 0). Por lo tanto, la escritura de una salida o lectura de una entrada es solo para alguno de estos valores. Son sincrnicos debido a que todas sus acciones estn acompasadas por una oscilacin de referencia o seal de RELOJ (CK). Son programables pues su estado depende de las seales de entrada y su estado previo.La gran ventaja de los procesadores frente a los automatas y maquinas de estado es que la orden o sealesde seleccion de secuencia se codifican en la memoria ROM del sistema, a este conjunto de ordenes se les llama programa. Al programa lo ejecutan una instruccin por vez, pero algunos procesan ms de una al mismo tiempo. En tal caso superponen la ejecucin de una instruccin, con la bsqueda y almacenaje en el Registro de Instrucciones de la siguiente (pipeline).Pueden verificar una condicin y determinar entre dos posibles respuestas. Ah es donde se presenta la aparente inteligencia de un micro. Trabajan con baja tensin y corriente, por eso la necesidad de perifricos y drivers para interactuar con el universo.

    Los micros manejan mltiples seales de las cuales las ms comunes son:OSC. Seal de oscilacin generada dentro o fuera del sistema para funcionamiento del mismo. CLK, CK o reloj. Sincroniza todas las acciones de los dispositivos internos o externos al chip. Interrupcin. Seal externa al procesador que avisa de la ocurrencia de un evento. Solicita al micro ejecutar una subrutina particular en respuesta. No todos los micros pueden manejar interrupciones.DMA. Seal que le solicita al micro dejar en alta impedancia los buses, para ser utilizados por otro elemento, modulo o chip.RST o reset. Seal que indica al micro inicializarse. Reinicia sus contadores y comienza el programa desde el principio nuevamente. Puede o no borrar el contenido de los registros internos.TXD y RXD. Son seales de transmisin serial: TXD de envo y RXD de recepcin de datos.

    Ejemplos de seales de OSC y CLK: Para el 8080 se necesita dos seales de osciladorde diferente en fase y ciclo de trabajo.

    30

  • Para el 8088 se necesita una seal CLK con un ciclo detrabajo del 33%

    Para el 8085 se utiliza una seal del 50% de ciclode trabajo en OSC y entrega un CLK de la mitadde frecuencia

    Para el PIC16F628A se necesita una seal del50% de ciclo de trabajo y entrega un CLK de un cuarto de frecuencia.

    La seal interna de reloj del procesador es siempre de mayor frecuencia que la suministrada al sistema. Esto permite al procesador que en cada ciclo mquina (periodo de CLK) se lleve a cabo varias acciones, mientras que el sistema realiza una sola. El micro puede ser considerado un complejo cmulo de flipflop y puertas lgicas.

    Funcionamiento Bsico Cuando es energizado se debe mantener en estado de reset hasta que la tensin de funcionamiento sea alcanzada. El reset puede ser generado con circuitos externos o internos al chip. Cuando sale de reset el procesador lee la posicin de memoria ROM llamada Vector de Inicio. En esta posicin se encuentra la primera instruccin a ejecutar. Para esto carga el PC con el valor del vector de reset, copia el PC en el Registro de direcciones, que lo vuelca al AB. Habilita el DB entre la memoria ROM y el registro de instrucciones (IR). Envia la seal de lectura a la ROM y de escritura en el IR. Esta accin se llama FETCH. Una vez hecho esto incrementa en uno el PC, apuntando este a donde se encuentra la siguiente instruccin a ejecutar. El bloque de control la decodifica y ejecuta los pasos indicados por esa instruccin. Genera la secuencia indicada. Esta accin se llama EJECUCION. La bsqueda (fetch) y ejecucin de una instruccin se llama ciclo de instruccin. El ciclo de instruccion puede variar de una instruccion a otra, si la instruccion ocupa ms de un aposicion de ROM se realizan todos los FETCH necesarios para cargarla completamente. La seal de reloj CK se genera a partir de la seal OSC del oscilador del sistema. Algunos micros necesitan dos seales de oscilador externas y otros las generan dentro del chip (oscilador interno). La duracin de un ciclo de instruccin depende de la clase de instruccin a ejecutar y del micro en particular. El bloque de control se une a todos los elementos del sistema mediante el bus de control. Dirige todas las acciones de los componentes del micro. Tambin dirige las acciones de los dispositivos del sistema. Por comodidad solo se dibuja la seccin ms relevante. Mediante el contador de programa (PC) se sabe que instruccin ejecutara a continuacin. La memoria es direccionada por el registro de direcciones, que se conecta por el bus de direcciones, e intercambia datos mediante el bus de datos.La conexin hacia el exterior ya sea para tomar o entregar datos se realiza a travs de los perifricos. Estos sirven de acopladores entre el microsistema y el exterior.Segn cuantas partes estn dentro de un solo chip se habla de procesador, microprocesador o microcontrolador.

    31

  • ClasificacinSe clasifican:Segn la cantidad de bit de los datos que maneja su ALU.

    Pueden ser de micros 8, 10, 16, 32, 64, etc bits.

    Segn la arquitectura u organizacin de la memoria del sistema:-VON NEWMAN se usa un solo bus de datos y direcciones para la memoria de datos y programa.-HARVARD cada rea de memoria tiene su bus de datos y de direcciones.

    Segn la estructura o arquitectura del sistema tambin pueden ser ARQUITECTURA CERRADA o ARQUITECTURA ABIERTA. En los micros de arquitectura cerrada su sistema solo se puede tener los elementos que el fabricante suministra. No es posible agregarle RAM, ROM, u otros perifricos. Los de arquitectura abierta pueden formar sistemas de varias configuraciones de RAM, ROM o perifricos. La diferencia est en si el micro tiene o no los buses accesible al usuario. Esto influye directamente en el nmero de patillas del chip, por cada lnea del bus se necesita una patilla o pin.

    Segn el set de instrucciones. Estas son determinadas por el fabricante para cada componente o su familia. Aunque la denominacin se hace en referencia a las instrucciones, tambin implica la tecnologa de fabricacin y la filosofa de diseo del chip.CISC- Complex Instruction Set Computer. Conjunto de muchas instrucciones complejas, potentes y

    hasta redundantes.RISC- Reduced Instruction Set Computer. Conjunto de pocas instrucciones, generalmente bsicas.

    Muchos parmetros estn definidos por defecto por ejemplo uno de los operandos y el destino de la operacin.

    SISC- Specific Instruction Set Computer. Conjunto de instrucciones que adems de ser reducido es especifico al uso del procesador.

    VLIW- Very Large Instruction Word. Conjunto de instrucciones muy complejas. Cada instruccin define todos los parmetros de funcionamiento. Sustituye a muchas instrucciones de un sistema RISC.

    Segn la cantidad de memoria del sistema. La cantidad de memoria ROM nos habla de lo complejo que podr ser el programa y la cantidad de memoria RAM la capacidad de manejar variables.

    El micro que estudiaremos ser el PIC16F628A.Es un microcontrolador con CPU de 8 bit, arquitectura Harvard cerrada y un set de instrucciones reducido (RISC).

    32

    ROM

    RAM

    CPUBus de Direcciones - AB

    Bus de Control - CB

    VON NEWMANBus de Datos - DB

    ROM RAMBus de Control - CB

    CPU

    Bus de Datos RAM

    DBram

    Bus de Dir. RAMABram

    Bus de Dir. ROM

    ABrom

    Bus de InstruccionesDBrom

    HARVARD

  • P I C 1 6 F 6 2 8 A

    Caractersticas y PatillajeMicrocontrolador fabricado por Microchip. Es un dispositivo de la gama media. Internamente tiene una CPU con arquitectura HARVARD y tecnologa RISC de alto rendimiento.

    Sus caractersticas principales son:*Set de instrucciones reducidas a 35 grupos.*Todas las instrucciones se ejecutan en un ciclo de maquina, excepto los saltos que se ejecutan en 2 ciclos.*Velocidad de funcionamiento: DC a frecuencia mxima indicada por el fabricante.*Memoria de Programa FLASH-ROM de 2048 palabras de 14 bits*Memoria de Datos RAM de 224 bytes*Memoria de Datos EEPROM de 128 bytes*Todas las instrucciones son de una sola palabra de 14 bits*Datos de 8 bit*Registros internos mapeados en la RAM*Pila por hardware de 8 niveles exclusivamente para el PC*Modos de Direccionamiento Inherente Inmediato, Directo, Indirecto y Relativo*10 Fuentes de Interrupcin:

    - Externa pin RB0/INT- Desborde del TMR0- Cambio de nivel en PORTB- Terminacin del ciclo de escritura en EEPROM- Cambios en los comparadores- Recepcin de un dato en la USART- Transmisin de un dato en la USART- Modulo CCP- Desborde del TMR1- Recarga del TMR2

    *16 patillas de entrada/salida con control de direccin individual * Alta corriente de fuente/sumidero para manejo directo de LED

    - Corriente de Sumidero 25 mA mx. por pin- Corriente de Fuente 25 mA mx. por pin

    *Perifricos- 2 puertos de 8 bit- TMR0 contador/temporizador de 8 bit - TMR1 contador/temporizador de 16 bit- TMR2 temporizador recargable de 8 bit- Modulo de comparacin, captura y modulacin PWM- 2 comparadores analgicos- Modulo de voltaje de referencia- Interfase de comunicacin serial- Memoria EEPROM

    Caractersticas Especiales del Microcontrolador:* Memoria de Datos EEPROM con 1:000.000 de ciclos de borrado/escritura * Retencin de Datos EEPROM mayor a 40 aos* (ICSP) Circuito de Programacin Serial Interno - va 3 pin* Reset al energizar (POR)* Retardo al encender (PWRT)* Retardo de arranque del Oscilador (OST)* Reset de arranque en caliente (BOR)* Vigilante (WDT) con su propio oscilador RC interno para un funcionamiento confiable* Proteccin de Cdigo de ROM y EEPROM por separado* Mdulo completo de oscilador con 8 modos de funcionamiento*Oscilador interno de 4Mhz calibradoal 1%*Oscilador interno de 48Khz de bajo consumo* Tecnologa de bajo consumo, alta velocidad* Modo de bajo consumo (SLEEP) economizador de energa* Diseo totalmente esttico que permite detener el OSC* Amplio rango de voltaje de operacin: 2.0V a 5.5V

    33

  • Patillaje

    PIN Nombres DESCRIPCIN I/O

    17 RA0 Bit 0 del Puerto A BidireccionalAN0 Entrada (-) del comparador 1 Entrada

    18 RA1 Bit 1 del Puerto A BidireccionalAN1 Entrada (-) del comparador 2 Entrada

    1RA2 Bit 2 del Puerto A BidireccionalAN2 Entrada (+) del comparador 2 EntradaVref Salida analgica del modulo de referencia de voltaje. Salida

    2RA3 Bit 3 del puerto A BidireccionalAN3 Entrada (+) del comparador 1 Entrada

    CMP1 Salida del comparador 1 Salida

    3RA4 Bit 4 del Puerto A. Salida de colector abierto Bidireccional

    T0CKI Entrada de reloj del Timer0 EntradaCMP2 Salida del comparador 2 (colector abierto) Salida

    4

    RA5 Bit 5 del Puerto A EntradaMCLR Cuando esta configurado como Reset Maestro un cero en este

    terminal fuerza el estado de RESET en el micro. Su nivel alto no debe exceder a Vdd

    Entrada

    Vpp Entrada de tensin de programacin Entrada

    15

    RA6 Bit 6 del Puerto A BidireccionalOSC2 Conexin para un cristal o resonador al oscilador en modo HS, XT

    o LP Entrada

    CLKOUT Salida de seal de Reloj CK para el oscilador en modo RC o INTOSC a de la frecuencia de oscilacin en OSC1. Salida

    16

    RA7 Bit 7 del Puerto A BidireccionalOSC1 Conexin para un cristal o resonador al oscilador en modo HS, XT

    o LP. Entrada

    CLKIN Conexin del puente RC al oscilador en modo RC o entrada de oscilacin externa en modo HS, XT o LP Entrada

    6 RB0 Bit 0 del Puerto B BidireccionalINT Entrada de interrupcin por flanco Entrada

    7RB1 Bit 1 del Puerto B BidireccionalRX Pin de recepcin de datos asincrnicos de la SCI EntradaDT Pin de entrada/salida de datos sincrnicos de la SCI Bidireccional

    8RB2 Bit 2 del Puerto B BidireccionalTX Pin de transmisin de datos asincrnicos de SCI SalidaCK Entrada o salida de seal de clock sincrnico de la SCI Bidireccional

    9 RB3 Bit 3 del Puerto B BidireccionalCCP1 Entrada/Salida del modulo CCP1 Bidireccionall

    10 RB4 Bit 4 del puerto B. Dispara interrupcin por cambio de estado BidireccionalPGM Entrada de voltaje de programacin. Entrada11 RB5 Bit 5 del Puerto B Bidireccional12 RB6 Bit 6 del Puerto B Bidireccional

    T1OSO Entrada al oscilador del TMR1 EntradaT1CKI Entrada de reloj para el TMR1 Entrada

    34

  • PGC Entrada de seal de CK para programarlo Entrada

    13RB7 Bit 7 del Puerto B Bidireccional

    T1OSI Entrada al oscilador del TMR1 EntradaPGD Entrada / Salida de datos al quemar Bidireccional

    5 GND Alimentacin negativa para la lgica y los pines de entrada Entrada14 Vdd Alimentacin positiva del chip Entrada

    Diagrama de Bloques InternoEl PIC16F628A es un microcontrolador de la empresa Microchip. Dispositivo de la gama media de la familia PICmicro.

    La memoria de programa ,interna al chip, contiene 2048 palabras de 14 bit, la misma longitud que cada una de las instrucciones del micro. La memoria de datos RAM ,interna al chip, tiene 224 registros de un byte y la memoria EEPROM de datos 128 registros de 8 bits.El contador de programa (PC) es de 13 bit lo que permite direccionar 8 K o pginas, pero solo est

    35

  • implementado los dos primeros K o pginas. La ALU es de 8 bit al igual que el Bus de Datos.Tiene dos buses de datos, uno de programa (14 bits) y otro de datos (8 bits). Tambin contiene los dos buses de direcciones. El ABROM sale del contador de programa (PC) (13 bits). El PC se comunica con la Pila que son 8 registros de 13 bits.El ABRAM (9 bits) sale del multiplexor de direcciones el cual selecciona la fuente para la direccin de memoria. Esta fuente puede ser el registro de instrucciones o el FSR, que es un registro usado como puntero de RAM. Este multiplexor puede direccionar 512 posiciones pero no estn todas. La memoria EEPROM es un mdulo aparte. Se usan 4 registros para operar con ella: el registro EEDATA como buffer de datos, el registro EEADR para direccionar y los registros EECON1 y EECON2 para controlarel funcionamiento.La ALU tiene la capacidad de operar con dos nmeros de 8 bit cada uno. Obtiene sus operandos del reg W y del multiplexor de datos. Este ltimo selecciona si el dato proviene de una instruccin o a travs del DB. El W es el registro ms verstil y usado. El reg STATUS adems de los indicadores de la ALU guarda indicadores del estado del micro y el programa.Hay 16 pins de I/O configurables por el usuario uno a uno. Algunos pin estn multiplexados con otros perifricos del dispositivo. Los registros de Identificacin ID son 4 registros de 4 bits bit, solo accesibles durante el quemado del micro para grabarle cualquier dato. Su uso puede ser guardar el nmero de serie del chip o la versin de software.La ICSP es el mdulo que se encarga de quemar la memoria. Se conecta al exterior a travs de los pines 4, 11 y 12. Es capaz de impedir la lectura del cdigo o programa grabado. En tal caso se lee toda la memoria como 0000, excepto el valor de los ID. La instruccin a ser ejecutada se lee de la ROM y se carga en el registro de instrucciones. De las instrucciones se pueden extraer distintos datos: comandos para el bloque de control, dato para operar, direccin de RAM, etc.El Bloque de control tiene varios elementos a destacar:Decodificador de Instrucciones y Control- Se encarga de interpretar la instruccin y generar la secuenciaa ejecutar, o sea controla todos los elementos del micro.Power on Reset (POR)- Reset de Encendido. Circuito que mantiene un reset interno mientras la tensin defuncionamiento no llegue al valor mnimo. Si vuelve a bajar no se activa a menos que desaparezca Vdd.Power-Up Timer (PWRT)- Temporizador del Retardo de Encendido. Permite demorar la salida de reset 72 mili-segundos a partir que POR o BOR habiliten.Brown-Out Reset (BOR) Reset de arranque en caliente. Si ocurre una falla en la alimentacin pero no llega a desaparecer, este circuito genera un reset hasta que vuelve la tensin a su nivel de funcionamiento.Oscillator Start-up Timer (OST)- Temporizacin de Arranque del Oscilador. Una vez terminado el retardo del PWRT genera una demora en generar seales de sincronismo, asegurando que el oscilador se estabilice.Watch Dog Timer (WDT)- Temporizador Vigilante o Perro Guardin. Es un contador de 8 bit con su propiooscilador independiente. Mediante software se le debe reiniciar o el WDT se desbordara. En caso de desborde realiza un reset del micro.Generador de Clock (CK) y Sincronismo. Es un modulo de oscilador completo. Puede funcionar sin necesidad de componentes externos. Genera la seal de CK interno y externo.Low Voltaje Programming Programador de baja tensin. Permite grabar la memoria ROM con solo 5 volt.

    36

  • Clases de OsciladorEl PIC16F628A tiene un circuito oscilador interno completo. No necesita componentes para generar la sealde reloj CK. Pero acepta varias configuraciones del oscilacin, como puede ser un circuito de resistencia-condensador en serie, un cristal piezoelctrico o una onda cuadrada desde el exterior.La seleccin se realiza durante la quema del chip:

    XT- Oscilador a cristal o resonadorHS- Oscilador a cristal o resonador de alta velocidadLP- Oscilador a cristal o resonador de bajo consumoRC- Oscilador a Condensador y Resistencia, con o sin salida de CK por pin 15EC- Seal de oscilador desde fuente externaINTOSC- Oscilador interno (4Mhz o 48Khz) con o sin salida de CK por pin 15

    Modos HS, XT y LP aceptan un cristal o resonador cermico conectado a los terminales OSC1/CLKIN y OSC2/CLKOUT.El cristal necesita de un par de condensadores a masa. Estos elementos tienenuna frecuencia muy estable, excepto frente a la temperatura.En la documentacin del micro esta la informacin sobre los valores de dichoscapacitares segn la frecuencia del cristal.

    El resonador cermico no necesita de estoscondensadores. El pin central es la conexin a masa delresonador.

    El modo EC acepta que un generador de onda cuadrada externo seaconectado al pin OSC1/CLKIN. Por el pin 15 funcionara como RA6

    Si se selecciona el modo RC se debe conectar un circuito resistencia-capacitor al terminal OSC1/CLKIN. Por el terminal 15 se puede seleccionar tener la seal CK de de la frecuencia de oscilacin o funcionar como RA6.

    El oscilador a cristal tiene como ventaja la robustez, exactitud y estabilidad en el tiempo. Los resonadores tienen iguales prestaciones que los cristales y adems la simpleza de su instalacin. Como desventaja ambos presentan mucha dependencia con la temperatura. En caso de ser necesario se le hace trabajar caliente adosndoles una resistencia. El oscilador RC en cambio es estable frente a la temperatura y muy econmico, pero presenta un gran porcentaje de error y con el tiempo variaciones de valor en su capacitor.

    El oscilador interno puede sacar la seal de CK por el terminal 15 o usarlo como RA6. Adems en funcionamiento se puede setear el mismo entre 48Khz o 4Mhz.

    37

  • Tipos de FuenteEl PIC16F628A es un integrado con un amplio rango de funcionamiento. Funciona desde 2,0 volt hasta 5,5 volt. Por su bajo consumo la fuente ms simple es con un regulador 78L05. Los capacitares son para filtradoy estabilizacin de la fuente.

    Los terminales de masa de los componentes dela fuente deben estar lo mas cerca posible, asse evitan ruidos.

    Es importante evitar los ruidos a la entradadel regulador, as su salida ser masconfiable. Este circuito es el adecuadocuando en la alimentacin se presentanpicos positivos o negativos de tensin.

    En caso de existir ruidos electromagnticos es necesario blindar el sistema junto con la fuente. La lnea punteada significa una jaula de Faraday o caja aterrada. La entrada de corriente al sistema se hace a travsde choques, para evitar que la interferencia magntica captada pase por los cables.

    Si se le alimenta con 4 pilas comunes es necesario bajar latensin con dos diodos. Cuatro pilas con el mximo de cargaseria 6,08 volt. Si se coloca un solo diodo estamos en el limitefsico del chip, con dos en cambio, se esta cmodamente dentrodel rango de su funcionamiento. Se utilizan diodos y noresistencias por que los primeros dan una cada de tensinbastante independiente de la corriente. Si son pilas recargablesno es necesario bajar la tensin.

    Para desacoplar los propios ruidos de consumo del chip es necesario que se coloque, lo ms cerca posible, entre los terminales 5 y 14 un condensador de 0,1uF. Son apropiados los componentes SMD. Estos ruidos se deben a variaciones del consumo dentro del propio integrado.

    38

  • Circuitos de Entrada o SalidaEl microcontrolador es un chip que soporta pequeas tensiones y corrientes en sus entradas y salidas.Circuitos de Entrada Es necesario modificar los valores de las seales de entrada para que no daen al chip. Se logra tomando una muestra dependiente al valor original. La tensin no puede ser mayor a 5,5 volt ni menor a 0 volt. Al tener entradas de alta impedancia se considera que la corriente que absorbe es despreciable.

    Entrada con puente divisor de tensin:Este circuito es para seales activas a nivel alto, protege contra tensiones excesivas positivas (el diodo zener) y negativos (diodos 1n4007 y 1n4148)Si las resistencias se calculan para que la tensin en el pin no supere a Vdd, se puede prescindir de los diodos 1n4007 y del diodo zener. Si no hay ninguna tensin de entrada las resistencias ponen a 0v el pin.

    Entrada con puente divisor de tensin:Este circuito es para seales activas a nivel bajo. El diodo (1N4148) de entrada protege contra seales positivas, los otros diodos (1N4007) protege contra las tensiones negativas. Si no hay tensin de entrada las resistencias ponen a Vdd el pin.Es mas seguro trabajar con seales activas a nivel bajo pues de cero no pasaria y el primer diodo anula los picos positivos.

    Funciona igual que el anterior solo cambia la configuracin delas resistencias.

    Entrada con transistorinversor:En este circuito es para seales activas a nivel alto, aceptando tensiones muy grandes. El transistor puede ser cualquier NPN, la tensin que maneja es muy baja al igual que la corriente. Otros componentes que pueden servir son BC546 y BC237.

    Entrada Opto-aclopadaEste circuito permite que la seal tenga una fuente diferente ala del chip. Asla elctricamente el chip del resto del sistema. Para tensiones con polaridad se usa el CNY17 o 4N25 , para seal de alterna se usa el PC814 o LTV814. Ideal para aislar al micro de la planta industrial.

    39

  • Circuitos de salida:La corriente de salida es muy pequea, mximo 25 mA por pin. Funciona como una fuente de tensin con una gran resistencia interna. A corriente mxima, solo tendramos la mitad de la tensin de Vdd. Para manejar la mayora de los dispositivos de salida se debe amplificar la salida en corriente y tensin.

    Los pines del pic manejan muy poca corriente a pesar de ser mucho mayor que sus antecesores. Un led es un dispositivo que pueden manejar directamente.

    En este caso drena corriente a masa. El led enciende cuando hay un cero escrito

    Salida con transistor inversor / Salida con relee:Mediante el transistor amplificamos la corriente para activar elrelee. La ganancia del transistor no es importante pues se trabajacon el mismo saturado.

    Salida opto-acoplada

    Si se precisa manejar dispositivos de alterna es mejor aislar al micro de la etapade potencia. El opto-acoplador es el MOC8031 (opto- triac) u otro de la familia.

    Salida a transistor no inversor:Este circuito permite tener una salida sin invertir la lgica yamplificar en corriente y tensin. Ambos transistores trabajansaturados o en corte. Cuando el pin este a 1 la salida estar aVcc y si esta a nivel 0 la salida ser 0v.

    Salida con IC:El chip ULN2003 u otrosimilar permite amplificarvarias salidas con pocoespacio. Invierte la lgicadel pin y funciona acolector abierto.

    40

  • Memoria Interna

    Mapa de MemoriaLa memoria del PIC16F628A se divide en dos grandes bloques, Memoria de Programa y Memoria de Datos.Cada bloque tiene su bus de datos, bus de direcciones y selector de direcciones.

    Memoria de Programa (Flash ROM) La memoria de programa tiene un contador (PC) de 13 bit, lo que lepermite direccionar 8 Kbyte. Solo tiene implementado los 2 primerosKbytes para las instrucciones del programa. Se extiende desde 0000hhasta 07FFh. Las posiciones de memoria 2000h a 2003h se llaman ID. Solo sonaccesibles durante el proceso de programacin del micro, para guardardatos. nicamente el nible bajo de cada posicin esta implementado.Permite as por ejemplo guardar un nmero de serie del chip o laversin de software grabada. En la posicin 2007h se ubican los bits de configuracin, que permitensetear el funcionamiento del micro.La pila tiene 8 niveles solo para valores del PC.

    41

  • Memoria de Datos (RAM Esttica)La memoria de datos es la memoria RAM del sistema. Tiene dos partes, una es una RAM esttica (permite escritura y lectura veloz y no pierde los datos aunque se detenga el clock) y la otra es una EEPROM (se necesita un procedimiento especial de lectura/escritura pero no pierde los datos aunque se quite la alimentacin).La RAM esttica se distribuye en cuatro bancos,BANCO0, BANCO1, BANCO2 y BANCO3 .La seleccin de bancos se realiza mediante los bits RP1,RP0 e IRP.Cada uno contiene 128 posiciones de RAM. Losprimeros 32 registros (00h-1Fh, 80h-9Fh, 100h-11Fh y180h-1AF) se llaman SFR, son registros de funcinespecial para el funcionamiento del micro. Los restantesregistros (20-7F y A0h-FF, 120h-17F y 1AFh-1FFh) sonregistros GPR de propsito general.

    No todas las posiciones de memoria tienen elregistro implementado. En el banco 10 solo estn implementados desde laposicin 20h(120h) a la 4Fh (14Fh). En el banco 11 no tienen ninguna registro GPRimplementadoLas ultimas 16 direcciones de memoria de cadabanco estn implementadas sobre los registros 70h-7Fh del banco 00. Si se direcciona al registro 1FFh,se esta trabajando con el registro 7Fh. Si sedirecciona el registro 75h (175h) del banco 10 seaccede al registro 75h del banco 00

    Memoria de Datos EEPROMLa memoria EEPROM esta mapeada aparte. Es un periferico ms y se necesita un proceso especial para leerla o escribirla. Contiene 128 registros de 8 bit cada uno. Comparte con la RAM el bus de datos, pero tiene su propio selector de direcciones.

    Memoria:Programa

    -Instrucciones de Programa (000h -7FFh)-Bloques de Identificacin ID (2000 - 2004)-Bits de Configuracin (2007h)

    Datos-RAM esttica (00h 1FFh)

    SFR (00h 1Fh) (80h 9Fh) (100h 11Fh) y (180h 19Fh)GPR (20h - 7Fh) y (A0h - FFh)

    EEPROM (00h - 7Fh)

    42

    Bank 0

    0000h

    7Fh Bank 1

    01

    Bank 2

    10

    Bank 3

    11 180h

    1FFh

    BANCO 00 BANCO 01 BANCO 11BANCO 10

    SFR SFR SFR SFR00

    1F

    GPR2F

    2020

    GPR GPR

    6F

    GPR7F

    70

  • Registros Internos SFR Los registros internos en este micro comprenden toda la memoria del sistema. Pero en general se le denomina as a los registros de uso particular, o sea los SFR. Se dividen en dos grupos, los que usa el procesador para funcionar y los utilizados para controlar los perifericos.Varios registros estn presentes en varios bancos de datos por lo tanto tienen dos o ms direcciones. Los bits 7 y 8 de la direccin de cada registro RAM se toma del bit selector de banco.

    BANCO 00 BANCO 01 BANCO 10 BANCO 1100 INDF 80 INDF 100 INDF 180 INDF01 TMR0 81 OPTION 101 TMR0 181 OPTION02 PCL 82 PCL 102 PCL 182 PCL03 STATUS 83 STATUS 103 STATUS 183 STATUS04 FSR 84 FSR 104 FSR 184 FSR05 PORTA 85 TRISA 105 -------- 185 --------06 PORTB 86 TRISB 106 PORTB 186 TRISB07 -------- 87 -------- 107 -------- 187 --------08 -------- 88 -------- 108 -------- 188 --------09 -------- 89 -------- 109 -------- 189 --------0A PCLATH 8A PCLATH 10A PCLATH 18A PCLATH0B INTCON 8B INTCON 10B INTCON 18B INTCON0C PIR1 8C PIE1 10C -------- 18C --------0D ----------- 8D -------- 10D -------- 18D --------0E TMR1L 8E PCON 10E -------- 18E --------0F TMR1H 8F -------- 10F -------- 18F --------10 T1CON 90 -------- 110 -------- 190 --------11 TMR2 91 -------- 111 -------- 191 --------12 T2CON 92 PR2 112 -------- 192 --------13 -------- 93 -------- 113 -------- 193 --------14 -------- 94 -------- 114 ------- 194 -------15 CCPR1L 95 -------- 115 -------- 195 --------16 CCPR1H 96 -------- 116 -------- 196 --------17 CCP1CON 97 -------- 117 -------- 197 --------18 RCSTA 98 TXSTA 118 -------- 198 --------19 TXREG 99 SPBRG 119 ------- 199 -------1A RCREG 9A EEDATA 11A -------- 19A --------1B -------- 9B EEADR 11B -------- 19B --------1C -------- 9C EECON1 11C -------- 19C --------1D -------- 9D EECON2 11D -------- 19D --------1E -------- 9E -------- 11E ------- 19E -------1F CMCON 9F VRCON 11F ------- 19F -------20

    6F

    80 Registros dePropsitoGeneral

    A0

    EF

    80 Registros dePropsito General

    120

    14F

    48 Registros dePropsito General

    1A0

    1EF

    --------150

    16F--------

    70

    7F

    16 Bytes

    F0

    FF

    Accesibles a travsde 70 a 7F

    170

    17F

    Accesibles atravs de 70 a 7F

    1F0

    1FF

    Accesibles atravs de 70 a 7F

    SFR del Ncleo:PC- Contador de programa (13 bit). Se le puede modificar durante la ejecucin del programa en forma indirecta, pero solo se puede leer el byte bajo del mismo.STACK o PILA- Son 8 registros de 13 bit, no accesibles por el programador. En ellos se guarda la direccin de retorno de las subrutinas y las interrupciones. Se dice entonces que tiene 8 niveles de subrutinas, y si se realiza un noveno llamado a subrutina se sobrescribe la primera posicin. W- Acumulador o Registro de Trabajo (8 bit). Es siempre uno de los operandos de todas las operaciones y destino de la mayora de las instrucciones. No tiene una direccin de memoria, se le nombra para usarlo.

    43

  • STATUS- Posicin 03h, 83h, 103h y 183h. Contiene informacin sobre el estado del sistema, banco seleccionado y banderines de la ltima operacin realizada. Como todo registro puede ser destino de cualquier instruccin. Algunos bits no pueden ser escritos. Se forma por los bit: IRP, RP1, RP0, TO, PD, Z, DC, C

    IRP Selecciona el conjunto de bancos a utilizar con el direccionamiento indirecto. Si vale 0 direcciona los bancos 00 y 01, si vale 1 direcciona los bancos 10 y 11.

    RP1:RP0 seleccion