实验四步进电机控制综合性实验指导书一、实验内容P1.0~P1.3控制步进电机以四相八拍方式运转,已知脉冲当量=0.1mm,编程利用8255控制4位LED,实时显示工作台移动距离(单位:mm)。二、实验目的及要求(一)实验目的通过该综合性实验,使学生了解步进电机的基本原理,了解影响电机转速的因素。掌握步进电机转速控制程序的编程及调试方法,掌握LED通用函数的编程方法,培养学生一定的动手能力。(二)实验要求1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。三、实验条件及要求计算机,C51语言编辑、Keil_uVersion2和Protues调试仿真软件50台套。四、实验相关知识点1.步进电机原理。2.C51编程、调试。3.I/O端口应用。4.中断的应用5.LED显示器原理及编程。五、控制原理步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速。另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值(本实验为f100Hz)时,电机便不再转动。本实验中可选用定时器方式2定时200s。实验电机为四相步进电机,按转动步骤可分单4拍(A-B-C-D-A),双4拍(AB-BC-CD-DA-AB)和单双8拍(A-AB-B-BC-C-CD-D-DA-A).六、实验原理图八、实验参考流程图九、C51语言参考源程序#includereg51.hsbitK1=P0^0;sbitK2=P0^1;unsignedcharcodeFFW[9]={0x00,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//反转顺序unsignedchari,a,b;voidMotor();voidmain(){i=1;a=0;b=2;TMOD=0x02;TH0=0x38;TL0=0x38;EA=1;ET0=1;TR0=1;while(1){}XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C511B11C162B22C153B33C144B44C135B55C126B66C117B77C10COM9U2ULN2003A+88.8VCCPositiveNegtiveVCCR310KR410KD11N4148D21N4148C122pFC222pFC310uFR110kR2220X111.0592MHz}voidMotor(){if(b==0)//检测按键K1是否按下{P2=FFW[i];i++;if(i==10){i=1;}}if(b==1)//检测按键K1是否按下{P2=FFW[i];i--;if(i==0){i=9;}}}voidTimer0Interrupt(void)interrupt1{TH0=0x38;TL0=0x38;a++;if(a==240){a=0;if(K1==0)//检测按键K1是否按下{K1=1;b=0;}if(K2==0)//检测按键K1是否按下{K2=1;b=1;}Motor();}}十、实验实施步骤1.仔细阅读实验内容及要求,编写C51源程序。2.上机编辑、仿真调试源程序。3.按要求接线。4.在线调试源程序,观查运行结果。十一、思考问题1.怎样改变电机的转速?改变th0,tl0的值