You are on page 1of 27

INTRODUCCIN A LOS MICROCONTROLADORES Y LABORATORIO

Bolilla I INTRODUCCIN Sistemas de Numeracin limitados en cifras. Binario limitado en 8, decimal y hexadecimal limitados en 2. Operaciones Lgico-aritmticas en sistemas limitados en cifras. Definiciones y trminos Nociones de Memorias Bolilla II MICROCONTROLADORES Generalidades Descripcin. Caractersticas generales Bloques principales. Funcionamiento bsico Clasificacin PIC16F628A Caractersticas y patillaje (Hoja de Datos) Diagrama interno. Tipos de fuente, oscilador y I/O Memoria interna. Set de instrucciones Bolilla III PROGRAMACION Conceptos bsicos Nocin de variable, puntero. Formas de Direccionamientos. Representacin Diagrama de flujo Modos de direccionamiento del PIC16F628A Configuracin del PIC16F628A. Herramientas a utilizar Entorno de desarrollo MPLAB Grabador (gmma-its) Circuitos del programador y los mdulos de prueba Bolilla IV USO BSICO DEL PIC Practicas con puertos y temporizadores Funcionamiento y programacin del TIMER0 Practicas con TMR0 como temporizado y contador Interrupciones Interrupciones funcionamiento. Practicas con Interrupcin por TMR0, RB0 y RB4-RB7 Multiplexin de elementos de entrada o salida Practicas con matriz de swicht y matriz de led Control de mecanismos Motor paso a paso de 4 o 3 hilos. Decodificador de posicin (Shift decoder o encoder) Bolilla V WachtDog Timer (Vigilante) Funcionamiento, uso y seteo. Memoria EEPROM Programacin interna y externa. Limitaciones de uso. Bolilla VI COMUNICACIONES Introduccin a comunicacin de microprocesadores. Tipos de comunicacin Comunicacin Paralela. Caractersticas

Unidireccional. Practica de envo y recepcin Unidireccional con aviso de dato valido (STB y ACK). Practica de envi y recepcin Bi-direccional con Handshaking (Entrega en mano propia). Practica de envi y recepcin Comunicacin Serie. Caractersticas Elementos (paridad, stop y arranque) Mtodos RZ, NRZ, Ancho de pulso Comunicacin maestro-esclavo y sin jerarqua Protocolos I2C, RS232 y RS485 Memorias seriales. Bolilla VII CONVERSION A/D y D/A Principios Mtodos Practicas

Sistemas de Numeracin
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. Por lo tanto se buscan sistemas numricos que sirvan de nexo entre el binario y el decimal.

Caractersticas
La 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,9 Sistema binario: base 2 (2 smbolos): 0,1 Sistema octal: base 8 (8 smbolos) : 0,1,2,3,4,5,6,7,8 Sistema 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 a la 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. Caractersticas de cada sistema de numeracin En 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 0 Decenas orden 1 Centenas orden 2 Millares orden 3 Decimos orden -1 Centsimos orden -2 Milsimos 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 0 Bit 1 orden 1 Bit 2 orden 2 Bit 3 orden 3 Bit 4 orden 4 Bit 5 orden 5 Bit 6 orden 6 Bit 7 orden 7 Bit 8 orden 8 Bit 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

Conversiones entre sistemas


Equivalencias entre los sistemas de numeracin Decimal Binario Hexa Octal Decimal 00 0000 0 00 08 01 0001 1 01 09 02 0010 2 02 10 03 0011 3 03 11 04 0100 4 04 12 05 0101 5 05 13 06 0110 6 06 14 07 0111 7 07 15 Binario 1000 1001 1010 1011 1100 1101 1110 1111 Hexa 8 9 A B C D E F Octal 10 11 12 13 14 15 16 17

Nmeros Binarios y su equivalencia decimal 11010,1101B = 1 x 24 +1 x23 +0 x22 +1 x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4 11010,1101B = 26,8125D Este 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 Octal Mediante el cambio de base: 110010,1101B 1x25 +1x24 +0x23 +0x22 +1x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4 110010,1101B = 62,64O Un mtodo ms practico es: 110 010 , 110 101B = 62,65O Se 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 Hexadecimal Mediante el cambio de base es 110010,1101B = 1x25 +1x24 +0x23 +0x22 +1x21 +0x20 +1x2-1 +1x2-2 +0x2-3 +1x2-4 110010,1101B = 32,DH Un mtodo prctico parecido al sistema octal es: 1101 1011 , 0110 1010B = DB,6AH Se 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 Binaria 365,72O = 011x100010 +110x100001 +101x100000 +111x1000-01 +010x1000-10 365,72O = 11110101,111011B Un mtodo prctico para esta conversin es: 365,724O = 011 110 101 , 111 010 100B Se sustituye cada smbolo octal por los 3 smbolos binarios equivalentes. Nmero Octal y su equivalencia Decimal 365,724O = 3x82 +6x81 +5x80 +7x8-1 +2x8-2 +4x8-3 = 245,9140625D Numero Octal y su equivalencia Hexadecimal 1257O = 1x83 +2x82 +5x81 +7x80 = 2AFH

Numero Hexadecimal y su equivalencia Binaria F5,7CH = 1111x1000001 +0101x1000000 + 0111x10000-01 +1100x10000-10 F5,7CH = 11110101,011111B Un mtodo practico es el siguiente: D9,E6H = 1101 1001 , 1110 0110B Se sustituye cada smbolo hexadecimal por los 4 smbolos binarios equivalentes Nmeros Hexadecimales y su equivalencia Octal F36H = 17x202 +3x201 +6x200 = 7466O Nmeros Hexadecimales y su equivalencia Decimal 3AB,E5H = 3x162 +10x161 +11x160 +14x16-1 +5x16-2 = 939,894531D Conversin decimal-hexadecimal 286,43D = 2xA2 +8xA1 +6xA0 +4xA-1 +3xA-2 286,43D = 11E,6E14H Un mtodo ms prctico es: La parte entera 286 286 / 16 = 17 y resto 14 >> E Smbolo de menor ponderacin 17 / 16 = 1 y resto 1 >> 1 1 / 16 = 0 y resto 1 >> 1 Smbolo de mayor ponderacin 286D = 11EH La parte fraccionaria 0,43 0,43 x 16 = 6 + 0,88 >> 6 Smbolo de mayor ponderacin 0,88 x 16 = 14 + 0,08 >> E 0,08 x 16 = 1 + 0,28 >> 1 0,28 x 16 = 4 + 0,48 >> 4 Smbolo de menor ponderacin 0,43D = 0, 6 E 1 4 H Conversin decimal-octal 519,283D = 5x122 +1x121 +11x120 +2x12-1 +10x12-2 +3x12-3 519,283D = 1007,2204O Un mtodo ms prctico es: La parte entera 519 519 / 8 = 64 y resto 7 >> 7 Smbolo de menor peso significativo 64 / 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,283 0,283 x 8 = 2 + 0,264 >> 2 Smbolo de mayor peso significativo 0,264 x 8 = 2 + 0,112 >> 2 0,112 x 8 = 0 + 0,896 >> 0 0,896 x 8 = 7 + 0,168 >> 4 Smbolo de menor peso significativo 0,253D = 0, 2 2 0 4 O Conversin decimal-binario 69,687D = 110x101001 +1001x101000 +110x1010-01 +1000x1010-10 +111x1010-11 69,687D = 100010,1011B Un mtodo ms prctico es: Parte entera 69 69 / 2 = 34 y resto 1 >> 1 Smbolo de orden 0 34 / 2 = 17 y resto 0 >> 0 17 / 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 1B Parte fraccionaria 0.6875 0,6875 x 2 = 1 + 0,375 >> 1 Smbolo de orden -1 0,375 x 2 = 0 + 0,75 >> 0 0,75 x 2 = 1 + 0,5 >> 1 0,5 x 2 = 1 + 0,0 >> 1 Smbolo de orden -4 0,6875D = 0, 1 0 1 1B

Operaciones Lgico-Aritmticas
Operaciones Aritmticas Bsicas
Suma Decimal Hexadecimal Binario 32 + 84 = 116 FB + A1 = 19C 0110 + 1100 = 10010 0+0=0 1+0=1 0+1=1 1 + 1 = 0 y hay Acarreo o Carry Resta Decimal Hexadecimal Binario 54 32 = 22 835 647 = 188 AC 7B = 31 D9E AF4 = 2AA 10011 01100 = 00111 0-0=0 1-1=0 1-0=1 0 - 1 = 1 y pido 1 o Borrow Multiplicacin Decimal 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 xBC 114 FD 10E4 Binario 110110 x 110 000000 110110 110110 101000100 Aplicando sucesivas sumas 110110 + 110110 1101100 1101100 + 110110 10100010 + 110110 11011000 + 110110 100001110 + 110110 101000100 (001 vez) (010 veces) (011 veces) (100 veces) (101 veces) (110 veces) 0x0=0 0x1=0 1x0=0 1x1=1 7 x C =54 7 x B = 4D

Multiplicar por 10 binario o 2 decimal en el sistema binario significa agregar un cero a la derecha nmero.

Divisin La divisin permite averiguar cuantas veces cabe el divisor en el dividendo. Calcula la proporcion 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. 245 /37 222 6 023 & 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 1EB 1A8 439 424 015 & /A3 7 /D4 125 Decimal

4F5 475 080 &

Por el mtodo de sumas sucesivas 0A3 (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 sucesivas 4F5 -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 Mtodo Clsico 11011 /110 110 100 0001 000 0011 000 11 & Mtodo de Sumas sucesivas 110 01 +110 10 1100 Resultado menor que el dividendo +110 11 10010 Resultado menor que el dividendo +110 100 11000 Resultado menor que el dividendo + 110 101 11110 me pase 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 / 110 = 100 y de resto 11

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.

Sistemas de numeracin limitados en cifras


Por ser dispositivos fsicos los procesadores trabajan con un nmero finito de cifras. Lo que significa usar un sistema 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=1 Si no hubo desborde en la suma binaria CY=0 Si pido uno prestado en la resta binaria BW=1 Si no pido prestado uno en la resta binaria BW=0 Si el resultado de la operacin lgico-matemtica es cero Z=1 Si 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=1 Si 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=1 Si no hubo acarreo entre el bit 3 y el bit 4 AC=0 o DC=0 Se 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 99 Hexadecimal de dos cifras FF Binario 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=1 Hexadecimal FF + 01 = 00 y CY=1 Binario 1111 1111 + 0000 0001 = 0000 0000 y CY=1 En 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 Cifras Decimal 23 + 45 = 68 y CY=0 AC=0 84 + 53 = 37 y CY=1 AC=0 38 + 25 = 63 y CY=0 AC=1 84 + 47 = 31 y CY=1 AC=1 Suma de mximos 99 + 99 = 98 y CY=1 Hexadecimal C5 + 2A = EF y CY=0 AC=0 B8 + 19 = D1 y CY=0 AC=1 72 + D8 = 4A y CY=1 AC=0 4F + B9 = 08 y CY=1 AC=1 Suma de mximos FF + FF = FE y CY=1

10

Binario 1101 1001 +0010 0001 1111 1010 1101 1011 +0110 0001 0011 1100 1010 0111 +0100 1010 1111 0001 1001 0111 +1010 1001 0100 0000 y CY=0 AC=0

CY=1 AC=0

CY=0 AC=1

CY=1 AC=1 1111 1111 +1111 1111 1111 1110

Suma de mximo

CY=1

Resta en Sistemas Limitados en Cifras Se 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+c Se plantea desde otra forma equivalente a + (-b) = c Se debe buscar como representar el valor (-b) b - b = 00 Entonces b + (-b) = 00 Observacin: 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 anterior b + (-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 + 1 Tambin 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)= c Ejemplo: 43 - 25 = 18 y no hubo Borrow Se convierte en suma Ca10(25) = 99 25 + 01 = 75

11

Queda 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 CY Se 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=0 Este resultado seria el mismo que ejecutar la resta. 43 53 = 86 y hubo borrow El 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 como se relaciona con la diferencia. Ca10(-86) = 99 86 + 01 = 14 Se comprueba 57 43 = 14 Se deduce que cuando la resta tiene borrow el resultado representa el Ca10 de la diferencia entre los operandos. Binario El mximo representable es en este caso 1111 1111. Ejemplo Calculo 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 - 1001 1011 0110 0100 Entonces Ca10(1001 1011) = 0110 0101 Ejemplo de resta 1011 0010 -1001 0110 = ? Se hace el complemento del sustraendo Ca10(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 suma Ca10(1001 1000) = 1111 1111 1001 1000 + 0000 0001 Ca10(1001 1000) = 0110 1000 0111 0101 +0110 1000 1101 1101 y CY=0 La resta tiene borrow y su resultado es 11011101 Al tener borrow se debe complementar el resultado para saber la diferencia. Ca10(1101 1101) = 1111 1111 1101 1101 + 0000 0001 y 0110 0100 +0000 0001 0110 0101

12

Ca10(1101 1101) = 0010 0011 Siendo esta la diferencia entre los operandos. Hexadecimal Mximo representable FF Por 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 Negado o Complemento a 10-1 (Ca[10-1]) En un sistema con limite de cifras se define el negado 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 Seria el complemento al mayor smbolo del sistema numrico. Ejemplos: Decimal En este sistema seria Ca9 Ca9(12) = 99 - 12 = 87 Ca9(83) = 99 - 83 = 16 Hexadecimal En este sistema seria CaF CaF(A4) = FF - A4 = 5B CaF(15) = FF - 15 = EA Binario En este sistema seria Ca1 Ca1(0111 0101) = 1111 1111 - 0111 0101 = 1000 1010 Ca1(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) ]= x Ejemplo decimal limitado a 2 cifras Ca10(73) = 99 73 + 1 Ca10[Ca10(73)] = 99 ( 99 73 + 1 ) + 1 Ca10[Ca10(73)] = 99 99 + 73 1 + 1 Ca10[Ca10(73)] = 73 # Se observa que Ca[10-1]{Ca[10-1](x)} = x Ejemplo decimal limitado a 2 cifras Ca9(38) = 99 38 Ca9[Ca9(38)] = 99 ( 99 38 ) Ca9[Ca9(38)] = 99 99 + 38 Ca9[Ca9(38)] = 38

13

14

Operaciones Lgicas Bsicas


El smbolo => en una ecuacin indica operacin lgica. Operacin AND (&) o (*) o (.) 0 & 0 => 0 0 & 1 => 0 1 & 0 => 0 1 & 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 => 0 0 + 1 => 1 1 + 0 => 1 1 + 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 => 0 0 # 1 => 1 1 # 0 => 1 1 # 1 => 0 1001 0111 # 0100 1011 => 1101 1100 Para nmeros de varias cifras se realizan operaciones individuales entre bit de igual peso. Operacin Complemento a 1

Para nmeros de varias cifras se realizan operaciones individuales entre bit de igual peso. Hay otra operacin lgica que es la COMPARACIN. 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. Esta operacin activa estos indicadores: BW Si no se pidio prestado uno en la resta vale 0 Z Si el resultado es cero vale 1 AC Si no hubo borrow entre los nibles bajos y los altos vale 1 P Segn la paridad del resultado es su valor S Indicador de signo, copia el valor del MSB Despus de comparar x con y o sea (x y ) Si x >= y entonces BW=0 Si x < y entonces BW=1 Si x = y entonces Z=1 Si x y entonces Z=0

15

Representacin o Codificacin
En 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 dispositivos es 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 FF 1 000 0001 = -1 81 0 000 0001 = 1 01 0 111 1111 = 127 7F 0 000 0000 = 0 00 1 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 00 0111 1111 = 127 7F Para hallar la representacin de -127: Ca2(0111 1111) = 1111 1111 0111 1111 + 0000 0001 -127 = 1000 0001 81 Se 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 Ca2 Ca2(1000 0000) = 1111 1111 1000 0000 + 0000 0001 = 1000 0000 1000 0000 = -128 80 Permite representar 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. 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 ingles Los signos de la escritura inglesa ( ! ? ( ) . : , ; { } [ ] ) Caracteres especiales ( \ / @ # $ % & = + - _ * < > ^ ~ | ) Dgitos (0 1 2 3 4 5 6 7 8 9) Comandos especiales para control de texto Combinaciones sin usar para que cada usuario pueda agregar sus propios signos Cdigos BCD Es 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.

16

BCD 8421 es el ms comn 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001 Se usan solo estas ttradas, lo cual facilita detectar errores de transmisin En los sistemas de 8 bit el nible bajo representa las unidades y el nible alto las decenas. BCD 2421 0 0000 5 1011 1 0001 6 1100 2 0010 7 1101 3 0011 8 1110 4 0100 9 1111 BCD exceso 3 0 0011 5 1000 1 0100 6 1001 2 0101 7 1010 3 0110 8 1011 4 0111 9 1100 El 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 Hay varias versiones del cdigo Gray, sin embargo todas poseen una determinada caracterstica comn: el paso de un nmero al siguiente se efecta cambiando un solo bit de cada vez. 0 0000 8 1100 1 0001 9 1101 2 0011 10 1111 3 0010 11 1110 4 0110 12 1010 5 0111 13 1011 6 0101 14 1001 7 0100 15 1000 El cdigo Gray es un cdigo no ponderado y para obtener la representacin de un nmero se procede del modo siguiente: 1.- Se convierte el nmero decimal a binario. 2.- Al valor as obtenido, se le suma el mismo valor una vez movido un bit a la derecha (bit que se desprecia) y no se han de tener en cuenta los acarreos de las sumas. Veamos un ejemplo: Obtener el cdigo Gray del decimal 14. 1. 14D = 1110B 2. 1110 + 0111 = 1001 Luego el nmero 14 en cdigo Gray ser 1001 Cdigo Johnson Es 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 un nmero ya sabemos cual recibiremos despus. Adems puede empezar con cualquier valor. Para el caso de 5 bit seria: 11100 11000 10000 00000 00001 00011 00111 01111 11111 11110 Esta rotacin de los bits se puede realizar hacia la derecha o la izquierda.

17

Codificacin BCD Los 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 421 permite realizar sumas y restas con menor dificultad. Por lo estndar que es hay gran cantidad de 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 caso 58D + 27D = 85D CY=0 AC=1 0101 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 Decimal Si 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 resultado Aplicamos la correccin a la operacin realizada. 0111 1111B +0000 0110B 1000 0101B = 85D CY=0 AC=1

Resultado esperado

Otro caso 29D + 38D = 67D CY=0 y AC=1 0010 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=0 AC=0 Otro caso 62D + 53D = 15D CY=1 y AC=0 0110 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.

18

Ajuste Decimal 90D +10D 00D 1001 0000B +0001 0000B 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=1 AC=1 Otro caso 94D + 73D = 67D CY=1 y AC=0 1001 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 altos suman ms de 15 entre si. Ajustamos el nible alto 0000 0111B +0110 0000B 0110 0111B

= 67D Resultado esperado CY=0 AC=0

Otro caso 53D + 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=1 AC=1 Otro caso 98D + 89D = 87D CY=1 AC=1 1001 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=0 AC=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. Resta Ejemplo de resta 75D - 34D = 41D BW=0 y AC=0 0111 0101B - 0011 0100B = ?

19

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 = 66D Ca10(0011 0100) = 1001 1001 - 0011 0100 + 0000 0001 = 0110 0110B 01110101B + 01100110B 11011011B CY=1 AC=0 Como todo resultado de suma BCD es necesario realizar el ajuste decimal. 1101 1011B +0110 0110B 0100 0001B El CY indica que no hubo borrow. Otro caso 84D - 36D = 48D BW=0 y AC=1 1000 0100B - 0011 0110B = ? Se convierte la resta en suma con el Ca9 Ca10(0011 0110) = 1001 1001 - 0011 0110 + 0000 0001 = 0110 0100B 1000 0100B +0110 0100B 1110 1000B CY=0 AC=0 Se realiza el ajuste decimal al resultado. 1110 1000B +0110 0000B 0100 1000B El valor del CY indica que no hubo borrow. Otro caso 28D - 43D = 85D BW=1 y AC=0 0010 1000B - 0100 0011B = ? Se convierte la resta en suma con el Ca9 Ca10(0100 0011) = 1001 1001 - 0100 0011 + 0000 0001 = 0101 0111B 0010 1000B +0101 0111B 0111 1111B CY=0 AC=0 Se realiza el ajuste decimal del resultado. 0111 1111B +0000 0110B 1000 0101B =85D Resultado esperado CY=0 AC=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 0101 La diferencia es 0001 0101B o 15D. Otro caso 34D - 58D = 76D BW=1 y AC=1 0011 0100B - 0101 1000B = ? Se convierte la resta en suma con el Ca10. = 48D Resultado esperado. CY=1 AC=0

= 41D Resultado esperado CY=1 AC=1

20

Ca10(0101 1000) = 1001 1001 - 0101 1000 + 0000 0001 = 0100 0010B 0011 0100B +0100 0010B 0111 0110B CY=0 AC=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 0100 La 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 Enteros Para 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 Ca2 Su 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 = 0D 0111 1111B = 127D 1000 0000B = -128D 1111 1111B = -1D 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=0 En este ejemplo el resultado es menor a +127 por lo tanto es correcto +89D +45D +134D 0101 1001B 0010 1101B 1000 0110B

S=1 CY=0 AC=1 El 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

21

-57D -69D

Ca2(0011 1001B)

1100 0111B 1011 1011B S=1 CY=1 AC=0

Ca2(1011 1011B) = 0100 0101B = 69D Resultado esperado El resultado es igual o mayor que -128 por lo que es correcto -112D - 54D -166D Ca2(0111 0000B) Ca2(0011 0110B) = 1001 0000B = 1100 1010B 0101 1010B S=0 CY=1 AC=0 El resultado es menor a -128 por eso S=0 aunque sea negativo. c) Sumandos de diferente signo Positivo de modulo mayor 111D -77D Ca2(0100 1101B) 34D El resultado coincide con lo esperado Negativo de modulo mayor 54D -93D Ca2(0101 1101B) -39D 0011 0110B = 1010 0011B 1101 1001B 0110 1111B = 1011 0011B 0010 0010B S=0 CY=1 AC=0

S=1 CY=0 AC=0 Ca2(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.

22

Definiciones Y Terminos
BIT- 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) 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. 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, Ca1, Ca2, ajuste decimal, cambios de posicin de los bit, rotaciones, etc.

DECISIN- Es optar entre dos acciones a realizar dependiendo del resultado de alguna operacin lgicamatemtica. 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 y fuera 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.

23

ROM- Porcin de la memoria del sistema que solo puede ser leda. En general alberga comandos. 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 fuente CDIGO 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 de datos ordenados en 1 o ms dimensiones: 1 dimensin Xa (a a los N) Se ordenan en base a un parmetro Se ordenan en base a 2

2 dimensiones Xa,b (a y b a los N) parmetros.

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

24

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.

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 almacenados consecutivamente. Se define indicando la posicin del primer (Pi)y ultimo dato (Pf).

VARIABLE- Elemento de programacin que puede modificar su valor. Fsicamente se debe asociar en una posicin de memoria RAM ETIQUETA- Elemento de programacin que permite sustituir un valor numrico por un texto o una cadena de caracteres, lo cual ayuda a ordenar el programa. PUNTERO o VECTOR- Elemento de programacin (variable) que permite direccionar un dato. Registro que almacena la direccin del inicio de una matriz, o almacena la direccin del dato a ser tratado dentro de la matriz. Dentro de un lazo con 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 datos con 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 evento MSB- Most Significative Bit - bit ms significativo, de mayor peso o ponderacin. LSB- Low Significative Bit - bit menos significativo, de menor peso o ponderacin. PILA- Estructura lgica donde se guardan los datos y el ltimo en ser colocado es el primero en ser sacado. Puede implementarse en la memoria RAM o en un banco de registros dedicados a ese fin. LIFO- Estructura de PILA (Last IN, First OUT) FIFO- (First IN, First OUT). Estructura donde el primer dato en entrar es el primero en salir. PIN, PATILLA, PATA o TERMINAL- Conexin fsica del dispositivo con el resto del circuito. Puede unirse por soldadura o por contacto a presin.

25

Nociones de Memorias
Son dispositivos electrnicos destinados a conservar informacin. Estn formadas por elementos o clulas ordenadas llamados registros y un bloque de control. En cada registro se guarda un dato. Este dato puede se de uno o varios bit de longitud. La memoria tiene lneas de entrada y/o salida de datos (bus de datos) comunes a todos los registros y otras lneas dedicadas a seleccionar el registro con cual trabajar (bus de direcciones). 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, el tiempo 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 momento en que el dato es valido y estable. Se clasifican segn Uso de la memoria Mtodo de acceder al registro deseado Mtodo fsico de almacenamiento de informacin Por 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 escribiendo el 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. Es el formato con mayor velocidad de acceso, aunque se necesitan muchas lneas de control. 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 de datos hacia o desde la memoria. Pueden ser tanto internas como externas al chip del micro. El CB tiene seales basicas como seector 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 datos previos. Exteriormente tiene pocas lneas de control y es el formato de ms lento acceso. Se selecciona que operacin se va a ejecutar (S0-S1), el clock maestro (CK) marca el tiempo de cada bit. Cada palabra 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

26

los datos ledos en algn otro sitio. Se usan comnmente como memorias externas al chip del microcontrolador. Pueden ser memorias aleatorias con una interfase serial incluida. Mtodo fsico de almacenarla ROM 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 fuerte en 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.

27

You might also like