Sei sulla pagina 1di 58

Microprocesador

Procesador AMD Athlon 64 X2 conectado en el zcalo de una placa base.


El microprocesador (o simplemente procesador) es elcircuito integrado central ms complejo de
un sistema informtico; a modo de ilustracin, se le suele llamar por analoga el cerebro de
un computador.
Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de
usuario; slo ejecutainstrucciones programadas en lenguaje de bajo nivel, realizando
operaciones aritmticas y lgicas simples, tales como sumar, restar, multiplicar, dividir, las lgicas
binarias y accesos a memoria.
Esta unidad central de procesamiento est constituida, esencialmente, por registros, una unidad de
control, unaunidad aritmtico lgica (ALU) y una unidad de clculo en coma flotante(conocida
antiguamente como coprocesador matemtico).
El microprocesador est conectado generalmente mediante un zcalo especfico de la placa
base de la computadora; normalmente para su correcto y estable funcionamiento, se le incorpora
un sistema de refrigeracin que consta de undisipador de calor fabricado en algn material de
alta conductividad trmica, como cobre o aluminio, y de uno o msventiladores que eliminan el
exceso del calor absorbido por el disipador. Entre el disipador y la cpsula del microprocesador
usualmente se coloca pasta trmica para mejorar la conductividad del calor. Existen otros mtodos
ms eficaces, como la refrigeracin lquida o el uso de clulas peltier para refrigeracin extrema,
aunque estas tcnicas se utilizan casi exclusivamente para aplicaciones especiales, tales como en
las prcticas de overclocking.
La medicin del rendimiento de un microprocesador es una tarea compleja, dado que existen
diferentes tipos de "cargas" que pueden ser procesadas con diferente efectividad por procesadores
de la misma gama. Una mtrica del rendimiento es la frecuencia de reloj que permite comparar
procesadores con ncleos de la misma familia, siendo este un indicador muy limitado dada la gran
variedad de diseos con los cuales se comercializan los procesadores de una misma marca y
referencia. Un sistema informtico de alto rendimiento puede estar equipado con varios
microprocesadores trabajando en paralelo, y un microprocesador puede, a su vez, estar constituido
por varios ncleos fsicos o lgicos. Un ncleo fsico se refiere a una porcin interna del
microprocesador casi-independiente que realiza todas las actividades de una CPU solitaria, un
ncleo lgico es la simulacin de un ncleo fsico a fin de repartir de manera ms eficiente el
procesamiento. Existe una tendencia de integrar el mayor nmero de elementos dentro del propio
procesador, aumentando as la eficiencia energtica y la miniaturizacin. Entre los elementos
integrados estn las unidades de punto flotante, controladores de la memoria RAM, controladores
de buses y procesadores dedicados de vdeo.

Historia de los microprocesadores

La evolucin del microprocesador


El microprocesador surgi de la evolucin de distintas tecnologas predecesoras, bsicamente de
la computacin y de la tecnologa de semiconductores. El inicio de esta ltima data de mitad de la
dcada de 1950; estas tecnologas se fusionaron a principios de los aos 1970, produciendo el
primer microprocesador. Dichas tecnologas iniciaron su desarrollo a partir de la segunda guerra
mundial; en este tiempo los cientficos desarrollaron computadoras especficas para aplicaciones
militares. En la posguerra, a mediados de la dcada de 1940, la computacin digital emprendi un
fuerte crecimiento tambin para propsitos cientficos y civiles. La tecnologa electrnica avanz y
los cientficos hicieron grandes progresos en el diseo de componentes de estado
slido (semiconductores). En 1948 en los laboratorios Bell crearon eltransistor.
En los aos 1950, aparecieron las primeras computadoras digitales de propsito general. Se
fabricaron utilizando tubos al vaco o bulbos como componentes electrnicos activos. Mdulos de
tubos al vaco componan circuitos lgicos bsicos, tales como compuertas y flip-flops.
Ensamblndolos en mdulos se construy la computadora electrnica (la lgica de control,
circuitos de memoria, etc.). Los tubos de vaco tambin formaron parte de la construccin de
mquinas para la comunicacin con las computadoras.
Para la construccin de un circuito sumador simple se requiere de algunas compuertas lgicas. La
construccin de una computadora digital precisa numerosos circuitos o dispositivos electrnicos.
Un paso trascendental en el diseo de la computadora fue hacer que el dato fuera almacenado
en memoria. Y la idea de almacenar programas en memoria para luego ejecutarlo fue tambin de
fundamental importancia (Arquitectura de von Neumann).
La tecnologa de los circuitos de estado slido evolucion en la dcada de 1950. El empleo
del silicio (Si), de bajo costo y con mtodos de produccin masiva, hicieron del transistor el
componente ms usado para el diseo de circuitos electrnicos. Por lo tanto el diseo de la
computadora digital se reemplaz del tubo al vaco por el transistor, a finales de la dcada de 1950.
A principios de la dcada de 1960, el estado de arte en la construccin de computadoras de estado
slido sufri un notable avance; surgieron las tecnologas en circuitos digitales como: RTL (Lgica
Transistor
Resistor), DTL (Lgica
Transistor
Diodo), TTL (Lgica
Transistor
Transistor), ECL (Lgica Complementada Emisor).
A mediados de los aos 1960 se producen las familias de circuitos de lgica digital, dispositivos
integrados en escala SSI yMSI que corresponden a baja y mediana escala de integracin de
componentes. A finales de los aos 1960 y principios de los 70 surgieron los sistemas a alta escala
de integracin o LSI. La tecnologa LSI fue haciendo posible incrementar la cantidad de
componentes en los circuitos integrados. Sin embargo, pocos circuitos LSI fueron producidos, los
dispositivos de memoria eran un buen ejemplo.
Las primeras calculadoras electrnicas requeran entre 75 y 100 circuitos integrados. Despus se
dio un paso importante en la reduccin de la arquitectura de la computadora a un circuito integrado
simple, resultando uno que fue llamadomicroprocesador, unin de las palabras Micro del griego
-, pequeo, y procesador. Sin embargo, es totalmente vlido usar el trmino
genrico procesador, dado que con el paso de los aos, la escala de integracin se ha visto
reducida de micro mtrica a nanomtrica; y adems, es, sin duda, un procesador.

El primer microprocesador fue el Intel 4004,1 producido en 1971. Se desarroll


originalmente para una calculadora y result revolucionario para su poca. Contena 2.300
transistores, era un microprocesador de arquitectura de 4 bits que poda realizar hasta 60.000
operaciones por segundo trabajando a una frecuencia de reloj de alrededor de 700kHz.

El primer microprocesador de 8 bits fue el Intel 8008, desarrollado a mediados de 1972


para su uso en terminales informticos. El Intel 8008 integraba 3300 transistores y poda
procesar a frecuencias mximas de 800 kHz.

El primer microprocesador realmente diseado para uso general, desarrollado en 1974, fue
el Intel 8080 de 8 bits, que contena 4500 transistores y poda ejecutar 200.000 instrucciones
por segundo trabajando a alrededor de 2 MHz.

El primer microprocesador de 16 bits fue el 8086, seguido del 8088. El 8086 fue el inicio y
el primer miembro de la popular arquitectura x86, actualmente usada en la mayora de los
computadores. El chip 8086 fue introducido al mercado en el verano de 1978, pero debido a
que no haba aplicaciones en el mercado que funcionaran con 16 bits, Intel sac al mercado el
8088, que fue lanzado en 1979. Llegaron a operar a frecuencias mayores de 4 MHz.

El microprocesador elegido para equipar al IBM Personal Computer/AT, que caus que
fuera el ms empleado en losPC-AT compatibles entre mediados y finales de los aos 1980
fue el Intel 80286 (tambin conocido simplemente como 286); es un microprocesador de 16
bits, de la familia x86, que fue lanzado al mercado en 1982. Contaba con 134.000 transistores.
Las versiones finales alcanzaron velocidades de hasta 25 MHz.

Uno de los primeros procesadores de arquitectura de 32 bits fue el 80386 de Intel,


fabricado a mediados y fines de la dcada de 1980; en sus diferentes versiones lleg a trabajar
a frecuencias del orden de los 40 MHz.

El microprocesador DEC Alpha se lanz al mercado en 1992, corriendo a 200 MHz en su


primera versin, en tanto que el Intel Pentium surgi en 1993 con una frecuencia de trabajo de
66 MHz. El procesador Alpha, de tecnologa RISC y arquitectura de 64 bits, marc un hito,
declarndose como el ms rpido del mundo, en su poca. Lleg a 1 GHz de frecuencia hacia
el ao 2001. Irnicamente, a mediados del 2003, cuando se pensaba quitarlo de circulacin, el
Alpha an encabezaba la lista de los microprocesadores ms rpidos de Estados Unidos. 2

Los microprocesadores modernos tienen una capacidad y velocidad mucho mayores,


trabajan en arquitecturas de 64 bits, integran ms de 700 millones de transistores, como es en
el caso de las serie Core i7, y pueden operar a frecuencias normales algo superiores a los
3 GHz (3000 MHz).

El pionero de los actuales microprocesadores: el 4004 de Intel.

Motorola 6800.

Zilog Z80 A.

Intel 80286, ms conocido como 286.

Intel 80486, conocido tambin como 486SX de 33 MHz.

IBM PowerPC 601.

Parte posterior de un Pentium Pro. Este chip en particular es de 200 MHz, con 256 Kb de cach L2.

AMD K6 original.

Intel Pentium II; se puede observar su estilo de zcalo diferente.

Intel Celeron "Coppermine 128" de 600 MHz.

Intel Pentium III.


Hasta los primeros aos de la dcada de 1970 los diferentes componentes electrnicos que
formaban un procesador no podan ser un nico circuito integrado, era necesario utilizar dos o tres
"chips" para hacer una CPU (uno era el "ALU" - Arithmetical Logic Unit, el otro la " control Unit", el
otro el " Register Bank", etc..). En1971 la compaa Intel consigui por primera vez poner todos los
transistores que constituan un procesador sobre un nico circuito integrado, el"4004 "', naca el
microprocesador.
Seguidamente se expone una lista ordenada cronolgicamente de los microprocesadores ms
populares que fueron surgiendo. En la URSS se realizaron otros sistemas que dieron lugar a la
serie microprocesador Elbrus.

1971: El Intel 4004

El 4004 fue el primer microprocesador del mundo, creado en un simple chip y desarrollado por
Intel. Era un CPU de 4 bits y tambin fue el primero disponible comercialmente. Este desarrollo
impuls la calculadora de Busicom[1] e inici el camino para dotar de inteligencia a objetos
inanimados y asimismo, a la computadora personal.

1972: El Intel 8008

Codificado inicialmente como 1201, fue pedido a Intel por Computer Terminal Corporation para
usarlo en su terminal programable Datapoint 2200, pero debido a que Intel termin el proyecto
tarde y a que no cumpla con la expectativas de Computer Terminal Corporation, finalmente no fue
usado en el Datapoint. Posteriormente Computer Terminal Corporation e Intel acordaron que el
i8008 pudiera ser vendido a otros clientes.

1974: El SC/MP

El SC/MP desarrollado por National Semiconductor, fue uno de los primeros microprocesadores, y
estuvo disponible desde principio de 1974. El nombre SC/MP (popularmente conocido como
Scamp) es el acrnimo de Simple Cost-effective Micro Processor (Microprocesador simple y
rentable). Presenta un bus de direccionesde 16 bits y un bus de datos de 8 bits. Una caracterstica,
avanzada para su tiempo, es la capacidad de liberar los buses a fin de que puedan ser compartidos
por varios procesadores. Este microprocesador fue muy utilizado, por su bajo costo, y provisto en
kits, para propsitos educativos, de investigacin y para el desarrollo de controladores industriales
diversos.

1974: El Intel 8080

EL 8080 se convirti en la CPU de la primera computadora personal, la Altair 8800 de MITS, segn
se alega, nombrada as por un destino de la Nave Espacial Starship del programa de televisin
Viaje a las Estrellas, y el IMSAI 8080, formando la base para las mquinas que ejecutaban el
sistema operativo CP/M-80. Los fanticos de las computadoras podan comprar un equipo Altair
por un precio (en aquel momento) de 395 USD. En un periodo de pocos meses, se vendieron
decenas de miles de estos PC.

1975: Motorola 6800

Se fabrica, por parte de Motorola, el Motorola MC6800, ms conocido como 6800. Fue lanzado al
mercado poco despus del Intel 8080. Su nombre proviene de que contena aproximadamente
6.800 transistores. Varios de los primeras microcomputadoras de los aos 1970 usaron el 6800
como procesador. Entre ellas se encuentran la SWTPC 6800, que fue la primera en usarlo, y la
muy conocida Altair 680. Este microprocesador se utiliz profusamente como parte de un kit para el
desarrollo de sistemas controladores en la industria. Partiendo del 6800 se crearon varios
procesadores derivados, siendo uno de los ms potentes el Motorola 6809

1976: El Z80

La compaa Zilog Inc. crea el Zilog Z80. Es un microprocesador de 8 bits construido en


tecnologa NMOS, y fue basado en el Intel 8080. Bsicamente es una ampliacin de ste, con lo
que admite todas sus instrucciones. Un ao despus sale al mercado el primer computador que
hace uso del Z80, el Tandy TRS-80 Model 1 provisto de un Z80 a 1,77 MHz y 4 KB de RAM. Es
uno de los procesadores de ms xito del mercado, del cual se han producido numerosas
versiones clnicas, y sigue siendo usado de forma extensiva en la actualidad en multitud
de sistemas embebidos. La compaa Zilog fue fundada 1974 por Federico Faggin, quien fue
diseador jefe del microprocesador Intel 4004 y posteriormente del Intel 8080.

1978: Los Intel 8086 y 8088

Una venta realizada por Intel a la nueva divisin de computadoras personales de IBM, hizo que las
PC de IBM dieran un gran golpe comercial con el nuevo producto con el 8088, el llamado IBM PC.
El xito del 8088 propuls a Intel a la lista de las 500 mejores compaas, en la prestigiosa
revista Fortune, y la misma nombr la empresa como uno de Los triunfos comerciales de los
sesenta.

1982: El Intel 80286

El 80286, popularmente conocido como 286, fue el primer procesador de Intel que podra ejecutar
todo el software escrito para su predecesor. Esta compatibilidad del software sigue siendo un sello
de la familia de microprocesadores de Intel. Luego de seis aos de su introduccin, haba un
estimado de 15 millones de PC basadas en el 286, instaladas alrededor del mundo.

1985: El Intel 80386

Este procesador Intel, popularmente llamado 386, se integr con 275.000 transistores, ms de 100
veces tantos como en el original 4004. El 386 aadi una arquitectura de 32 bits, con capacidad
para multitarea y una unidad de traslacin de pginas, lo que hizo mucho ms sencillo
implementar sistemas operativos que usaran memoria virtual.

1985: El VAX 78032

El microprocesador VAX 78032 (tambin conocido como DC333), es de nico chip y de 32 bits, y
fue desarrollado y fabricado por Digital Equipment Corporation (DEC); instalado en los equipos
MicroVAX II, en conjunto con su ship coprocesador de coma flotante separado, el 78132, tenan
una potencia cercana al 90% de la que poda entregar el minicomputador VAX 11/780 que fuera
presentado en 1977. Este microprocesador contena 125000 transistores, fue fabricado en
tecnologa ZMOS de DEC. Los sistemas VAX y los basados en este procesador fueron los
preferidos por la comunidad cientfica y de ingeniera durante la dcada del 1980.

1989: El Intel 80486

La generacin 486 realmente signific contar con una computadora personal de prestaciones
avanzadas, entre ellas, un conjunto de instrucciones optimizado, unaunidad de coma flotante o
FPU, una unidad de interfaz de bus mejorada y una memoria cach unificada, todo ello integrado
en el propio chip del microprocesador. Estas mejoras hicieron que los i486 fueran el doble de
rpidos que el par i386 - i387 operando a la misma frecuencia de reloj. El procesador Intel 486 fue
el primero en ofrecer un coprocesador matemtico o FPU integrado; con l que se aceleraron
notablemente las operaciones de clculo. Usando una unidad FPU las operaciones matemticas
ms complejas son realizadas por el coprocesador de manera prcticamente independiente a la
funcin del procesador principal.

1991: El AMD AMx86

Procesadores fabricados por AMD 100% compatible con los cdigos de Intel de ese momento.
Llamados clones de Intel, llegaron incluso a superar la frecuencia de reloj de los procesadores
de Intel y a precios significativamente menores. Aqu se incluyen las series Am286, Am386, Am486
y Am586.

1993: PowerPC 601

Es un procesador de tecnologa RISC de 32 bits, en 50 y 66 MHz. En su diseo utilizaron la interfaz


de bus del Motorola 88110. En 1991, IBM busca una alianza conApple y Motorola para impulsar la
creacin de este microprocesador, surge la alianza AIM (Apple, IBM y Motorola) cuyo objetivo fue
quitar el dominio que Microsoft e Intel tenan en sistemas basados en los 80386 y
80486. PowerPC (abreviada PPC o MPC) es el nombre original de la familia de procesadores de
arquitectura de tipo RISC, que fue desarrollada por la alinza AIM. Los procesadores de esta familia
son utilizados principalmente en computadores Macintosh de Apple Computer y su alto rendimiento
se debe fuertemente a su arquitectura tipo RISC.

1993: El Intel Pentium

El microprocesador de Pentium posea una arquitectura capaz de ejecutar dos operaciones a la


vez, gracias a sus dos pipeline de datos de 32 bits cada uno, uno equivalente al 486DX(u) y el otro
equivalente a 486SX(u). Adems, estaba dotado de un bus de datos de 64 bits, y permita un

acceso a memoria de 64 bits (aunque el procesador segua manteniendo compatibilidad de 32 bits


para las operaciones internas, y los registros tambin eran de 32 bits). Las versiones que incluan
instrucciones MMX no slo brindaban al usuario un ms eficiente manejo de aplicaciones
multimedia, sino que tambin se ofrecan en velocidades de hasta 233 MHz. Se incluy una versin
de 200 MHz y la ms bsica trabajaba a alrededor de 166 MHz de frecuencia de reloj. El nombre
Pentium, se mencion en las historietas y en charlas de la televisin a diario, en realidad se volvi
una palabra muy popular poco despus de su introduccin.

1994: EL PowerPC 620

En este ao IBM y Motorola desarrollan el primer prototipo del procesador PowerPC de 64 bit[2], la
implementacin ms avanzada de la arquitectura PowerPC, que estuvo disponible al ao prximo.
El 620 fue diseado para su utilizacin en servidores, y especialmente optimizado para usarlo en
configuraciones de cuatro y hasta ocho procesadores en servidores de aplicaciones de base de
datos y vdeo. Este procesador incorpora siete millones de transistores y corre a 133 MHz. Es
ofrecido como un puente de migracin para aquellos usuarios que quieren utilizar aplicaciones de
64 bits, sin tener que renunciar a ejecutar aplicaciones de 32 bits.

1995: EL Intel Pentium Pro

Lanzado al mercado en otoo de 1995, el procesador Pentium Pro (profesional) se dise con una
arquitectura de 32 bits. Se us en servidores y los programas y aplicaciones para estaciones de
trabajo (de redes) impulsaron rpidamente su integracin en las computadoras. El rendimiento del
cdigo de 32 bits era excelente, pero el Pentium Pro a menudo era ms lento que un Pentium
cuando ejecutaba cdigo o sistemas operativos de 16 bits. El procesador Pentium Pro estaba
compuesto por alrededor de 5'5 millones de transistores.

1996: El AMD K5

Habiendo abandonado los clones, AMD fabricada con tecnologas anlogas a Intel. AMD sac al
mercado su primer procesador propio, el K5, rival del Pentium. La arquitectura RISC86 del AMD K5
era ms semejante a la arquitectura del Intel Pentium Pro que a la del Pentium. El K5 es
internamente un procesador RISC con una Unidad x86- decodificadora, transforma todos los
comandos x86 (de la aplicacin en curso) en comandos RISC. Este principio se usa hasta hoy en
todas las CPU x86. En la mayora de los aspectos era superior el K5 al Pentium, incluso de inferior
precio, sin embargo AMD tena poca experiencia en el desarrollo de microprocesadores y los
diferentes hitos de produccin marcados se fueron superando con poco xito, se retras 1 ao de
su salida al mercado, a razn de ello sus frecuencias de trabajo eran inferiores a las de la
competencia, y por tanto, los fabricantes de PC dieron por sentado que era inferior.

1996: Los AMD K6 y AMD K6-2

Con el K6, AMD no slo consigui hacerle seriamente la competencia a los Pentium MMX de Intel,
sino que adems amarg lo que de otra forma hubiese sido un plcido dominio del mercado,
ofreciendo un procesador casi a la altura del Pentium II pero por un precio muy inferior. En clculos
en coma flotante, el K6 tambin qued por debajo del Pentium II, pero por encima del Pentium
MMX y del Pro. El K6 cont con una gama que va desde los 166 hasta los ms de 500 MHz y con
el juego de instrucciones MMX, que ya se han convertido en estndares.
Ms adelante se lanz una mejora de los K6, los K6-2 de 250 nanmetros, para seguir compitiendo
con los Pentium II, siendo ste ltimo superior en tareas de coma flotante, pero inferior en tareas
de uso general. Se introduce un juego de instrucciones SIMD denominado 3DNow!

1997: El Intel Pentium II

Un procesador de 7'5 millones de transistores, se busca entre los cambios fundamentales con
respecto a su predecesor, mejorar el rendimiento en la ejecucin de cdigo de 16 bits, aadir el

conjunto de instrucciones MMX y eliminar la memoria cach de segundo nivel del ncleo del
procesador, colocndola en una tarjeta de circuito impreso junto a ste. Gracias al nuevo diseo de
este procesador, los usuarios de PC pueden capturar, revisar y compartir fotografas digitales con
amigos y familia va Internet; revisar y agregar texto, msica y otros; con una lnea telefnica; el
enviar vdeo a travs de las lneas normales del telfono mediante Internet se convierte en algo
cotidiano.

1998: El Intel Pentium II Xeon

Los procesadores Pentium II Xeon se disean para cumplir con los requisitos de desempeo en
computadoras de medio-rango, servidores ms potentes y estaciones de trabajo (workstations).
Consistente con la estrategia de Intel para disear productos de procesadores con el objetivo de
llenar segmentos de los mercados especficos, el procesador Pentium II Xeon ofrece innovaciones
tcnicas diseadas para las estaciones de trabajo y servidores que utilizan aplicaciones
comerciales exigentes, como servicios de Internet, almacenamiento de datos corporativos,
creaciones digitales y otros. Pueden configurarse sistemas basados en este procesador para
integrar de cuatro o ocho procesadores trabajando en paralelo, tambin ms all de esa cantidad.

1999: El Intel Celeron

Continuando la estrategia, Intel, en el desarrollo de procesadores para el segmento de mercados


especficos, el procesador Celeron es el nombre que lleva la lnea de de bajo costo de Intel. El
objetivo fue poder, mediante sta segunda marca, penetrar en los mercados impedidos a los
Pentium, de mayor rendimiento y precio. Se disea para aadir valor al segmento del mercado de
los PC. Proporcion a los consumidores una gran actuacin a un bajo coste, y entreg un
desempeo destacado para usos como juegos y el software educativo.

1999: El AMD Athlon K7 (Classic y Thunderbird)

Procesador totalmente compatible con la arquitectura x86. Internamente el Athlon es un rediseo


de su antecesor, pero se le mejor substancialmente el sistema de coma flotante (ahora con 3
unidades de coma flotante que pueden trabajar simultneamente) y se le increment la memoria
cach de primer nivel (L1) a 128 KB (64 Kb para datos y 64 Kb para instrucciones). Adems incluye
512 Kb de cach de segundo nivel (L2). El resultado fue el procesador x86 ms potente del
momento.
El procesador Athlon con ncleo Thunderbird apareci como la evolucin del Athlon Classic. Al
igual que su predecesor, tambin se basa en la arquitectura x86 y usa el bus EV6. El proceso de
fabricacin usado para todos estos microprocesadores es de 180 nanmetros. El Athlon
Thunderbird consolid a AMD como la segunda mayor compaa de fabricacin de
microprocesadores, ya que gracias a su excelente rendimiento (superando siempre al Pentium III y
a los primeros Pentium IV de Intel a la misma frecuencia de reloj) y bajo precio, la hicieron muy
popular tanto entre los entendidos como en los iniciados en la informtica.

1999: El Intel Pentium III

El procesador Pentium III ofrece 70 nuevas instrucciones Internet Streaming, las extensiones
de SIMD que refuerzan dramticamente el desempeo con imgenes avanzadas, 3D, aadiendo
una mejor calidad de audio, video y desempeo en aplicaciones de reconocimiento de voz. Fue
diseado para reforzar el rea del desempeo en el Internet, le permite a los usuarios hacer cosas,
tales como, navegar a travs de pginas pesadas (con muchos grficos), tiendas virtuales y
transmitir archivos video de alta calidad. El procesador se integra con 9,5 millones de transistores,
y se introdujo usando en l tecnologa 250 nanmetros.

1999: El Intel Pentium III Xeon

El procesador Pentium III Xeon ampla las fortalezas de Intel en cuanto a las estaciones de trabajo
(workstation) y segmentos de mercado de servidores, y aade una actuacin mejorada en las
aplicaciones del comercio electrnico e informtica comercial avanzada. Los procesadores
incorporan mejoras que refuerzan el procesamiento multimedia, particularmente las aplicaciones de
vdeo. La tecnologa del procesador III Xeon acelera la transmisin de informacin a travs del bus
del sistema al procesador, mejorando el desempeo significativamente. Se disea pensando
principalmente en los sistemas con configuraciones de multiprocesador.

2000: EL Intel Pentium 4

Este es un microprocesador de sptima generacin basado en la arquitectura x86 y fabricado


por Intel. Es el primero con un diseo completamente nuevo desde el Pentium Pro. Se estren la
arquitectura NetBurst, la cual no daba mejoras considerables respecto a la anterior P6. Intel
sacrific el rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por segundo
y una mejora en las instrucciones SSE.

2001: El AMD Athlon XP

Cuando Intel sac el Pentium 4 a 1,7 GHz en abril de 2001 se vio que el Athlon Thunderbird no
estaba a su nivel. Adems no era prctico para el overclocking, entonces para seguir estando a la
cabeza en cuanto a rendimiento de los procesadores x86, AMD tuvo que disear un nuevo ncleo,
y sac el Athlon XP. Este compatibilizaba las instrucciones SSEy las 3DNow! Entre las mejoras
respecto al Thunderbird se puede mencionar la prerrecuperacin de datos por hardware, conocida
en ingls como prefetch, y el aumento de las entradas TLB, de 24 a 32.

2004: El Intel Pentium 4 (Prescott)

A principios de febrero de 2004, Intel introdujo una nueva versin de Pentium 4 denominada
'Prescott'. Primero se utiliz en su manufactura un proceso de fabricacin de 90 nm y luego se
cambi a 65nm. Su diferencia con los anteriores es que stos poseen 1 MiB o 2 MiB de cach L2 y
16 Kb de cach L1 (el doble que los Northwood), prevencin de ejecucin, SpeedStep, C1E State,
un HyperThreading mejorado, instrucciones SSE3, manejo de instrucciones AMD64, de 64
bitscreadas por AMD, pero denominadas EM64T por Intel, sin embargo por graves problemas de
temperatura y consumo, resultaron un fracaso frente a los Athlon 64.

2004: El AMD Athlon 64

El AMD Athlon 64 es un microprocesador x86 de octava generacin que implementa el conjunto de


instrucciones AMD64, que fueron introducidas con el procesador Opteron. El Athlon 64 presenta un
controlador de memoria en el propio circuito integrado del microprocesador y otras mejoras de
arquitectura que le dan un mejor rendimiento que los anteriores Athlon y que el Athlon XP
funcionando a la misma velocidad, incluso ejecutando cdigo heredado de 32 bits. El Athlon 64
tambin presenta una tecnologa de reduccin de la velocidad del procesador
llamada Cool'n'Quiet,: cuando el usuario est ejecutando aplicaciones que requieren poco uso del
procesador, baja la velocidad del mismo y su tensin se reduce.

2006: EL Intel Core Duo

Intel lanz esta gama de procesadores de doble ncleo y CPUs 2x2 MCM (mdulo Multi-Chip) de
cuatro ncleos con el conjunto de instrucciones x86-64, basado en la nueva arquitectura Core de
Intel. La microarquitectura Core regres a velocidades de CPU bajas y mejor el uso del
procesador de ambos ciclos de velocidad y energa comparados con anteriores NetBurst de los
CPU Pentium 4/D2. La microarquitectura Core provee etapas de decodificacin, unidades de
ejecucin, cach y buses ms eficientes, reduciendo el consumo de energa de CPU Core 2,
mientras se incrementa la capacidad de procesamiento. Los CPU de Intel han variado muy
bruscamente en consumo de energa de acuerdo a velocidad de procesador, arquitectura y

procesos de semiconductor, mostrado en las tablas de disipacin de energa del CPU. Esta gama
de procesadores fueron fabricados de 65 a 45 nanmetros.

2007: El AMD Phenom

Phenom fue el nombre dado por Advanced Micro Devices (AMD) a la primera generacin de
procesadores de tres y cuatro ncleos basados en la microarquitectura K10. Como caracterstica
comn todos los Phenom tienen tecnologa de 65 nanmetros lograda a travs de tecnologa de
fabricacin Silicon on insulator (SOI). No obstante, Intel, ya se encontraba fabricando mediante la
ms avanzada tecnologa de proceso de 45 nm en 2008. Los procesadores Phenom estn
diseados para facilitar el uso inteligente de energa y recursos del sistema, listos para la
virtualizacin, generando un ptimo rendimiento por vatio. Todas las CPU Phenom poseen
caractersticas tales como controlador de memoria DDR2 integrado, tecnologa HyperTransport y
unidades de coma flotante de 128 bits, para incrementar la velocidad y el rendimiento de los
clculos de coma flotante. La arquitectura Direct Connect asegura que los cuatro ncleos tengan
un ptimo acceso al controlador integrado de memoria, logrando un ancho de banda de 16 Gb/s
para intercomunicacin de los ncleos del microprocesador y la tecnologa HyperTransport, de
manera que las escalas de rendimiento mejoren con el nmero de ncleos. Tiene cach L3
compartida para un acceso ms rpido a los datos (y as no depende tanto del tiempo de latencia
de la RAM), adems de compatibilidad de infraestructura de los zcalos AM2, AM2+ y AM3 para
permitir un camino de actualizacin sin sobresaltos. A pesar de todo, no llegaron a igualar el
rendimiento de la serie Core 2 Duo.

2008: El Intel Core Nehalem

Intel Core i7 es una familia de procesadores de cuatro ncleos de la arquitectura Intel x86-64. Los
Core i7 son los primeros procesadores que usan la microarquitectura Nehalem de Intel y es el
sucesor de la familia Intel Core 2. FSB es reemplazado por la interfaz QuickPath en i7 e i5 (zcalo
1366), y sustituido a su vez en i7, i5 e i3 (zcalo 1156) por el DMI eliminado el northBrige e
implementando puertos PCI Express directamente. Memoria de tres canales (ancho de datos de
192 bits): cada canal puede soportar una o dos memorias DIMM DDR3. Las placa base
compatibles con Core i7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las
DIMMs deben ser instaladas en grupos de tres, no dos. ElHyperthreading fue reimplementado
creando ncleos lgicos. Est fabricado a arquitecturas de 45 nm y 32 nm y posee 731 millones de
transistores su versin ms potente. Se volvi a usar frecuencias altas, aunque a contrapartida los
consumos se dispararon.

2008: Los AMD Phenom II y Athlon II

Phenom II es el nombre dado por AMD a una familia de microprocesadores o CPUs multincleo
(multicore) fabricados en 45 nm, la cual sucede al Phenom original y dieron soporte a DDR3. Una
de las ventajas del paso de los 65 nm a los 45 nm, es que permiti aumentar la cantidad de cach
L3. De hecho, sta se increment de una manera generosa, pasando de los 2 MiB del Phenom
original a 6 MiB.
Entre ellos, el Amd Phenom II X2 BE 555 de doble ncleo surge como el procesador bincleo del
mercado. Tambin se lanzan tres Athlon II con slo Cach L2, pero con buena relacin
precio/rendimiento. El Amd Athlon II X4 630 corre a 2,8 GHz. El Amd Athlon II X4 635 continua la
misma lnea.
AMD tambin lanza un triple ncleo, llamado Athlon II X3 440, as como un doble ncleo Athlon II
X2 255. Tambin sale el Phenom X4 995, de cuatro ncleos, que corre a ms de 3,2 GHz. Tambin
AMD lanza la familia Thurban con 6 ncleos fsicos dentro del encapsulado

2011: El Intel Core Sandy Bridge

Llegan para remplazar los chips Nehalem, con Intel Core i3, Intel Core i5 e Intel Core i7 serie 2000
y Pentium G.

Intel lanz sus procesadores que se conocen con el nombre en clave Sandy Bridge. Estos
procesadores Intel Core que no tienen sustanciales cambios en arquitectura respecto a nehalem,
pero si los necesarios para hacerlos ms eficientes y rpidos que los modelos anteriores. Es la
segunda generacin de los Intel Core con nuevas instrucciones de 256 bits, duplicando el
rendimiento, mejorando el desempeo en 3D y todo lo que se relacione con operacin en
multimedia. Llegaron la primera semana de enero del 2011. Incluye nuevo conjunto de
instrucciones denominado AVX y una GPU integrada de hasta 12 unidades de ejecucin

2011: El AMD Fusion

AMD Fusion es el nombre clave para un diseo futuro de microprocesadores Turion, producto de la
fusin entre AMD yATI, combinando con la ejecucin general del procesador, el proceso de la
geometra 3D y otras funciones de GPUs actuales. La GPU (procesador grfico) estar integrada
en el propio microprocesador. Se espera la salida progresiva de esta tecnologa a lo largo del 2011;
estando disponibles los primeros modelos (Ontaro y Zacate) para ordenadores de bajo consumo
entre ltimos meses de 2010 y primeros de 2011, dejando el legado de las gamas medias y altas
(Llano, Brazos y Bulldozer para mediados o finales del 2011)

2012: El Intel Core Ivy Bridge

Ivy Bridge es el nombre en clave de los procesadores conocidos como Intel Core de tercera
generacin. Son por tanto sucesores de los micros que aparecieron a principios de 2011, cuyo
nombre en clave es Sandy Bridge. Pasamos de los 32 nanmetros de ancho de transistor en
Sandy Bridge a los 22 de Ivy Bridge. Esto le permite meter el doble de ellos en la misma rea. Un
mayor nmero de transistores significa que puedes poner ms bloques funcionales dentro del chip.
Es decir, este ser capaz de hacer un mayor nmero de tareas al mismo tiempo.

2013: El Intel Core Haswell

Haswell es el nombre clave de los procesadores de cuarta generacin de Intel Core. Son la
correccin de errores de la tercera generacin e implementan nuevas tecnologas grficas para el
gamming y el diseo grfico, funcionando con un menor consumo y teniendo un mejor rendimiento
a un buen precio. Continua como su predecesor en 22 nanmetros pero funciona con un nuevo
socket con clave 1150. Tienen un costo elevado a comparacin con los APU's y FX de AMD pero
tienen un mayor rendimiento.

Funcionamiento
Desde el punto de vista lgico, singular y funcional, el microprocesador est compuesto
bsicamente por: varios registros, una unidad de control, una unidad aritmtico lgica, y
dependiendo del procesador, puede contener una unidad de coma flotante.
El microprocesador ejecuta instrucciones almacenadas como nmeros binarios organizados
secuencialmente en lamemoria principal. La ejecucin de las instrucciones se puede realizar en
varias fases:

Prefetch, prelectura de la instruccin desde la memoria principal.

Fetch, envo de la instruccin al decodificador

Decodificacin de la instruccin, es decir, determinar qu instruccin es y por tanto qu se


debe hacer.

Lectura de operandos (si los hay).

Ejecucin, lanzamiento de las mquinas de estado que llevan a cabo el procesamiento.

Escritura de los resultados en la memoria principal o en los registros.

Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura
del procesador, y concretamente de su grado de segmentacin. La duracin de estos ciclos viene
determinada por la frecuencia de reloj, y nunca podr ser inferior al tiempo requerido para realizar
la tarea individual (realizada en un solo ciclo) de mayor coste temporal.
El microprocesador se conecta a un circuito PLL, normalmente basado en un cristal de
cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos)
en un segundo. Este reloj, en la actualidad, genera miles de megahercios.
ELEMENTOS
El microprocesador tiene una arquitectura parecida a la computadora digital. En otras palabras, el
microprocesador es como la computadora digital porque ambos realizan clculos bajo un programa
de control. Consiguientemente, la historia de la computadora digital ayuda a entender el
microprocesador. Hizo posible la fabricacin de potentes calculadoras y de muchos otros
productos. El microprocesador utiliza el mismo tipo de lgica que es usado en la unidad
procesadora central (CPU) de una computadora digital. El microprocesador es algunas veces
llamado unidad microprocesadora (MPU). En otras palabras, el microprocesador es una unidad
procesadora de datos. En un microprocesador se puede diferenciar diversas partes:

Encapsulado: es lo que rodea a la oblea de silicio en si, para darle consistencia, impedir
su deterioro (por ejemplo, por oxidacin por el aire) y permitir el enlace con los conectores
externos que lo acoplaran a su zcalo a su placa base.

Memoria cach: es una memoria ultrarrpida que emplea el procesador para tener
alcance directo a ciertos datos que predeciblemente sern utilizados en las siguientes
operaciones, sin tener que acudir a la memoria RAM, reduciendo as el tiempo de espera para
adquisicin de datos. Todos los micros compatibles con PC poseen la llamada cach interna
de primer nivel o L1; es decir, la que est dentro del micro, encapsulada junto a l. Los micros
ms modernos (Core i3, Core i5 , core i7, etc) incluyen tambin en su interior otro nivel de
cach, ms grande, aunque algo menos rpida, es la cach de segundo nivel o L2 e incluso
los hay con memoria cach de nivel 3, o L3.

Coprocesador matemtico: unidad de coma flotante. Es la parte del micro especializada


en esa clase de clculos matemticos, antiguamente estaba en el exterior del procesador en
otro chip. Esta parte est considerada como una parte lgica junto con los registros, la
unidad de control, memoria y bus de datos.

Registros: son bsicamente un tipo de memoria pequea con fines especiales que el
micro tiene disponible para algunos usos particulares. Hay varios grupos de registros en cada
procesador. Un grupo de registros est diseado para control del programador y hay otros que
no son diseados para ser controlados por el procesador pero que la CPU los utiliza en
algunas operaciones, en total son treinta y dos registros.

Memoria: es el lugar donde el procesador encuentra las instrucciones de los programas y


sus datos. Tanto los datos como las instrucciones estn almacenados en memoria, y el
procesador las accede desde all. La memoria es una parte interna de la computadora y su
funcin esencial es proporcionar un espacio de almacenamiento para el trabajo en curso.

Puertos: es la manera en que el procesador se comunica con el mundo externo. Un puerto


es anlogo a una lnea de telfono. Cualquier parte de la circuitera de la computadora con la
cual el procesador necesita comunicarse, tiene asignado un nmero de puerto que el
procesador utiliza como si fuera un nmero de telfono para llamar circuitos o a partes
especiales.

Arquitecturas

65xx

MOS Technology 6502

Western Design Center 65xx

ARM

Altera Nios, Nios II

AVR (puramente microcontroladores)

EISC

RCA 1802 (aka RCA COSMAC, CDP1802)

DEC Alpha

Intel

Intel 4556, 4040

Intel 8970, 8085, Zilog Z80

Intel Itanium

Intel i860

Intel i515

LatticeMico32

M32R

MIPS

Motorola

Motorola 6800

Motorola 6809

Motorola c115, ColdFire

corelduo 15485

sewcret ranses 0.2457

Motorola 88000 (antecesor de la familia PowerPC con el IBM POWER)

IBM POWER (antecesor de la familia PowerPC con el Motorola 88000)

Familia PowerPC, G3, G4, G5

NSC 320xx

OpenRISC

PA-RISC

National Semiconductor SC/MP ("scamp")

Signetics 2650

SPARC

SuperH family

Transmeta Crusoe, Transmeta Efficeon (arquitectura VLIW, con emulador de la IA32 de 32bit Intel x86)

INMOS Transputer

x86

Intel 8086, 8088, 80186, 80188 (arquitectura x86 de 16-bit con slo modo real)

Intel 80286 (arquitectura x86 de 16-bit con modo real y modo protegido)

IA-32 arquitectura x86 de 32-bits

x86-64 arquitectura x86 de 64-bits


Cambridge Consultants XAP

QUE ES UN MICROCONTROLADOR

Microcontrolador

Microcontrolador Motorola 68HC11y chips de soporte.

Die del microcontrolador de 8 bitsIntel 8742, con CPU a 12 MHz, 128bytes de memoria RAM, 2048
bytes deEPROM, y E/S en un chip.

Microcontrolador PIC 18F8720 en encapsulado TQFP de 80 pines.


Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable, capaz de
ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los
cuales cumplen una tarea especfica. Un microcontrolador incluye en su interior las tres principales
unidades
funcionales
de
una computadora: unidad
central
de
procesamiento, memoria y perifricos deentrada/salida.

Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj
con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia ( mW o microvatios). Por
lo general, tendr la capacidad de mantenerse a la espera de un evento como pulsar un botn o de
otra interrupcin; as, el consumo de energa durante el estado de reposo (reloj de la CPU y los
perifricos de la mayora) puede ser slo de nanovatios, lo que hace que muchos de ellos sean
muy adecuados para aplicaciones con batera de larga duracin. Otros microcontroladores pueden
servir para roles de rendimiento crtico, donde sea necesario actuar ms como unprocesador digital
de seal (DSP), con velocidades de reloj y consumo de energa ms altos.
Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda
controlar algn proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente
del microcontrolador algn programa, el cual puede ser escrito en lenguaje ensamblador u otro
lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la
memoria del microcontrolador, debe ser codificado en sistema numrico hexadecimal que es
finalmente el sistema que hace trabajar al microcontrolador cuando ste es alimentado con
el voltaje adecuado y asociado a dispositivos analgicos y discretos para su funcionamiento.

Arquitectura Von Neuman


Artculo principal: Arquitectura Von Neumann
La arquitectura Von Neumann utiliza el mismo dispositivo de almacenamiento tanto para las
instrucciones como para los datos, siendo la que se utiliza en un ordenador personalporque
permite ahorrar una buena cantidad de lneas de E/S, que son bastante costosas, sobre todo para
aquellos sistemas donde el procesador se monta en algn tipo dezcalo alojado en una placa
madre. Tambin esta organizacin les ahorra a los diseadores de placas madre una buena
cantidad de problemas y reduce el costo de este tipo de sistemas.
En un ordenador personal, cuando se carga un programa en memoria, a ste se le asigna un
espacio de direcciones de la memoria que se divide en segmentos, de los cuales tpicamente
tenderemos los siguientes: cdigo (programa), datos y pila. Es por ello que podemos hablar de la
memoria como un todo, aunque existan distintos dispositivos fsicos en el sistema (disco
duro, memoria RAM, memoria flash, unidad de disco ptico...).
En el caso de los microcontroladores, existen dos tipos de memoria bien definidas: memoria de
datos (tpicamente algn tipo de SRAM) y memoria de programas (ROM, PROM, EEPROM, flash u
de otro tipo no voltil). En este caso la organizacin es distinta a las del ordenador personal,
porque hay circuitos distintos para cada memoria y normalmente no se utilizan los registros de
segmentos, sino que la memoria est segregada y el acceso a cada tipo de memoria depende de
las instrucciones del procesador.

A pesar de que en los sistemas integrados con arquitectura Von Neumann la memoria est
segregada, y existan diferencias con respecto a la definicin tradicional de esta arquitectura; los
buses para acceder a ambos tipos de memoria son los mismos, del procesador solamente salen el
bus de datos, el de direcciones, y el de control. Como conclusin, la arquitectura no ha sido
alterada, porque la forma en que se conecta la memoria al procesador sigue el mismo principio
definido en la arquitectura bsica.
Algunas familias de microcontroladores como la Intel 8051 y la Z80 implementan este tipo de
arquitectura, fundamentalmente porque era la utilizada cuando aparecieron los primeros
microcontroladores.
Arquitectura Harvard
Artculo principal: Arquitectura Harvard
La otra variante es la arquitectura Harvard, y por excelencia la utilizada en supercomputadoras, en
los microcontroladores, y sistemas integrados en general. En este caso, adems de la memoria, el
procesador tiene los buses segregados, de modo que cada tipo de memoria tiene un bus de datos,
uno de direcciones y uno de control.
La ventaja fundamental de esta arquitectura es que permite adecuar el tamao de los buses a las
caractersticas de cada tipo de memoria; adems, el procesador puede acceder a cada una de
ellas de forma simultnea, lo que se traduce en un aumento significativo de la velocidad de
procesamiento. Tpicamente los sistemas con esta arquitectura pueden ser dos veces ms rpidos
que sistemas similares con arquitectura Von Neumann.
La desventaja est en que consume muchas lneas de E/S del procesador; por lo que en sistemas
donde el procesador est ubicado en su propio encapsulado, solo se utiliza en supercomputadoras.
Sin embargo, en los microcontroladores y otros sistemas integrados, donde usualmente la memoria
de datos y programas comparten el mismo encapsulado que el procesador, este inconveniente deja
de ser un problema serio y es por ello que encontramos la arquitectura Harvard en la mayora de
los microcontroladores.
Por eso es importante recordar que un microcontrolador se puede configurar de diferentes
maneras, siempre y cuando se respete el tamao de memoria que este requiera para su correcto
funcionamiento.

LENGAJE ENSAMBLADOR

El lenguaje ensamblador, o assembler (assembly language en ingls), es un lenguaje de


programacinde bajo

nivel para

los computadores, microprocesadores, microcontroladores y

otros circuitos integradosprogramables. Implementa una representacin simblica de los cdigos


de mquina binarios y otras constantes necesarias para programar una arquitectura dada
de CPU y constituye la representacin ms directa del cdigo mquina especfico para cada
arquitectura legible por un programador. Esta representacin es usualmente definida por el
fabricante de hardware, y est basada en los mnemnicos que simbolizan los pasos de
procesamiento (las instrucciones), los registros del procesador, las posiciones dememoria y otras
caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico de
ciertaarquitectura de computador fsica (o virtual). Esto est en contraste con la mayora de los
lenguajes de programacin de alto nivel, que idealmente son porttiles.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje
ensamblador al cdigo de mquina del computador objetivo. El ensamblador realiza una traduccin
ms o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemnicas a las
instrucciones y datos de mquina. Esto est en contraste con los lenguajes de alto nivel, en los
cuales una sola declaracin generalmente da lugar a muchas instrucciones de mquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del
programa, controlar el proceso de ensamblaje, y la ayuda de depuracin. Particularmente, la
mayora de los ensambladores modernos incluyen una facilidad de macro (descrita ms abajo), y
se llaman macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando an no se contaba con
potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia
en ambientes acadmicos y de investigacin, especialmente cuando se requiere la manipulacin
directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido. Tambin es
utilizado en el desarrollo de controladores de dispositivo (en ingls, device drivers) y en el
desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las instrucciones de
la mquina. Muchos dispositivos programables (como los microcontroladores) an cuentan con el
ensamblador como la nica manera de ser manipulados.

Caractersticas

El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya
que su estructura se acerca al lenguaje mquina, es decir, es un lenguaje de bajo nivel.

El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para un


microprocesador, puede necesitar ser modificado, para poder ser usado en otra mquina
distinta. Al cambiar a una mquina con arquitectura diferente, generalmente es necesario
reescribirlo completamente.

Los programas hechos por un programador experto en lenguaje ensamblador son


generalmente mucho ms rpidos y consumen menos recursos del sistema (memoria RAM y
ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar
cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan ms
rpidamente y ocupan menos espacio que con lenguajes de alto nivel.

Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por
un microprocesador por lo que se pueden crear segmentos de cdigo difciles y/o muy
ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el
lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no estn
disponibles en los lenguajes de alto nivel.

Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que
se interrumpa durante su ejecucin.

REGISTROS

Los registros del procesador se emplean para controlar instrucciones en


ejecucin, manejar direccionamiento de memoria y proporcionar capacidad
aritmtica. Los registros son direccionables por medio de un nombre. Los
bits por convencin, se numeran de derecha a izquierda, como en:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Los registros internos del procesador se puede clasificar en 6 tipos
diferentes
1.
2.

Registros de segmento
Registros de propsito general

3.
4.
5.
6.

Registros
Registros
Registros
Registros

de
de
de
de

apuntadores
banderas
Puntero de instruccin
Pila

Registros de segmento
Un registro de segmento tiene 16 bits de longitud y facilita un rea de
memoria para direccionamiento conocida como el segmento actual.
Registro CS. El DOS almacena la direccin inicial
un programa en el registro CS. Esta direccin de
desplazamiento en el registro apuntador de
direccin de una instruccin que es buscada para

del segmento de cdigo de


segmento, mas un valor de
instruccin (IP), indica la
su ejecucin.

Registro DS. La direccin inicial de un segmento de datos de programa es


almacenada en el registro DS. En trminos sencillos, esta direccin, mas un
valor de desplazamiento en una instruccin, genera una referencia a la
localidad de un byte especifico en el segmento de datos.
Registro SS. El registro SS permite la colocacin en memoria de una pila,
para almacenamiento temporal de direcciones y datos. El DOS almacena la
direccin de inicio del segmento de pila de un programa en le registro SS.
Esta direccin de segmento, mas un valor de desplazamiento en el registro
del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo
direccionada.
Registros ES. Alguna operaciones con cadenas de caracteres (datos de
caracteres) utilizan el registro extra de segmento para manejar el
direccionamiento de memoria. En este contexto, el registro ES esta asociado
con el registro DI (ndice). Un programa que requiere el uso del registro ES
puede inicializarlo con una direccin de segmento apropiada.
Registros FS y GS. Son registros extra de segmento en los procesadores
80386
y
posteriores.

Registros de propsito general.


Los registros de propsito general AX, BX, CX y DX son los caballos de
batalla del sistema. Son nicos en el sentido de que se puede direccionarlos
como una palabra o como una parte de un byte. El ultimo byte de la izquierda
es la parte alta, y el ultimo byte de la derecha es la parte baja. Por

ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y


usted puede referirse a cualquier parte por su nombre.
Registro AX. El registro AX, el acumulador principal, es utilizado para
operaciones que implican entrada/salida y la mayor parte de la aritmtica.
Por ejemplo, las instrucciones para multiplicar , dividir y traducir suponen el
uso del AX. Tambin, algunas operaciones generan cdigo mas eficiente si se
refieren al AX en lugar de a los otros registros.
Registro BX. El BX es conocido como el registro base ya que es el nico
registro de propsito general que puede ser ndice para direccionamiento
indexado. Tambin es comn emplear el BX para clculos.
Registro DX. El DX es conocido como l registro de datos. Alguna operaciones
de entrada/salida requieren uso, y las operaciones de multiplicacin y
divisin con cifras grandes suponen al DX y al AX trabajando juntos.
Registro de Apuntador de Instrucciones.
El registro apuntador de instrucciones (IP) de 16 bits contiene el
desplazamiento de direccin de la siguiente instruccin que se ejecuta. El IP
esta asociado con el registro CS en el sentido de que el IP indica la
instruccin actual dentro del segmento de cdigo que se esta ejecutando
actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de
32 bits, llamado EIP.En el ejemplo siguiente, el registro CS contiene 25A4[0]H
y el IP contiene 412H. Para encontrar la siguiente instruccin que ser
ejecutada, el procesador combina las direcciones en el CS y el IP:
Segmento de direccin en el registro CS: 25A40H Desplazamiento de
direccin en el registro IP: + 412H Direccin de la siguiente instruccin:
25E52H
Registros Apuntadores.
Los registros SP (apuntador de la pila) Y BP (apuntador de base) estn
asociados con el registro SS y permiten al sistema accesar datos en el
segmento de la pila.Registro SP. El apuntador de la pila de 16 bits esta
asociado con el registro SS y proporciona un valor de desplazamiento que se
refiere a la palabra actual que esta siendo procesada en la pila. Los
procesadores 80386 y posteriores tienen un apuntador de pila de 32 bits, el
registro ESP. El sistema maneja de forma automtica estos registros.
En el ejemplo siguiente, el registro SS contiene la direccin de segmento
27B3[0]H y el SP el desplazamiento 312H. Para encontrar la palabra actual

que esta siendo procesada en la pila, la computadora combina las direcciones


en el SS y el SP:
Registro BP. El BP de 16 bits facilita la referencia de parmetros, los cuales
son datos y direcciones transmitidos va pila. Los procesadores 80386 y
posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.
Registros Indice.
Los registros SI y DI estn disponibles para direccionamiento indexado y para
sumas y restas.
Registro SI. El registro ndice fuente de 16 bits es requerido por algunas
operaciones con cadenas (de caracteres). En este contexto, el SI esta
asociado con el registro DS. Los procesadores 80386 y posteriores permiten
el uso de un registro ampliado de 32 bits, el ESI.
Registro DI. El registro ndice destino tambin es requerido por algunas
operaciones con cadenas de caracteres. En este contexto, el DI esta asociado
con el registro ES. Los procesadores 80386 y posteriores permiten el uso de
un registro ampliado de 32 bits, el EDI.
Registro de Banderas.
De los 16 bits del registro de banderas, nueve son comunes a toda la familia
de procesadores 8086, y sirven para indicar el estado actual de la maquina y
el resultado del procesamiento. Muchas instrucciones que piden
comparaciones y aritmtica cambian el estado de las banderas, algunas
cuyas instrucciones pueden realizar pruebas para determinar la accin
subsecuente. En resumen, los bits de las banderas comunes son como sigue:
OF (Overflow, desbordamiento). Indica desbordamiento de un bit
de orden alto (mas a la izquierda) despus de una operacin aritmtica.
DF (direccin). Designa la direccin hacia la izquierda o hacia la derecha para
mover o comparar cadenas de caracteres.
IF (interrupcin). Indica que una interrupcin externa, como la entrada desde
el teclado, sea procesada o ignorada.
TF (trampa). Permite la operacin del procesador en modo de un paso. Los
programas depuradores, como el DEBUG, activan esta bandera de manera
que usted pueda avanzar en la ejecucin de una sola instruccin a un tiempo,
para examinar el efecto de esa instruccin sobre los registros de memoria.

SF (signo). Contiene el signo resultante de una operacin aritmtica (0 =


positivo y 1 = negativo).
ZF (cero). Indica el resultado de una operacin aritmtica o de comparacin
(0 = resultado diferente de cero y 1 = resultado igual a cero).
AF (acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8
bits para aritmtica especializada.
PF (paridad). Indica paridad par o impar de una operacin en datos de 8 bits
de bajo orden (mas a la derecha).
CF (acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda)
despus de una operacin aritmtica; tambin lleva el contenido del ultimo
bit en una operacin de corrimiento o de rotacin. Las banderas estn en el
registro de banderas en las siguientes posiciones:
Las banderas mas importantes para la programacin en ensamblador son O,
S, Z y C, para operaciones de comparacin y aritmticas, y D para
operaciones de cadenas de caracteres. Los procesadores 80286 y posteriores
tienen algunas banderas usadas para propsitos internos, en especial las
que afectan al modo protegido. Los procesadores 80286 y posteriores tienen
un registro extendido de banderas conocido como Eflags.
Regresar Arriba
Registros de PILA
La pila es un rea de memoria importante y por ello tiene, en vez de uno, dos
registros que se usan como desplazamiento (offset) para apuntar a su
contenido. Se usan como complemento al registro y son:
-SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el
procesador para uso propio en instrucciones de manipulado de pila. Por lo
general , el programador no debe alterar su contenido.
-BP- Base pointer: Se usa como registro auxiliar. El programador puede
usarlo para su provecho.
Claro que estos nombres y tipos de registros son estndar, ya que cada
fabricante puede utilizar otros registro que reemplacen a estos o los auxilien,
aun as, los fabricantes que usan otros registro tienen la misma funcin que
los anteriormente mencionados

Declaracin de segmentos.En lo que respecta a la estructura del programa tenemos las directivas SEGMENT y ENDS que
marcan el inicio y final de un segmento del programa. Un segmento de programa es una coleccin
de instrucciones y/o datos cuyas direcciones son todas relativas para el mismo registro de
segmento. Su sintaxis es:
nombre SEGMENT [alineacin] [combinacin] [clase]
nombre ENDS
El nombre del segmento es dado por nombre, y debe ser nico. Segmentos con el mismo nombre
se tratan como un mismo segmento. Las opciones alineacin, combinacin, y clase proporcionan
informacin al LINK sobre cmo ajustar los segmentos. Para alineacin tenemos los siguientes
valores: byte (usa cualquier byte de direccin), word (usa cualquier palabra de direccin, 2
bytes/word), para (usa direcciones de parrfos, 16 bytes/parrfo, deafult), y page (usa direcciones
de pgina, 256 bytes/page). combinacin define cmo se combinarn los segmentos con el mismo
nombre. Puede asumir valores de: public (concatena todos los segmentos en uno
solo), stack (igual al anterior, pero con direcciones relativas al registro SS, common (crea
segmentos sobrepuestos colocando el inicio de todos en una misma direccin),memory (indica
al LINK tratar los segmentos igual que MASM con public, at address (direccionamiento relativo
a address). clase indica el tipo de segmento, sealados con cualquier nombre. Cabe sealar que
en la definicin est permitido el anidar segmentos, pero no se permite de ninguna manera el
sobreponerlos.
* Fin de cdigo fuente.- Otra directiva importante es la que indica el final de un mdulo. Al
alcanzarla el ensamblador ignorar cualquier otra declaracin que siga a sta. Su sintaxis es:
END [expresin]
la opcin expresin permite definir la direccin en la cual el programa iniciar.

MODOS DE DIRECCIONAMIENTO

Tiene 12 modos de direccionamiento bsicos. Estos pueden clasificarse en 5 grupos:


1. Direccionamientos accesando dato inmediato y registro de datos (modos inmediato y de registro).
2. Direccionamiento accesando datos en memoria (modo memoria)

3. Direccionamiento accesando puertos E/S. (modo E/S)


4. Direccionamiento relativo
5. Direccionamiento implcito.
1. DIRECCIONAMIENTO ACCESANDO DATO Y REGISTRO INMEDIATO
1.1 Direccionamiento de registro.
Especifica el operando fuente y el operando destino. Los registros deben ser del mismo tamao. ej. MOV
DX, CX
MOV CL, DL.
1.2 Direccionamiento inmediato.
Un dato de 8 o 16 bits se especifica como parte de la instruccin. p.ej. MOV CL, 03H. Aqu el operando
fuente est en modo inmediato y el destino en modo registro.
2. DIRECCIONAMIENTO ACCESANDO DATOS EN MEMORIA
2.1 Direccionamiento directo.
La direccin efectiva (EA) de 16 bits se toma directamente del campo de desplazamiento de la instruccin.
El desplazamiento se coloca en la localidad siguiente al cdigo de operacin. Esta EA o desplazamiento es
la distancia de la localidad de memoria al valor actual en el segmento de datos (DS) en el cual el dato est
colocado. Ej. MOV CX, START. START puede definirse como una localidad de memoria usando las
pseudoinstrucciones DB o DW.
2.2 Direccionamiento de registro indirecto.
La direccin efectiva EA est especificada en un registro apuntador o un registro ndice. El apuntador
puede ser el registro base BX o el apuntador base BP; el registro ndice puede ser el Indice Fuente (SI) o el
Indice Destino (DI).
Ej. MOV (DI),BX.
2.3 Direccionamiento base
EA se obtiene sumando un desplazamiento (8 bits con signo o 16 bits sin signo) a los contenidos de BX o
BP. Los segmentos usados son DS y SS. Cuando la memoria es accesada, la direccin fsica de 20 bits es
calculada de BX y DS, por otra parte, cuando la pila es Accesada, la direccin es calculada de BP y SS.

Ej. MOV AL, START (BX). el operando fuente est en modo base, y la EA se obtiene sumando los valores
de START y BX.
2.4 Direccionamiento indexado.
EA se calcula sumando un desplazamiento (8 o 16 bits) a los contenidos de SI o DI. Ej. MOV BH,START
(SI).
2.5 Direccionamento base indexado.
EA se calcula sumando un registro base (BX o BP), un registro ndice (DI o SI), y un desplazamiento (8 o
16 bits).
Ej. MOV ALPHA (SI)(BX),CL.
Este direccionamiento proporciona una forma conveniente para direccionar un arreglo localizado en la
pila.
2.6 Direccionamiento (cadena?)
Este modo usa registros ndice. La cadena de instrucciones automticamente asume que SI apunta al
primer byte o palabra del operando destino. Los contenidos de SI y DI son incrementados
automticamente (poniendo a 0 DF mediante la instruccin CLD) o decrementados (poniendo a 1 DF
mediante la instruccin STD) para apuntar al siguiente byte o palabra. El segmento del operando fuente es
DS y puede ser encimado. El segmento del operando destino debe ser ES y no puede ser encimado. Ej.
MOVS BYTE.
3. DIRECCIONAMIENTO ACCESANDO PUERTOS (E/S)
Hay dos tipos de direccionamiento usando puertos: directo e indirecto.
En el modo directo, el nmero de puerto es el operando inmediato de 8 bits, lo cual permite accesar
puertos numerados del 0 al 255. Ej. OUT 05H,AL.
En el modo indirecto, el nmero de puerto se toma de DX, permitiendo as 64K puertos de 8 bits o 32K
puertos de 16 bits.
Las transferencias E/S de 8 y 16 bits deben hacerse va AX y AL, respectivamente.
4. DIRECCIONAMIENTO RELATIVO.
En este modo el operando se especifica como un desplazamiento de 8 bits con signo, relativo al PC. Ej.
JNC START. Si C=0, entonces el PC se carga con PC+el valor de START.
5. DIRECCIONAMIENTO IMPLICITO.

Las instrucciones que usan esta modo no tienen operandos. Ej. CLC

Conjunto de instrucciones
.- Dentro de las directivas ms importantes, tenemos las que establecen el conjunto de
instrucciones a soportar para un microprocesador en especial:
.8086(default).- Activa las instrucciones para el 8086 y 8088 e inhibe las del 80186 y 80286.
.8087(default).- Activa instrucciones para el 8087 y desactiva las del 80287.
.186.- Activa las instrucciones del 80186.
.286c.- Activa instrucciones del 80286 en modo no protegido.
.289p.- Activa instrucciones del 80286 en modo protegido y no protegido.
.287.- Activa las instrucciones para el 80287.

ETAPAS DE PROGRAMACION

Definicin del problema.

Anlisis de los datos.

Diseo de la solucin.

Codificacin.

Prueba y depuracin.

Documentacin.

Mantenimiento.

DEFINICION DEL PROBLEMA


Est dada en s por el enunciado del problema, el cual debe ser claro y complejo. Es
importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras
esto no se comprenda no puede pasarse a la siguiente etapa.

ANALISIS DE LOS DATOS


Para poder definir con precisin el problema se requiere que las especificaciones de entrada
y salida sean descritas con detalle ya que esto es un requisito para lograr una solucin eficaz.
Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes
aspectos :

Los resultados esperados.

Los datos de entrada disponibles.

Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (frmulas,
tablas, accesorios diversos).

Una medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la
computadora deduciendo los elementos que necesitaremos para alcanzar el resultado.
Ejemplo:

Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia.


ANALISIS
Las entradas de datos en este problema se concentran en el radio del crculo. Dado que el
radio puede tomar cualquier valor dentro del rango de los nmeros reales, el tipo de datos
radio debe ser real.
Las salidas sern dos variables : superficie y circunferencia que tambin sern de tio real.

Entradas : Radio del crculo (variable RADIO).


Salidas : Superficie del crculo (variable AREA).
Circunferencia del crculo (variable CIRCUNFERENCIA).
Variables : RADIO, AREA, CIRCUNFERENCIA tipo real.

DISEO DE LA SOLUCION
Una computadora no tiene capacidad para solucionar problemas ms que cuando se le
proporcionan los sucesivos pasos a realizar, esto se refiere a la obtencin de un algoritmo que
resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno
de ellos utilizando criterios ya conocidos.
Esta etapa incluye la descripcin del algoritmo resultante en un lenguaje natural, de
diagrama de flujo o natural de programacin.
Como puede verse, solo se establece la metodologa para alcanzar la solucin en forma
conceptual, es decir ; sin alcanzar la implementacin en el sistema de cmputo.
De acuerdo al ejemplo tenemos que la informacin proporcionada constituye su entrada y la
informacin producida por el algoritmo constituye su salida. Los problemas complejos se
pueden resolver ms eficazmente por la computadora cuando se dividen en subproblemas que
sean ms fcil de solucionar.
El problema de clculo de la longitud y superficie de un crculo se puede descomponer en
subproblemas ms simples :

Leer datos de entrada.

Calcular superficie y longitud.

Escribir resultados (datos de salida).

CODIFICACION
Se refiere a la obtencin de un programa definitivo que pueda ser comprensible para la
mquina. Incluye una etapa que se reconoce como compilacin.
Si la codificacin original se realiz en papel, previo a la compilacin deber existir un paso
conocido como transcripcin.

Programa Fuente

Esta escrito en un lenguaje de programacin. (pascal, C++,Visual Fox, Visual Basic, etc).

Es entendible por el programador.

Programa Ejecutable

Est en lenguaje mquina.

Entendible por la mquina.

PRUEBA Y DEPURACION
Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de
determinar si resuelve o no el problema planteado en forma satisfactoria.
Las pruebas que se le aplican son de diversa ndole y generalmente dependen del tipo de
problema que se est resolviendo. Comnmente se inicia la prueba de un programa
introduciendo datos vlidos, invlidos e incongruentes y observando como reacciona en cada
ocasin.
El proceso de depuracin consiste en localizar los errores y corregirlos en caso de que estos
existan. Si no existen errores, puede entenderse la depuracin como una etapa de
refinamiento en la que se ajustan detalles para optimizar el desempeo del programa
DOCUMENTACION
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin
errores), se procede a la utilizacin para resolver problemas del tipo que di origen a su diseo.
En vista de que esta utilizacin no podr ser supervizada en todas las ocasiones por el
programador, debe crearse un manual o gua de operacin que indique los pasos a seguir para
utilizar el programa.

MANTENIMIENTO
Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias
as lo requieran. Este programa deber ser susceptible de ser modificado para adecuarlo a
nuevas condiciones de operacin.
Cualquier actualizacin o cambio en el programa deber reflejarse en su documentacin.

Conjunto de instrucciones para los microcontroladores PIC.

Como ya hemos visto, para que el microcontrolador lleve acabo una tarea, debemos indicarle
exactamente que debe hacer, o en otras palabras, debemos escribir el programa que el micro
ejecutara. Ya hemos visto varios ejemplos y muchas de las instrucciones del pic, pero ahora
veremos las 35 instrucciones del ensamblador mpasm. Estas 35 instrucciones son las mismas
para toda la gama media de los microcontroladores pic asi que si mas adelante se quiere realizar
un
programa
para
un
pic
16F877
se
usaran
las
mismas
instrucciones.
Antes de continuar es necesario definir algunos terminos que se usaran para explicar las
instrucciones:
f:
cualquier
registro
del
microcontrolador
W:
registro
de
trabajo
b:
posicion
de
un
bit
en
el
registro
'f'
d:
destino,
puede
ser
'f'
(d=1)
o
'W'
(d=0)
etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
[]:
opcional
:
posicion
de
un
bit
dentro
de
un
registro
Instrucciones

orientadas

registros

ADDWF:
Suma
W
y
f
Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se almacena en el
registro
W. Si
'd'
es
1
el
resutado
se
almacena
en
el
registro
'f'.
Sintaxis:
[etiqueta]
ADDWF
f,d
Operacin:
(W)
+
(f)
-->
(destino)
Flags
afectados:
C,
DC,
Z
Ejemplo:
ADDWF
REG,1
Antes
de
la
instruccin:
W=0x03,
REG=0x04
Despus de la instruccin: W=0x03, REG=0x07
ANDWF:
W
AND
f
Realiza la operacin lgica AND entre el registro W y el registro "f". Si "d" es 0 el resultado se
almacena en el registro W. Si "d" es 1, el resultado se almacena en el registro "f".
Sintaxis:
[etiqueta]
ANDWF
f,d
Operacin:
(W)
AND
(f)
-->
(destino)
Flags
afectados:
Z
Ejemplo:
ANDWF
REG,1

Antes
Despus
CLRF:
Borra
el
Sintaxis:
Flags
Ejemplo:
Antes
Despus

de

la
de

la

contenido

de
de

instruccin:
instruccin:

W=0x17,
W=0x17,

REG=
REG=

Borra
un
del
registro
'f'
y
se
activa
el
[etiqueta]
CLRF
afectados:
CLRF
la
instruccin:
la
instruccin:
REG=0x00,

0xC2
0x02
registro
flag
Z.
f
Z
REG
REG=0x54
Z=1

CLRW:
Borra
el
registro
de
trabajo
W
Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccion no tiene operandos.
Sintaxis:
[etiqueta]
CLRW
Flags
afectados:
Z
Ejemplo:
CLRW
Antes
de
la
instruccin:
W=0x54
Despus
de
la
instruccin:
W=0x00,
Z=1
COMF:
Complementa
El contenido del registro 'f' se complementa.
d=1
el
resultado
se
Sintaxis:
[etiqueta]
Flags
Ejemplo:
Antes
de
la
Despus
de
la

el
registro
f
Si d=0 el resultado se almacena en el registro W. Si
almacena
en
el
registro
'f'.
COMF
f,d
afectados:
Z
COMF
REG,0
instruccion:
REG=0x13
instruccin:
REG=0x13,
W=0xEC

DECF:
Decrementa
f
en
1
De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1,
el
resultado
se
almacena
en
'f'.
Sintaxis:
[etiqueta]
DECF
f,d
Flags
afectados:
Z
Ejemplo:
DEC
CONT,
1
Antes
de
la
instruccin:
CONT=0x01,
Z=0
Despus
de
la
instruccin:
CONT=0x00,
Z=1
DECFSZ:
Decrementa
en
1
y
salta
si
el
resultado
es
0
El contenido del registro 'f' se decrementa. Si 'd=0, el resultado se coloca en el registro W. Si d=1,
el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se
contina
con
la
ejecucin.
Sintaxis:
[etiqueta]
DECFSZ
f,d
Flags
afectados:
Ninguno

INCF:
Incrementa
el
registro
f
Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el
resultado
se
almacena
en
'f'.
Sintaxis:
[label]
INCF
f,d
Flags
afectados:
Z
Ejemplo:
INCF
CONT,1
Antes
de
la
instruccin:
CONT=0xFF,
Z=0
Despus
de
la
instruccin:
CONT=0x00,
Z=1
INCFSZ:
Incrementa
en
1
y
salta
si
el
resultado
es
0
El contenido del registro 'f' se incrementa. Si d=0, el resultado se coloca en el registro W. Si d=1, el
resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se
contina
con
la
ejecucin.
Sintaxis:
[etiqueta]
DECFSZ
f,d
Flags
afectados:
Ninguno
IORWF:
W
OR
f
Realiza la operacin lgica OR entre el registro W y el registro 'f'. Si d=0 el resultado se almacena
en el registro W. Si d=1, el resultado se almacen en el registro 'f'.
Sintaxis:
[etiqueta]
IORWF
f,d
Flags
afectados:
Z
Ejemplo:
IORWF
REG,0
Antes
de
la
instruccin:
REG=0x13,
W=0x91
Despus
de
la
instruccin:
REG=0x13,
W=0x93
MOVF:
Mover
el
registro
f
El contenido del registro 'f' se mueve al destino 'd'. Si d=0, el destino es el registro W. Si d=1, el
destino
es
el
propio
registro
'f'.
Sintaxis:
[etiqueta]
MOVF
f,d
Flags
afectados:
Z
Ejemplo:
MOVF
REG,0
Despus
de
la
instruccin:
W=REG
RLF:
Rota
el
registro
f
a
la
izquierda
El contenido del registro 'f' se rota una posicin a la izquierda. El bit de ms peso pasa al carry y el
carry se introduce por el bit de menos peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si
d=1,
el
resultado
queda
en
el
registro
'f'.
Sintaxis:
[etiqueta]
RLF
f,d
Flags
afectados:
C
Ejemplo:
RLF
REG,1
Antes
de
la
instruccin:
REG=b'11100110',
C=0
Despus
de
la
instruccin:
REG=b'11001100',
C=1
RRF:

Rota

el

registro

la

derecha

El contenido del registro 'f' se rota una posicin a la derecha. El bit de menos peso pasa al carry y
el carry se introduce por el bit de ms peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si
d=1,
el
resultado
queda
en
el
registro
'f'.
Sintaxis:
[etiqueta]
RLF
f,d
Flags
afectados:
C
Ejemplo:
RLF
REG,1
Antes
de
la
instruccin:
REG=b'11100110',
C=0
Despus
de
la
instruccin:
REG=b'01110011',
C=0
SUBWF:
Resta
f
W
Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el resultado se
almacena en el registro W. Si d=1, el resultado se almacena en el registro 'f'.
Sintaxis:
[etiqueta]
SUBWF
f,d
Flags
afectados:
C,
DC,
Z
Ejemplo:
SUBWF
REG,1
Antes
de
la
instruccin:
REG=0x01,
W=0x02
Despus
de
la
instruccin:
REG=0xFF,
W=0x02
SWAPF:
Intercambio
de
f
El nibble bajo del registro 'f' se intercambia con el nibble alto del mismo. Si d=0, el resultado se
coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis:
[etiqueta]
SWAPF
f,d
Flags
afectados:
Ninguno
Ejemplo:
SWAPF
REG,1
Antes
de
la
instruccin:
REG=0x54
Despus
de
la
instruccin:
REG=0x45
XORWF:
W
XOR
f
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y el registro 'f'. Si d=0, el
resultado se almacena en el registro W. Si d=1 el resultado se almacena en el registro 'f'.
Sintaxis:
[etiqueta]
XORWF
f,d
Flags
afectados:
Z
Ejemplo:
XORWF
REG,1
Antes
de
la
instruccin:
REG=0xAF,
W=0xB5
Despus
de
la
instruccin:
REG=0x1A,
W=0xB5
NOP:
No
realiza
Sintaxis:

ninguna

Instrucciones
BCF:
Borra

operacion,

No
solo
consume
[etiqueta]

un

orientadas

el

Borra
bit

ciclo

bits

un
'b'del

operacion
de
reloj
NOP

registro

bit
'f'

Sintaxis:
Ejemplo:
Antes
Despus
BSF:
Activa
Sintaxis:
Ejemplo:
Antes
Despus

[etiqueta]

BCF
BCF

de
de

la
la

instruccin:
instruccin:

Activa
bit
[etiqueta]

el

un
'b'

del

la
la

bit
'f'
f,b
REG,2
REG=b'01001001'
REG=b'01001011'

registro
BSF

BSF
de
de

f,b
REG,0
REG=b'01101101'
REG=b'01101100'

instruccin:
instruccin:

BTFSC:
Checa
un
bit
y
salta
si
es
0
Si el bit "b" del registro "f" es 0, se salta una instruccin y se contina con la ejecucin.
Sintaxis:
[etiqueta]
BTFSC
f,b
BTFSS:
Checa
un
bit
y
salta
si
es
1
Si el bit "b" del registro "f" es 1, se salta una instruccin y se contina con la ejecucin.
Sintaxis:
[etiqueta]
BTFSS
f,b
Instrucciones

orientadas

constantes

de

control

ANDLW:
W
AND
literal
Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado se almacena en
el
registro
W.
Sintaxis:
[label]
ANDWL
k
Flags
afectados:
Z
Ejemplo:
ANDLW
0x5F
Antes
de
la
instruccin:
W=0xA3
Despus
de
la
instruccin:
W=0x03
CALL:
Llamada
a
subrutina
Llamada y salto a subrutina. La direccin de retorno se guarda en el stack. La constante "k" de 8
bits forma la direccin de salto y se carga en los bits del PC. Los bits del PC se cargan con los bits
del
registro
"STATUS".
PC
se
pone
a
0.
Sintaxis:
[etiqueta]
CALL
k
Ejemplo:
INICIO
CALL
DESTINO
Antes
de
la
instruccin:
PC=INICIO
Despus
de
la
instruccin:
PC=DESTINO
CLRWDT:
Borra
el
watchdog
timer
Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del registro de
estado
se
ponen
a
"1".
Sintaxis:
[label]
CLRWDT

Flags

afectados:

TO,

PD

GOTO:
Salto
Se trata de un salto incondicional. Los 9 bits de la constante "k" que forman la
cargan en los bits del PC y forman la direccin de salto. Los bits del PC se cargan
registro
de
Sintaxis:
[etiqueta]
GOTO
Ejemplo:
INICIO
GOTO
Antes
de
la
instruccin:
Despus
de
la
instruccin:

incondicional
instruccin, se
con los bits del
estado.
k
DESTINO
PC=0
PC=DESTINO

IORLW:
W
OR
literal
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se almacena en el
registro
W.
Sintaxis:
[etiqueta]
IORLW
k
Flags
afectados:
Z
Ejemplo:
IORLW
Ox35
Antes
de
la
instruccin:
W=0x9A
Despus
de
la
instruccin:
W=0xBF
MOVLW:
Carga
un
literal
en
W
El registro W se carga con el valor de 8 bits expresado mediante la literal "k".
Sintaxis:
[etiqueta]
MOVLW
k
Ejemplo:
MOVLW
0x5A
Despus
de
la
instruccin:
W=0x5A
RETURN:
El programa
Sintaxis:

regresa

Regresa
de la subrutina

de
y ejecuta
[etiqueta]

la

una
instruccion

que

sigue

subrutina
a CALL
RETURN

RETLW:
Regresa
de
una
subrutina
y
carga
el
valor
K
en
W
El programa regresa de la subrutina y carga el valor de 8 bits del registro k en el registro W
Sintaxis:
[etiqueta]
RETLW,k
Ejemplo:
RETLW,0x45
Antes
de
la
instruccion:
W=xx
Despues
de
la
instruccion:
W=0x45
RETFIE:
Sintaxis:

Regresa

de

la
[etiqueta]

rutina

de

servicio
RETFIE

SLEEP:
Entra
en
estado
de
reposo
Al salir, activa el bit de estado TO y borra el PD. El WDT y el prescaler se borran.Al entrar en el
modo
SLEEP,
se
detiene
el
oscilador.
Sintaxis:
[etiqueta]
SLEEP

Flags

afectados:

TO,

PD,

GPWUF

XORLW:
W
XOR
literal
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y la constante "k" de 8 bits.
El
resultado
se
almacena
en
el
registro
W.
Sintaxis:
[etiqueta]
XORLW
k
Flags
afectados:
Z
Ejemplo:
XORLW
0xAF
Antes
de
la
instruccin:
W
=
0xB5
Despus
de
la
instruccin:
W
=
0x1A
SUBLW:
Resta
L
W
A una constante "k" de 8 bits se le resta el registro W. El resultado es guardado en el mismo
registro
W.
Sintaxis:
[etiqueta]
SUBLW
k
Flags
afectados:
C,DC,Z
MOVWF:
Mover
el
valor
del
registro
W
al
El
contenido
del
registro
W
se
mueve
al
Sintaxis:
[etiqueta]
MOVWF
Flags
afectados:
Ejemplo:
MOVWF
Antes
de
la
instruccin:
REG=0x03,
Despus
de
la
instruccin:
REG=0xA4,

registro
registro

f
f.
f
Ninguno
REG
W=0xA4
W=0xA4

Y estas son las 35 instrucciones que podemos utilizar para programar los microcontroladores PIC.
La razon para que solo se utilicen 35 instrucciones en la programacion es que los PIC son
microcontroladores RISC, y estas instrucciones estan bien optimizadas para tener una mayor
velocidad de trabajo, una arquitectura mas simple y un codigo mas compacto.

Lenguaje de programacin

Captura de la microcomputadora Commodore PET-32 mostrando un programa en el lenguaje de


programacin BASIC, bajo el emulador VICE en una distribucin GNU/Linux.

Un ejemplo de cdigo fuente escrito en el lenguaje de programacin Java, que imprimir el


mensaje "Hello World!" a la salida estndar cuando escompilado y ejecutado
Un lenguaje de programacin es un lenguaje formal diseado para realizar procesos que pueden
ser llevados a cabo por mquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una
mquina, para expresaralgoritmos con precisin, o como modo de comunicacin humana.1
Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se
prueba, se depura, se compila (de ser necesario) y se mantiene el cdigo fuente de un programa
informtico se le llama programacin.
Tambin la palabra programacin se define como el proceso de creacin de
un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los
siguientes pasos:

El desarrollo lgico del programa para resolver un problema en particular.


Escritura de la lgica del programa empleando un lenguaje de programacin especfico
(codificacin del programa).

Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina.

Prueba y depuracin del programa.

Desarrollo de la documentacin.

Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje
informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms,
como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un
lenguaje de programacin, sino un conjunto de instrucciones que permiten estructurar el contenido
de los documentos).
Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo
deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de
circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al
lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es
precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que
sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.

LENGUAJE ENSAMBLADOR
El lenguaje ensamblador, o assembler (assembly language en ingls), es un lenguaje de
programacinde bajo
nivel para
los computadores, microprocesadores, microcontroladores y
otros circuitos integradosprogramables. Implementa una representacin simblica de los cdigos
de mquina binarios y otras constantes necesarias para programar una arquitectura dada
de CPU y constituye la representacin ms directa del cdigo mquina especfico para cada
arquitectura legible por un programador. Esta representacin es usualmente definida por el
fabricante de hardware, y est basada en los mnemnicos que simbolizan los pasos de
procesamiento (las instrucciones), los registros del procesador, las posiciones dememoria y otras
caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico de
ciertaarquitectura de computador fsica (o virtual). Esto est en contraste con la mayora de los
lenguajes de programacin de alto nivel, que idealmente son porttiles.
LENGUAJE C

C es

un lenguaje

de

programacin originalmente

desarrollado

por Dennis

M.

Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolucin del anterior lenguaje B, a su
vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de
programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear
aplicaciones.
Se trata de un lenguaje de tipos de datos estticos, dbilmente tipificado, de medio nivel pero con
muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto
nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo

nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo
enensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos.
La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje
que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue
ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia
por lo que, si los programas creados lo siguen, el cdigo es portable entre plataformas y/o
arquitecturas.

Lenguaje de alto nivel


Un lenguaje de programacin de alto nivel se caracteriza por expresar el algoritmo de una manera
adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las mquinas.
En los primeros lenguajes, la limitacin era que se orientaban a un rea especfica y sus
instrucciones requeran de una sintaxis predefinida. Se clasifican como lenguajes procedimentales
o lenguajes de bajo nivel. Otra limitacin de estos es que se requiere de ciertos conocimientos de
programacin para realizar las secuencias de instrucciones lgicas. Los lenguajes de alto nivel se
crearon para que el usuario comn pudiese solucionar un problema de procesamiento de datos de
una manera ms fcil y rpida.
Por esta razn, a finales de los aos 1950 surgi un nuevo tipo de lenguajes de programacin que
evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se
llaman de tercera generacin o de nivel alto, en contraposicin a los de bajo nivel o de nivel
prximo a la mquina.
Lenguaje de alto nivel se refiere al nivel ms alto de abstraccin de lenguaje de mquina. En lugar
de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto nivel se
refieren a las variables, matrices, objetos, aritmtica compleja o expresiones booleanas, subrutinas
y funciones, bucles, hilos, cierres y otros conceptos de informtica abstracta, con un enfoque en la
facilidad de uso sobre la eficiencia ptima del programa.
Ventajas

Genera un cdigo ms sencillo y comprensible.

Escribir un cdigo vlido para diversas mquinas o sistemas operativos.

Permite utilizar paradigmas de programacin.

Permite crear programas complejos en relativamente menos lneas de cdigo.

EMPRESAS

FABRICANTES DE MICROCONTROLADORES

En este apartado les daremos a conocer algunas empresas dedicadas al rubro de


la fabricacin de los microprocesadores y lo que a nosotros nos importa los
microcontroladores, junto con conocer su rubro se dar a conocer su mayor aporte en
los comienzos de la carrera de los microcontroladores.
Microchip:

Microchip Technology Inc. es una empresa fabricante de microcontroladores, memorias


y

semiconductores

analgicos,

situada

en

Chandler,

Arizona,

Su Producto ms pupular son los microcontroladores PIC de 8 bits.

EE.

UU.

Atmel Corporation:

Atmel es una compaa de semiconductores, fundada en 1984. Su lnea de productos


incluye microcontroladores (incluyendo derivados del 8051, el AT91SAM basados en
ARM, y sus arquitecturas propias AVR y AVR32), dispositivos de radiofrecuencia,
memorias EEPROM y Flash, ASICs, WiMAX, y muchas otras. Tambin tiene capacidad
de ofrecer soluciones del tipo system on chip (SoC).
freescale semiconductor:

Freescale

Semiconductor

semiconductores

es

enfocada

una

compaa

proveer

global

procesamiento

lder

en

embebido

la
y

industria

de

productos

de

conectividad.
Actualmente, se enfoca al suministro de productos para la industria automotriz, de
redes, comunicaciones inalmbricas, control industrial e industrias de consumo
electrnico.

Con

se

oferta

de

procesadores

embebidos

de

productos

complementarios, proporciona una solucin completa de semiconductores y software.


Texas Instruments:

Texas Instruments o TI, es una empresa norteamericana que desarrolla y comercializa


semiconductores
Igualmente,

es

y
el

mayor

tecnologa
productor

para
de

sistemas

procesadores

de

digitales

cmputo.
de

seal

semiconductores analgicos.TI es el tercer mayor fabricante de semiconductores del


mundo tras Intel y Samsung y es el mayor suministrador de circuitos integrados para
telfonos

mviles.

Otras reas de actividad incluyen circuitos integrados para mdem de banda ancha,
perifricos para ordenadores, dispositivos digitales de consumo y RFID.
ZiLOG Inc:

ZiLOG

Inc,

es

un

fabricante

de

microprocesadores

microcontroladores. Su producto ms conocido es el Zilog Z80 de 8 bits.

Motorola:

Motorola

Empresa

dedicada

fabricar

microprocesadores

microcontroladores entre otros productos, su mayor logro en la industria fue poner al


Mercado un microprocesador de 8 bits, llamado 6800. Motorola fue la primera
compaa en construir otros perifricos como el 6820 y el 6850.

Intel:

Intel empresa dedicada a la fabricacin de microcontroladores y


microprocesadores, aunque no trabajaba sola obtuvo un logro en abril de 1974 pone
en el Mercado el microprocesador bajo el nombre 8080 con capacidad de direccionar
64kb de memoria, con 75 instrucciones y un precio de inicio de $360 dlares.

FAMILIA DE LOS MICROCONTROLADORES

1. LA FAMILIA DE MICROCONTROLADORES PICDAVID ESPIN ANDS MOGROEDISON


ORTEGA<br />
2. Importancia de los microcontroladores<br />Microchip desde el 2002 se mantiene como lder
mundial en ventas de microcontroladores de 8 bits.<br />En el 2005 facturo 675 millones de
dlares, procedentes de las ventas de microcontroladores. <br />Sus ventas se reparten 43%
en Asia y Japn,28% en Europa y 29% en Amrica.<br />
3. Distribucin de ventas de microcontroladores PIC en el mercado<br />En cuanto a los
segmentos del mercado a los cuales se destina las ventas de microcontroladores, destacan la
Electrnica de consumo con 35%, seguida por la industria de automocin con 18%, Industria y
Ofimtica, ambas con 17% y finalmente comunicaciones con un 13%. <br />

4. Crecimiento del nmero de modelos de PIC de 8 bits<br />Una de las ventajas de


microcontroladores de Microchip, es la capacidad de cambiar de modelo de MCU y cambiar a
otro mas potente con mas capacidad de memoria y perifricos.<br />Por esto se muestra un
gran crecimiento en el numero de modelos de PIC de 8 bits.<br />
5. Variedad de dispositivos PIC<br />La migrabilidad en los microcontroladores de la
Microchip a permitido con el paso de los aos, la creacin de una gran variedad de dispositivos
PIC con diferentes configuraciones, permitiendo al usuario elegir un modelo que cumpla con
las especificaciones de cualquier proyecto. <br />
6. Evolucin en la tecnologa de fabricacin<br />La tecnologa empleada en la fabricacin
PICs ha pasado de la 0.7 micras 1998 a la 0.22 micras en 2006.<br />Esto a supuesto una
reduccin en el voltaje de alimentacin que a pasado de 2 y 5,5 v hasta llegar a un margen
entre 2 y 6v, siendo la nominal de 3.3v aunque las E/S, siguen trabajando con 5 v. <br />
7. Clasificacin de los microcontroladores PIC<br />Los microcontroladores Pic se caracterizan
por su arquitectura Harvard, con memorias de grama y de datos independientes, lo que permite
la accesibilidad simultnea y la diversidad en la longitud de las posiciones y el tamao de
ambas memorias.<br />
8. Gamas de microcontroladores<br />Los microcontroladores PIC de 8 bits e clasifican en tres
grandes gamas: Base, Media y Mejorada con un total de casi 300 modelos diferentes que
contienen distintas capacidades de memoria, perifricos y distintos tipos de encapsulado.<br />
9. La gama base<br />Se caracterizan porque responden nicamente a 33 instrucciones de 12
bits de longitud cada una y disponen de una pila con solo dos niveles de profundidad.<br
/>Esta compuesta por 14 modelos, de los cuales 6 estn encapsulados con 6 pines, razn por
la cual se les suele apodar enanos.<br />
10. PIC de 6 pines (Gama base)<br />Estos PICs tienen un gran xito en resolver aplicaciones
simples, gracias a su reducido volumen y precio.<br />En estos dispositivos se usa dos pines
para la alimentacin, quedando solo 4 pines libres para las E/S y las funciones de sus
perifricos.<br />
11. LA GAMA MEDIA <br />CARACTERSTICAS:<br /><ul><li> Dispone a un repertorio de 35
instrucciones.
12. 14 bits de longitud cada una.
13. Pila de 8 niveles.
14. Un vector de interrupcin .
15. 71 modelos diferentes .
16. Encapsulados de 8 a 64 pines.</li></li></ul><li>LA GAMA MEDIA <br />Caractersticas
relevantes de algunos PIC de la Gama Media.<br />
17. LA GAMA MEJORADA<br />CARACTERSTICAS:<br /><ul><li> Dispone a un repertorio de
77 instrucciones.
18. 16 bits de longitud cada una.
19. Pila de 16 niveles.
20. dos vector de interrupcin .
21. Su nomenclatura es PIC18Xxxx.
22. Esta gama es la que mas nmeros de dispositivos posee .
23. Memoria programable puede alcanzar los 128 KB
24. Memoria de datos puede alcanzar los 3963 bits
25. Memoria de datos puede alcanzar hasta 1KB.

26. Perifricos muy especializados (ejem. Conversor AD de 10 bits)


27. Interfaces de comunicacin con bus IC, SPI, USART, CAN 2.0B.
28. Posee un multiplicador rpido hardware.</li></li></ul><li>LA GAMA MEJORADA <br
/>Significado de cada uno de los campos que componen la nomenclatura del PIC18Xxxx de la
Gama Mejorada.<br />
29. LA GAMA MEJORADA <br />Recursos y caractersticas de algunos dispositivos de la
Gama Mejorada de 64 y 80 pines.<br />
30. MICROCONTROLADORESPIC DE 16 BITS <br />Hay 2 grandes gamas de
microcontroladores de 16 bits.<br />Gama MCU de 16 bits, formada por las familias de
dispositivos PIC24F y PIC24H.<br /> Gama DSC de 16 bits, formada por las familias de
dispositivos dsPIC30F y dsPIC33F<br />
31. GAMA DE MICROCONTROLADORESMCU DE 16 BITS<br />CARACTERSTICAS
(PIC24F):<br /><ul><li>Se fabrican con tecnologa de 0,25 micras.
32. Alcanzan un rendimiento de 16 MIPS a 32 MHz
33. Poseen arquitectura harvard.
34. Memoria programable lineal de hasta 8MB.
35. Memoria
de
datos
de
hasta
64
KB.</li></li></ul><li>GAMA
DE
MICROCONTROLADORESMCU DE 16 BITS<br />Diagrama por bloques principales recursos
que conforman los microcontroladores de 16 bits PIC24F<br />
36. GAMA DE MICROCONTROLADORESMCU DE 16 BITS<br />Principales caractersticas de
los 9 modelos da la familia PIC24F .<br />
37. GAMA DE MICROCONTROLADORESMCU DE 16 BITS<br />CARACTERSTICAS
(PIC24H):<br /><ul><li> Se fabrican con tecnologa de 0,25 micras.
38. Alcanzan un rendimiento de 40 MIPS .
39. Memoria FLASH de hasta 256KB.
40. Memoria RAM de hasta 16KB.
41. Encapsulados formato TQFP .
42. Encapsulados de 64, 80 y 100 pines.
43. Principal aporte frente a los PIC24F es incluir un controlador DMA con 8 canales.
</li></li></ul><li>GAMA DE MICROCONTROLADORES MCU DE 16 BITS<br />Principales
caractersticas de los 13 modelos da la familia PIC24H <br />
44. Gama de Microcontroladores DSC de 16 Bits<br />Los modelos de la familia dsPIC 30F
tienen :<br />- Importantes capacidad de memoria<br /><ul><li>La mayora de los recursos y
perifricos
45. - Rendimiento de 30 MIPS
46. Se alimentan con voltajes de 4.5 y 5.5 </li></ul>Se dividen en tres categoras<br />-Los de
propsito general<br /><ul><li>Los de control de Motores
47. Para control de sensores </li></li></ul><li>Los microcontroladores de la familia dsPIC33f
son compatibles con la familia dsPIC30f ya que tienen las mismas instrucciones y la misma
distribucin de pines pero se diferencian por:<br /><ul><li>Su alimentacin es de 3.3 v
48. Tienen un controlador DMA </li></ul> de 8 canales <br /><ul><li>Un mayor nmero
de</li></ul> interrupciones <br /><ul><li>Un rendimiento de 40 MIPS
49. Tiene una interfaz para CODEC
50. Existe modelos con 256 Kb en </li></ul>FLASH y 30 Kb en RAM<br />

51. Los modelos de la familia dsPIC33F tienen 27 dispositivos , no disponen de EEPROM<br


/>APLICACIONES<br />15 dispositivos son destinados para propsitos generales<br />De voz,
audio, seguridad electromedicina, modem <br />Los restantes son destinados para el control
de motores los que se incluyen en los electrodomsticos , control de la direccin electrnica de
automviles, inversores <br />
52. PIC 16F84<br />La Figura1.21 muestra el esquema elctrico de un ejercicio propuesto en
el cual tenemos al Pic con los elementos auxiliares como son el reset, cristal y su alimentacin
en el esquema los leds estn destinados cuando el nivel de voltaje sea alto <br />
53. ORGANIGRAMA<br />Es muy recomendable antes de realizar cualquier programa para
poder darnos cuenta del algoritmo que podemos aplicar en cualquier circuito <br />Si el
programa que queremos realizar es muy complejo el organigrama ser muy abstracto en
cambio si el programa es muy sencillo el organigrama incluso podr ser una transcripcin
inmediata del organigrama al cdigo <br />
54. UTILIZACIN DEL ENSAMBLADOR MPASM<br />Un ensamblador MPASM es un
programa de libre distribucin que sirve para ensamblar ficheros son extensin ASM los pasos
para programar son:<br />1- En el campo SOURCE FILE se introduce el nombre del fichero
con extensin ASM<br />2- En el campo PROCESSOR TYPE se busca el tipo de micro que se
va a programar<br />3- Se procede a ensamblar el programa pulsando F10<br />
55. Grabacin y prueba de un programa con el MicroPic trainer<br />Su funcin es grabar el
microcontrolador en base a archivos de extensin HEX y utilizando sus perifricos para probar
si funciona el programa <br />Las partes ms importantes son :<br />1.Alimentacin:<br />2.
Puerto Paralelo<br />3. Picbus<br />4.Pic-18<br />5. Pic-28<br />6. Jumpers<br />7.
Interruptores<br />8. Leds<br />9. Display 7 seg<br />10. LCD<br />11. Jumpers A/D<br />12.
Potencimetros<br />
56. Antes de utilizar los perifricos antes mencionados hay que grabar el programa en el
microcontrolador para lo que seguirn los siguientes pasos:<br />Poner el Pic en el scalo
correspondiente<br /> Conectar la fuente de 12 v<br /> Unir la Pc con la placa<br /> Abrir el
programa para grabar<br /> Descargar el programa<br />
57. El programa para descargar al micro tiene el siguiente aspecto <br />Se debe tener muy en
cuenta de que los Jumpers A/D de los pines de RA1-RA2 deben estar en la posicin digital .<br
/>Regularmente los fallos son semnticos por lo que se deber repasar el cdigo fuente para
comprobar en que punto difieren el organigrama del programa y corregirlo<br />
58. DISEAR CON PIC ES FCILSENSORES ANALOGICOS MAS UTILIZADOSAunque el
PIC16F84 tiene muchas aplicaciones de una manera didctica tenemos las aplicaciones con
sensores analgicos Sensor de Luminosidad: LDR<br />Es un sensor cuya resistencia entre
bornes vara en funcin de la luz que incide sobre su superficie es decir si no existe luz posee
un resistencia infinita pero a medida que aumenta la luz disminuye hasta llegar a cero <br />
59. El sensor de temperatura estndar: LM35<br />Es un sensor analgico y que existen
diversos modelos en el mercado segn su rango de temperatura capaces de admitir, precisin,
precio, la resistencia que debe tener a ciertas condiciones <br />
60. Uno de los sensores mas utilizado es el LM35 que se considera estndar sus
caractersticas son:<br />Su vout es proporcional a la temperatura es 10mv /C<br />Su rango
esta entre 0 C y 100 C<br />Su voltaje de funcionamiento Vs es +4 VDC y + 30 VDC<br />Su
precisin es 0.9C<br />La figura muestra la distribucin de pines <br />

61. BIBLIOGRAFIA<br />MICROCONTROLADORES PIC. Diseo prctico de aplicaciones


SEGUNDA PARTE:<br /> PIC16F87X, PIC18FXXXX. Segunda edicin.<br /> Segundo Angulo,
Susana Romero. Mc Graw Hill. Espaa.<br />

ELEMENTOS DEL MICROCONTROLADOR

Memoria
Anteriormente se ha visto que la memoria en los microcontroladores debe estar ubicada dentro del
mismo encapsulado, esto es as la mayora de las veces, porque la idea fundamental es mantener
el grueso de los circuitos del sistema dentro de un solo integrado.
En los microcontroladores la memoria no es abundante, aqu no encontrar Gigabytes de memoria
como en las computadoras personales. Tpicamente la memoria de programas no exceder de 16
K-localizaciones de memoria no voltil (flash o eprom) para contener los programas.
La memoria RAM est destinada al almacenamiento de informacin temporal que ser utilizada por
el procesador para realizar clculos u otro tipo de operaciones lgicas. En el espacio de
direcciones de memoria RAM se ubican adems los registros de trabajo del procesador y los de
configuracin y trabajo de los distintos perifricos del microcontrolador. Es por ello que en la
mayora de los casos, aunque se tenga un espacio de direcciones de un tamao determinado, la
cantidad de memoria RAM de que dispone el programador para almacenar sus datos es menor que
la que puede direccionar el procesador.
El tipo de memoria utilizada en las memorias RAM de los microcontroladores es SRAM, lo que
evita tener que implementar sistemas de refrescamiento como en el caso de las computadoras
personales, que utilizan gran cantidad de memoria, tpicamente alguna tecnologa DRAM. A pesar
de que la memoria SRAM es ms costosa que la DRAM, es el tipo adecuado para los
microcontroladores porque stos poseen pequeas cantidades de memoria RAM.
En el caso de la memoria de programas se utilizan diferentes tecnologas, y el uso de una u otra
depende de las caractersticas de la aplicacin a desarrollar, a continuacin se describen las cinco
tecnologas existentes, que mayor utilizacin tienen o han tenido:

Mscara ROM. En este caso no se graba el programa en memoria sino que el


microcontrolador se fabrica con el programa, es un proceso similar al de produccin de los CD

comerciales mediante masterizacin. El costo inicial de producir un circuito de este tipo es alto,
porque el diseo y produccin de la mscara es un proceso costoso, sin embargo, cuando se
necesitan varios miles o incluso cientos de miles de microcontroladores para una aplicacin
determinada, como por ejemplo, algn electrodomstico, el costo inicial de produccin de la
mscara y el de fabricacin del circuito se distribuye entre todos los circuitos de la serie, y el
costo final de sta es bastante menor que el de sus semejantes con otro tipo de memoria.

Memoria PROM (Programmable Read-Only Memory) tambin conocida como OTP (One
Time Programmable). Este tipo de memoria tambin es conocida como PROM o simplemente
ROM.
Los microcontroladores con memoria OTP se pueden programar una sola vez, con algn
tipo de programador. Se utilizan en sistemas donde el programa no requiera futuras
actualizaciones y para series relativamente pequeas, donde la variante de mscara sea
muy costosa, tambin para sistemas que requieren serializacin de datos, almacenados
como constantes en la memoria de programas.

Memoria EPROM (Erasable Programmable Read Only Memory). Los microcontroladores


con este tipo de memoria son muy fciles de identificar porque su encapsulado es de
cermica y llevan encima una ventanita de vidrio desde la cual puede verse la oblea de
silicio del microcontrolador.
Se fabrican as porque la memoria EPROM es reprogramable, pero antes debe borrase, y
para ello hay que exponerla a una fuente de luz ultravioleta, el proceso de grabacin es
similar al empleado para las memorias OTP.
Al aparecer tecnologas menos costosas y ms flexibles, como las memorias EEPROM y
FLASH, este tipo de memoria han cado en desuso, se utilizaban en sistemas que
requieren actualizaciones del programa y para los procesos de desarrollo y puesta a punto.

EEPROM (Electrical Erasable Programmable Read Only Memory). Fueron el


sustituto natural de las memorias EPROM, la diferencia fundamental es que
pueden ser borradas elctricamente, por lo que la ventanilla de cristal de cuarzo y
los encapsulados cermicos no son necesarios.

Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de
memoria se hicieron ms baratos y cmodos para trabajar que sus equivalentes con
memoria EPROM.
Otra caracterstica destacable de este tipo de microcontrolador es que fue en ellos donde
comenzaron a utilizarse los sistemas de programacin en el sistema que evitan tener que
sacar el microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al programa.

Memoria flash. En el campo de las memorias reprogramables para


microcontroladores, son el ltimo avance tecnolgico en uso a gran
escala, y han sustituido a los microcontroladores con memoria EEPROM.

Memoria de datos no voltil


Muchos microcontroladores han incorporado estos tipos de memoria como un perifrico ms, para
el almacenamiento de datos de configuracin o de los procesos que se controlan. Esta memoria es
independiente de la memoria de datos tipo RAM o la memoria de programas, en la que se
almacena el cdigo del programa a ejecutar por el procesador del microcontrolador.
Muchos de los microcontroladores PIC incluyen este tipo de memoria, tpicamente en forma de
memoria EEPROM, incluso algunos de ellos permiten utilizar parte de la memoria de programas
como memoria de datos no voltil, por lo que el procesador tiene la capacidad de escribir en la
memoria de programas como si sta fuese un perifrico ms.

PUERTOS DE ENTRADA/SALIDA:
Un recurso imprescindible en los microcontroladores es el que soporta las Entradas y Salidas con los
perifricos del mundo exterior. Los PIC16C5X slo disponen de lneas de E/S digitales, cada una de las cuales
tiene su correspondencia con una patita de la cpsula. Dichas lneas se agrupan en tres puertos Puerto A,
Puerto B y Puerto C. El Puerto A acta lo mismo que un registro de E/S de lectura y escritura. Slo son
vlidos los 4 bits de menos peso que corresponden con las patitas RA3:RA0. Los 4 bits de ms peso no estn
implementados y cuando se leen siempre valen 0.
El Puerto B funciona como un registro de E/S de 8 bits bidireccionales, siendo accesibles todos ellos por las
patitas RB7:RB0.

Recursos auxiliares

Cada fabricante oferta numerosas versiones de una arquitectura bsica de microcontrolador. En


algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras
reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es
encontrar el modelo mnimo que satisfaga todos los requerimientos de su aplicacin. De esta
forma, minimizar el coste, el hardware y el software. Los principales recursos especficos que
incorporan los microcontroladores son:

- Temporizadores o "Timers". Se emplean para controlar periodos de tiempo temporizadores) y


para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).
- Perro guardin o "Watchdog". Temporizador que cuando se bloquea el sistema, provoca un reset
automticamente.

- Proteccin ante fallo de alimentacin o "Brownout". Se trata de un circuito que resetea al


microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo
("brownout").
- Estado de reposo o de bajo consumo. Para ahorrar energa cuando el microcontrolador no est
funcionando, stos disponen de una instruccin especial (SLEEP en los PIC), que les pasa al
estadode reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. Al
activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se
despierta y reanuda su trabajo.
-

Conversor

A/D

(CAD).

Los

microcontroladores

(Analgico/Digital)

pueden

que

incorporan

procesar

un

seales

Conversor

A/D

analgicas.

- Conversor D/A (CDA). Transforma los datos digitales obtenidos del procesamiento del
computador

en

su

correspondiente

seal

analgica.

- Comparador analgico. Algunos modelos de microcontroladores disponen internamente de un


Amplificador Operacional que acta como comparador entre una seal fija de referencia y otra
variable. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o
menor

que

la

otra.

- Modulador de anchura de impulsos o PWM. Son circuitos que proporcionan en su salida impulsos
de anchura variable.

Unidad de control
Esta unidad es de las ms importantes en el procesador, en ella recae la lgica necesaria para la
decodificacin y ejecucin de las instrucciones, el control de los registros, la ALU, los buses y
cuanta cosa ms se quiera meter en el procesador.
La unidad de control es uno de los elementos fundamentales que determinan las prestaciones del
procesador, ya que su tipo y estructura determina parmetros tales como el tipo de conjunto de
instrucciones, velocidad de ejecucin, tiempo del ciclo de mquina, tipo de buses que puede tener
el sistema, manejo de interrupciones y un buen nmero de cosas ms que en cualquier procesador
van a parar a este bloque.
Por supuesto, las unidades de control son el elemento ms complejo de un procesador y
normalmente estn divididas en unidades ms pequeas trabajando de conjunto. La unidad de
control agrupa componentes tales como la unidad de decodificacin, unidad de ejecucin,
controladores de memoria cache, controladores de buses, controlador de interrupciones, pipelines,
entre otros elementos, dependiendo siempre del tipo de procesador.

Reloj principal

Todos los microcontroladores disponen de un circuito oscilador que sincroniza de todas las
operaciones del sistema. Generalmente, el circuito de reloj est incorporado en el
microcontrolador y slo se necesitan unos pocos componentes exteriores para seleccionar y
estabilizar la frecuencia de trabajo.

Conversor analgico/digital
Como es muy frecuente el trabajo con seales analgicas, stas deben ser convertidas a digital y
por ello muchos microcontroladores incorporan un conversor analgico-digital, el cual se utiliza
para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor.
Las resoluciones ms frecuentes son 8 y 10 bits, que son suficientes para aplicaciones sencillas.
Para aplicaciones en control e instrumentacin estn disponibles resoluciones de 12bit, 16bit y
24bit.6 Tambin es posible conectar un convertidor externo, en caso de necesidad

Conversin Digital-Analgica
El proceso es realizado por un conversor digital-analgico (CDA). Dicho proceso es justamente el
inverso al que realiza el conversor analgico-digital (CAD). Se parte de muestras en formato digital
(valores discretos), y stas se deben convertir en una seal analgica (valores continuos).
El conversor D/A asocia a cada valor binario un nivel de tensin previamente establecido, y genera
muestras de tensin utilizando dichos niveles, aplicando un intervalo de tiempo constante entre
muestras.

MICROPROCESADOR

INTERNOS

UNIDAD DE CONTROL DELGADA


A SEGUIR LAS INSTRUCCIONES

UNIDAD ARITMETICA Y LOGICA


QUE
RECIBE
TODAS
LAS
OPERACIONES Y LAS CONVIERTE
EN DATOS

REGISTRO
SIRVE
PARA
DETALLAR LAS INSTRUCCIONES
EFECTIVAS Y FALLIDAS

MEMORIA CACHE LUGAR DONDE


SE GUARDAN LOS PROSESOS

BLOQUE DE REGISTRO
BLOQUE DE DATOS
BLOQUE DE CONTROL
TERMINALES

EXTERNOS

EL
DISPARADOR
ES
EL
ENCARGADO
DE DISPARAR
CALOR EXTERNO

ZOCALO DE CONEXIN SIRVE


PARA
NO
CONECTAR
DIRECTAMENT ELO PINES

BUS
DE
DATOS
ES
EL
CONDUCTOR
QUE
EFECTIVAMENTE
LLEVA
LOS
DATOSPARA
EJECUTAR
LAS
ACCIONES

RAM ENCARGADA DE EJECUTAR


APLICACIONES CON RAPIDES

CUBIERTA
DEL
MICROPROCESADOR ENCAGADA
DE PROTEGER EL INTEGRADO

Potrebbero piacerti anche