caracteristicas pic16f8xx

22
Introduccion 3/27/2010 Ing German Pereira Muñoz 1 Curso de Microcontroladores Características PIC16F8XX I Ing Germán Pereira Muñoz 27/03/2010 1 Ing. Germán Pereira Muñoz Que es un PIC??? El PIC fue desarrollado como un control de periféricos PIC(Peripheral Interface Controller) es un PIC(Peripheral Interface Controller) es un Circuito Integrado desarrollado para controlar los perifericos que son controlados por un CPU principal 27/03/2010 2 Ing. Germán Pereira Muñoz La Arquitectura del Microcontrolador PIC16F8XX 27/03/2010 3 Ing. Germán Pereira Muñoz

Upload: oscar-ortiz-choque

Post on 28-Mar-2015

90 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 1

Curso de Microcontroladores

Características PIC16F8XX I

Ing Germán Pereira Muñoz

27/03/2010 1Ing. Germán Pereira Muñoz

Que es un PIC???

• El PIC fue desarrollado como un control de periféricos

• PIC(Peripheral Interface Controller) es unPIC(Peripheral Interface Controller) es un Circuito Integrado desarrollado para controlar los perifericos que son controlados por un CPU principal

27/03/2010 2Ing. Germán Pereira Muñoz

La Arquitectura del Microcontrolador PIC16F8XX

27/03/2010 3Ing. Germán Pereira Muñoz

Page 2: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 2

Memoria de Programa

• ROM con máscara.• EPROM (Erasable Programmable Read OnIy Memory).• EEPROM (Electrical Erasable Programmable Read

OnIy Memory). • FLASH• OTP (One Time Programmable).

27/03/2010 4Ing. Germán Pereira Muñoz

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

27/03/2010 5Ing. Germán Pereira Muñoz

Procesador segmentado “pipe-line”

27/03/2010 6Ing. Germán Pereira Muñoz

Page 3: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 3

Clico Clock / Instrucción

• Fcm=Fxtal/4 Fxtal: Frecuencia del Cristal Externo

• Tcm=1/Fcm Fcm: Frecuencia Ciclo maquinaTcm: Tiempo Ciclo Maquina

27/03/2010 7Ing. Germán Pereira Muñoz

Ciclo de InstrucciónLos 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

27/03/2010 8Ing. Germán Pereira Muñoz

Opciones de Voltaje de OperaciónTipo de Memoria de Dispositivo e Indicador de Rango de voltaje

Rango de Voltajes Típicos para cada tipo de dispositivo

27/03/2010 9Ing. Germán Pereira Muñoz

Page 4: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 4

Formato General de las Instrucciones

27/03/2010 10Ing. Germán Pereira Muñoz

Operación de ALU y el Registro W

27/03/2010 11Ing. Germán Pereira Muñoz

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

27/03/2010 12Ing. Germán Pereira Muñoz

Page 5: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 5

Circuito RC Externo

Formula para el calculo de frecuencia

Tabla de Calculo a 5v y 25 °C

27/03/2010 13Ing. Germán Pereira Muñoz

Fuente externa de reloj (LP, XT, HS)

27/03/2010 14Ing. Germán Pereira Muñoz

Quartz y resonador (LP, XT, HS)

Valores Mas Frecuentes de C1 y C2

27/03/2010 15Ing. Germán Pereira Muñoz

Page 6: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 6

Encendido del Oscilador / Resonator

Factores que afectan: •Frecuencia del Cristal / Resonador•Los Valores de los Capacitores C1 y C2 usados• Tiempo de subida Vdd del Dispositivospos vo• Temperatura del Sistema •El Modo de Oscilador seleccionado• Calidad del Cristal • Diseño del Oscilador • Ruido de Sistema

27/03/2010 16Ing. Germán Pereira Muñoz

Microcontrolador PIC16F84A

27/03/2010 17Ing. Germán Pereira Muñoz

La Arquitectura del Microcontrolador PIC16F84

27/03/2010 18Ing. Germán Pereira Muñoz

Page 7: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 7

Características

• Solo 35 Instrucciones• Cada instruccion se

ejecuta en un ciclo maquina

• 15 Registro de propocito especial

• Pila de 8 nivelesmaquina• Memoria de programa

de 1024 palabras• RAM de 68 bytes • EEPROM de datos de

64 bytes• 8 Bit de datos27/03/2010 19Ing. Germán Pereira Muñoz

Características

• Cuatro Fuentes de Interrupción:› Interrupción Externa RB0/INT pin› Interrupción de Timer TMR0p› Interrupción en cambio de estado

PORTB<7:4>› Interrupción de final de escritura de la

EEPROM de datos

27/03/2010 20Ing. Germán Pereira Muñoz

Características

• Periféricos:› 13 I/O pins con control individual de dirección› Característica de cada pin

Puerto A Puerto BPuerto 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

27/03/2010 21Ing. Germán Pereira Muñoz

Page 8: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 8

Diagrama Interno

27/03/2010 22Ing. Germán Pereira Muñoz

Memoria de Programa PIC16F84A

• Pila de 8 niveles

• Memoria de programa de 1024 palabras de 14 bits

› Vector de Reset dirección 0000h

› Vector de Interrupción dirección 0004h

27/03/2010 23Ing. Germán Pereira Muñoz

Pila de 8 Niveles

27/03/2010 24Ing. Germán Pereira Muñoz

Page 9: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 9

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

27/03/2010 25Ing. Germán Pereira Muñoz

Palabra de configuración

• Dirección en memoria de Programa dirección: 2007h• Bit 4: CP, bit de configuración protección de código

› 1= Protección de código desactivado› 0=Protección de código activado

• Bit 3: PWRTE, Activación del temporizador "Power-Up"1 D i d› 1= Desactivado

› 0= Activado• Bit 2: bit de configuración habilitación del Watchdog (WDT)

› 1: WDT activado› 0: WDT desactivado

• Bit1 y 2: FOSC<1:0>› 11: Oscilador RC› 10 Oscilador HS ( 8 - 20 MHz)› 01 Oscilador XT ( 100 KHz- 4MHz)› 00 Oscilador LP (Bajo consumo 32- 200 Hz)

27/03/2010 26Ing. Germán Pereira Muñoz

Oscilador Extrerno• Soporta 4 tipos de Osciladores Externos

27/03/2010 27Ing. Germán Pereira Muñoz

Page 10: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 10

Organización de la memoria de datos de la familia PIC16FXXX

RP1 RP0 Banco Activo

0 0 0

0 1 1

1 0 2

1 1 3

27/03/2010 28Ing. Germán Pereira Muñoz

Memoria de Datos del PIC16F84A

• Registros SFRDesde la dirección 00h hasta la

dirección 0Bh› Registros de Configuración› Registros de Entrada y salida› Registros de Funcionamiento

R i t GPR• Registros GPRDesde la dirección 0Ch hasta la

dirección 4fh

RP1 RP0 Banco Activo

0 0 0

0 1 1

1 0 2

1 1 327/03/2010 29Ing. Germán Pereira Muñoz

Sumario de Registros Banco 0

27/03/2010 30Ing. Germán Pereira Muñoz

Page 11: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 11

Sumario de Registros Banco 1

27/03/2010 31Ing. Germán Pereira Muñoz

STATUS REGISTER (ADDRESS 03h, 83h)

• bit 0 C : flag de acarreo en el octavo bit › 1: Acarreo en la suma y no en la resta› 0: Acarreo en la resta y no en la suma

• bit 1 DC: flag de acarreo en el 4º bit de menos peso.› 1: Acarreo en la suma› 0 : No acarreo en la suma. En la resta lo contrario

• bit 2 Z: flag de cero› 1: El resultado de la última operación aritmética o lógica es cero› 0: El resultado de la última operación es distinto de cero› 0: El resultado de la última operación es distinto de cero

• bit 3 PD#: flag Power Down› 1: Tras conectar VDD o al ejecutar la instrucción CLRWDT› 0: Al ejecutar la instrucción SLEEP

• bit 4 TO#: flag Timer Out› 1: Tras conectar VDD o ejecutar CLRWDT o SLEEP› 0: Al desbordar el temporizador de WDT

• bit 5-6 RP<1:0>:Selección del banco para el direccionamiento directo› 00 Banco 0 (00h-7Fh) › 01 Banco 1 (80h-FFh) › 10 Banco 2 (100h-17Fh)› 11 Banco 3 (180h-1FFh)

• bit 7 IRP: Selección de bancos para el direccionamiento indirecto› 1: el resultado de la última operación aritmética o lógica es cero› 0: Bancos 0 y 1 (00h-FFh)

27/03/2010 32Ing. Germán Pereira Muñoz

PORTA (ADDRESS 05h)TRISA (ADDRESS 85h)

• TRISA Bit = 1 PORTA Bit como entrada• TRISA Bit = 0 PORTA Bit como salida

27/03/2010 33Ing. Germán Pereira Muñoz

Page 12: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 12

PORTB (ADDRESS 06h)TRISB (ADDRESS 86h)

• TRISB Bit = 1 PORTB Bit como entrada• TRISB Bit = 0 PORTB Bit como salida

27/03/2010 34Ing. Germán Pereira Muñoz

Ejemplo de Configuración

27/03/2010 35Ing. Germán Pereira Muñoz

Diagrama Circuital Básico

+5V6c

84

RB

4R

B5

RB

6R

B7

Vd

dO

SC

2O

SC

1R

A0

RA

1

+5V

4.000MHZ

220

220220

220

220 220

220220220 220

220220

220

+5V

+5V

Pi

c1

6R

A2

RA

3R

A4

MC

LR

__

__

Vs

sR

B0

RB

1R

B2

RB

3

OO

10k

10k

27/03/2010 36Ing. Germán Pereira Muñoz

Page 13: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 13

Interrupciones

• Timer

• Externa

• Cambio de estado

• Fin de escritura en la EEPROM de datos

• Habilitador Global de interrupciones

27/03/2010 37Ing. Germán Pereira Muñoz

Estructura para Interrupciones en Lenguaje C#pragma CLOCK_FREQ 4000000

void interrupt( void ){// SERVICIO DE INTERRUPCION

// LIMPIANDO BANDERAS DE INTERRUPCION}

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

INTCON REGISTER (ADDRESS 0Bh, 8Bh)

• bit 0 RBIF: flag de estado del Port B› 1:Cuando cambia de estado cualquier línea de PB (RB<7:4>). Se borra por software › 0:Ninguna entrada de PB ha cambiado

• bit 1 INTF: flag de estado de la interrupción externa INT› 1:La entrada de la interrupción se ha activado. Se borra por software › 0:No hay interrupción externa

• bit 2 T0IF: flag de rebosamiento del TMR0› 1: El TMR0 se ha desbordado. Se borra por software › 0: El TMR0 no se ha desbordado

• bit 3 RBIE: Activación de la interrupción del Port B› 1: Interrupción activada› 0: Interrupción desactivada

• bit 4 INTE: Activación de la interrupción externa INT› 1: Interrupción activada› 0: Interrupción desactivada

• bit 5 T0IE: Activación de la interrupción del TMR0› 1: Interrupción activada› 0: Interrupción desactivada

• bit 6 EEIE: Activación de la interrupción de la memoria EEPROM› 1: Interrupción activada› 0: Interrupción desactivada

• bit 7 GIE: Activación Global de Interrupciones› 1: Concedido el permiso de interrupciones› 0: No hay posibilidad de interrupciones27/03/2010 39Ing. Germán Pereira Muñoz

Page 14: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 14

Interrupción Externa

• Flanco de disparo de la interrupción

• El Pin RB0 debe ser configurado como entrada

Flanco Ascendente

Flanco Descendente

27/03/2010 40Ing. Germán Pereira Muñoz

INTCON REGISTER (ADDRESS 0Bh, 8Bh)

• bit 0 RBIF: flag de estado del Port B› 1:Cuando cambia de estado cualquier línea de PB (RB<7:4>). Se borra por software › 0:Ninguna entrada de PB ha cambiado

• bit 1 INTF: flag de estado de la interrupción externa INT› 1:La entrada de la interrupción se ha activado. Se borra por software › 0:No hay interrupción externa

• bit 2 T0IF: flag de rebosamiento del TMR0› 1: El TMR0 se ha desbordado. Se borra por software › 0: El TMR0 no se ha desbordado

• bit 3 RBIE: Activación de la interrupción del Port B› 1: Interrupción activada› 0: Interrupción desactivada

• bit 4 INTE: Activación de la interrupción externa INT› 1: Interrupción activada› 0: Interrupción desactivada

• bit 5 T0IE: Activación de la interrupción del TMR0› 1: Interrupción activada› 0: Interrupción desactivada

• bit 6 EEIE: Activación de la interrupción de la memoria EEPROM› 1: Interrupción activada› 0: Interrupción desactivada

• bit 7 GIE: Activación Global de Interrupciones› 1: Concedido el permiso de interrupciones› 0: No hay posibilidad de interrupciones27/03/2010 41Ing. Germán Pereira Muñoz

OPTION_REG REGISTER (ADDRESS 81h)

• bit 0 2 PS2 PS0: › Asignación Rango con el que actúa el Divisor de frecuencia

• bit 3 PSA: Asignación del divisor de frecuencia1 El di i d f i i l WDT› 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› 0: Activadas27/03/2010 42Ing. Germán Pereira Muñoz

Page 15: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 15

#pragma CLOCK_FREQ 4000000char cont;void interrupt( void ){ if((INTCON&2)==2)

{ cont++;PORTA = cont; clear_bit( INTCON,INTF ); //Limpiando la bandera de interrupción externa

}}main(){ set_bit( STATUS, RP0 );

TRISA = 0x00;TRISB = 0x01;clear_bit(OPTION_REG,INTEDG); // INTEDG = 1 -> flanco ascendente de INT EXT

// INTEDG = 0 -> franco descendente de INT EXTclear_bit( STATUS, RP0 );PORTA = 0x00;cont = 0x00; enable_interrupt( GIE ); // habilitando todas las interrupcionesenable_interrupt( INTE ); //HJabilitando la interrupcion externawhile( 1 ){ set_bit(PORTA,4);

delay_ms(200);clear_bit(PORTA,4);delay_ms(200);

}}27/03/2010 43Ing. Germán Pereira Muñoz

Interrupción de fin de escritura de la EEPROM

• bit 0: RD, Lectura › Se pone a 1 cuando se va a realizar un ciclo de lectura de la EEPROM luego pasa a 0› Se pone a 1 cuando se va a realizar un ciclo de lectura de la EEPROM, luego pasa a 0

automáticamente.• bit 1: WR, Escritura

› Se pone a 1 cuando comienza el ciclo de escritura de la EEPROM› Se pone a 0 cuando finaliza el ciclo de escritura de la EEPROM

• bit 2: WREN, Permiso de escritura› 1 = Permite la escritura de la EEPROM› 0 = Prohibe la escritura de la EEPROM

• bit 3:WRWRR, Señalizador de error de escritura› 1 = Se pone a 1 cuando una operación de escritura ha terminado prematuramente› 0 = La operación de escritura se ha completado correctamente

• bit 4:EEIF, Señalizador de final de operación de escritura› 1= La operación de escritura se ha completado con éxito› 0 = La operación de escritura no se ha completado

27/03/2010 44Ing. Germán Pereira Muñoz

ESCRITURA EN LA EEPROM DE DATOS• El dato de la EEPROM de datos tiene un ciclo de 10ms que puede ser

excedido ocasionalmente los 10ms son típicos. para asegurar un ciclo.

• SUBRUTINA EN C//el banco 0 debe ser seleccionadovoid write_E2DAT(char dir, char data){

//Escritura de datosEEADR = dir;EEDATA = data;

27/03/2010 Ing. Germán Pereira Muñoz 45

set_bit(STATUS, RP0);set_bit(EECON1, WREN);EECON2 = 0x55;EECON2 = 0xaa;set_bit(EECON1, WR);while(EECON1&2); //VERIFICANDO SI TERMINO LA

ESCRITURAclear_bit(EECON1, WREN);clear_bit(STATUS, RP0);

}

Page 16: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 16

LECTURA DE LA EEPROM DE DATOSSUBRUTINA EN C

char read_E2DAT(char dir){

//Lectura de datosEEADR=dir;set_bit (STATUS, RP0);set_bit (EECON1, RD);clear_bit(STATUS, RP0);return(EEDATA)

}

27/03/2010 Ing. Germán Pereira Muñoz 46

Interrupción del Timer

• La Bandera T0IF se activa cuando el registro TMR0 cambia de FFh a 00h

27/03/2010 47Ing. Germán Pereira Muñoz

Interrupción del Timer

• La Bandera T0IF se activa cuando el registro TMR0 cambia de FFh a 00h

27/03/2010 48Ing. Germán Pereira Muñoz

Page 17: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 17

Interrupción del Timer

• Preescaler› El Preescaler puede usarse

para dividir la entrada por:2, 4, 8, 16, 32, 64, 128, o 256

27/03/2010 49Ing. Germán Pereira Muñoz

OPTION_REG REGISTER (ADDRESS 81h)

• bit 0 2 PS2 PS0: › Asignación Rango con el que actúa el Divisor de frecuencia

• bit 3 PSA: Asignación del divisor de frecuenciag› 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› 0: Activadas27/03/2010 50Ing. Germán Pereira Muñoz

INTCON REGISTER (ADDRESS 0Bh, 8Bh)

• bit 0 RBIF: flag de estado del Port B› 1:Cuando cambia de estado cualquier línea de PB (RB<7:4>). Se borra por software › 0:Ninguna entrada de PB ha cambiado

• bit 1 INTF: flag de estado de la interrupción externa INT› 1:La entrada de la interrupción se ha activado. Se borra por software › 0:No hay interrupción externa

• bit 2 T0IF: flag de rebosamiento del TMR0› 1: El TMR0 se ha desbordado. Se borra por software › 0: El TMR0 no se ha desbordado

• bit 3 RBIE: Activación de la interrupción del Port B› 1: Interrupción activada› 0: Interrupción desactivada

• bit 4 INTE: Activación de la interrupción externa INT› 1: Interrupción activada› 0: Interrupción desactivada

• bit 5 T0IE: Activación de la interrupción del TMR0› 1: Interrupción activada› 0: Interrupción desactivada

• bit 6 EEIE: Activación de la interrupción de la memoria EEPROM› 1: Interrupción activada› 0: Interrupción desactivada

• bit 7 GIE: Activación Global de Interrupciones› 1: Concedido el permiso de interrupciones› 0: No hay posibilidad de interrupciones27/03/2010 51Ing. Germán Pereira Muñoz

Page 18: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 18

Diagrama de TIMER0/WDT Preescaler

27/03/2010 52Ing. Germán Pereira Muñoz

Ejemplo Vector de Interrupción Timer

void interrupt( void ){

if((INTCON&4)==4){// SERVICIO DE LA INTERRUPCION DE TIMER0 // INICIALIZANDO EL VALOR DE AUTO RECARGA

TMR0=0xXX; // Valor recarga del TRM0// LIMPIANDO LA BANDERA DE INTERRUPCION DE TIMER

clear_bit(INTCON,T0IF);

Programa de usuario

}}

27/03/2010 53Ing. Germán Pereira Muñoz

Ejemplo Configuración de Interrupción Timer//--- Configuracion de puertos y de la respuesta a interrupciones. ---

set_bit( STATUS, RP0 );// COMO TIMER O CONTADOR

; TOCS = 0 -> Pulsos de reloj interno (Timer); TOCS = 1 -> Pulsos de reloj externo (CONTADOR) RA4/TOKS

COMO ENTRADA// SI ES COMO CONTADOR SELECCIÓN DE FLANCO DISPARO

; TOSE = 1 -> Incremento del TMR0 cada flanco de BAJADA;; TOSE = 0 -> Incremento del TMR0 cada flanco de ASCENDENTE

// ASIGNACION DE DIVISOR DE FRECUENCIA; PSA = 0 -> El divisor de frecuencias se le asigna al TMR0; PSA = 1 -> El divisor de frecuencias se le asigna al WDT

// CONFIGURACION DEL PREESCALER;POR EJ: PS2,PS1,PS0 = 101 -> Divisor de frecuencias = 1:64OPTION_REG = 0xXXXXXXX;

// CONFIGURACION DE PUERTOSclear_bit( STATUS, RP0 );

27/03/2010 54Ing. Germán Pereira Muñoz

Page 19: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 19

Habilitando Interrupción de Timer

// HABILITANDO INTERRUPCIONES

enable_interrupt( GIE ); // Habilitando todas las interrupcionesenable interrupt( TOIE ); //Habilitando la interrupcion_ p ( ); pTimer

// INICIALIZANDO EL VALOR DE AUTO RECARGATMR0=0xXX; // Valor de recarga del TRM0

27/03/2010 55Ing. Germán Pereira Muñoz

Calculo del Valor de RecargaTMR0=0xXX; // Valor de recarga del TRM0

Formula:N = 256 - t / ( 4 * Tosc * rango de divisor de frecuencias);

Calculo para generar 0.5 KHzTosc=4Mhz f=0.5 khz se calcula para todo el periodo f= 1khz

t= 0.002 s t= 0.001 s

N = 256 - 0.002 / ( 4 * 1/4000000 * 64) N 224 75 dN = 224.75 dN = 224d = E0h -> Valor de recarga TMR0=0xE0;

Comprobación del calculo

t = 4 * Tosc * (256-N) * rango de divisor de frecuenciast = 4 * 1/4000000 * (256-224) * 64t = 0.002048 s

f = 1/0.002048sf = 488.28125 hz = 0.488 khz

27/03/2010 56Ing. Germán Pereira Muñoz

Diagrama de bloque de WATCHDOG TIMER

27/03/2010 57Ing. Germán Pereira Muñoz

Page 20: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 20

Circuito de salidas básico con microcontrolador PIC16F84

• Materiales› Microcontrolador

PIC16F84A› Cristal de 4Mhz

P l d› Pulsador› Resistencia de 10K ¼ de

watt › 12 Leds› 12 Resistencias de ¼ de

watt

27/03/2010 58Ing. Germán Pereira Muñoz

Circuito de Entradas y Salidas Básico con Microcontrolador PIC16F84A

• Materiales› Microcontrolador PIC16F84A› Cristal de 4Mhz› 5 Pulsadores› 5 Resistencias de 10K ¼ de

watt › 8 Leds› 8 Resistencias de ¼ de watt

27/03/2010 59Ing. Germán Pereira Muñoz

Microcontrolador PIC16F628A

27/03/2010 60Ing. Germán Pereira Muñoz

Page 21: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 21

Memoria de Datos

PIC16F628A

27/03/2010 61Ing. Germán Pereira Muñoz

Microcontrolador PIC16F873

27/03/2010 62Ing. Germán Pereira Muñoz

Memoria de Datos

PIC16F873

27/03/2010 63Ing. Germán Pereira Muñoz

Page 22: Caracteristicas PIC16F8XX

Introduccion 3/27/2010

Ing German Pereira Muñoz 22

Microcontrolador PIC16F877

27/03/2010 64Ing. Germán Pereira Muñoz

Memoria de Datos

PIC16F877

27/03/2010 65Ing. Germán Pereira Muñoz