实验8.步进电机控制设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8.步进电机控制设计
【实验目的】
掌握步进电机控制原理,熟悉C51编程与调试方法。
【实验原理】
实验电路原理图如图A.120所示,图中达林顿驱动器U2接于P1.0~P1.3,步进电机接在U2的输出端。按键K1~K2接于P0.0~P0.1。
图A.120 实验8的电路原理图
在编程软件配合下,要求实现如下功能:单击K1控制步进电机正转;单击K2,控制步进电机反转,连续按K1、K2,步进电机可连续旋转。
步进电机控制编程原理:根据励磁方法建立励磁顺序数组,以半步励磁法为例,励磁顺序数组的元素为:0x02,0x06,0x04,0x0C,0x08,0x09,0x01,0x03。程序启动后,根据案件状态修改励磁顺序数组的指针值,即单击K1时时针右移一位,随后将数组当前值由P2口输出,如此循环。注意,在P2口两次输出之间需要插入软件延时。
【实验内容】
(1)学习单片机对步进电机的速度与方向控制原理;
(2)编写3种励磁方案程序,即1相励磁、2相励磁和1~2相励磁;
(3)比较不同励磁方案的步进电机仿真效果。
【实验步骤】
(1)提前阅读与实验8相关的阅读材料;
(2)参考图A.120;和表A.9,在ISIS中完成原理图的绘制;
(3)采用μVision3进行C51动态显示和A/D转换编程及调试。
【实验要求】
提交实验报告并包括如下内容:电路原理图、A/D转换原理分析、C51源程序(含注释语句)、仿真运行截图及实验小结。
【参考图表】
【实验程序】
/*步进电机控制程序*/
#include
#define uchar unsigned char
#define uint unsigned int
void delay();//声明延时函数
code table[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};//励磁顺序数组
sbit K1=P0^0;//定义两个按键
sbit K2=P0^1;
void main()
{
while(1)
{
chari;
if(K1==0){delay();i++;if(i==8)i=0;}//K1按下,顺读数组(逆时针转)
if(K2==0){delay();i--;if(i==0)i=8;}//K2按下,逆读数组(顺时针转)
delay();
P2=table[i];//P2口输出励磁顺序
}
}
void delay()//延时函数
{
uchark,l;
for(k=125;k>0;k--)
for(l=200;l>0;l--);
}
【仿真截图】
略
【实验小结】
通过这次实验我掌握了步进电机工作原理的极编程的方法,同时做实验时要仔细,要按步骤来,避免人为错误,避免出现电路连接错误。