《三维伺服数控平台设计毕业设计.doc》由会员分享,可在线阅读,更多相关《三维伺服数控平台设计毕业设计.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流三维伺服数控平台设计毕业设计.精品文档.三维伺服数控平台设计学 院机电工程学院专 业班 级学 号姓 名指导教师负责教师摘 要由数字信息导向的控制程序对机械运动和工作过程进行操控的技术,就是所谓的数控加工技术。这门技术概括使用了计算机技术、微电子技术、伺服驱动、主动控制和精密测绘等学科的集成应用。数控铣床的核心在于控制系统,控制系统实现了数字化的零件的输入程序,完成输入信息的存储、数据的变换和插补的运算等,从而实现各种控制功能。铣床控制系统的设计必须考虑软硬件的匹配,其设计必须从经济、实用、可行等诸多方面考虑。本次毕设以AT89C51单片机为主
2、体实现的控制系统,在硬件设计上易于实现有效的控制功能,结构相对简单;在软件设计上,通过插补程序的编制,相对容易地实现对铣床的运行方向和运行速度等方面的控制。起先用SolidWorks软件画出铣床,然后用单片机进行控制。用Proteus进行仿真模拟。电路仿真技术就是通过软件来实现并检验所设计电路功能的过程。Proteus不仅是模拟电路、数字电路、模拟混合电路的设计平台,更是世界上最先进的单片机和嵌入式系统的设计与仿真平台。关键词:数控加工;单片机;SolidWorks;ProteusDesign of 3D servo numerical control platformAbstractThe
3、technology of controlling the mechanical movement and working process by the digital information - oriented control program is the so-called numerical control technology.The technology of this technology is summarized in the application of computer technology, microelectronics technology, servo driv
4、e, active control and precision mapping and other subjects.The core of the CNC milling machine lies in the control system, control system to realize the digital parts of the input program, complete the input information storage, data transform and interpolation operation, in order to achieve a varie
5、ty of control functions.The design of the control system for milling machine must consider the matching of the hardware and software, and it must be considered from the aspects of economy, practicality and feasibility. The complete set of AT89C51 as the main control system. In the hardware design ea
6、sy to achieve effective control function, structure is relatively simple; in the software design, interpolation procedures through the preparation of, relatively easy to achieve running direction and speed of the milling machine control. At first, using SolidWorks software to draw a milling machine,
7、 and then use the microcontroller to control. Simulation with Proteus. Circuit simulation technology is to achieve and test the function of the circuit by software. Proteus is not only the design platform of analog circuit, digital circuit and analog circuit, but also the most advanced MCU and embed
8、ded system in the world.Keywords:Single chip microcomputer SolidWorks Proteus目 录摘 要IDesign of 3D servo numerical control platformII1、绪 论11.1 引言11.2 数控技术的发展方向及本次毕设的主旨11.3 数控技术的国内现状及发展趋势22、三维建模及二维工程图42.1 SolidWorks软件介绍42.2 三维实际建模过程42.3 二维工程图63、单片机的介绍及程序说明73.1 单片机的概述73.2 单片机控制系统设计83.3 程序说明84、Proteus中电子
9、电路建立及仿真模拟104.1 proteus仿真软件的介绍104.2 仿真电路实现过程104.3 程序实现简述及其源程序15参考文献11、绪 论1.1 引言近些年来,计算机技术不断发展,计算机图形处理能力不断增强,以计算机为依托的仿真技术也快速发展起来,并在短时间内应用于各工程领域。在计算机平台上进行机械零件的设计、校核,电子电路的设计,软件的编程,最终进行系统运动仿真,己经逐渐成为机电一体化设计的发展趋势。设计与制造的传统步骤,第一步是方案设计及论证,第二步进行产品设计。在第二步完成后,为了验证第二步的设计有无问题,通常要制造一台母机进行试验,这些试验中常常出现破坏性的结果。当试验显现发现缺
10、点不足时,又要回头修改第二步设计并再用样机验证。这是一个周而复始、不断循环的设计一试验一设计过程,只有通过这种严苛而复杂的过程,产品才能达到所要求的性能。不过这一程序是冗长的,尤其对于结构繁复的系统,设计周期更是无法缩短,哪还用谈对市场的灵活反应了。时下大多数的情况是,企业工程师们为了确保产品按时投向市场而不得已中断简化这一过程,使产品在上市后便出现这样那样的问题,这也是许多人认为国内企业先天不足的由来。时下的大背景是激烈市场竞争,在实际样机平台上的设计验证程序严重地限制了其产品质量、其成本及其对市场的占有。随着全球化经贸态势的日渐显现,要想夺竞争取趋激烈的市场,并扩大市场占有率。便应运出现了
11、开发周期短暂,产品质量足够保障,成本低廉以及对市场反应灵活运营方式。哪个公司早推出产品,哪个公司就占有市场。显然传统的设计与制造步骤根本无法满足以上要求。1.2 数控技术的发展方向及本次毕设的主旨已经问世40多年的数控技术是基于诸多基础学科而发展起来的,这是一门不算新兴,但却举足轻重的跨越性科学,是自动化,机电一体化,简单化,居家化,小型化制造业的基石。在未来,数控技术,仿真模拟技术的不断升级改良,普及大众,基础零件更容易获得,企业源代码的逐步放送,会使得有兴趣,有志于此的人可以在家中,用简单的机床加工出自己设计的手机,遥控器等数码产品。也可以对各种买来的家用电子元件进行个性化的魔改。就好像美
12、国电影中,一个乡下农场中,个人的爱好小作坊居然也能发展,制造出改变世界的发明一样。这些都是数字化技术,数控技术,仿真模拟技术大统一的必然结果。本次毕设就是对于数控铣床进行一次简单的二次开发,通过毕设中设计出的4乘4矩阵键盘,实现铣刀X轴,Y轴的控制走向。这个二次开发可以连接已有的数控铣床,使工人们不必在使用铣床之前,背诵大量G17,G18,G90,G40等预存语言,可以通过简单的X轴,Y轴正传反转来控制。也可以连接普通的非数字化铣床,将其升级为半自动化铣床,解放手工操作。当然,本次毕设立意的确不凡,但笔者能力实在有限,所设计出的电子电路及操控软件并不符合实际生产生活需要,但通过本次毕设,让笔者
13、对于电子电路及单片机开发应用大感兴趣,并亲手调试程序,理解铣床控制的基本原理。1.3 数控技术的国内现状及发展趋势我国的数控技术起步较晚,虽然在学校精工实习时接触了一些数字化机床,但大多是一代,二代,三代的老式机床,命令语句复杂,且不知能。精工实习过程中,在铣床实习时,笔者曾编译了一段程序,将蜡块铣成摩托诺拉的某款经典机型,当然,现在的手机大多为平板触屏手机,简单的程序就可以铣出超薄的平面机型,似乎根本不用迫切发展数控技术,当然,此为笑言。笔者在假期实习时,曾进入一些工厂实习工作,这些工厂中还保留着大量非数控的铣床,车床等机床。一些老工人手艺精湛,根本不需要背诵繁复的数控指令,看几眼零件,摸几
14、下就能加工出精美利落的成品。但未来的工业是大工业时代,大批量机加制成品依然占据着绝大部分市场。我国也不再是当年那个发射东方红一号时,有几块钢板还是老师傅一锤子一锤子才敲打出弧形的国情了。在笔者看来数字技术必然如上文所说一样,逐渐简单化,平民化,全民有兴趣之人都可以参与进来,都可以按照自己的个性加工出自己的零件,编写调试出带有个人特点的程序,组装自己心仪的产品,实现每个人不同的要求。2、三维建模及二维工程图2.1 SolidWorks软件介绍 目前流行的主流高、中端三维CAD软件很多,如UG、II、CATIA、ProE、SolidEdge、SolidWorks等,选择空间很大。所有方才所述的软件
15、中,都供应了过程装置以及运动干涉检验、仿真模拟等功能,以及最重要的系统二次开发接口。这使得熟用上述软件之人可以自行开发出自己用着顺手的应用程序。SolidWorks是一套基于Windows的CADCAECAMPDM桌面集成系统,是美国SolidWorks公司于1995年11月研制的。该软件将二维制图和三维构型技术巧妙的杂糅为一体,操作便宜,上手极快,可以完成复杂的构型设计、大型装配、高级曲面设计造型和设计修改等。集构型设计、应力分析、仿真加工和数据管理于一款软件,可以模拟动态装配过程,计算质量特征,可将三维实体构件转化为二维平面工程图。2.2 三维实际建模过程实际建模复杂艰辛,笔者以前学过CA
16、D、CATIA等建模软件,这次经同学介绍学习使用SolidWorks这款软件,单前期学习准备便花了两周时间,画出了七八个小零件,总算初步学会使用这款软件。根据实际测量所得铣床尺寸,将此次三维构件分解为三个零构件,分别为铣床底座,可移动固件平台,刀具装置件。如下图2.1,2.2便是其中刀具装置件与可移动固件平台两个零件。其中可移动平台的固定卡具很不好建模,孔多件难,还不好测量,特意接了一个卡尺反复测量,有照了很多照片对比建模,但最后还是反复跑了机械馆数次,才测得准确数字,勉强画出了几个零件。 图 2.1刀具装置件 图2.2 可移动固件平台 下边分别罗列了构建的整体视觉图以及正视图,侧视图等。图2
17、.3 整体视觉图从上图的整体视觉图中不难看出,可移动固定平台有X轴移动行程,与Y轴移动行程。其工作范围分别是X=120mm,Y=160mm;采用滚珠丝杠杆作为传动装置,丝杠导程4mm。设计中伺服电机最大进给速度2m/min。在软件装配时,X轴Y轴的导轨安装十分麻烦,因为无法将固定平台拆卸下来,自然不知道其中连接方式,上网查询了很多铣床装配图,也无法完整的复制出移动平台的安装方式,更无从在软件中制作约束。 图2.4 正视图 图2.5 侧视图2.3 二维工程图3、单片机的介绍及程序说明3.1 单片机的概述自1946年美国军方定制的第一台计算机现世以来,计算机的微型化便从未停止过其脚步,最开始的计算
18、机机箱需要几间屋子盛放,后来变成火车头大小,再到八九十年代的台式机,笔记本,平板电脑。如今,计算机已经变成了指甲大小,这便是单片机。单片机全称单片微型计算机,又被称为微控制器、单片机,是微型计算机家族中的一个重要成员。单片机是将微处理器(计算机的中央处理单元CPU)CentralproeessingUnit)、一定容量的RAM和ROM以及I/O接口、定时等电路集成在一片芯片上。而不单单是完成某一个逻辑功能的芯片。概括的讲:一块芯片就是一台计算机,它的体积小、质量轻、价格低、为学习应用和开发提供了便利条件。图3.1 AT89C51单片机单片机是一块集成芯片,除了具有集成芯片的特点外还有许多其他不
19、同特点,本次毕设选用的是AT89C51这块单片机。这是一种带闪存可编程只读存储器的单片机。AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活价廉的方案。上图3.1便是本次毕设选用的AT89C51单片机,在proteus中的模型。3.2 单片机控制系统设计单片机编程之前需要规划出整个系统的控制流程图,通过流程图指导程序编译,电子电路连接等。下图是本次毕设大体流程控制,分别从指令输入,到单片机与电路互动,指导伺服系统,电机转动带动铣床。下图3.2为大体控制流程图。图3.2 控制系统流程图3.3 程序说明此次毕设的程序编译部分,图3.3的流程图进行编译,首先进行头文件调用#incl
20、ude,定义需要使用的各种编码table=0x3f,0x06.0x79,0x71,随后各定义全局变量u11,u12,key1等,定义变量输入sbit PWM1=P34。定义延迟函数void delay(uint x),定义初始化函数void init(),定义共阴极数码管显示函数void display(uchar segNo,uchar num),定义键盘扫描函数void keyScan(),定义主函数void main(void)。在主函数中分别调用初始化函数,键盘扫描函数,在显示函数中显示。最后编写中断函数,控制输出波形。下图图3.3为指导本次编程的流程图:图3.3 编程流程图在编程中,
21、最为重要的便是键盘扫描函数,在键盘扫描函数中使用switch函数,分别对矩阵键盘的每一行进行询问,待相应之后分别对每一个回应,对应的每一个键位进行定义,以实现矩阵键盘的各种功能。4、Proteus中电子电路建立及仿真模拟4.1 proteus仿真软件的介绍PROTEUS软件是由英国 Labcenter Electronics公司开发的EDA工具软件。它从1989年问世至今,经过了近20的使用、发展和完善,功能越来越强大,性能越来越好。PROTEUS安装以后,主要由两个程序组成:ARES和ISIS。前者主要用于PCB自动或人工布线及其电路仿真,后者主要采用原理布图的方法绘制电路并进行相应的仿真。
22、除了上述基本应用之外,PROTEUS 革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软件源代码级的调试,还可以直接实时动态地模拟按键、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测4.2 仿真电路实现过程以前学习proteus只是做了一些简单的如跑马灯,定时器,静态数字显示等模拟,虽然知道这款软件功能十分强大,但很少编写大程序。这次毕设一开始虽然在心底构思了一些方案,有简单的流程设计,但一动手开始写程序,就给了笔者迎头一棒将电路图设计出来之后(如图4.1),根本不知道从哪下手写程序,老师说这
23、个毕设并不困难,只需要一两百行的程序就可以了。可是笔者闭关三天,才苦苦写出了二三十行程序,更让笔者心凉的是,笔者的数码管根本不显示任何数字,连乱码都没有!更别说控制伺服电机了,不好的时候电机根本不动,就算问了同学,调试了一下程序,电机居然很不给面子的直接转到了头。这要是实际工程应用,笔者的程序恐怕会谋杀很大一批数控铣床。痛定思痛之下,笔者不得不认清现实,从头开始。先图书馆借了许多proteus相关的书籍,又从网上下载了一些编程视频观看学习。图4.1,原电路图从最简单的程序入手,将本次毕设的程序分三段调试,这里边需要提一句,北京航空航天大学出版的proteus辅助的单片机原理实践这本书对笔者帮助
24、很大。笔者按照书上的教程,简单练习了几个小程序热手,之后将这次的毕设题目分解成三个小题目。分别是:8位共阴极数码管显示,矩阵键盘输入,伺服电机控制。首先是8位共阴极数码管显示,笔者更改之前图1中使用的PG12864F显示器,改用编码为7SEG-MPX8-CC-BLUE的8位共阴极数码管。八位共阴极数码管的显示并不困难,从0至F的十六位数字都有各自的代码显示,只要在主程序中调用显示程序,并在对应的位上输入数值编码,便可以完成显示,程序简简单单的十数行,笔者便完成了生日的输出,如图4.2所示。图4.2,生日截图这里边还有一个小插曲,为了连线方便,笔者将数码管的数字接口接到了AT89C51单片机的P
25、0口,将位选接口接到了单片机的P2口,可是屏幕根本不亮。当时简直要疯了,砸电脑的心思都有,心说连一个显示程序都写不出来,还能不能毕业了。后来按照书上的电路图,将位选接口接到了单片机的P1口。模拟开始之后,屏幕居然显示了笔者的生日,当时成就感立刻就来了。位选接口必须接到P1口,就好像外部中断控制最好接到P32到P35口一样。然后是矩阵键盘输入,最开始笔者学习书上使用for循环,调用16位矩阵键盘编码实现矩阵键盘输入,可是悲剧的发现,笔者对for循环并没有天赋,尤其是矩阵键盘要实现数字,正反转,复位,启停等不同功能。很快笔者就改用if循环,在if循环中嵌套switch语句,虽然不如for循环简单明
26、了,需要对矩阵键盘的四个横行询问,并对每一个纵行代码进行编译,但恰好满足笔者对每个键值的定义。如图3所示,笔者定义了一个矩阵键盘,并将矩阵键盘每一个对应值都显示在数码管中。图4.3,矩阵键盘伺服电机的控制算是三个分题目中最困难的,如图4.4所示笔者选用了编号为MOTOR-PWMSERVO的伺服电机,要控制伺服电机的速度与偏转角度(铣刀的位置),需要对PWM端口输入不同频率的方形波,这就涉及到中断控制的定时器与计数器了。Proteus的编程书籍中介绍了很多中断方面的知识,但说实话,笔者到现在也并没有完全学明白,很多中断都是凭着感觉,一点一点将程序调试出来的。定时器/计数器控制寄存器TCON的中断
27、请求标志格式为:TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H其中关于中断的就有6位,中断方式又有数种,对于书上的初始化函数中,ET0=1,TR0=1,与EX0=1,IT0=1,有什么具体区别根本搞不懂。按照书上将伺服电机的控制电路连接出来,程序也抄写在KEIL软件中,编译运行后伺服电机也如愿控制,但只要进行微调,比如说书上的程序电机每一次转动15度,但要控制铣床,就算对自己的要求再低,怎么也要把精度保持在1mm一下,如果电机每一步都转动15度,那需要使用的电传和齿轮系统笔者根本无法想象。足足花了数天时间,笔者在调试伺服电机的程序
28、,逐行理解程序的含义,对每一行的程序都进行标注,逐行改变程序赋值,希望能有奇迹出现。最后经由老师点拨,笔者更改了定时器初值,每1um便进行一次中断,又调节了频率与占空比,终于输出了比较满意的方形波,让伺服电机每一次转动的范围下降到了3度,比原来足足放大了5倍,节省了许多齿轮。但这又导致后来合成程序中出现了一个问题,笔者的延迟函数也只能延迟更少的时间,如果延迟时间过长,数码管的屏幕会不断闪烁,甚至出现乱码。图4.4,伺服电机前后用了数周的时间,终于做出了零零碎碎将近10个仿真电路及其对应的程序,眼看着其他同学已经开始调试大程序,但笔者心中却颇有成就,因为笔者的大程序中,大部分语句都是亲手编译调试
29、,笔者知道每一行语句的意义,编译出现错误笔者能够很快的更改,数码管显示出现不合心意的时候,笔者也能定位到相应的语句。终于,笔者带着将近一个月的积累,开始合成大程序,笔者将更改之后的三个子程序嵌入到大程序中,并用主函数分别调用初始化函数,键盘扫描函数,显示函数,笔者以为准备工作做得充足,主函数只要区区数行就可以完成这次毕设,结果仿真出来的结果让笔者哭笑不得。第一次仿真,8位数码管只亮了6个,调试之后,正转(E)反转(F)的显示代码随时改变,位移显示部分更是奇葩,输入数字之后,只显示11,22,33,44等数字,根本无法输入正常的数值,更别说舵机了,舵机也跟着乱转,就连现在,笔者调出来的程序,复位
30、键还无法让舵机复位。图4.5 最终电路实现4.3 程序实现简述及其源程序全部源程序及其说明 #include /调用头文件 #define uchar unsigned char /简化定义语句 #define uint unsigned int/共阴极数码管,数字编码 uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴极数码管,位选编码 uchar code seg=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe
31、; uchar u11,u12,u21,u22,u31,u32,a,b,c,d,u41,u42,key21,key22,key1;/x轴,u11=9,Y轴u12=10,正转反转,正转E,u21=14,反转F,u22=15,位置,u31=,u32sbit PWM1=P34;/X轴电机控制sbit PWM2=P35;/Y轴电机控制sbit XZHOU=P32;/X轴键值输入sbit YZHOU=P33;/Y轴键值输入uchar DutyCycle1=43;/28,56,占空比变量uchar DutyCycle2=43;uchar dida1=0;/软件计数变量uchar dida2=0;/延时函数
32、void delay(uint x) uchar i; while(x-) for(i=0;i110;i+);/ 初始化函数void init() TMOD=0x02; /设置定时器0工作方式在2 TH0=(256-1); /定时器初值设定 TL0=(256-1); /定时器初值设定 ET0=1; /使能定时器0中断 TR0=1; /开启定时器 EA=1; /使能总中断 PWM1=1; /初始化PWM1,开始输出高电平 PWM2=1;/8位共阴极数码管显示函数 void display(uchar segNo,uchar num) P0=segsegNo;/通过P0端口选择显示的位 P1=ta
33、blenum;/通过P1端口显示数字 delay(0.5);/按键扫描函数,X轴控制void keyScan() uchar t; /定义局部变量 delay(0.5);u11=10,u12=11;/X轴显示代码A,Y轴显示代码b P2=0xfe; /第一行闭合,1,2,3,X轴正转四个位置 t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第一行闭合的情况下 t=P2; switch(t) case 0xee : /第一列闭合(键盘1位置) key1=1; break; case 0xde : /第二列闭
34、合(键盘2位置) key1=2; break; case 0xbe :/第三列闭合(键盘3位置) key1=3; break; case 0x7e :/第四列闭合(x轴正转,e,14) u21=14; break;while(t!=0xf0) /松手检测 t=P2; t=t&0xf0;/第二行闭合,4,5,6,X轴反转四个位置 P2=0xfd; t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第二行闭合的情况下 t=P2; switch(t) case 0xed : /第一列闭合(键盘4位置) key1=
35、4; break; case 0xdd :/第二列闭合(键盘5位置) key1=5; break; case 0xbd :/第三列闭合(键盘6位置) key1=6; break; case 0x7d :/第四列闭合(x轴反转f) u21=15;/f=15 break;while(t!=0xf0) /松手检测 t=P2; t=t&0xf0;/第三行闭合,7,8,9,Y轴正转四个位置 P2=0xfb; t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第三行闭合的情况下 t=P2; switch(t) case
36、 0xeb :/第一列闭合(键盘7位置) key1=7; break; case 0xdb:/第二列闭合(键盘8位置) key1=8; break; case 0xbb :/第三列闭合(键盘9位置) key1=9; break; case 0x7b :/第四列闭合(y轴正转) u22=14; break;while(t!=0xf0) /松手检测 t=P2; t=t&0xf0;/第四行闭合,复位,0,启停,Y轴反转四个位置 P2=0xf7; t=P2; t=t&0xf0; if(t!=0xf0) delay(0.5); t=P2; t=t&0xf0; if(t!=0xf0) /第四行闭合的情况下
37、 t=P2; switch(t) case 0xe7 :/第一列闭合(键盘复位位置) key1=0,key21=0,key22=0,u21=0,u22=0,u31=0,u32=0,u41=0,u42=0,DutyCycle1=43,DutyCycle2=43,c=0,d=0; break; case 0xd7 :/第二列闭合(键盘0位置) key1=0; break; case 0xb7 :/第三列闭合(键盘启停位置)/x轴数字为c,DutyCycle1 x轴伺服电机占空比,控制电机转动角度 /y轴数字为d, DutyCycle2 y轴伺服电机占空比,控制电机转动角度 c=u31*10+u41
38、;/c d=u32*10+u42;/d break; case 0x77 :/第四列闭合(y轴反转) u22=15; break;while(t!=0xf0) /松手检测 t=P2; t=t&0xf0; delay(0.5);/主函数void main(void) init();/调用初始化函数 while(1) /不按显示(!XZHOU=0) ,点击显示(!XZHOU) 按下显示 (YZHOU=0) keyScan(); /调用键盘扫描函数 if(!XZHOU)|(!YZHOU) /向XY轴分别输入数字 if(!XZHOU) /如果电机X轴按钮,键入数值 /将数值分别存入u31,u41 de
39、lay(1); a=key1; if(a!=key1) u41=a; if(u31=u41) u31=a; if(u31!=u41) u31=u41; u41=a; delay(1); if(!YZHOU)/如果电机X轴按钮,键入数值 /将数值分别存入u32,u42 delay(1); b=key1; if(b!=key1) u42=b; if(u32=u42) u32=b; if(u32!=u42) u32=u42; u42=b; delay(1);while(!XZHOU)|(!YZHOU); /松手检测 /调用显示函数,第一至第八位 display(7,u11);/X轴 (A)10 di
40、splay(6,u21); /正转(e)/反转(F) 14,15 display(5,u31);/位置 display(4,u41); display(3,u12);/y轴 (b)11 display(2,u22); /正转(E)/反转(F) display(1,u32); /位置 display(0,u42); delay(0.5); /x轴数字为c,DutyCycle1 x轴伺服电机占空比,控制电机转动角度 /y轴数字为d, DutyCycle2 y轴伺服电机占空比,控制电机转动角度 /根据正转反转显示,控制舵机转向 if(u21=15) DutyCycle1=43-c; if(u22=1
41、5) DutyCycle2=43-d; if(u21=0) DutyCycle1=43; if(u22=DutyCycle1) PWM1=0;/低电平 else /改变PWM口的电平,获得PWM波形 PWM1=1;/高电平 if(dida1=100) dida1=0; /一个PWM周期(1*100us=0.1ms)完成后,软件计数变量清零 dida2+; if(dida2=DutyCycle2) PWM2=0;/低电平 else PWM2=1;/高电平 if(dida2=100) dida2=0; 参考文献1 张义和 陈敌北等. 例说8051单片机程序设计案例教程. 2014 人民邮电出版社2
42、 孔超 张玮等从繁为简51单片机应该这样学2013 中国铁道出版社3 赵广元 Proteus辅助的单片机原理实践 2013 北京航空航天大学出版社4 韩晓东 单片机课程同步实验指导 2013 清华大学出版社5 张涵 基于Proteus的电路及单片机设计与仿真 2012 电子工业出版社6 尚雪梅 康彦青 SolidWorks建模技术在工程制图教学中的应用 陕西 西安 7100187 李玮 三位数控仿真实验系统的研究与开发 2009 东华大学8 张朝 虚拟数控车削加工系统研究与实现 2006 苏州大学9 韩锐 基于SolidWorks的机构运动仿真研究 2004 西安理工大学10 郑建荣编著.AD
43、AMS一虚拟样机技术入门与提高.北京:机械工业出版社,2002.11 郑武.弧面分度凸轮的廓面误差补偿及基于SolidW0rks的运动仿真.西安理工大学硕士论文,2002.12 刘友和,郑继昌等.SolidW0rks入门.北京:清华大学出版社,2002.13 SolidworksCorporation.SolidW0rks2001APIhelP.申永胜主编.机械原理教程.北京:清华大学出版社,1999.14 殷鸿梁,朱邦贤编著.间歇运动机构设计.上海:上海科学技术出版社,1996.15 常见机构的原理及应用编写组.常见机构的原理及应用.北京:机械工业出版社,1978.16 孙桓,傅则绍著.机械原理.北京:高等教育出版社,1989.17 王知行,刘延荣主编.机械原理.北京:高等教育出版社,2000.18 管荣法,汤从心.凸轮与凸轮机构基础.合肥:国防工业出版社,1985.19 王贤坤.机械CAD/CAM技术、应用与开发.北京:机械工业出版社,2000.20 万跃华主编.精通VISUALC+5.0编程.成都:电子科技大学出版社,1998.21
限制150内