- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
步进电机驱动程序实例
#include AT89X51.h
static unsigned int count; //计数计数
计数计数
static int step_index; //步进索引数,步进索引数,值为值为 0--7
步进索引数步进索引数,,值为值为 --
static bit turn; //步进电机转动方向步进电机转动方向
步进电机转动方向步进电机转动方向
static bit stop_flag; //步进电机停止标志步进电机停止标志
步进电机停止标志步进电机停止标志
static int speedlevel; //步进电机转速参数,步进电机转速参数,数值越大速度越慢数值越大速度越慢,,最小值为最小值为 1,速度最快,速度最快
步进电机转速参数步进电机转速参数,,数值越大速度越慢数值越大速度越慢,,最小值为最小值为 ,,速度最快速度最快
static int spcount; //步进电机转速参数计数步进电机转速参数计数
步进电机转速参数计数步进电机转速参数计数
void delay(unsigned int endcount); //延时函数,延时函数,延时为延时为 endcount*0.5 毫秒毫秒
延时函数延时函数,,延时为延时为 毫秒毫秒
void gorun(); //步进电机控制步进函数步进电机控制步进函数
步进电机控制步进函数步进电机控制步进函数
void main(void)
{
count = 0;
step_index = 0;
spcount = 0;
stop_flag = 0;
P2_4 = 0;
P2_5= 0;
P2_6 = 0;
P2_7 = 0;
EA = 1; //允许允许 CPU 中断中断
允许允许 中断中断
TMOD = 0x11; //设定时器设定时器 0 和和 1 为为 16 位模式位模式 1
设定时器设定时器 和和 为为 位模式位模式
ET0 = 1; //定时器定时器 0 中断允许中断允许
定时器定时器 中断允许中断允许
TH0 = 0xFE;
TL0 = 0x0C; //设定时每隔设定时每隔 0.5ms 中断一次中断一次
设定时每隔设定时每隔 中断一次中断一次
TR0 = 1; //开始计数开始计数
开始计数开始计数
turn = 0;
speedlevel = 2; //先以低速启动先以低速启动
先以低速启动先以低速启动
delay(10000);
speedlevel = 1; //再回到正常速度。再回到正常速度。(根据步进电机特点根据步进电机特点)
再回到正常速度再回到正常速度。。 根据步进电机特点根据步进电机特点
do{
speedlevel = 2; //主程序测试循环:主程序测试循环:先低速启动先低速启动-常速常速-停止停止
主程序测试循环主程序测试循环::先低速启动先低速启动 常速常速 停止停止
delay(10000);
speedlevel = 1;
delay(10000);
stop_flag=1;
delay(10000);
stop_flag=0;
}while(1);
}
//定时器
文档评论(0)