[tutorial] acender led com PIC (picsimlab)

postagem de conteudo sobre programação de microcontroladores pic
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 743
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] acender led com PIC (picsimlab)

Post by Kodo no Kami » Sat Mar 12, 2016 9:28 pm

e ae galera como tem uma area de programação baixo nivel aqui no forum e ninguem posta nela entao resolvi escrever esse tutorial basicao aqui de como ascender e apagar um led por um PIC (cade tu rafiki com os codigos sinistros e obscuros do underground \o ), porem so vou ensinar um pouco do codigo ja que o circuito em si nao é muito minha praia alem do mais nao conheço esse microcontrolador do simulador entao fica meio complicado desenhar o circuito, nesse exemplo tambem vou usar o simulador picsimlab com a primeira board dele que é o 16f628a e para compilar vou usar o microPascal da microeletronika (lembrando que tem outros compíladores dela tambem como microC e microBasic alem do assembly), para começar a gente abre o microPascal

Image

agora apertamos em FIle -> New Project, vai abrir uma aba apertamos em next ai vai pedir para a gente escolher o microcontrolador que no caso é o p16f628a, depois apertamos em next denovo

Image

depois escolhemos o clock, no caso aqui vou deixar 8mhz mesmo e depois next denovo

Image

agora escolhemos a pasta onde sera salvo nosso codigo fonte como tambem onde sera armazenado o arquivo codigo compilado (.hex)

Image

e nas proximas abas apertamos next e depois finish, depois disso ele vai gerar o escopo da função principal

Image

nesse tutorial vamos usar a porta RB0 porem esse microcontrolador tem 8 portas RB que é RB0 ate RB7, para começar temos que setar se essas portas vai ser entrada ou saida para isso usamos a variavel TRISB e setamos o numero 0 nela indicando que todas as portas vao ser saida (sendo um bit para cada porta)

Code: Select all

program kodo;

begin
  TRISB := 0;
end.
tambem setamos 0 para a variavel PORTB que indica que todas as porta vao iniciar com sinal logico baixo

Code: Select all

program kodo;

begin
  TRISB := 0;
  PORTB := 0;
end.
como vai ficar acendendo e apagando isso quer dizer que é um loop ou seja temos que usar uma estrutura condicional no caso um while

Code: Select all

program kodo;

begin
  TRISB := 0;
  PORTB := 0;
  while (true) do
  begin
  end;
end.
dentro do loop basta setar 1 para o RB0_bit para ascender o led ou 0 para apagar, no caso podemos usar a função delay_ms passando como argumento o tempo em milésimos para dar uma pausa (no caso para outra porta basta mudar aquele 0 do RB0_bit para o numero correspondente a porta)

Code: Select all

program kodo;

begin
  TRISB := 0;
  PORTB := 0;
  while (true) do
  begin
     RB0_bit := 1;
     delay_ms(1000);
     RB0_bit := 0;
     delay_ms(1000);
  end;
end.
o nosso programa esta pronto agora basta compilar para isso aperte no menu build depois build, depois disso ele vai gerar o arquivo .hex dentro da pasta do projeto que é o programa que vai ser emulado/simulado ou que sera jogado para dentro do seu microcontrolador

Image

como eu nao tenho microcontrolador aqui vou emular com o picsimlab

Image

com ele aberto aperte em file -> load hex e procure o arquivo .hex na pasta do projeto

Image

e por fim aperte o botao pwr para iniciar ele e se estiver funcionando ele vai esta piscando ^^

Image

ao inves de usar um led voce poderia ligar em um rele que acende uma lampada e com isso automatizar sua casa (se bem que no meu caso acho que ela pegaria fogo kkk ), bom galera isso é apenas o basico nao existe limites para o que é possivel criar usando microcontroladores ^^

by kodo no kami
Image

que desagradavel ~ mirai kuriyama

User avatar
51M0N
Admin
Admin
Posts: 880
Joined: Fri Jan 02, 2015 2:06 pm

Re: [tutorial] acender led com PIC (picsimlab)

Post by 51M0N » Sun Mar 13, 2016 10:19 am

essa parte de PIC e sinistra vi um pouco de TRISB,PORTB e afins na faculdade; muito bom mano, sempre com post legais...
Image
"Você, eu, nem ninguém vai bater tão duro como a vida. Mas não se trata de bater duro. Se trata de quanto você aguenta apanhar e seguir em frente (...). É assim que se consegue vencer." by Rocky Balboa

Post Reply

Return to “PIC”