Está en la página 1de 14

PROGRAMACIÓN DE

MICROCONTROLADORES

Ciclo IV

Laboratorio N°1

Arquitectura e información específica del


PIC16F877A
Integrantes:

- Jimenez Parraga ,Kenghi Felix


- Montalvo Vega, Kevin Lucas
- Romero Cerda, Marcela Akilina

Docente:
- Otiniano Noe, Carlos Walter
Fecha de realización:
- 29-08-23
Fecha de entrega:
- 04-09-23

TECSUP
2023-2
Fundamento Teórico

Arquitectura del PIC16F877A:

El PIC16F877A se basa en una arquitectura RISC (Reduced Instruction Set Computer)


de 8 bits. Esta arquitectura se caracteriza por su conjunto de instrucciones simplificado,
donde la mayoría de las instrucciones se ejecutan en un solo ciclo de reloj. Los
componentes clave de su arquitectura incluyen:

CPU: La Unidad Central de Procesamiento (CPU) del PIC16F877A es altamente


eficiente y consta de registros de propósito general, acumulador WREG y un conjunto
de registros de trabajo. Opera con una velocidad de reloj de hasta 20 MHz, lo que
permite ejecutar instrucciones a alta velocidad.

Memoria de Programa: El PIC16F877A incorpora una memoria Flash de programa de


14 KB que almacena el código de programa. Esta memoria es reprogramable, lo que
facilita la actualización y modificación del software sin necesidad de cambiar el chip.

Memoria de Datos: Cuenta con 368 bytes de memoria RAM (Random Access Memory)
para el almacenamiento temporal de datos y variables durante la ejecución del
programa.

Periféricos: El microcontrolador incluye una variedad de periféricos, como puertos de


entrada/salida digital, convertidores analógico a digital (ADC), módulos UART, SPI e
I2C, temporizadores/contadores, y más. Estos periféricos son esenciales para interactuar
con el entorno y cumplir con diversas tareas.
Introducción

Los PICs constituyen en la actualidad una forma de proveer inteligencia a equipos o


sistemas para un mejor desempeño de los mismos. Esta alternativa de
automatización se encuentra prácticamente a la mano pues la información y
herramientas de desarrollo son, en cierta medida, proporcionadas por el fabricante.
El campo de acción de los PICs va desde la activación o desactivación de entradas o
salidas en general hasta el procesamiento digital de señales pasando por aplicaciones
específicas como la conversión A/D, modulación PWM y muchas más.

Objetivos

• Diferenciar las arquitecturas de diseño de los PICs


• Identificar los diferentes bloques funcionales de los PICs
• Utilizar manuales del fabricante

Preparación

Para la realización de este laboratorio se requiere la lectura previa de la información


proporcionada para el curso, como el texto y el manual del fabricante.

Equipos y Materiales

• Computadora
• Software de desarrollo
• Proyector multimedia
• Texto del curso
• Manual del fabricante
• Módulo de desarrollo
Seguridad
Trabajar con Seguridad evita que las personas sufran daños, y provee un ambiente satisfactorio
de trabajo.

Al trabajar en este laboratorio o taller y cualquiera de los subsiguientes, realice el


siguiente procedimiento:

1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.

2. En su estación de trabajo evalúe las condiciones de:


Orden y Limpieza.
Herramientas y equipos.

3. Realice su trabajo teniendo en cuenta:


Orden y limpieza.
Seguridad.
Proceda a realizar las conexiones de los equipos o implementación de los
circuitos comprobando que la línea eléctrica se encuentre desconectada.
Solicite visto bueno al profesor antes de aplicar energía eléctrica.

4. Realice el análisis de riesgo personal:


¿Qué es lo que voy a hacer?
¿Qué es lo que puede salir mal?
¿Qué debo hacer para que no salga mal?

5. Al terminar sus labores, deje su estación de trabajo en buenas condiciones:


Ordenado y limpio.
Seguro.
Desconecte el suministro de energía eléctrica.
Resultados del Laboratorio

Procedimiento:

• Haciendo uso del manual de Microchip para el PIC16F877A, responda lo


siguiente:

• ¿Qué arquitectura posee?

- El PIC16F877A se basa en una arquitectura RISC (Reduced Instruction Set


Computer) de 8 bits.

• ¿Cuántas instrucciones tiene?

- Tiene 35 instrucciones para aprender.

• ¿A qué velocidad máxima trabaja el PIC16F877A en MIPS


(Millones de instrucciones por segundo)?

- Trabaja en 20 Hz oscillator clock input.

• ¿Cómo está compuesta su memoria?

- Memoria ROM de 8K con tecnología FLASH.

• ¿Cuántas interrupciones maneja?

- Los dispositivos de 28 pines tienen 14 interrupciones , mientras que los


dispositivos de 40/44 pines tienen cinco .

• ¿De cuántos niveles es su stack?

- Vienen a ser unos 8 niveles diferentes hardware stack

• ¿Cuántos modos de direccionamiento soporta?

- Soporta direccionamiento 8Kx14 ó 4Kx14.

• ¿Qué es el ICSP y para qué sirve?

- ICSP es un método de programación y depuración utilizado en


microcontroladores PIC, incluido el PIC16F877A.

• Mencione 5 características especiales del PIC16F877A.

1. Incorpora una memoria EEPROM de 256 bytes. Esta memoria permite


almacenar datos de manera no volátil.
2. trae unos 3 temporizadores de 8 bits y uno de 16 bits estos ayudarán al tiempo
preciso.
3. Cuenta con un módulo ADC de 10 bits que permite la conversión de señales
analógicas en digitales.
4. Tiene USART con dirección de protección de 9 bits.

En relación a sus periféricos, responda lo siguiente.

• ¿Cuántos timers posee?

- Posee unos 3 timers, timer 0 ,1 y 2

• ¿De cuántos bits es el Timer 1?

- Viene a ser de 1 a 8 bits

• ¿Cuántos módulos PWM implementa?

- Son 2 módulos de captura

• ¿Cuántos convertidores A/D posee?

- Tiene un convertidor analógico a digital (ADC) de 10 bits. Esto significa que


posee un único convertidor A/D.

• ¿Cuántos módulos de comunicación posee?

- No tiene módulos de comunicación dedicados, pero puede utilizar sus puertos


GPIO para implementar diversas formas de comunicación serie

• ¿Cuál es la diferencia entre una comunicación síncrona y asíncrona?

- En la comunicación sincrónica, interactúan en el mismo momento en el que


tiene lugar la comunicación, mientras que en la comunicación asincrónica esta
interacción no es inmediata y puede tener lugar en diferentes momentos

• Observe el diagrama de bloques de PIC16F877A y responda lo


siguiente:
• ¿Cuántos bits posee el puerto A?

- El puerto A posee 4 bits y 6 líneas.

• ¿De cuántos bits es el bus de datos?

- En este modelo el puerto D funciona como el bus de dados de 8 bits

• ¿Cuántos bits tiene una instrucción?

- Una instrucción tiene 12 bits.


• ¿Cuál es la función del registro STATUS?

- Es un registro de estados que contiene el estado de la ALU.

• ¿Cuál es la función del registro W?

- Es el registro principal es similar al acumulador en los microprocesadores , este


participa en la mayoría de las instrucciones.

• ¿Cuál es la función de la ALU?


- Se encarga de las unidades lógicas o aritméticas es decir la operaciones
matemáticas.

• ¿Para qué sirve el Power-up Timer?

- Es un temporizador de encendido que sirve para proveer un retardo de 72 ms


únicamente en el encendido.

• ¿Para qué sirve el Power-on Reset?

- Es para apagar o reiniciar el equipo.

Busque en el manual la distribución de los registros internos del


PIC16F877A y responda lo siguiente:

• ¿Cuántos bancos posee?

- La memoria RAM está dividida en 4 bancos.

• ¿Cuántos registros de funciones especiales existen en el banco 0?

- En cada banco hay 07F9h posiciones de memoria (128 bytes). Las posiciones
más bajas están reservadas para los registros de funciones especiales.

• ¿Cuál es la dirección del registro STATUS?

- La dirección del registro de STATUS está ubicado en 03h, 83h, 103h y 183h.

• ¿Cuántos registros de propósitos generales existen en el banco 0?

- en el banco 0 existen 4 registros ( TMRO, FSR, PORT ABCDE, INTCON)


• ¿Cuál es la dirección del registro TRISA?

- La dirección del registro TRISA está ubicado en 85h.

• ¿Qué funciones posee el pin RA4 del TRISA?


- El pin RA4 tiene múltiples funciones: Actúa como una entrada digital con
disparador Schmitt para estabilizar señales de entrada, puede ser utilizado como
una salida de drenaje abierto para permitir la conexión de dispositivos externos
que requieren una corriente de carga y está protegido con un diodo contra
tensiones inversas. La versatilidad de este pin lo hace útil en diferentes
aplicaciones, desde detección de señales hasta control de dispositivos externos.

• Busque en el manual el set de instrucciones del PIC16F877A y responda lo


siguiente:

• ¿En cuántos tipos de instrucciones se pueden agrupar?

- En tres tipos de instrucciones transferencia de datos, aritmeticas y logicas,


control de lujo

• ¿Cuál es la diferencia entre un mnemónico y un operando?

- El mnemónico es la palabra clave que describe la acción que debe realizar la


instrucción, mientras que el operando es el valor o la dirección que se usa en esa
acción. El mnemónico y los operandos trabajan juntos en una instrucción para
definir completamente qué debe hacer el microcontrolador en ese paso particular
del programa.

• ¿Qué es un Opcode?
- Viene hacer un intercomunicador del software y el hardware.

- Un "Opcode" es una abreviatura que representa una instrucción específica en


lenguaje de máquina, indicando a un procesador qué operación debe realizar,
como sumar, restar o cargar datos. Es esencial en la ejecución de programas en
computadoras y CPUs.

• ¿Cuántos ciclos de instrucción utiliza un CALL?

- El CALL utiliza 2 ciclos de instrucción.

• ¿Qué bit del registro STATUS activa la instrucción CLRF?

- El bit RP0 de STATUS activa la instrucción CLRF.

• ¿En qué registros se almacenan la dirección de las instrucciones?

- INDF: Registro para direccionamiento indirecto de datos.

.
Observaciones

● Notamos que utiliza una arquitectura RISC lo que significa que ejecuta un
conjunto de instrucciones simples y rápidas que hacen que sea eficiente en
términos de velocidad y consumo de energía.

● Es conocido por su robustez y durabilidad en entornos industriales y proyectos


de largo plazo.

● A pesar de las numerosas ventajas del microcontrolador PIC16F877A, es


importante tener en cuenta que su cantidad y variedad de periféricos son
limitadas en comparación con microcontroladores más avanzados. En proyectos
complejos, esto puede requerir la adición de soluciones externas o la
consideración de microcontroladores con capacidades más amplias para
satisfacer las necesidades específicas del diseño.

● Aunque el microcontrolador PIC16F877A tiene muchas cualidades positivas, es


importante destacar que su memoria Flash de programa es limitada. Esto puede
ser una restricción en proyectos que involucran programas extensos o
almacenamiento de datos significativo. Para aplicaciones más avanzadas que
requieran mayor capacidad de memoria, es posible que sea necesario considerar
un microcontrolador con una capacidad de almacenamiento más amplia.

Conclusiones

● No realizamos pruebas físicas todavía pero el PIC16F877A es un


microcontrolador versátil, fácil de programar y confiable que se adapta bien a
una amplia variedad de proyectos y aplicaciones electrónicas.

● Tiene una combinación de características y recursos disponibles lo convierte en


una opción popular en la comunidad de desarrollo de sistemas embebidos.

● El microcontrolador PIC16F877A ofrece un sólido soporte por parte del


fabricante, lo que se traduce en datasheets detallados, manuales de usuario
completos y una comunidad activa de usuarios y desarrolladores. Esta amplia
gama de recursos facilita en gran medida tanto el proceso de aprendizaje como
la implementación de proyectos que utilizan el PIC16F877A, lo que lo convierte
en una elección favorable para aquellos que desean trabajar con este
microcontrolador.

● El microcontrolador PIC16F877A se destaca por su eficiencia energética, lo que


lo convierte en una elección ideal para aplicaciones que requieren un bajo
consumo de energía o funcionan con baterías. Su capacidad de entrar en modo
de bajo consumo y la posibilidad de apagar periféricos no utilizados contribuyen
significativamente a esta eficiencia energética. Esto lo convierte en una opción
sólida para proyectos donde la conservación de la energía es una consideración
clave.
Aplicación de lo Aprendido:

1.- Hacer una tabla comparativa de las características que posee un PIC16F877A con
un ATMEGA 328.

PIC16F877A ATMEGA328

Este microcontrolador de También conocido como


40 pines es uno de los más Arduino Uno tiene 2KB de
usados en proyectos para memoria RAM pertenece
la industria tiene como al grupo AVR , cuenta con
DIFERENCIAS oscilador interno de 4MHz altas instrucciones con un
y externo hasta 20MHz. desempeño cercano a 1
MIPS por cada 1 MHz en
la frecuencia del clock ,
este microcontrolador es
utilizado para hacer
proyectos educativos.

Estos microcontroladores son ampliamente utilizados en


proyectos de electrónica su arquitectura es tipo Harvard
que separa la memoria de programa y la memoria de
datos para u n rendimiento más eficiente ,tienen como
frecuencia máxima 20 MHz y ambos tienen como fuente
SEMEJANZAS máxima 5,5 V.
2.- Explique la diferencia entre la plataforma Arduino y Raspberry Pi.

Comparación entre Arduino y Raspberry Pi:


Arduino se considera principalmente un microcontrolador, mientras que Raspberry Pi se
clasifica como un miniordenador. En términos generales, un microcontrolador es una
parte integral de una computadora, lo que implica que sus capacidades son limitadas en
comparación con un ordenador completo.

Arduino está diseñado para aplicaciones específicas y la programación se enfoca en


tareas concretas. Su enfoque principal es la electrónica y la interacción con
componentes y sensores. Esto hace que sea eficiente para proyectos que no requieren
una programación compleja y que se centran en la electrónica.

Arduino se caracteriza por su capacidad para ejecutar tareas sin necesidad de iniciar un
sistema operativo, lo que lo hace más rápido en la ejecución de funciones básicas.
También se puede programar fácilmente a través de una conexión USB.

Por otro lado, Raspberry Pi necesita un sistema operativo para funcionar. Puede ejecutar
una variedad de sistemas operativos basados en Linux y ofrece conexiones a internet
incorporadas, como Wi-Fi y Ethernet. Además, tiene un procesador más potente y se
puede conectar a un monitor y periféricos como teclados y ratones, lo que lo hace
adecuado para proyectos más complejos que requieren interacción con un sistema
operativo completo.

Sin embargo, si el proyecto es simple, como encender una luz, Arduino puede ser más
rápido y eficiente con una programación mínima, mientras que Raspberry Pi podría ser
una opción más compleja para la misma tarea. En resumen, la elección entre Arduino y
Raspberry Pi depende de las necesidades específicas del proyecto y del nivel de
complejidad deseado.
Referencias

● Descripción Detallada del PIC16F87. (n.d.). Unioviedo.es website:


https://www.unioviedo.es/ate/alberto/detalladaPic16F877.pdf

● Introduccion-al-mundo-de-los-microcontroladores. (n.d.). Retrieved September

4, 2023, from MIKROE website:

https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con

-ejemplos/introduccion-al-mundo-de-los-microcontroladores

● Fernández. Arduino y Raspberry Pi: qué son y cuáles son sus diferencias.

Xataka.com website:

https://www.xataka.com/basics/arduino-raspberry-pi-que-cuales-sus-diferencias

● Alonso, R. Raspberry Pi vs Arduino, ¿en qué se diferencian y para qué se usan?


HardZone website:
https://hardzone.es/reportajes/comparativas/raspberry-pi-vs-arduino/
AST:

También podría gustarte