UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE INGENIERÍA
Laboratorio de Microcomputadoras
Profesor(a):
MOISES MELENDEZ REYES
EQUIPO 04
Nombre(s) Alumno(s):
Fragoso Alarcón Alejandro Misael
Lázaro Pérez Juan Carlos
Rodriguez Vargas Jennifer
Práctica No. 3
Sistema mínimo microcontrolador PIC16F877
Semestre 2024-1
Objetivo
Desarrollar la habilidad de interpretación de esquemáticos. Conocer el diagrama del
sistema mínimo del microcontrolador, el software de comunicación. Realizar
aplicaciones con puertos paralelos en la modalidad de salida; ejecución de un
programa en tiempo real.
Introducción
Para ejecutar un programa en el procesador se debe alambrar el sistema mínimo. El
sistema requiere de tres módulos imprescindibles:
a. Reloj: formado por un cristal de cuarzo de 20 MHz y dos capacitores de 22
ρF, cuyo objetivo es la generación de la frecuencia de operación externa.
b. Circuito de reset: formado por una resistencia y un push buttom; cuya
finalidad es la generación del pulso en bajo para producir un reset en el sistema.
c. La alimentación al sistema: Vdd= 5 V y GND= 0V.
El programa debe ser descargado al dispositivo empleando un programador
externo. Con la finalidad no depender de la existencia del programador externo y
tener la ventaja de tener un programador en circuito de debe agregar:
a. Circuito que permita la comunicación serie asíncrona.
b. Programar con antelación el bootloader al procesador.
El circuito quedará de la siguiente manera:
Puertos Paralelos
El microcontrolador PIC tiene 5 puertos paralelos, denominados A, B, C, D y E,
todos ellos se pueden configurar para operar como puerto de salida o entrada.
Al emplear un puerto paralelo, lo primero que se debe de hacer es configurar su
función, esto se realiza en las posiciones de memoria RAM denominados TRISX los
cuales están ubicados en el banco número 1. Una vez ubicado en este banco se
realiza la configuración, bajo la siguiente convención.
Después que se ha configurado todo el puerto, regresar al banco cero para enviar o
recibir información a través de los registros de datos PORTX.
Desarrollo
1.- Revisar a detalle y en concordancia con el circuito 3.2, identificar las conexiones
faltantes, discutir con sus compañeros y con su profesor(a) el impacto y función de
los mismos.
Comparación de los diagramas
Como podemos observar las conexiones faltantes son en los puertos de emisión y
recepción de información así como en el módulo reloj y el botón de reset. Los que
están encerrados en color rojo.
Las conexiones faltantes son las que están encerrado en un intento de círculo
1. La conexión entre el pic y el componente MAX232
2. La conexión de entrada de voltaje, donde se encuentra el push button
3. La conexión con el cristal de cuarzo de 20 MHz
En primera instancia no funcionaria ya que el módulo de reloj no está conectado y
por ende el pulso que emite no llega al procesador que lo está esperando
Al no estar conectados los puertos de emisión y recepción no puede haber
transferencia de información para ejecutar programas y no habría comunicación
entre el microprocesador, el CI MAX232 y la PC.
En cuanto al botón de reset no podríamos reiniciar el microprocesador y puede
entrar en un estado indefinido o tener un comportamiento impredecible. Esto se
debe a que el puerto de reset se utiliza para inicializar el estado del microprocesador
cuando se enciende o reinicia.
El programa debe ser descargado al dispositivo empleando un programador
externo. Con la finalidad no depender de la existencia del programador externo y
tener la ventaja de tener un programador en circuito de debe agregar:
a. Circuito que permita la comunicación serie asíncrona.
b. Programar con antelación el bootloader al procesador.
El circuito quedará de la siguiente manera:
3.- Una vez resueltas las actividades anteriores, identificar la terminal PB0 del
puerto B, realizar la conexión con la salida de una resistencia y un led.
4.- Escribir, comentar e indicar que hace el siguiente programa.
Este código configura el Puerto B como una salida digital y crea una secuencia
continua de encendido y apagado de un LED conectado al bit 0 del Puerto B. El
tiempo de encendido y apagado del LED está controlado por la subrutina retardo,
que introduce un retardo utilizando valores constantes definidos al inicio del código.
Ensamblar y cargar el programa anterior en el microcontrolador; que es lo que
puede visualizar.
El led prende y apaga a una velocidad de 150 [mSeg]
6.- En el programa, modifique el valor de cte1 a 8h, ensamblar y programar; que
sucede y porqué?
La modificación del valor de cte1 de 20h a 8h hará que el LED se prenda y apague
más rápido debido a que cte1 se utiliza como parte del retardo en la subrutina
retardo.
7.- Modifique cte1 a 80h; ensamblar y programar, existe algún cambió?
El led se prende y apaga más lento.
Cuando se cambia el valor de cte1 a 80h, está aumentando significativamente el
valor de retardo en la subrutina retardo.
8.- Modificar el programa anterior, para que ahora se actualice el contenido de todos
los bits del puerto B y se genere una rutina de retardo de un segundo.
Este programa requiere de 8 salidas conectadas al puerto B, tal como se muestra en
la figura.
9.- Realizar un programa que muestre la siguiente secuencia en el puerto B con
retardos de ½ segundo.
Código
Este código configura el puerto B como una secuencia de bits que se desplazan
hacia la derecha y luego hacia la izquierda. Durante cada iteración del bucle, un
LED conectado al Puerto B se enciende y apaga de acuerdo con el valor de H'20'. El
retardo entre las transiciones está controlado por la subrutina RETARDO.
10.- Realizar un programa que controle el funcionamiento de dos semáforos; cada
estado tendrá una duración de 2 segundos.
Este código simula un semáforo mediante la iluminación de leds de distintos colores
los cuales son controlados habilitando y deshabilitando los bits del puerto B
respectivos a cada LED.
Conclusiones
Fragoso Alarcon Alejandro Misael
En esta práctica podemos ver cómo funcionan los puertos paralelos, configurarlos
para recibir y enviar información. Al tener mayor conocimiento manejando los
registros y bits específicos de estos podemos entender que el manejo de los puertos
nos ayudan a tener configuraciones más complejas, como lo son los semáforos y
cualquier otra secuencia que decidamos. Complementando lo anterior también
podemos ver que el uso de retardos nos ayudan a optimizar este proceso.
Juan Carlos Lázaro Pérez
Basado en los objetivos planteados, puedo decir que aprendí cuáles son los
elementos necesarios (mínimos) para que el PIC16F877A funcione. Además,
comprendí el uso de puertos paralelos en un programa (asignándole una posible
aplicación de semáforo para implementarlo).
Finalmente, puedo concluir que los objetivos se cumplieron
satisfactoriamente.
Rodriguez Vargas Jennifer
Al término de esta práctica hemos aprendido algunas de las funciones básicas de
nuestro PIC, además de que hemos aprendido a usar los tipos de direccionamiento,
los cuales han sido de gran utilidad, ahora en esta práctica hemos aprendido a usar
y configurar lo puertos de nuestro microcontrolador, en la clase el profesor nos
mostró el funcionamiento ya aplicado a un microcontrolador de forma física y ahí
pudimos observar cómo se conectaba y configuraba desde la computadora, lo cual
me pareció muy interesante. Además del funcionamiento de los puertos paralelos.
Bibliografía
- DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN. (PE109719).
Prácticas de Laboratorio de Microcomputadoras. FI. UNAM.: DIVISIÓN DE
INGENIERÍA ELÉCTRICA.
- Microchip Technology Inc. (Diciembre de 1997). Section 29. Instruction Set.
Obtenido de PICmicro MID-RANGE MCU FAMILY:
[Link]