You are on page 1of 8

PROGRAMACIÓN DE

MICROCONTROLADORES

Laboratorio N°1
Arquitectura e información del PIC16877

INFORME

Integrantes:
- Figueroa Pacheco, Jesús
- Godiño Rojas, Raúl
- Quintana García, Jeysson
- Yabeta Eguiluz, Kenji
Sección:
C15 - 05 - A
Profesor:
Mendiola Mogollón, Carlos Enrique
Fecha de realización: 11 de marzo
Fecha de entrega: 19 de marzo

2014-I
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

Contenido
Pág.
Contenido...........................................................................................................................02
Microcontroladores ............................................................................................................03
Objetivos ............................................................................................................................03
Marco teórico .....................................................................................................................03
Equipos y Materiales .........................................................................................................04
Procedimiento ....................................................................................................................04
Conclusiones ......................................................................................................................06
Aplicación de lo aprendido ................................................................................................07
Referencias bibliográficas .................................................................................................07

2
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

Microcontroladores

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 especificas 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.

Marco teórico

El PIC16F877 es un microcontrolador con memoria de programa tipo FLASH, lo que


representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya que no se
requiere borrarlo con luz ultravioleta como las versiones EPROM, sino que permite
reprogramarlo nuevamente sin ser borrado con anterioridad.

El PIC16F877 es un microcontrolador fabricado por Microchip Technology con tecnología


CMOS, su consumo de potencia es muy bajo y además es completamente estático, esto
quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden.

El encapsulado más común para este microcontrolador es el DIP (Dual In-line Pin) de 40
pines, propio para usarlo en experimentación. La referencia completa es PIC16F877-04 para
el dispositivo que utiliza cristal oscilador de hasta 4 MHz, PIC16F877-20 para el dispositivo
que utiliza cristal oscilador de hasta 20 MHz o PIC16F877A-I para el dispositivo tipo
industrial que puede trabajar hasta a 20 MHz. Sin embargo, hay otros tipos de encapsulado
que se pueden utilizar según el diseño y la aplicación que se quiere realizar. Por ejemplo, el
encapsulado tipo surface mount (montaje superficial) tiene un reducido tamaño y bajo costo,
que lo hace propio para producciones en serie o para utilizarlo en lugares de espacio muy
reducido.

Figura 1. Pines del PIC16F877a.

3
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

Equipos y Materiales

 Computadora
 Proyector Multimedia
 Texto del curso
 Manual del Fabricante

Procedimiento

1. Haciendo uso del manual de Microchip para el PIC16F877, responda lo


siguiente:

a) ¿Qué arquitectura posee?


Posee una arquitectura HARVARD(RISC)
b) ¿Cuántas instrucciones tiene?
Tiene 35 instrucciones
c) ¿A que velocidad trabaja?
Trabaja a una velocidad de 20MHz clock input y 200ns instruction cycle
d) ¿Cómo esta compuesta su memoria?
Esta compuesta por 2 memorias una de programación las cuales son: Hasta 8K
palabras de 14 bits para la Memoria de Programa, tipo FLASH
en los modelos 16F876 y 16F877 también 4KB de memoria para los PIC
16F873 y 16F874.
Hasta 368 Bytes de memoria de Datos RAM.
e) ¿Cuántas interrupciones maneja?
Posee 13 fuentes de interrupciones. Al aceptarse una interrupción se salva el
valor del PC (contador de programa) en la pila y se carga aquel con el valor
0004h, que es el Vector de Interrupción. La mayoría de los recursos o
periféricos de que disponen los Pic16F87x son capaces de ocasionar una
interrupción, si se programan adecuadamente los bits de los registros que
pasamos a describir a continuación.
f) ¿De cuantos niveles es su STACK?
Su STACK es de 8 niveles.
g) ¿Cuántos modos de direccionamiento soporta?
Soporta tres niveles de instrucciones las cuales son las siguientes:
 Operaciones orientadas a Byte (Byte-oriented).
 Operaciones orientadas a bit (Bit-oriented).
 Operaciones Literales y control.

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

h) ¿Cuántos timers posee?


Tiene 3 timers.
 Timer0: Temporizador-contador de 8 bits con preescaler de 8 bits.
 Timer1: Temporizador-contador de 16 bits con preescaler que puede
incrementarse en modo sleep de forma externa por un cristal/clock.
 Timer2: Temporizador-contador de 8 bits con postscaler.

4
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

i) ¿Cuántos módulos PWM implementa?


Posee 2 módulos de Captura, Comparación, PWM (Modulación de Ancho de
Pulsos).
j) ¿Cuántos convertidores A/D posee?
Posee 8 Conversores A/D de 10 bits
k) ¿Cuántos módulos de comunicación posee?
Posee 3 módulos de comunicación 2 seriales MSSP, USART y 1 paralela PSP.

2. Observe el diagrama de bloques de PIC16F877 y responda lo siguiente:

a) ¿Cuántos bits posee el puerto A?


Tiene 6 bits.
b) ¿De cuantos bits es su bus de datos?
El bus de datos es de 8 bits.
c) ¿Cuántos bits tiene una instrucción?
Una instrucción tiene 14 bits de longitud. Todas ellas se ejecutan en un ciclo
de instrucción, menos las de salto que tardan dos.
d) ¿Cuál es la función de registro STATUS?
Registro de 8 bits, cada uno de sus bits (denominados Banderas) es un
indicador de estado de la CPU o del resultado de la última operación.
e) ¿Cual es la función de registro W?
También conocido como working register, es un registro de 8 bits su función es
reescribir desde el exterior y que se puede leer en cualquier momento yaqué se
puede acceder a el desde cualquier banco de memoria.
f) ¿Cuál es la función ALU?
ALU es la Unidad Lógica Aritmética que Funciona como un operando de
cualquier instrucción.

3. Busque en el manual la distribución de los registros internos del PIC16F877 y


responda lo siguiente:

a) ¿Cuántos bancos posee?


Tiene 4 bancos.
b) ¿Cuántos registros de funciones especiales existen en el banco 0?
En cada banco hay 7Fh posiciones de memoria (128 bytes). Las posiciones
más bajas están, reservadas para los Registros de Funciones Especiales.
c) ¿Cuál es la dirección de registro STATUS?
La dirección del registro STATUS es 03h, 83h, 103h y 183h.
d) ¿Cuántos registros de propósitos generales existen en el banco 0?
Por encima de los Registros de Funciones Especiales se encuentran los
Registros de Propósito General, que se utilizan como posiciones de memoria
RAM estática. Todos están estructurados en bancos. Algunos Registros de
Funciones Especiales están reflejados en varios bancos para reducir el código
y tener un acceso más rápido.
e) ¿Cuál es la dirección de registro TRISA?
La dirección del registro TRISA es 85h.

5
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

4. Busque en el manual el set de distribución del PIC16F877 y responda lo


siguiente:

a) ¿En cuantos tipos de instrucción se puede agrupar?


Se agrupan en 3 tipos de instrucción que va de acuerdo al número de bits de su
bus de instrucciones:
 Existen algunas excepciones, como el PIC16C5X que maneja 33
instrucciones de 12 bits (posee empaquetados de 18 y 28 pines y se
energiza con 2.5 volts)
 Algunos autores manejan una “gama enana” consistente en los
PIC12C508 y PIC12C509 en empaque de 8 patitas y con un bus de
instrucciones de 12 o de 14 bits.
b) ¿Cuál es la diferencia entre un mnemónico y un operando?
La diferencia es que mnemónico son instrucciones para la maquina y el
operando para las direcciones.
c) ¿Qué es un Opcode?
Código de operación, es la porción de una instrucción de lenguaje de máquina
que especifica la operación a ser realizada. Su especificación y formato serán
determinados por la arquitectura del conjunto de instrucciones (ISA) del
componente de hardware de computador - normalmente un CPU, pero
posiblemente una unidad más especializada.
d) ¿Cuántos ciclos de instrucción utiliza CALL?
La instrucción CALL utiliza 2 ciclos.
e) ¿Qué bit de registro STATUS activa la instrucción CLRF?
El bit que activa el registro STATUS es RP0.

Conclusiones

 Con la ayuda de la tabla 1 de la aplicación de lo aprendido se pudo diferenciar la


arquitectura de diseño del microcontrolador PIC16F877.

 Gracias al manual del microcontrolador se pudo diferenciar los bloques respecticos


del PIC16F877.

 El uso del manual del fabricante facilito la tarea para poder responder las preguntas
planteadas.

6
ARQUITECTURA E INFORMACIÓN DEL PIC16F877

Aplicación de lo aprendido

MICROCHIP ATMEL ARDUINO


PIC16F877 ATMEGA 16 ATMEGA328
FLASH 14 KBytes 16 KBytes 32 KBytes
RAM 368 1024 2KBytes
ROM 14.3 KBytes 16 KBytes 1
EEPROM 256 Bytes 512 Bytes 512 Bytes
PUERTOS I/O 33 32 32
OSCILADOR Externo 20 MHz Interno 8 MHz 16 MHz
Externo 16 MHz
TIEMPO DE 4/8 circl. Reloj 1-5 circl. Reloj -
INSTRUCCIÓN
ARQUITECTURA RISC RISC RISC
REGISTROS DE 1 32 -
TRABAJO
USART Si Si Si
SPI Si Si Si
ADC 8 Canales 8 Canales 8 Canales
10 bits 10 bits 10 bits
JTAG No Si Si
MULTIPLICADOR No Si Si
ESTADO Activo Activo Activo
Fuentes de 13 18 -
Interrupción
Instrucciones 35 35
Tecnología de CMOS CMOS CMOS
fabricación
Paquetes DIP DIP DIP
Tabla 1. Cuadro comparativo entre Microchip, ATMEL, ARDUINO.

Referencias bibliográficas

 www.microchip.com
 http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
 http://www.atmel.com/

7
ARQUITECTURA E INFORMACIÓN DEL PIC16F877