Buscar

AULA 05 CHAVES RENATA MERCANTE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CHAVES COM 
PIC16F628A
Chaves são conectadas ao PIC através de resistores de PULL-UP ou de PULL-DOWN:
Exemplo:
PULL-DOWN: RESISTOR EMBAIXO
PULL-UP: RESISTOR EM CIMA
REFERÊNCIA: RESISTOR
apertado 1
SW1 
não apertado 0
apertado 0
SW2 
não apertado 1
Em Assembly, dois comandos podem ser usados para ler inputs:
BTFSS e BTFSC em conjunto com instruções GOTO
BTFSS – BIT TEST FILE SKIP IF SET
BTFSC – BIT TEST FILE SKIP IF CLEAR
Exemplo:
BTFSC PORTA, 4 (a chave SW1 está em RA4)
GOTO APERTA
BTFSS PORTA, 1 (a chave SW2 está em RA1)
GOTO APERTA
Exercício:
Fazer um programa em Assembly onde SW1 acende o LED e SW2 apaga o LED. 
Não é piscar. É ficar ligado direto. 
PULL-DOWN: RESISTOR EMBAIXO
PULL-UP: RESISTOR EM CIMA
REFERÊNCIA: RESISTOR
apertado 1
SW1 
não apertado 0
apertado 0
SW2 
não apertado 1
BOTÕES EM ASSEMBLY
Fazer um programa onde aperta SW1 liga/acende o LED e aperta SW2 
desliga/apaga o LED. 
Não é piscar. É ficar ligado direto. 
apertado 1 apertado 0
SW1 SW2
não apertado 0 não apertado 1 
BTFSS – BIT TEST FILE SKIP IF SET (pula se 1)
BTFSC – BIT TESTE FILE SKIP IF CLEAR (pula se 0)
Chave que fica testando
BOTÕES EM ASSEMBLY
Fazer um programa onde aperta SW1 liga/acende o LED e 
aperta SW2 desliga/apaga o LED. 
Não é piscar. É ficar ligado direto. 
apertado 1 LIGA apertado 0
SW1 SW2 DESLIGA
não apertado 0 não apertado 1 
Início do programa: Configuração de TRISA e TRISB:
TRISA = 0x12
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
0 0 0 0 0 0 0 0
TRISB = 0x00
RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
0 0 0 1 0 0 1 0
8 4 2 1 8 4 2 1
BOTÕES EM ASSEMBLY
Fazer um programa onde aperta SW1 liga/acende o 
LED e aperta SW2 desliga/apaga o LED. 
Não é piscar. É ficar ligado direto. 
BSF STATUS, RP0
MOVLW 0x12
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSC PORTA, 4 ; SW1 LIGA
GOTO LIGA
BTFSS PORTA, 1 ; SW2 DESLIGA
GOTO DESLIGA
GOTO INICIO
LIGA
BSF PORTB, 5
GOTO INICIO
DESLIGA
BCF PORTB, 5
GOTO INICIO
END
O que acontece se alguém apertar as 
duas teclas ao mesmo tempo?
BSF STATUS, RP0
MOVLW 0x12
MOVWF TRISA
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSC PORTA, 4 ; SW1 LIGA
GOTO LIGA
BTFSS PORTA, 1 ; SW2 DESLIGA
GOTO DESLIGA
GOTO INICIO
LIGA
BSF PORTB, 5
GOTO INICIO
DESLIGA
BCF PORTB, 5
GOTO INICIO
END
O que acontece se alguém apertar 
as duas teclas ao mesmo tempo?
Vai ligar o led e desligar muito rápido. Ou 
seja, vai ficar piscando na velocidade do 
clock. O PIC entra em GOTO liga porque 
a tecla de liga está apertada e entra no 
GOTO desliga porque a tecla desliga está 
apertada. Então, o LED fica piscando na 
velocidade do clock 4MHz. Dessa forma, o 
clock é muito rápido e o humano não 
percebe piscar. Então, o LED fica aceso 
direto. 
EXERCÍCIO 2 DE BOTÕES
Fazer um programa em Assembly para: 
Quando SW1 não estiver pressionada o LED pisque de 0,2 em 0,2 segundos.
apertado 0
SW1 
não apertado 1
Início do programa: Configuração de TRISA e TRISB:
TRISA = 0x00
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
0 0 0 1 0 0 0 0
TRISB = 0x10
RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
0 0 0 0 0 0 0 0
8 4 2 1 8 4 2 1
EXERCÍCIO 2 DE BOTÕES
Fazer um programa em Assembly quando SW1 não estiver 
pressionada o LED pisque de 0,2 em 0,2 segundos em 4MHz.
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x10
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSC PORTB, 4 
GOTO PISCA 
GOTO INICIO 
PISCA
BSF PORTB, 0
CALL DELAY
BCF PORTB, 0
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
EXERCÍCIO 3 DE BOTÕES
Fazer um programa em Assembly (em 4MHz) para:
SW1 não estiver pressionada o LED pisque de 0,4 em 0,4 segundos
SW1 estiver pressionada o LED pisque de 0,2 em 0,2 segundos.
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x10
MOVWF TRISB
BCF STATUS, RP0
apertado 0
SW1 
não apertado 1
EXERCÍCIO 3 DE BOTÕES
Fazer um programa em Assembly (em 4MHz) para:
SW1 não estiver pressionada o LED pisque de 0,4 em 0,4 segundos
SW1 estiver pressionada o LED pisque de 0,2 em 0,2 segundos.
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x10
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSC PORTB, 4 
GOTO PISCA04 
GOTO PISCA02 
PISCA02
BSF PORTB, 0
CALL DELAY
BCF PORTB, 0
CALL DELAY
GOTO INICIO
PISCA04
BSF PORTB, 0
CALL DELAY
CALL DELAY
BCF PORTB, 0
CALL DELAY
CALL DELAY
GOTO INICIO
DELAY
(Mesmo DELAY do 
exercício 2)
Ou BTFSS PORTB, 4
GOTO PISCA02
GOTO PISCA04
EXERCÍCIO 3 DE BOTÕES
Fazer um programa em Assembly (em 4MHz) para:
SW1 não estiver pressionada o LED pisque de 0,4 em 0,4 segundos
SW1 estiver pressionada o LED pisque de 0,2 em 0,2 segundos.
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x10
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSC PORTB, 4 
GOTO PISCA04 
GOTO PISCA02 
PISCA02
BSF PORTB, 0
CALL DELAY
BCF PORTB, 0
CALL DELAY
GOTO INICIO
PISCA04
BSF PORTB, 0
CALL DELAY
CALL DELAY 
BCF PORTB, 0
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
RESPOSTA 1
EXERCÍCIO 3 DE BOTÕES
Fazer um programa em Assembly (em 4MHz) para:
SW1 não estiver pressionada o LED pisque de 0,4 em 0,4 segundos
SW1 estiver pressionada o LED pisque de 0,2 em 0,2 segundos.
BSF STATUS, RP0
MOVLW 0x00
MOVWF TRISA
MOVLW 0x10
MOVWF TRISB
BCF STATUS, RP0
INICIO
BTFSS PORTB, 4
GOTO PISCA02
GOTO PISCA04
PISCA02
BSF PORTB, 0
CALL DELAY
BCF PORTB, 0
CALL DELAY
GOTO INICIO
PISCA04
BSF PORTB, 0
CALL DELAY 
CALL DELAY 
BCF PORTB, 0
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
RESPOSTA 2

Continue navegando