计算机控制技术课程设计-小功率直流电机测速系统的设计.docx_第1页
计算机控制技术课程设计-小功率直流电机测速系统的设计.docx_第2页
计算机控制技术课程设计-小功率直流电机测速系统的设计.docx_第3页
计算机控制技术课程设计-小功率直流电机测速系统的设计.docx_第4页
计算机控制技术课程设计-小功率直流电机测速系统的设计.docx_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机控制技术课程设计说明书小功率直流电机测速系统的设计学生姓名: 学号: 学 院: 专 业: 指导教师: 2016年 1月目 录1 序言12系统要求分析22.1系统要求及任务22.2 功能介绍23硬件电路33.1 硬件电路设计33.2单片机模块33.2.1时钟电路33.2.2复位电路43.2.3显示电路43.2.4欧姆龙e6b2-wz6c介绍54 软件设计74.1单片机转速程序设计及思路74.1.1转速计算原理74.1.2单片机转速的计算程序74.2程序设计85软件调试95.1软件程序95.2 结论10附录1 硬件电路图11附录2 程序源代码12参考文献161 序言目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、ccd 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景。2 系统要求分析2.1系统要求及任务本次课程设计要求设计一个由计算机控制的直流电机测速系统,可以测量出直流电机的转速。要求用光电编码器,实时监测电机的转速,监测范围为01000转/分,并在屏幕上面显示当前的转速。本设计的优点是:硬件电路简单,软件编译简单,测量速度快捷,整体价格低廉,电路功耗低等特点。但由于在硬件系统中的测量误差与计算中不可避免的舍入误差,使得测量系统含有一定的误差。2.2 功能介绍功能:系统主要实现功能是:stc89c52单片机接收编码器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行记数计算出电机转速送到led显示。组成框图: 转速 计算单片机stc89c52数码管转速显示编码器图 1 系统硬件电路3 硬件电路3.1 硬件电路设计硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。89c52单片机通过int0输入传感器的脉冲信号,p0口p2口接led动态显示。本设计的总体硬件框图: 单片机 stc89c52显示电路 复位电路编码器输送信号时钟电路图 2 单片机部分硬件电路图3.2单片机模块根据系统功能要求以及单片机硬件电路设计思路(如图31)对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个部分。3.2.1时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本设计中此采用内部时钟方式,如图3所示,以石英晶体振荡器和两个片电容组成外部振荡源。片内的高增益反相放大器通过xtal1、xtal2外接,作为反馈元件的片外晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率取决于晶振的振荡频率,振荡频率范围为1.212mhz。工程应用时通常采用6mhz或12mhz。图中x1为12mhz(本设计采用的也是12mhz),电容c2、c4为33pf,它们一起构成此单片机的自激振荡器。图3 时钟电路3.2.2复位电路单片机的rst引脚为复位(reset)端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的低电平,就可以实现系统复位,使单片机回到初始状态。如图4所示,本设计采用手动复位,用一个电容与一个10k电阻串联组成,电阻接vcc,电容接地,reset脚接在它们中间,rc选择10uf,按键与200r电阻串联,在电容两端并联,就成了按键复位电路,未上电时,rst端为高电平,只要按下这个按键,rst端转换为低电平,经过两个机器周期后,单片机就能复位。图4 复位电路3.2.3显示电路数码管显示原理:我们最常用的是七段式和八段式led数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小led发光二极管,通过控制不同的led的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个led的阴极连在一起,让其接地,这样给任何一个led的另一端高电平,它便能点亮。图5 数码管显示电路3.2.4欧姆龙e6b2-wz6c介绍欧姆龙e6b2-wz6c编码器是集合观点传感器、放大电路等于一体的器件。所谓编码器即是将某种物理量转换为数字格式的装置。运动控制系统中的编码器的作用是将位置和角度等参数转换为数字量。可采用电接触、磁效应、电容效应和光电转换等机理,形成各种类型的编码器。运动控制系统中最常见的编码器是光电编码器。光电编码器根据其用途的不同分为旋转光电编码器和直线光电编码器,分别用于测量旋转角度和直线尺寸。光电编码器的关键部件是光电编码装置,在旋转光电编码器中是圆形的码盘(codewheel或codedisk),而在直线光电编码器中则是直尺形的码尺(codestrip)。码盘和码尺根据用途和成本的需要,可由金属、玻璃和聚合物等材料制作,其原理都是在运动过程中产生代表运动位置的数字化的光学信号。 编码器的原理图如下: 图 6 编码器原理图 在现代高分辨率码盘上,透光和遮光部分都是很细的窄缝和线条,因此也被称为圆光栅。相邻的窄缝之间的夹角称为栅距角,透光窄缝和遮光部分大约各占栅距角的1/2。码盘的分辨率以每转计数(cpr-counts per revolution)表示,亦即码盘旋转一周在光电检测部分可产生的脉冲数。例如某码盘的cpr为2048则可以分辨的角度为10,311.8”。在码盘上,往往还另外安排一个(或一组)特殊的窄缝,用于产生nd或零位(zero)信号。测量装置或运动控制系统可利用这个信号产生回零或复位操作。4 软件设计4.1单片机转速程序设计及思路 主程序是控制单片机系统按照预定的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能。开始本系统的主程序流程如图7: 初始化 按键判断 2 1计算转速显示99999显示转速图7 主程序流程4.1.1转速计算原理转速计算公式: r/min本计算公式中,假设每秒接收的脉冲数位n,则n/1000就是每秒的转数,再除以1/60就是每分钟的转速。因此,我们可以采集每秒内的脉冲数,然后再除以编码器的分辨率,再乘以60就是每分钟的转速。4.1.2单片机转速的计算程序开始由于本次设计的系统要实现的功能是将编码器的信号送到单片机的外部中断口,再对周期方波进行内部计数,调用计算程序把转速测出来。可以说是核心部分,流程图如图8所示: 读取定时值调用计算程序显示转速图8 转速计算流程图4.2程序设计根据以上设计思路和各个模块的流程图即可编写出本次毕业设计的程序,注意其中各个模块间的参数传递以及堆栈指针等问题,程序设计的任务即可完成,写出初始的程序,再进行上机调试。5 软件调试 本文设计运用c语言进行编程,我们首先来介绍一下keil-uvision软件: keil有两种模式: 构建模式: 用于编辑和编译所有的程序文件,并生成最终的可执行程序。在创建程序相关章节中,我们将详细描述此构建模式。 调试模式: 提供一个强大的调试环境,帮助您跟踪调试程序。在调试程序相关章节中,我们将详细描述此调试模式。5.1 软件程序 构建过程:在菜单或工具条上点击 “build target” 命令之后,将开始编译代码。系统将自动检测文件依赖和关联性,因此只有修改过的文件才会被重新编译,这样可以显著的加快编译过程。您或许可以设定全局优化选项,对c或其它模块执行增量式重编译。通过project菜单,您可以进入项目文件和项目管理设定的对话框。点击keil -vision4 图标打开vision应用程序后,将下面下面这个窗口。在这个窗口里,您将可以创建项目、编辑文件、配置开发工具、执行编译连接,以及进行项目调试。图9 c程编译图经编译0警告、0错误,并生成”.hex”文件。如图9 图10 调试图一 图11 调试图二定时器工作正常,如图10。单片机输出正常,如图11.硬件缺陷:由于proteus软件中并没有光电编码器,电机测速之类的相关硬件也并没有做出实物连接,所以数码管并没有实时显示电机的转速,要是做出实物图连接的话,应该能实时显示。硬件接线如附录一。5.2 结论 本文主要设计了一种基于单片机和编码器测量电机转速的测量系统,其中编码器为欧姆龙e6b2-wz6c编码器。编码器输出的脉冲通过单片机对连续脉冲计数来实现转速测控。运行实验表明,该系统硬件系统接口电路简单,工作稳定可靠,满足调速要求具有一定的理论及实用价值。附录一:硬件电路图图12 硬件图附录二:源程序#include /52系列单片机头文件; #define uint unsigned int /预处理命令;uint temp=0,qian,bai,shi,ge,aa,n; sbit dula=p0; /申明u1锁存器的锁存端; sbit wela=p2; /申明u2锁存器的锁存端;sbit zd=p32; /将p32取名为zd;sbit kaishi=p34; /将p34取名为kaishi;sbit jieshu=p35; /将p35取名为jieshu;int flag; /定义一个整形变量flag;int shu=0; /定义一个整形变量shu,并将其置为0;uint code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共阳极数码管的编码数组;void display(uint qian,uint bai,uint shi,uint ge); void delay (uint z); void init(); void main() display(0,0,0,0);ea=1; /开总中断ex0=1; /开外部中断0 init(); /初始化子程序while(1) if(!kaishi) /判断开关是否闭合,闭合时flag置1; flag=1; if(!jieshu) /判断开关是否闭合,断开时flag置0; flag=0; if(flag=1) /当开关闭合时,数码管显示转速; display(qian,bai,shi,ge); else /当开关断开时,数码管显示9999; display(9,9,9,9); void delay(uint z) /x=z即延时约z毫秒; uint x,y; for(x=z;x0;x-)for(y=110;y0;y-); void display(uint qian,uint bai,uint shi,uint ge) /显示子函数; p0=tableqian; /数码管显示千位; p2=0xf7; /送位选数据; delay(1); /延时; p2=0xff; /送位选数据前关闭所有显示,防止打开锁存器时 /原来段选数据通过位锁存器造成混乱; p0=tablebai; /数码管显示百位; p2=0xfb; delay(1); p2=0xff; p0=tableshi; /数码管显示十位; p2=0xfd; delay(1); p2=0xff; p0=tablege; /数码管显示个位; p2=0xfe; delay(1); p2=0xff; void exter0() interrupt 0 n+; /记录电动机的圈数 while(zd=0); void init() wela=0xff; dula=0xff; temp=0; tmod=0x01; /设置定时器0为工作方式1(m1m0为01)tcon|=0x04; /ie=1;外部中断请求;th0=(65536-50000)/256; /装初值12mhz晶振定时50ms数为50000tl0=(65536-50000)%256; ea=1; /开总中断;et0=1; /开定时器0中断;tr0=1; /启动定时器0; timer0() interrupt 1 th0=(65536-50000)/256; /重装初值;tl0=(65536-50000)%256; aa+; if(aa=20) /如果到了20次,说明1s时间到了; aa=0; /把aa清0重新再计; temp=temp+20*n; /计算转速temp; shu+; n = 0; if(shu=2)temp=temp/2;qian=temp/1000; /算出直流电机转速的千位值、并显示在数码管上;bai=temp%1000/100; /算出直流电机转速的百位值、并显示在数码管上;shi=temp%100/10; /算出直流电机转速的十位值、并显示在数码管上;ge=temp%10; /算出直流电机转速的个位值、并显示在数码管上;shu=0; /将shu置0;temp=0; /将temp置0; 参考文献1徐爱

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论