PROYECTOS CON MICROCONTROLADORES PIC I
INTRODUCCION El desarrollo tecnológico en el campo electrónico sufrido en la última parte del siglo XX a permitido crear circuitos integrados mas reducidos y capaces de realizar procesos complejos. Dentro de este avance nacen los microcontroladores, capaces de realizar desde simples tareas como temporizadores, hasta complejos controles con algoritmos matemáticos. Actualmente se puede encontrar un microcontrolador en casi todos los aparatos aparatos electrónic electrónicos os mouse, mouse, hornos hornos microonda microondas, s, lavadoras lavadoras,, teclados teclados,, televisor televisores, es, tel!fonos, automóviles, y la lista continúa. El microcontrolador tam"i!n ha podido reducir tiempo en la fase del dise#o electrónico. Antes era un dolor de ca"eza hacer un circuito de control con varios circuitos digitales, cálculos matemáticos, realización realización de un prototipo y en caso $ue no funcionara, empezar empezar a "uscar el error en el hard%are dise#ado y pro"ar y volver al inicio hasta $ue por fin realizara la tarea para la cual ha"&a sido dise#ado, 'y si desea"as agregarle una tarea mas( Ahora con un microcontrolador se realiza el dise#o electrónico e)terno, pero el compor comportam tamien iento to del circui circuito to dep depend endee de la progra programa mació ciónn $ue lleve lleve este este circui circuito to inte integr grad adoo 'y si no me gust gustaa como como func funcio iona na(, (, pues pues simp simple leme ment ntee se modi modific ficaa el programa, se prue"a so"re la misma tarjeta y *listo+, ya tienes un circuito con nuevas funciones.
1. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR? Es un circuito integrado programa"le capaz de realizar procesos lógicos, estos procesos son escritos previamente en un lenguaje Assem"ler, -, asic, etc./ en una computadora y luego insertados en el dispositivo en código he)adecimal mediante un gra"ador. 0os microcontroladores por lo general están compuestos de las siguientes partes • • • • •
•
1nidad de procesamiento central -21/ 3emoria de programa tipo 4536EE2453670A89 3emoria 4A3 para datos 0&neas de entrada 6salida para comunicación con el e)terior. Diversos módulos para el control de perif!ricos temporizadores, 2uertas 8erie y 2aralelo, -AD -onversores Analógico6Digital, etc./. :enerador de impulsos de reloj $ue sincronizan el funcionamiento de todo el sistema.
1.1. DIFERENCIAS ENTRE MICROCONTROLADOR Y MICROPROCESADOR 8i "ien "ien un micr microp opro roce cesa sado dorr es un pote potent ntee circ circui uito to inte integr grad adoo capa capazz de real realiz izar ar oper operac acio ione ness comp comple leja jas, s, por por ello ello es la 1n 1nid idad ad -ent -entra rall de 2roc 2roces esam amie ient ntoo de las las computadoras, carece de memoria interna o de perif!ricos, en lugar de ello tiene l&neas llamados "uses de control y comunicación con otros dispositivos e)ternos $ue le proveen de la información a procesar y a donde va a mandar los resultados. entonces para $ue un microprocesador microprocesador funcione se le de"e de proveer de memorias 453 y
4A3, perif!ricos $ue env&an y reci"en los datos, por ejemplo, el teclado es un perif!rico $ue ingresa datos para ser procesados, la pantalla es un perif!rico de salida $ue puede mostrar la información procesada, etc. En cam"io un microcontrolador ya posee internamente su memoria, perif!ricos de E68 y módulos especiales, además e)isten una gran variedad de modelos $ue se ajustan a la tarea $ue puedas tener en mente realizar con diferentes capacidades. 8e dice $ue un microprocesador es un sistema a"ierto por$ue su configuración es varia"le de acuerdo con la aplicación a la $ue se destine, mientras el microcontrolador es un sistema cerrado. ;odas las partes del computador están contenidas en su interior y sólo salen al e)terior las l&neas $ue go"iernan los perif!ricos.
Figura 1.1 Estructura de un sistema abierto basado en microprocesador
Figura 1.2 el microcontrolador es un sistema cerrado
2ara resumir, se puede decir $ue un microcontrolador es un computador creado para aplicaciones espec&ficas, ya $ue tiene todas las partes como memoria 453, memoria 4A3.
Figura 1.3 partes que conforman un microcontrolador
1.2. FASES PARA EL DISEÑO DE CIRCUITOS CON MICROCONTROLADOR 0a descripción a seguir es una forma de tra"ajo recomenda"le a la hora de $uerer realizar desarrollos de proyectos con microcontroladores •
•
•
• •
•
Estudiar el proceso, dispositivo, entorno, $ue se $uiere controlar con el microcontrolador. E)aminar los tipos de microcontroladores disponi"les y sus caracter&sticas y elegir el $ue mejor se ajuste al proyecto. Dise#ar el circuito o prototipo donde ira el microcontrolador, tomando en consideración el entorno donde va a tra"ajar. Definir las funciones $ue va a realizar el microcontrolador. 4ealizar la programación en algún lenguaje, sea Assem"ler, -, asic, etc., de ser posi"le usar un simulador para compro"ar $ue el programa funciona como se desea. :ra"ar el código generado en el microcontrolador y realizar las prue"as y test correspondientes. 8i no llegara funcionar correctamente volver al paso anterior.
1.3. MICROCONTROLADORES PIC Dentro del mundo de los microcontroladores e)isten varios fa"ricantes y cada uno con una gran variedad de microcontroladores según las aplicaciones, mencionaremos algunos de los fa"ricantes y familias. •
•
•
•
•
•
2<- 3icro-hip/. 7amilia de microcontroladores $ue gana popularidad d&a a d&a. 7ueron los primeros microcontroladores 4<8-. A=4 Atmel/. 7amilia de microcontroladores muy usados por la gran cantidad de información encontrada de ellos. >?@ ?>B, >?>> y >?C>B EX ?>B y >?>>. 8u principal ventaja es $ue permiten aprovechar las herramientas de desarrollo para 2-. B>9- 3otorota, ahora llamado 7ree8cale/. Es un microcontrolador de > "its potente y popular con gran cantidad de variantes. B>C)) 3otorola/. 8urgido a partir de la popular familia B>, a la $ue se incorporan algunos perif!ricos. 8on microcontroladores de alt&simas prestaciones.
De todos ellos elegimos los microcontroladores 2<- por varias razones gran cantidad de información disponi"le en espa#ol e ingles, herramientas para tra"ajar con ellos disponi"les en la e" li"res $ue tu mismo puedes armar, a"undancia en nuestro mercado de la familias de 2<-, precio accesi"le, etc. 0os 2<- son una familia de microcontroladores fa"ricados por 3icrochip ;echnology
ROM Familia
RAM [Kbyte s]
[bytes Pines ]
Frecuencia Entradas de reloj. A/ [MHz]
Resoluci!n del #om$aradores con"ertid or A/
%em$orizadores # de &/'( bits
Arquitectura de la gama baja de 8 bits, palabra de instrucción de 12 bits P)#'*F+++
*.,- *.-
'( 01
(&
1&
*0
&
*'
'2&
P)#'0F+++
*.- '.
0 ,&
&
1&
*,
&
*'
'2&
P)#'(F+++
*.- ,
0 ',1
'1 11
0*
*,
&
*0
'2&
Arquitectura de la gama media de 8 bits, palabra de instrucción de 14 bits P)#'0F+++
'.- ,.
(1 '0&
&
0*
*1
'*
'
' 0 2 & ' 2 '(
P)#'(F+++
'.- '1
(1 ,(&
'1 (1
0*
* ',
& or '*
*0
' 0 2 & ' 2 '(
Arquitectura de la gama alta de 8 bits, palabra de i nstrucción de 16 bits P)#'&F+++
1 '0&
0( ,5,(
'& &*
,0 1&
1 '(
'* or '0
*,
*02&0,2 '(
P)#'&F++8++
& '0&
'*01 ,5,(
0& '**
1* 1&
'* '(
'*
0
*02&0,2 '(
P)#'&F++K++
& (1
-(& ,5,(
0& 11
(1
'* ',
'*
0
' 2 & , 2 '(
Antes de entrar en detalle en la estructura interna del 2<- haremos una e)plicación "reve del sistema "inario y de electrónica digital, $ue es el $ue utiliza los microcontroladores y so"re electrónica digital para una mejor compresión del funcionamiento y las partes internas $ue componen a los microcontroladores.
2. ELECTRONICA DIGITAL 0a electrónica digital se encarga del estudio de las se#ales el!ctricas $ue solo pueden tener dos posi"les estados estado alto high/ o uno lógico y estado "ajo lo%/ o cero lógico. Estos estados viene a ser representados por niveles de tensión, para el caso de los microcontroladores tra"ajan con @= $ue es el estado alto y ?= $ue es el estado "ajo. Al solo tra"ajar con dos posi"les valores, ? o @=, $ue puede ser interpretado como ? o , toda la lógica y las matemáticas para los circuitos digitales giran en torno al sistema "inario, esto $uiere decir $ue con solo dos números, ? y , se pueden escri"ir el resto, $ue se pueden hacer operaciones de suma, resta, etc., además de operaciones lógicas. 2or ello es necesario la compresión manejo del sistema "inario.
2.1. SISTEMA BINARIO
En el $uehacer común utilizamos el sistema decimal o de "ase ?, esto $uiere decir $ue con tan solo ? números ?, , F, C, G, @, B, H, > y I/ podemos escri"ir todas las cantidades y podemos realizar todas las operaciones e)istentes, a veces tam"i!n recurrimos al sistema duodecimal o de "ase F, al comprar una docena de panes, por ejemplo o media docena de huevos, estamos usando el sistema duodecimal. 8in em"argo hay un sistema muy usado en las computadoras pero $ue no salta a simple vista el sistema "inario o de "ase F, en este sistema solo e)isten dos posi"les valores, ? y . -on estos dos valores tam"i!n es posi"le escri"ir todas las cantidades y numeros posi"les, veamos un ejemplo El número HBG, en "ase ?, podemos e)presarlo de varias formas
8i nos damos cuenta la última forma e)presa el número como una suma de productos de potencias de ?, esto es por $ue estamos usando el sistema decimal, 8i e)presamos un número en el sistema "inario, por ejemplo F> tendr&amos una secuencia de unos y ceros como se muestra a continuación
Este numero al descomponerlo tam"i!n podemos e)presarlo como una suma de productos de potencias, pero de "ase es F. ;am"i!n podemos o"servar $ue al hacer la descomposición y realizar la suma o"tenemos su e$uivalente e)presado en el sistema decimal. En el mundo de las computadoras y tam"i!n los microcontroladores, toda la información es procesada de esta forma, en el sistema "inario. 5tros ejemplos de escritura "inaria serian ???F J CH ?F J ???F J FG
2.2. SISTEMA HEXADECIMAL En el principio del desarrollo de las computadoras era evidente $ue a la gente le costa"a mucho tra"ajar con números "inarios. 2or eso, se esta"leció un nuevo sistema de numeración, $ue utiliza"a B s&m"olos diferentes. Es llamado el sistema de numeración he)adecimal. Este sistema está compuesto de ? d&gitos a los $ue estamos acostum"rados ?, , F, C,... I/ y de seis letras del alfa"eto A, , -, D, E y 7. '-uál es el propósito de esta com"inación aparentemente e)tra#a( asta con mirar cómo todo en la historia de los números "inarios encaja perfectamente para lograr una mejor comprensión del tema.
El mayor número $ue puede ser representado con G d&gitos "inarios es el número . -orresponde al número @ en el sistema decimal. En el sistema he)adecimal ese número se representa con sólo un d&gito 7. Es el mayor número de un d&gito en el sistema he)adecimal. El mayor número escrito con ocho d&gitos "inarios es a la vez el mayor número de dos d&gitos en el sistema he)adecimal. ;enga en cuenta $ue una computadora utiliza números "inarios de > d&gitos. 2or ello, para el mejor manejo de las cantidades se usa el sistema he)adecimal, si $ueremos pasar del sistema "inario al he)adecimal, "asta con agrupar de G en G d&gitos comenzando por la derecha y luego escri"ir su e$uivalente en he)adecimal. Algunos ejemplos de conversión entre sistemas num!ricos ? ??F J F@B J CH ?F J B J ?? ?F J BEB J ? ?? ??F J @-B J CG> 9ay $ue tener en cuenta $ue para pasar del sistema "inario o he)adecimal al sistema decimal, "asta con descomponer en suma de potencias al los números y luego realizar la adición, ejemplos
2ara pasar del sistema "inario al sistema he)adecimal "asta con realizar la agrupación de G en G d&gitos comenzando por la derecha y luego e)presar cada grupo por su e$uivalente en he)adecimal
;am"i!n es tener en cuenta $ue el má)imo número $ue se puede contar con K d&gitos "inarios es F K L
2or ejemplo con > d&gitos "inarios, el má)imo numero será F > L JF@@
2.3. CÓDIGO BCD El código -D inaryM-ode Decimal M -ódigo "inario decimal/ es un código "inario utilizado para representar a los números decimales. 8e utiliza para $ue los circuitos electrónicos puedan comunicarse con los perif!ricos utilizando el sistema de numeración decimal o "ien utilizando el sistema "inario dentro de Nsu propio mundoO. -onsiste en números "inarios de G d&gitos $ue representan los primeros diez d&gitos ?, , F, C...>, I/. Aun$ue cuatro d&gitos pueden hacer B com"inaciones posi"les en total, el código -D normalmente utiliza a las primeras diez.
2.. DISTINCIÓN ENTRE NUMEROS El sistema de numeración he)adecimal, junto con los sistemas "inario y decimal, se consideran los más importantes para nosotros. Es fácil realizar una conversión de cual$uier número he)adecimal a "inario, además es fácil de recordarlo. Ko o"stante, estas conversiones pueden provocar una confusión, por consiguiente, para evitar e$uivocaciones, diferentes prefijos y sufijos se a#aden directamente a los números. El prefijo ! " #$ as& como el sufijo % marca los números en el sistema he)adecimal. 2or ejemplo, el número he)adecimal ?A7 se puede escri"ir as& P?A7, ?)?A7 o ?A7h. De manera similar, los números "inarios normalmente o"tienen el sufijo & o #B. 8i un número no tiene ni sufijo ni prefijo se considera decimal. Desafortunadamente, esta forma de marcar los números no es estandarizada, por consiguiente depende de la aplicación concreta.
2.'. N(MEROS NEGATI)OS 2ara escri"ir un número negativo en matemáticas, "asta con a#adirle el prefijo NMO signo menos/. 8in em"argo, en la programación, al aca"arse el proceso de la compilación, se $uedan sólo los números "inarios, volvi!ndose las cosas más complicadas. 8e utilizan sólo dos d&gitos ? y , mientras $ue todos los demás números, s&m"olos y signos se forman por medio de las com"inaciones de estos dos d&gitos. En el caso de los números negativos, la solución es la siguiente En los números negativos, el "it más significativo el "it del e)tremo iz$uierdo/ representa el signo del número donde ? será positivo y negativo/. En el caso de un número de > "its, para representar un valor num!rico sólo $uedan H "its. De acuerdo a este tipo de codificación el número QFH es el mayor número positivo con signo $ue se puede representar con > "its. 0a siguiente pregunta ser&a '-ómo es posi"le sa"er de $u! número se trata( 2or ejemplo, si ponemos el número ??????, 'es M o FI( Ko se preocupe, de eso se encarga el compilador. Rsta es la razón por la $ue se declaran varia"les al escri"ir el programa.
2.*. CIRCUITOS LOGICOS 0os circuitos lógicos se crearon con la finalidad de poder hacer las operaciones "ásicas del alge"ra de oole y asi e)presar por medio de funciones alge"raicas las formas lógicas de los circuitos. Estos circuitos lógicos representan las operaciones S AKD/, 5 54/, K5 K5;/.
2.*.1. COMPUERTA Y +AND, 1na compuerta lógica NSO dispone de dos o más entradas y de una salida. En este caso la compuerta utilizada dispone de sólo dos entradas. 1n uno lógico / aparecerá en su salida sólo en caso de $ue am"as entradas A S / sean llevadas a alto /. 0a ta"la a la derecha es la ta"la de verdad $ue muestra la relación entre las entradas y salidas de la compuerta. El principio de funcionamiento es el mismo cuando la compuerta disponga de más de dos entradas la salida proporciona un uno lógico / sólo si todas las entradas son llevadas a alto /.
2.*.2. COMPUERTA O +OR, De manera similar, la compuerta 5 tam"i!n dispone de dos o más entradas y de una salida. 8i la compuerta dispone de sólo dos entradas, es aplica"le lo siguiente la salida proporciona un uno lógico / si una u otra entrada A o / es llevada a alto /. En caso de $ue la compuerta 5 disponga de más de dos entradas, es aplica"le lo siguiente 0a salida proporciona un uno lógico / si por lo menos una entrada es llevada a alto /. 8i todas las entradas están a cero lógico ?/, la salida estará a cero lógico ?/ tam"i!n.
2.*.3. COMPUERTA NO +NOT, 0a compuerta lógica K5; dispone de una sola entrada y una sola salida, por lo $ue funciona muy simplemente. -uando un cero lógico ?/ aparezca en su entrada, la salida proporciona un uno lógico / y viceversa. Esto significa $ue esta compuerta invierte las se#ales por s& mismas y por eso es denominada inversor.
2.*.. COMPUERTA XOR +O EXCLUSI)A, 0a compuerta X54 5 EX-018<=A/ es un poco complicada en comparación con las demás. 4epresenta una com"inación de todas las compuertas anteriormente descritas. 0a salida proporciona un uno lógico / sólo si sus entradas están en estados lógicos diferentes.
2.*.'. REGISTROS 1n registro o una celda de memoria es un circuito electrónico $ue puede memorizar el estado de un "yte. los registros son los $ue conforman la memoria del microcontrolador, al ha"er un grupo de registros estos son seleccionados mediante una dirección asignada a cada uno.
REGISTROS SFR -ada microcontrolador dispone de un número de registros de funciones especiales 874/, con la función predeterminada por el fa"ricante. 8us "its están conectados a los circuitos internos del microcontrolador tales como temporizadores, convertidores A6D, osciladores entre otros, lo $ue significa $ue directamente manejan el funcionamiento de estos circuitos, o sea del microcontrolador.
En otras pala"ras, el estado de los "its de registros se fija dentro de programa, los registros 874 dirigen los pe$ue#os circuitos dentro del microcontrolador, estos circuitos se conectan por los pines del microcontrolador a un dispositivo perif!rico
PUERTOS DE ENTRADA Y-O SALIDA -ada microcontrolador tiene uno o más registros denominados puertos/ conectados a los pines en el microcontrolador. '2or $u! se denominan como puertos de entrada6salida( 2or$ue usted puede cam"iar la función de cada pin como $uiera. 2or ejemplo, usted desea $ue su dispositivo encienda y apague los tres se#ales 0EDs y $ue simultáneamente monitoree el estado lógico de @ sensores o "otones de presión. 1no de los puertos de"e estar configurado de tal manera $ue haya tres salidas conectadas a los 0EDs/ y cinco entradas conectadas a los sensores/. Eso se realiza simplemente por medio de soft%are, lo $ue significa $ue la función de algún pin puede ser cam"iada durante el funcionamiento.
1na de las caracter&sticas más importantes de los pines de entrada6salida E68/ es la corriente má)ima $ue pueden entregar6reci"ir. En la mayor&a de los microcontroladores la corriente o"tenida de un pin es suficiente para activar un 0ED u otro dispositivo de "aja corriente ?MF?mA/. 3ientras más pines de E68 haya, más "aja es la corriente má)ima de un pin. En otras pala"ras, todos los puertos de E68 comparten la corriente má)ima declarada en la hoja de especificación t!cnica del microprocesador. 5tra caracter&stica importante de los pines es $ue pueden disponer de los resistores pullM up. Estos resistores conectan los pines al polo positivo del voltaje de la fuente de alimentación y su efecto se puede ver al configurar el pin como una entrada conectada a un interruptor mecánico o a un pulsador. 0as últimas versiones de los microcontroladores tienen las resistencias pullMup configura"les por soft%are. -ada puerto de E68 normalmente está "ajo el control de un registro 874 especializado, lo $ue significa $ue cada "it de ese registro determina el estado del pin correspondiente en el el microcontrolador. 2or ejemplo, al escri"ir un uno lógico / a un "it del registro de control 874/, el pin apropiado del puerto se configura automáticamente como entrada. Eso significa $ue el voltaje llevado a ese pin se puede leer como ? o lógico. En caso contrario, al escri"ir ? al registro 874, el pin apropiado del puerto se configura como salida. 8u voltaje ?= o @=/ corresponde al estado del "it apropiado del registro del puerto.
UNIDAD DE MEMORIA 0a unidad de memoria es una parte del microcontrolador utilizada para almacenar los datos. 0a manera más fácil de e)plicarlo es compararlo con un armario grande con muchos cajones. 8i marcamos los cajones claramente, será fácil acceder a cual$uiera de sus contenidos al leer la eti$ueta en la parte delantera del cajón.
De manera similar, cada dirección de memoria corresponde a una localidad de memoria. El contenido de cual$uier localidad se puede leer y se le puede acceder al direccionarla. 0a memoria se puede escri"ir en la localidad o leer. 9ay varios tipos de memoria dentro del microcontrolador
MEMORIA ROM +READ ONLY MEMORY, 0a memoria 453 se utiliza para guardar permanentemente el programa $ue se está ejecutando. El tama#o de programa $ue se puede escri"ir depende del tama#o de esta memoria. 0os microcontroladores actuales normalmente utilizan el direccionamiento de B "its, $ue significa $ue son capaces de direccionar hasta BG T" de memoria, o sea B@@C@ localidades. 2or ejemplo, si usted es principiante, su programa e)cederá pocas veces el l&mite de varios cientos de instrucciones. 9ay varios tipos de memoria 453. OTP ROM +O/ T0/ P"4456/ ROM, 7 ROM 8"4456/ 94 :"64 ;/<. 0a memoria programa"le una sola vez permite descargar un programa en el chip, pero como dice su nom"re, una sola vez. 8i se detecta un error despu!s de descargarlo, lo único $ue se puede hacer es descargar el programa correcto en otro chip. U) EPROM +U) E4:456/ P"4456/ ROM, 7 ROM 8"4456/ 5"456/ 8" 4=": 96>4;0"6/>4. El encapsulado de este microcontrolador tiene una NventanaO reconoci"le en la parte alta. Eso permite e)poner la superficie del chip de silicio a la luz de ultravioleta y "orrar el programa completamente en varios minutos. 0uego es posi"le descargar un nuevo programa en !l.
M/"04 F64:%. En este tipo de memoria es posi"le escri"ir y "orrar el contenido de esta memoria prácticamente un número ilimitado de veces, los microcontroladores con memoria 7lash son perfectos para estudiar, e)perimentar y para la fa"ricación en pe$ue#a escala. MEMORIA RAM +RANDOM ACCESS MEMORY, 7 MEMORIA DE ACCESO ALEATORIO. Al apagar la fuente de alimentación, se pierde el contenido de la memoria 4A3. 8e utiliza para almacenar temporalmente los datos y los resultados inmediatos creados y utilizados durante el funcionamiento del microcontrolador. MEMORIA EEPROM +ELECTRICALLY ERASABLE PROGRAMMABLE ROM, 7 ROM PROGRAMABLE Y BORRABLE ELÉCTRICAMENTE. El contenido de la EE2453 se puede cam"iar durante el funcionamiento similar a la 4A3/, pero se $ueda permanentemente guardado despu!s de la p!rdida de la fuente de alimentación similar a la 453/. 2or lo tanto, la EE2453 se utiliza con frecuencia para almacenar los valores creados durante el funcionamiento, $ue tienen $ue estar permanentemente guardados.
EL CPU +UNIDAD CENTRAL DE PROCESAMIENTO, -omo indica su nom"re, esto es una unidad $ue controla todos los procesos dentro del microcontrolador. -onsiste en varias unidades más pe$ue#as, de las $ue las más importantes son D/"@004@" @/ 0:>90"/: es la parte $ue descodifica las instrucciones del programa y acciona otros circuitos "asándose en esto. El Nconjunto de instruccionesO $ue es diferente para cada familia de microcontrolador e)presa las capacidades de este circuitoU U0@4@ 604 40>>04 +A0>%/>046 L"046 U0> 7 ALU, realiza todas las operaciones matemáticas y lógicas so"re datosU y A9964@" " /0:>" @/ >454". Es un registro 874 estrechamente relacionado con el funcionamiento de la A01. Es utilizado para almacenar todos los datos so"re los $ue se de"e realizar alguna operación sumar, mover/. ;am"i!n almacena los resultados preparados para el procesamiento futuro.
BUS
El "us está formado por >, B o más ca"les. 9ay dos tipos de "uses el "us de direcciones y el "us de datos. El "us de direcciones consiste en tantas l&neas como sean necesarias para direccionar la memoria. 8e utiliza para transmitir la dirección de la -21 a la memoria. El "us de datos es tan ancho como los datos, en este caso es de > "its o l&neas de ancho. 8e utiliza para conectar todos los circuitos dentro del microcontrolador. ;odo sistema $ue lleve un microcontrolador consta de tres partes
H4@4/ es el conjunto de circuitos electronicos $ue forman el sistema. es la parte fisica. S">4/ Es el conjunto de programas y aplicaciones formado por instrucciones y rutinas $ue se utilizan para programar y coordinar al sistema. ;am"i!n se denomina soft%are al conjunto de lenguajes empleados para ela"orar dichos programas. F04/ Es un Vsoft%areV gra"ado en la estructura electrónica del microcontrolador y $ue el usuario en principio no puede alterar. En las computadoras, la <58 utiliza firm%are y contiene un grupo de programas $ue sirven de intermediario entre el soft%are y hard%are. ARQUITECTURA DEL MICROCONTROLADOR En el mundo de los microcontroladores se le denomina ar$uitectura a la forma como intercam"ian datos entre el -21 y la memoria, e)isten dos tipos
A90>/>94 )" N/94 En la cual disponen un solo "lo$ue de memoria, es decir están juntos la 453 memoria de programa/ y la 4A3 memoria de datos/. 8u desventaja es $ue es más lento el procesamiento al tener $ue usar las mismas l&neas para leer instrucciones y datos
A90>/>94 H4;4@ en la $ue la memoria de datos esta separada de la memoria de instrucciones, como las l&neas $ue utiliza para comunicarse con am"as memorias son independientes, por lo $ue puede leer una instrucción de la memoria y al mismo tiempo cargar un dato al -21. Además las memorias pueden ser de distintas cantidades de "ytes.
De am"as la $ue utiliza los microcontroladores 2<- es la segunda, por las ventajas mencionadas.
UEGO DE INSTRUCCIONES -uando ha"lamos del juego de instrucciones nos referimos a las instrucciones $ue puede entender el microcontrolador, $ue para los microcontroladores es el ensam"lador o assem"ler. E)isten dos enfo$ues
RISC +R/@9/@ I:>9>0" S/> C"89>/, 7 C"89>4@"4 " 9/" @/ I:>90"/: R/@90@4:. En este caso la idea es $ue el microcontrolador reconoce y ejecuta sólo operaciones "ásicas sumar, restar, copiar etc.../ 0as operaciones más complicadas se realizan al com"inar !stas por ejemplo, multiplicación se lleva a ca"o al realizar adición sucesiva/. CISC +C"86/$ I:>9>0" S/> C"89>/, 7 C"89>4@"4: " 9 9/" @/ 0:>90"/: "86/". -<8- es opuesto a 4<8-. 0os microcontroladores dise#ados para reconocer más de F?? instrucciones diferentes realmente pueden realizar muchas cosas a alta velocidad. Ko o"stante, uno de"e sa"er cómo utilizar todas las posi"ilidades $ue ofrece un lenguaje tan rico, lo $ue no es siempre tan fácil.
Estructura interna de un microcontrolador
PROGRAMA CCS COMPILER Es un compilador $ue convierte el lenguaje de alto nivel en código má$uina, desarrollado espec&ficamente para los microcontroladores 2<-s. 8oporta la gran mayoria de microcontroladores disponi"les en nuestro mercado. Es - estándar, además de directivas estándar, suministra directivas especificas para 2<-s y funciones especificas.
ESTRUCTURA DE UN PROGRAMA En un programa escrito en lenguaje - podemos encontrar G partes
D0/>0;4: @/ P/P"/:4@" controlan la conversión del programa a código má$uina. ásicamente son instrucciones para el compilador, de esta forma el compilador sa"e $ue de"e de hacer con el programa. 2or lo general las directivas inician con el s&m"olo W. Ejm Winclude stdli".hY Wuse fastZioA/
I:>90"/: le dicen $ue de"e hacer el 2<- en todo momento. Estas instrucciones, al ser compiladas, son las $ue generan el código assem"ler e$uivalente para $ue sean interpretadas por el microcontrolador. Ejm ifinput8EK854//[ printfNsensor activoO/U relayJoffU \
F90"/: 0as funciones es un conjunto de instrucciones $ue al ser agrupadas actúan como una sola instrucción más compleja. 0as funciones pueden reci"ir parámetros y retornar valores de salida. 0a función principal en - es main. ;oda función tiene un tipo determinado de dato. Ejm void main/ [ outputZhigh2
C"/>40": 2ermiten descri"ir lo $ue esta haciendo al programa. 8e antepone dos "arras inclinadas. 8irven como gu&a para el programador, de tal forma $ue sepa $ue acción realiza cierto código. Al ser compilado no genera código ejecuta"le. Ejm 66 Este es un comentario 6] de esta forma puedo comentar un parrafo ]6