Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Programa ASM de un semáforo:

__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOREN_OFF


& _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF &
_FOSC_INTRC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF;
LIST P=16F887
INCLUDE "P16F887.INC"
;ASIGNACION DE VARIABLES---------------------------
CONTADOR1 EQU 0X0C ; Registro auxiliar
CONTADOR2 EQU 0X0D
CONTADOR3 EQU 0X0F
;INICIO DEL PROGRAMA ---------------------------
ORG 0x00
OTO INICIO

;SETEO DE PUERTOS ------------------------------------


INICIO
CLRF CONTADOR1
CLRF CONTADOR2
CLRF CONTADOR3
BANKSEL PORTA;
CLRF PORTA;

BANKSEL ANSEL;
CLRF ANSEL; DIGITAL I/O

BANKSEL TRISA;
MOVLW b'11111111'; PORT A ENTRAD
MOVWF TRISA;
BANKSEL PORTC
CLRF PORTC ;

BANKSEL TRISC;
MOVLW b'00000000';
MOVWF TRISC; CLRF RISC
BANKSEL PORTD
CLRF PORTD;

BANKSEL TRISD ;
MOVLW b'00000000'
MOVWF RISD;

;PARTE PRINCIPAL DEL PROGRAMA ------------------------


ONOFF
BANKSEL PORTA
BTFSC PORTA,5 ;PREGUNTO POR BOTON PREGUNTO SI RA5 ==0 ES CERO
GOTO ONOFF; FALSO NO ES CERO RA3==1
SWITCH
BANKSEL PORTA
BTFSS PORTA,3 ; RA3==1
GOTO MODO_NOCHE ; FALSO RA3==0
GOTO MODO_DIA ; VERDAD RA3==1

MODO_DIA
BSF PORTC,1; ROJO PRINCIPAL
BSFPORTC,5;PASO PEATON PRINCIPAL
BSF PORTD,2;VERDE SECUNDARIA
BSF PORTD,3;ALTO PEATON SECUNDARIA
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC;PRINCIPAL
CLRF PORTDSECUNDARIA
BSF PORTC,1;ROJO
BSF PORTC,5;PASO PEATON PRINCIPAL
BSF PORTC,2;AMARILLO
BSF PORTC,5PASO PEATON PRINCIPAL
BSF ORTD,3;ALTO PEATON SECUNDARIA
BSF PORTD,1;AMARILLO SECUNDARIA
BSF PORTD,3;ALTO PEATON SECUNDARIA
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
BSF PORTC,3 ;VERDE
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
BSF PORTD,0;ROJO
BSF PORTD,4 ;PASO PEATON SECUNDARIA
BSFPORTC,4 ;ALTO PEATON PRINCIPAL
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
BSF PORTC,2;AMARILLO PRINCIPAL
BSF PORTC,4 ;ALTO PEATON PRINCIPAL
BSF PORTD,4 ;PASO PEATON SECUNDARIA
BSF PORTD,0;ROJO SECUNDARIA
BSF PORTD,1 ;AMARILLO SECUNDARIA
BSF PORTD,4;PASO PEATON SECUNDARIA
BSF PORTC,4;ALTO PEATON PRINCIPAL
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1
CLRF PORTC
CLRF PORTD
GOTO SWITCH
MODO_NOCHE
BSF PORTC,1; ROJO PRINCIPAL
BSF PORTC,5; PASO PEATON PRINCIPAL
BSF PORTD,1; AMARILLO SECUNDARIA
BSF PORTD,3; ALTO PEATON SECUNDARIA
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
BCF PORTC,1;PRINCIPAL
CLRF PORTC
CLRF PORTD
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
CALL RETARDO_400MS
GOTO SWITCH
RETARDO_400MS
MOVLW 0X0
MOVWF CONTADOR1
MOVLW 0X08
MOVWF CONTADOR2
MOVLW 0X08
MOVWF CONTADOR3
RETARDO1
DECFSZ CONTADOR1,F
GOTO RETARDO1
DECFSZ CONTADOR2,F
GOTO RETARDO1
DECFSZ CONTADOR3,F
GOTO RETARDO1
RETURN
END

You might also like