0% encontró este documento útil (0 votos)
86 vistas6 páginas

Laboratorio 1

Este documento presenta el primer laboratorio de un curso sobre sistemas digitales basados en microprocesadores. El objetivo del laboratorio es que los estudiantes aprendan a programar en lenguaje C para microcontroladores PIC utilizando MPLABX y el compilador XC-16. El laboratorio introduce el manejo de puertos I/O y la programación de funciones y procedimientos. Los estudiantes deben implementar un programa para el microcontrolador PIC24FJ128GA010 que muestre una secuencia en los LEDs del puerto A con un intervalo de 200ms entre

Cargado por

louis
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
86 vistas6 páginas

Laboratorio 1

Este documento presenta el primer laboratorio de un curso sobre sistemas digitales basados en microprocesadores. El objetivo del laboratorio es que los estudiantes aprendan a programar en lenguaje C para microcontroladores PIC utilizando MPLABX y el compilador XC-16. El laboratorio introduce el manejo de puertos I/O y la programación de funciones y procedimientos. Los estudiantes deben implementar un programa para el microcontrolador PIC24FJ128GA010 que muestre una secuencia en los LEDs del puerto A con un intervalo de 200ms entre

Cargado por

louis
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 DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE

INGENIERIA
Facultad de ingeniería Eléctrica y Electrónica

Sistemas Digitales basados en


Microprocesadores
EE-637

LABORATORIO N° 1

MANEJO DE PUERTOS I/O, FUNCIONES Y


PROCEDIMIENTOS

Profesor: Jose Estrada M.


Alumnos: Risco Chavez Diego
Poma Lopez Marco
Coó digo de curso: EE637-M
Fecha de entrega: 12/10/2017

2017-II
EE637-M
UNI
2017-II
OBJETIVOS

Se busca que el alumno pueda ganar habilidad en la programación en lenguaje


C para los microcontroladores PIC de MICROCHIP, utilizando el entorno del
MPLABX, con el uso del compilador XC-16.

INTRODUCCIÓN

Este laboratorio provee una introducción a la programación del lenguaje C para


microcontroladores PIC en el estándar ANSI C.

Además, el manejo de los puertos de un microcontrolador como el PIC24FJ128GA010


permitirá al alumno en poder desenvolverse en el desarrollo del problema en software
usando MPLABX con el compilador XC-16 y su verificación en Hardware usando la
Tarjeta de Desarrollo explorer 16.

MATERIALES

- Microcontrolador PIC24FJ128GA010
- Sistema de desarrollo explorer-16
- Compilador XC-16
- Depurador/Grabador ICD-3
PLANTEAMIENTO DEL PROBLEMA

Procedimiento:

1. Haciendo el uso de arrays y lazos (bucles), diseñar y simular un programa para


el PIC24FJ128GA010, que pueda hacer la secuencia de la figura mostrada, y que
muestre por los 8 leds menos significativos del Puerto A (RA7-RA0). La
frecuencia de intervalo entre dato y dato debe ser de 200ms. El
microcontrolador tiene un cristal externo de 8MHz y la configuración del PLL
(Phase-Locked Loop).

2. Implementar el diseño en el explorer-16.

3. Se evaluará el código del programa autodocumentado.

Código en MPLAB
Simulación en PROTEUS

EXPLICACIÓN DEL CÓDIGO IMPLEMENTADO

El código del “main” empieza configurando el puerto ‘A’ como salida, ya que se usarán
estos pines para prender o apagar los leds, y definiendo el estado inicial de los leds
igual a 128, es decir el pin RA7 en ‘1’. La lógica del código que a continuación viene
radica en desplazar un bit de los pines del puerto ‘A’ a la derecha o a la izquierda según
sea el caso hasta que se dé el cambio de dirección, esto se hace para cada bloque. El
número de bloques en el que se dividió se muestra a continuación:

Figura 1. Esquema de los bloques que se usaron

Por ejemplo, para el primer bloque se procede del siguiente modo: con la posición
inicial del led encendido en RA7, se empieza a desplazar la posición del led encendido a
la derecha cada cierto intervalo de tiempo (20ms) como se muestra en el siguiente
código:

Esto se realiza hasta que RA1=1, el cual indica que se debe de hacer el cambio de
dirección, la implementación se hizo usando la sentencia while:

Este proceso se realiza de manera similar para todos los bloques, solo cambiando los
limites.

También podría gustarte