Ir ao conteúdo
  • Cadastre-se

Tutorial : Introdução ao uso de PIC´s em BASIC com o PIC Simulator IDE - Parte 1/2


Posts recomendados

Olá meus camaradas,

Uma dica aqui outra acolá vai juntando informações e se chega ao objetivo. É isso ai já tive a primeira evolução consegui escrever na linha 1 os 8 bits que eu queria agora vamos em frete temos ainda 6 linhas. Depois que eu entender o processo vou tentar escrever letras e depois palavras.

Como diz o Paulo (grande pescador KKKKKKKKKKKKK) temos que ensinar a pescar e eu digo depois que aprendemos nos damos conta que a medida que aumenta os desafios temos que aumentar o anzol e até mesmo a linha.

ESTOU AQUI DE NOVO:

Já estou escrevendo a minha primeira letra porém, não estou conseguindo dar velocidade suficiente para que a vista não perceba o acende e apaga. Ja estou no tempo minimo 1Us será que o PROTEUS tem dificuldade em relação ao tempo sendo que na montagem real a coisa funcionaria e no PROTEU não?

Valeu meus amigos um forte abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

Tchecara,

Matou a questão !

Quando usamos simuladortes, tipo PSI, Proteus, ou qualquer outro semelhante, o que obteremos sempre será o funcionamento do hardware, mas nunca obteremos a VELOCIDADE REAL do processamento, entendeu ?

Existe uma grande chance de voce montar o protótipo e ele funcionar certinho !

IAS,

Gostei do seu programa hehehehehehh !!!

Eu sou adepto das coisas que funcionam, não importa como ...... continuo fiel ao meu lema :

NÃO IMPORTA A COR DO GATO, DESDE QUE COMA RATOS !!!!!

Ou seja, o que importa são RESULTADOS ! Seja feio, deselegante, enorme, .... se funcionar direito tá aprovado !

Quanto à interface serial opto-isolada, fico muito contente que tenha funcionado e dado os resultados esperados.

Ah, e quanto à montagens de matriz de Leds :

Comprei uma revista Elektor nacional, um número especial sobre microcontroladores, tem um excelente projeto de um cubo de leds, com 125 ( 5 x 5 x 5 ) leds, usando um ATMEGA comum, e pelo esquema, nada impede de ser feito com um PIC 16F877A.... detalhe : sem nenhum shift-register .... Vale a pena darem uma olhada.

E também tem um projeto muito legal de um Pendulo que se movimenta, recebendo impulsos e freadas de um microcontrolador, com apenas UMA só bobina que tanto serve de sensor como serve de impulsor..... o projeto é muito elegante, e vale a pena montar algo semelhante com um PIC 16F877A, usando o mesmo princípio, com certeza é algo que vai compensar o trabalho de software !

Um abraço a todos !

Paulo

Link para o comentário
Compartilhar em outros sites

Valeu Professor,

Amanhã vou comprar os componentes e ver a coisa na real. Me adiantando um pouquinho, eu fiz uma tabela para cada letra para montar os bytes. Para deixar a coisa mais profissional como num projeto teu com LCD onde se escreve "ola" e sai no LCD ola eu teria que montar um banco de dados com essa tabela e fazer associação a medida que cada letra entra?

Link para o comentário
Compartilhar em outros sites

Tchecara,

Já que a sua matriz é 7 X 8, eu criaria uma tabela com os bytes equivalentes para cada símbolo. Para não ter muiiito trabalho, pode usar 7 bytes para armazenar o estado dos teus 56 leds, usando 7 diferentes chamadas para aquela famosa instrução LOOKUP() do Basic. Por exemplo, montar 7 tabelas tipo LOOKUP, sendo que cada uma delas devolve um byte ( 8 bits = 8 leds ) , chamar uma de cada vez em sequência e fazendo o shift register para deslocar até a posição correta, entendeu ? Fica simples dessa maneira.

Isso é fácil se voce não quiser deslocar a letra ao longo da matriz. Se quiser deslocar a letra, tipo ela vai entrando pela esquerda e saindo pela direita, o correto é temporizar os shifts, para fazer o efeito. Vai dar um pouco mais de trabalho, mas o efeito fica muito bonito !

Agora, existem várias soluções de software para isso, se pegar 3 programadores diferentes para fazer o programa, com certeza vai ter 3 soluções diferentes, pois depende mesmo da criatividade de cada um.

Manda bala e depois fala pro pessoal aqui, postando tanto o hardware como o software, para ajudar mais a quem está aprendendo, ok ?

Um abraço !

Paulo

Link para o comentário
Compartilhar em outros sites

Olá IAS,

Tentei usar o 74HC595 conforme tu sugeriu mas ele não é um substituto direto do 74LS164 porque ele não está reproduzindo os mesmos resultados.

O latch que você descreve seria o pino 12 STcp ?

Neste pino eu teria 0 ou 1 enviado para o PIC e no momento que for zero eu dou o clock para enviar os bytes é isso?

Abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

Tchecara,

Me parece que voce tem de ligar o sinal de clock gerado pelo seu programa no pino 12, e o dado a ser "shiftado" ( nossa...... ) ligue no pino 14.

Se não funcionar, ligue também o pino 11 junto com o pino 12 ao sinal de clock. O datasheet me parece meio confuso sobre isso, mas uma dessas maneiras com certeza vai funcionar, ok ?

Ah, pino 10 no +5V, e o pino 13 ao terra, senão nada vai funcionar....

Paulo

Link para o comentário
Compartilhar em outros sites

TcheCara;

O 74HC595 tem uma grande vantagem em cima do 74LS164, ele (o 74HC595) internamente além do shift register possui um latch de 8 bits; portanto o dado não fica "guardado" dentro do shift register e sim dentro de uma memória, o que antes era necessário usar um 74LS164 e um 74LS374, hoje faço com um único CI, o 74HC595, além é claro de ser tecnologia HC. Abaixo a página de um Ebook baixado da net e que disponibilizo a quem interessar.

Registo de Deslocamento de Entrada Paralela

Os registos de deslocamento de entrada série e saída paralela, transformam dados

série em dados paralelo. Sempre que ocorre um impulso ascendente de clock, o

registo de deslocamento lê o estado lógico da linha de dados, guarda-o num registo

temporário e repete oito vezes esta operação. Quando a linha ‘latch’ é activada, os

dados são copiados do registo de deslocamento para o registo de saída (registo

latch) onde ficam disponíveis em paralelo.

As ligações entre um registo de deslocamento 74HC595 e um microcontrolador,

mostram-se no diagrama em baixo.

Ligação de um registo de deslocamento de saída paralelo a um

microcontrolador

Abraços....

IAS

post-450483-13884955085355_thumb.jpg

post-450483-1388495508559_thumb.jpg

Link para o comentário
Compartilhar em outros sites

Saudações aos amigos:-BEER

Olá Paulo

Estou anexando o link do meu software matriz de led.

http://www.enterupload.com/8qztma0bayor/matriz_leds.bas.html

Se possivel dá uma olhada para nós pois já estou à dias quebrando cabeça:muro: e não estou conseguindo obter êxito.

Um abraço,

Enio.

Link para o comentário
Compartilhar em outros sites

11/03/2010, 08:22 H

caros amigos do forum meu bom dia a todos:

estou escrevendo um códico em basic com o microcontrolador pic 16f628a

o projeto é o seguinte:

nome: segurança para o altomovel.

como funciona?

1/.interruptor porta direita do motorista

2/.interuptor porta esquerda do carona

3/.alavanca de neutro(marchas)

caso esses tres estiverem mandando o mesmo sinal ou seja:

1/.porta direita do motorista fechada =1

2/.porta esquerda do carona fechada=1

3/.cambio em neutro=1

a/.partida do motor liberada. setbit(led)

essa é a logica do códico.

peço a ajuda do forum para me ajudar, pois sou iniciante nesse mundo maravilhoso da programção em basic. no etanto estou dando a partida

com o seguinte códico, pois esse só faz acender um led, e apaga-lo

mesmo assim foi tudo o que eu consegui.

program texte1

symbol led=portb,3

symbol botao=portb,0

main:

cmcon=7

trisb=%00000001

if testbit(botao)=0 then

setbit(led)

else

clearbit(led)

end if

goto main

end.

certo da conpreenção de todos, com alegria no coração de paricipar deste forum, com pessoas tão umildes, como eu peço help. obrigado.

Link para o comentário
Compartilhar em outros sites

Saudações amigo Ma2008,

Também sou novato aqui e quero dar minha contribuição. Sugiro ao amigo dar uma olhada na apostila do Paulo pois ela tem como objetivo ajudar aos iniciantes com informações sobre o PCI acompanhada de exemplos bem interessantes. Tenho certeza que lhe será bem útil. Segue link do Tutorial : Introdução ao uso de PIC´s em BASIC com o PIC Simulator IDE - Parte 1/2

http://www.4shared.com/file/11793880...SO_DE_PIC.html

Um abraço e um bom estudo,

Enio.

Link para o comentário
Compartilhar em outros sites

Amigo tchecara, obrigado

já consegui esse arquivo, por sinal é bom d+ da conta, só sou grato a todos,mesmo assim continuo pedindo ajuda de todos, não consigo fazer essa lógica com os três botões, já tentei de tudo quanto foi jeito, pra quem já sabe é fácil, mais pra quem não sabe é muito difícil, mais porém existe uma luz no final do túnel,

que é esse fórum maravilho, sabe não estou de bobeira não, já passei a noite toda estudando esse assunto da lógica com os três botões, mais não consegui nada, por isso que humildemente, peço a ajuda do fórum, sem mais na certeza que obterei respostas, estou no aguardo, até mais amigo.

Link para o comentário
Compartilhar em outros sites

Ola galera boa noite, gente do forum amigos.

Esse ultimo codico funcionou perfeitamente, mais nÃo do jeito que eu tinha proposto, talves eu nÃo me espliquei corretamente,

ou seja esse codico ele vai me dar mais seguranÇa no meu carro,

como assim? Ou seja o carro vai funcionar da seguinte maneira,

quando as duas portas estiverem fechadas e a lavanca de neutro

estiver no ponto morto, terei a mesma aÇÃo, ou seja como se fosse os tres botões precionado ao mesmo tempo, ai sim a partida do carro É dada, ou seja ocorre o funcionamento do motor, descupe nÃo estou querendo trazer nenhum encomodo a todos, mais sÓ que testei esse codico no proteus, e acontese o seguinte:

Se eu apertar individualmente os botões o led acende, nÃo deveria

deveria acender somente com os tres botões apertados ao mesmo tempo, caso aperte um nÃo acende, caso aperte dois nÃo acende,

caso aperte tres ai acende, certo da compreenÇÃo de todos aguardo uma ajuda, obrigado gente, vou ficar por aqui a noite toda, pois o tempo aqui no rio de janeiro nÃo esta muito bom, vou aproveitar pra ficar aqui pra estudar basic. Olho o forum em cinco e cinco minutis. beleza.

Link para o comentário
Compartilhar em outros sites

Oi amigo ma2008,

Eu implementei este código no Pic Basic Simulator e funcionou legal e montei no Proteus e também funcionou numa boa. Sòmente quando aciona as tres chaves acende o Led.

Confere a sua configuração pois o software tá legal. Não esqueça de colocar um resistor de 1k e um capacitor de 10 uf no pino de reset do PIC.

Link para o comentário
Compartilhar em outros sites

Que vergonha, galera me descupem, por favor, É isso ai errei

a culpa É toda minha. Refiz tudo de novo e foi sÓ felicidade, obrigado por tudo, a gora ou vou comeÇar com um temporizador vocês podem me ajudar? Mais deixa eu quebrar a cabeÇa um pouco beleza. estou aqui noite toda. Sou um iniciante pecistente. Posso contar com a juda de vocês?

Link para o comentário
Compartilhar em outros sites

Boa noite colega m2008,

eu tambem sou um iniciante.

Tambem testei o codigo aqui e funcionou legal.

você tem deve ter esquecido de colocar os resitores (10k) nos pinos de entrada do pic para o terra, pra manter as entradas em nivel baixo, somente quando todos os pinos estiverem altos e que o led vai acender.

Acho que tambem da pra inverter esta logica.

Espero ter ajudado

boa sorte

jfeliciano

Link para o comentário
Compartilhar em outros sites

aí galera ja é bom dia.

depois de muito estudar a postila (tutorial) e quebrar muito a cabeça, consegui fazer o meu primeiro codico, e eu estou colocando aqui para os amigos analizarem, testei no proteus e esta tudo nos contentos.

mais sabe como é né, pode ter alguma coisa errada que eu não sei

trata-se de um temporizador (minuteira) quando acionado o interruptor

da garagem a luz fica ativa por 5 segundos, certo do retorno aguardo as dicas

visto que fiz por merecer, obrigado estou no aguardo. que felidades compartilhando com vocês. (vou dormir agora)

descupe acho que é sono o codico é esse:

Define CONF_WORD = 0x0001

Define CLOCK_FREQUENCY = 4

AllDigital

TRISA = %00000001

TRISB = 0

teste:

If PORTA.0 = 0 Then

PORTB.0 = 1

WaitMs 5000

Else

PORTB.0 = 0

Endif

Goto teste

End

Link para o comentário
Compartilhar em outros sites

Corrigindo......

Define CONF_WORD = 0x0001

Define CLOCK_FREQUENCY = 4

AllDigital

TRISA = %00000001

TRISB = 0

porta=0

portb=0

teste:

If PORTA.0 = 0 Then

PORTB.0 = 1

WaitMs 5000

PORTB.0=0

Else

GOTO TESTE

Endif

Goto teste

End

OBS:você colocou o teste para testar quando o porta.0 do pic vai a 0 ,para acionar o portb.0,esperar 5 segundo mais ai nao pois pra ele desligar o portb.0,e outra ,se o porta.0 nao estiver em zero ele tem q retornar o teste,e tbem precisa zerar os ports no inicio.Abraços!

Link para o comentário
Compartilhar em outros sites

Fala Paulo, Eu também to meio sem net esses dias aqui...

Mas espero voltar definitivamente em pouco tempo....

Qanto as contas, e exatamente isso que eu to passando aperto aqui...

Exatamente com os valores num to conseguindo transformação pra dar o valor..

Mas assim que minha net e pc voltarem vou pegar firme!

Quanto ao relogio vai ser aquele esquema de uns relogios de pulsos:

Aperta o Mode, aí vai mudando pra Dia, mes, ano, hora, minuto, segundo.

Ai quando chega na opção que você quer selecionar, você aperta Select.

E usa o Up pra aumentar o numero e o Down pra diminuir o numero!

Deu pra entender agora??

E outra, preciso de uma ajuda pra instalar o PSI no Windows 7 Home Basic!

Abração a todos, e muito obrigado!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!