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

上传人:l**** 文档编号:133821509 上传时间:2020-05-30 格式:DOC 页数:5 大小:56.50KB
返回 下载 相关 举报
Basic实现PC与89C51单片机之间的串行通信_第1页
第1页 / 共5页
Basic实现PC与89C51单片机之间的串行通信_第2页
第2页 / 共5页
Basic实现PC与89C51单片机之间的串行通信_第3页
第3页 / 共5页
Basic实现PC与89C51单片机之间的串行通信_第4页
第4页 / 共5页
Basic实现PC与89C51单片机之间的串行通信_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《Basic实现PC与89C51单片机之间的串行通信》由会员分享,可在线阅读,更多相关《Basic实现PC与89C51单片机之间的串行通信(5页珍藏版)》请在金锄头文库上搜索。

1、运用Visual Basic实现PC与89C51单片机之间的串行通信作者: 飙夏海燕摘要在Visual Basic开发环境下,运用VB提供的通信控件,实现PC机与89C51单片机之间的串行通信。关键词Visual Basic89C51单片机串行通信A/DD/A转换Serial Communication between PCand 89C51 with Visual BasicAbstract:Serial communication between PC and 89C51 single-chip-computer by MSCOMM control box of Visual Basic

2、is introduced.Key Words:Visual Basic89C51Serial communicationA/DD/A1系统简介在中科院等离子体物理研究所受控核聚变物理实验装置控制系统中,我们开发设计了以计算机控制为基础的各种信号予置系统,系统原理如图1所示。 图1系统原理图系统上位机由一台(PC586)微机构成,软件采用Visual Basic编程,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经线性光电隔离器送到现场。予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。同时,现场实测信号经过

3、线性光电隔离器,也可以实时显示在本系统的检测数字表头上和PC机的界面上。如此设计界面直观,而且利于对现场信号进行实时监测。因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。我们将分硬件和软件两方面分别介绍该系统的情况。2硬件介绍从系统原理图上可见,本系统关键的硬件部分是单片机系统的设计,上位机PC机则直接利用它的RS232串行口即可。系统硬件原理如图2所示。图2系统硬件原理图本系统采用CPU为89C51的单片微机,89C51本身带有2K的存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上

4、具有更加简单、方便等优点,而且完全兼容MCS 51系列单片机的所有功能。该单片机系统的工作流程是这样的:89C51单片机利用自身具有的串行通信口,直接接收PC机传送下来的串行数据,然后将所接收的各组数据通过并行口输出,经过数字光隔,送到数据锁存器74LS373,最后将锁存的数据送到D/A转换器进行数模转换并通过运放将模拟信号输出,同时显示在相应的予置数字表上。现场返回的信号通过隔离,经过A/D转换器和数据锁存器变成单片机所需的并行数字信号送到单片机的数据存储单元中,再由串行口返送到PC机上,同时显示在PC机界面和本系统相对应的检测数字表上以便于予置和实际情况相对比。利用89C51输出口对不同数

5、据锁存器74LS373和A/D、D/A的片选输出可以实现一台单片机同时对多路不同信号进行予置和检测。3软件结构软件分PC机Visual Basic编程和89C51单片机汇编语言编程两部分,现分别介绍如下。3.1PC机部分PC机采用Visual Basic(简称VB)编程。目前,VB已成为WINDOWS系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。VB支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件,而且可以十分简便地作出良好的人机界面。在标准串口通信方面,VB提供了具有强大功能的通信控件MSCOMM,文件名为MSCOMM

6、.VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置。这是一个标准的十位串口通信,包括8位标准数据和数据的起始位和停止位。在发送或接收数据过程中触发OnComm事件,通过编程访问CommEvent属性了解通信事件的类型,分别进行各自的处理。每个通信控件对应一个串口,可以设计多个通信控件来访问多个通信口。VB通信控件设计软件如下:Global comm_time As Integer/定义一些全局变量Global data(1000)As IntegerGlobal Receive(1000)As IntegerPrivate Sub Form_Load(

7、)/串口初始化Comml.CommPort=1/设置串口1Comml.Settings=“9600,N,8,1”/波特率:9600 奇校验,8位数据,1位停止位Comml.InputLen=0/读取接收缓冲区的所有字符Comml.InBufferSize=256/设置接收缓冲区为256字节Comml.OutBufferSize=256/设置发送缓冲区为256字节Comml.PortOpen=True/打开串口1Comml.SThreshold=1/发送缓冲区空触发发送事件Comml.RThreshold=1/每一个字符到接收缓冲区都触发接收事件End SubPublic Sub send-da

8、ta()/发送n个数据Fori=0 To nComml.Output=Chr(data(i)NextiEnd SubPublic Sub Comml_OnComm()/接收数据触发OnComm()事件Select Case Comml.CommEvent/在CommEvent中接收数据Case comEvReceiveReceive(comm_time)=Asc(Comml.Input)/将接收数据放在Receive(comm-time)数组中Comm_time=comm_time+1End SelectEnd Sub3.2单片机部分单片机89C51采用MCS51系列的汇编语言编程。它有一个标

9、准的串行口,有4种工作方式,其中方式1是标准的10位异步通信方式,10位数据和PC机的标准串口相对应,由串行口控制寄存器SCON设置状态,其字节地址为98H。如下式所示: SM0 SM1 SM2 REN TB8 RB8 T1 R1 本系统中89C51串口控制器SCON设置为50H,SM0、SM1为0、1,即为串行工作方式1,REN为1,即允许串口接收。另外,还应使89C51的中断允许寄存器IE的开放或禁止所有中断位EA为1,开放或禁止串行通道中断位ES为1,即允许串行口中断。89C51的并行口P0和P2分别作为八位数据的输入和输出口。P3口的输出作为数据锁存器和D/A、A/D的禁止和允许。程序

10、流程如图4所示。单片机程序清单简介:(1)主程序MOVSP,#07ACALLINIT/调串口初始化子程序STRAT:CLREA清中断MOVR0,#DATA1存放接收数据首地址#DATA1MOVR1,#DATA2存放发送数据首地址#DATA2MOVR2,#N数据个数SETBEA开中断ACALLD/A调延时并启动D/A转换子程序ACALLSEND启动A/D转换子程序并串口发送SJMPSTART返回(2)串口初始化程序INIT:MOVTH1,#FD设置波特率MOVTL1,#00MOVTMOD,#20定时器2为工作方式2MOVTCON,#40启动定时器SETBES允许串口中断MOVSCON,#50置串

11、行口工作方式1MOVP2,#0FRET(3)中断服务程序0023PUSHACC保护堆栈PUSHPSWMOVDPH,#00JBTI,TEMP1判断是否为发送,是则跳转WAIT:JNBRI,WAIT判断是否为接收,否则循环MOVA,SBUF将接收的数据送到数据地址MOVR0,ACLR98清接收中断INCR0DJNZR1,TEMP1数据若送完则将标志置1SETB00TEMP1:CLR99清发送中断POPPSWPOPACCRETI(4)延时及调D/A转换子程序D/A:INCDPTR延时MOVA,DPHCJNEA,#FF,D/AJNB00,D/A数据未送完,返回CLR00送完则将送完标志清零ACALLO

12、UTRETOUT:CLRAMOVA,R0将接收的串行口数据送到P2口MOVP2,ASETB90封锁数据锁存器MOVR3,#00WAIT1:DJNZR3,WAIT1延时CLR90解除封锁数据锁存器RET(5)A/D转换及串口发送子程序SEND:MOVDPTR,#ADRESSIN0通道地址首址MOVR7,#08H从IN0-IN7依次采集的通道个数LOOP1:MOVXDPTR,A启动A/D转换MOVR6#0AH延时100sDELAY:NOPNOPNOPDJNZR6,DELAYMOVX A,DPTR将转换结果送到指定地址R1MOVR1 AMOVXA,R1MOVSBUF,A将指定地址数据从串口输出INCDPTRINCR1DJNZR7,LOOP1RET 图3程序流程图4结束语该系统目前已成功地应用在中科院等离子体物理研究所的HT-7超导托卡马克受控核聚变物理实验装置上,运行良好。对于目前广泛应用的Windows环境下实现PC机与单片机之间的通信问题,希望本文能够提供一点有用的参考价值。作者单位:中科院等离子体物理研究所230031

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号