Está en la página 1de 4

LABORATORIO DE MICROCONTROLADORES Y SISTEMAS EMBEBIDOS

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA DE INGENIERIA ELECTRONICA

LECTURA Y ESCRITURA EN PUERTOS DIGITALES DEL dsPIC33Fxxxxxx


TITULO:

DISEÑO Y SIMULACION DE SISTEMA DE CONTROL DE SEMAFORO DIGITAL CON


dsPIC33FJ32MC204

Objetivo.
Diseñar y desarrollar un programa utilizando el dsPIC33FJ32MC204 que emule el
funcionamiento de los semáforos del crucero vial que se muestra en la Fig1.

FUNDAMENTO
En este cruce vial se tienen cuatro semáforos, dos para la avenida principal y dos para la avenida
secundaria.

Fig. 1 Cruce vial.

Ambas avenidas son de doble sentido, las vueltas son prohibidas por lo que el recorrido solo
puede ser recto.
Las siguientes condiciones describen el funcionamiento de los semáforos:
 Mientras los semáforos S1 y S3 de la avenida principal, se encuentran en “siga” (verde),
los semáforos S2 y S4 de la avenida secundaria, se encontrarán en “alto” (rojo).
Los semáforos S2 y S4 se mantienen en rojo aun cuando los semáforos S1 y S3 cambien
a “preventivo” (amarillo).
 Cuando cambien a “alto” los semáforos S1 y S3, los semáforos S2 y S4 estarán en “siga”,
manteniéndose así mientras S1 y S3 pasen a “preventivo”.
 Finalmente se repite el ciclo indefinidamente.
Asumiendo que el flujo vehicular de la avenida principal es mayor que el de la avenida
secundaria, se establece:
 que el tiempo en verde de los semáforos S1 y S3 (de la avenida principal) debe ser
mayor al tiempo en verde de los semáforos S2 y S4 (de la avenida secundaria).

Del análisis del funcionamiento de los semáforos de un crucero se obtiene la Tabla 1:

Tabla 1. Comportamiento de los semáforos. Análisis de las condiciones de cada semáforo.

PROCEDIMIENTO
1. Desarrollo del diagrama de flujo
El diagrama de flujo es una representación gráfica de un proceso.
Ofrece una descripción visual de las actividades implicadas en un proceso, mostrando la relación
secuencial ente ellas.

Dr. Ing. JACOB ASTOCONDOR VILLAR 1


LABORATORIO DE MICROCONTROLADORES Y SISTEMAS EMBEBIDOS

En la Fig. 2 se presenta el diagrama de flujo del programa desarrollado para el


PROYECTO.

Como se puede observar al inicio del diagrama de flujo se configura el programa, mediante el
llamado de las librerías y los encabezados.
Una de las librerías a utilizar en este programa es la función Delay, a través de la cual se definirá
el tiempo de retardo.
Posteriormente se habilita el puerto B para conectar cada uno de los LED que emularan el
comportamiento del semáforo.
En el siguiente paso se definen los bits de salida para cada semáforo según las condiciones
descritas en la Tabla 1, agregando el tiempo para cada condición. El tiempo de duración de cada
una de las condiciones es implementado mediante la función Delay.
El diagrama de flujo de la función se muestra en la Fig. 2 . Como se puede observar la función
DELAY trabaja a una frecuencia de oscilación de 4MHz porque todo dispositivo Microchip (PIC,
DSPIC) se ejecuta en 4 instrucciones de reloj. Esta función es definida en un archivo aparte, ser
llamada las veces necesarias, como si fuera una librería.

Fig2 Diagrama de Flujo

2. Circuito a implementar para simular:

R2
10k

U1
1 4
MCLR RB0/CN4/RP0/C2IN-/AN2/EMUD1/PGD1
20 5
VCAP/VDDCORE RB1/CN5/RP1/C2IN+/AN3/EMUC1/PGC1
6
RB2/CN6/RP2/AN4
R3 2
RA0/CN2/VREF+/AN0 RB3/CN7/RP3/AN5
7
10k 3 11
RA1/CN3/VREF-/AN1 RB4/CN1/RP4/SOSCI
9 14
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
17
RB8/CN22/RP8/SCL1/PWM2H1/TCK
18
RB9/CN21/RP9/SDA1/PWM2L1/TDO
21
RB10/CN16/RP10/PWM1H3/TDI/EMUD2/PGD2
22
RB11/CN15/RP11/PWM1L3/TMS/EMUC2/PGC2
23
RB12/CN14/RP12/PWM1H2
24
RB13/CN13/RP13/PWM1L2
28 25
AVDD RB14/CN12/RP14/PWM1H1
27 26
AVSS RB15/CN11/RP15/PWM1L1
DSPIC33FJ32MC202

D12D11D10D9 D8 D7 D6 D5 D4 D3 D2 D1
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
. . .

R1
100

Dr. Ing. JACOB ASTOCONDOR VILLAR 2


LABORATORIO DE MICROCONTROLADORES Y SISTEMAS EMBEBIDOS

3. Desarrollo del programa


A continuación se presenta el código del programa del ejemplo

/*
* File: PROYECTO DE: semaforo1.c
* Author: ASTOCONDOR VILLAR JACOB
* Created on 26 de mayo de 2020, 08:38 AM
*/

#include <xc.h>
#include"p33fj32mc202.h"
#include "config1.h"
#include "reloj.h"
#include <libpic30.h>

//Función principal
int main()
{

AD1PCFGL=0XFFFF; //
TRISB=0x0000;
PORTB=0x0000;
TRISA=0XFFFF;
while(1) //iniciamos ciclo infinito
if(PORTAbits.RA0==0)
{
/*b0=verde; b1=amarillo; b2=rojo; b3=verde; b4=amarillo; b5=rojo
b6=verde; b7=amarillo; b8=rojo; b9=verde; b10=amarillo
b11=rojo
Se da la condición de cada puerto
*/
{
//S1
PORTB=0b100001100001;
__delay_ms(8000);

//S3
PORTB=0b100010100010;
__delay_ms(4000);
//S2
PORTB=0b001100001100;
__delay_ms(4000);

//S4
PORTB=0b010100010100;
__delay_ms(4000);
}
}
else {PORTB=0X0000;
}
}

Archivos a incluir en el programa:


1. archivo

config1.h

// DSPIC33FJ32MC204 Configuration Bit Settings


// 'C' source line config statements
// FOSC
/********Configuration Fuses************ */
//FPOR
#pragma config PWMPIN = ON
#pragma config HPOL = ON
#pragma config LPOL = ON
#pragma config ALTI2C = OFF

Dr. Ing. JACOB ASTOCONDOR VILLAR 3


LABORATORIO DE MICROCONTROLADORES Y SISTEMAS EMBEBIDOS

#pragma config FPWRT = PWR128


// FWDT
#pragma config WDTPOST = PS32768 // Watchdog Timer Postscaler bits (1:32,768)
#pragma config WDTPRE = PR128 // Watchdog Timer Prescaler bit (1:128)
#pragma config WINDIS = OFF // Watchdog Timer Window Enable bit
#pragma config FWDTEN = OFF // Watchdog Timer Enable bit
// FOSC
#pragma config POSCMD = HS // Primary Oscillator Mode Select bits (HS )
#pragma config OSCIOFNC = OFF // OSC2 Pin Function bit (OSC2 is clock output)
#pragma config IOL1WAY = ON // Peripheral pin select configuration
#pragma config FCKSM = CSDCMD // Clock Switching Mode bits
// FOSCSEL
#pragma config FNOSC = PRIPLL // Oscillator Source Selection
#pragma config IESO = OFF // Two-speed Oscillator Start-up Enable bit

#include <xc.h>

2. Archvio:
Reloj.h

#define FCY 4000000


#define BAUDRATE 9600
#define BRGVAL ((FCY/BAUDRATE)/16)-1

Dr. Ing. JACOB ASTOCONDOR VILLAR 4

También podría gustarte