Keil C51实现单片机与PC串口(上位机)vb如何编写

2023-01-29

想编写一个 c51与pc串口通讯 利用vb如何编写,请说明需要了解哪方面的知识 或 提供可参考的源代码和操作步骤!
解决后可追加高分! 谢谢高手们。 .
实现你讲的功能,必须用VB中的MSComm控件

MSComm 控件有很多重要的属性,在开始使用MSComm控件之前。需要先了解其属*、*件或错误。

属性 描述
CommPort 设置或返回通信端口号
Settings 以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位
PortOpen 设置或返回通信端口的状态。也可以打开和关闭端口
Input 返回和删除接收缓冲区中的字符
Output 将字符串写入发送缓冲区

CommEvent 属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。
有关具体的描述,找相应的教材仔细看吧。

VB.的MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工 、事件驱动的、高效实用的通信程序。但在实际通信软件设计过程中,MSComm控件并非像想像中那样完美和容易控制.。

一般悦来,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与pC进行数据传输和皿信的通道。这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM. DRV解释并传递给设备驱动程序,作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通信控件的属*和*件即可。

MSComm控件提供了两种处理通信的方法:

1.事件驱动通信,是一种功能很强的处理串口活动的方法。在大多数情况下,用户需要获知事件发生的时间,例如,在CD(Carrier Detect)线或RTS(Request To Send)线上有字符到达或发生了改变等。在这种情况下,使用MSComm控件的OnComm事件捕获和处理这些通信事件。OnComm也可以捕获和处理通信中的错误。要获取所有事件和通信错误的完整清单,参阅CommEvent属性。

2.程序员也可以在每个重要的程序功能之后检查CommEvent属性的值来检测事件和通信错误。这对小的自含程序可能比较常用。例如,如果编写一个简单的电话拨号程序,那么在接收了每个字符后都产生一个事件并没有意义,因为你只打算从调制解调器中接收OK响应信息。
使用的每个MSComm控件都与一个串口对应。如果在应用程序中需要访问多个串口,必须使用多个MSComm控件。可以在Windows 控制面板中修改串口地址的中断地址。

用Mscomm控件 编写通信程序

在VB中新建一个工程文件。
添加Microsoft Comm Control 组件,
在简体Form1中加入Command命令按钮并取名为CmdTest,MSComm控件取名为SComm1,加入如下程序代码。

Private Sub cmdTestClick ( ) '打开串口
MSComml.CommPort =2 '设定Com2
If MSComml.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位
MSComm1.PortOpen = True '打开串口
End if
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '滑空接收缓冲区
'发送字符数据时注意必须用回车符(vbcr)结束
MSComm1.Output="This is a qood book ! " &vbCr
'泼打电话号码或发送AT命令
MSComm1.Output = "ATDT 05778191898 , & vbCr
'发送字符数组数据时注意ByteArray必须事先定义赋值
Dim ByteArray as byte( )
'定义动态数组
ReDim ByteArray(1)
'重定义数组大小
ByteArray ( 0 ) =0
ByteArray ( 1 ) = 1
MSComm1.Output = ByteArray
End Sub
private Sub MScommEvent( )
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
MSComm1.InputLen = 0
'接收二进制数据
MSComm1.InputMode= ComInputModeBinary
Buffer=MSComm1.Input
'接收字符数据
MSComm1.InputMode=comInputModeText
Buffer = MSComml.Input
Case else
End Select
End sub
参考知识1 VB有个ActiveX 控件,叫 MSCOMM,利用这个控件,可以进行串口通信,这是最常用的方法,另外还有API函数法,不过不适合初学者使用。

你去百度文库里搜索 VB MSCOMM,里面有很多前辈高人的经验总结,都很详细,你可以自学,很简单的。

我推荐你先看这个,然后再看其他的资料。
http://wenku.baidu.com/view/c081a5a5b0717fd5360cdc81.html本回答被提问者和网友采纳

相似知识
上位机用啥编程? 上位机的编程语言很多啊,VC,C++,C#,VB,VB.NET等等,关键是看你熟悉哪种编程语言了,这几种语言都是面向对象的编程语言。VB入门比较容易,而且比较容易掌握,VB.NET是VB的升级版本,现
上位机和下位机指啥? 上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位
求毕业设计参考:单片机与上位机(PC)通信电路与软件设计 我帮你写了个程序:/* 硬件环境:AT89C51 P1口接LED8个灯*/#include "reg52.h"#define uchar&n
什么是“上位机”和“下位机”,“单片机”属于哪个? 一搬情况下,当你的板子和电脑相连时,电脑是上位机,板子是下位机。同理,用于连接板子的电脑软件比如串口控制软件usb控制软件叫上位机软件,板子上跑的程序就下位机程序(软件)。参考知识1一搬情况下,当你的
什么是单片机上位机啊? 参考知识1  单片机上位机简介:  单片机上位机是指可以直接发出操控命令的计算机,一般是PC/hostcomputer/mastercomputer/uppercomputer,屏幕上显示各种信号变化
modbus测试上位机软件设计 怎么用VC做个串 参考知识1用VC++编写USB接口通信程序VC++串口通信根本管底层协议MODBUS应用层协议VC编程需要管VC编写串口通信候要管用户层数据传输格式于MODBUS要管
MATLAB实现一个上位机软件,控制两个下位机的单片机,怎样实现方便点? 参考知识1好!虽然不是很有经验,但又有所涉及!本人的观点,都应当懂一点!然后才有能力精通一方向!我在学校是学单片机上的系统开发的,学的还可以,算是比较精通了(学校)。本来觉得差不多了,能混口饭了,,,
什么是PLC上位机编程 监控系统上位机一般都是工控机!也就是工业计算机,通过里面的软件和各种接口,例如串口、以太网等等,采集各种设备的数据,例如PLC、仪表、变频器等等,工控机把数据采集上来,通过软件把数据显示到画面上,可以