欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    《计算机控制技术》课程设计说明书-基于89C51单片机设计二相电机控制系统设计.doc

    • 资源ID:3259819       资源大小:754.53KB        全文页数:27页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《计算机控制技术》课程设计说明书-基于89C51单片机设计二相电机控制系统设计.doc

    武汉理工大学计算机控制技术课程设计说明书目录摘 要11. 设计任务及要求22. 方案比较及选择22.1 LED显示选择方案22.2按键状态的读取23. 系统实现的原理33.1系统设计思路33.2步进电机工作原理33.2.1步进电机的启停控制33.2.2步进电机的控制时序43.3系统整体方框图64. 系统硬件设计74.1总体电路设计74.2电机模块电路设计84.2.1电机控制部分电路84.2.2步进电机驱动电路94.3 显示模块电路104.3.1发光二极管显示电路104.3.2七段数码管显示电路115. 系统软件设计115.1系统总体流程图115.2 二相步进电机工作方式模块程序设计135.2.1四拍方式模块程序设计135.2.2八拍方式模块程序设计145.3 系统显示程序模块设计156系统仿真结果16心得体会17参考文献:18附录 本设计所用的C程序清单19武汉理工大学计算机控制技术课程设计说明书摘 要基于89C51单片机设计二相电机控制系统,实现四拍和八拍方式转动,并能进行调速和正反转控制。同时由数码管和LED显示电机转动步数和工作状态。首先需要构建控制信号输入和输出显示器以及核心运算部分构成整个系统,然后画原理图并且用PROTUES软件仿真。设计过程中用到单片机、双极性H桥驱动电路、数码管显示电路等模块电路。设计的系统通过循环扫描状态信号,控制电机的运转同时输出状态。关键词:单片机,H桥,PROTUES,数码管Abstract Based 89C51 microcontroller design two-phase motor control system, having four-beat and eight-beat way to turn, and can control the speed and reversing. At the same time,The digital control and LED display motor rotation step and working condition. First need to build a control signal input and output display parts and the core computing system, and then draw the schematic and software simulation with PROTUES. Microcontroller used in the design process, bipolar H-bridge driver circuit, the digital display module circuit. Scan through the system design cycle status signals to control the motor running while the output state.Key words: Single-chip, H-bridge, PROTUES, digital 二相步进电机控制系统的设计1. 设计任务及要求 设计一个二相步进电机控制系统,电机有两组带中心抽头的线圈,要求系统具有如下功能:采用双极性(H桥)控制(不使用线圈的中心抽头),用K0-K1做为通电方式选择键,K0为四拍,K1为八拍, K2为启动/停止控制;K3方向控制(正反转);K4速度控制(快慢两档);用4位LED数码管显示工作步数。用3个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时绿灯亮。 2. 方案比较及选择 2.1 LED显示方案的选择 方案1:把所要显示的数据通过液晶显示屏显示。其优点是输出简单,可以简化硬件和程序,但增加了芯片的费用。 方案2:通过软件把所要的数据转化为七段显示的数据,直接通过数码管来显示,其优点是简化了电路,但增加了软件编写的负担。通过对方案的比较,选择方案2通过数码管显示信号,比较简单经济。 2.2按键状态读取方案的选择 方案1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信号,再通过软件编写的中断服务程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。 方案2:不使用中断,直接把开关分别接在单片机的接口上,通过查询端口信号来动作。其优点是程序得到简化。 通过对方案的比较,选择方案2通过查询方式来读取端口信号,相对来说编程和硬件电路都比较简单。3. 系统实现的原理3.1系统设计思路本设计是设计一个步进电机控制系统,主要由单片机80C51,二相四线步进电机,7段数码管,双极性H桥驱动电路设计而成。可以通过单片机P2口读入开关信号来控制系统的启/停等各种工作,当系统运转时,用开关来控制方向转速,并使相应的状态指示灯亮起,同样由开关来选择工作模式。运转时,用4位7段数码管来显示电机转动的步数。根据设计的硬件电路图设计相应的软件完成各项功能。3.2步进电机工作原理3.2.1步进电机的启停控制 步进电机是将电脉冲信号转变为角位移的开关控制元件。电机的转速,停止的位置指取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。如图3-1为二相步进电机的工作原理图。由图可知,每个绕组都有一个中间抽头。当电机的绕组通电后,其定子磁极产生磁场,当转子吸合到相应的磁极处。若绕组的控制脉冲使定子在顺时针方向轮流产生磁场,则电机可顺时针转动;通电方向与上相反,则电机可逆时针方向转动。控制脉冲每作用一次,通电方向就变化一次,使电机转动一步,脉冲频率越高,电机转动的也就越快。图3-1 二相步进电机原理图3.2.2步进电机的控制时序 根据步进电机的工作原理,四拍工作方式下,当控制器给驱动器发出脉冲信号时,驱动器经过环形分配器和功率放大器后,给电动机绕组通电的顺序为,其4个状态按顺序周而复始变化,电机正转;若通电时序变为时,电机就逆向转动。当八拍工作方式时,给电动机绕组通电的顺序为时,电机正转,反向通电时电机反转。改变通电频率时可相应的改变电机的转速。3.2.3步进电机的控制方式字 (1)二相四拍工作方式 在这种工作方式下, 、相轮流通电,电流切换四次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四拍工作方式。这时步距角b (度)为 式中:m定子相数; z 转子齿数;每次切换均使转子转动90°角。 四拍方式的控制字如表1所示:表1 四拍工作方式控制字步序 控制位工作状态控制模型P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.01000010100AH20000100109H30000010105H40000011006H (2)二相八拍工作方式 在此工作方式下,绕组以时序(或反时序)转换8次,磁场旋转一周,转子前进一个齿距,每次切换均使转子转动45°角,故这种通电方式称为二相八拍工作方式。 八拍的控制方式字如表2所示:表2 八拍工作方式控制字步序 控制位工作状态控制模型P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.01111100100f2H21111010AB0faH311111000B0f8H4111110010f9H5111100010f1H6111101010f5H7111101000f4H8111101100f6H 3.3系统整体方框图 设计的系统的总体方框图如图3-2所示:89c51单片机整体控制器数码管显示模块开关控制单元模块LED显示电机工作状态H桥驱动电机模块图3-2 系统的整体方框图 由系统的整体方框图可以看出,本系统主要由控制部分、显示部分和执行部分3大部分组成。这几部分通过89C51组合成整个系统,单片机通过读取系统状态和控制信号,经过内部的运算把控制命令输出给被控电机,同时把此时的工作状态通过LED显示,并通过数码管显示电机转动步数。4. 系统硬件设计 4.1总体电路设计 系统由单片机控制着显示部分和电机的运转。电机由双极性H桥驱动。用K0-K1做为通电方式选择键,K0为四拍,K1为八拍。K2、K3分别为启动和方向控制,K4为速度控制键。正转时红色指示灯亮,反转时黄色指示灯亮,不转时绿色指示灯亮。用数码管显示工作步数。 根据设计要求用PROTEUS画出的硬件连线图如下图4-1所示:图4-1 系统总体硬件电路图4.2电机模块电路设计4.2.1电机控制部分电路 控制信号输入部分电路图如下图4-2所示图4-2 按键控制部分电路图 K3为电机转动方向控制键。K4为速度控制开关,控制步进电机的转速。K0-K2为工作模式控制开关,K0接电时,为步进电机四拍工作模式;K1接电时,为步进电机八拍工作模式;K2启动控制开关,控制整个系统的启动和关闭,它们依次接单片机的P2.0-P2.3口。 4.2.2步进电机驱动电路 二相步进电机的驱动电路,如图4-3所示:图4-3 步进电机驱动电路 电机的驱动电路部分由8个达林顿管来驱动2组相位。当步进电机运转时,达林顿Q2和Q4导通时,线圈电流方向为;当达林顿管Q1和Q3导通时,线圈中电流方向为。可见,步进电机线圈中的电流方向在运转过程中是不断变化的。双极性驱动电路的绕组线圈每次都有电流通过,产生一个均匀的磁场,电机运转的稳定性更高。4.3 显示模块电路4.3.1发光二极管显示电路 用3个不同颜色的发光二极管来作为电机工作状态显示灯,正转时红色指示灯亮,反转时绿色指示灯亮,不转时黄色指示灯亮。各个灯的亮与否不是软件实现然后通过单片机完成的,而是控制信号通过逻辑电路搭接出来的。发光二极管显示的部分电路图如图4-4所示: 图4-4 状态显示部分电路图4.3.2 七段数码管显示电路 由89C51的P1口取出显示码,从89C51的P3.0-P3.3输出位选码,设计中我们主要用到4位显示步数既可。七段数码管显示部分的电路原理图如图4-5所示:图4-5 七段数码管显示部分的电路图5. 系统软件设计5.1系统总体流程图设计说明: 首先要复位单片机,然后从P2口读出开关状态,判断是否启动,没启动黄灯亮重新确认启动。启动后再次读取P2口数据,判断工作方式并将对应的用来存储步进电机工作方式字的数组首地址值给另一数组。由P0口的双向开关来控制步进电机的正反转,如果是正转则红灯亮,反转则绿灯亮。在电机每走一步后,步数累加1,然后通过数码管把工作步数显示出来。再从P2口把状态信息读出来,与之前的P2口的状态信息进行比较。如果状态信息没有改变,电机继续运行。如果状态信息改变了,就需要重新返回程序的开端,对电机的运行状态进行判断,让电机重新以新的状态运行。由此,开关的状态在电机每走一步都会查询一遍,做到实时地反映。系统总体流程图如图5-1所示:开始快慢K4?重新启动N黄灯亮给单片机复位启动?YNNY置慢速标志置快速标志反判断转向?正反转正转绿灯亮红灯亮四拍方式?YP0口指向八拍控制字数组P0口指向四拍控制字数组P0口输出控制字延时,步数加1,方式字地址加1数码管动态显示步数N信号变化? Y图5-1 系统软件总体流程图5.2 二相步进电机工作方式模块程序设计 设计说明:在此设计中,采用的是二相步进电机,对于步进电机模块的程序设计采用循环程序设计方法。先把正反转向的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。首先启动,选择步进电机的拍数,输入步数,然后读入正反转的控制模型驱动步进电机转动。 5.2.1四拍方式模块程序设计 二相步进电机四拍工作的流程框图如图5-2所示:开始N是正转吗?Y四拍反向控制字数组地址四拍正转方式控制字数组输出控制模型 电机转动延时,模型地址+1N信号变化?Y 图5-2 二相步进电机四拍工作的流程框图5.2.2八拍方式模块程序设计 二相步进电机八拍工作的流程框图如图5-3所示:开始是正转吗NY八拍反向控制字数组地址八拍正转方式控制字数组输出控制模型 电机转动延时,模型地址+1N信号变化?Y图5-3 二相步进电机八拍工作的流程框图5.3 系统显示程序模块设计设计说明:显示模块是用4位7段数码管来显示工作步数。先将显示码存入数组中,指向最左边一位,然后取出要显示的数据,指向换码表首地址,取出显示码,从P0口输出显示码,P3口输入位选码,显示出4位工作步数,最后修改数组地址,求下一位显示码继续显示。显示程序流程图如图5-4所示:动态显示子程序取出要显示的数据 显示数据的显示码送位段码到P0口输出送位显码到P3.0-P3.3输出延时求下一位选码 显示数据的显示码图5-4 显示模块的程序流程图6系统仿真结果 当选择电机工作在四拍,正转的模式下,K0、K2置高电平,K1、K4置低电平,系统启动,K3置高电平,电机开始四拍正转。LED四位显示屏显示工作步数,LED指示灯红灯亮显示电机正转的状态。仿真图如图6-1所示:图6-1 系统仿真结果截图 心得体会真的很辛苦,不过终于我的设计完成了。这一刻不仅是高兴,更多的是激动。此刻我也真正的学到了很多东西。已经不知道去过图书馆多少次查阅资料,一次一次的仿真实验,一次一次的方案设计,一次一次的编制程序。在经历过无数次的失败,我终于成功了。得到了理想的仿真结果。看着自己的课程设计,真的无比的高兴,心中充满成就感。 通过本次课程设计,我得到了以往不曾有过的体会与经验。将自己学到的理论知识通过本次课程设计应用到了实际应用当中,提高了自己各方面的能力。同时也加深了自己对于相关课程基础理论知识的理解和掌握,学会了综合运用所学知识。学会了应用所学的知识在实际硬件电路上编程完成所需功能。对单片机的应用有了进一步的掌握。懂得了如何去发现问题,思考问题,解决问题。通过这次计算机控制的课程设计,我学会了灵活的运用单片机,更学会了异步电机的原理和如何去很好的控制异步电机工作。最后,我最大的收获就是: 失败是成功之母,只要努力就会有收获。参考文献:1 于海生编著.计算机控制技术.北京:机械工业出版社.20052 张义和、王敏男等编著.例说51单片机.北京:人民邮电出版社.20083 陈涛编著.单片机应用及C51程序设计.北京:机械工业出版社,20104 齐向东、刘立群编著.单片机控制技术实践.北京:中国电力出版社,20095 张靖武,周灵彬编著.单片机系统的PROTEUS设计与仿真. 北京:电子 工业出版社,2007.6 余炳雄,陈志玲,黎浩樑编写.二相步进电机驱动电路的设计.广州:华南师范大学学报,2009.附录 本设计所用的C程序清单#include<reg51.h>#define motor P0#define led P1#define kongzhi P2 #define deng P3sbit led1=P30;sbit led2=P31;sbit led3=P32;sbit led4=P33;sbit dansi=P20;sbit sudu=P21;sbit ba=P22;sbit qidong=P23;sbit fangxiang=P24;char table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共阳极数码管编码a1=0x0a,0x09,0x05,0x06; /四拍正转a2=0x06,0x05,0x09,0x0a; /四拍反转b1=0xf2,0xfa,0xf8,0xf9,0xf1,0xf5,0xf4,0xf6; /八拍正转b2=0xf6,0xf4,0xf5,0xf1,0xf9,0xf8,0xfa,0xf2;/八拍反转unsigned char aa;int i,j,qian,bai,shi,ge,temp; void delay(int x) /延时子程序1 int c,j; for(c=0;c<x;c+) for(j=1;j<=60;j+); void shumaguan(temp) /数码管动态显示子程序led1=0;led2=0;led3=0;led4=0;qian=temp/1000; /取千位bai=temp%1000/100; /取百位shi=temp%100/10; /取十位ge=temp%10; /取个位led4=1;/个位数码管亮led=tablege;delay(1);led4=0; led3=1; /十位数码管亮led=tableshi;delay(1);led3=0;led2=1; /百位数码管亮led=tablebai; delay(1);led2=0;led1=1; /千位数码管亮led=tableqian; delay(1);led1=0;void delay1(int x) /延时子程序2 int c,j; for(c=0;c<x;c+) for(j=1;j<=30;j+) shumaguan(temp); void dspzheng(void) /四拍正转子程序motor=a1i;i+;temp+;if(i=4)i=0;void dspfan(void) /四拍反转子程序 motor=a2i;i+;temp+;if(i=4)i=0;void bpzheng(void) /八拍正转子程序motor=b1i;i+;temp+;if(i=8)i=0;void bpfan(void) /八拍反转子程序motor=b2i;i+;temp+;if(i=8)i=0;void main(void) /主程序int i=0,j=0;dansi=0;ba=0;qidong=0;sudu=0;fangxiang=0;temp=0000;while(1)while(qidong=0)shumaguan(temp); /调用数码管子程序 while(qidong=1&&fangxiang=1&&dansi=1&&ba=0) while(qidong=1&&fangxiang=1&&sudu=1&&dansi=1&&ba=0) dspzheng(); shumaguan(temp); delay1(40); while(qidong=1&&fangxiang=1&&sudu=0&&dansi=1&&ba=0) dspzheng(); shumaguan(temp); delay1(10); temp=0; while(qidong=1&&fangxiang=0&&dansi=1&&ba=0) while(qidong=1&&fangxiang=0&&sudu=1&&dansi=1&&ba=0) dspfan(); shumaguan(temp); delay1(40); while(qidong=1&&fangxiang=0&&sudu=0&&dansi=1&&ba=0) dspfan(); shumaguan(temp); delay1(10); temp=0; while(qidong=1&&fangxiang=1&&dansi=0&&ba=1) while(qidong=1&&fangxiang=1&&sudu=1&&ba=1&&dansi=0) bpzheng(); shumaguan(temp); delay1(40); while(qidong=1&&fangxiang=1&&sudu=0&&ba=1&&dansi=0) bpzheng(); shumaguan(temp); delay1(10); temp=0;while(qidong=1&&fangxiang=0&&dansi=0&&ba=1) while(qidong=1&&fangxiang=0&&sudu=1&&ba=1&&dansi=0) bpfan(); shumaguan(temp); delay1(40); while(qidong=1&&fangxiang=0&&sudu=0&&ba=1&&dansi=0) bpfan(); shumaguan(temp); delay1(10); temp=0; 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

    注意事项

    本文(《计算机控制技术》课程设计说明书-基于89C51单片机设计二相电机控制系统设计.doc)为本站会员(爱问知识人)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开