Buscar

AULA 06 SEMÁFORO RENATA MERCANTE

Prévia do material em texto

SEMÁFORO COM 
PIC16F628A
Fazer um programa em Assembly do PIC 16F628A que ligue 3 leds verde, amarelo e vermelho sendo que os 
leds verde e vermelho por 10 segundos e o led amarelo por 5 segundos.
Início do programa configuração de TRISA e TRISB:
TRISA = 0x00
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
0 0 0 0 0 0 0 0
TRISB = 0x00
RA
7
RA
6
RA
5
RA
4
RA
3
RA
2
RA
1
RA
0
0 0 0 0 0 0 0 0
8 4 2 1 8 4 2 1
Como não foi dita a frequência, então o padrão é 4MHz.
PROGRAMA ESQUELETO
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
Como não foi dita a frequência, então o padrão é 4MHz.
INICIO
;VERDE
BSF PORTA, 0
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 0
;AMARELO
BSF PORTA, 1
CALL DELAY ; 5s
BCF PORTA, 1
;VERMELHO
BSF PORTA, 2
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 2
GOTO INICIO
TDELAY ≅ 255· 255 · X· 3µ = 5s
TDELAY ≅ 0,2 . X = 5
X = 5/0,2 X = 25
25 16
9 1 (0x19)
TDELAY ≅ 255 . 255 . 25 . 3µ = 5s
Como não foi dita a frequência, então o padrão é 4MHz.
DELAY
MOVLW 0x19
MOVWF 0x20
VSET1
MOVLW 0xFF
MOVWF 0x21
VSET2
MOVLW 0xFF
MOVWF 0x22
LOOP
DECFSZ 0x22
GOTO LOOP
DECFSZ 0x21
GOTO VSET2
DECFSZ 0x20
GOTO VSET1
RETURN
END
Como não foi dita a frequência, então o padrão é 4MHz.
DELAY
MOVLW 0x19
MOVWF 0x20
VSET1
MOVLW 0xFF
MOVWF 0x21
VSET2
MOVLW 0xFF
MOVWF 0x22
LOOP
DECFSZ 0x22
GOTO LOOP
DECFSZ 0x21
GOTO VSET2
DECFSZ 0x20
GOTO VSET1
RETURN
END
Como não foi dita a frequência, então o padrão é 4MHz. BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
INICIO
BSF PORTA, 0 ; VERDE
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 0
BSF PORTA, 1 ; AMARELO
CALL DELAY ; 5s
BCF PORTA, 1
BSF PORTA, 2 ; VERMELHO
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 2
GOTO INICIO
BCF PORTA, 1
BSF PORTA, 2 ; VERMELHO
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 2
GOTO INICIO
DELAY
MOVLW 0x19
MOVWF 0x20
VSET1
MOVLW 0xFF
MOVWF 0x21
VSET2
MOVLW 0xFF
MOVWF 0x22
LOOP
DECFSZ 0x22
GOTO LOOP
DECFSZ 0x21
GOTO VSET2
DECFSZ 0x20
GOTO VSET1
RETURN
END
list P = 16F628A
include P16F628A.inc
__CONFIG _INTOSC_OSC_NOCLKOUT &_WDT_OFF & _PWRTE_ON & 
_BOREN_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF
org 0x0000
START
MOVLW 0x07
MOVWF CMCON
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
INICIO
BSF PORTA, 0 ; VERDE
CALL DELAY ; 5s
CALL DELAY ; 5s
BCF PORTA, 0
BSF PORTA, 1 ; AMARELO
CALL DELAY ; 5s

Continue navegando