Sei sulla pagina 1di 3

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA


ESCUELLA DE INGENIERIA ELECTRONICA
MICROCONTROLADOR

LABORATORIO NRO04
TEMA: DESARROLLO DE SEMAFORO DIGITAL CON dsPIC30F4013

OBJETIVO:
Implementar un semáforo CON EL dsPIC30F4013 configurando el temporizador para encender
un led verde durante un tiempo determinado y luego un led rojo durante otro tiempo

FUNDAMENTO

El led rojo estará encendido durante 10 segundos, luego debe encenderse el led verde durante 10
segundos y así sucesivamente

Estos leds debe estar ubicado en los pines RD0 ( rojo) y RD1( verde)

Procedimiento

1. Realizar el esquema del circuito

2. Realizar el programa comentando cada instrucción para encender 10 segundos el led


verde y luego durante 10 segundos el led rojo y asi constantemente incluya los
cálculos para cargar el valor en el registro PR1 ( configurar el TIMER1 )

Se recomienda utilizar interrupción interna del timer para realizar el programa,en el control
de tiempo de 10seg con timer de 32 bits ( TMR2 yTMR3)

Nota: Adjuntar cálculos para temporizar 10seg

3. Realizar los cambios en el programa comentando cada instrucción del paso 2, para que el
peatón accione el interruptor conectado al pin 17 O RA11/INT0 y solicite que se ponga
en verde

Se recomienda utilizar interrupción externa INTO

4. En cada caso realizar un diagrama de flujo del programa

MSc. Jacob Astocondor Villar 2017 Bellavista-Callao


UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
ESCUELLA DE INGENIERIA ELECTRONICA
MICROCONTROLADOR

Indicación
Se propone el programa respectivo para su estudio e implementación
Previamente debe hacer la simulación y luego las pruebas con el dsPIC30F4013

.equ __p30f,4013
.include "p30F4013.inc"
.global __reset
.global __INT0Interrupt
.global __T3Interrupt

;******************************************************************
PRINCIPAL:
CLRWDT
GOTO PRINCIPAL
;********************************************************************************************

__INT0Interrupt:;****Interruption externa
;Ponemos el semaforo en rojo y comienza la secuencia
;del semáforo de nuevo.
DISI #3 ;deshabilitamos interrpciones
BCLR IFS0,#0 ;borramos el flag de interrpcion
MOV #0x0001,W0 ;ponemos a rojo el semaforo
MOV W0,PORTD ;moviendo a uno el PORTD
CLR TMR2 ;Borramos el temporizador
CLR TMR3 ;para que empiece de nuevo
RETFIE ;devolvemos el control al programa principal
;**************************************************
__T3Interrupt:
BCLR IFS0,#7 ;Borramos el flag T3IF de activación de la interrupción
BTSS PORTD,#0 ; si el semaforo esta en verde
GOTO ROJO ; lo ponemos en rojo
VERDE: ; y en caso contrario
MOV #0x0002,W0 ; lo ponemos en verde
MOV W0,PORTD ; en los leds conectados al PORTD
GOTO FINAL
ROJO:
MOV #0x0001,W0
MOV W0,PORTD
FINAL:
RETFIE ;Retorno de la interrupción

;***********************************************************
__reset:
;Inicialización del puerto D
CLR PORTD ; inicializamos el puerto A
MOV #0xFCF0, W0 ; como salida RD0 y RD1
MOV W0, TRISD ; configurando TRISD
MOV #0x0001,W0 ; ponemos el semaforo
MOV W0,PORTD ; en ROJO moviendo 1 al PORTA
MOV #0X00FF,W0
MOV W0,TRISA
CLR W0

MSc. Jacob Astocondor Villar 2017 Bellavista-Callao


UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
ESCUELLA DE INGENIERIA ELECTRONICA
MICROCONTROLADOR

; Configuración de interrupción externa INT0


MOV #0x0001, W0 ; activamos la interrupcion esterna
MOV W0, IEC0 ; INT0 de del pin RA11
; Inicialización del Timer
CLR T2CON ;Para cualquier operación con Timers
CLR T3CON ;
CLR TMR3 ; Borra el contenido del temporizador TMR3
CLR TMR2 ; Borra el contenido del temporizador TMR2
MOV #0x0010,W0 ;Inicializamos el temporizador con
MOV W0,PR3 ;el valor 0x00A00000 (10 segundos aprox)
MOV #0x0000,W0 ;PR3 = 00A0
MOV W0,PR2 ;PR2 = 0000
BSET IPC1, #12 ;Activamos flag T3IP = 001
BCLR IPC1, #13 ; Nivel de prioridad 1
BCLR IPC1, #14 ;
BCLR IFS0, #7 ; Borramos el flag de interrupción del Timer3
BSET IEC0, #7 ; Habilita interrupciones del Timer 3
BSET T2CON,#3 ;Flag T32 = 1 . Habilitamos Timer 32 bits
BSET T2CON,#15 ;Comienza el temporizador ocn preescaler 1:1
; y fuente del reloj el ciclo de instrucción
;***********************************************************************************************
.end

MSc. Jacob Astocondor Villar 2017 Bellavista-Callao

Potrebbero piacerti anche