sexta-feira, 5 de maio de 2017

Acionando led pelo CCS (por:Renato Lôbo Rodrigues).


Olá pessoal que acompanha o blog, está é uma contribuição do nosso colega Renato Lôbo Rodrigues e ele deixou o seguinte programa no qual liga e desliga um LED através de um botão.
Programa indicado para iniciantes e quem mais se interessar pelo método de programação no CCS, sem usar  funções próprias do CCS.Há recursos onde o datasheet deve ser consultado para eventuais dúvidas dos registradores usados.


O código fonte:
 
lista de peças para montagem em bancada:
- matriz de contatos pequena
- pic16F628A, microcontrolador da Microchip
- resitor de 220 ohm para limitar a corrente do LED
- resitor de 10k ohm como pu-up da entrada do pino RA3
- LED 3 ou 5 mm vermelho
- botão de contato
- cabinhos para ligações dos componentes
- fonte de 5V, pode ser um carregador de celular ou suporte de 3 pilhas(4,5V)

///////////////////////////////////////////////////////////////////////
// Projeto: Ligar e desligar um led através de um botão //
// Nome: Renato Lôbo Rodrigues //
// Data: 10/03/17 //
// Email: lobosoft@oi.com.br //
///////////////////////////////////////////////////////////////////////
#include <16F628A.h>
#use delay (clock = 4Mhz)
//Configure os fusíveis em acordo com o pic selecionado, consultar o arquivo <16F628.h> e datasheet.
#fuses NOWDT
#fuses PUT
#fuses NOBROWNOUT
#fuses NOMCLR
#fuses INTRC_IO
#fuses PROTECT
//Estes registros encontra-se nas funções especiais de cada modelo de pic, 
//pag 16 do datashet no mapa de memória.
#bit tris_bot1 = 0x85.3 //direção do pino A3
#bit bot1 = 0x05.3 //pino A3
#bit tris_led1 = 0x85.0 //direção do pino A0
#bit led1 = 0x05.0 //pino A0
//___________________________________________
//Rotina principal
void main()
{
int1 st1 = false; //status do botão
tris_bot1 = 1; //pino A3 em "um" como entrada
tris_led1 = 0; //pino A0 em "zero" como saída
led1 = 0; //inicia com "zero" apagando o led1
while(true) //laço infinito
{
//funciona quando aperta o botão (KeyDown)
if ( bot1) st1=false;    //
if (!bot1 && st1==false)
{
st1=true;
led1 = !led1 ; //inverte, acende ou apaga o led1
delay_ms(100); //um tempo para deboulce
}//fim do if
}//fim do while
} //fim do main

Muito obrigado Renato Lôbo Rodrigues por contribuir com o blog!

Nenhum comentário :

Postar um comentário

olá,digite aqui seu comentário!