Está en la página 1de 68

M.Ing.

WACT

Somos parte de
Somos parte de

Curso: Circuitos Lógicos


Secuenciales
Semana 13 – Sesión 2
Arquitectura del microcontrolador PIC16F877A - Continuación

Docente: Ing. Fernando Mendoza Apaza


Somos parte de

Comenzando…

▪¿Qué es una Memoria de


programa y de datos EEPROM?
Somos parte de

Logro de la sesión:

Al finalizar la sesión, el estudiante realiza


una aplicación con el programa
MPLAB X IDE en ASM
Somos parte de

Temario:

▪.
LOS MICROCONTROLADORES PIC
Los 'PIC' son una familia de microcontroladores tipo RISC (Reduced Instruction Set Computer) fabricados
por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de
microelectrónica de General Instruments.

PIC “Peripheral Interface Controller”.

El PIC de 8 bits se desarrollo para el año 1975

6
LOS MICROCONTROLADORES PIC
Los microcontroladores PIC incorporan en su procesador tres características:
✓ Procesador tipo RISC
✓ Procesador segmentado
✓ Arquitectura HARVARD

Con estos recursos los PIC son capaces de ejecutar en un ciclo de instrucción
todas las instrucciones, excepto las de salto que tardan el doble.

7
LA FAMILIA DE LOS PIC
Se divide en cuatro gamas:
Gama enana, gama baja, gama media y gama alta.

Sus diferencias radica en:


El numero de instrucciones y longitud
El número de puertos y funciones.

Lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de


aplicaciones.

8
NOMENCLATURA DE LOS PIC’S

PIC nnLLLxxx
nn: Un número propio de la gama del PIC

LLL: Código de letras donde la primera indica la tensión de alimentación y las otras dos el tipo de
memoria que utiliza

Xxx: Número que indica el modelo del PIC.

9
NOMENCLATURA DE LOS PIC’S

10
GAMA ENANA
PIC 12C(F)XXX, de 8 patas (pines)

Aunque solo tienen 8 pines, pueden destinar hasta 6 como líneas de E/S para los periféricos porque
disponen de un oscilador interno R-C.

11
GAMA ENANA

12
GAMA BAJA O BASICA

 Mejores relaciones coste/prestaciones.


 Encapsulados con 18 y 28 pines
 Pueden alimentarse con una tensión 2.5V
 33 instrucciones con formato de 12bits.

13
GAMA BAJA PIC16C5X

Principales características de los modelos de


gama baja.
14
GAMA MEDIA
▪ Encapsulado desde 18 hasta 68 pines
▪ 35 instrucciones de 14 bits

15
GAMA MEDIA PIC16CXXX

Características relevantes de los modelos


PIC16X8X de la gama media
16
GAMA ALTA
▪ Alcanzan 58 instrucciones de 16 bits
▪ Sistema de gestión de interrupciones vectorizadas
▪ Incluyen variados controladores de periféricos, puertas de
comunicación serie y paralelo
▪ Arquitectura abierta.

17
EL PIC16X84
▪ Pertenece a la familia de la gama media
▪ Tiene solo 18 pines
▪ Posee una memoria de programa de 1K palabras de 14bits cada una
▪ 64 bytes como memoria de datos auxiliar y opcional

18
TARJETA DE PRESENTACION DE PIC16X84
▪ Memoria de programa 1Kx14
▪ Memoria de datos RAM 36 byte-PIC16C84 y de 68 byte-PIC16F84
▪ Memoria de datos 64bytes/EEPROM
▪ Pila de 8 niveles
▪ Interrupciones 4 tipos diferentes
▪ Juego de instrucciones 35
▪ Encapsulado Platico DIP de 18 pines
▪ Frecuencia de trabajo 10MHz Máxima

19
TARJETA DE PRESENTACION DE PIC16X84
▪ Temporizadores : Solo uno TMR0
▪ Líneas E/S digitales : 13 Puerta A y Puerta B
▪ Voltaje de alimentación : VDD de 2 a 6VDC
▪ Corriente máxima absorbida : 80mA-Puerta A y 150mA-
Puerta B
▪ Corriente máxima suministrada : 50mA-Puerta A y 100mA-
Puerta B

20
ASPECTO EXTERNO
•VDD
•VSS
•OSC1/CLKIN
•OSC2/CLKOUT
•MCLR9#
•RA0-RA4
•RA4/TOCKI
•RB0-RB7
•RB0/INT

21
FRECUENCIA DE FUNCIONAMIENTO
Cuando un PIC16X8X funciona a 10MHz, le corresponde un
ciclo de instrucción de 400ns.

Ciclo de instrucción: 4x100ns=400ns

Todas las instrucciones del PIC se realizan en un ciclo de


instrucción menos las de salto.

Se aplica la técnica de segmentación o Pipeline

22
FRECUENCIA DE FUNCIONAMIENTO

Q1: Se incrementa el contador de programa.


Q2-Q3: Se produce la decodificación y la ejecución de la instrucción
Q4: Se busca el código de la instrucción en la memoria del programa
y se carga en el registro de instrucciones.

23
TIPOS DE OSCILADORES
▪ OSCILADOR TIPO RC
Un oscilador formado por una resistencia y un condensador

24
TIPOS DE OSCILADORES
▪ OSCILADOR TIPO HS
Un oscilador que alcanza una alta velocidad entre 4 y 10MHz, basado en un cristal de cuarzo o un
resonador cerámico

25
TIPOS DE OSCILADORES
▪ OSCILADOR TIPO XT
Es un resonador de cristal o resonador para frecuencias
estándar, comprendida entre 100KHz y 4MHz.

26
TIPOS DE OSCILADORES
▪ OSCILADOR TIPO LP
Oscilador de bajo consumo con cristal o resonador diseñado para trabajar en un rango de frecuencias de
35 a 200KHz.

El cristal de cuarzo o el resonador cerámico se coloca entre los pines OSC1 y OSC2

27
ESQUEMA MINIMO DE MONTAJE DEL PIC16F84

28
REINICIALIZACION O RESET
Con un nivel lógico bajo en MCLR# el microcontrolador se reinicializa:

1. El contador de programa se carga con la dirección 0.


2. La mayoría de los registros de estado y control del procesador toman un
estado conocido y determinado.

29
EN EL INTERIOR DEL PROCESADOR
Los microcontroladores PIC incorporan tres característica:
◦ Procesador tipo RISC
◦ Procesador segmentado
◦ Arquitectura Harvard

Una condición es la simetría y ortogonalidad en el formato de las


instrucciones (14bits)

El juego de instrucciones se reduce a 35 y con la estructura segmentada se


pueden realizar simultáneamente las dos fases que compone cada
instrucción

30
EN EL INTERIOR DEL PROCESADOR
▪ El manejo intensivo del banco de registros, los cuales participan de una manera muy activa en la ejecución
de instrucciones.
▪ La ALU, efectúa sus operaciones lógico- aritmética con dos operandos, uno es del registro W(Work) y el
otro que puede provenir de cualquier registro o del propio código de instrucción.

31
ARQUITECTURA INTERNA DEL PIC16C84
Consta de siete bloques fundamentales:

 Memoria de programa EEPROM 1K x 14bits.

 Memoria de datos formada por dos áreas, una RAM aloja 22 registros de (SFR), 36 registros (GPR) y tipo
EEPROM de 64 bytes.

 Camino de datos con la ALU de 8 bits y un registro de trabajo W.

32
ARQUITECTURA INTERNA DEL PIC16C84
 Diversos recursos conectados al bus de datos (Puertos E/S,
TMR0, etc).

 Base de tiempo y circuitos auxiliares.

 Direccionamiento de la memoria de programa en base al


Contador de Programa ligado a una pila de 8 niveles de
profundidad.

 Direccionamiento directo e indirecto de la memoria RAM.

33
MEMORIA DE PROGRAMA
▪ El PIC16C84 utiliza una memoria de programa del tipo EEPROM, capaz de ser escrita y borrada
eléctricamente.

▪ El PIC16F84 utiliza una memoria tipo Flash.

34
CONTADOR DE PROGRAMA Y PILA
 El rango de direcciones que cubre el PIC16X84 en su memoria de programa llega desde 0000H a la
03FFH, 1024 posiciones.

 La pila es una zona aislada de las memorias de instrucciones y datos.

 LIFO, el último valor guardado es el primero que sale.

36
CONTADOR DE PROGRAMA Y PILA
▪ La instrucción CALL y las interrupciones originan la carga del contenido del PC en el nivel superior de la
pila.

▪ El contenido del nivel superior de la Pila se saca al ejecutar las instrucciones RETURN, RETLW Y RETFIE.

37
CONTADOR DE PROGRAMA Y PILA

38
MEMORIA DE DATOS RAM

Área de RAM estática o SRAM

Área EEPROM
MEMORIA DE DATOS RAM
Área de RAM estática o SRAM

Donde reside el Banco de Registros Específicos (SFR) y el


banco de Registros de Propósito General (GPR).

SFR: Tiene 24 posiciones de tamaño byte. Son los


encargados del control del procesador y sus recursos.

GPR: Tiene 36 posiciones de tamaño byte


MEMORIA DE DATOS RAM
Área EEPROM
Es de 64 bytes donde, opcionalmente, se pueden almacenar datos que no se pierden al desconectar la
alimentación.

La zona RAM se halla dividida en dos bancos (banco 0 y banco 1) de 128 bytes cada uno
MEMORIA DE DATOS RAM

Se halla dividida en dos bancos


(banco 0 y banco 1) de 128 bytes
cada uno, En el PIC 16C84 solo
se hallan implementadas
físicamente las primeras 48
posiciones de cada banco.

42
DIRECCIONAMIENTO DE LA MEMORIA DE DATOS
ESTADO

RP0

Selecciona un banco

Código OP de instrucción

selecciona la dirección en el banco


 DIRECCIONAMIENTO DIRECTO
El operando que utiliza la instrucción en curso se
referencia mediante su dirección que viene incluida
en el código OP. El banco a acceder lo determinan
los bits RP0 y RP1 del registro ESTADO
43
DIRECCIONAMIENTO DE LA MEMORIA DE DATOS
FSR
7 6 0

IRP

Selección del
banco Selección de
 Direccionamiento indirecto dirección
Se usa cuando una instrucción se utiliza como operando
el registro INDF, que ocupa la dirección 0 de ambos
bancos, el bit de más peso FSR junto al bit IRP del
registro ESTADO se encargan de seleccionar el banco a
acceder, mientras que los 7 bits de menos peso apuntan a
la posición.

44
MEMORIA DE DATOS RAM
SFR: Se clasifican en dos grupos .

En uno se incluyen aquellos que controlan el núcleo del microcontrolador (ESTADO, OPTION,
INTCON, etc)

Y el otro la operatividad de recursos auxiliares y periféricos.


EL REGISTRO DE ESTADO
▪ Ocupa la dirección 3 tanto del banco 0 como del banco 1 de la memoria de datos RAM
▪ Misiones:
1. Avisar las incidencias del resultado de la ALU (C, DC, Z)
2. Indican el estado de Reset (TO# y PD#).
3. Seleccionan el banco a acceder en la memoria de datos (IRP, RP0 y RP1)

46
EL REGISTRO DE ESTADO
7 0
IRP RP1 RP0 TO# PD# Z DC C

•C: Acarrero / llevada en el bit de más peso


1: Se ha producido un acarreo en el bit
de más peso, addwf y addlw. También
cuando es resta subwf y sublw, 1 no hay
llevada y 0 sí
0: No se ha producido acarreo

47
EL REGISTRO DE ESTADO
▪ DC: Acarreo llevada en el cuarto bit. De interés en operaciones BCD.

▪ Z: cero
1: El resultado de una operación lógico-aritmética ha sido 0.

0: El resultado de una operación lógico-aritmética no ha sido 0.

48
EL REGISTRO DE ESTADO
▪ PD#: Power Down
1: Después de la conexión de la alimentación al microcontrolador o al ejecutar la instrucción clrwdt.

0: Mediante la ejecución de la instrucción sleep.

49
EL REGISTRO DE ESTADO
▪ TO#:Time Out
1: Después de la conexión de la alimentación o al ejecutarse las instrucciones
clrwdt y sleep.

0: Cuando se produce el desbordamiento del perro guardian (Watchdog)

50
EL REGISTRO DE ESTADO
▪ RP1-RP0: Selección de banco de direccionamiento directo

Como el PIC16X84 solo tiene dos bancos emplea únicamente a RP0, de forma que cuando vale:1 se
accede al banco 1.

Después de un RESET, RP0 vale 0.

51
EL REGISTRO DE ESTADO
 IRP: Selección del banco en direccionamiento indirecto

este bit junto con el bit de más peso del Registro FSR sirven
para determinar el banco de la memoria de datos
seleccionado.

Al disponer de solo dos bancos no se usa este bit y debe


programarse como cero.

52
REGISTROS TRISA Y TRISB
Se encuentran en el banco 1, luego hay que configurar el registro ESTADO para acceder a ellos.

TRIS A: Configura a las líneas de la Puerta A como entradas si están a 1 y como salidas si están a 0.
TRIS B: Configura el puerto B (Entrada/ salida)
REGISTROS TRISA Y TRISB
TRIS B: Configura las líneas de la Puerta B como entradas si están a 1 y como salidas si están a 0.
PUERTAS DE E/S
▪ PUERTA A
Consta de 5 líneas RA4-RA0.
RA3-RA0, líneas E/S digitales configurables de forma independiente.
RA4/T0CKI, además de E/S, puede funcionar como entrada de los impulsos de reloj para el TMR0
PUERTAS DE E/S
▪ PUERTA A
Tras un RESET todos los bits de TRISA se colocan a 1 y las líneas de la Puerta A quedan configuradas
como entradas.
PUERTAS DE E/S
▪ PUERTA B
RB0/INT también puede actuar como línea de petición de interrupción.

Para la grabación en serie del PIC se usa el pin RB6 para impulsos de reloj y el pin RB7 para la entrada de
datos.
REGISTRO OPTION
▪ La misión principal de este registro es controlar TMR0 y el Divisor de frecuencia.
REGISTRO OPTION

IRRBP# INTEDG TOCS TOSE PSA PS2 PS1 PS0


▪ PS2:PS0 Valor con el que actúa el Divisor de frecuencia

▪ PSA Asignación del divisor de frecuencia (1=WDT 0= TMR0)


REGISTRO OPTION
 TOSE tipo de flanco T0CKI (1=Incrementa TMR0 flanco descendente; 0= flanco ascendente)

 TOCS Tipo de reloj para el TMR0


1= Pulsos introducidos a través de T0CKI (Contador)
0= Pulsos reloj interno (Temporizador Fosc/4)
REGISTRO OPTION
 INTEDG Flanco activo por interrupción externa(1= flanco Ascendente; 0= flanco descendente)

 RBPO# resistencias Pull-Up Puerta B


1= Desactivadas
0= Activadas
UTILIZANDO UN MICROCONTROLADOR
Los microcontroladores se programan en un lenguaje de programación llamado Ensamblador (Assembler),
cuya principal característica es su altísima complejidad.

Los lenguajes de programación se clasifican según su nivel de programación:

 Lenguaje de alto nivel: Un nivel y estilo de escritura fácilmente legible y comprensible por el hombre.
Lenguajes de tipo visual.

62
UTILIZANDO UN MICROCONTROLADOR
 Lenguaje de bajo nivel: El usuario se acerca un poco más al lenguaje máquina. Permitiendo un acceso
más amplio al control físico del hardware.

 Lenguaje Ensamblador: Podríamos considerarlo el lenguaje de más bajo nivel

Podemos decir que los lenguajes de alto nivel se asemejan más al lenguaje humano y los lenguajes de
bajo nivel se asemejan más al lenguaje máquina.

63
PROGRAMACION EN ENSAMBLADOR PIC 16F84
 Para programar un PIC 16F84 necesitamos conocer las instrucciones para generar el código fuente para
posteriormente compilarlo por ejemplo con MPASM, emular el programa y poder grabarlo para
implementarlo en el circuito correspondiente.

 El listado de instrucciones de microchip (el fabricante del microcontrolador) son las siguientes:

64
SET DE INSTRUCCIONES

65
SET DE INSTRUCCIONES

66
Somos parte de

En conclusión…
Somos parte de

También podría gustarte