还剩45页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
本科毕业设计(论文)题目步进电机的远程实时控制系统设计学院机械电子工程学院专业学号学生姓名指导教师职称二O一二年五月二十日摘要以步进电机为控制对象,完成一套基于485总线步进电机转速远程实时控制系统该系统以上位机(PC机)和下位机(单片机控制系统)组成通过VisualBasic的串行通信控件MSComm和RS485总线完成两者之间的通信上位机发出控制指令,通过串行口通信,由下位机完成两台步进电机的速度与方向控制,并实现步进电机速度的实时显示上位机要发出正转、反转、加速、减速及检测速度等指令因为是远距离的通讯,指令的传输要通过485总线,而数据的发送和接收则要依靠VisualBasic的通信控件通过通信接口,用户可以利用计算机与下位机进行联机,而从仪器上取得数据或设置,直接控制仪器的操作,而计算机又在数据处理上又是单片机本身所不能及的,所以研究此系统是必要的,实时运行的结果表明该系统的实用性和可靠性关键词单片机;步进电机;串行通信ABSTRACTTheintegraldesignofasetofspeedremotereal-timecontrolsystemisdesignedwhichusessteppermotorsasthecontrolledobject.ThesystemiscomposedofpersonalcomputerandsinglechipmicrocomputerwhichrealizescommunicationwiththeVisualBasicserialcommunicationcontrolsandRS485bus.Thepersonalcomputersendsoutthecontrolcommandsandshowstherealtimevelocitygraphandthesinglechipmicrocomputercontrolsthespeedanddirectionoftwosteppermotorsthroughserialcommunication.Thepersonalcomputersendscontrolcommandsuchasforwardbackwardacceleratedeceleratethespeedanddirectiondetection.Becauseitisinlong-distancecommunicationsdirecttransmissionthrough485busandthedisplayimagedataanddatatransmissionandreceptionwillhavetorelyonVisualBasicdrawingCommunicationControl.Equipmentprovidedbythecommunicationinterfacetheuserequipmentcanbeusedwithcomputerequipmenton-linefromthedeviceaccesstodataorsetupeventhedirectcontrolofequipmentoperationinthecomputerdataprocessingequipmentisnottheirownandthestudyofthissystemisnecessary.Theexperimentalresultsshowthepracticabilityandreliabilityofthesystem.Keywords:singlechipmicrocomputer;steppermotor;serialcommunication目录TOC\o1-3\h\u摘要ⅠABSTRACTⅡ
1.绪论
11.1课题背景及目的
11.2国内外同类研究状况
11.3课题研究的主要内容
22.系统方案设计
32.1功能技术指标分析
32.2步进电机的正、反转与加、减速控制方案
32.3步进电动机速度检测的方案
42.4步进电机速度实时显示方案
42.5本章小结
43.硬件设计
53.1串行通信的硬件介绍
53.
1.1MAX485芯片介绍
53.
1.2RS-485标准的优点
73.2单片机与PC机串行通信系统构成
83.3步进电机的介绍
93.
3.1步进电机的基本特点
103.
3.2步进电机的工作原理
113.
3.3步进电机的单片机控制原理
123.4本章小结
144.软件设计
154.1开发环境、工具介绍
154.
1.1VisualBasic
6.
0154.
1.2VisualBasic的编程特点
154.2VB控件的介绍
174.3窗体设计
194.4功能设计
214.
4.1VB程序流程图
214.
4.2通信协议模块
224.
4.3初始化模块
224.
4.4控制代码发送模块
224.
4.5速度调节模块
244.
4.6附加功能模块
244.5基于VB实现开关量的控制
264.6软件抗干扰措施
264.
6.1指令冗余及软件陷阱
264.
6.2数字滤波
274.
6.3RS-485串行通信抗干扰
284.7本章小结
315.Proteus软件仿真
325.1Proteus软件介绍
325.
1.1Proteus仿真软件组成
325.
1.2Proteus的工作过程
335.
1.3Proteus软件所提供的调试手段
335.2基于Proteus对本系统的仿真
345.3本章小结
376.结论38致谢39参考文献
401.绪论
1.1课题背景及目的随着生活水平的提高,人们对于环境的要求越来越高,自动化是未来的趋势不管是工厂自动化、生产线自动化、测试自动化等,我们会用到很多的仪器和设备,其中就包括步进电机,已经广泛应用于各个领域,而具有远程控制的步进电机比例更是高,例如应用于卫星、雷达等领域的,航天“星星指向跟踪控制系统”中的运动控制部分,基于稀土永磁步进电机的双自由度俯仰、方位位置伺服系统,它是用计算机控制2台步进电机,每台步进电机代表天线运动的一个自由度,使天线指向任意给定位置,指向位置由旋转变压器测量掌握步进电机的转速和方向控制原理,在上位机PC机发出信号后,经过串行通信控件总线传送至单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制
1.2国内外同类研究状况在工业自动控制、智能仪器仪表中,单片机的应用越来越广范随着应用范围的扩大以及根据解决问题的需要,对某些数据要做较复杂的处理由于单片机的运算功能较差,对数据进行较复杂的处理时,往往需要借助计算机系统因此,单片机与PC机进行远程通信成为现在的主流目前对步进电机远程实时控制主要是经过串行通信控件RS-485总线传送至单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制许多高校、业内人员也对步进电机远程实时控制系统进行了研究,取得了很大的进展,串行通信控件和单片机的应用使电机控制技术发生了根本的变化如阴晓峰等,提出了以TCU下位机、便携式电脑为上位机、二者通过串行通信总线来实现车载信息在线监测的总体方案基于串行通信的车载信息在线监测系统
[1]步进电机的远程实时控制系统已国产化我国许多科研生产单位都已投入到开发生产的行列多用于卫星、雷达等,如航天“星星指向跟踪控制系统”中的运动控制部分,基于稀土永磁步进电机的双自由度俯仰、方位位置伺服系统,使用计算机控制2台步进电机,每台步进电机代表天线运动的一个自由度,使天线指向任意给定位置,指向位置由旋转变压器测量
[2]
1.3课题研究的主要内容掌握步进电机的转速和方向控制原理,在上位机PC机发出信号后,经过串行通信控件RS-485总线传送至AT89C51单片机控制系统,从而对步进电机的转速和方向检测,并根据上位机发出的信号实行相应的指令以实现对步进电机的转速和方向的控制;同时,反馈信息,在PC机上得以显示,从而达到对步进电机的实时控制
2.系统方案设计
2.1功能技术指标分析本文设计的控制系统是一种小型的集散型控制系统上位机为微型计算机PC机下位机为单片机控制系统所要求实现功能如下:1单片机系统能够实现与PC机的通信2单片机系统能够驱动步进电机正、反转加、减速并完成电机转速检测3上位机软件能够接收单片机传送的数据并进行数据处理实时显示步进电机的速度状况根据功能要求初步分析该系统由以下几个模块组成:单片机最小系统模块、步进电机驱动电路模块、电机转速检测电路模块及通信电路模块系统结构框图如图1所示:图
2.1系统的总体框图
2.2步进电机的正、反转与加、减速控制方案对于上位机所发送的步进电机控制指令单片机采用查询方式考虑到52型单片机只有三个定时器波特率发生器占用一个定时器T2步进电机转速的检测占用两个定时器一个用于定时T1一个用于转速脉冲计数T0因此步进电机的步进脉冲采用延时方式传送;同时在上位机的控制程序中增加一个slider控件通过此控件控制下位机所调用的延时程序的循环次数从而实现步进电机速度的控制
2.3步进电动机速度检测的方案步进电机也称为数字/角度转换器其转速可采用软件测速也可以采用硬件测速考虑在实际工业应用中步进电动机在带负载运行时采用软件测速误差较大因此步进电动机的速度检测采用硬件测速利用槽型光电开关和栅格编码盘来实现速度检测.当步进电机带动栅格圆盘旋转时测速光电开关获得一系列脉冲信号这些脉冲信号通过单片机定时/计数器T0计数定时器T1定时这样就可以测得在一定时间内的脉冲数通过单位转换就可以换算出转速
2.4步进电机速度实时显示方案考虑到单片机与PC机的优、缺点如单片机控制电机运转、步进电机的转速采集时很方便但处理数据及实时显示时较困难而PC机正好与之互补因此由单片机实现步进电机的速度与方向控制及转速的采集由PC机接收单片机采集的数据完成数据处理及速度图的描绘
2.5本章小结上面是对整个步进电机转速远程实时控制系统的方案设计,并根据设计的系统的总体框图,具体给出了各个模块的设计方案
3.硬件设计
3.1串行通信的硬件介绍随着数据采集系统的广泛应用通常由单片机构成的应用系统如仪器仪表、智能设备等都需要PC机之间交换数据实现与PC机之间的通讯功能以充分发挥PC和单片机之间的功能互补资源共享的优势以往常用的RS-232协议在很大程度上已不能满足设计的要求如传输速率慢,传输距离短传输信号易受外界的干扰等缺点而RS-485解决了这些问题,所以此次毕业设计串行通信的硬件就用到了RS-485接口芯片
3.
1.1MAX485芯片介绍MAX485是用于RS-485与RS-422通信的低功耗收发器MAX485的驱动器摆率不受限制可以实现最高
2.5Mbps的传输速率这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120μA至500μA之间所有器件都工作在5V单电源下驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出具有较高的抗干扰性能RS-485是美国电气工业联合会EIA制定的利用平衡双绞线作传输线的多点通讯标准它采用差分信号进行传输;最大传输距离可以达到112km;最大可连接32个驱动器和收发器;接收器最小灵敏度可达±200mV;最大传输速率可达215Mb/s由此可见RS-485协议正是针对远距离、高灵敏度、多点通讯制定的标准MAX485是市面上最为常见的RS422芯片,亦是用量最大的RS422芯片,性价比高,优质,供货稳定是大部分厂家采用它的主要原因图
3.1MAX485引脚和结构图MAX485接口芯片是Maxim公司的一种RS-485芯片MAX485CPAMAX
485、MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信的低功耗收发器,每个器件中都具有一个驱动器和一个接收器MAX
483、MAX
487、MAX488以及MAX489具有限摆率驱动器,可以减小EMI,并降低由不恰当的终端匹配电缆引起的反射,实现最高250kbps的无差错数据传输MAX
481、MAX
485、MAX
490、MAX
491、MAX1487的驱动器摆率不受限制,可以实现最高
2.5Mbps的传输速率 这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120micro;A至500micro;A之间另外,MAX
481、MAX483与MAX487具有低电流关断模式,仅消耗
0.1micro;A所有器件都工作在5V单电源下采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式它完成将TTL电平转换为RS-485电平的功能MAX485芯片的结构和引脚都非常简单内部含有一个驱动器和接收器RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0在与单片机连接时接线非常简单只需要一个信号控制MAX485的接收和发送即可同时将A和B端之间加匹配电阻,一般可选100Ω的电阻
3.
1.2RS-485标准的优点1通信速度和通信距离RS-485最大的通信距离约为1219m,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点
(2)RS-485的电气特性逻辑“1”以两线间的电压差为+
0.2~6V表示;逻辑“0”以两线间的电压差为-
0.2~6V表示接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接3抗干扰能力通常选择的标准接口在保证不超过其使用范围时都有一定的抗干扰能力以保证可靠的信号传输但在一些工业测控系统通信环境往往十分恶劣因此在通信接口标准选择时要充分注意其抗干扰能力并采取必要的抗干扰措施例如在长距离传输时使用RS-422标准能有效的抑制共模信号干扰使用20mA电流环技术能大大降低对噪声的敏感程度在高噪声污染环境中通过使用光纤介质减少噪声干扰通过光电隔离提高通信系统的安全性等都是一些行之有效的方法4RS-232C与RS-422RS-485性能参数比较RS232使用12V0-12V电压来表示逻辑,(-12V表示逻辑1,12V表示逻辑0),全双工,最少3条通信线(RXTXGND),因为使用绝对电压表示逻辑,由于干扰,导线电阻等原因,通讯距离不远,低速时几十米也是可以的RS422,在RS232后推出,使用TTL差动电平表示逻辑,就是两根的电压差表示逻辑,RS422定义为全双工的,所以最少要4根通信线(一般额外地多一根地线),一个驱动器可以驱动最多10个接收器(即接收器为1/10单位负载),通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时可以进行较远距离通信,一般可达数百上千米RS485,在RS422后推出,绝大部分继承了422,主要的差别是RS485可以是半双工的,而且一个驱动器的驱动能力至少可以驱动32个接收器(即接收器为1/32单位负载),当使用阻抗更高的接收器时可以驱动更多的接收器所以现在大多数全双工485驱动/接收器对都是标RS422/485的,因为全双工RS485的驱动/接收器对一定可以用在RS422网络在RS-232连接的串行通信系统中实际上只用到RXDTXD和地在本设计中用到RS-232CRS-485标准RS-485标准是一种多发送器的电路标准它扩展了RS-422A的性能允许双导线上一个发送驱动32个负载设备负载设备可以是被动发送器、接收器或收发器RS-485标准没有规定在何时控制发送器发送或接收机接收数据的规则电缆选择比RS-422更严格对驱动器和接收器规定了双端电气接口形式把电位差转变成逻辑电平实现终端的信息接收
3.2单片机与PC机串行通信系统构成单片机与PC机串行通信的总体原理图如图
3.2所示采用RS-485最大的优点在于它的多点总线互连功能它可以连接一台主机和多台终端同时通信由于它是半双工的同时只能有一方发送一方接收而且它采用差动电平接收的方法来提高抗干扰能力适合在比较恶劣的环境下工作因为在同一对电缆中所受到的干扰是很类似的采用差动方法可以用作差的方法将干扰抵销一大部分图
3.2 单片机与PC机串行通信原理图由于RS-485通信是一种半双工通信发送和接收共用同一物理信道在任意时刻只允许一台单机处于发送状态因此要求应答的单机必须在监听到总线上呼叫信号已经发送完毕并且没有其它单机发出应答信号的情况下才能应答半双工通信对主机和从机的发送和接收时序有严格的要求如果在时序上配合不好就会发生总线冲突使整个系统的通信瘫痪无法正常工作要做到总线上的设备在时序上的严格配合必须要遵从以下几项原则1复位时主从机都应该处于接收状态/RE和DE端相连为低时从机处于接收状态在上电复位时由于硬件电路稳定需要一定的时间并且单片机各端口复位后处于高电平状态这样就会使总线上各个分机处于发送状态加上上电时各电路的不稳定可能向总线发送信息因此如果用一根口线作发送和接收控制信号应该将口线反向后接入MAX485的控制端使上电时MAX485处于接收状态2控制端/REDE的信号要求在RS-232RS-422等全双工通讯过程中发送和接收信号分别在不同的物理链路上传输发送端始终为发送端接收端始终为接收端不存在发送、接收控制信号切换问题在RS-485半双工通信中由于MAX485的发送和接收都由同一器件完成并且发送和接收使用同一物理链路必须对控制信号进行切换控制信号何时为高电平何时为低电平一般以单片机的TIRI信号作参考发送时检测TI是否建立起来当TI为高电平后关闭发送功能转为接收功能;接收时检测RI是否建立起来当RI为高电平后接收完毕又可以转为送3发送控制信号在时序上的要求总线上所连接的各单机的发送控制信号在时序上完全隔开为了保证发送和接收信号的完整和正确避免总线上信号的碰撞对总线的使用权必须进行分配才能避免竞争连接到总线上的单机其发送控制信号在时间上要完全隔离总之发送和接收控制信号应该足够宽以保证完整地接收一帧数据任意两个单机的发送控制信号在时间上完全分开避免总线争端
3.3步进电机的介绍步进电机(图
3.1)是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的图
3.1步进电机
3.
3.1步进电机的基本特点1位移与输入脉冲信号数相对应,步距误差不长期积累,可以组成结构简单且具有一定精度的开环控制系统,也可以在需要更高精度时组成闭环控制系统2易于起动、停止、正反转及变速,快速响应性好3速度可以在相当宽的范围内平滑调节可以用一台控制器控制几台步进电机同时同步运行4具有自锁能力当控制脉冲停止输入且让最后一个脉冲控制的绕组继续通电时,电机可以保持在固定的位置上,即停在最后一个控制脉冲所控制的角位移的终点位置上,所以步进电机具有带电自锁能力5步距角选择范围大,可以在几十角分至180o范围内选择在小步距角情况下,电机通常可以在超低速下高转矩稳定运行,而且可以不经减速器直接驱动负载6步进电动机按其应用可分为伺服式和功率式功率步进电动机可以不通过力矩放大装置直接带动机床等负载运动,简化了传动系统的结构,并具有一定的精度7电机本体没有电刷,转子上没有绕组,也不需要位置传感器,可靠性高8步进电机需要与控制器配合使用,不能直接使用普通的交直流电源9步进电动机带惯性负载的能力差10存在失步、共振等现象,在使用中要根据负载和运行条件合理选用步进电动机及其控制器
3.
3.2步进电机的工作原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致当定子的矢量磁场旋转一个角度转子也随着该磁场转一个角度每输入一个电脉冲,电动机转动一个角度前进一步它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比改变绕组通电的顺序,电机就会反转所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率f成正比,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角如下所示的步进电机为一四相步进电机,采用单极性直流电源供电只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动图
3.
3.1是该四相步进电机是该四相反应式步进电机工作原理示意图图
3.
3.1 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子
0、3号齿对齐,同时,转子的
1、4号齿就和C、D相绕组磁极产生错齿,
2、5号齿就和D、A相绕组磁极产生错齿当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和
1、4号齿之间磁力线的作用,使转子转动,
1、4号齿和C相绕组的磁极对齐而
0、3号齿和A、B相绕组产生错齿,
2、5号齿就和A、D相绕组磁极产生错齿依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图
3.
3.2所示图
3.
3.2步进电机工作时序波形图
3.
3.3步进电机的单片机控制原理步进电机是数字控制电机它将脉冲信号转变成角位移即给一个脉冲信号步进电机就转动一个角度因此非常适合于单片机控制步进电机最大特点是它是通过输入脉冲信号来进行控制的即电机的总转动角度由输入脉冲数决定而电机的转速由脉冲信号频率决定步进电动机控制系统组成如图
3.
3.3所示图
3.
3.3步进电机控制系统的组成步进控制器的作用是把输入的脉冲转换成环型脉冲以便控制步进电机并能进行正反向控制功率放大器的作用就是把控制器输出的环型脉冲加以放大用来驱动步进电机转动在这种控制方式中由于步进控制器线路复杂成本高因而限制了它的应用若我们采用单片机代替步进控制器问题将被简化不仅降低了成本而且提高了可靠性单片机控制步进电机的原理图如图
3.
3.4所示图
3.
3.4步进电机的单片机控制原理图 单片机的主要作用就是把并行二进制码转换成串行脉冲序列并实现方向控制步进电机的驱动电路根据控制信号工作控制信号由单片机产生1脉冲序列的生成图
3.
3.5脉冲序列在常见的接口电路中多为0~5V接通和断电的时间可用延时的方法来控制延时时间的长短由步进电机的工作频率决定如图
3.
3.5所示2控制换相顺序通电换相这一过程称为脉冲分配例如:四相步进电机的八拍工作方式其各相通电顺序为A-AB-B-BC-C-CD-D-DA-A通电控制脉冲必须严格按照这一顺序分别控制ABCD相的通断3控制步进电机的转向如果给定工作方式正序换相通电步进电机正转如果按反序通电换相则电机就反转若各相通电顺序为A-AB-B-BC-C-CD-D-DA-A时正转则各相通电顺序为A-DA-D-CD-C-BC-B-AB-A时反转.4控制步进电机的速度如果给步进电机发一个控制脉冲它就转一步再发一个脉冲它会再转一步两个脉冲的间隔越短步进电机就转得越快调整单片机发出的脉冲频率就可以对步进电机进行调速
3.4本章小结上面对整个步进电机转速远程实时控制系统的主要硬件进行了一下简要的介绍.其中包括了串行通信中的MAX485芯片、步进电机的运转原理、以及步进电机单片机的控制原理等等
4.软件设计硬件是系统的骨架,软件才是系统的灵魂光有硬件的系统是不会工作的,只有在软件的驱动下,硬件才会得以像预先的那样实现各种功能而且,一个好的软件系统不仅可以提升系统的性能,还可以弥补硬件系统的不足所以,一个经过缜密构思,执行效率高、代码精炼的软件系统是构成一个优秀整体系统比不可少的
4.1开发环境、工具介绍该软件是在WindowsXPProfessional+VisualBasic
6.0+SQLServer2000的环境下完成的下面就对这些开发工具进行介绍
4.
1.1VisualBasic
6.0微软公司的VisualBasic
6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性利用VISUALBASIC程序设计语言,可以很方便地设计出在WINDOWS环境下运行的应用程序故而,实现学生信息管理系统VB是一个相对较好的选择
4.
1.2VisualBasic的编程特点VisualBasic语言的出现为Windows下的编程提出了一个新概念,利用VisualBasic的动态数据交换、对象的链接和嵌入、动态链接库、ActiveX技术可以很方便地设计出功能强大的应用程序利用VisualBasic语言编程有以下几个特点1)可视化程序设计在VisualBasic中开发的应用程序,不但有丰富的图形界面,同时由用户为开发图形界面添加的代码真是少而又少,因为在设计图形界面的过程中只需设置ActiveX控件的属性即可2)强大的数据库和网络功能随着VisualBasic语言的向前发展,它在数据库和网络方面的功能优势就愈加明显,利用VisualBasic中的ODBC——开放式的数据库访问技术可以很方便地开发出自己的数据库应用程序;利用VisualBasic自带的可视化数据管理器和报表生成器,完全可以在VisualBasic就完成数据库的开发工作3)其他特性在VisualBasic以前的版本中,由于仍然摆脱不了解释执行的代码运行机制,所以在相当的程度上制约了VisualBasic的发展从VisualBasic
5.0版本开始,在VisualBasic中制作的应用程序都改变为编译执行,使得VisualBasic的代码效率有了很大的提高,同时执行的速度也加快了解30%同VisualBasic
4.0相比当然在VisualBasic中还有其它特性,例如面向对象的编程语言;结构化程序设计;事件驱动的程序设计在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的支持动态链接库;应用程序之间的资源共享;事件驱动的程序设计在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码从第一行代码执行程序并按应用程序中预定的路径执行,必要时才会调用过程在事件驱动的应用程序中,代码不是按预定的路径执行,而是在响不同的事件时执行不同的代码片段事件可以由用户操作触发、也可以由来自操作系统或其它应用程序的消息触发、甚至由应用程序本身的消息触发这些事件的顺序,决定了代码执行的顺序,因此应用程序每次运行时所经过的路径都是不同的
4.2VB控件的介绍Windows环境下开发的应用软件具有许多优点:可视性,面向事件和对象的特征而VisualBasic作为Microsoft公司近来推出的Windows环境下的高级语言,支持面向对象的程序设计,具有结构化的事件驱动编程模式,并支持DDE和OLE等特性在Windows环境下用VB编制图形界面较之C语言结构简单、操作方便、界面美观但要与过程控制的实时信号相互联系,就要求VB能够实现PC机与下位过程机的信息交流在Windows环境下,用VB
6.0实现串行通信有两种方法:一是使用系统集成环境提供的串行通信控件MSComm;二是使用Windows的API接口利用API函数编写串口通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富,应用面更广泛,更适合编写较为复杂的低层次通信程序而VB
6.0的MSComm控件提供了标准的事件处理函数、过程,并通过属性的方法提供了串行通信口参数的设置,可以较容易地解决串口通信的问题MSComm控件提供了功能完善的串口数据的发送和接收功能,有事件驱动和程序查询两种处理方式事件驱动方式是处理端口通信的一种有效的方法,它可以利用OnComm事件捕获并处理通信中发生的事件或错误,通过分别对每个CommEvent属性值编程即可完成对各个错误或事件的处理,实时性较强而查询方式是在程序通过查询CommEvent属性的值来判断通信过程中的事件或错误并做出相应的处理,这种方式适合于应用程序较小、实时性要求不是很高的系统用VisualBasic的程序设计串行通信相关工程时,遵循以下4个主要的步骤:1对象:首先了解所要操作的对象是什么;首先是要使用MSComm控件与单片机进行串行通信,因此在工具箱中选择MSComm控件的图标,并在窗体上安置2属性:设置该对象所具备的特性:每一个控件的属性都相当多,通过属性值的设置,可以指定硬件以一定的方式工作在窗体上安置一个MSComm控件后,可以调出其相应的属性表,选择相应的项目,进行属性的设置MSComm控件的属性众多,其重要属性说明如下:
[1]CommPort属性:用于设置或返回通信连接端口号码程序必须指定所要使用的串行端口的号码,Windows系统会使用所设置的通信端口与外界进行通信,程序也可借助此属性返回所使用的连接端口号码MSComm控件的最大值是16
[2]Settings属性:用于设置初始化参数以字符串的形式设置或返回联机速率、奇偶校验、数据位、停止位等4个参数
[3]PortOpen属性:用于设置或返回通信连接端口的状态使用串行端口之前必须先将要使用的串行端口打开,而在使用完毕之后,也必须执行关闭操作串行通信端口各项功能都是在PortOpen的True与False之间完成的
[4]Input属性:用于从输入缓冲区返回并删除字符程序靠这个命令将对方传到缓冲区中的数据读进程序中,并清除缓冲区中己被读取的数据
[5]Output属性:用于将要发送的数据输入传输缓冲区当程序需要传输字符串到对方时,可将字符串使用此命令输入输出缓冲区中,一般的数据均是在送达输出缓冲区后随即被送出,当MSComm控件设置有发送阀值属性时,则会生成事件
[6]InputLen属性:用于指定由串行端口读入的字符串长度或字节数VisualBasic程序可使用Input命令将存放在输入缓冲区的字符读入,但要指定所读入的字符长度则需要设置本属性若指定读取的单位是字节,则是读入字节的个数
[7]Handshaking属性:用于指定通信双方的握手协议
[8]CommEvent属性:用干返回串口最近发生的串口事件或错误,或设置串口将要响应的事件
[9]InBufferCount属性:用于返回在接收缓冲区中的字符数该属性在设计阶段无法使用
[10]InputMode属性:用于设置或返回Input属性取回的数据的类型数据可以以文字形式取回,也可以以二进制形式取回3事件:该对象在系统执行的过程中会因其他对象而发生什么样的事情;VisualBasic的MSComm控件会在适当的时候引发事件,即OnComm事件,所有可能发生的状况,全部集中在这个事件中进行处理而且只要CommEvent属性的值发生变化,就会产生OnComm事件,这表示发生了一个通信事件或一个错误4方法:当该对象被引发了某个事件之后,系统或程序应该采取的相应步骤是什么所谓的方法有两种,一个是控件本身提供的子程序,另一个就是程序员所编写的子程序子程序都是用来解决相应的任务,同样,在处理与通信相关的事件时所编写的子程序也是方法用MSComm控件进行串口通信的一般步骤为:a设置通信对象、通信端口号以及配置通信格式如起始位个数、数据位长度、校验方式、停止位个数等和其它相关属性b设定通信协议c打开通信端口,进行数据的传送和读入d关闭通信端口在完成串行通信操作后,将串行通信端口的资源归还给操作系统按以上的步骤,创建一串行通信传输并显示速度图象系统.
4.3窗体设计在此工程中,使用MSComm控件的Input与Output两个属性,它们分别对应串行端口的输入与输出操作窗体的设计图如下图所示:图
4.0软件系统界面窗体设计的步骤如下:1新建1个VB工程,并在窗体上放置1个MSComm控件,作为串行通信的通道,将其CommPort属性设为1即使用第1个通信端口2放置6个CommandButtou控件,在其Caption属性内分别输入“通讯测试”、“打开串口”、“电机方向确定”、“电机转动”、“电机停止”、“电机加速”、“电机减速”图4-1CommandButtou控件3放置1个Timer控件,其中的Interval属性设为10用来发送数据图
4.1Timer控件4放置10个Option控件,在其Caption属性分别输入“正转”、“反转”、“串口1”、“串口2”、“串口3”、“串口4”、“串口5”、“串口6”、“串口7”、“串口8”,选择所对应的窗口图
4.2Option控件5用菜单编辑器编辑出一系列的下拉菜单,也就是下文提到的附加功能
4.4功能设计
4.
4.1VB程序流程图
4.
4.2通信协议模块在此次串行通信中,通信协议如下波特率为
9600、数据为8位、停止占1位代码如下Comm
1.Settings=”9600N81”
4.
4.3初始化模块PrivateSubFormLoadComm
1.Inbuffersize=1024′设置输入缓冲区大小Comm
1.InbufferCount=0′清输入缓冲区Comm
1.Inputlen=0′每次读出当前输入缓冲区所有字节Comm
1.Sthreshold=0′禁止输出引起OnComm事件Comm.Rthreshold=1 ′接收到一个字符就触发OnComm事件Comm
1.OutBuffersize=512′设置输出缓冲区的大小Text
1.text=“” ′启动时电机不转 Timer
1.Interval=10 ′定时器常数 Comm
1.PortOpen=True ′打开串行口 timer
1.Enabled=False ′禁止发送Slider
1.Max=10‘Slider控件的最大值为10Slider
1.Value=10 ′默认延时最长速度最慢EndSub
4.
4.4控制代码发送模块PrivateSubOption1_ClickIfOption
1.Value=TrueThenText
1.text=Z‘正转代码EndIfEndSubPrivateSubOption2_ClickIfOption
2.Value=TrueThenText
1.text=F‘反转代码EndIfEndSubPrivateSubOption3_ClickIfOption
3.Value=TrueThenText
1.text=A‘加速代码EndIfEndSubPrivateSubOption4_ClickIfOption
4.Value=TrueThenText
1.text=S‘减速代码EndIfEndSubPrivateSubOption5_ClickIfOption
5.Value=TrueThenText
1.text=C‘检测代码EndIfEndSubPrivateSubOption6_ClickIfOption
6.Value=TrueThenText
1.text=‘默认EndIfEndSubPrivateSubcommand1Click Timer
1.Enabled=True ′启用定时器发送 EndSub PrivateSubtimerTimer1 Mscomm
1.Output=text
1.Text ′发送相应控制代码 EndSub
4.
4.5速度调节模块在此模块中,用到了Slider控件,初始化模块中Slider的最大值属性设为10因为下位机(步进电机)速度的快慢是由延时程序的长短来调节的,加一个slider控件通过此控件控制下位机所调用的延时程序的循环次数从而实现步进电机速度的控制程序代码如下PrivateSubcommand1Click Timer
1.Enabled=True ′启用定时器发送EndSubPrivateSubtimerTimer1Text
1.Text=StrSlider
1.Value Mscomm
1.Output=text
1.Text ′发送相应控制代码EndSub
4.
4.6附加功能模块上位机(PC机)所接收的数据可以保存在指定的文件中,当要对以前接收的数据进行分析时也可以进行数据还原,也就是从指定的文件中重新取出来在此软件中保存数据的文件为Test.txt用记事本可以打开该文件,也可以从该文件中读取数据,在编辑、运行和帮助下拉菜单中还包含有串行口的选择、清零、开始运行等功能部分代码如下1数据保存PrivateSubshu_ClickOpentest.txtForOutputAs#1Fori=1To20Write#1Datai-1NextiClose#1EndSub2数据复原PrivateSubshu1_ClickDimiAsIntegerDimcharAsString*1Dimst1AsStringOpentest.txtForInputAs#1Fori=1To20Get#1icharst1=st1+charNextiClose#1Text
2.Text=st1EndSub3串行口的选择PrivateSubcom1_ClickMComm
1.CommPort=1EndSubPrivateSubcom2_ClickMSComm
1.CommPort=2EndSub4清零PrivateSubQING_ClickText
1.Text=Text
2.Text=Otion
6.Value=TrueEndSub还原时可以先清零,这样不出错5开始PrivateSubKAI_ClickTimer
1.Enabled=tureEndSub用户只要单击结束按钮,程序就会关闭串行通信的信道并退出程序为提高系统通信的可靠性,可在PC机和单片机之间开始数据传送前采用软件握手通信的方法,即将PC机键盘的输入发送给单片机,单片机接收到PC机发来的数据后,回送同一数据给PC机,并在PC机屏幕上显示出来只要PC机屏幕上显示的字符与键入的字符相同,即表明PC机与单片机间通信正常
4.5基于VB实现开关量的控制在此控制系统中,在上位机(PC机)和下位机(单片机控制系统)的通信中,上位机要向下位机发出一系列的控制指令,单片机在收到数据后要分析是什么命令,然后按照指令进行运作于是设定当单片机收到字符“Z”,步进电机就进行正转;同理,字符“F”表示反转、“A”表示加速、“S”表示减速、“C”表示检测速度
4.6软件抗干扰措施
4.
6.1指令冗余及软件陷阱单片机最容易受干扰的是内部程序计数器PC的值,在受到强烈的干扰后,PC值被改变,改变后的值又是随机的,具有不确定性,往往会使单片机将程序从正确位置跳转到一个不确定的区域继续执行,或将操作数当作操作码来执行,引起程序的混乱CPU取指令过程是先取操作码,后取操作数如何区别某个数据是操作码还是操作数,这完全由指令顺序决定CPU复位后,首先取指令的操作码,而后顺序取出操作数当一条完整指令执行后,紧接着取下一条指令操作码、操作数这些操作时序完全由程序计数器PC控制因此,一旦PC因干扰而出现错误,程序便脱离正常运行轨道,出现“乱飞”,出现操作数数值改变以及将操作数当作操作码的错误当程序“乱飞”到单字节指令上时,便自动纳入正轨;当程序“乱飞”到双字节指令上时,若恰恰在取指令时刻落到其操作数上,从而将操作数当作操作码,程序将出错;当程序“乱飞”到某个3字节指令上时,因为它们有两个操作数,误将其操作数当作操作码的出错机率将更大为了使“乱飞”程序在程序区迅速纳入正轨,应该多用单字节指令,并在关键地方人为地插入一些单字节指令NOP,或将有效单字节指令重写可在双字节指令和3字节指令之后插入两个单字节NOP指令,这可保证其后的指令不被拆散因为“乱飞”的程序即使落到操作数上,由于两个空操作指令NOP的存在,不会将其后的指令当操作数执行,从而使程序纳入正轨在软件设计中,软件陷阱被安排在以下两个区域:1未被使用的中断向量区:在实际的单片机应用系统中,并不是每一个中断都会被用到,存在未用的中断向量区域当这些未用的中断在干扰的作用下激活而引起中断的话,将导致程序发生混乱,所以,在这些未用的中断向量区设置软件陷阱2没有被用到的ROM空间:因为采用的程序存储器的容量为8K,而整个控制程序远远小于8K,此外程序也不是按顺序执行的,存在很多跳转,在这些程序之间,也存在大量的闲置的空间,当程序“乱飞”到这些空间时,需要很长时间才能走出这些未用的空间,而且此时程序己经脱离了正常的运行轨迹,若继续运行下去,控制系统将工作在不正常的状态下,这样得到的输出也是不符合要求的,所以,很有必要设置软件陷阱以及时捕获程序的“乱飞”,使程序回到正确的运行轨迹上来从上面可以看出,软件陷阱都安排在正常程序执行不到的地方,所以也不会影响程序的执行效率,此外,在存储器没有使用的单元中全部填充OFFH值,即复位指令RST的目的代码值,这样在程序“乱飞”至此区域时,就会被复位,以免系统瘫痪当“乱飞”的程序在遇到软件陷阱之前已形成死循环时,软件陷阱就无能为力了,此时,要靠设定的WATCHDOG来使程序回到正常的运行轨迹
4.
6.2数字滤波这种措施是利用单片机执行一定的程序计算方法,减少噪声在有用信号中的比例,其实质是程序滤波数字滤波克服了模拟滤波器的不足,与模拟滤波器相比,它具有以下几点优点:1数字滤波是用程序实现的,不需要增加硬件设备,所以可靠性高,稳定性好2数字滤波可对频率很低的信号滤波,克服了模拟滤波的缺陷3数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点常用的数字滤波方法有:算术平均值法,系统滤波法,加权平均值法,一阶惯性滤波法,中位值法等算术平均值法适合于具有随机干扰的信号滤波,且具有算法简单,编程容易实现的优点结合本系统的特点,我们采用了算术平均值滤波法对某一电流或电压值采样多次15次,计算其平均值,作为该点的采样结果
4.
6.3RS-485串行通信抗干扰1总线匹配对RS-485总线是否进行终端匹配取决于据传输速率、电缆长度及信号转换速率只要数据速率在250kbps以内,电缆长度不超过16m,一般可以不加终端匹配当需终端匹配时,有多种匹配方案可以选择,最简单的就是在总线两端各接一只阻值等于电缆特性阻抗的电阻,一般在100~120Ω(如图
4.
5.4a),能减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰但匹配电阻要消耗较大电流,不适用于功耗限制严格的系统一种比较省电的匹配方案是RC匹配(如图
4.
5.4b),利用一只电容C隔断直流成分,可以节省大部分功率,但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷除上述两种外,还有一种采用二极管的匹配方案(如图
4.
5.4),这种方案虽未实现真正的匹配,但它利用二极管的箝位作用,迅速削弱反射信号达到改善信号质量的目的,节能效果显著图
4.
5.4二极管的匹配方案2通信速度和通信可靠性由于485总线是异步半双工的通信总线,在某一个时刻,总线只可能呈现一种状态,所以这种方式一般适用于主机对分机的查询方式通信,总线上必然有一台始终处于主机地位的设备在巡检其它的分机,选用合适的通信协议及控制方式非常重要现在一般采用的是数据包通信方式,通信数据是成帧成包发送在485芯片的通信中,尤其要注意对485控制端DE的软件编程为了可靠地工作,在485总线状态切换时需要做适当延时,再进行数据的收发具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”这样的处理会使总线在状态切换时有一个稳定的工作过程
(3)失效保护RS-485标准规定接收器门限为±200mV,但是,当总线电压在±200mV中间时接收器输出状态不确定由于UART以一个前导“0”触发一次接收动作,所以,接收器的不定态可能会使UART错误地接收一些数据,导致系统误动作一般的做法是给总线加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥200mV)如将接收门限-200mV/-50mV,也可很好地解决这个问题
(4)地线与接地由于工程环境比较复杂,现场常有各种形式的干扰源,电子系统的接地是一个非常关键而又常常被忽视的问题,接地处理不当经常会导致不能稳定工作甚至危及系统安全所以485总线一定要有良好的接地及保护措施虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,将在信号线上产生干扰电流,轻则影响正常通信,重则损坏接口另外就是电磁辐射问题,驱动器输出信号中的共模部分需要一个返回通路,如果没有一个低阻的返回通道(信号地)就会以辐射的形式返回,源端整个总线就会像一个巨大的天线向外辐射电磁波因此,尽管是差分传输,对于RS-485网络来讲一条低阻的信号地还是必不可少的,接地示意图如图
4.
5.5所示VGDP图
4.
5.5接地示意图一条低阻的信号地将两个接口的工作地连接起来使共模干扰电压VGPD被短路这条信号地可以是额外的一对线(非屏蔽双绞线)、或者是屏蔽双绞线的屏蔽层这样的接地措施只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰就无能为力了这样的瞬态干扰可能会有成百上千伏的电压,但持续时间很短如果不加以适当防护就会损坏接口对于这种瞬态干扰可以采用隔离或旁路的方法加以防护通常采用光耦、带隔离的DC-DC、RS-485芯片构筑电路,或使用二次集成电路,如PS
1480、MAX1480/MAX1490等,隔离电压可以到2500V,隔离电路如图
4.
5.6所示图
4.
5.6隔离电路
4.7本章小结VisualBasic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用对象的链接与嵌入OLE、开放式数据访问ODBC等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统在本设计中,上位机的软件设计一共有一下几个特点
1.设计程序使PC机和单片机之间通过串行口进行数据和命令的传送.
2.在软件设计中采取看门狗、冗余指令、数字滤波等抗干扰措施,使系统稳定可靠
3.在RS-485方面采取了一系列的抗干扰措施,使得通讯稳定性增强,抗干扰性大大提高
5.Proteus软件仿真
5.1Proteus软件介绍Proteus软件已有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境其功能模块:—个易用而又功能强大的ISIS原理布图工具;Proteus混合模型SPICE仿真;ARESPCB设计.PROSPICE仿真器的一个扩展ProteusVSM:便于包括所有相关器件的基于微处理器设计的协同仿真此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型
(1)支持许多通用的微控制器,如PIC,AVR,HC11以及8051;
(2)交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘;
(3)强大的调试工具,包括寄存器和存储器,断点和单步模式;
(4)IARC-SPY和KeiluVision2等开发工具的源层调试;
(5)应用特殊模型的DLL界面提供有关元件库的全部文件Proteus是目前最好的模拟单片机外围器件的工具,它可以仿真8051系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件)当然,软件仿真精度有限,因而不可能所有的器件都找得到相应的仿真模型用开发板和仿真器当然是最好选择,可是对于单片机爱好者,或许简单的开发应该是比较好的选择
5.
1.1Proteus仿真软件组成Proteus仿真软件包含两个应用程序,一个是ProteusISIS它是Proteus系统的中心ISIS拥有超过8000元件的大型元件库,包含几千个模拟和数字电路中常用的Spice模型及各种动态元件,如三极管、555定时器等基本元件,74LS00等常用TTL和CMOS集成块,完全适合于仿真模型;ISIS为用户提供了非常友好的作图界面,元件之间的连线方便、灵活、高效率,剪切、移动等操作借助鼠标可简单地实现;ISIS还支持层次图设计,支持WMF、BNP、DXF等多种图形输出格式Proteus的另外一个应用程序就是Proteusares,用于直接将ProteusISIS得到的仿真原理图生成PCB版图
5.
1.2Proteus的工作过程运行Proteus的ISIS程序后,进入该仿真软件的主界面在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目通过工具栏中的p从库中选择元件命令命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况
5.
1.3Proteus软件所提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试这些测试信号包括模拟信号和数字信号对于单片机硬件电路和软件的调试,Proteus提供了两种方法一种是系统总体执行效果,一种是对软件的分步调试以及具体的执行情况对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pauseanimation菜单项或pause键暂停系统的运行;或用Debug菜单下的stopanimation菜单项或shift-break组合键停止系统的运行其运行方式也可以选择工具栏中的相应工具进行对于软件的分步调试,应先执行debug菜单下的start/restartdebugging菜单项命令,此时可以选择stepover、stepinto和stepout命令执行程序可以用快捷键F
10、F11和ctrl+F11,执行的效果是单句执行、进入子程序执行和跳出子程序执行在执行了start/restartdebuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看
5.2基于Proteus对本系统的仿真就Atmel公司的系列单片机而言,Proteus支持的型号非常全面,从低端ATtiny10到高端的ATmega128均有可以直接调用的库元件下面以89C51为例介绍Proteus支持的仿真功能Proteus中的89C51库元件管脚上的标识与该芯片的Datasheet是基本一致的,惟一的不同是隐去了GND和VCC管脚,在绘制原理图的时候用户可以不用对其进行连接,系统默认的设置就是将它们分别连到地和5V电源上对单片机系统可进行仿真的功能有:支持所有的I/O操作,内部的定时器、计数器的模拟包括输入捕获、输出比较、PWM模式,看门狗定时器,串行UART接口,主、从模式串行SPI接口,支持内置数模转换ADC,支持Atmel的TWITwoWireInterface通信方式,存贮器方面支持外部SRAM扩展以及内置EEPROM的模拟,支持多个微控制器的协同工作仿真等等仿真时要做好三步操作一是系统硬件电路的设计;二是系统软件的开发与编译;三是系统的综合仿真具体流程是首先利用Proteus绘制系统硬件原理图;然后利用51系列编译器如Keil等进行系统软件设计并生成目标代码*.hex格式,Keil软件支持C和汇编两种语言形式,是目前和Proteus使用较多的配套软件;在仿真时,只要对原理图中的微处理器芯片指定了经过Keil软件编译过的目标程序的路径,就可以进行系统的实时动态仿真另一点值得一提的是实时仿真运行的过程中,系统每个网络引脚旁边均会出现一个小正方形的指示,红色代表高电平,蓝色代表低电平,这样开发人员可以不用借助虚拟工具的测量也能很直观的看到每个管脚的电平变化,从而对系统的软硬件性能做出最基本的判断,优化了单片机开发流程仿真过程如下第一步打开Proteus6Professional运行ISIS6Professional,绘图界面如图
5.1所示图
5.1ProteusISIS6Professional的绘图界面第二步添加所需元件并连接电路图本实例所需要元件为:AT89C
51、74LS
04、电阻、“地”,所画电路如图
5.2所示图
5.2本系统proteus软件中原理图第三步添加仿真文件先右键单击AT89C51,再左键单击,在弹出的EditComponent对话框中的ProgramFile一栏选择仿真文件本实例的仿真文件为由KeiluVision2编译源文件Led.C而产生的仿真文件*.hexClockFrequency一栏设置频率为
11.05926MHZ添加结果如图
5.3所示图
5.3仿真文件的添加与设置第四步单击图标开始仿真此时应该配合上位机VB程序的操作仿真软件的电路会有相应的效果图
5.4仿真效果图
5.3本章小结PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果在本设计中,protues软件的仿真结合上位机软件的调试方法给系统的调试节约了很多时间也带来了更多的方便免去了连接硬件电路的繁琐PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表也使得我们变相地使用到了那些平时很难接触到的贵重仪器不过PROTEUS软件也有不足的地方虽然是一款按照硬件电路设计的仿真软件,但是其与实际硬件还是有差别的,仿真结果并不能代表实际运行结果其次,一些具有复杂功能的芯片在PROTEUS里很难找到,其只提供了一小部分具有基本功能的元器件,如74系列,三极管,电阻等器件
6.结论步进电机转速远程实时控制系统中的数据的接收和图象显示是在上位机中进行的,这就充分结合了单片机和PC机的各自的优势(单片机进行数据的采集)本论文主要是对上位机软件进行设计和分析软件用VB
6.0编写,采用的方式为通过Mscomm通信控件间接的调用了WindowsAPI函数软件中包含了串行通信协议、初始化、控制代码发送、速度数据接收、速度调节、附加功能等模块,这里介绍一下其中几个模块的作用1控制代码发送模块是指上位机PC机对下位机单片机命令的传送,如正转,反转,加速等等2速度调节模块主要是通过Slider控件对下位机的转速进行调节总的来说性系统上位机程序用VB
6.0编写其开发的通信程序简洁明了可维护性好目前用于测控与仪器实验系统运行可靠稳定致谢在本论文工作完成之际,我首先要感谢我的导师黄石红老师,本论文及研究工作是在黄老师的悉心指导下完成的,几个月的学习生活中,导师对我工作上严格要求,生活上无微不至的关怀,从课题的选定、资料的收集及论文的审定等各个环节,都倾注了导师大量的心血,尤其是导师严谨的治学态度、渊博的知识使我受益匪浅,在此谨向导师致以最衷心的感谢和深深敬意同时,我要感谢同组同学和各位师兄弟,在毕业设计阶段,我们共同营造了一个积极向上、充满友爱的学习工作环境他们给了我学习和生活上的关心帮助,让我感到集体的温暖和力量我还要感谢父母的教诲,我的每一次进步都离不开他们的支持与鼓励是他们给了我前进的动力,让我顺利完成各个阶段的学业最后,感谢所有关心、帮助过我的老师、同学、亲人和朋友们,谢谢你们的关心和爱护参考文献
[1]阴晓峰,谭晶星,雷雨龙等.基于串行通信的车载信息在线监测系统[J].计算机工程.2004,30
(6)65-
67.
[2]仵浩齐燕杰宋文超等.VisualBasic串口通信工程开发实例导航[M].北京:人民邮电出版社2003
[3]王福瑞《单片机测控系统设计大全》北京北京航空航天大学出版社
[4]高志强康殿柱温殿忠等.在Windows95下实现单片机与PC机接口通信.黑龙江大学自然科学学报
[5]赵旭昉《MAX491芯片在串行通讯中的应用.电子技术》
[6]VB类编程工具书
[7]万福君.单片微机原理系统设计与开发应用.安徽中国科技大学出版社,1995
[8]沙占友.新型单片机实用丛书.北京电子工业出版社,2005
[9]齐维贵.单片微型机原理.接口.通信.控制.黑龙江黑龙江出版社,1997
[10]黄继昌.传感器工作原理及应用实例,北京人民邮电出版,2002
[11]CraigE.ThePlasmaArcWelding-AReviewWeldingJournal672:19-251988
[12]陈隆昌,阎治安,刘新正,《控制电机》西安西安电子科技大学出版社
[13]范逸之陈立元.VisualBasic与RS-232串行通信控制[M].北京:清华大学出版社
2002.
[14]温贤发.VisualBasic6数据库程序设计高手[M].北京:科学出版社
2001.
[15]王晓明.《电动机的单片机控制》北京北京航空航天大学出版社
[16]赵炯,熊肖磊,周奇才.串行数据传输协议的剖析研究[J].计算机工程.2004,30
(9)106-
108.
[17]张远远.热网微机监控系统中测控器的设计与实现[J].西安西安电子科技大学硕士学位论文,
2003.
[18]孙翠娟.基于CAN总线的热网监控系统[J].西安西安电子科技大学硕士学位论文,
2003.
[19]黄亚平.基于VB
6.0下的串行通信实现[J]山东科技大学出版社,2006,3-27步进电机步进电机驱动器AT89C51单片机RS--485PC机传感器调节电路复位PC机RS-485接口卡MAX485AT89C51脉冲步进控制器功率放大器步进电机负载单片机接口驱动器步进电机负载通电时间断电时间YX开始设置波特率等通信参数允许发送按下BUTTENNOYES向单片机发送命令检测是命令YES发送结束YESNONO。