实验九 步进电机控制实验

上传人:博****1 文档编号:511525290 上传时间:2023-06-20 格式:DOCX 页数:5 大小:77.34KB
返回 下载 相关 举报
实验九 步进电机控制实验_第1页
第1页 / 共5页
实验九 步进电机控制实验_第2页
第2页 / 共5页
实验九 步进电机控制实验_第3页
第3页 / 共5页
实验九 步进电机控制实验_第4页
第4页 / 共5页
实验九 步进电机控制实验_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验九 步进电机控制实验》由会员分享,可在线阅读,更多相关《实验九 步进电机控制实验(5页珍藏版)》请在金锄头文库上搜索。

1、步进电机控制试验一、实验目的1、掌握 keilc51 软件与 protues 软件的联合仿真调试的方法2、掌握步进电机的工作原理及控制方法3、掌握步进电机的不同编程方法二、实验内容1、用 protues 设计一四相六线步进电机控制电路。要求利用 p1 口做为步进电 机的控制接口,通过达林顿阵列ULN2003A。参考电路给出。2、编写程序,实现步进电机的正反转控制。正反转时间分别持续10秒时间。如 此循环。3、设计一可调速度步进电机控制电路。P3.0P3.2分别接按键K1K3,其中K1 为正反转控制按键, K2 为加速按键, K3 为减速按键,要求速度 7 档可调,加 减速各设三档,复位时位于

2、4档,要求每档速度变化明显。三、实验说明1、步进电机控制原理;(1) 步进电机是利用电磁铁的作用原理,将脉冲信号换为线位移或角位移的电 机。每来一个脉冲,步进电机转动一定的角度,带动机械移动一小段距离。 特点:来一个脉冲,转动一个步距角。控制脉冲频率,可控制电机转速。 改变脉冲顺序,可改变转动方向。2、ULN2003A:七达林顿阵列ULA2003A是集成达林顿管反向驱动电路,内部还集成了一个消线圈反电动势 的二极管,可以用来驱动电机、继电器等功率器件。它是双列 16 脚封装、 NPN 晶体管矩阵,最大驱动电压50v,输入电压5v。四、实验步骤1、用 proteus 设计电路2、在 keilc5

3、1 中编写键盘识别程序,编写通过后,与 proteus 联合调试3、观察1602是否能正确显示五、实验电路1、实验电路见下图:19X1CRYSTAL+5V18U1:TAL1XTAL2+5ytP1 12P1A23.P1A3HP化.円令P他亠 P1A7BRSTPSEK ALE EAPO3/ADO PO.1/AD1 P0.2/AD2 P0.3/AD3 P04/AD4 P0.5/AD5 P03/AD6 PO.7/AD7P2.O/A8P2.1/A9P22/A10 P23/A11 P24/A12 P25/A13 P26/A14 P27/A15U313723RAA BCDBliRBO RBILTQA如QCQ

4、DQEQFP1.0P3.0)RXDP1.1P3.1JTXDP1.2P3.21NTOP1.3P3.31NT1P1.4P3.4n0PI .5P3.5mP1.6P3.6/WR-P1.7P3.7RCr1213 _1 工 工 LL11QG9P化I P1A2PIF”呷P1驾P1 写COM1B1C2B2C3B3C4B4C5B5C6B6C7B7C凸t1、141J1Al11LLran2、实验源程序见附录。六、实验总结1、 步进电机的工作原理及控制方法,来一个脉冲,转动一个步距角。控制 脉冲频率,可控制电机转速。通过改变脉冲顺序,可改变转动方向。2、掌握ULN2003A七达林顿阵列的使用方法,ULN2003A是集

5、成达林顿管反 向驱动电路,内部还集成了一个消线圈反电动势的二极管,具有较强的 驱动能力,可以用来驱动电机、继电器等功率器件。3、利用定时器中断检测按键时,因为每 20ms 就扫描一次键盘,而若按下一 次按键时间过长,会引起一次按键重复检测的情况,可设置一个标志位 反映按键是否被检测完,等一侧按键完成后在接受下一次按键触发。程序1#include sbit A1=P0; sbit B1=P1;sbit C1=P2; sbit D1=P3; bit flag;char code foreward=0x01,0x03,0x02,0x06, 0x04,0x0c,0x08,0x09;unsigned c

6、har Speed;void delay_ms(int); main()unsigned char i;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;EA=1;while(1) for(i=0;i8&flag=0;i+) P1=forewardi; delay_ms(100); for(i=0;i0;t-)for(i=0;i124;i+); 程序2#include sbit A1=P0; sbit B1=P1;sbit C1=P2; sbit D1=P3;sbit K1=P30; sbit K2=P3;bit

7、start=0,flag1,flagk1=0,flagk2=0, pause=1;char code foreward=0x01,0x03,0x02,0x06, 0x04,0x0c,0x08,0x09;char code spd=50,70,90,110,140,170,200rvoid delay_ms(int); unsigned char speed,dw=3;void main()unsigned char i=3;TMOD=0x11;TH0=(65536-1000)/256;TL0=(65536-1000)%256;ET0=1; TR0=1;TH1=(65536-1000)/256;

8、TL1=(65536-1000)%256;ET1=1; TR1=1;EX0=1; IT0=1;EX1=1;IT1=1;EA=1;speed=spddw;P0=dw+1;while(1) while(pause);if(start=1)start=0;if(flag1=1)P1=forewardi+;if(i=8) i=0;if(flag1=0)P1=foreward7-i; i+;if(i=8) i=0;void tim0() interrupt 1unsigned char num ;TH0=(65536-1000)/256;TL0=(65536-1000)%256; if(pause=0)

9、num+; /暂停时不计数 if(num=speed)num=0;start=1;void tim1() interrupt 3unsigned char cnt;TH0=(65536-1000)/256;TL0=(65536-1000)%256;cnt+;if(cnt=2)cnt=0;if(K1=0)delay_ms(5); if(K1=0&flagk1=0) flag1=flag1;flagk1=1 ;else flagk1=0; if(K2=0)delay_ms(5);if(K2=0&flagk2=0&pause=0) dw+;if(dw=7) dw=0; speed=spddw; P0=dw+1;flagk2=1 ;else flagk2=0;void ext0() interrupt 0if(pause=0) /暂停时无效 if(dw=0) dw=7; dw-;P0=dw+1;speed=spddw;void ext1() interrupt 2pause=!pause;void delay_ms(t)int i;for(;t0;t-) for(i=0;i124;i+);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号