VB与AT89C52单片机的串行通信实现

需积分: 10 2 下载量 19 浏览量 更新于2024-09-13 2 收藏 72KB DOC 举报
"VB与单片机串口通信技术的实现主要涉及两个核心部分:单片机(以51单片机为例)与个人计算机(PC)的串行通信,以及在VB(Visual Basic 6.0)环境中使用MSComm控件进行串口通信的编程。本文介绍了如何使用24C256串行存储器和MAX485通信芯片来实现这一通信过程。 在单片机端,AT89C52是常见的微控制器,它通过串行通信接口与外部设备如24C256交互。24C256是一种I²C总线的串行EEPROM,用于存储数据。单片机的串行数据发送端TXD连接到MAX485的DI端,接收端RXD连接到D0端,RE接地,DE连接到单片机的定时器1端(P3.5)。此外,24C256的SDA和SCL线分别与单片机的P3.7和P3.6相连,构成硬件通信链路。 MAX485是一个RS-485/422收发器,它提供了长距离、多点通信的能力,增强了系统间的通信稳定性。通过这样的配置,可以实现单片机与外部设备的双向串行通信,满足数据传输的需求。 在PC端,VB6.0中的MSComm控件是进行串口通信的主要工具。MSComm控件提供了一系列事件和属性,使得开发者能够方便地控制串行端口的打开、关闭、数据发送和接收等操作。通过设置其通信参数,如波特率、数据位、停止位、校验方式等,可以实现与单片机的同步通信。 实际应用中,VB程序通过MSComm控件读取或发送指令到串口,这些指令被单片机接收后,执行相应的操作,如读取或写入24C256存储的数据。这样,便可以实现远程监测和控制单片机的功能,例如读取温度、电流和速度等传感器数据,进行故障诊断和数据分析。 总结来说,VB与单片机的串口通信技术结合了硬件电路设计(如24C256和MAX485的应用)和软件编程(如VB中的MSComm控件),为实现微控制器与个人计算机之间的高效、可靠通信提供了有效方案。这种通信方式广泛应用于工业控制、数据采集和监控系统,提高了系统的灵活性和可扩展性。"
2010-08-11 上传
//---------------------------------------SComm控件的常用属性和方法----------------------------- Commport;设置或返回串口号。 SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口状态。 InputMode:设置或返回接收数据的类型。 Inputlen:设置或返回一次从接收缓冲区中读取字节数。 InBufferSize:设置或返回接收缓冲区的大小,缺省值为l 024字节。 InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。 Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。 OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。 OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。 Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。 设置好这些属性和方法,程序很容易就可以编出来了,其中要注意的是串口的波特串设置,OnComm事件的程序编写。 程序的设计是这样的,计算机向单片机发送一个’S’,表示通信开始。然后紧接着又发送9个字符,其中最后一个字符是前面9个字符(包括’S’)的校验和。单片机正确接收到10个字符后,把10个字符从新又送回来。 //---------------------------------------初始化串口设计----------------------------- Private Sub Form_Load() ..................................... d Sub //---------------------------------------接收单片机发送的数据,并显示----------------------------- Private Sub Comm1_OnComm() Select Case Comm1.CommEvent '设置oncomm事件,读取片机内存的值 Case comEvReceive Inputsignal=comm1.Input Text1.Text=Asc(Inputsignal) '单片机内存的值用textbox显示出 Case Else End select End Sub