Está en la página 1de 2

P1.

- (5 puntos)
Debido a un accidente de circulación se han colocado cuatro señales luminosas a
cada lado de la calzada para que sirvan de advertencia a los conductores que
circulan por esa ruta (ver figura). El control del encendido/apagado se realiza
mediante un microcontrolador dsPIC33FJ32MC202 y unos drivers conectados a los
terminales del puerto B, como indica la figura.
 El sistema debe arrancar con todas las lámparas apagadas. Al apretar el
pulsador conectado a RA4, debe comenzar la siguiente secuencia de luces:
L0, L2, L4, L6, L1, L3, L5 y L7, es decir, primero las de la derecha y luego las
de la izquierda. Al finalizar la secuencia, el ciclo debe repetirse
indefinidamente. El oscilador es XT de 4 MHz y el ciclo completo debe durar
(más o menos) 1 segundo.
Se pide:

a) Escriba el programa en lenguaje C

#include <xc.h>
#include"p33fj32mc202.h"
#include "config.h"
#include "reloj.h"
#include <libpic30.h>
//Función principal
int main(){
AD1PCFGL=0XFFFF; // Se pone a todos los pines como DIGITALES
TRISB=0x0000; //Ponemos a los pines de B como salida
PORTB=0x0000; // en puertoB 0 V.AL
TRISA=0XFFFF; // Pones a los PINES "A" como entrada
while(1){ //iniciamos ciclo infinito
if(PORTAbits.RA4==0){
PORTB=0b00000000;
__delay_ms(500);

PORTB=0b00000001;
__delay_ms(500);
PORTB=0b00000101;
__delay_ms(500);
PORTB=0b00010101;
__delay_ms(500);
PORTB=0b01010101;
__delay_ms(500);
PORTB=0b01010111;
__delay_ms(500);
PORTB=0b01011111;
__delay_ms(500);
PORTB=0b01111111;
__delay_ms(500);
PORTB=0b11111111;
__delay_ms(500);

}
else{
PORTB=0X0000;
}
}
}
b) Hacer el esquema ( circuito ) completo dejando listo para operar

También podría gustarte