Baixe o app para aproveitar ainda mais
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
Compartilhar