书51单片机智能小汽车前进后退可变速及带显示功能的电机驱动系统的设计与调试 不胜感激🥹?
硬件设计:
选择合适的单片机主控板,并配置相应的时钟电路和电源电路。
设计电机驱动电路,采用H桥驱动芯片,如L298N或TB6560等,实现电机的正反转和调速控制。
设计按键控制电路,采用独立按键或矩阵按键,实现小汽车的前进、后退和变速控制。
设计显示模块,采用LCD1602或LCD12864等显示模块,实现电机转速和模式的实时显示。
软件设计:
编写初始化程序,对单片机、驱动芯片和显示模块进行初始化配置。
编写按键扫描程序,通过检测按键状态,实现小汽车的前进、后退和变速控制。
编写电机控制程序,通过PWM调速实现电机的无级变速控制。
编写显示模块控制程序,实现电机转速和模式的实时显示。
以下是51单片机智能小汽车前进后退可变速及带显示功能的电机驱动系统的设计与调试的代码及注释:
cpp#include <reg52.h> // 引入51单片机头文件
#include <intrins.h> // 引入内联函数头文件
// 定义引脚
sbit IN1 = P1^0; // 定义输入引脚1
sbit IN2 = P1^1; // 定义输入引脚2
sbit EN = P1^2; // 定义使能引脚
sbit LED = P1^3; // 定义LED引脚
sbit LCD_RS = P1^4; // 定义LCD RS引脚
sbit LCD_EN = P1^5; // 定义LCD EN引脚
// 定义全局变量
unsigned int state = 0; // 存储电机状态
unsigned int speed = 0; // 存储电机速度
unsigned int delay_time = 0; // 存储延迟时间
// 延时函数
void delay(unsigned int t) {
while (t--) {
_nop_();
_nop_();
}
}
// 初始化LCD
void init_lcd() {
LCD_RS = 0; // 设置LCD RS引脚为低电平
LCD_EN = 0; // 设置LCD EN引脚为低电平
P0 = 0x3f; // 设置LCD显示位为00111111
}
// 显示状态和速度
void display(unsigned int state, unsigned int speed) {
unsigned int i, j;
for (i = 0; i < 2; i++) { // 每行显示4个字符,共显示两行
for (j = 0; j < 5; j++) { // 每行第1、4个字符用空格填充,共循环5次
if (j == 0 || j == 4) { // 如果是第1、4个字符,显示状态或速度的个位数
P2 = (state % 10 << 4) | (speed % 10);
} else { // 否则显示空格
P2 = 0x0f;
}
delay(10);
}
state /= 10; // 进位,显示下一个数字
speed /= 10;
}
}
// 控制电机转动和速度
void drive(unsigned int direction, unsigned int speed) {
if (direction == 0) { // 后退
IN1 = 1; // IN1为高电平
IN2 = 0; // IN2为低电平
} else { // 前进
IN1 = 0; // IN1为低电平
IN2 = 1; // IN2为高电平
}
EN = 1; // 使能电机
delay(10); // 延时一段时间,等待电机启动
while (speed--) { // 循环控制电机速度,每次循环减少1个单位的速度
EN = 0; // 使能电机
delay(10); // 延时一段时间,等待电机启动
IN1 = ~IN1; // 控制IN1的电平,反转电机方向
IN2 = ~IN2; // 控制IN2的电平,反转电机方向
delay(delay_time); // 控制电机转动的时间,根据需要调整delay_time的值,单位为毫秒
EN = 1; // 使能电机,停止电机转动
}
EN = 0; // 使能电机,停止电机转动
}
让51单片机控制的智能小车,利用红外对管检测黑白线拐直角弯,我想在车身...
如果不会用滤波算法的话 我想到的只有一个办法,就是用一个循迹条,放在车前 到拐弯的时候用延时,近似转到90度,然后用循迹条去走直线 简单写个程序:\/\/现在到了拐弯处,假设有1个7个led的灰度循迹条(或者红外循迹条)\/\/灯:led1 led2 led3 led4 led5 led6 led7 car_right();delag_ms(...
51单片机可以做哪些东西
5.还有很多什么智能防丢器,智能检测系统,计费收费系统,图书馆管理系统等,无非就是用各种传感器采集数据,经过数据处理然后实现相应的功能,在LCD屏显示。6.没有做不到的,只有想不到的,去各种电子比赛可以看到很多有趣的作品,当51单片机满足不了的时候就可以换上16位,32位单片机。
大神,请问51单片机控制的智能小车识别铁片后进入外部中断,停车2秒,然后...
你在中断里面把flag=1;进入主函数后flag一直保持1,而你中断的判断条件是if(flag==0&&P32==0),它就进不了中断了。你要想这么写的话可以改成这样看看:void INT_0() interrupt 0 { flag==0;if(flag==0){ P2=0x00;\/\/小车停车 delayms(2000); \/\/延时两秒 flag=1;} } 或者干脆把if...
用单片机做智能小车,分为那几个模块分别是???
如果只是最简单的小车,那么电源+单片机+电机+电机驱动就能搞定 单片机最简单的51就行 加上普通的直流电机 然后有电机驱动模块驱动电机(比如l298模块 有能力的话自己焊也行 不行就买吧 l298模块20—30一个)轮胎之类的可以直接买车模 淘宝上搜一下就行了 电源的设计要注意下单片机的抗干扰问题 这就是...
求最简单的51单片机智能循迹小车原理图以及程序以及制作过程,不胜感激...
简单的写的话不会区别偏离黑线距离远近的,复杂点儿的话会分区编程,简单版如下:void turn_left(){ P1.0 = 0; \/\/左前轮 P1.1 = 1; \/\/右前轮 P1.2 = 0; \/\/左后轮 P1.3 = 1; \/\/右后轮 } ... ...unsigned char judge(){ switch(P2 & 0x??)case 0x??:{ b...
51单片机可以自己做agv小车控制系统吗
当时的科学家用循迹原理组成的传感器来实现小车的循迹功能,这是世界上最早发明的智能化的自动运行小车。...AGV自动导引车的系统,其基本电路组成是单片机及其最小系统,其最小系统包括复位电路和时钟脉冲晶振电路,...价格十分地昂贵,一块普通的STM32单片机的价格是同类型的51单片机的十多倍,因此STM32单片机不适合于普通...
单片机 智能小车 课程设计
1) 单片机最小系统组成 单片机系统是整个智能系统的核心部分,它对各路传感信号的采集、处理、分析及对各部分整体调整。主要是组成是:单片机AT89S52、模数转换...2009-12-09 课程设计(基于单片机的智能小车电控系统) 2012-08-08 单片机智能小车设计 7 2018-05-23 51单片机智能小车制作,求通俗易懂的讲解 557 更...
用51单片机,输出PWM信号控制智能小车的小电机,汇编程序要怎么写?_百 ...
&& 我是用PC机控制的, 不知对你有无帮助.-- 舵机控制 Local 我的小大脚, 油门, 方向 油门 = 0 方向 = 1 我的小大脚 = Newobject("环奇小大脚")-- Inkey(4)-- 我的小大脚.发送指令(方向, 0)-- 我的小大脚.发送指令(油门, 0)-- Inkey(2)-- 我的小大脚.发送指令(油门, 0.5)-...
要用51单片机上的计数器计算智能小车走过黑线的个数怎么来设计_百度知 ...
有呀,用外部中断也可以,不用中断也是可以的,但有丢失信号的可能。
51单片机可以做的项目
2. 电子时钟设计。通过51单片机配合按键、数码管或LCD显示屏,以及蜂鸣器,实现校准、闹钟、报点等功能,方便日常生活。3. 智能小车或机器人制作。利用51单片机实现红外寻迹避障、超声波测距等功能,也可以通过手机蓝牙或Wi-Fi进行控制,为智能小车比赛提供创意方案。4. 智能家居系统开发。使用51单片机结合...
翠俭穿心: 一、执行完 D0 的条件语句后,执行 D1 的条件语句,由于 D0 用到的是 IN2/IN4,D1 用到的是 IN1/IN3,互相之间没有冲突,所以能正常运行. 二、D2 用到的是 IN4,与 D0 的有冲突,所以前面赋值后,后面又作修改,所以不能正常运行 三、正常应当是 if (D0==1) { }else if (D1==1) { }else if (D2==1) { }else if (D3==1) { }
株洲县18669629787: 做一个基于51单片机的红外遥控小车 - ?
翠俭穿心: 你这有现成的红外遥控器,那板子上红外发射就不需要用 了,只要用接收头就可以,首先单片机写个测试遥控器各个按键的键码的程序,有了键码后面你才能做控制.这样就只是简单的单片机检测红外接收数据,比如设置的是收到01前进,02后推这样,接收红外数据用定时写个函数,网上有现成的接收程序,简单修改下就能用了.
株洲县18669629787: 想编写一个小车转弯,前进后退.的小程序 用单片机实现..不要求有别的功能 .. - ?
翠俭穿心: 主要是驱动电机,小车如果想转弯,应该是两个电机,一左一右,通过电机的转速不同来控制转向,通过控制电机正反转来控制前进后退电机可以用H桥驱动,推荐一下L298N这个芯片,可以驱动2路电机,很好用,数字信号控制,只需要单片机IO口控制就可以了如果要人为控制只需要编一下命令,当接到相应命令后控制电机相应的转速、转向就可以了,说白了就是给L298N不同的信号组合很简单的
株洲县18669629787: 求51单片机控制智能小车的c语言程序、、、,是前轮转向,后轮驱动,黑白线传感器循迹的,谢谢了 - ?
翠俭穿心: 你给的题盲点很多啊.小车的前后左右函数. while(1) {io口定义及初始化;通过io读取传感器返回值;对小车轨迹进行初步判断;调用前后左右函数. }我以前是这么做的
株洲县18669629787: 单片机控制简易小车前进,后退,障碍确定的方法程序控制框图 - ?
翠俭穿心: 简单的和你说下吧. 就使用AT89S52吧 接2个电机到单片机的P10,P11脚. 查看电机的参数,看它转速的时序. 比如发一个持续1.7MS的高电平它就顺时针全速转动,发1.3MS的高电平它就逆时针全速转动.1.5MS时为静止. 编程的话 前进 使一个轮子顺时针,一个轮子逆时针.就这样写 P1_0=1; delay_nus(1700);P1_0=0; P1_1=1; delay_nus(1300);P1_1=0; 后退就把P10和P11换下. 你的前进和后退的要求就完成了. 壁障.可以使用红外线壁障.也可以使用2个铁丝壁障.原理一样.红外反射出障碍或者铁丝碰到障碍的条件达到时,执行程序.你说具体点.
株洲县18669629787: 51单片机小车的程序 - ?
翠俭穿心: sbit temp=P2^0;//通过switch语句你定义的是位,而swtich判断里应该是判断P2口,所以应写成sfr temp = P2;
株洲县18669629787: 我要做一个基于51单片机的智能避障小车,而且要显示行走距离,要怎么做?要用到什么器件?什么原理? - ?
翠俭穿心: 可以通过轮轴转圈数来计数(可以通过感应端口扫描实现),然后乘以轮胎的周长就是行走路程.至于避障可以通过红外实现.
株洲县18669629787: 51单片机控制的小车,这是原理图,求最简单的程序让电机转动,即让小车跑起来 - ?
翠俭穿心: 如果只是跑起来,这个也太简单了吧,如果你用M1这个电机做主电机,把P0.0置位1,P0.1置位0.M1一定转,要反转的话,P0.0置位0,P0.1置位1就可以.两个都置位1就是刹车,不过L9110好像不知道带不带刹车功能.你最好自己写一下,这个太简单啦!单片机学习讲的就是实践(估计你也不是想玩个小车车的玩具),这么简单的程序不应该叫人帮你写的,你自己写,不懂的可以问我,我会尽力帮你,这样你以后自己才能学会.你这个电路不只是能前进后退,左右转弯,还集成了不少其他的功能,你学会了写相应的程序会很有意思.
株洲县18669629787: 我需要做一个智能小车,用51单片机控制,两个两相四线步进电机驱动,我该选择什么驱动芯片呢??
翠俭穿心: 两相4线步进电机,只能使用LM298,ULN2803和ULN2003都是NPN达林顿管,1个芯片无法组成H桥. 再或者使用大功率三极管搭建2H桥来驱动也可以.我就没有用芯片,不过如果没有细分的话,电机比较抖.
株洲县18669629787: 请教一下大家,自己写了个51单片机的循迹小车程序,但是实际用的时候其他都行,为啥就是不能前进、后退? - ?
翠俭穿心: 没有符合你条件的情况出现吧,为了测试,你可以直接前进或后退,其他都屏蔽掉试试.