jishi7=0; jishi8=0; jishi9=0; jishi10=0; jishi11=1000;
TR1=0;
bujin=0;
zhuansu=100; //默认
设定转速为100RPM jishi12=0;
zhuansu=100; bujinshu=0; jishu=0;
}
void main() {
inti(); //初始化
WDT=0x38; //喂狗
while(1) {
if(power==0) //待机模式 { led1=1; //led待机
led2=1;
led3=1; led4=1;
P0=0; //数码管待机
weizhi=1;
w1=w2=w3=w4=0; ST=1; //线圈待机 FR=0; // 默认正转 MD1=0; //2相励磁模式
MD2=0;
}
else if(power==1)
{
TR1=1;
jishi10=65536-(15000/zhuansu)*10; if(bujin==0)
{
qianwei=(zhuansu000)/1000; baiwei=(zhuansu00)/100; shiwei=(zhuansu0)/10; gewei=zhuansu;
}
else
{
qianwei=(bujinshu000)/1000;
baiwei=(bujinshu00)/100; shiwei=(bujinshu0)/10; gewei=bujinshu;
}
}
}
4
}
void timer0() interrupt 1 using 1 //定时器T0 1mS定时器 { TR0=0; TL0=T0MS; TH0=T0MS>>8; TR0=1;
WDT=0x38; //喂狗
if(jishi11>0)
//蜂鸣器鸣响控制 { jishi11--; speaker=1;
}
else speaker=0;
if(bujin==1)
//电机待机时间定时 {
if(jishi12>0)
jishi12--;
else { TR1=0; ST=1; STEP=0; }
}
if(power==1)
//数码管显示控制 {
if(qianwei==0) {
qianwei=10; if(baiwei==0) {
baiwei=10; if(shiwei==0)
shiwei=10;
} }
switch(weizhi)
数码管显示控制 { case 1:{
P0=shuzi[qianwei];
w1=1;w2=w3=w4=0; break;
}
case 2:{
P0=shuzi[baiwei];
w2=1;w1=w3=w4=0; break;
}
case 3:{
//
5
P0=shuzi[shiwei];
w3=1;w2=w1=w4=0; break;
}
case 4:{
P0=shuzi[gewei];
w4=1;w2=w3=w1=0; break;
}
default: weizhi=0;
}
weizhi++;
}
if(power==0) {
if(aj1==ajkongzhi)
//关机状态下加速按键 {
if(jishi2<1000)
//消抖时间
500ms {
jishi2++;
if(jishi2>5) //
jishi11=100;
jishi2=0;
flag1=1;
if(flag2==1)
flag1=0;
flag2=0;
power=1;
power=0;
} else {
{
} else
{
} }
}
else { jishi2=0; flag1=0;
}
if(aj2==ajkongzhi)
6
//关机状态下减速按键
{
if(jishi3<1200)
{ jishi3=0; flag2=0; }
//消抖时间1500ms
jishi11=100;
if(flag1==1)
flag1=0;
flag2=0;
power=1;
power=0;
}
else
{ jishi3++; if(jishi3>5)
}
else
{
jishi3=0;
flag2=1;
{
} else
}
}
if(power==1) {
if((aj1==ajkongzhi2)&&(bujin==0))
//开机状态下的加速按键 {
if(jishi2 //消抖时间 500ms jishi2++; else { jishi2=0; if(jishi5>50) jishi5=jishi5-35; if(zhuansu<600) { zhuansu++; 7 led1=0; led2=1; zhuansu=600; if(jishi7<1000) //消抖时间1000ms jishi7=0; if(flag2==1) jishi11=500; flag1=0; flag2=0; power=0; } else } jishi7++; else { flag1=1; // { } else power=1; } } else { jishi2=0; jishi5=500; jishi7=0; flag1=0; } if((aj2==ajkongzhi)&&(bujin==0)) //开机状态下的减速按键 { if(jishi3 //消抖时间500ms { jishi3++; } else { jishi3=0; if(jishi6>50) jishi6=jishi6-35; if(zhuansu>10) { zhuansu--; led1=1; 8