PIC - Acionar um LED com um Botão
Neste exemplo utilizamos um PIC 16F628a para fazer a demonstração de como utilizar um botão para acionar um LED.
Para compilar o código utilizamos o programa Prithvi Portable (https://sites.google.com/site/kitoeag/informatica/prithvi-portable)
Figura 1: Esquema do circuito
O código abaixo liga um LED quando o botão for pressionado.
Codigo
#chip 16F628a, 4 'Define o modelo do PIC e a frenquencia do cristal
#define LED PORTB.0 'Define PORTB.0 como a palavra LED
#define Botao PORTB.1 'Define PORTB.1 como a palavra Botao
Dim Estado_botao as Bit 'Declara a variável Estado_botao como bit
Dir LED Out 'Define PORTB.0 como saída.
Dir Botao In 'Define PORTB.1 como entrada.
Do 'Rotina principal
If Botao = 1 then 'Verifica o se o botão foi pressionado
LED = 1
end if
Loop 'Retorna em Do e fica sempre neste loop.
No código abaixo, quando o botão é acionado, o PIC aguarda que o mesmo seja liberado e logo em seguida liga o LED durante 1 segundo e depois volta a apaga-lo.
Código
#chip 16F628a, 4 'Define o modelo do PIC e a frenquencia do cristal
#define LED PORTB.0 'Define PORTB.0 como a palavra LED
#define Botao PORTB.1 'Define PORTB.1 como a palavra Botao
Dim Estado_botao as Bit 'Declara a variável Estado_botao como bit
Dir LED Out 'Define PORTB.0 como saída.
Dir Botao In 'Define PORTB.1 como entrada.
Do 'Rotina principal
If Botao = 1 then 'Verifica o se o botão foi pressionado
Estado_botao = 1 'Salva o estado do botão na variável Estado_botao
end if
If Estado_botao = 1 then 'Entra nesta rotina se o botao foi pressionado
If Botao = 0 then 'Executa esta rotina caso o botão seja liberado
Estado_botao = 0
LED = 1 'Acende o LED
Wait 1000 ms 'Espera 500 milisegundos
LED = 0 'Apaga o LED
Wait 1000 ms 'Espera 500 milisegundos
end if
end if
Loop 'Retorna em Do e fica sempre neste loop.
Veja o vídeo mostrando o funcionamento do código.
Help do GCBasic: http://gcbasic.sourceforge.net/help/