|
|
#include<reg51.h>
void Circle_The_Number(unsigned long Number )
{
static bit a=0;
static unsigned long Num2=0;
Num2=Number*4076;
while(a==0)
{
unsigned char code BYJ[8]={0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e,0x06};
static unsigned char Num1=0;
unsigned int i;
unsigned char Save;
if(Num2<=0)
{
a=1;
}
Save=P1;
Save=Save&0xf0;
Save=Save|BYJ[Num1];
P1=Save;
Num1++;
Num1=Num1&0x07;
for(i=200;i>0;i--);
Num2--;
}
}
void main()
{
while(1)
{
Circle_The_Number(30);
}
}
轉(zhuǎn)動(dòng)圈數(shù)在Circle_The_Number(30);調(diào)現(xiàn)在設(shè)定的是轉(zhuǎn)30圈也可以改為2000圈或0~4,294,967,295圈之間選擇
因?yàn)镃語(yǔ)言u(píng)nsigned long類(lèi)型計(jì)算的最大范圍是0~4,294,967,295
廠家給出的資料是如果需要轉(zhuǎn)動(dòng)1圈 ,那么需要360/5.625*64=4096個(gè)脈沖信號(hào)。
但是實(shí)際測(cè)得有誤差大概是每轉(zhuǎn)100圈有半圈的誤差,所以說(shuō):
如果需要轉(zhuǎn)動(dòng)1圈 ,那么需要4076個(gè)脈沖信號(hào)。
|
|