1、uart.hint main(void)uart_Init();printf(The LED connected to P1_0 is blinking!n);while(1);P1_0=1;delay_nus(1500);P1_0=0;delay_nus(20000);将程序录入小车并运行,旋转车轮旁的旋钮直至车轮停转便达到了调零的目的。接下 来,我们便要完成实训要求的第一个程序:控制小车 LED灯的亮灭。通过参考指导书的已有程序,我们比较顺利的完成了该任务,任务程序如下: (在试验中需要注意LED灯的正负极)while(1)P1_1=1;delay_nms(500);P1_1=0;任务二:
2、机器人触觉导航该任务要求机器人碰到障碍物时,接触开关会有所察觉,通过编程让机器人避开障碍 物。在安装胡须时,需要注意胡须距传感立柱既不能太远也不能太近,太远会导致机器人 碰到障碍物后反应过慢,太近则会使机器人在前方没有障碍物的情况下进行避障操作,影 响小车正常行进。胡须机器人避障程序如下:int P1_4state(void) 获取P1_4的状态,右胡须return (P1&0x10)?1:0;int P2_3state(void) 获取P2_3的状态,左胡须return (P2&0x08)?void Forward(void)delay_nus(1700);delay_nus(1300);d
3、elay_nms(20);void Left_Turn(void)int i;for(i=1;i#define LeftIR P1_2 / 左边红外接收连接到 P1_2#define RightIR P3_5 / 右边红外接收连接到 P3_5#define LeftLaunch P1_3 / 左边红外发射连接到 P1_3#define RightLaunch P3_6 / 右边红外发射连接到 P3_6 void IRLaunch(unsigned char IR)int counter;if(IR=L)for(counter=0;counter38;counter+)LeftLaunch=1;
4、_nop_(); _nop_(); LeftLaunch=0;Rcounter+)/ 右边发射RightLaunch=1; RightLaunch=0;void Forward(void)/ 向前行走子程序void Left_Turn(void)/ 左转子程序for( i=1;void Right_Turn(void)/ 右转子程序 delay_nus(1700);void Backward(void)/ 向后行走子程序 delay_nus(1300);int irDetectLeft,irDetectRight; printf(IRLaunch( / 右边发射 irDetectRight =
5、 RightIR;/ 右边接收 / 左边发射irDetectLeft = LeftIR;/ 左边接收两边同时接收到红外线if(irDetectLeft=0)&(irDetectRight=0)/else if(irDetectLeft=0)/ 只有左边接收到红外线else if(irDetectRight=0)/ 只有右边接收到红外线 任务四:尾随小车该任务的设计线路与任务三相同,故完成较为简单,试验程序如下: #include#define LeftIR P1_2 /#define RightIR P3_5 /#define LeftLaunch P1_3 /#define RightLaunch P3_6 /左边红外接收连接到 P1_2右边红外接收连接到 P3_5左边红外发射连接到 P1_3右边红外发射连接到 P3_6void IRLaunch(unsigned char IR)/ 左边发射 for(counter=0;counter+) _nop_()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1