Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Curso de
Microcontroladores
Características PIC16F8XX
I
Que es un PIC???
• El PIC fue desarrollado como un control de
periféricos
• PIC(Peripheral Interface Controller) es un
Circuito Integrado desarrollado para
controlar los perifericos que son controlados
por un CPU principal
Memoria de Programa
Características Comunes
Arquitectura RISC
• Instrucciones de una sola Palabra
• Instrucciones de un solo Ciclo
• Conjunto de Instrucciones Reducido
• Arquitectura Register File
• Su procesador es segmentado, “pipe-line”.
• Tiene una arquitectura HARVARD
• El formato de las instrucciones es ORTOGONAL
Ciclo de Instrucción
Los cuatro ciclos Q que componen un ciclo de instrucción (TCY)
pueden generalizarse como:
• Q1: Decodificación de la Instrucción
• Q2: Lectura de Dato (si lo hay)
• Q3: Proceso de Datos
• Q4: Instrucción escribir datos
Configuraciones de Oscilador
• Tipos de Oscilador:
› LP Low Frequency (Power) Crystal
› XT Crystal/Resonador
› HS High Speed Crystal/Resonador
› RC Externo Resistor/Capacitor (lo mismo que EXTRC con
CLKOUT)
› EXTRC Resistor/Capacitor Externos
› EXTRC Resistor/Capacitor Externos con CLKOUT
› INTRC Resistor/Capacitor Internos para 4 MHz
› INTRC Resistor/Capacitor Internos para 4 MHz con CLKOUT
Circuito RC Externo
Formula para el
calculo de frecuencia
Tabla de Calculo a 5v y 25 °C
Valores Mas
Frecuentes de C1
y C2
Microcontrolador PIC16F84A
La Arquitectura del
Microcontrolador PIC16F84
Características
• Solo 35 Instrucciones • 15 Registro de
• Cada instruccion se propocito especial
ejecuta en un ciclo
• Pila de 8 niveles
maquina
• Memoria de programa
de 1024 palabras
• RAM de 68 bytes
• EEPROM de datos de
64 bytes
• 8 Bit de datos
27/03/2010 Ing. Germán Pereira Muñoz 19
Características
• Cuatro Fuentes de Interrupción:
› Interrupción Externa RB0/INT pin
› Interrupción
p de Timer TMR0
› Interrupción en cambio de estado
PORTB<7:4>
› Interrupción de final de escritura de la
EEPROM de datos
Características
• Periféricos:
› 13 I/O pins con control individual de dirección
› Característica de cada pin
Puerto A Puerto B
Modo sumidero 80 mA 150 mA
Modo fuente 50 mA 100 mA
› TMR0: 8-bit Contador/Temporizador con 8-bit
› Preescaler para timer programable
Diagrama
Interno
• Pila de 8 niveles
Pila de 8 Niveles
Memoria de Programa
PIC16F84A
• Locaciones de ID
Direcciones 2000h a
2003h
• Palabra de identificación
Dilección 2006h
• Palabra de Configuración
Dirección 2007
Palabra de configuración
Oscilador Extrerno
• Soporta 4 tipos de Osciladores Externos
• Registros SFR
Desde la dirección 00h hasta la
dirección 0Bh
› Registros de Configuración
› Registros de Entrada y salida
› Registros de Funcionamiento
• Registros
R it GPR
Desde la dirección 0Ch hasta la
dirección 4fh
Ejemplo de Configuración
+5V
Pic16
____
RA2
RA3
Vss
RB0
RB1
RB2
RB3
10k
+5V
10k
Interrupciones
• Timer
• Externa
• Cambio de estado
• Fin de escritura en la
EEPROM de datos
• Habilitador Global de
interrupciones
main()
{
//;--------- Configuración de puertos y de la respuesta a interrupciones. ---------
// 1) HABILITACION DE LAS INTERRUCPIONES
// 2) CONFIGURACION DE PUERTOS
while( 1 )
{
// PROGRAMA PRINCIPAL
}
}
27/03/2010 Ing. Germán Pereira Muñoz 38
Interrupción Externa
• Flanco de disparo de la
Flanco Ascendente
interrupción
Flanco
Descendente
• El Pin RB0 debe ser
configurado como entrada
27/03/2010 Ing. Germán Pereira Muñoz 40
• SUBRUTINA EN C
//el banco 0 debe ser seleccionado
void write_E2DAT(char dir, char data)
{
//Escritura de datos
EEADR = dir;
EEDATA = data;
set_bit(STATUS, RP0);
set_bit(EECON1, WREN);
EECON2 = 0x55;
EECON2 = 0xaa;
set_bit(EECON1, WR);
while(EECON1&2); //VERIFICANDO SI TERMINO LA
ESCRITURA
clear_bit(EECON1, WREN);
clear_bit(STATUS, RP0);
}
27/03/2010 Ing. Germán Pereira Muñoz 45
• Preescaler
› El Preescaler puede usarse
para dividir la entrada por:
2, 4, 8, 16, 32, 64, 128, o 256
• g
bit 3 PSA: Asignación del divisor de frecuencia
› 1: El divisor de frecuencia se asigna al WDT
› 0: El divisor de frecuencia se asigna al TMR0
• bit 4 TOSE: Tipo de flanco en TOCK1
› 1: Incremento de TMR0 cada flanco descendente
› 0: Incremento de TMR0 cada flanco ascendente
• bit 5 TOCS: Tipo de Reloj para TMR0
› 1: Pulsos introducidos a través de T0CK1 (Contador)
› 0: Pulsos de reloj interno Fosc/4 (Temporizador)
• bit 6 INTEDG: Flanco activo control de interrupciones
› 1: Flanco Ascendente
› 0: Flanco Descendente
• bit 7 BPRU : Resistencia Pull-up Puerto B
› 1: Desactivadas
27/03/2010
› 0: Activadas Ing. Germán Pereira Muñoz 50
Programa de usuario
}
}
27/03/2010 Ing. Germán Pereira Muñoz 53
Formula:
N = 256 - t / ( 4 * Tosc * rango de divisor de frecuencias);
f = 1/0.002048s
f = 488.28125 hz = 0.488 khz
• Materiales
› Microcontrolador
PIC16F84A
› Cristal de 4Mhz
› Pulsador
P l d
› Resistencia de 10K ¼ de
watt
› 12 Leds
› 12 Resistencias de ¼ de
watt
• Materiales
› Microcontrolador PIC16F84A
› Cristal de 4Mhz
› 5 Pulsadores
› 5 Resistencias de 10K ¼ de
watt
› 8 Leds
› 8 Resistencias de ¼ de watt
Microcontrolador PIC16F628A
Memoria de
Datos
PIC16F628
A
Microcontrolador PIC16F873
Memoria de
Datos
PIC16F873
Microcontrolador PIC16F877
Memoria de
Datos
PIC16F877