前言
关于硬件部分可以看我上次写的帖子https://blog.csdn.net/ZER00000001/article/details/124378788
#新人报道我是普通本科大一新生,因为兴趣爱好加入学校机器人协会,计划本学期挑战电赛|ू・ω・` )没想到疫情突发,只能匆匆用了一个星期入门51,做阶段性小项目,基于51智能红外寻迹小车,虽然论坛教程很多,但还是发此贴记录分享撸车的时光,也顺便做个引子给刚入门的同好们…
一、准备工作
1.安装keil 5
2.有一定的c语言基础
3.明白各模块工作原理,才能写逻辑
二、使用步骤
1.模块化编程
【视频教程:b站江科大自化协】我跟着这位老师入门的51,他讲的很好,其中教会了我模块化编程(可以有效降低代码耦合性,并且写下来思路非常清晰!!!),所以在接下的说明中我会按照这种方式来讲解代码( ̄▽ ̄)~*
(代码不成熟,仅供参考)
2.电机模块
这是电机模块,也就是控制轮子怎么转的。(如果你的电机反向,就把1和0交换位置)
#include <REGX52.H>
sbit IN1 = P1^0;//左轮
sbit IN2 = P1^1;//左轮
sbit IN3 = P1^2;//右轮
sbit IN4 = P1^3;//右轮
void Left_Motor_Forward()//左轮前进
{
IN1 = 1;
IN2 = 0;
}
void Right_Motor_Forward()//右轮前进
{
IN3 = 1;
IN4 = 0;
}
//
void Left_Motor_Back()//左轮后退
{
IN1 = 0;
IN2 = 1;
}
void Right_Motor_Back()//右轮后退
{
IN3 = 0;
IN4 = 1;
}
//
void Left_Motor_Stop()//左轮停
{
IN1 = 0;
IN2 = 0;
}
void Right_Motor_Stop()//右轮停
{
IN3 = 0;
IN4 = 0;
}
这是函数封装
#ifndef __MOTORSET_H__
#define __MOTORSET_H__
void Left_Motor_Forward();
void Right_Motor_Forward();
void Left_Motor_Back();
void Right_Motor_Back();
void Left_Motor_Stop();
void Right_Motor_Stop();
#endif
3.小车动作模块
利用封装好的电机模块对小车整体控制
<