⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bujin.c

📁 很有用的CYGNAL C语言程序,
💻 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 + -