📄 bujin.c
字号:
#include<c8051f020.h>
void senddata(unsigned char,unsigned char);
void setoff(unsigned char);
void delay(long int);
void yan100u(unsigned char);
sbit out1=P3^0;
sbit out2=P3^1;
sbit out3=P3^2;
sbit out4=P3^3;
unsigned int c;
/*****************************时钟初始化***************************/
void sys_clk(void) //clock set
{
unsigned char e;
WDTCN=0xde; //CLOSE WDOG
WDTCN=0xad;
OSCXCN=0x67; //ENABLE EXTERNAL CLK
delay(10000);
delay(10000);
e=!OSCXCN&0x80;
while(e);
OSCICN|=0x08;
}
/****************************交叉开关初始化*************************/
void xbr_set(void)
{
XBR2 =0x40;
P3MDOUT=0xFF;
P1MDOUT=0xFF;
}
/***************************步进电机控制(逆时针)**************************/
void ctrl_motorN(void)
{
while(1)
{//步进电机的循环控制,每步0.9度
out1=0;out2=1; //过程A
out3=1;out4=1;
yan100u(c);
out1=0;out2=1; //过程A-B
out3=0;out4=1;
yan100u(c);
out1=1;out2=1; //过程B
out3=0;out4=1;
yan100u(c);
out1=1;out2=0; //过程B-/A
out3=0;out4=1;
yan100u(c);
out1=1;out2=0; //过程/A
out3=1;out4=1;
yan100u(c);
out1=1;out2=0; //过程/A-/B
out3=1;out4=0;
yan100u(c);
out1=1;out2=1; //过程/B
out3=1;out4=0;
yan100u(c);
out1=0;out2=1; //过程/B-A
out3=1;out4=0;
yan100u(c);
if(c>100)
c=c-10;
else if(c>20)
c=c-1;
else
c=c;
senddata(1,c%10);
senddata(2,c%100/10);
senddata(3,c/100);
}
}
/***************************步进电机控制(顺时针)**************************/
void ctrl_motorP(void)
{
while(1)
{//步进电机的循环控制,每步0.9度
out1=1;out2=0; //过程A
out3=0;out4=0;
yan100u(c);
out1=1;out2=1; //过程A-B
out3=0;out4=0;
yan100u(c);
out1=0;out2=1; //过程B
out3=0;out4=0;
yan100u(c);
out1=0;out2=1; //过程B-/A
out3=1;out4=0;
yan100u(c);
out1=0;out2=0; //过程/A
out3=1;out4=0;
yan100u(c);
out1=0;out2=0; //过/A-/B
out3=1;out4=1;
yan100u(c);
out1=0;out2=0; //过程/B
out3=0;out4=1;
yan100u(c);
out1=1;out2=0; //过程/B-A
out3=0;out4=1;
yan100u(c);
if(c>100)
c=c-10;
else if(c>20)
c=c-1;
else
c=c;
senddata(1,c%10);
senddata(2,c%100/10);
senddata(3,c/100);
}
}
/*********************************主函数*******************************/
main()
{
sys_clk();
xbr_set();
setoff(2);
c=500;
ctrl_motorP();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -