Página 1 de 2
Leitura de pulsos.

Enviado:
25 Set 2007 15:08
por JuniorJ
Ola,
Faço dupla com o Kfer na aula da faculdade.
Todo mundo la esta vendo 8031, mas eu nao achei muito pratico pergunte pro prof pq nao podia ser pic e ele mando eu e o Kfer usar pic... Bom a atividade que ele nos passou foi a seguinte:
Ligar um botao no uC apertar ele 20 vezes liga o ld.
Apertar mais 7 vezes desliga o led.
Aperta mais 20 vezes liga o led 2 apertar mais 7 vezes desliga o led.
:S Alguma ideia para fazer isso em asm?

Enviado:
25 Set 2007 16:05
por KrafT
Que o Kfer acha disso?
Re: Leitura de pulsos.

Enviado:
25 Set 2007 16:07
por andre_luis
JuniorJ escreveu:...Alguma ideia para fazer isso em asm?
sim, faz isso em 'C', usando umas poucas linhas, e depois visualiza o programa gerado em assembly; vai levar pouquissimo tempo. ( se voce for preguiçoso como eu )
+++

Enviado:
25 Set 2007 17:05
por Maurício
Kraft!
Vc que é o "Kfer"?
Mudou de nick e não falou nada, seu bogus!!! ehehehehehe
Mudando de pau pra toquinho, Blumenau fica perto de Concórdia?
Tou indo aí no mês que vem e se ficar perto, prepara o chucrute que eu já me convido a ir almoçar na sua casa, ehehehehehehe
[]'s

Enviado:
25 Set 2007 17:09
por KrafT
Perto não é mas pode ser caminho...
Teje convidado!
Sou eu não... mas a um post tão estranho, eu não pude resitir.


Enviado:
25 Set 2007 17:13
por Maurício
Salve, JuniorJ.
Não conheço PIC, mas a lógica é a mesma.
Cria uma variável BIT pra vc saber se é pra ligar ou desligar.
BIT = 0, contagem para ligar. BIT = 1, contagem para desligar.
Conta os pulsos.
Se BIT = 0 e pulsos = 20, liga.
Zera a variável de contagem, e complementa o valor do BIT.
Se BIT = 1 e pulsos = 7, desliga.
E segue o enterro....
[]'s

Enviado:
25 Set 2007 17:28
por KrafT
Eu usria o timer do PIC para contar os pulsos...

Enviado:
25 Set 2007 23:34
por JuniorJ
Entao o Kfer, é o caferninha que postou agora pouco. Nos fezemos dupla na aula de microcontroladores. O Wagner é nosso semi pseudo professor particular.
Bom, pelo que nos olhamos no livro o ideial é usar o timer.
So esotu atras de exemplos. A nossa aula o professor explica para o 8051 em asm, mas nos temos que fazer com pic, e as semelhancas sao meras conhecidencias.
Entao o caso é o seguinte. Apertar 20x o botao ele liga o led que deve ficar aceso por mais 7 apertos no botao.
Acho que fazer o led acender com um click eu ja sei
Vou dar mais uma estudada.

Enviado:
26 Set 2007 08:35
por marcospaf
fala ai cambada .
se vocÊ fizer em "C" não tme graça !!! hehehe
cara peloq ue entendi são 2 leds , na primeira contagem ele atua no led1 , ja na segunda ele atua no led2 certo??? depois ele retorna ao led 1 ( 20 liga e sete desliga).
alem da variavel bit , você deverá criar filtros para o botão , pois os push boton são "f..." as vezes num simples toque o microcontroladores pode reconhecer 2 pulsos.
cara se precisar eu te dou este programa feito é só dizer qual o pic que vai usar , mas seria legal você fazer , abraços

Enviado:
26 Set 2007 08:51
por buiz
Olá,
Em C para um LED ficaria mais ou menos assim:
include <16f877a.h>
#use delay(clock=4000000) // fixa frequencia cristal e apos fusiveis
#fuses HS,NOWDT,NOPROTECT,NOLVP
#define botao pin_b0
#define led pin_b1
main()
{
int pulsos=0;
while (true)
{
if (!input(botao)) {while (!input(botao)); // Soma 1 a cada pulso
pulsos++;}
if (pulsos==20) output_high(led); // quando for igual a 20 pulso acende o LED
if (pulsos==27) {output_low(led); // quando der mais 7 pulsos apaga o LED
pulsos=0;}
delay_ms(100);
}
}
Fica aqui um exemplo!
Abraços Buiz

Enviado:
28 Set 2007 12:10
por JuniorJ
Li e nao entendi nadinha :S.
Procurei um monte por apostila de Linguegam C para pic mas so achei uma para 16f84 e varios links quebrados em portugues.
Vamos ver se estou correto entao.
buiz escreveu:Olá,
Em C para um LED ficaria mais ou menos assim:
include <16f877a.h>
#use delay(clock=4000000) // fixa frequencia cristal e apos fusiveis
#fuses HS,NOWDT,NOPROTECT,NOLVP Sao as opcoes do uC?
#define botao pin_b0 Esta definindo o botao no pino B0
#define led pin_b1 Esta definindo o LED no pino B1
main()
{
int pulsos=0; Definiu o pulso inicial = 0
while (true) O True retorna o valor VERDADEIRO se tiver 5v no pino B0 ?
{
if (!input(botao)) Lê o estado do pino indicado ???
{
while (!input(botao)); // Soma 1 a cada pulso quando o corre a mudanda de estado? de 0 para 1 isso?
pulsos++;
}
if (pulsos==20) output_high(led); // quando for igual a 20 pulso acende o LED
if (pulsos==27) {output_low(led); // quando der mais 7 pulsos apaga o LED
pulsos=0;}
delay_ms(100); Qual a funçao desse Delay?
}
}
Fica aqui um exemplo!
Abraços Buiz
Obrigado Buiz.

Enviado:
28 Set 2007 15:30
por buiz
include <16f877a.h> // defiine o microprocessador a ser usado
#use delay(clock=4000000) // fixa frequencia cristal
#fuses HS,NOWDT,NOPROTECT,NOLVP // opções do MC fusiveis
#define botao pin_b0 // define saida do led no pino B0
#define led pin_b1 // define leitura do botão no pino B1
main() // inicio do programa
{
int pulsos=0; // define variavel inteira PULSOS = 0 na inicialização
while (true) //laço continuo de testes
{
if (!input(botao)) // se 0 no botão então
{while (!input(botao)); // espera aqui até botão voltar a 1 (filtro para não somar mais de 01 pulso a cada toque no botão)
pulsos++;}// soma 01 pulso
if (pulsos==20) output_high(led); // quando for igual a 20 pulso acende o LED
if (pulsos==27) {output_low(led); // quando der mais 7 pulsos apaga o LED
pulsos=0;// retorna variavel pulsos ao valor inicial}
delay_ms(100); // intervalo de repetição do laço While
}
}
Olha, foi uma dica, testei aqui na proto e funcionou legal, mas cabe a você escolher a melhor maneira para isso, este codigo fiz na corrida apenas para exemplo.
Se você quer começar a programar em C, sugiro que adquira o livro do Fabio ( PIC - Programação em C).
Espero ter ajudado,
Buiz

Enviado:
02 Out 2007 15:01
por wgc
Buiz, acho que ouve um mal entendindo. Pelo que eu sei o junior so estava tentando entender seu codigo, ele ate comendo ao lado das linhas as duvidas dele.
Toda programaçao que eles estao vendo é em asm, mas tanto ele quanto eu, achamos C bem interessante.
Quanto ao livro do Fabio, nao tem na biblioteca da faculdade.
E como eu tenho o Desbravando o Pic e o Microcontroladores PIC, eles estao usando como referencia.

Enviado:
02 Out 2007 21:32
por proex
O que é 8031?

Enviado:
02 Out 2007 23:21
por Maurício
O que é PIC?
(Tomou, papudo?? )
[]'s