Está en la página 1de 14

MICROCONTROLADORES Y

SISTEMAS EMBEBIDOS
PUERTOS : CONFIGURACION-PROGRAMACION
SESION02
PUERTOS O Entradas/salidas digitales en el dsPIC33FJ32MC202

RA4 RA3 RA2 AN1/RA1 AN0 /RA0


PUERTO A

AN9/ AN10/ AN11/ AN12/ RB11 RB10 RB9 RB8


RB15 RB14 RB13 RB12 PUERTO B
RB7 RB6 RB5 RB4 AN5/RB3 AN4/RB2 AN3/RB1 AN2/RB0

ANx/RAx= PIN ANALOGICO Y DIGITAL


ANx/RBx PIN ANALOGICO Y DIGITAL 10 CANALES ANALOGICOS
CONFIGURACION DE PUERTOS
Cada puerto tiene tres registros denominado

Registro TRISx

Registro PORTx

Registro LATX

X= indica cualquiera de los puertos A o B

TRISX
Este registro sirve para indicar si un pin va a ser salida o entrada.
Un 0 en un bit de este registro indica que el pin correspondiente es una salida.
Un 1 indica que el pin es entrado.

PORTX
Con este registro nos comunicamos con el exterior.
Al leer el registro leemos un 0 si la tensión en la entrada está a nivel bajo y un 1 si la tensión está a nivel alto
LATX
Este es un registro que no existía en otros micros, y podemos realizar programas sin
utilizarlo.
Este registro es el LATCH de salida. Una escritura en PORTX y en LATX hacen exactamente
lo mismo, escriben en el LATCH y si está configurado como salida, el valor aparece en el
pin de salida

TRISB = 0b1111000011110101;
 Los pines RB15, RB14 y RB13 . Los configuramos como entradas, pero podemos también
configurarlos como salidas
 Los pines RB11, 10, 9, 8, 3 y 1 son entradas y salidas Los pines RB12, 7, 6, 5, 4, 2 y 0 son
entradas

LATB = 0b1010101000111100;
 A los pines que son entradas o que no existen no les pasa nada . Los pines salidas si que
serán afectados:
Otras funciones: para manejar un bit

TRISAbits.TRISA0 = 1;// se pone a 1 el bit RA0 entrada

_TRISA0 = 1; // se pone a 1 el bit RA0 entrada

TRISA=0x0001; // SE PONE A RA0 A 1 ; EL RESTO A 0 NUMERACION EN HEXADECIMAL

TRISA= 0b00000000000001;// Se pone a 1 el bit RA0 y el resto a 0 NUMERACION BINARIA

1. EJERCICIO :
¿CONFIGURAR EL PIN RA1 COMO ENTRADA Y EL PIN RB5 COMO SALIDA DE DATOS PARA DATOS DIGITALES ?
SE PIDE ESCRIBIR LAS FUNCIONES

SOLUCION
TRISAbits.TRISA1=1; // PIN RA1  ENTRADA
TRISBbits.TRISB5=0; // PIN RB5 SALIDA
O’
__TRISA1=1;
__TRISB5=0;
CONFIGURAR PINES DIGITALES + 3 .6 V

DSPIC33FJ32MC202
R 1
El registro AD1PCFGL de 16 bits es para configurar que 10K

Pines será digital o analógico: RA1 RB5 D 1


LED

2
SW 1
Poniendo a 1 el pin será digital IN T E R R U P T O R

Poniendo a 0 el pin será analógico

1
AD1PCFGL = 0XFFFF;// todos los pines son digital

AD1PCFGL=0xFFFE;// 0b1111 1111 1111 1110


CONTROL DE LED : ENCENDIDO Y
#include "xc.h"
APAGADO #include <stdio.h>
#include <stdlib.h>
name.c
#include <p33FJ32MC202.h>
#define FOS 4000000UL //4 MHz
incluir directivas #define FCY FOS/2 //velocidad 2MIPS
declaracion de variables #include <libpic30.h>
configuracion de palabra

int main(void )
{
AD1PCFGL = 0XFFFF;
RA1=0
NO TRISAbits.TRISA1 = 1;
TRISBbits.TRISB5 = 0;
SI
LATBbits.LATB5 = 0;
RB5=1
while (1) {
if (PORTAbits.RA1 == 0) {
LLAMAR PORTBbits.PORTB5 = 1; //led encendido
RETARDO __delay_ms(3000);
PORTBbits.PORTB5=0; // LED APAGADO
RB5=0
}else{
LATBbits.LATB5 = 0;
}
LLAMAR
RETARDO }
return (EXIT_SUCCESS);
}
APLICACIÓN: CONTROL DE ILUMINACION PARA AVENIDA
+3.6v

R1
10k
CONTROL DE ILUMINACION
+3.6V U1
1 4
MCLR RB0/CN4/RP0/C2IN-/AN2/EMUD1/PGD1
20 5
VCAP/VDDCORE RB1/CN5/RP1/C2IN+/AN3/EMUC1/PGC1
R2 RB2/CN6/RP2/AN4
6
10k 2 7
RA0/CN2/VREF+/AN0 RB3/CN7/RP3/AN5
3 11
RA1/CN3/VREF-/AN1 RB4/CN1/RP4/SOSCI
9 14

1
RA2/CN30/CLKI/OSCI RB5/CN27/RP5/ASDA1/EMUD3/PGD3
10 15
RA3/CN29/CLKO/OSCO RB6/CN24/RP6/ASCL1/EMUC3/PGC3
12 16
RA4/CN0/T1CK/SOSCO RB7/CN23/RP7/INT0
X1 17 D1
2
RB8/CN22/RP8/SCL1/PWM2H1/TCK
8MHZ 18 LED-YELLOW
RB9/CN21/RP9/SDA1/PWM2L1/TDO

2
21
RB10/CN16/RP10/PW M1H3/TDI/EMUD2/PGD2
22
RB11/CN15/RP11/PWM1L3/TMS/EMUC2/PGC2
23
RB12/CN14/RP12/PWM1H2
LDR1 RB13/CN13/RP13/PWM1L2
24 R3
28 25 100
AVDD RB14/CN12/RP14/PWM1H1
1

TORCH_LDR 27 26
AVSS RB15/CN11/RP15/PWM1L1
DSPIC33FJ32MC202

ENUNCIADO: Cuando se tiene energía luminosa el led debe 1. REALIZAR EL DIAGRAMA DE FLUJO DEL PROGRAMA
estar En estado apagado . 2. ESCRIBIR LAS INSTRUCCIONES DEL PROGRAMA
cuando no hay energía luminosa el led Debe estar 3. REALIZAR PRUEBA EN EL SOFTARE PROTEUS
encendido
dsPIC33F – El OSCILADOR

El oscilador  podemos llamar,


el conjunto de osciladores, de
acuerdo al esquema dispone
de un montón de alternativas
para hacer funcionar el corazón
del dsPIC33F
La fuente del reloj del sistema (FOSC) se puede proporcionar mediante una de las siguientes
opciones:

• Oscilador primario (P OSC) en los pines OSC1 y OSC2


• Oscilador secundario (S OSC) en los pines SOSCI y SOSCO
• Oscilador RC rápido interno (FRC) con divisor de reloj opcional
• Oscilador RC interno de baja potencia (LPRC)
• Oscilador primario con PLL
• Oscilador RC interno rápido con PLL

Fosc=8MHZ
Fcy= Fosc/2= 4MHZ
Tcy= 1/4000000=0.25uC
REGISTROS DE CONFIGURACIÓN DEL OSCILADOR

REGISTROS DE CONFIGURACIÓN DEL OSCILADOR

La Tabla 1 enumera los ajustes de configuración que seleccionan la fuente del oscilador del dispositivo y el
modo en Power-on Reset (POR).

Los bits de configuración están contenidos en estos registros:


• FOSCSEL: Registro de selección de fuente de oscilador

El registro de selección de fuente de oscilador (FOSCSEL) selecciona la fuente de oscilador inicial y opción de
puesta en marcha.

• FOSC: Registro de configuración del oscilador


El registro de configuración del oscilador (FOSC) configura el modo del oscilador primario, OSC2 función de
pin, selección de pin periférico y los modos de conmutación de reloj y a prueba de fallas.
tabla1

La selección inicial de la fuente


del oscilador (FNOSC <2: 0>) Bits
de configuración en la fuente del
oscilador

El registro de selección
(FOSCSEL <2: 0>) determina la
fuente de reloj que se utiliza
en un POR.

También podría gustarte