过程如下:#include
int我;
无符号字符k=0;
无效计时器();//速度控制程序
空白timerc();//分配taccr0初始值
空白郑(空白);//程序
空方(空白);//反向器
Charkey0_pressed(空白);//反向执行按钮被按下(需要已恢复向前或放手,
Charkey3_pressed(空白);//减速按钮
Charkey4_pressed(空白);//速度按钮
//主程序Voidmain(Void)
{
WDTCTL=WDTPW+WDTHOLD;
P2dir|=0e0-0fc;
P2out|=bit0+bit1+bit2+bit3+相加;
P2ren|=bit0+bit1+bit2+bit3+相加;
Bcsctl3|=lfxt1s_2;
Tacctl0=it;
Timerc();
Tactl=tassel_1+id_3+MC_3;
P1dir|=bit0+bit1+bit2+bit6;
P1out|=bit0+bit1+bit2+bit6;
_eint();
Lpm3。
(1);
}
空白timerc()//傅yaccr0初始值
{
如果(!Key3_pressed())//如果没有按钮被按下,初始化
Taccr0=10;
}
无效计时器()//速度控制按钮
{
P2dir|=0e0-0fc;
P2out|=01f;
P2ren|=bit3;
如果(key3_pressed())
{
(我=0,打折期,lt;500;我++);
Taccr0=Taccr0+3;
如果(taccr0和gt;17)
{
Taccr0=10;
}
}
如果(key4_pressed())
{
(我=0,打折期,lt;500;我++);
Taccr0=taccr0-3;
如果(taccr0,lt;4)
{
Taccr0=10;
}
}
}
#pragma向量=timer0_a0_vector
__interrupt空白timer_a(void)//定时器中断程序
{
郑();//开始右转
计时器();
如果(key0_pressed())//如果反向按钮逆转
{
方();
计时器();
Lpm3_exit;
}
}
Charkey3_pressed(void)//判断减速按钮被按下
{
无符号整数h=0;
P2ren|=bit3;
如果((p2in,amp;bit3)==000)
H=1;
其他h=0;
返回h;
}
Charkey4_pressed(void)//是否加速按钮按下
{
无符号整数h=0;
P2ren|=相加;
如果((p2in,amp;相加)==000)
H=1;
其他h=0;
返回h;
}
Charkey0_pressed(void)//反向按钮
{
无符号整数=0;
P2ren|=bit0;
如果((p2in,amp;bit0)==000)
=1;
其他=0;
返回一个;
西玛电机
}
空白郑(Void)//程序
{如果!Key0_pressed())
{
无符号字符zz[4]={001,002,004,040};
P1out=zz[k]。
k++;
如果(k==4)
{
K=0;
}
}
}
空方(Void)//逆转过程
{
无符号字符fz[4]={040,004,002,001};
P1out=fz[k]。
k++;
如果(k==4)
{
K=0;
}
}
西玛电机 电机修理 西玛电机
H-桥,电机驱动原理