📄 msr40型步进电机.txt
字号:
//MSR40型(四线三相)步进电机驱动 LED显示步长
#include "My8051.H"
#include "Globle.H"
void initmotor(void) //初始化
{
P1 = P1&0xf0; //各相均不加电
portinit = P1;
TMOD = 0x21; //定时器0方式1;
SCON = 0X50; //设定串行口方式为1,启动接收
TL0 = 0xA3;
TH0 = 0xFF; //0.1ms
TH1 = 0XFD; //设定定时器1波特率为9600
TL1 = 0XFD; //设定定时器1波特率为9600
TCON =0x40; //
// IP = 0x04;
ES = 1; //开串口中断
EA = 1;
TR0 = 1; //T0计时开始
TR1 = 1; //T1计时开始
}
void Delayx10ms(Word count)
{
Word i,j;
while(count-- != 0)
{
for(i=0;i<10;i++)
for(j=0;j<72;j++)
;
}
}
void Delay50us(Byte count)
{
Byte i,j;
for(i=0;i<count;i++)
for(j=0;j<6;j++)
;
}
void NoDisPlay(void)
{
P0 = 0;
}
void DisPlay(Byte bySW, Byte P) //P0字形,P1选中
{
P1 = bySW;
P0 = P;
Delay50us(10);
// Delayx10ms(1);
}
void DisplayLed(Byte *pData)
{
DisPlay(0x00 , ASIIC[pData[0]]);
DisPlay(0x10 , ASIIC[pData[1]]);
DisPlay(0x20 , ASIIC[pData[2]] | DOT);//个位加小数点显示
DisPlay(0x30 , ASIIC[pData[3]]);
}
void step_counter(Byte n)
{
Byte idata arTemp[4];
Word idata value = 0;
value = n * 75;
arTemp[0] = (int)(value/1000); //千位
arTemp[1] = (value/100) %10; //百位
arTemp[2] = (value/10) % 10; //个位
arTemp[3] = value%10; //十位
DisplayLed(arTemp);
}
void control(Byte direct, Byte k, Byte n) //direct为转向,k为调速,n为步数
{
Word i;
Byte *p;
if(direct == 0)
{
p = clkwise;
}
else
{
p = antiwise;
}
for(i = 0; i < n; i++)
{
P1 = *p;
p++;
if(*p == 0)
{
p = p-4;
}
Delayx10ms(k);
// g_byShortTime = 10;
// while(g_byShortTime)
// {
// ;
// }
}
P1 = portinit; //切断所有通电
}
void main(void)
{
// Byte idata byStep = 0;
initmotor();
while(1)
{
if(Fgextout1 == 0)
{
NoDisPlay();
if(INT1 == 0)
{
byStep = 25;
control(0, 2, byStep);
// Fgextout1 = 1;
Fgextout1 = !Fgextout1;
}
}
else
{
NoDisPlay();
if(INT1 == 0)
{
byStep = 24;
control(1, 3, byStep);
// Fgextout1 = 0;
Fgextout1 = !Fgextout1;
}
}
step_counter(byStep); //计算步数
}
// while(1);
}
/*
void timer_1 (void) interrupt 1 using 3 //定时器0方式1(每十毫秒产生中断一次)
{
TR0 = 0;
TL0 = 0xA3;
TH0 = 0xFF; //0.1ms
g_by1Ms++;
if(g_by1Ms == 10) //定时1ms
{
g_by1Ms = 0;
if(g_byShortTime > 0) g_byShortTime--;
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -