Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Motorola 6800.
Zilog Z80 A.
Parte posterior de un Pentium Pro. Este chip en particular es de 200 MHz, con 256 Kb de cach L2.
AMD K6 original.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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)
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.
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:
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.
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.
Arquitecturas
65xx
ARM
EISC
DEC Alpha
Intel
Intel Itanium
Intel i860
Intel i515
LatticeMico32
M32R
MIPS
Motorola
Motorola 6800
Motorola 6809
corelduo 15485
NSC 320xx
OpenRISC
PA-RISC
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)
QUE ES UN MICROCONTROLADOR
Microcontrolador
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.
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.
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
nivel para
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.
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
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
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
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
Diseo de la solucin.
Codificacin.
Prueba y depuracin.
Documentacin.
Mantenimiento.
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:
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 :
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).
Programa Ejecutable
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.
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
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.
EMPRESAS
FABRICANTES DE MICROCONTROLADORES
semiconductores
analgicos,
situada
en
Chandler,
Arizona,
EE.
UU.
Atmel Corporation:
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
es
y
el
mayor
tecnologa
productor
para
de
sistemas
procesadores
de
digitales
cmputo.
de
seal
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
Motorola:
Motorola
Empresa
dedicada
fabricar
microprocesadores
Intel:
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:
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.
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.
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
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.
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
REGISTRO
SIRVE
PARA
DETALLAR LAS INSTRUCCIONES
EFECTIVAS Y FALLIDAS
BLOQUE DE REGISTRO
BLOQUE DE DATOS
BLOQUE DE CONTROL
TERMINALES
EXTERNOS
EL
DISPARADOR
ES
EL
ENCARGADO
DE DISPARAR
CALOR EXTERNO
BUS
DE
DATOS
ES
EL
CONDUCTOR
QUE
EFECTIVAMENTE
LLEVA
LOS
DATOSPARA
EJECUTAR
LAS
ACCIONES
CUBIERTA
DEL
MICROPROCESADOR ENCAGADA
DE PROTEGER EL INTEGRADO