历史上的今天
今天是:2025年10月11日(星期六)
2022年10月11日 | 51单片机基础之五线四相步进电机
2022-10-11 来源:csdn
原理:
我采用单双8拍法驱动方式,发现效果很好,其次通过定时器来让步进电机速度逐步加快,当速度最大的时候,保持最快速度。
接线:
我这个开发板有驱动模块,直接接线即可。


代码:
#include #include unsigned char code F_Rotation[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//正转,单双8拍法驱动 unsigned int num=500; //500个10us等于5ms unsigned int a=0; void delay(unsigned int num) { while(num--); } //定时器,通过定时器给电机逐渐加速 void time1_init(void) { TMOD|=0x10; //TMOD是一个寄存器,用来决定定时器的工作方式,高四位决定定时器1,目前是工作方式1,即16位定时计数。 TH1=0xfc; //定时器高八位 TL1=0x18; //定时器低八位 ET1=1; //中断允许 EA=1; //总中断打开 TR1=1; //打开定时器中断 } int main() { unsigned char i; time1_init(); while(1) { for(i=0;i<8;i++) //4相双四拍 { for(i=0;i<8;i++) { P1=~F_Rotation[i]; delay(num); //开始的时候从5ms开始,用外部中断控制,每动一次,变化0.5毫秒 } } } } void exit1() interrupt 3 //中断服务函数 ,下面调的参数刚好合适 { TH1=0xfc; TL1=0x18; a++; if(a==30) { num=num-2; a=1; } if(num==48) { num=48; a=31; } } 运行结果: 电机逐渐加快,在最快的时候保持。
上一篇:51单片机基础之串口通信
下一篇:51单片机基础之1602显示器
史海拾趣
|
做个记录 只列出几个例子 Load / Store Load Immediate p3 = 12 (z) ; r0 = -344 (x) ; Load Pointer Register p5 = [ p0 ++ ] ; p2 = [ sp -- ] ; Load Data Register r7 = [i3 ++ m0] ; r1 = [ p0 ++ p1 ] ; r0 = [ i0 ++ ] ; ...… 查看全部问答> |
|
1. 目前国家提倡节能减排,发展低碳经济。变频调速,改善工艺是目前工艺领域节能减排的主要方向。开发制作这些大型的工况设备,嵌入式设计技术应用不可缺少。欢迎大家讨论嵌入式技术在工业领域应用的心得和技巧。… 查看全部问答> |
|
Yokogawa’s New DL850 ScopeCorder Yokogawa’s New DL850 ScopeCorder Third generation of best-selling combined oscilloscope and data recorder family I had the opportunity to talk with Terry Marrinan, Sales & Marketing Director for Europe & Africa with Yokogawa’s ...… 查看全部问答> |
|
LED电子显示屏的亮度计算方法: 以全彩屏为例,通常红、绿、蓝白平衡配比为3:4:1 以P16(2R1GB)5000 CD/平方为例: 红色LED 灯亮度:亮度5000(CD)/M2÷点数/M2×0.3(白平衡配比占3 ...… 查看全部问答> |
|
首先,承认错误,小版14日那次点评做LCD and TOUCH BoosterPack去了,然后21日的也漏掉了,导致这次盘点几乎成了月盘点,对不起各位坛友。 3周的变化是很大的,下面开始这次的盘点! 不知道大家有没有注意到MSP430版块新增一位版主qinkaiabc,欢 ...… 查看全部问答> |




