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á pessoal

Estou tentando fazer um função de setar valores para um variável (SetPoint), mas não estou conseguindo, seria mais menos isso:

Aciona 5 vezes a chave_1 e uma variável recebe o valor de 5, a função que procuro é um "Stop" para atribuir o valor a variável pela chave_1 e dai rodar o programa.

A única função que conheço incrementa uma variavel por pulso é a "Count entrada(RA), tempo(Ms), variável(x)" não é bem que procuro, visto que tenho certo tempo para atribuir os pulsos na variável e também preciso esperar o termino do tempo setado para o "Cont". Alguem tem alguma solução?

Não sei se estou sendo claro, no que é SetPoint um exemplo real, seria um controlador de temperatura onde posso ajustar a temperatura de controle que desejo por uma chave incrementando a temperatura em °C. Na pratica precisa de um Display pra saber que valor está o SetPoint ajustado, mas o que procuro no momento é somente incrementar uma variável por chave

rafael.luc,aqui mesmo do forum tem alguns topicos falando disso.

De uma olhadinha pra ver se é isto que voce precisa.

http://forum.clubedohardware.com.br/incremento-decremento-variavel/718705

jfeliciano

Link para o comentário
Compartilhar em outros sites

Obrigado pelas respostas, resolvi o problema de contar pulsos da seguinte forma:

Define CONF_WORD = 0x0001
TRISB = 00000000b
Symbol botao = PORTA.0
Symbol led1 = PORTB.0
Symbol led2 = PORTB.1
Dim cont As Byte
AllDigital

main:

If cont > 10 Then ' se o contador for maior que 10 acende o [B]led2[/B]
led2 = 1
Endif

If botao = 1 Then
led1 = 1
Endif

If botao = 0 Then
Goto botao_off ' vai para subrotina quando o botao esta solto "0"
Endif
WaitMs 50
Goto main ' volta para [B]main[/B] se o botao estiver pressionado
End

botao_off: 'subrotina
WaitMs 50
led1 = 0
If botao = 1 Then ' executa quando o botao é pressionado

[LEFT]cont = cont + 1 'conta um
[/LEFT]


Goto main ' sai da subrotina e vai para programa principal [B]main[/B]
Endif
Goto botao_off 'se botao não estiver pressinado volta para a subrotina

Estou com duvida para usar os seguinetes comandos, Endif ja vi alguns programas onde ele não é usado após um If.

Gosub não qual diferença entre Gosub e Goto

amigo,pode incrementar via interrupçao,ou seja ,se houve a interrupcao,variavel =variavel+1 ,se variavel =x então variavel =0.
Jorge, não consegui fazer usando interrupção, não sei como usa?
Link para o comentário
Compartilhar em outros sites

  • mês depois...

Olá Professor Paulo.

Primeiramente devo parabeniza-lo pelo material INTRODUÇÃO AO USO DE PIC - PARTE 2.

Quem me indicou o seu material foi o Felipe_Eletronic.

Bem...estou trabalhando em um protótipo com display lcd e Teclado matricial 3 x 4 com pic16f877a, gostaria de saber como se faz para programar em basic, utilizando o display LCD e o teclado matricial no mesmo porte (PORTB). Se possivel me mande um exemplo simples de identificação e tecla e amostragem no display, para que eu possa intenter a lógica.

Desde de já agradeço.

Link para o comentário
Compartilhar em outros sites

Olá Professor Paulo.

Primeiramente devo parabeniza-lo pelo material INTRODUÇÃO AO USO DE PIC - PARTE 2.

Quem me indicou o seu material foi o Felipe_Eletronic.

Bem...estou trabalhando em um protótipo com display lcd e Teclado matricial 3 x 4 com pic16f877a, gostaria de saber como se faz para programar em basic, utilizando o display LCD e o teclado matricial no mesmo porte (PORTB). Se possivel me mande um exemplo simples de identificação e tecla e amostragem no display, para que eu possa intenter a lógica.

Desde de já agradeço.

Matrixiano,

O prof. Paulo anda meio sumido.

Mas de uma olhada ai nos exemplos do compilador (PSI), tem um exemplo de codigo para Teclado matricial 4x4, talvez sirva de ajuda.

http://www.oshonsoft.com/picbasiccompilerexamples.html

jfeliciano

Link para o comentário
Compartilhar em outros sites

Finalmente..... depois de uma longaaaa viagem, estou de volta !

Mas que hora que voltei, tá um frio dos diabos aqui, e estou com uma saudades enorme das minhas pescarias.... !!!

Logo retornarei ao Fórum para continuarmos os tutoriais, de imediato agradeço a ajuda de todos que mantiveram a ajuda a todos que solicitaram.

Vou descansar alguns dias, e aproveitar para dar uma lida nos tópicos do CDH, e estarei participando ativamente nos tópicos dos Tutoriais em Basic.

Mas , por favor, não me chamem de professor.... embora eu seja engenheiro, em se tratando de PIC e AVR sou um autodidata, como muitos que estão sempre aqui ajudando sempre que podemos !

Um abraço a todos !

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Finalmente..... depois de uma longaaaa viagem, estou de volta !

Mas que hora que voltei, tá um frio dos diabos aqui, e estou com uma saudades enorme das minhas pescarias.... !!!

Logo retornarei ao Fórum para continuarmos os tutoriais, de imediato agradeço a ajuda de todos que mantiveram a ajuda a todos que solicitaram.

Vou descansar alguns dias, e aproveitar para dar uma lida nos tópicos do CDH, e estarei participando ativamente nos tópicos dos Tutoriais em Basic.

Mas , por favor, não me chamem de professor.... embora eu seja engenheiro, em se tratando de PIC e AVR sou um autodidata, como muitos que estão sempre aqui ajudando sempre que podemos !

Um abraço a todos !

Paulo

Ola Paulo,

O bom filho sempre retorna!!!!!!!!!!!!!!

jfeliciano

Link para o comentário
Compartilhar em outros sites

Saudações a todos

Alguém me diz como é que se usa o TIMER 1, (quais os comandos básicos) em BASIC pelo PSI. (Não encontrei nada no manual do PSI sôbre TIMERS, nem em lugar nenhum da NET)

Estou tentando fazer um comando PWM via teclas UP e DOWN usando as frequências do PIC16F877A e o máximo que conseguí foi ligar o PWM, alternar entre as várias frequências que há no mesmo e alterar o DUTY. Conseguí também habilitar a tecla DOWN, mas assim mesmo de maneira precária usando alguns TRUQUES fora de lógica.

Obrigado

Agricio

Link para o comentário
Compartilhar em outros sites

Saudações a todos

Alguém me diz como é que se usa o TIMER 1, (quais os comandos básicos) em BASIC pelo PSI. (Não encontrei nada no manual do PSI sôbre TIMERS, nem em lugar nenhum da NET)

Estou tentando fazer um comando PWM via teclas UP e DOWN usando as frequências do PIC16F877A e o máximo que conseguí foi ligar o PWM, alternar entre as várias frequências que há no mesmo e alterar o DUTY. Conseguí também habilitar a tecla DOWN, mas assim mesmo de maneira precária usando alguns TRUQUES fora de lógica.

Obrigado

Agricio

Agricio, boa tarde.

Na apostila do prof. Paulo , no projeto do voltimetro com display de 7 seg. , tem umas dicas pra usar o timer.

Mas da uma olhada ai neste link, tem umas dicas (mini-video aulas), é pra outro compilador mas serve de base.

http://www.microgenios.com.br/news/wordpress/?category_name=minicurso_basic_pic

jfeliciano

Link para o comentário
Compartilhar em outros sites

  • mês depois...
Aos iniciantes no uso de microprocessadores PIC :

Faz algum tempo, eu fiquei de fazer um pequeno tutorial sobre o uso de processadores PIC com a linguagem BASIC, usando o programa PIC SIMULATOR IDE para fazer a programação e simulação dos projetos.

Porém, o que eu achei que ia ficar pequeno, acabou tornando-se quase um pequeno livro, mas cheio de explicações sobre os PIC´s, seu uso no dia a dia, dicas práticas para programas, uso de interrupção , e muitas outras coisas.

Aqui está a primeira parte, composta por 38 páginas em arquivo PDF, e a segunda parte eu estou terminando ela e irei publicar ainda este mês.

Como é o primeiro trabalho deste tipo que eu escrevo, peço desculpas pelo meu "estilo" ( ou a falta dele.... ) , e gostaria que postassem críticas e sugestões, para irmos juntos aperfeiçoando este tutorial.

Segue o link :

http://www.4shared.com/file/117938802/8f95b920/INTRODUO_AO_USO_DE_PIC.html

Gostaria de agradecer a todos os amigos do fórum que colaboraram, me incentivando a escrever este tutorial !

Bom uso a todos !

Paulo

Olá APHAWK

Esta é minha primeira mensagem no forum, apesar de já visitá-lo a um bom tempo.

Parabéns pelo seu tutorial (primeira parte), muito bem escrito e com estilo. Contudo não consigo baixar a segunda parte. Podes me dar um dica de como fazer isto?

Link para o comentário
Compartilhar em outros sites

Saudações amigos

Muito embora eu tenha já aprendido a fazer bastante coisa com o PSI, "o básico do básico" ainda não consigo entender algumas coisas relacionadas com os TIMERS.

Por exemplo o comando a ser usado para o BIT7, que é justamente o BIT que liga ou desliga o TIMER ZERO, ou o comando a ser usado para o BIT6, que alterna entre os registradores de 8 bits ou 16 bits logo após o prescaler?!?!

Quais os comandos que ligam o TIMER ao PWM usando teclas Up e Down?

Além das informações contidas na 1ª apostila do Paulo, não se encontra mais nada em lugar nenhum referentes ao PSI, e percebe-se que falta uma informação mais detalhada a respeito disso.

Agricio

Link para o comentário
Compartilhar em outros sites

Saudações amigos

Muito embora eu tenha já aprendido a fazer bastante coisa com o PSI, "o básico do básico" ainda não consigo entender algumas coisas relacionadas com os TIMERS.

Por exemplo o comando a ser usado para o BIT7, que é justamente o BIT que liga ou desliga o TIMER ZERO, ou o comando a ser usado para o BIT6, que alterna entre os registradores de 8 bits ou 16 bits logo após o prescaler?!?!

Quais os comandos que ligam o TIMER ao PWM usando teclas Up e Down?

Além das informações contidas na 1ª apostila do Paulo, não se encontra mais nada em lugar nenhum referentes ao PSI, e percebe-se que falta uma informação mais detalhada a respeito disso.

Agricio

Saudaçoes,Agricio

Assim como voce e outros iniciantes , tambem tenho estas mesmas dificudades de conseguir informaçoes sobre PSI.

Mas encontrei estes sites (forum) em espanhol que tem me ajudado bastante, tem muitos exemplos.

Talvez possa ajudar tambem.

http://www.todopic.com.ar/foros/index.php?topic=14917.0

http://r-luis.xbot.es/pic3/pic3_01.html

Tem tambem estas apostilas(livro) muito bons

http://www.4shared.com/document/Kpt4s4D5/apostila_pic_16f84_16f628.html

http://projetoseti.com.br/wp-content/uploads/2011/01/Livro_PIC.pdf

Boa sorte

Jfeliciano

Link para o comentário
Compartilhar em outros sites

  • Coordenador
Olá APHAWK

Esta é minha primeira mensagem no forum, apesar de já visitá-lo a um bom tempo.

Parabéns pelo seu tutorial (primeira parte), muito bem escrito e com estilo. Contudo não consigo baixar a segunda parte. Podes me dar um dica de como fazer isto?

Colega Nanoelektronika, me parece que o disco virtual que o Paulo hospedou o material, esta indisponível no momento!...

Faça o download deste mesmo material neste outro link abaixo:

http://www.4shared.com/get/F2yivsBI/INTRODUO_AO_USO_DE_PIC_-_PARTE.html

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Gostaria de saber se alguém aqui já usou o Real Time Clock em Basic?

Tentei o exemplo 9 que esta no site:

http://www.oshonsoft.com/picbasiccompilerexamples.html

Não funcionou e não sei como alterar data e hora, pois aparecem todos zerados (o autor bem que poderia fazer comentários no codico :( )

Link para o comentário
Compartilhar em outros sites

Gostaria de saber se alguém aqui já usou o Real Time Clock em Basic?

Tentei o exemplo 9 que esta no site:

http://www.oshonsoft.com/picbasiccompilerexamples.html

Não funcionou e não sei como alterar data e hora, pois aparecem todos zerados (o autor bem que poderia fazer comentários no codico :( )

Ola Rafael.luc.

Este exemplo citado por voce nao cheguei a simular no PSI mas testei direto na placa de desenvolvimento e funcionou certinho.

Na segunda parte do tutorial do Paulo tem um projeto que usa um RTC (DS1307), e ele da um exemplo pra simular RTC usando o modulo de memoria I2C presente no PSI, fazendo pequenas alteraçoes no programa antes de compilar, os ajuste da hora , data etc. voce deve

acertar manualmente dentro do programa antes de compilar, alterando estes valores.

Ex.:

I2CWrite sda, scl, 0xa0, addr, 0x00 'segundo

addr = 3

I2CWrite sda, scl, 0xa0, addr, 0x02 'minuto

addr = 4

I2CWrite sda, scl, 0xa0, addr, 0x21 'hora

addr = 5

I2CWrite sda, scl, 0xa0, addr, 0x30 'dia

addr = 6

I2CWrite sda, scl, 0xa0, addr, 0x06 'mes

Jfeliciano

Link para o comentário
Compartilhar em outros sites

Acho que não vai mostrar o horário por simulação, mas no modelo real acho que funciona

I2CWrite sda, scl, 0xa0, addr, 0x00 'segundo

addr = 3

I2CWrite sda, scl, 0xa0, addr, 0x02 'minuto

addr = 4

I2CWrite sda, scl, 0xa0, addr, 0x21 'hora

addr = 5

I2CWrite sda, scl, 0xa0, addr, 0x30 'dia

addr = 6

I2CWrite sda, scl, 0xa0, addr, 0x06 'mes

Sabe se são os mesmos endereços para o RTC (DS1307)?

Link para o comentário
Compartilhar em outros sites

Acho que não vai mostrar o horário por simulação, mas no modelo real acho que funciona

Sabe se são os mesmos endereços para o RTC (DS1307)?

É na simulaçao nao tenho certeza, quanto ao endereço pra simular na memoria acho que é o mesmo.

Depois vou brincar com ele aqui pra ver qual é o resultado, mas se tiver novidades ai nos diga.

Aqui tem um exemplo usando DS1307.http://www.todopic.com.ar/foros/index.php?topic=14917.msg273064;topicseen#msg273064

abr.

jfeliciano

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!