Ir ao conteúdo
  • Cadastre-se

PIC - Iniciando pelo basico atraves do BASIC


cavalodf

Posts recomendados

Alguem poderia me explicar realmente quais sÃo os passos para fazer o programa e gravar um pic 12f675, estou comeÇando agora e os arquivos encontrados nÃo estÃo muitos claros, tenho vÁrio programas que veio junto com o gravador que comprei, tipo mplab;icprog, mais estou confuso em que programa devo comeÇar e tambem nestes passos de arquivos .hex.

Se alguem puder me ajudar eu agradeÇo.

Link para o comentário
Compartilhar em outros sites

Alguem poderia me explicar realmente quais sÃo os passos para fazer o programa e gravar um pic 12f675, estou comeÇando agora e os arquivos encontrados nÃo estÃo muitos claros, tenho vÁrio programas que veio junto com o gravador que comprei, tipo mplab;icprog, mais estou confuso em que programa devo comeÇar e tambem nestes passos de arquivos .hex.

Se alguem puder me ajudar eu agradeÇo.

você já programou?

se sim configure o ICprog como o manual do gravador fala, e depois grave o .hex...

Link para o comentário
Compartilhar em outros sites

Pessoal, mudando um pouco (ou voltando?) de assunto, pro pessoal que disse ou acha que o C tem pouca documentação... Ao meu ver dá para aprender C completo na internet, só tem que saber procurar, e é claro que um livro ajuda pra caramba, como eu pretendo comprar o meu este mês.

Mas aqui, para quem quer uma ótima apostila de C, quando comecei a programar nem tinha estudado a lógica da programação e essa apostila me passava tudo de forma muito fácil, recomendo nota 10: http://www.scribd.com/doc/15122623/Apostila-de-C-da-UFMG

ou quem quiser me adiciona no msn ([email protected]) que eu passo ela.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Olá a todos os participantes do forum,sempre consegui

tirar todas as minhas dúvidas por este meio,

mas testa vez estou com um problema e gostaria de pedir

a ajuda dos mais experientes em mikrobasic.

Este codigo abaixo executa com precisão a conversão AD nos

canais selecionados, porém eu só consigo utilizar com o PIC16f887,

eu gostaria de usar o PIC16f877a , o qual eu já possuo.

Eu já tentei configurar mas sempre da erros com esse pic16f877a,

esse código é um voltimetro e amperimetro com um GLCD t6963,

eu já possuo o display e estou montando uma fonte simetrica ajustavel.

Só falta o voltimetro a parte de controle e potencia ja está ok.

Se alguem puder me ajudar a configurar para usar o Pic16F877A.

program T6963C_240x128

include __Lib_T6963C_Consts
include __Lib_T6963C
' T6963C module connections
dim T6963C_dataPort as byte at PORTD ' DATA port

dim T6963C_ctrlwr as sbit at RC2_bit ' WR write signal
dim T6963C_ctrlrd as sbit at RC1_bit ' RD read signal
dim T6963C_ctrlcd as sbit at RC0_bit ' CD command/data signal
dim T6963C_ctrlrst as sbit at RC4_bit ' RST reset signal
dim T6963C_ctrlwr_Direction as sbit at TRISC2_bit ' WR write signal direction
dim T6963C_ctrlrd_Direction as sbit at TRISC1_bit ' RD read signal direction
dim T6963C_ctrlcd_Direction as sbit at TRISC0_bit ' CD command/data signal direction
dim T6963C_ctrlrst_Direction as sbit at TRISC4_bit ' RST reset signal direction

' Signals not used by library, they are set in main sub function
dim T6963C_ctrlce as sbit at RC3_bit ' CE signal
dim T6963C_ctrlfs as sbit at RC6_bit ' FS signal
dim T6963C_ctrlmd as sbit at RC5_bit ' MD signal
dim T6963C_ctrlce_Direction as sbit at TRISC3_bit ' CE signal direction
dim T6963C_ctrlfs_Direction as sbit at TRISC6_bit ' FS signal direction
dim T6963C_ctrlmd_Direction as sbit at TRISC5_bit ' MD signal direction
' End T6963C module connections

dim panel as byte ' current panel
i as word ' general purpose register
curs as byte ' cursor visibility
cposx,
cposy as word ' cursor x-y position
txtcols as byte ' number of text coloms
valor1 as word
valor2 as word
valor3 as word
valor4 as word
valor1send as string[3]
valor2send as string[3]
valor3send as string[3]
valor4send as string[3]

main:
OPTION_REG = $80
ANSEL = 0
ANSELH = 0
C1ON_bit = 0 ' Disable comparators
C2ON_bit = 0
INTCON = %10000000
ADCON1 = 0 ' Set AN2 channel pin as analog
TRISA = $FF ' input
TRISB = 1
PORTB = 0
T6963C_ctrlce_Direction = 0
T6963C_ctrlce = 0 ' Enable T6963C
T6963C_ctrlfs_Direction = 0
T6963C_ctrlfs = 0 ' Font Select 8x8
T6963C_ctrlmd_Direction = 0
T6963C_ctrlmd = 0 ' Column number select

panel = 0
i = 0
curs = 0
cposx = 0
cposy = 0

T6963C_init(240, 128, 8)' Initialize T6369C

T6963C_graphics(1) ' * Enable both graphics and text display at the same time
T6963C_text(1)
' * Text messages
T6963C_write_text("VOLTS:",2 , 2, T6963C_ROM_MODE_XOR)
T6963C_write_text("VOLTS:", 22 , 2, T6963C_ROM_MODE_XOR)
T6963C_write_text("AMPERES:",1 , 10, T6963C_ROM_MODE_XOR)
T6963C_write_text("AMPERES:",21 , 10, T6963C_ROM_MODE_XOR)
' *
' * Cursor
' *
T6963C_cursor_height(8) ' 8 pixel height
T6963C_set_cursor(0, 0) ' Move cursor to top left
T6963C_cursor(0) ' Cursor off

' * Dezenho dos frames
T6963C_line(8, 8, 8 ,120, T6963C_WHITE)
T6963C_line(8, 8, 72 , 8, T6963C_WHITE)
T6963C_line(72, 8, 72 ,120, T6963C_WHITE)
T6963C_line(72,120, 8 ,120, T6963C_WHITE)

T6963C_line(168,8, 168,120, T6963C_WHITE)
T6963C_line(168,8, 232 ,8, T6963C_WHITE)
T6963C_line(232,8, 232,120, T6963C_WHITE)
T6963C_line(232,120, 168,120, T6963C_WHITE)

'T6963C_rectangle(75, 18, 165, 62, T6963C_Black)
'T6963C_box(10, 50, 71, 10, T6963C_WHITE)
'T6963C_box(10, 75, 71, 118, T6963C_WHITE)
'T6963C_box(170, 10, 231, 50, T6963C_WHITE)
'T6963C_box(170, 75, 231, 118, T6963C_WHITE)
'T6963C_box(77, 20, 164, 60, T6963C_WHITE)

T6963C_write_text("Voltimetro Digital",6 ,0, T6963C_ROM_MODE_XOR)

while true
Valor1 = (ADC_Read(0)/0.4) 'le volt porta 0 E TRASNFORMA 8 BYTE
WordToStr(Valor1 ,Valor1send)
T6963C_write_text(Valor1send, 1, 4, T6963C_ROM_MODE_XOR)
T6963C_write_text("+",2, 4, T6963C_ROM_MODE_XOR)

Valor2 =(ADC_Read(1)/4) 'le volt porta 1 E TRASNFORMA 8 BYTE
WordToStr(Valor2 ,Valor2send)
T6963C_write_text(Valor2send, 22, 4, T6963C_ROM_MODE_XOR)
T6963C_write_text("-", 22 , 4, T6963C_ROM_MODE_XOR)

Valor3 = (ADC_Read(2)/4) 'le volt porta 2 E TRASNFORMA 8 BYTE
WordToStr(Valor3 ,Valor3send)
T6963C_write_text(Valor3send, 1, 12, T6963C_ROM_MODE_XOR)
T6963C_write_text("+",2 , 12, T6963C_ROM_MODE_XOR)

Valor4 = ADC_Read(3) 'le volt porta 0 E TRASNFORMA 8 BYTE
WordToStr(Valor4 ,Valor4send)
T6963C_write_text(Valor4send, 22, 12, T6963C_ROM_MODE_XOR)
T6963C_write_text("-",22 , 12, T6963C_ROM_MODE_XOR)
wend
end.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Oi pessoal estou voltando, depois de uma sumida grande.

Estava envolvido num projeto comercial que já leva quase um ano.

Finalmente terminamos e vai ser lançado no próximo ano.

Estou a usar o novo programa basic "mikrobasic PRO" muito mais fácil

e com muito mais recursos (99% = ao micro C PRO, sem os { que pra mim é uma tremenda chatura...).

Só pra lembrar o fórum oficial da mikroe (em inglês) tem muita gente pra tirar

duvidas e grande parte deles são brasileiros.

Amigo julianoezequiel , seu compilador difere do meu e fica difícil

achar as mudanças necessárias, verifique os includes se são compatíveis com o novo PIC.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

sou novoa qui no etanto estou precisando de uma ajudinha dos amigos, meu nome é marcos, estou escrevendo o seguinte programa em basic.esse programa quando precionado o botao o led acende, quando solto o botao o led se apaga, gostaria de que quando eu precionasse tres botões, acionasse o led, quando eu soltasse o botao oled se apagaria, mais só acende quando precionado os tres botões juntos, por favor me ajude vja joguei a toalha. obrigado, meu e-mail é [email protected]

program led

symbol botao=portb,o

symbol led =portb,1

main:

cmcon=7

trisb=%00000001

if testbit(botao)=0 then

setbit(led)

else

clearbit(led)

end if

goto main

end.

Link para o comentário
Compartilhar em outros sites

Isso é fácil, não vou te dar o cógido por que senão o conceito de aprendizado vai para o espaço, direi como podes fazer isso,

configure o seu PORTB com tres entradas primeiramente, e em seu loop principal faça a leitura do portb inteiro e nao botao por botao, lendo o portb verifique se os tres pinos que você pos como entrada encontram- se em '1' acenda o led somente se essa condição for verdadeira, caso contrario o led fica apagado.

esta é uma maneira elementar de se fazer é claro podendo ser melhorada!

abs.

Link para o comentário
Compartilhar em outros sites

fiz O SEGUINTE:

program texte0

symbol led=portb,3

cmcon=7

trisb=%00000111

main:

temp = portb

clearbit(temp,3)

if temp = %00000111 'verifica se os tres botões estão pressionados

setbit (led)

else

clearbit (led)

end if

goto main

end.

MAIS porém DA SEGUINTE ERRO:

0 1 mBPic.exe -DBG -pP16F628A -MSF -Y -DL -O11111114 -fo4 -N"C:\Arquivos de programas\PIC\texte0.mbppi" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\defs\" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\Uses\P16\" -SP"C:\Arquivos de programas\PIC\" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_String.mcl" "__Lib_Conversions.mcl" "__Lib_Time.mcl" "__Lib_Trigon.mcl" "__Lib_Trigonometry.mcl" "__Lib_Button.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Manchester.mcl" "__Lib_OneWire.mcl" "__Lib_PS2.mcl" "__Lib_Sound.mcl" "__Lib_SoftI2C.mcl" "__Lib_SoftSPI.mcl" "__Lib_SoftUART.mcl" "__Lib_EEPROM.mcl" "__Lib_PWM_b3.mcl" "__Lib_UART_b21.mcl" "__Lib_CF.mcl" "__Lib_GlcdFonts.mcl" "__Lib_Glcd.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl" "__Lib_RS485.mcl" "__Lib_T6963C.mcl" "texte0.mbas"

0 154 Available RAM: 208 [bytes], Available ROM: 2048 [bytes]

0 132 Compilation Started C:\Arquivos de programas\PIC\texte0.mbas

1 1015 Hint: Compiling unit "C:\Arquivos de programas\PIC\texte0.mbas" texte0.mbas

6 303 Identifier "temp" was not declared texte0.mbas

6 303 Identifier "temp" was not declared texte0.mbas

6 304 Syntax error: Expected "end" but "temp" found texte0.mbas

6 304 Syntax error: Expected "." but "=" found texte0.mbas

0 102 Finished (with errors): 05 mar 2010, 09:51:14 texte0.mbppi

Link para o comentário
Compartilhar em outros sites

a gora apresentou o seguinte erro:

0 1 mBPic.exe -DBG -pP16F628A -MSF -Y -DL -O11111114 -fo4 -N"C:\Arquivos de programas\PIC\texte0.mbppi" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\defs\" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\Uses\P16\" -SP"C:\Arquivos de programas\PIC\" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_String.mcl" "__Lib_Conversions.mcl" "__Lib_Time.mcl" "__Lib_Trigon.mcl" "__Lib_Trigonometry.mcl" "__Lib_Button.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Manchester.mcl" "__Lib_OneWire.mcl" "__Lib_PS2.mcl" "__Lib_Sound.mcl" "__Lib_SoftI2C.mcl" "__Lib_SoftSPI.mcl" "__Lib_SoftUART.mcl" "__Lib_EEPROM.mcl" "__Lib_PWM_b3.mcl" "__Lib_UART_b21.mcl" "__Lib_CF.mcl" "__Lib_GlcdFonts.mcl" "__Lib_Glcd.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl" "__Lib_RS485.mcl" "__Lib_T6963C.mcl" "texte0.mbas"

0 154 Available RAM: 208 [bytes], Available ROM: 2048 [bytes]

0 132 Compilation Started C:\Arquivos de programas\PIC\texte0.mbas

1 1015 Hint: Compiling unit "C:\Arquivos de programas\PIC\texte0.mbas" texte0.mbas

4 337 Unknown type "a" texte0.mbas

4 301 "byte"is not valid identifier texte0.mbas

4 301 "byte"is not valid identifier texte0.mbas

4 304 Syntax error: Expected "end" but "byte" found texte0.mbas

5 304 Syntax error: Expected "." but "cmcon" found texte0.mbas

0 102 Finished (with errors): 05 mar 2010, 10:27:43 texte0.mbppi

Link para o comentário
Compartilhar em outros sites

apresentou o seguinte erro:

0 1 mBPic.exe -DBG -pP16F628A -MSF -Y -DL -O11111114 -fo4 -N"C:\Arquivos de programas\PIC\texte0.mbppi" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\defs\" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\Uses\P16\" -SP"C:\Arquivos de programas\PIC\" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_String.mcl" "__Lib_Conversions.mcl" "__Lib_Time.mcl" "__Lib_Trigon.mcl" "__Lib_Trigonometry.mcl" "__Lib_Button.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Manchester.mcl" "__Lib_OneWire.mcl" "__Lib_PS2.mcl" "__Lib_Sound.mcl" "__Lib_SoftI2C.mcl" "__Lib_SoftSPI.mcl" "__Lib_SoftUART.mcl" "__Lib_EEPROM.mcl" "__Lib_PWM_b3.mcl" "__Lib_UART_b21.mcl" "__Lib_CF.mcl" "__Lib_GlcdFonts.mcl" "__Lib_Glcd.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl" "__Lib_RS485.mcl" "__Lib_T6963C.mcl" "texte0.mbas"

0 154 Available RAM: 208 [bytes], Available ROM: 2048 [bytes]

0 132 Compilation Started C:\Arquivos de programas\PIC\texte0.mbas

1 1015 Hint: Compiling unit "C:\Arquivos de programas\PIC\texte0.mbas" texte0.mbas

12 304 Syntax error: Expected "then" but "setbit" found texte0.mbas

12 301 "("is not valid identifier texte0.mbas

12 304 Syntax error: Expected "else" but "(" found texte0.mbas

12 304 Syntax error: Expected "end" but "," found texte0.mbas

12 304 Syntax error: Expected "if" but "3" found texte0.mbas

12 304 Syntax error: Expected "end" but ")" found texte0.mbas

13 304 Syntax error: Expected "." but "else" found texte0.mbas

0 102 Finished (with errors): 05 mar 2010, 10:39:15 texte0.mbppi

Link para o comentário
Compartilhar em outros sites




program texte0
symbol led=portb,3
dim temp As byte


cmcon=7
trisb=%00000111
main:
cmcon=7
trisb=%00000111
main2:
temp = portb
clearbit(temp,3)

if temp = %00000111 then 'verifica se os tres botões estão pressionados
setbit (led)
else
clearbit (led)
end if
goto main2
End.

veja se agora funciona!

abs.

Link para o comentário
Compartilhar em outros sites

APRESENTOU O SEGUINTE ERR0:

0 1 mBPic.exe -DBG -pP16F628A -MSF -Y -DL -O11111114 -fo4 -N"C:\Arquivos de programas\PIC\texte0.mbppi" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\defs\" -SP"C:\Arquivos de programas\Mikroelektronika\mikroBasic PRO for PIC\Uses\P16\" -SP"C:\Arquivos de programas\PIC\" "__Lib_Math.mcl" "__Lib_MathDouble.mcl" "__Lib_System.mcl" "__Lib_Delays.mcl" "__Lib_CType.mcl" "__Lib_String.mcl" "__Lib_Conversions.mcl" "__Lib_Time.mcl" "__Lib_Trigon.mcl" "__Lib_Trigonometry.mcl" "__Lib_Button.mcl" "__Lib_Keypad4x4.mcl" "__Lib_Manchester.mcl" "__Lib_OneWire.mcl" "__Lib_PS2.mcl" "__Lib_Sound.mcl" "__Lib_SoftI2C.mcl" "__Lib_SoftSPI.mcl" "__Lib_SoftUART.mcl" "__Lib_EEPROM.mcl" "__Lib_PWM_b3.mcl" "__Lib_UART_b21.mcl" "__Lib_CF.mcl" "__Lib_GlcdFonts.mcl" "__Lib_Glcd.mcl" "__Lib_LcdConsts.mcl" "__Lib_Lcd.mcl" "__Lib_RS485.mcl" "__Lib_T6963C.mcl" "texte0.mbas"

0 154 Available RAM: 208 [bytes], Available ROM: 2048 [bytes]

0 132 Compilation Started C:\Arquivos de programas\PIC\texte0.mbas

1 1015 Hint: Compiling unit "C:\Arquivos de programas\PIC\texte0.mbas" texte0.mbas

2 301 "program"is not valid identifier texte0.mbas

2 301 "program"is not valid identifier texte0.mbas

2 304 Syntax error: Expected "end" but "program" found texte0.mbas

2 304 Syntax error: Expected "." but "texte0" found texte0.mbas

0 102 Finished (with errors): 05 mar 2010, 11:20:37 texte0.mbppi

eu tambem estou tentando escrever o programa tambem, mais ainda nao consegui. vou almoçar agora, volto as 14:00 até lá.

amigo felipe__eletronic eu tambem continuo tentanto, só que até agora nada

ja estou em casa vou varar a noite estudando esse assunto, por favor não deiche de me ajudar, se por acaso tiver alguem tambem do forum que queira

nos ajudar tambem sou grato, estou por aqui a noite toda,beleza?

Link para o comentário
Compartilhar em outros sites

amigo filipe__eletronic bom dia.

cara fui dormir as tantas da madrugada, no etanto não evolui muito não,

mas consegui escrever esse códico:

program texte0

symbol botao0=portb,0

symbol botao1=portb,1

symbol led3=portb,3

main:

cmcon:7

trisb=%00000111

if testbit(botao0)=0 then

setbit(led3)

else

ift estbit(botao1)=0 then

setbit(led3)

else

end if

clearbit(led3)

end if

goto main

end.

mais tambem foi por agua abaicho, continuo tentando

poxa sumiu todo mundo, cade?vocês

Link para o comentário
Compartilhar em outros sites

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

estbit

não seria testbit? qual o erro que da?

O ultimo código que postou funcionou?Senão qual o erro que da (inflezmente minha praia é assembly, estou meio enferrujado em Basic) mas não posso deixar de ajudar pode ter certeza que lendo isso aqui:

http://forum.clubedohardware.com.br/microcontroladores-circuitos-linguagens/594329

Tem o super tutorial do mestre Paulo que ensina de modo pratico como funciona o basic (muitos ja leram e pegaram o jeito em poucas semanas).

E veja esse tópico o pessoal fera em basic está aqui:

http://forum.clubedohardware.com.br/tutorial-introducao-ao/692629

aqui o pessoal fera no basic vai te ajudar melhor do que eu.

Mas duvidas a respeito do microcontrolador e suas configurações pode perguntar que a gente resolve.

abs.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

aphawk amigo ve se pode me ajudar, estou postando esse codico:

program logica

symbol botao=portb,o

symbol botao1=portb,1

symbol led =portb,2

main:

cmcon=7

trisb=%00000011

if portb.0 and portb.1=0 then

setbit (portb,2)

else

clearbit(portb,2)

goto main

end if

end.

quero fazer o seguinte, somente quando eu apertar os dois botões juntos que o led acende, tem como?

ja joguei a toalha.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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!