Pic16f877 PDF
Pic16f877 PDF
Pic16f877 PDF
PIC 16F877A
Vanessa Vargas
Pablo Ramos
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
2
AGENDA
Características Generales
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
3
PIC16F877A COMPONENTES
CARACTERÍSTICAS GENERALES
5
PIC16F877A
CARACTERÍSTICAS GENERALES
Soporta osciladores de tipo externo: LP, RC, HS, XT. No tiene oscilador interno.
Perro guardián Watch Dog Timer (WDT) con el reloj RC interno para mejor
seguridad.
Tres temporizadores :
• TMR0 y TMR2 de 8 bits y TMR1 de 16 bits.
Comparadores Analógicos.
6
PIC16F877A
CARACTERÍSTICAS GENERALES
2 Canales de Modulación de Ancho de Pulso(PWM )
• Resolución máxima: 10-bit
Puerto Serial:
• Synchronous Serial Port (SSP) con dos modos de funcionamiento
• SPI (Master mode) e I2C (Master/Slave)
• Universal Synchronous Asynchronous Receiver Transmitter(USART )
Puerto paralelo esclavo de 8 Bits (PSP)
ENCAPSULADOS
Fuente: Datasheet
8
PIC16F877A
ENCAPSULADOS
Fuente: Datasheet
9
PIC16F877A
CARACTERÍSTICAS ELÉCTRICAS
Voltaje de alimentación • debe estar entre 2 y 5.5 V.
(VDD)
10
PIC 16F877A ARQUITECTURA
ARQUITECTURA
4 MODOS DE OSCILACIÓN
8 k PALABRAS 368 REG 256 REG
"HS" • 4MHz - 20 MHz
RAM EEPROM
DE 14 BITS DE 1 BYTE DE 1 BYTE
"XT" • 455KHz a 4 MHz
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
12
PIC16F877A ARQUITECTURA
CONFIGURACIÓN ESTÁTICA
Se realiza al momento de grabar el
IN CIRCUIT microcontrolador
"HS" • 4MHz - 20 MHz DEBUGGER RAM
LOW VOLTAGE Se realiza una única vez
"XT" • 455KHz a 4 MHz EEPROM
PROGRAMMING
Almacenada en Registro de tipo
"LP" • 32 y 200 KHz EEPROM - 2007H
"RC" • < 5.5 MHz MEMORIA DE MEMORIA DE No se borra al retirar suministro de
PROGRAMA DATOS energía
14
PIC16F877A CONFIGURACIÓN
OSCILADORES
16
PIC16F877A CONFIGURACIÓN
Por un POR (Power-On Reset) Se genera siempre que la tensión desciende entre
2.1V y 1.5V.
Por desbordamiento del WATCH DOG Si se encuentra habilitado el bit WDTE del CONFIG
TIMER(WDT) WORD
Por despertar de un comando SLEEP Ya sea por WDT o por pulso bajo en MCLR
TIMERS
FUENTES DE RESET
19
Fuente: (Valdés, 2007)
PIC16F877A CONFIGURACIÓN
FUENTES DE RESET
20
Fuente: (Valdés, 2007)
PIC16F877A CONFIGURACIÓN
PALABRA DE CONFIGURACIÓN
bit 13-12 y bit 5-4: CP1:CP0: Bits de protección del código de la memoria Flash de programa
11 = Sin protección de código
10 = se protege solo las últimas 256 celdas 1F00h a 1FFFh
01 = se protege la mitad más significativa 1000h a 1FFFh
00 = se protege toda la memoria 0000h a lFFFh
25
PIC16F877A ARQUITECTURA
CONFIGURACIÓN DINÁMICA
Se realiza durante la ejecución del programa BANCO0 BANCO1 BANCO2 BANCO3
La configuración de cada módulo está almacenada en RAM
uno o varios Registros de la RAM
La configuración se pierde al retirar suministro de energía EEPROM
MEMORIA DE MEMORIA DE
CONFIGURACIÓN ESTÁTICA PROGRAMA DATOS
CONFIGURACIÓN HARDWARE uC
RELOJ
CPU
RESET
POWER UP TIMER ENTRADAS PORT A(6 I/O)
WATCH DOG TIMER PORT B(8 I/O)
CONTADORES / MÓDULOS
(8 BITS) TEMPORIZADORES ESPECIALES SALIDAS
PORT C(8 I/O)
TIMER 0 (8 BITS)
CCP(PWM, PORT D(8 I/O)
TIMER 1 (16 BITS) ADC SSP(SPI e I2C)
Medición Tiempos) PORT E(3 I/O)
PSP BAJO
TIMER 2 (8 BITS) CONSUMO COMPARADOR
26
USART (sleep) ANÁLOGO
AGENDA
Características Generales
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
27
PIC 16F877A ARQUITECTURA
ARQUITECTURA
4 MODOS DE OSCILACIÓN
8 k PALABRAS 368 REG 256 REG
"HS" • 4MHz - 20 MHz
RAM EEPROM
DE 14 BITS DE 1 BYTE DE 1 BYTE
"XT" • 455KHz a 4 MHz
1FFFH 14 líneas de
Tamaño= 8k x 14 bits
Datos B=14
datos
= 14 kBytes
MEMORIA RAM
CONFIGURACIÓN BANCO0 BANCO1 BANCO2 BANCO3
4 BANCOS
VARIOS REGISTROS LÓGICOS
ASOCIADOS A UN REG FÍSICO
EJ: PUERTO B
Configuración
DE PROPÓSITO
ESPECIAL SPRs
Información
REGISTROS
Particulares a
cada Banco
DE PROPÓSITO
GENERAL GPRs De acceso
general o
Globales
80
16 Fuente: Datasheet
31
REGISTROS DE PROPÓSITO
PIC16F877A
Fuente: Datasheet ESPECIAL (SPRs)
BANCO 0
DIRECCIONAMIENTO
CONTADOR DE PROGRAMA
REGISTRO DE ESTADO
PUERTOS GPIO
INTERRUPCIONES
TEMPORIZADORES/
CONTADORES
MÓDULO SSP
MÓDULO CCP1
MÓDULO USART
MÓDULO CCP2
32
MÓDULO ADC
Fuente: Datasheet
REGISTROS DE PROPÓSITO
PIC16F877A
Fuente: Datasheet ESPECIAL (SPRs)
BANCO 1
DIRECCIONAMIENTO
REGISTRO CONFIGURACIÓN
CONTADOR DE PROGRAMA
REGISTRO DE ESTADO
CONFIGURACIÓN DE
PUERTOS GPIO
INTERRUPCIONES
CONDICIONES RESET
TEMPORIZADORES
MÓDULO SSP
MÓDULO USART
MÓDULO DE COMPARACIÓN
ANÁLOGA (SOLO VERSION A)
MÓDULO ADC 33
Fuente: Datasheet
REGISTROS DE PROPÓSITO
PIC16F877A
Fuente: Datasheet ESPECIAL (SPRs)
BANCO 2
DIRECCIONAMIENTO
TEMPORIZADOR 0
CONTADOR DE PROGRAMA
REGISTRO DE ESTADO
PUERTO B
INTERRUPCIONES
MEMORIA EEPROM DE
DATOS
Fuente: Datasheet
34
REGISTROS DE PROPÓSITO
PIC16F877A
Fuente: Datasheet ESPECIAL (SPRs)
BANCO 3
DIRECCIONAMIENTO
TEMPORIZADOR 0
CONTADOR DE PROGRAMA
REGISTRO DE ESTADO
PUERTO B
INTERRUPCIONES
MEMORIA EEPROM DE
DATOS
Fuente: Datasheet
35
PIC16F877A
Los bits IRP, RP1 y RP0 corresponden a los bits 7, 6 y 5 del registro STATUS 36
PIC16F877A EJEMPLO 1
DIRECCIONAMIENTO DIRECT0
MOVWF 0x30
(𝐴6 − 𝐴0 )
“000000000” 00h “010000000” 80h “100000000” 100h “110000000” 180h
DIRECCIONAMIENTO INDIRECT0
38
EXPLICACION
CONCEPTOS BÁSICOS DETALLADA
CICLO DE INSTRUCCIÓN
• Decodificación de
la instrucción
Q1:
• Procesa el dato
Q3:
• Escribe el dato
Q4:
42
CONCEPTOS BÁSICOS
EJECUCIÓN DE INSTRUCCIONES
INST 0
INST 1
INST 2
…
INST i LÍNEA DE INTERRUPCIÓN
PROGRAMA INST i+1
PRINCIPAL …
INST m(CALL xx)
VALORES DEL CONTADOR DE PROGRAMA EN EL TIEMPO
INST m+1
… 0 1 2 … i x x+1 … z i+1 … m q q+1 … s m+1 … p 2
INST p (GOTO 2)
INST q
SUBRUTINA O INST q+1
FUNCIÓN XX …
INST s(RETURN)
GUARDA GUARDA SALTA PC
INST x
RUTINA DE
INST x+1 EL PC+1 EL PC+1 PC=2
TRATAMIENTO
… Pila=i+1 Pila=m+1
INTERRUPCIÓN INST z(RETURN)
Pila RETORNA Pila RETORNA
A PC A PC
PC= Pila=i+1 PC= Pila=m+1
43
CONCEPTOS BÁSICOS EJERCICIO
EJECUCIÓN DE INSTRUCCIONES
INST 0
INST 1
INST 2
…
…
PROGRAMA INST i(CALL xx)
PRINCIPAL INST i+1
…
INST l (GOTO 2) VALORES DEL CONTADOR DE PROGRAMA EN EL TIEMPO
INST m
INST m+1
SUBRUTINA O …
FUNCIÓN XX INST o(CALL yy)
INT o+1
…
INST p(RETURN)
INST q LÍNEA DE INTERRUPCIÓN
SUBRUTINA O INST q+1
FUNCIÓN YY …
INST s(RETURN)
RUTINA DE INST x
TRATAMIENTO INST x+1
INTERRUPCIÓN …
44
INST z(RETURN)
PIC16F877A
EJECUCIÓN DE INSTRUCCIONES
PILA
INST 0
INST 1
INST 2
…
…
INST i(CALL xx) PROGRAMA
INST i+1 PRINCIPAL
…
INST l (GOTO 2)
INST m
INST m+1
… SUBRUTINA O
INST o(CALL yy) FUNCIÓN XX
INT o+1
…
INT INST p(RETURN)
INST q
SUBRUTINA O
INST q+1 FUNCIÓN YY
…
INST s(RETURN)
INST x RUTINA DE
INST x+1 TRATAMIENTO
… INTERRUPCIÓN
Fuente: Datasheet 46
INST z(RETURN)
PIC16F877A
INTERRUPCIONES
EEPROM TIMER0
RB0 BAJO
PSP
CONSUMO
RB7:RB4
(sleep)
ADC
USART
REGISTROS
SSP
PIE1 PIR1 (SPI)
PIE2 PIR2
CCP1
TIMER2
REGISTRO INTCON
TIMER1
CCP2
SSP
(I2C)
COMPARADOR 47
Fuente: Datasheet
ANÁLOGO
PIC16F877A
PUERTO A
PUERTO A
CIRCUITO PIN A4
CIRCUITO PIN A5
Fuente: Datasheet
49
PIC16F877A
PUERTO B
PUERTO C
PUERTO D
PUERTO E
CONFIGURADO COMO
ENTRADAS/SALIDAS DIGITALES
ARQUITECTURA
Fuente: Datasheet
54
AGENDA
Características Generales
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
55
PIC16F877A
INSTRUCCIONES
56
PIC16F877A
INSTRUCCIONES
57
AGENDA
Características Generales
Configuración
Arquitectura Interna
Instrucciones
Plataforma de Desarrollo
58
PLATAFORMAS DE DESARROLLO
MPLAB
PROGRAMADOR –COMPILADOR-DEPURADOR
59
PLATAFORMAS DE DESARROLLO
DEPURADOR
60
CARACTERÍSTICAS DE MICROCONTROLADORES
SIMULADOR
Permite la ejecución y depuración de
programas de manera simulada.
PROGRAMADOR
Permite grabar información en la memoria PROM (EPROM, EEPROM o FLASH)
incluida en el chip del microcontrolador.
62
PREGUNTAS
06/06/2020 63
ANEXOS
FUNCIONES DE LA CPU
06/06/2020 64
CONCEPTOS BÁSICOS TAMAÑO DE MEMORIA
MEMORIA
TAMAÑO DE MEMORIA= A x B
A= Número de registros = 2𝑛 ; 𝑛 = 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑙í𝑛𝑒𝑎𝑠 𝑑𝑒 𝑑𝑖𝑟𝑒𝑐𝑐𝑖𝑜𝑛𝑒𝑠
B= Tamaño de palabra o registro en bits ; 𝐵 = 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑙í𝑛𝑒𝑎𝑠 𝑑𝑒 𝑑𝑎𝑡𝑜𝑠
B=4; 4 líneas de datos
𝑨𝟐 𝑨𝟏 𝑨𝟎 𝐷3 𝐷2 𝐷1 𝐷0 TAMAÑO DE MEMORIA= A x B
TAM= 8 x 4 bits
Reg 0 0 0 0 TAM= 32 bits ó 4 bytes( 4B)
Reg 1 0 0 1
A=8 1Byte= 8
Reg 2 0 1 0 A = 𝟐𝟑 ; bits
Reg 3 0 1 1 3 líneas de direcciones
𝑫𝟑 𝑫𝟐 𝑫𝟏 𝑫𝟎
Reg 4 1 0 0
DATOS
𝑨𝟐
DIRECCIONES
Reg 5 1 0 1
𝑨𝟏 MEMORIA
𝑨𝟎 DE 4 B
Reg 6 1 1 0
R W En
Reg 7 1 1 1
65
PIC16F877A RETORNAR
PAGINACIÓN DE MEMORIA
Dirección Lógica o Relativa (𝐷𝐿𝑂𝐺 )
• Utilizada en paginación de memoria.
• Cada página tiene a registros (𝒂𝒓𝒆𝒈 ). Por tanto el tamaño de la página es 𝑎𝑟𝑒𝑔 x B ; B= tamaño de registro
• La dirección lógica está compuesta del número de página( 𝒏𝒑𝒂𝒈 ) y el desplazamiento en la página (desp)
• 𝐷𝐿𝑂𝐺 = 𝑛𝑝𝑎𝑔 ∶ desp
Dirección Lineal o Absoluta (𝐷𝐿𝐼𝑁 )
• 𝐷𝐿𝐼𝑁 = 𝑛𝑝𝑎𝑔 𝑥 𝑎𝑟𝑒𝑔 + desp
66
CONCEPTOS BÁSICOS
COMPONENTES DE UN COMPUTADOR
SOFTWARE
• Realizado por el programador, puede cambiar constantemente y se ejecuta en el hardware
HARDWARE
• Una vez sintetizado(implementado) puede cambiar muy poco, dependiendo de la arquitectura
67
FUNCIONES DE LA CPU
SOFTWARE -PROGRAMADOR
FUNCION DE COMPILADOR
LENGUAJES DE
ALTO NIVEL
LENGUAJE
ENSAMBLADOR
EQUIVALENTES
ALMACENADO
LENGUAJES DE EN MEMORIA
MÁQUINA DE PROGRAMA
FUNCIONES DE LA CPU
ARQUITECTURA MICROPROCESADA
PC
MEMORIA DE MEMORIA DE
PROGRAMA DATOS
SELECTORES
MUX
CONTIENEN EL
NÚMERO DE
RESULTADO INSTRUCCIÓN EN
FORMATO BINARIO
RESULTADO
06/06/2020 71
FUNCIONES DE LA CPU
SECUENCIA DE ACCIONES
CICLO DE RELOJ
• Es el periodo de la señal de reloj (oscilador) a la entrada del microprocesador.
Muchas veces se define como frecuencia de reloj.
• En una máquina sincrónica define el tiempo que se demora cada una de las
acciones en el ciclo de instrucción
CON PIPELINE
FETCH EXECUTE
INST0 INST0
FETCH EXECUTE
INST1 INST1
REDUCCIÓN EN EL
TIEMPO DE EJECUCÍÓN
FETCH EXECUTE
INST2 INST2 DEL PROGRAMA
FETCH EXECUTE
INST3 INST3
06/06/2020 73
FUNCIONES DE LA CPU RETORNAR
CM 0 CM 1 CM 2
CI 0 CI 1
FETCH EXECUTE
INST0 INST0 CON PIPELINE
CI 0 FETCH EXECUTE
INST1 INST1
CI 1 FETCH EXECUTE
INST2 INST2
FETCH EXECUTE
CM 0 CM 1 CM 2 INST3 INST3