Vous êtes sur la page 1sur 10

Controladores y microcontroladores

Un controlador es un dispositivo electrnico encargado de, valga la redundancia, controlar uno o


ms procesos.
Por ejemplo, el controlador del aire acondicionado, recoger la informacin de los sensores de
temperatura, la procesar y actuar en consecuencia.
Al principio, los controladores estaban formados exclusivamente por componentes discretos. Ms
tarde, se emplearon procesadores rodeados de memorias, circuitos de E!," sobre una placa de
circuito impreso #P$%&.
Actualmente, los controladores integran todos los dispositivos antes mencionados en un pe'ue(o
c)ip. Esto es lo 'ue )oy conocemos con el nombre de microcontrolador.
Diferencia entre microcontrolador y microprocesador
Es muy )abitual confundir los t*rminos de microcontrolador y microprocesador, cayendo as+ en un
error de cierta magnitud. Un microcontrolador es, como ya se )a comentado previamente, un
sistema completo, con unas prestaciones limitadas 'ue no pueden modificarse y 'ue puede llevar a
cabo las tareas para las 'ue )a sido programado de forma autnoma. Un microprocesador, en
cambio, es simplemente un componente 'ue conforma el microcontrolador, 'ue lleva a cabo ciertas
tareas 'ue anali,aremos ms adelante y 'ue, en conjunto con otros componentes, forman un
microcontrolador.
-ebe 'uedar clara por tanto la diferencia entre microcontrolador y microprocesador. a modo de
resumen, el primero es un sistema autnomo e independiente, mientras 'ue el segundo es una
parte, cabe decir 'ue esencial, 'ue forma parte de un sistema mayor.
Arquitectura interna de un microcontrolador
$omo ya )emos visto, un microcontrolador es un dispositivo complejo, formado por otros ms
sencillos. A continuacin se anali,an los ms importantes.
Procesador
Es la parte encargada del procesamiento de las instrucciones. -ebido a la necesidad de conseguir
elevados rendimientos en este proceso, se )a desembocado en el empleo generali,ado de
procesadores de ar'uitectura /arvard frente a los tradicionales 'ue segu+an la ar'uitectura de von
0eumann. Esta 1ltima se caracteri,aba por'ue la $PU se conectaba con una memoria 1nica,
donde coexist+an datos e instrucciones, a trav*s de un sistema de buses.
Ar'uitectura von 0eumann
En la ar'uitectura /arvard son independientes la memoria de instrucciones y la memoria de datos
y cada una dispone de su propio sistema de buses para el acceso. Esta dualidad, adems de
propiciar el paralelismo, permite la adecuacin del tama(o de las palabras y los buses a los
re'uerimientos espec+ficos de las instrucciones y de los datos.
Ar'uitectura /arvard
El procesador de los modernos microcontroladores responde a la ar'uitectura 23!$
#$omputadores de 4uego de 3nstrucciones 2educido&, 'ue se identifica por poseer un repertorio de
instrucciones m'uina pe'ue(o y simple, de forma 'ue la mayor parte de las instrucciones se
ejecutan en un ciclo de instruccin.
5tra aportacin frecuente 'ue aumenta el rendimiento del computador es el fomento del
paralelismo impl+cito, 'ue consiste en la segmentacin del procesador #pipe6line&,
descomponi*ndolo en etapas para poder procesar una instruccin diferente en cada una de ellas y
trabajar con varias a la ve,.
Memoria de programa
El microcontrolador est dise(ado para 'ue en su memoria de programa se almacenen todas las
instrucciones del programa de control. $omo *ste siempre es el mismo, debe estar grabado de
forma permanente.
Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan
las siguientes.
- ROM con mscara. se graba mediante el uso de mscaras. !lo es recomendable para series
muy grandes debido a su elevado coste.
- EPROM. se graba el*ctricamente con un programador controlador por un P$. -isponen de una
ventana en la parte superior para someterla a lu, ultravioleta, lo 'ue permite su borrado. Puede
usarse en fase de dise(o, aun'ue su coste unitario es elevado.
- OTP: su proceso de grabacin es similiar al anterior, pero *stas no pueden borrarse. !u bajo
coste las )acen idneas para productos finales.
- EEPROM: tambi*n se graba el*ctricamente, pero su borrado es muc)o ms sencillo, ya 'ue
tambi*n es el*ctrico. 0o se pueden conseguir grandes capacidades y su tiempo de de escritura y
su consumo es elevado.
- FA!": se trata de una memoria no voltil, de bajo consumo, 'ue se puede escribir y borrar en
circuito al igual 'ue las EEP25M, pero 'ue suelen disponer de mayor capacidad 'ue estas 1ltimas.
!on recomendables aplicaciones en las 'ue es necesario modificar el programa a lo largo de la
vida del producto. Por sus mejores prestaciones, est sustituyendo a la memoria EEP25M para
contener instrucciones. -e esta forma Microc)ip comerciali,a dos microcontroladores
prcticamente iguales 'ue slo se diferencian en 'ue la memoria de programa de uno de ellos es
tipo EEP25M y la del otro tipo 7las). !e trata del P3$89$:; y el P3$897:;, respectivamente.
Memoria de datos
<os datos 'ue manejas los programas var+an continuamente, y esto exige 'ue la memoria 'ue los
contiene debe ser de lectura y escritura, por lo 'ue la memoria 2AM esttica #!2AM& es la ms
adecuada, aun'ue sea voltil.
/ay microcontroladores 'ue disponen como memoria de datos una de lectura y escritura no voltil,
del tipo EEP25M. -e esta forma, un corte en el suministro de la alimentacin no ocasiona la
p*rdida de la informacin, 'ue est disponible al reiniciarse el programa. El P3$897:; dispone de
9; bytes de memoria EEP25M para contener datos.
#neas de E$!
A excepcin de dos patitas destinadas a recibir la alimentacin, otras dos para el cristal de cuar,o,
'ue regula la frecuencia de trabajo, y una ms para provocar el 2eset, las restantes patitas de un
microcontrolador sirven para soportar su comunicacin con los perif*ricos externos 'ue controla.
<as l+neas de E! 'ue se adaptan con los perif*ricos manejan informacin en paralelo y se agrupan
en conjuntos de oc)o, 'ue reciben el nombre de Puertas. /ay modelos con l+neas 'ue soportan la
comunicacin en serie= otros disponen de conjuntos de l+neas 'ue implementan puertas de
comunicacin para diversos protocolos, como el 3>$, el U!%, etc.
Recursos au%iliares
!eg1n las aplicaciones a las 'ue orienta el fabricante cada modelo de microcontrolador, incorpora
una diversidad de complementos 'ue refuer,an la potencia y la flexibilidad del dispositivo. Entre los
recursos ms comunes se citan los siguientes.
6 $ircuito de reloj. se encarga de generar los impulsos 'ue sincroni,an el funcionamiento de todo
el sistema. 6 ?empori,adores, orientados a controlar tiempos. 6 Perro @uardin o Aatc)-og. se
emplea para provocar una reiniciali,acin cuando el programa 'ueda blo'ueado. 6 $onversores
A- y -A, para poder recibir y enviar se(ales analgicas. 6 !istema de proteccin ante fallos de
alimentacin 6 Estados de reposos, gracias a los cuales el sistema 'ueda congelado y el consumo
de energ+a se reduce al m+nimo.
Programaci&n de microcontroladores
<a utili,acin de los lenguajes ms cercanos a la m'uina #de bajo nivel& representan un
considerable a)orro de cdigo en la confeccin de los programas, lo 'ue es muy importante dada
la estricta limitacin de la capacidad de la memoria de instrucciones. <os programas bien
reali,ados en lenguaje Ensamblador optimi,an el tama(o de la memoria 'ue ocupan y su ejecucin
es muy rpida.
<os lenguajes de alto nivel ms empleados con microcontroladores son el $ y el %A!3$ de los 'ue
existen varias empresas 'ue comerciali,an versiones de compiladores e interpretes para diversas
familias de microcontroladores. En el caso de los P3$ es muy competitivo e interesante el
compilador de $ P$M de la empresa $$! y el P%A!3$ de micro<ab Engineerign, ambos
comerciali,ados en Espa(a por Mircosystems Engineering.
/ay versiones de interpretes de %A!3$ 'ue permiten la ejecucin del programa l+nea a l+nea, y en
ocasiones, residen en la memoria del propio microcontrolador. $on ellos se puede escribir una
parte del cdigo, ejecutarlo y comprobar el resultado antes de proseguir.
os P'C( El )*F+,
El P3$ es el microcontrolador 'ue fabrica la compa(+a Microc)ip. Aun'ue no son los
microcontroladores 'ue ms prestaciones ofrecen, en los 1ltimos a(os )an ganado muc)o
mercado, debido al bajo precio de *stos, lo sencillo de su manejo y programacin y la ingente
cantidad de documentacin y usuarios 'ue )ay detrs de ellos.
-Para qu. sir/e un P'C0
Un P3$, al ser un microcontrolador programable, puede llevar a cabo cual'uier tarea para la cual
)aya sido programado.
0o obstante, debemos ser conscientes de las limitaciones de cada P3$. As+, el 897:;, P3$ 'ue se
tratar en este tutorial, no podr generar un PAM ni convertir se(ales analgicas en
digitales, entre otras.
El )*F+,
!e trata de un microcontrolador de : bits. Es un P3$ de gama baja, cuyas caracter+sticas podemos
resumir en.
6 Memoria de 8B x 8; de tipo 7las)
6 Memoria de datos EEP25M de 9; bytes
6 8C l+neas de E! con control individual
6 7recuencia de funcionamiento mxima de 8D M),.
6 $uatro fuentes de interrupcin
6 Activacin de la patita 2%D30?
6 -esbordamiento del ?M2D
6 $ambio de estado en alguna patia 2%;62%E
6 7in de la escritura de la EEP25M de datos
6 ?empori,adorcontador ?M2D programable de : bits
6 Perro @uardin o Aatc)-og
@eneralmente se encuentra encapsulado en formato -3P8:. A continuacin puede apreciarse dic)o
encapsulado y una breve descripcin de cada una de
las patitas. imagen.
6 F--. alimentacin
6 F!!. masa
6 5!$8$<B3065!$>$<B5U?. conexin del oscilador
6 FPPM$<2. tensin de programacin y reset
6 2AD62AC. l+neas de E! de la puerta A
6 2A;. l+nea de E! de la puerta A o entrada de
impulsos de reloj para ?M2D
6 2%D30?. l+nea de E! de la puerta % o peticin de
interrupcin
6 2%862%E. l+neas de E! de la puerta %
Organi1aci&n de la memoria
A continuacin podemos ver la organi,acin de
la memoria del 897:;.
Podemos comprobar como la memoria est
dividida en dos bancos #cada una de las
columnas&. banco D y banco 8. <as primeras 8>
posiciones de cada banco #DD)6D%) y :D)6
:%)& estn ocupadas por los 2egistros de
Propsito Especial #!pecial Purpose
2egisters&. Estos registros, en los 'ue
entraremos en detalle ms adelante, son los
encargados de controlar ciertas funciones
espec+ficas del P3$.
<as 9: posiciones siguientes #D$)6;7) y :$)6
$7)& son los denominados 2egistros de
Propsito @eneral, del ingl*s @eneral Purpose
2egisters. Gstos son empleados para guardar
cual'uier dato 'ue necesitemos durante la
ejecucin del programa.
%A0$5 D
?M2D. es un tempori,adorcontador de : bits. Puede operar de dos modos distintos.
6 ?empori,ador. el registro incrementa su valor en cada ciclo de instruccin #7osc;&.
6 $ontador. el registro incrementa su valor con cada impulso introducido en la patita
2A;?5!B3.
En ambos casos, cuando el registro se desborda, es decir, llega a su valor mximo #en
este caso >H: I >J9. $omo el D tambi*n se cuenta, el mximo valor ser+a >JJ&, empie,a de
nuevo a contar a partir del D, no sin antes informar de este evento a trav*s de la activacin
de un flag yo una interrupcin.

P$<. es el contador del programa. 3ndica la direccin de memoria 'ue se leer a
continuacin. En algunas ocasiones, como el empleo de las tablas, el uso de este registro
es imprescindible.

!?A?U!. registro de : bits 'ue sirve para configurar ciertos aspectos del P3$. En la
siguiente figura se aprecia la disposicin de los bits de dic)o registro.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
IRP RP0 TO# PD# Z DC C
6 2PD. indica el banco de memoria con el 'ue se est trabajando. $uando vale D se
selecciona el %anco D y cuando vale 8 el %anco 8.

P52?A. representacin de la puerta A. $ada bit representa una l+nea de E! de la puerta
A.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
RA4 RA3 RA2 RA1 RA0
$omo se puede comprobar, los tres bits de mayor peso no representan ninguna l+nea de
E!, ya 'ue la puerta A slo tiene J l+neas de E!

P52?%. lo mismo 'ue la puerta A, pero en este caso con : l+neas de E!
%A0$5 8
?23!A. registro de : bits de configuracin de la puerta A. !i un bit se encuentra en 8, esa
l+nea de E! se configura como entrada= si, en cambio, se encuentra a D, se configura
como salida
?23!%. lo mismo 'ue ?23!A, pero referente a la puerta %.

Bit7 %it9 %itJ %it; %itC %it> %it8 %itD
RB7 2%9 2%J 2%; 2%C 2%> 2%8 2%D
7inalmente cabe destacar el registro A, tambi*n conocido como registro de trabajo #del ingl*s
KorL& o acumulador. Es de vital importancia ya 'ue, entre otras, deberemos usarlo de registro
puente para llevar a cabo ciertas operaciones.

Repertorio de instrucciones
A continuacin veremos algunas de las instrucciones ms importantes, o al menos ms empleadas
en la programacin de P3$s, en A!M. <as restantes se irn viendo en entregas posteriores seg1n
vaya siendo necesario su manejo.
6 Manejo de registros
6 clrf f. limpia el registro f, es decir, pone todos sus bits a D.
6 comf f,d. complementa el registro fuente f #cambia los 8 por D y viceversa& y el resultado lo
deposita en el destino.
!i d I D el destino es A y si d I 8, el destino es el registro fuente f.
6 Manejo de bits
6 bcf f,b. pone a D el bit b del registro f.
6 bsf f,b. pone a 8 el bit b del registro f.
6 %rinco
6 %tfsc f, b. explora el bit b del registro f y salta si vale D
6 %tfss f, b. explora el bit b del registro f y salta si vale 8
6 $ontrol y especiales 6 @oto eti'ueta. sit1a el cursor del programa #P$<&, en eti'ueta
Circuiter#a 23sica
En el siguiente es'uema podemos ver la circuiter+a bsica, es decir, el circuito m+nimo para 'ue el
P3$ empiece a funcionar

Identificador Componente
R1 Resistencia 100
R2 Resistencia 10k
C1, C2 Condensado ce!"ico 27 #$
D1 Diodo 1%414&
'TA( Cista) de c*a+o 4 ,-+.
/01 P*)sado %A
Gste consta bsicamente de dos partes.
6 Alimentacin. se emplean para ello dos pines. 8; F-- #tensin positiva& y J @0- #masa&. !e
incluye adems un pulsador, conectado al pin ;. cuando se introduce un nivel alto de tensin
#pulsador abierto& el P3$ funciona normalmente y cuando se introduce un nivel bajo #pulsador
cerrado& se resetea el P3$. 6 5scilacin. la lleva a cabo el cristal de cuar,o #de ; M), en nuestro
caso& junto con los dos condensadores cermicos #>Ep7&. Existen otros tipos de osciladores 'ue
pueden sernos 1tiles cuando trabajemos con P3$s, pero de momento no los veremos.
4uestro primer programa
A continuacin vamos a desarrollar nuestro primer programa. Gste activar un <E- conectado a
2%D siempre 'ue el interruptor conectado a 2AD este cerrado. Para ello vamos a montar el
siguiente circuito.
En el circuito podemos ver como lo 1nico 'ue )emos a(adido al circuito base es un pulsador
conectado al pin 8E #2AD&, de forma 'ue cuando lo pulsemos se introdu,ca un cero lgico en el pin
y cuando no lo pulsemos se introdu,ca un uno lgico. /emos a(adido adems un <E- con su
correspondiente resistencia limitadora de corriente en el pin 9 #2%D&.
-e lo 'ue )emos comentado en esta prctica, caben destacar dos cosas.
6 <a eleccin de los pines )a sido arbitraria. se )an escogido *stos, pero pod+amos )aber escogido
otros. 0o obstante, mientras sea posible es mejor organi,ar el es'uema y el programa, y una forma
de )acerlo es agrupando por un lado las entrada #Puerta A& y por otro las salidas #Puerta %&. Por la
misma ra,n, )emos escogido el pin D de cada puerta, en ve, de escoger en un sitio el C y en otro
el E, por ejemplo.
6 En el caso de las entradas, es trivial 'ue cuando se pulse o deje de activar el pulsador se env+e
un cero o un uno, pues lo 1nico 'ue 'ueremos es 'ue el P3$ pueda detectar un cambio. As+, igual
nos da comprobar cuando se env+a un cero 'ue cuando se env+a un uno, ya 'ue en ambos casos
podremos verificarlo. En este caso se )a elegido el cero como activado por'ue es lo ms com1n.
En el caso de las salidas no ocurre lo mismo, ya 'ue en este caso no se trata de detectar un
cambio, sino de activar un dispositivo, por lo 'ue se )ace necesaria 'ue el P3$ MgenereM una
diferencia de potencial. As+, la forma de indicar al P3$ 'ue lo )aga es poniendo a uno la salida.
/ec)as estas aclaraciones, veamos el programa.
ESTADO EQU 0x03
PORTA EQU 0x05
PORTB EQU 0x06
org 0
bsf ESTADO,5
clrf PORTA
comf PORTA,1
clrf PORTB
bcf ESTADO,5
INICIO btfsc PORTA,0
goto APAAR
goto ENCENDER
APAAR bcf PORTB,0
goto INICIO
ENCENDER bsf PORTB,0
goto INICIO
!"#
$omentemos el cdigo.
<as tres primeras l+neas, cuyo n1cleo es ENU, permiten 'ue el compilador interprete a
partir de ese momento los nombres de la primera columna con las direccin de memoria de
la derec)a. El objetivo de estas instrucciones es obvio. facilitar la comprensin del cdigo,
ya 'ue es ms fcil recordar un nombre 'ue nos sugiere algo 'ue direccin en
)exadecimal.
<a siguiente instruccin, org D, no la anali,aremos de momento. !implemente decir 'ue es
necesaria para el correcto funcionamiento del programa, ya 'ue indica el comien,o del
cdigo.
bsf E!?A-5,J nos permite poner a 8 el bit J de E!?A-5, con lo 'ue conseguimos acceder
al banco 8, donde se encuentran los registros de configuracin de las puertas.
clrf P52?A. pone a cero todos los bits del registro porta, con lo 'ue se consigue 'ue dic)a
puerta se configure al completo como salida. En este caso lo usamos conjuntamente con
comf, 'ue transforma los D en 8 y viceversa. As+, se consigue configurar la puerta a como
entrada. Podr+amos usar otros m*todos, como movlK Dx77 junto con movKf PUE2?AA,
pero el primero lo considero ms elegante.
clrf P52?%. pone a cero todos los bits del registro P52?%, configurando *ste como salida.
bcf E!?A-5,J pone a D el bit J de E!?A-5, volviendo as+ al banco D.
3nicio, apagar y encender son eti'uetas, cuya utilidad es marcar un punto del programa=
as+, si 'ueremos volver a ese punto slo tendremos 'ue )acer referencia a su nombre.
btfsc P52?A,D sirve para saltar si el bit D de P52?A vale D, es decir, cuando se activ el
pulsador. En ese caso, vamos a E0$E0-E2 mediante goto E0$E0-E2, se pone a 8 el
bit D de P52?%, 'ue es donde est conectado el led y volvemos a 303$35.
!i no est pulsado el interruptor vamos a APA@A2, y )acemos la operacin contraria a la
anterior. 7inalmente volvemos a 303$35.
Programaci&n de P'Cs
?odos los microcontroladores necesitan un circuito grabador, llamado programador, para, valga la
redundancia, programarlo. En este caso, los P3$s, y ms concretamente el 897:;, no es una
excepcin.

Vous aimerez peut-être aussi