电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Basic实现PC与89C51单片机之间的串行通信VIP免费

Basic实现PC与89C51单片机之间的串行通信_第1页
1/6
Basic实现PC与89C51单片机之间的串行通信_第2页
2/6
Basic实现PC与89C51单片机之间的串行通信_第3页
3/6
运用VisualBasic实现PC与89C51单片机之间的串行通信作者:沈飙夏海燕摘要在VisualBasic开发环境下,运用VB提供的通信控件,实现PC机与89C51单片机之间的串行通信。关键词VisualBasic89C51单片机串行通信A/DD/A转换SerialCommunicationbetweenPCand89C51withVisualBasicAbstract:SerialcommunicationbetweenPCand89C51single-chip-computerbyMSCOMMcontrolboxofVisualBasicisintroduced.KeyWords:VisualBasic89C51SerialcommunicationA/DD/A1系统简介在中科院等离子体物理研究所受控核聚变物理实验装置控制系统中,我们开发设计了以计算机控制为基础的各种信号予置系统,系统原理如图1所示。图1系统原理图系统上位机由一台(PC586)微机构成,软件采用VisualBasic编程,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经线性光电隔离器送到现场。予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测信号经过线性光电隔离器,也可以实时显示在本系统的检测数字表头上和PC机的界面上。如此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。我们将分硬件和软件两方面分别介绍该系统的情况。2硬件介绍从系统原理图上可见,本系统关键的硬件部分是单片机系统的设计,上位机PC机则直接利用它的RS232串行口即可。系统硬件原理如图2所示。第2页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共6页图2系统硬件原理图本系统采用CPU为89C51的单片微机,89C51本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单、方便等优点,而且完全兼容MCS51系列单片机的所有功能。该单片机系统的工作流程是这样的:89C51单片机利用自身具有的串行通信口,直接接收PC机传送下来的串行数据,然后将所接收的各组数据通过并行口输出,经过数字光隔,送到数据锁存器74LS373,最后将锁存的数据送到D/A转换器进行数模转换并通过运放将模拟信号输出,同时显示在相应的予置数字表上。现场返回的信号通过隔离,经过A/D转换器和数据锁存器变成单片机所需的并行数字信号送到单片机的数据存储单元中,再由串行口返送到PC机上,同时显示在PC机界面和本系统相对应的检测数字表上以便于予置和实际情况相对比。利用89C51输出口对不同数据锁存器74LS373和A/D、D/A的片选输出可以实现一台单片机同时对多路不同信号进行予置和检测。3软件结构软件分PC机VisualBasic编程和89C51单片机汇编语言编程两部分,现分别介绍如下。3.1PC机部分PC机采用VisualBasic(简称VB)编程。目前,VB已成为WINDOWS系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件,而且可以十分简便地作出良好的人机界面。在标准串口通信方面,VB提供了具有强大功能的通信控件MSCOMM,文件名为MSCOMM.VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位和停止位。在发送或接收数据过程中触发第3页共6页第2页共6页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共6页OnComm事件,通过编程访问CommEvent属性了解通信事件的类型,分别进行各自的处理。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。VB通信控件设计软件如下:Globalcomm_timeAsInteger//定义一些全局变量Globaldata(1000)AsIntegerGlobalReceive(1000)AsIntegerPrivateSubForm_Load()’//串口初始化Comml.CommPort=1//设置串口1Comml.Settings=“9600,N,8,1”//波特率:9600奇校验,8位数据,1位停止位Comml.InputLen=0//读取接收缓冲区的所有字符Comml.InBufferSize=256//设置接收缓冲区为256字节Comml.Ou...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Basic实现PC与89C51单片机之间的串行通信

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部