标题:
msp430f1循迹小车 很简单的一个设计 函数打包的源码 包括调试程序
[打印本页]
作者:
wanghaoxin
时间:
2018-7-15 15:44
标题:
msp430f1循迹小车 很简单的一个设计 函数打包的源码 包括调试程序
函数库是msp430f1.. 对应芯片使用。
单片机源程序如下:
#include "msp430x14x.h"
void turnright1(void);
void turnleft1(void);
void round(void);
void line(void);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
int i;
P6DIR |= BIT2;P6OUT &= ~BIT2; //打开电平转换
P2DIR |=BIT3+BIT0;P2OUT &= ~BIT3;
P2OUT |=BIT0;
P3DIR |=0X11;
P3OUT |=0X10;
P3OUT &=~ BIT0;
P4DIR &=~(BIT0+BIT1+BIT2+BIT3+BIT4);
P5DIR |=0XFF;
P5OUT =0X51;
P5OUT &=~ BIT1;
for(i=0;i<2000;i++);
CCR0=512-1;
CCR1=462;
CCR2=50;
CCTL0=CCIE;
CCTL1=CCIE;
CCTL2=CCIE;
_EINT();
TACTL|=TASSEL_1+MC_3;
while(1)
{
switch((P4IN & 0X1f))
{
case 7: turnleft1();
break;
case 15: turnleft1();
break;
case 23:turnleft1();
break;
case 28: turnright1();
break;
case 29:turnright1();
break;
case 30:turnright1();
break;
case 19: line();
break;
case 25: line();
break;
case 27: line();
break;
case 31: round();
break;
}
}
}
#pragma vector=TIMERA1_VECTOR
__interrupt void timer_A1(void)
{ //_EINT();
switch(TAIV)
{case 2:
P5OUT ^=0X01;
break;
case 4:
P5OUT ^=0X02;
break;
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void timer_A0(void)
{ P5OUT |=BIT0;
P5OUT &=~ BIT1;
}
void turnright1(void)
{ P5OUT &=~ (BIT4+BIT5+BIT7);
P5OUT |=BIT6;
//CCR1=470;
//CCR2=5;
}
/*void turnright2(void)
{
CCR1=470;
CCR2=0;
}*/
void turnleft1(void)
{ P5OUT &=~ (BIT5+BIT6+BIT7);
P5OUT |=BIT4;;
//CCR1=500;
//CCR2=45;
}
void round(void)
{ P5OUT &=~ (BIT5+BIT6+BIT7);
P5OUT |=BIT4;
//CCR1=470;
//CCR2=5;
}
void line(void)
{ P5OUT &=~ (BIT5+BIT7);
P5OUT |= BIT4+BIT6;
}
复制代码
所有资料51hei提供下载:
寻迹小车.zip
(146.01 KB, 下载次数: 59)
2018-7-15 15:43 上传
点击文件名下载附件
无密码
下载积分: 黑币 -5
作者:
1455173290
时间:
2018-8-17 08:54
感谢楼主分享。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1