步进电机系统设计实验报告_第1页
步进电机系统设计实验报告_第2页
步进电机系统设计实验报告_第3页
步进电机系统设计实验报告_第4页
步进电机系统设计实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

专业课程设计Ⅰ题目一步进电机控制系统设计院系:自动化学院专业班级:智能0801班小组成员:指导教师:王曙光日期:2011.05.23-2011.06.03目录1课程设计描述 32.课程设计具体要求 33.主要元器件 34.基本原理阐述 34.1步进电机的工作原理 34.2步进电机的启停控制 44.3步进电机的转向控制 44.4步进电机的速度控制 44.5步进电机的换向控制 45.实验方案 45.1控制系统的硬件设计 45.2电路设计 55.3系统软件设计 65.3.1主程序图 75.3.2显示子程序 75.3.3键盘扫描子程序 85.4源程序 86.设计中的问题分析 127.参考资料 138.实验总结 131课程设计描述:设计一个以8051单片机作为主控制器的步进电机控制器,实现对步进电机的转速、转向的控制和显示。2.课程设计具体要求:(1)可通过按键设置步进电机的转向(正/反转)、转速(增/减速);(2)可通过按键设置步进电机的励磁方式(单/双相);(3)可通过数码管将步进电机的转速显示出来;(4)设计电路,编写程序,软件硬件仿真、调试。3.主要元器件:实验板(中号)、STC89C51、电容(30pFⅹ2、10uFⅹ2)、数码管(共阳、四位一体)、晶振(12MHz)、小按键(5个)、步进电机(25BY)、ULN2003等4.基本原理阐述:4.1步进电机的工作原理步进电机由定子和转子两部分组成,下面以两相反应式步进电机为例说明步进电机工作原理。两相步进电机的定子上有两对磁极,按N、S、N、S分配,每两个相对的磁极组成一队。每对磁极都缠有同一个绕组,形成一相。转子是由软磁材料制成的,其外表面均匀分布着小齿,他们大小相同,间距相等。这些小齿与定子磁极上的小齿的锯齿相同,形状相似。如果按下表的时序给步机绕组通电,步进电机将产生转动,改变相序通电,步进电机的转向将反相,停止发送脉冲,步进电机将停止运转。图一步进电机结构通电相序4.2步进电机的启停控制步进电机由于其电气特性,运转时会有步进感,即振动感。为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,提高电机运行的平稳性。在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机的转轴不能自由转动。4.3步进电机的转向控制如果给定工作方式正序换相通电,步进电机正转。若步进电机的励磁方式为三相六拍,即A-AB-B-BC-C-CA。如果按反序通电换相,即则电机就反转。其他方式情况类似。4.4步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。2个脉冲的间隔越短,步进电机就转得越快。调整送给步进电机的脉冲频率,就可以对步进电机进行调速。4.5步进电机的换向控制步进电机换向时,一定要在电机减速停止或降到突跳频率范围之内再换向,以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第1个脉冲前发出。对于脉冲的设计主要要求要有一定的脉冲宽度(一般不小于5μs)、脉冲序列的均匀度及高低电平方式。在某一高速下的正、反向切换实质包含了减速→换向→加速3个过程。5.实验方案(含硬件结构图和电路图及说明、软件流程、源程序与注释等)5,1控制系统的硬件设计基于单片机的步进电机控制方案如下图二所示图二单片机控制步进电机原理图5.2电路设计设计电路如图三所示图三单片机控制步进电机原理图5.3系统软件设计本设计应用的是C语言进行编程,系统程序的总体设计思路是:利用单片机对键盘进行扫描,根据按键的状态来设置相应的状态位,然后根据各状态位的值输出相应的控制信号,进而实现对步进电动机的启动、停止、正反转、加速以及减速的控制,并把系统的运行状态在显示电路中显示出来。5.3.1主程序图

5.3.2显示子程序5.3.3键盘扫描子程序

5.4源程序#include"stdio.h"#include"reg51.h"#defineucharunsignedchar#defineuintunsignedint#definedatabusP0/****************************位变量和全局变量的定义****************************/bitstart_flag;//步进电机启动标志位,0代表关闭电机,1时代表启动电机bitone_two_flag;//单双相励磁标志位,0代表单相,1代表双相bitfor_rev_flag;//正反向转动标志位,0代表正向,1代表反向uinttime_speed;uintspeed;codeucharfoward_two[4]={0xf3,0xf6,0xfc,0xf9};//双相正转codeunsignedcharreverse_two[4]={0xf9,0xfc,0xf6,0xf3}; //双相反转codeunsignedcharfoward_one[4]={0xf1,0xf2,0xf4,0xf8};//单相正转codeunsignedcharreverse_one[4]={0xf8,0xf4,0xf2,0xf1};//单相反转//codeunsignedcharfoward_mix[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//混合正转//codeunsignedcharreverse_mix[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//混合反转codeuchartable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x3f,0x83,0xc6,0xa1,0x86,0x8e};//数码管显示字符sbitspeed_up=P2^4;//增速控制位sbitspeed_down=P2^5;//减速控制位sbitfor_rev=P2^6;//正反向选择控制位sbitone_two=P2^7;//单双相控制位sbiton_off=P3^0;//电机启动控制位uintspeed;ucharaa=1;/******************************子函数的申明******************************/voidinitia(void){ start_flag=0;//默认关闭电机 one_two_flag=0;//默认单相励磁 for_rev_flag=0;//默认正向转动 speed=0;//默认速度为零 time_speed=300;//默认时间为300ms TMOD=0x11; TH0=(65536-20000)/256;//用于led显示定时刷新 TL0=(65536-20000)%256; TH1=(65536-8000)/256;//用于定时扫描键盘 TL1=(35536-8000)%256; EA=1; ET0=1; TR0=1; ET1=1; TR1=1; }voiddelay_1ms(void)//1ms的延时子程序{ uchari; for(i=201;i>0;i--);}voiddelay_nms(uintn)//nms延时子程序{ uinti; for(i=0;i<n;i++) delay_1ms();}voidspeed_calculate(void)//转速计算子函数{ speed=60000/(12*time_speed);}voidbutton_scan(void)//键盘扫描子程序,通过定时扫描,增加键盘的灵敏度{ if(on_off==0) { delay_nms(8); if(on_off==0) start_flag=!start_flag; } if(one_two==0) { delay_nms(8); if(one_two==0) one_two_flag=!one_two_flag; } if(for_rev==0) { delay_nms(8); if(for_rev==0) for_rev_flag=!for_rev_flag; } if(speed_up==0) { delay_nms(1); if(speed_up==0) time_speed=time_speed-4; } if(speed_down==0) { delay_nms(1); if(for_rev==0); time_speed=time_speed+4; }}voidled_display(void) //led数码管显示子程序{ uinti=speed; P2=0xf0; delay_nms(2); databus=table[i%10]; delay_nms(2); P2=0xf8; delay_nms(2); i=i/10; if(speed) { P2=0xf0; delay_nms(2); databus=table[i%10]; P2=0xf4; i=i/10; delay_nms(2); } if(speed) { P2=0xf0; delay_nms(2); databus=table[i%10]; P2=0xf2; i=i/10; delay_nms(2); } if(speed) { P2=0xf0; delay_nms(2); databus=table[i%10]; P2=0xf1; i=i/10; delay_nms(2); }}voidstep_mot_run(void)//步进电机运行控制子函数{ if(start_flag) { uchari; for(i=0;i<4;i++) { if(one_two_flag) if(for_rev_flag){ P1=reverse_two[i]; delay_nms(time_speed); } else{ P1=foward_two[i]; delay_nms(time_speed); } else if(for_rev_flag){ P1=reverse_one[i]; delay_nms(time_speed); } else{ P1=foward_one[i]; delay_nms(time_speed); } speed_calculate(); } } elsespeed=0;}voidmain(void){ initia(); while(1) { step_mot_run(); } }voidtimer0()interrupt1{ TH0=(65536-20000)/256; TL0=(65536-20000)%256; aa++; if(aa==2) { aa=1; led_display(); } }voidtimer1()interrupt3{ TH0=(65536-8000)/256; TL0=(65536

温馨提示

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

评论

0/150

提交评论