0% encontró este documento útil (0 votos)
123 vistas21 páginas

Introducción a Microcontroladores

Este documento describe una práctica sobre el corrimiento de LEDs utilizando un microcontrolador. Explica brevemente la arquitectura de los microcontroladores, incluyendo elementos como la memoria y los puertos de entrada y salida. El objetivo de la práctica es utilizar puertos y rutinas de retardo en lenguaje de ensamblador para desarrollar una aplicación que haga correr LEDs.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
123 vistas21 páginas

Introducción a Microcontroladores

Este documento describe una práctica sobre el corrimiento de LEDs utilizando un microcontrolador. Explica brevemente la arquitectura de los microcontroladores, incluyendo elementos como la memoria y los puertos de entrada y salida. El objetivo de la práctica es utilizar puertos y rutinas de retardo en lenguaje de ensamblador para desarrollar una aplicación que haga correr LEDs.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

 

Microcontroladores
 
Práctica 2
 
Corrimiento de LED´s 1  
 

   
 


Miguel Ángel Esparza Ávila
Profesor del I T Durango
Diciembre 2018
 
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Objetivo:
Utilizar adecuadamente puertos y rutinas de retardo en lenguaje ensamblador, en el desarrollo
de la aplicación “Corrimiento de LED´s”.

Temas relacionados:
2.1. Programación en lenguaje ensamblador.

2.2. Ambiente integrado de desarrollo (IDE) para Microcontroladores.

2.3. Programación del microcontrolador en lenguaje ensamblador.

1. Marco teórico
1.1 Arquitectura básica de microcontroladores
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von
Neumann, en el momento presente se impone la arquitectura Harvard.

La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal
donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a
través de un sistema de buses único (direcciones, datos y control).

La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo
instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de
acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en
ambas memorias como se muestra en la figura 1.

Figura 1.‐ Arquitectura Harvard 
1
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

A continuación, se tratan los elementos de la arquitectura de un microcontrolador.

El procesador o UCP
Es el elemento más importante del microcontrolador y determina sus principales características,
tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones,
recibir el código de operación de la instrucción en curso, su decodificación y la ejecución de la
instrucción.

Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores


actuales.

CISC: Un gran número de procesadores usados en los microcontroladores están basados en la


filosofía CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80
instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes,
requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que
ofrecen al programador instrucciones complejas que actúan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores


están decantándose hacia la filosofía RISC (Computadores de Juego de Instrucciones
Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las
instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de
las instrucciones permiten optimizar el hardware y el software del procesador.

SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de


instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan a
las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC
(Computadores de Juego de Instrucciones Específico).

Memoria
En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip.
Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones
que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar
las variables y los datos.

2
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Hay dos peculiaridades que diferencian a los microcontroladores de los computadores


personales:

 No existen sistemas de almacenamiento masivo como disco duro o disquetes.


 Como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo hay que
almacenar un único programa de trabajo.

La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los
cambios de información que se produzcan en el transcurso del programa. Por otra parte, como
sólo existe un programa activo, no se requiere guardar una copia de este en la RAM pues se
ejecuta directamente desde la ROM.

Los usuarios de computadores personales están habituados a manejar Megabytes de memoria,


pero, los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas
entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes.

Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización
de estos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden
encontrar en los microcontroladores del mercado.

 ROM con máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del
chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los
microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios
miles de unidades.

 OTP

El microcontrolador contiene una memoria no volátil de sólo lectura "programable una sola vez"
por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa
en el chip mediante un sencillo grabador controlado por un programa desde un PC.

La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien,
en la construcción de prototipos y series muy pequeñas.

3
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante
fusibles para proteger el código contenido.

 EPROM

Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy
Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso
de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el
contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM
a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más
caros que los microcontroladores con memoria OTP que están hechos con material plástico.

 EEPROM

Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM


(Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el
borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de
un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. Los
microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden
grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se
usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar
modificaciones en el programa de trabajo.

El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que
no es recomendable una reprogramación continua. Son muy idóneos para la enseñanza y la
Ingeniería de diseño.

Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria


EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de
parámetros que adecuan el dispositivo a las condiciones del entorno.

 FLASH

Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona
como una ROM y una RAM pero consume menos y es más pequeña.

4
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de


mayor densidad que la EEPROM.

La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad
de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado.

Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las
incorporan puedan ser reprogramados "en circuito", es decir, sin tener que sacar el circuito
integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del
motor de un automóvil permite que pueda modificarse el programa durante la rutina de
mantenimiento periódico, compensando los desgastes y otros factores tales como la
compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador
puede convertirse en una labor rutinaria dentro de la puesta a punto.

Puertos de entrada y salida


La principal utilidad de las patitas que posee la cápsula que contiene un microcontrolador es
soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores.

Según los controladores de periféricos que posea cada modelo de microcontrolador, las líneas
de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y control.

Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada
de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las
operaciones del sistema.

Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan


unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo.
Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien
un resonador cerámico o una red R-C. Actualmente la mayoría de los microcontroladores
incluyen un oscilador interno que no necesita componentes externos.

Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones,
pero lleva aparejado un incremento del consumo de energía.

5
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Recursos especiales
Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador.
En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en
otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del
diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su
aplicación. De esta forma, minimizará el coste, el hardware y el software.

Los principales recursos específicos que incorporan los microcontroladores son:

• Temporizadores o "Timers".

• Perro guardián o "Watchdog".

• Protección ante fallo de alimentación o "Brownout".

• Estado de reposo o de bajo consumo.

• Conversor A/D.

• Conversor D/A.

• Comparador analógico.

• Modulador de anchura de impulsos o PWM.

• Puertas de E/S digitales.

• Puertas de comunicación.

1.2 Microcontrolador PIC


Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology
Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de
General Instrument.

El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque


generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico).
El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000. Siendo en

6
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el PIC de 8 bits
se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de entrada/salida
a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar estas tareas;
y aunque el término no se usaba por aquel entonces, se trata de un diseño RISC que ejecuta
una instrucción cada 4 ciclos del oscilador.

En 1985 la división de microelectrónica de General Instrument se separa como compañía


independiente que es incorporada como filial (el 14 de diciembre de 1987 cambia el nombre a
Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario
canceló casi todos los desarrollos, que para esas fechas la mayoría estaban obsoletos. El PIC,
sin embargo, se mejoró con EPROM para conseguir un controlador de canal programable. Hoy
en día multitud de PIC vienen con varios periféricos incluidos (módulos de comunicación serie,
UART, núcleos de control de motores, etc.) y con memoria de programa desde 512 a 32 000
palabras (una palabra corresponde a una instrucción en lenguaje ensamblador, y puede ser de
12, 14, 16 o 32 bits, dependiendo de la familia específica de PICmicro).

Los productos que fabricaba eran los microcontroladores PIC y las memorias EEPROM y
EPROM. Hoy es uno de los líderes del mercado de microcontroladores. Algunos de sus
productos son:

 Microcontroladores PIC.
 Serie 12 (gama básica)
 Serie 16 (gama media)
PIC16F84 (PIC ampliamente utilizado en educación)
PIC16F87X
PIC16F88
 Serie 18 (gama alta)
 PIC24H
 PIC32 (MCUS de 32 bits)
 dsPIC30F y dsPIC33F.
 Productos analógicos.
 Memorias.
 Productos de radio-frecuencia.

7
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Adicionalmente Microchip Technology Inc. tiene herramientas de desarrollo que facilitan la


programación de sus diversos dispositivos.

Desde el año 2016, con la compra de Atmel, ha asumido la comercialización de los productos
de esta empresa.

En la figura 2 se muestra el diagrama del dsPIC33FJ12MC202

Figura 2.‐ diagrama del dsPIC33FJ12MC202

8
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

1.3 Configuración de puertos E/S


Los puertos de E/S de propósito general permiten a los dsPIC33F/PIC24H monitorear y
controlar otros dispositivos.

La mayoría de los pines de E/S se multiplexan con funciones alternativas. La multiplexación


dependerá de las características del periférico y del dispositivo utilizado. En general, cuando un
periférico está funcionando, ese pin no se puede usar como un pin de E/S de propósito general.

La figura 3 muestra cómo se comparten las líneas E/S los periféricos y el pin asociado al que
están conectados.

Figura 3.‐ Estructura típica de puerto compartido 

Todos los puertos de E/S tienen cuatro registros asociados directamente con la operación del
puerto, donde 'x' es una letra que denota el puerto de E/S particular:

9
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

• TRISx: registros de dirección de datos

• PORTx: registros de puertos de E/S

• LATx: registros de latch de E/S

• ODCx: registros de control de drenaje abierto

Cada pin de E/S en el dispositivo tiene un bit asociado en los registros TRISx, PORTx y
LATx.

Registros TRIS
Los bits de control de registro TRISx determinan si cada pin asociado con el puerto de E / S es
entrada o una salida. Si el bit TRISx para un pin de E/S es un '1', entonces el pin es una entrada.
Si el bit TRISx para un pin de E / S es un '0', entonces el pin está configurado para una salida.
Una manera fácil de recordar esto es que un '1' se parece a un I (entrada) y un '0' se parece a
un O (salida). Todos los pines de puerto se definen como entradas después de un reinicio.

En la figura 4 se ejemplifica el uso de los registros TRIS.

Figura 4.‐ Registros TRIS

10
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Registros PORT
Se puede acceder a los datos de un pin de E/S a través del registro PORTx. Una lectura del
registro PORTx lee el valor del pin de E/S, mientras que una escritura en el registro PORTx
escribe el valor en el latch de datos del puerto.

Muchas instrucciones, como las instrucciones BSET y BCLR, son operaciones de lectura,
modificación y escritura. Por lo tanto, una escritura en un puerto implica que los pines de puerto
se leen, este valor se modifica y se escribe al latch de datos del puerto. Se debe tener cuidado
cuando se utilizan comandos de lectura-modificación-escritura en el registro PORTx y cuando
los pines de E/S asociados con el puerto se configuran como entradas. Si un pin E/S
configurado como entrada se cambia a salida en algún momento posterior, un valor inesperado
puede salir por el pin de E/S. Este efecto ocurre porque la instrucción read-modify-write lee el
valor instantáneo en el pin de entrada y carga ese valor en el latch de datos del puerto.

Registros LAT
El registro LATx asociado con un pin de E/S elimina los problemas que pueden ocurrir con
instrucciones de leer-modificar-escribir. Una lectura del registro LATx devuelve los valores
almacenados en el latch de salida en lugar de los valores en los pines de E/S. Una operación
de lectura, modificación y escritura en el registro LATx asociado a un puerto de E/S evita la
posibilidad de escribir los valores de pin de entrada en el puerto. Una escritura en el registro
LATx tiene el mismo efecto que una escritura en el registro PORTx.

Las diferencias entre los registros PORTx y LATx se pueden resumir de la siguiente manera:

• Una escritura en el registro PORTx escribe el valor de los datos en el latch del puerto
• Una escritura en el registro LATx escribe el valor de los datos en el latch del puerto
• Una lectura del registro PORTx lee el valor de datos en el pin de E/S
• Una lectura del registro LATx lee el valor de datos contenido en el latch del puerto

Registros de control de drenaje abierto


Además de los registros PORTx, LATx y TRISx para control de datos, cada pin de puerto
también puede ser configurado individualmente para salida digital o de drenaje abierto. Esto es

11
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

controlado por el Registro de control Open-Drain (ODCx) asociado a cada puerto. Poniendo a
‘1’ cualquiera de los bits configura el pin correspondiente para actuar como una salida de
drenaje abierto.

La función de drenaje abierto permite la generación de salidas superiores a VDD (por ejemplo,
5 V) en cualquier pin deseado (únicamente digitales) mediante el uso de resistencias pull-up
externas. La característica de E/S de drenaje abierto no es compatible con pines que
tienen funcionalidad analógica multiplexada en el pin. El máximo voltaje de drenaje abierto
permitido es el mismo que la especificación máxima de VIH. La característica de salida en
drenaje abierto es compatible con las configuraciones como pin de puerto y como periféricos.

Líneas de entrada analógica


El ADC es uno de los periféricos con los cuales se multiplexa la función de las líneas de E/S y
aún y cuando no está funcionando afecta el comportamiento de estas. Las líneas usadas como
entradas del ADC están marcadas como ANx, por default estas líneas están configuradas como
entradas analógicas y por lo tanto está deshabilitada la lectura del valor digital. Si se desea
utilizar alguna de ellas como línea digital es necesario utilizar el registro AD1PCFGL en el cual
se configura cada línea ANx como analógica o digital. Cada bit PCFGx del registro AD1PCFGL
corresponde a una línea ANx donde un ‘1’ configura esa línea como digital y un ‘0’ la configura
como analógica.

Los registros AD1PCFG y TRIS controlan la operación de los pines del ADC. Los pines que
funcionan como entradas analógicas deben tener su correspondiente conjunto de bits TRIS en
‘1’ (entrada). Si el bit TRIS es ‘0’ (salida), se convertirá el nivel de salida digital (VOH o VOL).
Cuando se lee el registro PORT, todos los pines configurados como canales de entrada
analógica se leerán como ‘0’ (nivel bajo).

Los pines configurados como entradas digitales no convertirán una entrada analógica. Niveles
analógicos en cualquier pin definido como entrada digital (incluidos los pines ANx) pueden
causar consumos de corriente que excede las especificaciones del dispositivo.

1.4 Retardos de tiempo en ensamblador


Cuando necesitamos que transcurra un determinado tiempo de espera antes de que ocurra un
evento como por ejemplo el encendido de una luz LED, activación de una bobina de un relé o

12
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

lectura de una determinada entrada, se suele recurrir a los retardos. Prácticamente casi todos
los programas de microcontroladores PIC usan en algún momento una rutina de retardo.

El típico programa del parpadeo de un LED hace uso de estas rutinas para generar una demora
entre los cambios de estado de un LED que se enciende y se apaga, el tiempo que tenemos
entre el encendido y apagado viene determinado por la rutina de retardo.

Los retardos en los PIC los podemos generar de dos formas diferentes:

 Por Software.
 Por Hardware mediante el uso de un módulo Timer.

Los retardos por Software consisten en que el microcontrolador ejecute instrucciones en unos
bucles que van decrementado unos contadores cargados previamente con el tiempo de retardo,
cuando los contadores llegan a 0 la rutina de retardo queda terminada y el microcontrolador
continúa ejecutando otros procesos.

Para diseñar una rutina de retardo se debe tener a la mano la hoja de datos (datasheet) del
microcontrolador utilizado y conocer la frecuencia de reloj a fin de determinar el tiempo de
ejecución de cada instrucción.

Para el diseño de la rutina de retardo se hacen las siguientes precisiones:

 Fosc es la frecuencia de reloj del sistema.

 Fcy es la frecuencia o velocidad de ejecución de las instrucciones 2


 Tcy es el tiempo de ejecución de las instrucciones 1

Al consultar la tabla con el resumen de instrucciones se puede ver que en los dsPic casi todas
las instrucciones se ejecutan en 1 Tcy . La parte importante del diseño de la rutina de retardo es
determinar el número de Tcy’s necesarios para el tiempo deseado de la rutina de retardo, en
función de la frecuencia de oscilación y del tiempo de retardo


# 2

y luego determinar los Tcy en el bucle y el número de veces que se debe ejecutar el mencionado
bucle:

13
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Ejemplo:

Diseñar una rutina de tiempo de 2 segundos para el dsPIC33FJ12MC202.

Se utiliza el oscilador interno del dsPic llamado FRC con una frecuencia de 7.37 Mhz , por lo tanto:

Fosc 7.37 x 106


Tiempo de retardo 2
Con estos datos se determina el # Tcy necesarios
2 7.37 10
# 7370000
2

Es necesario que la rutina se ejecute en un tiempo de 7370000 Tcy. Una posible combinación es la siguiente:

Ejecutar 1000 veces un bucle con 7370 Tcy


Ejecutar 2000 veces un bucle con 6385 Tcy
Ejecutar 500 veces un bucle con 14740 Tcy

A continuación, se muestra un programa de la rutina de tiempo con la primera opción, donde el # veces se carga en el
registro W3 y en el bucle la parte principal es la instrucción REPEAT con el valor de 7363, que en conjunto con las
restantes instrucciones, se tiene un bucle con 7370 Tcy.

Instrucción # Tcy Comentarios


MOV #1000,W3 1 Se carga 1000 en el registro W3
BUCLE:
REPEAT #7363 1 Ejecuta la siguiente instrucción 7363 1 veces
NOP 7363 1 Bucle
DEC W3,W4 1 Decrementa W3 y el resultado se guarda en W4
7370
MOV W4,W3 1 Se copia el contenido de W4 en W3 Tcy
CP0 W4 1 Se compara W4 con cero
BRA NZ, BUCLE 2 Si W4 no es igual cero se ejecuta nuevamente el bucle
RETURN

1.5 Ejemplo de diseño


Se desea diseñar un sistema basado en el dsPIC33FJ12MC202, que tenga LED´s conectados a las líneas RB7:RB0 y que
inicie encendiendo el LED en RB7 y luego de 1 segundo vaya encendiendo secuencialmente con un segundo de retraso
los LED´s en RB6:RB0. Cuando se encuentren todos los LED´s encendidos, se apagan y se repite la secuencia.

14
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

La lógica para la aplicación se plasma en un diagrama de flujo como el que se muestra en la figura 5.

Figura 5.‐ Diagrama de flujo de ejemplo de diseño

A continuación, consultando el conjunto de instrucciones del dispositivo y la hoja de datos del


dispositivo y de la familia, se escriben las instrucciones que ejecutarán lo requerido en la lógica
del diagrama de flujo.

Del diagrama de pines mostrado en la figura 6, se puede notar que las líneas RB0 a RB3 están
compartidas con entradas del ADC. Aún y cuando estas líneas se van a utilizar como salidas
es conveniente configurarlas como digitales; esta configuración se realiza en el registro
AD1PCFGL, donde cada bit corresponde con una entrada analógica, esto es, el bit 0 del registro
corresponde con la entrada AN0 y así sucesivamente. Un ‘0’ en el bit de este registro configura

15
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

como analógica la línea correspondiente y un ‘1’ la configura como digital. Este registro de inicio
por default está cargado con 0, por lo tanto todas las líneas están configuradas como
analógicas.

En este caso, como no se va a utilizar ninguna línea como analógica, se configuran todas como
digitales utilizando las siguientes instrucciones:

mov #0xFFFF,W0 
mov W0,AD1PCFGL 

Figura 6.‐ Diagrama de pines del dispositivo

Para configurar las líneas RB7:RB0 como salidas se utiliza el registro TRISB a través de la
siguiente instrucción, tomando en cuenta que el registro W0 tiene cargado un cero:
mov W0, TRISB 

Con las siguientes instrucciones se apagan todos los LED´s. (RB7:RB000000000)


clr W2 
mov W2, LATB  
 
El siguiente paso en el diagrama de flujo es un retardo de 1 segundo el cual se logra con la
llamada a la subrutina de retardo a través de la instrucción

call retardo 

16
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

El siguiente paso en el diagrama de flujo RB7:RB010000000 se ejecuta con la siguiente


instrucción:
BSET LATB,#7 

Para que los LED´s se vayan encendiendo consecutivamente se hace uso de la instrucción
asr.b LATB  
 
la cual realiza un corrimiento a la derecha del contenido de los 8 bits menos significativos del
contenido del registro LATB y en la posición desocupada guarda el valor de RB7 antes del
corrimiento.
Con el fin de controlar el proceso de encendido de los LED´s, esto es seguir encendiendo hasta
que estén todos encendidos y luego apagarlos para iniciar nuevamente la secuencia, se utilizan
las siguientes instrucciones:
btss.b LATB,#0   ; ya están todos encendidos? 
bra llena             ; no, realiza otro corrimiento 
call retardo        ; si 
bra lazo              ; inicia nuevamente la secuencia 

En la figura 7 se muestra el programa en lenguaje ensamblador en MPLAB X. A este programa


es necesario adicionarle al inicio los bits de configuración del dispositivo, que puede generarla
el mismo MPLAB X; La rutina de retardo es como se trató en el punto 1.4

17
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

Figura 7.‐ Programa de la aplicación

18
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

2. Procedimiento
2.1 Diseño de aplicación llena-vacía
Se desea diseñar en lenguaje ensamblador un sistema basado en el dsPIC33FJ12MC202, que
tenga LED´s conectados a las líneas RB7:RB0 y que inicie encendiendo el LED en RB0 y luego
de 0.5 segundos vaya encendiendo secuencialmente con 0.5 segundos de retraso los LED´s
en RB2:RB7. Cuando se encuentren todos los LED´s encendidos, secuencialmente se apagan
iniciando con RB7 hasta apagar todos y se repite la secuencia.

1) Crear un nuevo proyecto en MPLAB X con el nombre llena_vacía.


2) Adicionar al proyecto el programa en lenguaje ensamblador (extensión .s) que cumpla
con la lógica mostrada en el diagrama de flujo de la figura 8.

Figura 8.‐ Diagrama de flujo de aplicación llena‐vacía

19
Instituto Tecnológico de Durango
Práctica 2.- Corrimiento de LED´s 1 Microcontroladores

3) Compilar y corregir errores en su caso.


4) Simular y verificar funcionamiento del diseño, tanto en MPLAB como en Proteus.
5) Determinar los componentes necesarios para el circuito físico.
6) Cargar archivo .hex del diseño en el dispositivo.
7) Verificar funcionamiento en físico

2.2 Elaborar reporte correspondiente


Elaborar el reporte de acuerdo con el formato propuesto en este manual de prácticas.

3. Material y equipo a utilizar


 PC con el software MPLABX y Proteus.
 Dispositivo dsPIC.
 Programador de PIC’s.
 Pulsera antiestática.
 CI’s , resistencias, LED’s e interruptores necesarios.
 Cables de conexión.

4. Fuentes de información
 Microchip Technology Inc. (2007) dsPIC33FJ12MC201/202 Data Sheet.
 Microchip Technology Inc. (2005) dsPIC30F/33F Programmer’s Reference Manual.
 Microchip Technology Inc. (2007-2012) dsPIC33F/PIC24H Family Reference Manual.
 García Breijo Eduardo (2008). Compilador C CCS y simulador PROTEUS para
microcontroladores PIC. Alfaomega.

20
Instituto Tecnológico de Durango

También podría gustarte