硅镁层硅镁层电动机
#include
#定义使用uintunsignedint
使用Uint页;
字符数=2,冥府。
P1sbitpwm1=^0;
Sbitpwm2=p^2;
Sbits2=p3^4;
Sbits3=p3^5;
Sbitdula=P2^6;
Sbitwela=P2^7;
无符号字符编码表[]=
X5bx06x3f{0,0,0,04f,066,06d,07d,007,07f。
x77X7cx6f0,0,0,039,05e,079,071,000};
空白keyscan()
{
如果s2==0)
{
而(!S2);
数字++;
如果(num==11)
Num=10;
Dis=数字;
}
如果(s3==0)
{
而(!S3);
Num-;
如果(num==1)
Num=0;
Dis=数字;
}
}
无效的显示器(一)
{
Dula=0;
P0=表(一);
Dula=1;
Dula=0;
Wela=0;
以P0=0fe;
Wela=1;
Wela=0;
}
Voidmain()
{
Tmod=001;//模式设置,00000001,可见使用一个计时器0,与模式1(m1=0,m0=1)。
Tr0=1;//打开计时器
Th0=0FF;//定时器设置,每100微秒推出了一个中断。
Tl0=0a4;
Et0=1;//定时器0
Ea=1;//总是中断
而(1)
{
Keyscan();
如果(num!=0),,,,(num!=10))//0和100%的责任周期的这两个极端之间,最好的隔离,单独考虑
{
如果(pp&肝移植;num=)
{
Pwm1=1;
Pwm2=~pwm1;
}
其他的
Pwm1=0;
Pwm2=~pwm1;
}
其他如果(num==0)//当0的工作周期
{
Pwm1=0;
Pwm2=~pwm1;
}
其他的
Pwm1=1;
Pwm2=~pwm1;
如果(pp==10)//当占空比为100%
页=0;
显示(num);//显示数字的当前值,责任比数字/10。
}
}
空白time0中断()1
{th0=0FF;
Tl0=0a4;
Pp++;
}
#include
无符号字符代码f_rotation[4]={003,006,00C,019};//形式
无符号字符代码b_rotation[4]={010,008,004,002};//反向形式
无效的延迟(unsignedintI)//延迟
main()
{
无符号字符我;
而(1)
{
(我=0,打折期,lt;4。我++)//4阶段
{
P1=f_rotation[我];//输出相应的相转化可以改变形式
延迟(500);//改变这个参数可以调整硅镁层马达速度
}
}
}这个程序中发现的硅镁层后电动机振动不知道什么原因
两个原因:
连接错误,西玛电机稍向前,回头和来回振动。
程序错误,脉搏快,给西玛电机反应不过来,只能按照振动。
解决方案a:只是改变延迟发现西玛电机摆动,还???没有出现。这个方法没有解决??问题继续寻找……
方案2:检查你的西玛电机,或检出问题,
解决方案3:电动机,终于可以把,得出结论证明是一个发动机坏了。
西玛电机