Visual Basic + Pic

Programação Visual Basic

Moderadores: 51, guest2003

Visual Basic + Pic

Mensagempor welltom » 02 Mar 2008 10:35

Olá Colegas,
Estou tentando algumas experiencia, usando o visual basic,
como sou iniciante, gostatia de saber dos colegas se é posssivel
programar os microcontroladores pic, em C, e comunicar-se
(trocar informações entre eles), usando um programa no
computador usando o visual basic, se alguem poder indicar
sites ou mesmo literaturas sobre o assunto, e poder me
informar, ficaria muito grato.
att.
Wellington
welltom
Bit
 
Mensagens: 44
Registrado em: 30 Ago 2007 05:24

Mensagempor LeandroPIC » 03 Mar 2008 12:15

Tem uma OCX que se chama COMMCTRL, ou um nome parecido que vc pode usar para se comunicar pela serial, vc adiciona no seu projeto e no MSDN tem todas as DICAS para vc fase-lo Funfar.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Sub e function em VB

Mensagempor welltom » 09 Mar 2008 08:09

Obrigado leando,
Sou iniciando no VB, talves vs possa darme mais uma ajuda:
estou tentando fazer rodar (run), um aplicativo que faz acesso
as portas serial do pc, usando a plataforma , junto a pasta de
desenvolmimento tenha um arquivo com extensão.DLL, que
permite o acesso as portas do pc, mas no corpo do meu
programa estas linhas:

Private Sub Form_Load()
i = OPENCOM("COM2,1200,N,8,1")
If i = 0 Then
i = OPENCOM("COM1,1200,N,8,1")
Option1.Value = True
End If
If i = 0 Then MsgBox ("COM Interface Error")
TIMEINIT
End Sub

Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub

Private Sub Option1_Click()
i = OPENCOM("COM1,1200,N,8,1")
If i = 0 Then MsgBox ("COM1 not available")
End Sub

Private Sub Option2_Click()
i = OPENCOM("COM2,1200,N,8,1")
If i = 0 Then MsgBox ("COM2 not available")
End Sub

Private Sub Command1_Click()
d = HScroll1.Value
SENDBYTE d
End Sub

Private Sub Timer1_Timer()
d = READBYTE
If d > -1 Then Text1.Text = Str$(d)
End Sub


Não estou sabendo o procedimento de como juntar estas
funções (declarations) no caixa de códigos do meu
programa, para que estas funções e sub sejam
chamadas, nas linhas abaixo temos a declaração das
mesmas, mas não sei se são lançadas todas desta
maneira ou cada uma delas individual:


Declare Function OPENCOM Lib "Port" (ByVal A$) As Integer
Declare Sub CLOSECOM Lib "Port" ()
Declare Sub SENDBYTE Lib "Port" (ByVal b%)
Declare Function READBYTE Lib "Port" () As Integer
Declare Sub DTR Lib "Port" (ByVal b%)
Declare Sub RTS Lib "Port" (ByVal b%)
Declare Sub TXD Lib "Port" (ByVal b%)
Declare Function CTS Lib "Port" () As Integer
Declare Function DSR Lib "Port" () As Integer
Declare Function RI Lib "Port" () As Integer
Declare Function DCD Lib "Port" () As Integer
Declare Sub DELAY Lib "Port" (ByVal b%)
Declare Sub TIMEINIT Lib "Port" ()
Declare Sub TIMEINITUS Lib "Port" ()
Declare Function TIMEREAD Lib "Port" () As Long
Declare Function TIMEREADUS Lib "Port" () As Long
Declare Sub DELAYUS Lib "Port" (ByVal l As Long)
Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)

att.
Wellington
welltom
Bit
 
Mensagens: 44
Registrado em: 30 Ago 2007 05:24

Mensagempor LeandroPIC » 10 Mar 2008 12:44

o VB não é igual a C não é preciso chamar as funçoes que trata os botoes e outros controles, não precisa men ter main. POST mais detalhes POR FAVOR
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Enviar e receber dados do PIC

Mensagempor welltom » 10 Mar 2008 21:47

Leandro,
Vou tentar ser mais claro, estou tentando fazer uma circuito
chaveador de audio e video, usando os populares integrados
4051/4052/4053, o micro controlador pic vai estar programado
e carregado com um programa em C, preciso apenas fazer
no VB um outro programinha contenta uma tela com 10 botões,
(enumerados de 1 a 10), e enviar este numero atraves das
portas seriais (Com1 ou Com2), para que o pic receba e
execute as funções que preciso.
Obs: Este teclado vai funcionar da seguinte forma, todas as
teclas vai ser acionadas individualmente, ou seja quando a
tecla 1 for acionada as outras deverão estar desligadas, quando
acionar a tecla (por ex) a tecla 1 que antes estava acionada, sera
desativada (Atarei enviando para o pic o numero 2), ou outro
código qualquer.
A portas de saidas devera ser abertas e fechadas, tambem a
posibilidade de pordermos ajustar a velocidade da transmissão
serial (EX: 1200, 2400,9600 ect...).

Wellington
welltom
Bit
 
Mensagens: 44
Registrado em: 30 Ago 2007 05:24

Mensagempor LeandroPIC » 11 Mar 2008 12:21

vou preparar um exemplo em VB depois eu POST.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor LeandroPIC » 12 Mar 2008 12:37

é só vc adicionar os compomentes no form e pronto, não esqueça de adcionar o COMMON CONTROL.


Option Explicit
Dim BufferComm As String

Private Sub Check1_Click()

If Check1.Value = 1 Then
MSComm1.DTREnable = True
Else
MSComm1.DTREnable = False
End If
End Sub

Private Sub Check2_Click()
If Check1.Value = 1 Then
MSComm1.RTSEnable = True
Else
MSComm1.RTSEnable = False
End If

End Sub

Private Sub CmdEnviar_Click()
On Local Error GoTo MOSTRA
'Envia o texto para a porta COMM
MSComm1.Output = TxtEnvia.Text & vbNewLine
TxtEnvia.Text = "" 'limpa o tx
TxtEnvia.SetFocus
Exit Sub
MOSTRA:
If Err = 8018 Then
MsgBox "Habilite a porta", _
vbApplicationModal + vbInformation + vbOKOnly, "Habilitar a porta"
Cboporta.SetFocus
Else
MsgBox Err.Description & " " & Err.Number
End If
End Sub
Private Sub CmdLimparRX_Click()
Txtrecebe.Text = "" 'limpa o rx
TxtEnvia.SetFocus
If OptHabilitada.Value = True Then
TxtEnvia.SetFocus
Else
Cboporta.SetFocus
End If
End Sub
Private Sub CmdLimparTX_Click()
TxtEnvia.Text = "" 'limpa o tx
TxtEnvia.SetFocus
If OptHabilitada.Value = True Then
TxtEnvia.SetFocus
Else
Cboporta.SetFocus
End If
End Sub
Private Sub CmdSair_Click()
End 'sai do programa
End Sub
Private Sub Cmdsobre_Click()
FrmSobre.Show 1, Me
End Sub
Private Sub Form_Load()
Cboporta.Clear
Cboporta.AddItem "COM1"
Cboporta.ItemData(Cboporta.NewIndex) = 1
Cboporta.AddItem "COM2"
Cboporta.ItemData(Cboporta.NewIndex) = 2
Cboporta.AddItem "COM3"
Cboporta.ItemData(Cboporta.NewIndex) = 3
Cboporta.AddItem "COM4"
Cboporta.ItemData(Cboporta.NewIndex) = 4
Cboporta.AddItem "COM5"
Cboporta.ItemData(Cboporta.NewIndex) = 5
Cboporta.AddItem "COM6"
Cboporta.ItemData(Cboporta.NewIndex) = 6
Cboporta.AddItem "COM7"
Cboporta.ItemData(Cboporta.NewIndex) = 7
Cboporta.AddItem "COM8"
Cboporta.ItemData(Cboporta.NewIndex) = 8
Cboporta.AddItem "COM9"
Cboporta.ItemData(Cboporta.NewIndex) = 9
Cboporta.AddItem "COM10"
Cboporta.ItemData(Cboporta.NewIndex) = 10
Cboporta.AddItem "COM11"
Cboporta.ItemData(Cboporta.NewIndex) = 11
Cboporta.AddItem "COM12"
Cboporta.ItemData(Cboporta.NewIndex) = 12
Cboporta.AddItem "COM13"
Cboporta.ItemData(Cboporta.NewIndex) = 13
Cboporta.AddItem "COM14"
Cboporta.ItemData(Cboporta.NewIndex) = 14
Cboporta.AddItem "COM15"
Cboporta.ItemData(Cboporta.NewIndex) = 15
Cboporta.AddItem "COM16"
Cboporta.ItemData(Cboporta.NewIndex) = 16
Cboporta.ListIndex = 0
'**********************************************************
'limpa cbovelocidade
CboVelocidade.Clear
CboVelocidade.AddItem "600"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 600
CboVelocidade.AddItem "1200"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 1200
CboVelocidade.AddItem "2400"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 2400
CboVelocidade.AddItem "9600"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 9600
CboVelocidade.AddItem "19200"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 19200
CboVelocidade.AddItem "38400"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 38400
CboVelocidade.AddItem "56000"
CboVelocidade.ItemData(CboVelocidade.NewIndex) = 56000
'prioriza a opção que o cboVelocidade mostra-ra primeiro
CboVelocidade.ListIndex = 3
'**********************************************************
'limpa cbobitsDeDados
CbobitsDeDados.Clear
CbobitsDeDados.AddItem "5"
CbobitsDeDados.ItemData(CbobitsDeDados.NewIndex) = 5
CbobitsDeDados.AddItem "6"
CbobitsDeDados.ItemData(CbobitsDeDados.NewIndex) = 6
CbobitsDeDados.AddItem "7"
CbobitsDeDados.ItemData(CbobitsDeDados.NewIndex) = 7
CbobitsDeDados.AddItem "8"
CbobitsDeDados.ItemData(CbobitsDeDados.NewIndex) = 8
'prioriza a opção a ser mostrada
CbobitsDeDados.ListIndex = 3
'**********************************************************
'limpa cboParidade
CboParidade.Clear
CboParidade.AddItem "Nenhum"
CboParidade.ItemData(CboParidade.NewIndex) = 1 'N
CboParidade.AddItem "Par"
CboParidade.ItemData(CboParidade.NewIndex) = 2 'E
CboParidade.AddItem "Ímpar"
CboParidade.ItemData(CboParidade.NewIndex) = 3 'O
CboParidade.AddItem "Marca"
CboParidade.ItemData(CboParidade.NewIndex) = 4 'M
CboParidade.AddItem "Espaço"
CboParidade.ItemData(CboParidade.NewIndex) = 5 'S
'prioriza a opção a ser mostrada
CboParidade.ListIndex = 0
'**********************************************************
'limpa cboBitParada
CboBitParada.Clear
CboBitParada.AddItem "1"
CboBitParada.ItemData(CboBitParada.NewIndex) = 1
CboBitParada.AddItem "2"
CboBitParada.ItemData(CboBitParada.NewIndex) = 2
'prioriza a opção a ser mostrada
CboBitParada.ListIndex = 0
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Txtrecebe.Text = Txtrecebe.Text & MSComm1.Input

End Select
End Sub

Private Sub OptDesabilitada_Click()
MSComm1.PortOpen = False
'Desabilita a recepção de dados
MSComm1.RThreshold = 0
Cboporta.Enabled = True
CboVelocidade.Enabled = True
CboParidade.Enabled = True
CbobitsDeDados.Enabled = True
CboBitParada.Enabled = True
OptDesabilitada.Enabled = False
OptDesabilitada.Value = False
Lblstatus.Caption = "Desconectado:"

End Sub

Private Sub OptHabilitada_Click()
Dim vVelocidade As Long
Dim vParidade As String
Dim vbitDados As Byte
Dim vbitParada As Byte
Dim vSetcomm As String
Dim vChecaBitParidade As Byte
On Local Error GoTo MOSTRA

vVelocidade = CboVelocidade.ItemData(CboVelocidade.ListIndex)
vbitDados = CbobitsDeDados.ItemData(CbobitsDeDados.ListIndex)
vbitParada = CboBitParada.ItemData(CboBitParada.ListIndex)
'************************************************************
vChecaBitParidade = CboParidade.ItemData(CboParidade.ListIndex)
Select Case vChecaBitParidade

Case 1
vParidade = "n"
Case 2
vParidade = "e"
Case 3
vParidade = "o"
Case 4
vParidade = "m"
Case 5
vParidade = "s"
End Select
'************************************************************

vSetcomm = Str(vVelocidade) & "," & vParidade & "," & Str(vbitDados) & "," & Str(vbitParada)
MSComm1.CommPort = Cboporta.ItemData(Cboporta.ListIndex)
MSComm1.Settings = vSetcomm
Lblstatus.Caption = "Conectado:" & vSetcomm
MSComm1.PortOpen = True
Cboporta.Enabled = False
CboVelocidade.Enabled = False
CboParidade.Enabled = False
CbobitsDeDados.Enabled = False
CboBitParada.Enabled = False
'Habilita a recepção de dados
MSComm1.RThreshold = 1
OptDesabilitada.Enabled = True
TxtEnvia.SetFocus

Exit Sub
MOSTRA:
If Err = 8005 Then
MsgBox "Um outro Progama já esta usando a Porta", _
vbApplicationModal + vbInformation + vbOKOnly, "Porta já utilizada"
OptHabilitada.Value = False
Lblstatus.Caption = "Desconectado:"
Cboporta.SetFocus

ElseIf Err = 8002 Then
MsgBox "Porta inexistente", _
vbApplicationModal + vbInformation + vbOKOnly, "Porta inexistente"
OptHabilitada.Value = False
Lblstatus.Caption = "Desconectado:"
Cboporta.SetFocus
Else
MsgBox Err.Description & " " & Err.Number
End If

End Sub

Private Sub Timer1_Timer()
Label8.Caption = MSComm1.CTSHolding
Label9.Caption = MSComm1.DSRHolding
Label10.Caption = MSComm1.CDHolding
End Sub

Private Sub Txtrecebe_Click()
If OptHabilitada.Value = True Then
TxtEnvia.SetFocus
Else
Cboporta.SetFocus
End If
End Sub



Mas no MSDN tem tudo que vc precisa saber de uma Olhada!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Visual Basic + Pic

Mensagempor welltom » 12 Mar 2008 23:11

Leandro, obrigado pela grande ajuda, e paciencia que voçê tendo
em passar estas informações, para um iniciante em VB como eu,
estou começando a ler o livro (iniciando no visual basic 6) do
autor (JOSE ROBERTO VARELA), e confesso que estou com muito
dificuldade em localizar as funções que vs pediu para adicional,
lancei os listagem que postada no form, mas não consegui localizar
a função que vs citou, tentei dar o comando run, apareceu a seguinte
mensagem (Complile error: Variable not defined), (The MSDN Collection
does not exixt, Please reinstall MSDN).
OBS:
TENHO INSTALADO NA MINHA MAQUINA O: (microsoft visual basic 6.0),
ou eu não estou conseguindo localizarou não existe , na versão instalada.
att.
Wellington
welltom
Bit
 
Mensagens: 44
Registrado em: 30 Ago 2007 05:24

Mensagempor LeandroPIC » 13 Mar 2008 13:20

na verdade o MSDN e o help do visual estudio são 4 CDS, na net tem para baixar, Há vc não localizou o COMMOM CONTROL então fassa assim click com o botão direito do mouse na parte esquerda onde tem os controles, de um click em na ultima opção ai vc verá uma tela onde tem todas as OCX estaladas na sua maquina ai vc adiciona ela, mas se não intendeu fassa assim na net tem apostilas de pilha digite no google isto:

apostilando

é um site que tem varias apostilas de tudo sobre VB e outras linguagem lá esplica como adcionar OCX e vc vai apender tudo que precisa saber, é só vc fazer um cadastro rapido e pronto, mas qualquer duvida POST
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

VISUAL BASIC + PIC

Mensagempor welltom » 14 Mar 2008 11:34

Leandro,valeuuu... ,
realmente a minha versão não é
completa, vou baixar ou compra outra
versão, qualquer dúvida, volta a postar
no forom, Obrigado....!
att.
Wellington
welltom
Bit
 
Mensagens: 44
Registrado em: 30 Ago 2007 05:24


Voltar para Visual Basic

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

cron

x