基于51单片机避障小车
(仿真+程序)
功能介绍
具体功能:
1.四驱车的底盘,双直流电机,一只驱动左边两轮,一只驱动右边两轮;
2.配两个红外对管,一直装在小车前方,一只装在小车底盘,分别检测前方障碍和台阶;
3.小车碰到前方障碍后,左边两轮停止,右轮驱动,实现转弯。碰到台阶后小车先后退,然后左轮停止,右轮驱动实现转弯, 转弯结束后小车继续前进,如此循环;
演示视频:
基于51单片机避障小车
添加图片注释,不超过 140 字(可选)
程序
/* 双直流电机,一只驱动左边两轮,一只驱动
右边两轮。驱动电压为4.5-9V,配两个红外对管,打算一直装在小车前方
,一只装在小车底盘,分别检测前方障碍和台阶,小车碰到前方障碍后
左边两轮停止,右轮驱动,实现转弯。碰到台阶后小车先后退,然后左轮
停止,右轮驱动实现转弯,转弯结束后小车继续前进,如此循环*/
/***公众号:木子单片机****
************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar cs1,cs2,num1,num2;
uchar code table[]={0,1}; //占空比50%
sbit qdg=P3^4; //前红外对管,检测小车前方障碍
sbit xdg=P3^5; //下红外对管,检测小车是否碰到台阶
sbit in1=P1^0; //L298输入
sbit in2=P1^1; //L298输入
sbit in3=P1^2; //L298输入
sbit in4=P1^3; //L298输入
sbit ena=P1^4; //L298输入使能A
sbit enb=P1^5; //L298输入使能B
void delay(int z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init() //初始化函数
{
TMOD=0x11;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
ET0=1;
TR0=1;
EA=1;
}
硬件设计
使用元器件:
单片机:AT89C52;
(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)
设计资料
01仿真图
本设计使用proteus7.8和proteus8.9两个版本设计!具体如图!
添加图片注释,不超过 140 字(可选)
02程序
本设计使用软件keil5版本编程设计!具体如图!
添加图片注释,不超过 140 字(可选)
03设计资料
资料获取请关注同名公众号,全部资料包括程序(含注释)、仿真源文件等。具体内容如下,全网最全!!
可以关注下方公众号!
点赞分享一起学习成长。