Keil C51实现单片机与PC usb通讯(上位机)vb如何编写

想编写一个 c51与PC usb通讯 利用vb如何编写,请说明需要了解哪方面的知识 或 提供可参考的源代码和操作步骤!
解决后可追加高分! 谢谢高手们。

我以前写过。我猜你说的用 USB 指的是 USB 转串口之后进行通信,USB是没法直接作为串口使用的。

你需要一个 PL2303 模块,我以前在淘宝上买过也就几块钱一个,线路连接是 RXD<--->TXD,这样硬件就连接完成了。

上位机编写方面,VB提供一个叫 MSComm 的控件,专门做串行通信的,你把她调出来自己看看属性也就知道怎么写了。没什么难度。

希望对你有帮助。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-17

IAP15F2K61S2的芯片可以直接与计算机通信,KEIL可以控制,使用STC提供的下载软件就可以了。

串口通信或CH341转一下

第2个回答  2013-07-17
Imports System
Imports System.IO.Ports

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'获取计算机有效串口
Dim ports As String() = SerialPort.GetPortNames() '必须用命名空间,用SerialPort,获取计算机的有效串口
Dim port As String
For Each port In ports
portnamebox.Items.Add(port) '向combobox中添加项
Next port
'初始化界面
baudratebox.SelectedIndex() = 2
portnamebox.SelectedIndex() = 0
Serial_Port1() '初始化串口
Label3.Text = SerialPort1.IsOpen
statuslabel.Text = "串口未连接"
statuslabel.ForeColor = Color.Red
sendbox.Text = "123"
' baudratebox.Text = baudratebox.Items(0) 注释和不注释的地方可以替换
'portnamebox.Text = portnamebox.Items(0)
End Sub

Private Sub Serial_Port1() '设置串口参数
SerialPort1.BaudRate = Val(baudratebox.Text) '波特率
SerialPort1.PortName = portnamebox.Text '串口名称
SerialPort1.DataBits = 8 '数据位
SerialPort1.StopBits = IO.Ports.StopBits.One '停止位
SerialPort1.Parity = IO.Ports.Parity.None '校验位
End Sub

'关闭串口连接
Private Sub closebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closebtn.Click
Try
SerialPort1.Close() '关闭串口
Label3.Text = SerialPort1.IsOpen
If SerialPort1.IsOpen = False Then
statuslabel.Text = "串口未连接"
statuslabel.ForeColor = Color.Red
receivebox.Text = ""
receivebytes.Text = ""
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

'打开串口连接
Private Sub openbtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles openbtn.Click
Try
SerialPort1.Open() '打开串口
Label3.Text = SerialPort1.IsOpen
If SerialPort1.IsOpen = True Then
statuslabel.Text = "串口已连接"
statuslabel.ForeColor = Color.Green
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

'发送数据
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
SerialPort1.Write(sendbox.Text)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

End Sub

'触发接收事件
Public Sub Sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Me.Invoke(New EventHandler(AddressOf Sp_Receiving)) '调用接收数据函数
End Sub

'接收数据
Private Sub Sp_Receiving(ByVal sender As Object, ByVal e As EventArgs)
Dim strIncoming As String
Try
receivebytes.Text = Str(Val(receivebytes.Text) + SerialPort1.BytesToRead)
If SerialPort1.BytesToRead > 0 Then
Threading.Thread.Sleep(100) '添加的延时
strIncoming = SerialPort1.ReadExisting.ToString '读取缓冲区中的数据
SerialPort1.DiscardInBuffer()
receivebox.Text = strIncoming
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

串口通讯的,编程环境, vb.net本回答被提问者采纳

如何编程使上位机(界面c#)与下位机(单片机keil c)通过TCP\/UDP协议来...
看来兄弟是想用单片机弄网络终端啊,但是你的问题描述不够精准, 如果你是想单片机和PC之间实现ip\/tcp方式通讯, 那么在单片机端有支持这一协议可以和串口连接的的芯片, PC端的程序实际上你没必要求什么源码, 有源码你也不见得编译过去, 这个看看C#关于网络编程的几步走就行了, 很简单的. 这个方式实...

求一用Protues实现单片机与PC机串行通信 要在LED显示收到上位机的发的...
1、安装虚拟串口软件。如VSPD,这个旨在建立PC机与protues中的串口器件连接。2、了解一下51的串口,可以先尝试下载一个源代码来看。3、串口助手发送给单片机的,如果不去设置的话,发送的是ASCII码,例如你发送一个7,实际上发送的是十六进制的37H,所以在接收到之后要进行转换,直接减掉0x30(十六进制的...

单片机与pc通讯是不是要写两个c程序,就是那个是不是要用keil建立两个...
单片机与pc通讯,单片机程序是用keil建立的,上位机程序上VB或 VC建立的 划或者用串口调试助手

PC机与单片机之间的串口通信的程序
这里有个变通的办法,就是可以先在Keil中编写并调试好串口程序,然后将程序移植到其他单片机平台中(笔者在PIC18单片机开发中就使用了这种方法,收到了很好的效果。当然这是指在使用C语言开发单片机程序时,汇编语言是没有可移植性的)。至于如何能够减小程序移植的工作量,使得程序具有更好的通用性,以最小的代价就可以平...

微控制器系统版和开发板有什么区别。
51模拟器使用一片 SST89C58 微控制器来实现模拟功能 ,模拟机通过串列埠与 PC 连线。使用者可以开发小于等于28K的程式。 51模拟器直接插入使用者的应用板MCU的位置。 51模拟器的主要效能: 直接支援 KEIL C51 的 IDE 开发模拟环境。 可单步、断点、全速执行除错程式;可参考变数、RAM变数。 支援汇编、C语言混合...

单片机开发板是干什么的?
想要往单片机里写程序,首先当然是在Keil 或者相关的软件上编写好C或者汇编程序,然后经过编译器编译成单片机能够识别的机器码,再通过串口线或者其他通信线下载到单片机里。不同种类的单片机的烧写过程与下载线也是不一样的。详细情况你可以查看一下你所用的单片机。通过程序的编写和烧写进单片机里就可以验...

电子信息工程的出路?从哪方面发展比较好?单片机前景如何?
1)数字电子线路方向。从事单片机(8位的8051系列、32位的ARM系列等等)、FPGA(CPLD)、数字逻辑电路、微机接口(串口、并口、USB、PCI)的开发,更高的要求会写驱动程序、会写底层应用程序。单片机主要用C语言和汇编语言开发,复杂的要涉及到实时嵌入式操作系统(ucLinux,VxWorks,uC-OS,WindowsCE等等)的...

相似回答