红外避障小车c语言程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能小车红外避障 c 语言程序
#include <AT89X52.H> bit RandomFactor = 0 ; bit RandomFactorBuf = 0 ; #include <Timer.H> #define FLeftMotor P0_2 = 1 ; P0_3 = 0 #define BLeftMotor P0_2 = 0 ; P0_3 = 1 #define FRightMotor P0_5 = 1 ; P0_4 = 0 #define BRightMotor P0_5 = 0 ; P0_4 = 1 #define LeftStop #define RightStop P0_2 = 0 ; P0_3 = 0 P0_4 = 0 ; P0_5 = 0
#define CarStop P0_2 = 0 ; P0_3 = 0 ; P0_4 = 0 ; P0_5 = 0 #define RightSenser P0_0 #define LeftSenser P0_1 //******************************************************** // 左转 //******************************************************** void TurnLeft_1() { LeftStop ; FRightMotor ; } //******************************************************** // 快速左转
//******************************************************** void TurnLeft_Fast() { BLeftMotor ; FRightMotor ; } //******************************************************** // 右转 //******************************************************** void TurnRight_1() { RightStop ; FLeftMotor ; } //******************************************************** // 快速右转 //******************************************************** void TurnRight_Fast() { BRightMotor ; FLeftMotor ; } //******************************************************** // 用倒退的方式进行车头右转 //******************************************************** void BTurnRight_1() { LeftStop ; BRightMotor ; }
if(RightSenser && LeftSenser&&PWM) { FCar() ; } if((!RightSenser) && LeftSenser&&PWM) { BTurnLeft_1() ; } if(RightSenser && (!LeftSenser)&&PWM) { BTurnRight_1() ; } if(!(RightSenser || LeftSenser)) { RandomFactorBuf = RandomFactor ; while (!(RightSenser || LeftSenser)) { if(RandomFactorBuf) { BTurnLeft_1() ; delay (300) ; } if(!RandomFactorBuf) { BTurnRight_1() ; delay (300) ; } } } if(!PWM) {
//******************************************************** // 用倒退的方式进行车头左转 //******************************************************** void BTurnLeft_1() { RightStop ; BLeftMotor ; } //******************************************************** // 前进 //******************************************************** void FCar() { FLeftMotor ; FRightMotor ; } //******************************************************** // 后退 //******************************************************** void BCar() { BLeftMotor ; BRightMotor ; } //******************************************************** // 壁障程序 //******************************************************** void Obstacle_Avoid(void) {
LeftStop ; RightStop ; }
} //******************************************************** // 跟随程序 //******************************************************** void Follow(void) { if(RightSenser && LeftSenser&&PWM) { LeftStop ; RightStop; } if((!RightSenser) && LeftSenser&&PWM) { TurnRight_1() ; } if(RightSenser && (!LeftSenser)&&PWM) { TurnLeft_1() ; } if(!(RightSenser || LeftSenser)) { FCar() ; } } //********************************************************
//******************************************************** main() { Timer0Setup(500) ; Timer1Setup(50) ; Obstacle_Avoid() ; // Follow() ; }
Baidu Nhomakorabea
#include <AT89X52.H> bit RandomFactor = 0 ; bit RandomFactorBuf = 0 ; #include <Timer.H> #define FLeftMotor P0_2 = 1 ; P0_3 = 0 #define BLeftMotor P0_2 = 0 ; P0_3 = 1 #define FRightMotor P0_5 = 1 ; P0_4 = 0 #define BRightMotor P0_5 = 0 ; P0_4 = 1 #define LeftStop #define RightStop P0_2 = 0 ; P0_3 = 0 P0_4 = 0 ; P0_5 = 0
#define CarStop P0_2 = 0 ; P0_3 = 0 ; P0_4 = 0 ; P0_5 = 0 #define RightSenser P0_0 #define LeftSenser P0_1 //******************************************************** // 左转 //******************************************************** void TurnLeft_1() { LeftStop ; FRightMotor ; } //******************************************************** // 快速左转
//******************************************************** void TurnLeft_Fast() { BLeftMotor ; FRightMotor ; } //******************************************************** // 右转 //******************************************************** void TurnRight_1() { RightStop ; FLeftMotor ; } //******************************************************** // 快速右转 //******************************************************** void TurnRight_Fast() { BRightMotor ; FLeftMotor ; } //******************************************************** // 用倒退的方式进行车头右转 //******************************************************** void BTurnRight_1() { LeftStop ; BRightMotor ; }
if(RightSenser && LeftSenser&&PWM) { FCar() ; } if((!RightSenser) && LeftSenser&&PWM) { BTurnLeft_1() ; } if(RightSenser && (!LeftSenser)&&PWM) { BTurnRight_1() ; } if(!(RightSenser || LeftSenser)) { RandomFactorBuf = RandomFactor ; while (!(RightSenser || LeftSenser)) { if(RandomFactorBuf) { BTurnLeft_1() ; delay (300) ; } if(!RandomFactorBuf) { BTurnRight_1() ; delay (300) ; } } } if(!PWM) {
//******************************************************** // 用倒退的方式进行车头左转 //******************************************************** void BTurnLeft_1() { RightStop ; BLeftMotor ; } //******************************************************** // 前进 //******************************************************** void FCar() { FLeftMotor ; FRightMotor ; } //******************************************************** // 后退 //******************************************************** void BCar() { BLeftMotor ; BRightMotor ; } //******************************************************** // 壁障程序 //******************************************************** void Obstacle_Avoid(void) {
LeftStop ; RightStop ; }
} //******************************************************** // 跟随程序 //******************************************************** void Follow(void) { if(RightSenser && LeftSenser&&PWM) { LeftStop ; RightStop; } if((!RightSenser) && LeftSenser&&PWM) { TurnRight_1() ; } if(RightSenser && (!LeftSenser)&&PWM) { TurnLeft_1() ; } if(!(RightSenser || LeftSenser)) { FCar() ; } } //********************************************************
//******************************************************** main() { Timer0Setup(500) ; Timer1Setup(50) ; Obstacle_Avoid() ; // Follow() ; }
Baidu Nhomakorabea