Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SISTEMAS EMBEBIDOS
PUERTOS : CONFIGURACION-PROGRAMACION
SESION02
PUERTOS O Entradas/salidas digitales en el dsPIC33FJ32MC202
Registro TRISx
Registro PORTx
Registro LATX
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
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
2
SW 1
Poniendo a 1 el pin será digital IN T E R R U P T O R
1
AD1PCFGL = 0XFFFF;// todos los pines son digital
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
Fosc=8MHZ
Fcy= Fosc/2= 4MHZ
Tcy= 1/4000000=0.25uC
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).
El registro de selección de fuente de oscilador (FOSCSEL) selecciona la fuente de oscilador inicial y opción de
puesta en marcha.
El registro de selección
(FOSCSEL <2: 0>) determina la
fuente de reloj que se utiliza
en un POR.