51单片机步进电机转动基本程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

/*-----------------------------------------------名称:步进电机编写:汤姆克鲁斯日期:2013.1修改:无内容:本程序用于测试2相或4相步进电机常规驱动,使用一二相励磁,驱动信号低电平有效------------------------------------------------*/#includereg52.hsbitA1=P2^0;//定义步进电机连接端口sbitB1=P2^1;sbitC1=P2^2;sbitD1=P2^3;#defineCoil_A1{A1=0;B1=1;C1=1;D1=1;}//A相通电,其他相断电,低电平有效,若你的驱动电路是高电平有效则改为(1,0,0,0)#defineCoil_B1{A1=1;B1=0;C1=1;D1=1;}//B相通电,其他相断电#defineCoil_C1{A1=1;B1=1;C1=0;D1=1;}//C相通电,其他相断电#defineCoil_D1{A1=1;B1=1;C1=1;D1=0;}//D相通电,其他相断电#defineCoil_AB1{A1=0;B1=0;C1=1;D1=1;}//AB相#defineCoil_BC1{A1=1;B1=0;C1=0;D1=1;}//BC相#defineCoil_CD1{A1=1;B1=1;C1=0;D1=0;}//CD相#defineCoil_DA1{A1=0;B1=1;C1=1;D1=0;}//DA相#defineCoil_OFF{A1=1;B1=1;C1=1;D1=1;}//全部断电unsignedcharSpeed;/*------------------------------------------------uS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5uS------------------------------------------------*/voidDelayUs2x(unsignedchart){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------主函数------------------------------------------------*/main(){uinti=50;//根据电机的步距角调整通电循环次数,这里设为一二相励磁方式,我的电机现在步距角就是0.9°,0.9*8*50=360°,就能正转或者反转一周Speed=5;//调整速度(延迟时间)while(i--)//正转一周{Coil_A1DelayMs(Speed);Coil_AB1DelayMs(Speed);Coil_B1DelayMs(Speed);Coil_BC1DelayMs(Speed);Coil_C1DelayMs(Speed);Coil_CD1DelayMs(Speed);Coil_D1DelayMs(Speed);Coil_DA1DelayMs(Speed);}Coil_OFFi=50;while(i--)//反转一周{Coil_DA1DelayMs(Speed);Coil_D1DelayMs(Speed);Coil_CD1DelayMs(Speed);Coil_C1DelayMs(Speed);Coil_BC1DelayMs(Speed);Coil_B1DelayMs(Speed);Coil_AB1DelayMs(Speed);Coil_A1DelayMs(Speed);}}//对步进电机工作原理若不了解请去百度视频补课

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功