前言
关于硬件部分可以看我上次写的帖子https://blog.youkuaiyun.com/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.小车动作模块
利用封装好的电机模块对小车整体控制

本文介绍了基于51单片机的红外寻迹智能小车的编程过程,涵盖模块化编程、电机控制、PWM与定时器、中断系统以及寻迹逻辑。作者强调了模块化编程的重要性,并分享了电机模块、小车动作模块的封装以及PWM的原理和配置。此外,还讨论了寻迹逻辑和参数调整,旨在帮助初学者理解51单片机的应用。
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



