PRÁTICA 3 – BOTÕES E LEDS
Objetivos:
- Acender ou apagar um Led de acordo botões que serão apertados pelo usuário.
Tarefa:
- Compilar o programa 1 (abaixo) em ASSEMBLY usando o MPLAB.
- Gravar o PIC usando o gravador
- Montar o circuito e verificar o funcionamento.
Programa 1 – Botão e LED:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
list P = 16F628A include P16F628A.inc ; CONFIG __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 0x02 MOVWF TRISA MOVLW 0x01 MOVWF TRISB BCF STATUS,RP0 INICIO BTFSS PORTA,1 GOTO ACENDE BTFSC PORTB,0 GOTO APAGA GOTO INICIO ACENDE BSF PORTA,0 GOTO INICIO APAGA BCF PORTA,0 GOTO INICIO END |
Circuito 1 – Botão e LED
Pinagem para o botão (caso não possua um botão, deixe dois fios soltos no protoboard):
Desafio: Implemente um flip flop T por software, ou seja, com cada toque na chave, o led mudará de aceso para apagado ou de apagado para aceso.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
list P = 16F628A include P16F628A.inc ; CONFIG __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 0x02 MOVWF TRISA MOVLW 0x01 MOVWF TRISB BCF STATUS,RP0 INICIO BTFSS PORTA,1 GOTO FLIP GOTO INICIO FLIP BTFSS PORTA,0 GOTO ACENDE GOTO APAGA ACENDE BSF PORTA,0 CALL DELAY CALL DELAY CALL DELAY GOTO INICIO APAGA BCF PORTA,0 CALL DELAY CALL DELAY CALL DELAY GOTO INICIO DELAY MOVLW 0XFF MOVWF 0X20 VSET MOVLW 0XFF MOVWF 0X21 LOOP DECFSZ 0X21 GOTO LOOP DECFSZ 0X20 GOTO VSET RETURN END |