Eletronica‎ > ‎

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/


Comments