Arquitectura HARVARD:
Alta velocidad de
procesamiento
Bus de Datos
Bus de Programa
Registro de Datos
Registros de 8 Bits
Hasta 2048 Bytes
Memoria de Programa
Palabras de 16 Bits
Hasta 32768 Bytes
PUERTO A
7 Pines configurables
de entrada o salida:
RA0, RA1, RA2, RA3,
RA4, RA5 y RA6
Funcion TRISA se
pueden establecer todo el
"PUERTO" como entrada (1) o
salida (0) por ejemplo TRISA=0x0
Funcion TRISAbit.RA0, define un "PIN"
como entrada (1) o salida (0) ,
despues del punto se define el pin
especifico
RA0, RA1, RA2 y RA3, se
pueden utilizar como
entradas analogicas para
conversion ADC
Funcion ADCON1 configura las
entradas analogicas, en conjunto
con la funcion TRISAbit, se define
el pin especifico. una vez
configurado es necesario activarlo
ADCON0bits.ADON=1;
PUERTO C
8 Pines configurables de
entrada o salida: RC0, RC1,
RC2, RC3, RC4, RC5,RC6 Y RC7
Funcion TRISC se pueden
establecer todo el
"PUERTO" como entrada
(1) o salida (0) por
ejemplo TRISC=0x0
Funcion TRISCbit.RC0, define un
"PIN" como entrada (1) o salida (0) ,
despues del punto se define el pin
especifico
RC1 Y RC2, Pueden configurarse
como PWM CCP2 y CCP1
respectivamente
Para un PWM, es necesario
completar los siguientes pasos:
(1) Configurar Timer, (2)
Configurar Modulo CCP, (3)
Configurar la Salida, (4)
Configurar ciclo de trabajo
(2) Configurar Modulo CCP
CCP1CONbits.CCP1M=0b1111;
(1) Configurar Timer,
Se requiere configurar el
timer preescalador a 16 bits
T2CONbits.T2CKPS=0b11
Activacion de
Temporizador
T2CONbits.TMR2ON=1;
(3) Configurar la Salida
TRISCbits.RC2=0;
(4) Ciclo de Trabajo
CCPR1L=duty_H;
duty=1023*(duty_cycle/100);
Modulacion por ancho de pulso,
permite emular señales
analogica en base al ciclo de
trabajo en %
RC6 y RC7, pueden
configurarse como
EUSART, para comunicacion Serial
Se requiere:
(1) configuracion de Pins,
(2) configuracion de
velocidad de baudios, (3)
Configuracion de EUSART
Configuracion de Pin con Uso
de Funcion TRISCbits.RC6-7
(2) configuracion de velocidad de
baudios, SPBRG = 25 y
TXSTAbits.BRGH = 1;
8 Pines configurables
de entrada o salida:
RB0, RB1, RB2, RB3,
RB4, RB5, RB6 Y RB7
Funcion TRISB se pueden
establecer todo el "PUERTO"
como entrada (1) o salida (0)
por ejemplo TRISB=0x0
Funcion TRISBbit.RB0,
define un "PIN" como
entrada (1) o salida (0) ,
despues del punto se
define el pin especifico
RB0, RB1 y RB2, pueden
ser habilitados como
INTERRUPCIONES INT0,INT1
e INT2 respectivamente
Con los registros RCON • INTCON •
INTCON2 • INTCON3 • PIR1, PIR2 • PIE1,
PIE2 • IPR1, IPR2 se pueden configurar el
comportamiento de la interrupcion
INTCON es el principal, habilita de manera
global las interrupciones en el PIC
(INTCON.GIE) y tiene facultad para
interrupciones especificas, asi como de
perifericos INTCONbits.PEIE=1
INTCON2, expande la configuracion
para deteccion de flancos o en
modos de bajo consumo. Por
ejemplo INTCON2bits.INTEDG1=0, la
interrupcion se activa al detectar
una transicion de alto a bajo
INTCON3, se utiliza para
configurar la prioridad de la
interrupción, por ejemplo
INTCON3bits.INT1IP = 1, define
una prioridad alta en el pin
INT1, IP=internall priority
PUERTO D
8 Pines configurables
de entrada o salida:
RD0, RD1, RD2, RD3,
RD4, RD5, RD6 Y RD7
Funcion TRISD se
pueden establecer
todo el "PUERTO"
como entrada (1) o
salida (0) por
ejemplo TRISD=0x0
Funcion TRISDbit.RD0, define
un "PIN" como entrada (1) o
salida (0) , despues del punto
se define el pin especifico
PUERTO E
4 Pines configurables
de entrada o salida:
RE0, RE1, RE2, RE3
Funcion TRISE se pueden
establecer todo el
"PUERTO" como entrada
(1) o salida (0) por
ejemplo TRISE=0x
Funcion TRISEbit.RD0, define un
"PIN" como entrada (1) o salida (0) ,
despues del punto se define el pin
especifico
OSCILADOR /
RELOJ
El oscilador o reloj en un
microcontrolador es una señal
periódica que se utiliza para
sincronizar las operaciones del
microcontrolador. La fuente de
la señal puede ser interna o
externa
Interna
Aplicaciones Generales
Funciones de configuracion de reloj
interno: INTHS , INTXT ,
INTIO y INTCKO
Externa
Aplicaciones con
requerimientos de
Precisión y Estabilidad
Funciones de configuracion de reloj
Externo: XT , XTPLL , HS , HSPLL , EC, ECIO ,
ECPLL , ECPIO
Configuracion
utilizando Cristal de
4MHz
En el PLL con preescalador,
se selecciona sin
preescalamiento ya que la
señal es de directamente 4MHz
Postescalador de
Divide entre 2 con la opcion OSC1_PLL2, para
obtener la frecuencia
maxima de 48MHz
Opcion de XTPLL_XT, Para
definir oscilador externo con
PLL habilitado
PERRO GUARDIAN
Es un Contador que se utiliza para supervisar el
funcionamiento del microcontrolador. La función de
un "perro guardián" es reiniciar el PIC si
detecta que el programa se ha bloqueado
WDTCONbits.SWDTEN = 1 este
codigo Habilita el perro
guardian
dentro de un bucle While,
la siguiente instruccion
notifica al perro guardian
del funcionamiento del
programa ClrWdt();
TIMERS O CONTADORES
4 TIMERS PRINCIPALES
TIMER0
Temporizador de 8 bits, modos
de temporización y conteo. Se
utiliza para retrasos generales
TIMER1
*Temporizador de 16 bits,
*modo temporizacion y
conteo, *PWM
TIMER2
*Temporizador de 8 bits,
*modo temporizacion y
conteo, *PWM
TIMER3
*Temporizador de 16
bits, *modo
temporizacion y
conteo, *PWM
Configuracion registro T0CON
T0CS , onfigura el Timer0
para que utilice una fuente
de reloj interna
T08BIT, Configura el
Timer0 en modo de 16
bits
PSA, Asigna un
preescalador
(prescaler) al
Timer0.
T0PS, Configura el
preescalador para
dividir la
frecuencia de reloj
por 256.
TMR0, Carga un valoren el registro
de Timer0 . Este valor determinará el
período de tiempo antes de que el Timer0 se
desborde y genere una interrupción