Zusammenfassung der Ressource
Microcontrolador
PIC18F4550
- 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;
- (3) Configuracion de
EUSART:TXSTAbits.SYNC =
0; TXSTAbits.TXEN = 1;
RCSTAbits.SPEN = 1
- PUERTO B
- 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
- TMR0=65535- (TFosc/4prescalador)