寻迹小车+蓝牙遥控
此程序主要应用的是51中的定时器中断和串口中断
定时器中断主要是让小车进行循迹;
串口中断主要是为了实现蓝牙遥控;
其中m0和m1分别代表的是白线和黑线,也就是小车的红外接收管对黑线的判断;
然后zkb1和zkb2都代表的占空比,zkb1代表的是右轮的占空比,zkb2代表的是左轮的占空比;
IN1,IN2是控制右轮的,IN3,IN4是控制左轮的;
其中correct_left(),correct_right()都分代表的是向左或向右校正;
还有left(),right(),turn_right(),turn_left(),都是英文名来表示的左,右,向右转,向左转
这些都是子函数;
left1,left2,分别代表的是小车左边的两个红外接收管;
right1,right2,分别代表的是小车右边的两个红外接收管;
#include “reg51.h”
#include “intrins.h”
#define m0 0
#define m1 1
typedef unsigned int u16;
typedef unsigned char u8;
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENA=P1^2;
sbit ENB=P1^5;
sbit left1=P0^0;
sbit left2=P0^1;
sbit right1=P0^2;
sbit right2=P0^3;
unsigned char zkb1=0;
unsigned char zkb2=0;
unsigned char t=0; //t代表的是周期
void line_left();
void zhidon();
void line_right();
void right();
void left();
void back();
void line_straight()reentrant;
void delay(long int Delay_time) //延时函数