单片机C语言编程

2024-12-05 00:31:12
推荐回答(3个)
回答(1):

首先肯定你的单片机能够扑捉到你的脉冲:那么:
设置10ms定时器,在此时间内判断x、y值,然后判断x*x是否大于y即可。
另外没有硬件电路图是没法帮你编程的,比如你的脉冲宽度?脉冲接入管脚,电机控制管脚,等待。

回答(2):

#include
#include
int motor_a,motor_dir,i,j,n;
/************************** end 电机 声明 *******************************/
/************************** 电机 语句 *******************************/
void motor_init(void)
{
IE=0x82;
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
TR0=1;
}

void motor_inter() interrupt 1
{

i++;
if (i==n)
{

if(motor_dir)
{
motor_a = _crol_(motor_a,1);
//循环左移1位,逆时针旋转
P1 = (motor_a&0x1e)|(P1&0xe1);

}

else
{
motor_a = _cror_(motor_a,1);
//循环右移1位,顺时针旋转
P1 = (motor_a&0x1e)|(P1&0xe1);
}
i=0;
j--;
}

if(j==0)TR0=0;
TH0=0xe0;
TL0=0x00;
}

motor(int a,int b,int c)
{
motor_dir=a;
n=b;
j=c/1.8;
motor_a = 0x11;
i=0;
motor_init();

}

main()
{
motor(1,1,720);
while(1)
{
PCON=PCON|0x01;
}
}
这是一个简单的电机程序,你可以参考参考。。。

回答(3):

无能为力,俺