实验九 步进电机控制实验

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

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

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

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

3、别程序,编写通过后,与 proteus联合调试3、观察 1602是否能正确显示五、 实验电路1、实验电路见下图:2、实验源程序见附录。六、 实验总结1、 步进电机的工作原理及控制方法,来一个脉冲,转动一个步距角。控制脉冲频率,可控制电机转速。通过改变脉冲顺序,可改变转动方向。2、 掌握 ULN2003A七达林顿阵列的使用方法,ULN2003A 是集成达林顿管反向驱动电路,内部还集成了一个消线圈反电动势的二极管,具有较强的驱动能力,可以用来驱动电机、继电器等功率器件。3、 利用定时器中断检测按键时,因为每 20ms就扫描一次键盘,而若按下一次按键时间过长,会引起一次按键重复检测的情况,可设置一个

4、标志位,反映按键是否被检测完,等一侧按键完成后在接受下一次按键触发。程序 1#include sbit A1=P10; sbit B1=P11;sbit C1=P12; sbit D1=P13;bit flag;char code foreward=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;unsigned char 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;w

5、hile(1)for(i=0;i0;t-)for(i=0;isbit A1=P10; sbit B1=P11;sbit C1=P12; sbit D1=P13;sbit K1=P30; sbit K2=P31;bit 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,200;void delay_ms(int);unsigned char speed,dw=3;void main

6、()unsigned char i=3;TMOD=0x11;TH0=(65536-1000)/256;TL0=(65536-1000)%256;ET0=1; TR0=1;TH1=(65536-1000)/256;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+

7、;if(i=8) i=0; void tim0() interrupt 1unsigned char num ; TH0=(65536-1000)/256;TL0=(65536-1000)%256;if(pause=0)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=fla

8、g1;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号