步进电机设计报告_第1页
步进电机设计报告_第2页
步进电机设计报告_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、步进电动机的设计报告题目:学院:专业:班级:学生姓名:王浩指导教师:2015年1月6日目录前言21.设计目标及内容31.1设计内容1.2设计目的42.硬件原理及设计分析21步进电机的工作原理2.2 液晶显示原理2.3 步进电机转速控制及显示设计(2.4 总的硬件电路图55LCD显示转速)的硬件框图-67软件分析及设计83.1 软件需求分析8程序流程图83.2 软件代码9操作说明及结果分析184. 调试过程中遇到的问题和解决方法18硬件实习总结195. 参考文献19、八、刖言在电子科技不断飞速发展的今天,数字控制技术得到了广泛而深入的应用。步进电机是一种将数字信号直接转换成角位移或线位移的控制驱

2、动元件,具有快速起动和停止的特点。因为步进电动机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,所以广泛地应用于手工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以及各种可控机械工具等等。步进电机突出的优点是它可以在宽广频率范围内通过改变脉冲频率来实现调速,在需要精确定位的地方都要用到它,比如打印机、绘图仪等。而LCD显示屏在很多数码产品中有着广泛的应用,如计算器,IC卡电话机,电子手表,掌上电脑,仪表显示屏等。同时,单片机也广泛应用于实时控制、智能仪器、仪表通信和家用电器等各个领域,所涉及的内容非常

3、广泛,是计算机科学、电子学、自动控制等基础知识的综合应用。单片机的应用系统有硬件和软件所组成。本次硬件实习是基于51单片机对步进电机转速进行控制,加之液晶的显示,使其转速的档位和方向显示在液晶上。1. 设计目标及内容1.1 设计内容利用实验平台上单片机P0口输出脉冲序列,74LS244输出开关量,开关K2-K7控制步进电机转速,(分6档),K0,K1控制转向。驱动方式分两种,四相四拍、四相八拍,通过软件设计,控制步进电机的转速和方向。并将转速(16档)和转向(正转“1”,反转“0”显示在LCD显示器上1.2设计目的了解步进电机控制的基本原理;1.2.1 掌握液晶显示图形的基本方法,从而对其它液

4、晶屏的使用也能得心应手。2. 硬件原理及设计分析2.1步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。图1四相步进电机步进示意图开始时,开关SB接通电源,SASCSD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和CD相绕组磁极产生错齿,2、5号齿就和DA相绕组磁极产生错齿。当开关SC接通电源,SBSASD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿

5、就和AD相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:i脉冲jwunjmnnmuijiJumnriJuiJTrLnjjummnmmirLrinjmjia相nnnBtaTJL一n一n一ruda.njL_rT_rLjn.n.oisinnn5u-LT

6、Ti_n_rLrnnJfLjLTa.单四拍b.双四拍c八拍本实验使用的步进电机用直流+12V电压,电机线圈由A、B、CD四相组成。驱动方式为四相四拍方式,各线圈通电顺序如下表。表中首先向A线圈输入驱动电流,接着B、C、D线圈驱动,最后又返回到A线圈驱动,按这种顺序切换,电机轴按顺时针方向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。(注:为提高步进电机负载能力和运行平稳,可使用四相八拍驱动方式。)表二:驱动方式顺序/相ABCD001111101121101311102.2液晶显示原理本实验用的是1602液晶,1602液晶可以显示两行字符,其写入字符是根据时序特点,写指令,写数据等操作。以下是

7、1602液晶的相关资料,读状态输入RS=LR/W=HE=H输出D0-D7=犬态字写指令输入RS=LR/W=LD0D7=f令码,E=S脉冲输出无读数据输入RS=HR/W=HE=H输出D0-D7=t据写数据输入RS=HR/W=LD0D7=数据,E=高脉冲输出无OBtbDBr?IX*硬件实117-IG操作时序表:基本读写操作时序如图所示图3:读操作时序进电机的转速通过扩展输8051由1602进行图4:写操作时序2.3步进电机转速控制及显示设计(LCD显示转速)的硬件框图如图5所示,整个硬件围绕51单片机,根据开关输入通过外接电路控制步和方向,并显示在液晶上。8051单片机作为处理器,整个硬件功能围绕

8、8051进行实现,首先,由开关入实现对整个硬件功能的控制。当开关设置为某个状态时,由单片机输出相应的值,通过扩展输出对步进电机进行相应方向和转速的控制,并相应的显示。扩展输出步进电机rLCD驱动电路<_丿1液曰扩展输入图5硬件框图2.4总的硬件电路图如硬件电路图图6所示。其中,74LS373为地址锁存器,74LS244为带3态输出的八缓冲器,74LS273为带清除的八触发器;74LS138为三八译码器。开关由扩展输入对单片机进行输入相关变量,从而通过单片机对步进电机的转速和方向进行控制。再有液晶进行相应的显示。3. 软件分析及设计3.1软件需求分析本实习要求用开关控制步进电机的转速和方向

9、,并将相应的数据显示在液晶上;通过分析,我们只需将开关的输入量转换成相应的步进电机转速即可,然而,通过前面讲过的步进电机的相关驱动方式我们可以知道,转速可以通过设置延时子程序的时间长短来实现,而步进电机的方向则通过不同的时序来控制,从而加上很容易的实现步进电机的转速控制,在根据液晶的时序规则来显示相应的数据,很简单的实现了整个实习要求。3.2程序流程图如图(图7:程序流程图)所示,在程序开始后先进行各个参数的初始化,然后对开关量进行读取,根据读取的数值进行对步进电机的转速量和方向量进行设置,并同时在LCD上显示出相应的数据,定时,置输出地址,然后输出相应的参数,从而实现对步进电机和液晶的相应控

10、制。I定时|置输出口地址I*根据转向和速度:改变參徽输出步进电机相位图7:巴仙跖汉缁虫空轴瀝矗如下图(图8:LCD框图所示)为LCD液晶的显示子程序框图,程序先进行LCD初始化,然后进行清屏,在需要写入时,对LCD进行写操作,最后就可以显示出来你想要的字符。SLCD结東图8:LCD程序框图3.3软件代码#inelude"reg52.h"#ineludevintrins.h>#defineucharunsignedchar#defineuintunisgnedint#defineBYTEunsignedchar#definenumunsignedintsbitk1=P2

11、A0;sbitk2=P2A1;sbitk3=P2A2;sbitk4=P2A3;sbitk5=P2A4;sbitk6=P2A5;sbitk7=P2A6;sbitk8=P2A7;voiddelay1(unsignedintt)/电机驱动延时程序unsignedintk;while(t-)for(k=0;k<100;k+)voidmotor_ffw(unsignedchari)动程序P仁0x01;delay1(i);P仁0x02;delay1(i);P仁0x04;delay1(i);P仁0x08;delay1(i);/电机顺时针转voidmotor_ffz(unsignedchari)序P仁0

12、x01;delay1(i);P仁0x02;delay1(i);P仁0x04;delay1(i);P仁0x08delay1(i);/电机逆时针转动程sbitRS=P0A5;/定义P2A5为液晶控制端口RSsbitRW=P0A6;sbitE=P0A7;ucharcodetable="Guizhoudaxueucharcodetable1="wangxiaogangucharcodetable2="1120020075"/字符定义ucharcodetable3="SPEED:123456"ucharcodetable4="star

13、tstepmotor"ucharcodetable5="SPEED:"ucharcodetable6="123456"typedefunsignedcharBYTE;定义字符变量BYTEtypedefunsignedintWORD;定义整形变量WORDtypedefbitBOOL;/字符变量BOOL/LCD驱动程序voidlcddelay(BYTEms)/延时子程序BYTEi;while(ms-)for(i=0;i<250;i+)/循环250次_nop_();_nop_();_nop_();/空操作延时1us_nop_();BOOLlcd

14、_bz()碌状态值RS=0;RW=1;E=1;BOOLlcd_bz()碌状态值RS=0;RW=1;E=1;测试LCD忙碌状态-忙检测函数BOOLresult;/定义字符变量result用于存放测试的LCD忙寄存器的选择控制口,选择指令寄存器读写操作控制端口,RW=1表示读操作/延时4us_nop_();_nop_();_nop_();result=(BOOL)(PO&0x80);E=0;returnresult;写入指令数据到LCDvoidlcd_wcmd(BYTEcmd)while(lcd_bz();RS=0;RW=0;E=0;_nop_();_nop_();P0=cmd;_nop_

15、();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;写入字符显示数据到LCDvoidlcd_wdat(BYTEdat)while(lcd_bz();RS=1;RW=0;E=0;P0=dat;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;/LCD初始化设定voidlednit()lcd_wcmd(0x38);/设置LCD为8位数据,两行显示,5*7点阵leddelay(l);lcd_wcmd(OxOE);/显示开关控制

16、指令设定,LCD开显示和光标,不闪烁lcddelay(l);lcd_wcmd(0x06);设光标和画面的移动方式l/D=1,S=0设置读写操作之后AC自动加一,显示不移动lcddelay(1);lcd_wcmd(0x01);清除LCD的显示内容lcddelay(1);voidoutOinit()外部中断0的初始化EX0=1;IT0=1;EA=1;voidlcd_xianshi()/led液晶显示程序lcd_wcmd(0x00);for(num=0;num<15;num+)lcd_wdat(tablenum);delay(1);lcd_wcmd(0x80+0x40);for(num=0;n

17、um<12;num+)lcd_wdat(table1num);delay(1);lcd_wcmd(0x80+0x40);for(num=0;num<10;num+)Icd_wdat(table2num);lcd_wcmd(0x80+0x40);for(num=0;num<11;num+)Icd_wdat(table3num);delay(1);Icd_wcmd(0x80+0x40);for(num=O;num<14;num+)Icd_wdat(table4num);delay(1);Icd_wcmd(0x80+0x40);for(num=0;num<6;num+)

18、Icd_wdat(table5num);delay(1);voiddelay1ms(void)判断按键是否按下延时时间误差0usunsignedchara,b,c;for(c=1;c>0;c-)for(b=142;b>0;b-)for(a=2;a>0;a-);voidOutOinter(void)interrupt0using1delaylms(IO)if(k1=0)delay1ms(2)if(k1=0)Icd_wcmd(0x80+0x40+0x07);delay(1);Icd_wdat(table60);delay(1);elseif(k2=0)delay1ms(2)if(

19、k2=0)lcd_wcmd(0x80+0x40+0x07);delay(1);i=100;Icd_wdat(table61);elseif(k3=0)delaylms(2)if(k3=0)lcd_wcmd(0x80+0x40+0x07);delay(1);i=80;Icd_wdat(table62);elseif(k4=0)delaylms(2)if(k4=0)Icd_wcmd(0x80+0x40+0x07);delay(1);i=60;Icd_wdat(table63);elseif(k5=0)delay1ms(2)if(k5=0)Icd_wcmd(0x80+0x40+0x07);delay

20、(1);i=40;Icd_wdat(table64);elseif(k6=0)delay1ms(2)if(k6=0)Icd_wcmd(0x80+0x40+0x07);delay(1);i=30;lcd_wdat(table65);motor_ffw(i);elseif(k7=0)delay1ms(2)if(k7=0)Icd_wcmd(0x80+0x40+0x07);delay(1);Icd_wdat(table60);delay(1);if(k2=0)delaylms(2)if(k2=0)lcd_wcmd(0x80+0x40+0x07);delay(1);i=100;Icd_wdat(tabl

21、e61);elseif(k3=0)delay1ms(2)if(k3=0)lcd_wcmd(0x80+0x40+0x07);delay(1);i=80;Icd_wdat(table62);elseif(k4=0)delay1ms(2)if(k4=0)Icd_wcmd(0x80+0x40+0x07);delay(1);i=60;Icd_wdat(table63);elseif(k5=0)delay1ms(2)if(k5=0)Icd_wcmd(0x80+0x40+0x07);delay(1);i=40;Icd_wdat(table64);elseif(k6=0)delay1ms(2)if(k6=0)

22、Icd_wcmd(0x80+0x40+0x07);delay(1);i=30;Icd_wdat(table65);Icd_wdat(table65);motor_ffz(i);voidmain(void)lcd_xianshi();lcdnit();outOinit();while(1)motor_ffw(i);delay1ms(80)motor_ffz(i);delay1ms(80)操作说明及结果分析P1八位分别接开关开关的八个口,F208接38译码器,PO前四口分别接步进电机四口,F200接液晶把程序烧写进去后运行,液晶第一行显示FX当K0拨上时液晶显示FX1,步进电机顺时钟转,当K1拨上时液晶显示FX:0,步进电机逆时针转,开关K2K7控制步进电机转速,(分6档),并正常显示在液晶上,K2上拨时,第二行显示SPEED:K3上拨时显示SPEED:2K4上拨时显示SPEED:3K5上拨时显示SPEED:4K5上拨时显示SPEED:4K6上拨时显示SPEED:7K7上拨时显示SPEED:8整个程序运行符

温馨提示

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

最新文档

评论

0/150

提交评论