51+42步进电机

程序,单方向转

tBB6600+42步进电机电机,共阳极接法。
这里用的是进定时器直接取反脉冲端以达到转起来的目的。
要改变速度只需改变定时器定时时间长短即可,改变方向更改DIR即可
五一定时器定时计算方式,只以定时器0为例如下:
晶振是 11.0592M,时钟周期就是 1/11059200,机器周期
是 12/11059200,假如要定时 20ms,就是 0.02 秒,要经
过x 个机器周期得到 0.02 秒,算一下 x*12/11059200=0.02,
得到 x= 18432。16 位定时器溢出值是 65536,先给 TH0
和 TL0一个初始值,让它们经过 18432 个机器周期后刚
好达到 65536,也就是溢出,溢出后可以通过
检测 TF0 的值得知,就刚好是 0.02 秒。那么初值
y = 65536 - 18432 = 47104,转成 16 进制就是 0xB800,
也就是 TH0 = 0xB8,TL0 = 0x00。

#include<reg52.h>
//对应驱动器引脚
sbit CLK  = P1^0;//脉冲
sbit ENA  = P1^1;//使能
sbit DIR  = P1^2;//方向	   

void Init_time();

void main()
{
	ENA=1;
	CLK=0;
	DIR=0;		   
	Init_time();     
	while(1);
}

void Init_time()				
{
	TMOD |= 0x01;
    TH0=0xFF; 
	TL0=0xD2;

    IE = 0x82;
	TR0=1;				        
}

void Enter_Timer0() interrupt 1	
{
    TH0=0xFF; 
	TL0=0xD2;
	
	CLK=~CLK;
}

在STM32上面调试的看上一篇文章

https://blog.csdn.net/weixin_43086497/article/details/104563301

发布了4 篇原创文章 · 获赞 8 · 访问量 2807

猜你喜欢

转载自blog.csdn.net/weixin_43086497/article/details/104597888