semafaro msp

374 palavras 2 páginas
#include "msp430x14x.h" RSEG IDATA0 ASEG 01100H
RESET Mov #0A00H,SP
SetupWDT Mov #WDTPW+WDTHOLD,&WDTCTL

;----Configuração Das Portas P2 e P4-----

BIS.B #0XFF,P4DIR ;gera nível lógico alto em todos os bits da porta P4 BIS.B #0XFF,P2DIR ;gera nível lógico alto em todos os bits da porta P2

;----Programa Semáforo----- BD_VERMELHO MOV.B #0X30,P1OUT ;sinais vermelhos de B/D em nível alto MOV.B #0XC0,P4OUT CALL #TEMP2 ; rotina de temporização JMP AC_AMARELO ; ;loop para sub-rotina sinal amarelo

BD_AMARELO MOV.B #0X8A,P1OUT ;sinais amarelos de B/D em nível alto MOV.B #0X20,P4OUT CALL #TEMP1 ; rotina de temporização JMP BD_VERMELHO ; ;loop para sub-rotina sinal amarelo

BD_VERDE MOV.B #0X86,P1OUT ;sinais verdes de B/D em nível alto MOV.B #0X10,P4OUT CALL #TEMP2 ; rotina de temporização JMP BD_AMARELO ; ;loop para sub-rotina sinal amarelo

AC_VERMELHO MOV.B #0X86,P1OUT ;sinais vermelhos de A/C em nível alto MOV.B #0X10,P4OUT CALL #TEMP2 ;rotina de temporização JMP BD_AMARELO ;loop para sub-rotina sinal amarelo

AC_AMARELO MOV.B #0X51,P1OUT ;sinais amarelos de A/C em nível alto MOV.B #0X40,P4OUT CALL #TEMP_1 ;rotina de temporização JMP AC_VERMELHO ;loop para sub-rotina sinal amarelo

AC_VERDE MOV.B #0X30,P1OUT ;sinais verdes de A/C em nível alto MOV.B #0XC0,P4OUT CALL #TEMP2 ; rotina de temporização JMP BD_AMARELO ;loop para sub-rotina sinal amarelo

TEMP_2 MOV #10000,R6 ;referência do multiplicador
TEMP_MENOR
MOV #150,R5 ;referência do multiplicando
TEMP_MAIOR
DEC R5 ;decrementa referência multiplicando JNZ TEMP_MAIOR ;se não for zero, continuará decrementando DEC R6 ;decrementa

Relacionados