基于51单片机的智能小车系统设计

发布者:灵感狂舞最新更新时间:2023-02-09 来源: elecfans关键字:51单片机  智能小车系统 手机看文章 扫描二维码
随时随地手机看文章

原理图:


程序运行图:

部分程序:

/*******************************************************************************

* 文件名称:main.c

* 说明:本文件为小车控制的主函数

* 功能:1.看门狗定时器初始化

2.调用函数,进行小车直流电机的开环控制


*******************************************************************************/

#include

#include


/********************************************************

*函数名称:void main()

*函数功能:调用函数

*函数入口:无

*函数出口:无

********************************************************/

void main()

{

WDT_CONTR=0x3b;

timer_init(); //初始化

while(1)

{

keyboard(); //键盘扫描

// jieshou(); //遥控信号检测,要与传感器实物连接才能正常使用.

xunji(); //循迹检测

bizhang(); //避碍物检测

stop(); //目标站点检测

WDT_CONTR=0x3b; //喂狗

}

}



/*******************************************************************************

* 文件名称:kongzhi.c

* 说明:本文件为小车控制的c文件

* 功能:1.检测障碍物传感器查询

2.小车的状态控制


*******************************************************************************/


#include

#define kongzhi_GLOBAL 1

#include


uchar PWM_t,PWM_t0; //PWM_t为脉冲宽度(0~100)时间为0~10ms

uchar time_count; //定时计数

uint number,number1;

uchar flag; //flag为小车状态标志,0:停止,1:前进,2:后退

uchar flag2; //flag2为小车状态恢复寄存区,当小车遇到障碍物停止,等到障碍物排除之后,小车在停止之前的状态就寄存在flag2中

uchar flag3; //flag3为小车避障停止延时标志,初始化为0,等待障碍排除之后赋值为1,开始计时,数秒之后恢复停止前的行进状态

uchar flag4; //--flag4为看门狗复位后状态恢复寄存区

uchar kind = 0; //传感器的种类


/********************************************************

*函数名称:void bizhang()

*函数功能:遇到障碍物时的处理函数

*函数入口:无

*函数出口:无

********************************************************/

void bizhang()

{

zhang_ai = 1;

if(zhang_ai == 0)

{

flag2=flag;

flag=0;

while(zhang_ai == 0)

{

keyboard();

xunji();

stop();

WDT_CONTR=0x3b;

}

flag3=1;

}

}


/********************************************************

*函数名称:void stop()

*函数功能:到达目标点的控制函数

*函数入口:无

*函数出口:无

********************************************************/

void stop()

{

stop_1=1; //目标站点1

if(stop_1==0)flag=0;

stop_2=1; //目标站点2

if(stop_2==0)flag=0;

stop_3=1; //目标站点3

if(stop_3==0)flag=0;

}


/*******************************************************

*函数名称:void timer_init()

*函数功能:定时器初始化设置

*函数入口:无

*函数出口:无

********************************************************/

void timer_init()

{

flag=0;flag3=0;

key = 0xFF;

TMOD = 0x20; //定时器1为模式2(8位自动重装)

TF1 = 0; //清中断标志

TH1 = timer_data; //保证定时时长为0.1ms

TL1 = TH1;

ET1 = 1; //允许T0中断

TR1 = 1; //开始计数

EA = 1; //中断允许

ENA = 0; //电机禁止

PWM_t = PWM_t0; //看门狗复位后速度恢复

flag = flag4; //看门狗复位后小车状态恢复

}

/*******************************************************

*函数名称:void IntTime1() interrupt 3 using 2

*函数功能:定时器中断处理,小车行走控制

*函数入口:无

*函数出口:无

********************************************************/

void IntTime1()interrupt 3 using 2

{

time_count++;

if(flag3)number++;

if(number==6000){number=0;number1++;}

if(number1==8){flag3=0;number1=0;flag=flag2;}

if(flag==0)ENA=0; //小车停止,flag=0,小车停止标志

if(flag==1) //小车前进,flag=1,小车前进标志

{

ENA=1; //PWM波输出使能

DR=0; //直流电机一端接低电平

DR2=0; //直流电机一端接低电平

if(kind==0) //没有传感器检测到黑线,走直线

{ if(time_count{PWM=1;PWM2=1;}

else

{PWM=0;PWM2=0;}

}

if(kind==1) //左边第一个传感器检测到黑线

{

if(time_count<(PWM_t-20))

{PWM=1;}

else

{PWM=0;}

if(time_count{PWM2=1;}

else

{PWM2=0;}

}

if(kind==2) //左边第二个传感器检测到黑线

{


关键字:51单片机  智能小车系统 引用地址:基于51单片机的智能小车系统设计

上一篇:基于51单片机的舞蹈机器人步进机仿真设计
下一篇:基于51单片机的四位数字频率计数码管显示设计

推荐阅读最新更新时间:2024-10-23 11:10

51单片机项目设计:超声波测距、智能小车(keil+proteus)
项目展示: 仿真展示 : 一、项目要求 (一)项目内密 本课题的主要内容是,将超声波传感器安装在一台沿直线行走的小车上,由AT89C51 控制超声波传感器,发出超声信号,记录超声液从发射到接收的所需要的时间,得到其与|被测物体之间的能离。在小车行走的过程中,不断重复测距,得到一组距离数据。由单片机记录测得的距离,经过数据处理,将其显示在液晶屏上。同时,将一组距离数据,由串口传到上位机,由VB程序保存距离数据,并画出曲线,就得到了被测物体的单边轮廓。 (二)课题研究方需 超声波测距仪系统主要由单片机最小系统、超声波模块、LCO显示电路及电源电路组成。系统的主要功能如下: 超声波传感器发射和接收超声波,依据计时
[单片机]
<font color='red'>51单片机</font>项目设计:超声波测距、<font color='red'>智能小车</font>(keil+proteus)
基于51单片机超声波避障+蓝牙遥控智能小车
单片机源程序如下: #include reg52.h #include intrins.h typedef unsigned char u8; typedef unsigned int u16; typedef unsigned long u32; sbit Sevro_moto_pwm = P2^6; //接舵机信号端输入PWM信号调节速度 sbit ECHO= P1^1; //超声波接口定义 sbit TRIG= P1^0; //超声波接口定义 sbit PWM1 = P2^5; //左电机高电平 sbit PWM2 = P2^
[单片机]
基于51单片机智能小车(遥控模块寻迹避障)
在淘宝购买的寻迹模块+自己做的小车底盘 测试成功 #include reg52.h sbit P1_0 = P1^0; sbit P1_1 = P1^1; sbit P1_2 = P1^2; sbit P1_3 = P1^3; sbit P1_4 = P1^4; sbit P1_5 = P1^5; sbit P1_6 = P1^6; sbit P1_7 = P1^7; sbit P2_0 = P2^0; sbit P2_1 = P2^1; sbit P2_2 = P2^2; sbit P2_3 = P2^3; sbit P2_4 = P2^4; sbit P2_5 = P2^5; sbit P2_6 = P2^6; sbit P2
[单片机]
基于51单片机的遥控智能小车实作心得
两年前学习51单片机时,买了51hei单片机开发板。现在正在学习基于STM32嵌入式系统的FAT32,UGUI和UCOSII操作系统。几乎很少去看51单片机开发板了。某天,宝贝突然说要我给她买一个遥控小车,说别人都有。俺查了一下网上性能好点的小车价格不菲,我突然想起自己不是还有一块闲置的51hei单片机开发板吗?何不自己动手给宝宝做一个智能小车呢?闲话少说,付诸行动吧。 经过近一个星期的行动,小车终于完成了,虽然说样子是丑了一点,但是性能不弱。主要功能:1,红外遥控器遥控,小车同步前进,小车同步后退,左转弯,右转弯,左倒车,右倒车;2,行进中自动壁障。其实功能可以随便加,只要舍得花银子。 程序是在 51hei单片机
[单片机]
基于51单片机智能小车设计
O 引言 在现有玩具电动车的基础上,加装光电检测器,实现对电动小汽车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 1 直流调速系统采用PWM调速 直流调速系统采用晶闸管的直流斩波器与整流电路。晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse Width Modulat-ion),简称PWM。脉冲周期不变。只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。 脉宽调速也可通过单片机控制继电器的闭合来实
[单片机]
基于<font color='red'>51单片机</font>的<font color='red'>智能小车</font>设计
基于80C51单片机智能小车设计
O 引言 在现有玩具电动车的基础上,加装光电检测器,实现对电动小汽车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 1 直流调速系统采用PWM调速 直流调速系统采用晶闸管的直流斩波器与整流电路。晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse Width Modulat-ion),简称PWM。脉冲周期不变。只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。 脉宽调速也可通过单片机控制继电器的闭
[单片机]
ARM芯片S3C2440A智能小车可移动视频监控系统
  本文介绍的智能小车可移动视频监控系统,以“飞思卡尔杯”智能小车竞赛提供的车模装置为基础,利用ARM芯片S3C2440A控制图像采集、网络传输、速度采集干扰小的模块,利用FPGA芯片控制电机驱动、舵机控制、电量采集干扰大的模块,当上位机通过Internet访问智能小车服务器时,在监控界面上点击按钮来控制小车的运行、图像拍摄、速度采集。   1 系统总体设计   该系统采用三星公司的ARM芯片S3C2440A作为主控制芯片及Altera公司的FPGA芯片EP2C5T144C8作为辅助控制芯片,ARM上装有Windows CE5.0操作系统。S3C2440A内置丰富的外设资源包括中断控制器、GPIO、I2C、相机接口等接口电路,
[单片机]
ARM芯片S3C2440A<font color='red'>智能小车</font>可移动视频监控<font color='red'>系统</font>
基于单片机的智能小车系统设计
本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心;采用金属感应器TL-Q5MC来检测路上感应到的铁片,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,并且单片机选择的工作模式不同也可控制小车顺着S形铁片行驶;采用霍尔元件A44E检测小车行驶速度;采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间。 1.1 基本要求: (1)分区控制: 车辆从起跑线出发(出发前,车体不得超出起跑线)。在第一个路程C~D区(3~6米)以低速行驶,通过时间不低于10s;第二个路程D~E区(2米)以高速行驶,通过
[单片机]
基于单片机的<font color='red'>智能小车</font><font color='red'>系统</font>设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved