单片机智能小车控制程序解析
基于51单片机智能小车(电路+程序+论文)
基于单片机的多功能智能小车设计论文(摘要(关键词:智能车单片机金属感应器霍尔元件 1602LCD)智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
智能电动车就是其中的一个体现。
本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心;采用金属感应器TL-Q5MC来检测路上感应到的铁片,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,并且单片机选择的工作模式不同也可控制小车顺着S形铁片行驶;采用霍尔元件A44E检测小车行驶速度;采用1602LCD实时显示小车行驶的时间,小车停止行驶后,轮流显示小车行驶时间、行驶距离、平均速度以及各速度区行驶的时间。
本设计结构简单,较容易实现,但具有高度的智能化、人性化,一定程度体现了智能。
目录1 设计任务 (3)1.1 要求 (3)2 方案比较与选择 (4)2.1路面检测模块 (4)2.2 LCD显示模块 (5)2.3测速模块 (5)2.4控速模块 (6)2.5模式选择模块 (7)3 程序框图 (7)4 系统的具体设计与实现 (9)4.1路面检测模块 (9)4.2 LCD显示模块 (9)4.3测速模块 (9)4.4控速模块 (9)4.5复位电路模块 (9)4.6模式选择模块 (9)5 最小系统图 (10)6 最终PCB板图 (12)7 系统程序 (13)8 致谢 (46)9 参考文献 (47)10 附录 (48)1. 设计任务:设计并制作了一个智能电动车,其行驶路线满足所需的要求。
1.1 要求:1.1.1 基本要求:(1)分区控制:如(图1)所示:(图1)车辆从起跑线出发(出发前,车体不得超出起跑线)。
在第一个路程C~D区(3~6米)以低速行驶,通过时间不低于10s;第二个路程D~E区(2米)以高速行驶,通过时间不得多于4秒;第三个路程E~F区(3~6米)以低速行驶,通过时间不低于10s。
基于51单片机的红外遥控智能小车源程序(C语言)
/*预处理命令*/#include<reg52.h> //包含单片机寄存器的头文件#include<intrins.h> //包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned int#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};sbit IRIN=P3^2; //红外接收器数据线sbit LCD_RS = P0^7;sbit LCD_RW = P0^6;sbit LCD_EN = P0^5;uchar begin[]={"My car!"};uchar cdis1[]={"jiansu!"};uchar cdis2[]={"qianjin!"};uchar cdis3[]={"jiasu!"};uchar cdis4[]={"zuozhuang!"};uchar cdis5[]={"STOP!"};uchar cdis6[]={"youzhuan!"};uchar cdis8[]={"daoche!"};sbit M1 = P1^0;sbit M2 = P1^1;sbit M3 = P1^2;sbit M4 = P1^3;sbit EN12 = P1^4;sbit EN34 = P1^5;uchar IRCOM[7];uchar m,n;uchar t=2;uchar g;uchar code digit[]={"0123456789"};uint v;uchar count;bit flag;void delayxms(uchar t);void delay(unsigned char x) ;void delay1(int ms);void motor();void lcd_display();/*检查LCD忙状态lcd_busy为1时,忙,等待。
单片机控制的智能小车的C语言程序
#include<reg52.h>#define sense P1 /*宏定义光电传感器端口*/#define input1 P0 /*左电机的IN1,IN2定义在P0口*/#define input2 P2 /*右电机的IN3,IN4及ENA,ENB定义在P2口*/ //宏定义电机的具体端口sbit MOTO1_INT1=P0^0;sbit MOTO1_INT2=P0^1;sbit MOTO1_ENA=P2^0;sbit MOTO2_INT3=P2^5;sbit MOTO2_INT4=P2^4;sbit MOTO2_ENB=P2^2;//宏定义传感器的具体端口sbit sense_L=P1^3;sbit sense_R=P1^6;//宏定义金属传感器端口sbit METAL=P1^1;//宏定义DELAY函数中的一些变量int Dtime1=20000;int Dtime2=2000;int i=0;unsigned char SIGNAL(void); //传感器信号分析函数void DELAY(void); //延时函数void main(){int a;MOTO1_INT1=1; //使车开始时运动MOTO1_INT2=0;MOTO1_ENA=1;MOTO2_INT3=1;MOTO2_INT4=0;MOTO2_ENB=1;while(1){if(METAL==1) //有金属时车停止DELAY();else{a=SIGNAL();switch(a){case 1:input2=0x25;break; //前进case 2:input2=0x24;break; //左转case 3:input2=0x21;break; //右转default:break;}}}}void DELAY() //延时函数{input2=0x20; //使驱动芯片的两个使能端为0,使两个电机停转for(i=0;i<Dtime1;i ); //实现延时,用DTIME控制input2=0x25; //使驱动芯片的两个使能端为1,使两个电机重新转for(i=0;i<Dtime2;i );}unsigned char SIGNAL(){unsigned char Re;Re=sense&0x28;if(Re==40)return 1;//前进else if(Re==8)return 2;//左转else if(Re==32)return 3;//右转else return 1;//有错时前进}。
基于 stm32 单片机的智能小车控制
基于 stm32 单片机的智能小车控制摘要:进入21世纪以来,智能化已成为时下最热门的课题。
智能小车在日常生活、交通、军事等领域中发挥了独有作用,不仅断提高了人们的生活品质,而且还能够提升人们的服务效率、工作效率,成为了智能化研究的热门课题。
利用超声波传感器和SG90舵机组成超声波云台,以stm32单片机作为控制核心,对智能小车控制进行详细研究。
关键词:stm32单片机;智能小车;控制引言本文所设计的基于STM32F103的无线智能小车控制系统,其中以STM32F103单片机为控制核心,小车辅助避障模块为E18-D80NK光电传感器,使用超声波传感器和SG90舵机组成超声波云台,并将红外发射管、红外接收管和LM339电压比较器进行组合作为智能小车巡航传感器。
该小车在前进时能够检测一定范围内的障碍物距离,实现智能小车巡航、防摔等功能。
并且智能小车上安装GPS定位模块和无线模块,能够控制智能小车能够避开障碍自由行走。
GPS模块用于智能小车定位,无线模块能够使智能小车通过无线通信连接,与PC无线通信连接,将智能小车定位信息及障碍物距离信息显示到PC上,从而通过PC端控制智能小车的行走。
另外,为了驱动智能小车行走,并测量左右轮转速,直流电机驱动分别采用了TB6612FNG电机驱动模块和槽型光耦传感器、测速码盘,在PWM脉宽改变电机转速上,通过PID控制器实现小车调速功能。
一、基于STM32单片机的智能小车的硬件设计1.1主控芯片设计为了满足大多数嵌入式系统控制要求,采用STM32F103单机片,其性能优越且性价比较高。
1.2传感器设计避障系统传感器采用成本低、距盲区小及灵敏度高的HC-SR04超声波测距模块,该模块具有更好的抗干扰能力、可非接触测量0.02~4m的障碍物距离;巡航传感器选用模块价格便宜、体积较小的红外传感器,但该传感器多在没有强光的环境中使用,抗干扰能力较差,可控制小车巡航,防止摔倒;测速模块采用槽型光耦传感器和测速光电码盘组成测速系统,模块采用施密特触发器抖动触发脉冲,只要有非透明物体阻挡模块光电射槽,就可以触发模块输出5VTTL电压,触发脉冲稳定。
单片机智能小车 (带完整程序)
广东职业技术学院毕业综合实践报告题目:单片机智能小车类型:设计类专业:应用电子技术(LED新型电光源)班级:xxx学生姓名:xxx指导教师:xxx完成时间:2016年6月摘要智能作为现代的新技术,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。
智能小车就是其中的一个体现。
智能小车,也称为轮式机器人,是一种以汽车电子为背景,涵盖智能控制、模式识别、传感技术、计算机、机械等多学科的科技创意性设计。
一般主要由路径识别、速度采集以及车速控制等模块组成。
本次设计的简易智能小车,采用STC89C51单片机作为小车的检测和主控芯片,充分利用了自动检测技术、单片机最小系统、液晶显示模块电路、串口无线通信,以及声光信号的控制、电机的驱动电路。
通过keil C软件编程,不断调试,最终实现小车的无线控制,壁障等功能。
关键词:智能小车,单片机,无线控制,壁障目录一引言 (3)1.1国外智能车辆研究现状 (3)1.2单片机智能小车发张前景 (3)二主控系统及驱动系统 (5)2.1系统架构 (5)2.2主控芯片的选择 (5)2.3驱动系统设计分析 (6)2.3.1电机及驱动芯片的选择 (6)2.3.2电机驱动模块 (7)2.4小结 (8)三无线控制系统 (8)3.1无线模块设计 (8)3.2通讯模块设计 (9)3.2.1蓝牙模块 (9)3.2.2接受发送数据子程序 (10)四壁障系统 (11)4.1壁障模块 (11)4.1.1超声波模块 (11)4.1.2红外传感器 (12)4.1.3壁障实现过程 (12)五温度传感系统 (14)5.1温度传感器简介 (14)5.2读温度子程序 (15)六液晶显示系统 (17)6.1LCD1602液晶显示屏简介 (17)6.1.1LCD1602引脚说明 (17)6.2LCD1602操作 (18)6.3LCD1602显示子程序 (19)七小车速度控制系统分析与设计 (21)7.1车速控制原理 (21)7.2车速控制子程序 (21)八智能小车流程图 (1923)8.1流程图 (23)九调试与总结 (24)致谢 (25)参考文献 (26)附录 (267)一引言1.1国外智能车辆研究现状国外智能车辆的研究历史较长,始于上世纪50年代。
基于单片机的智能小车速度控制设计
3.速度控制简介速度控制主要是指对智能小车的行驶速度进行控制,使其能 够按照预定的速度行驶,或者根据外界环境变化做出相应的速度调整。速度控制 的好坏直接影响到智能小车的性能和安全性。
二、设计思路
1.关键问题基于单片机的智能小车速度控制设计主要面临两个关键问题:一 是如何获取小车的实时速度;二是如何根据获取的速度信息来调整小车的行驶速 度。
在硬件设计方面,本次演示选用了一种常见的单片机,即STM32F103C8T6。 该单片机具有处理速度快、集成度高、外设接口丰富等特点,能够满足智能物料 搬运小车的控制需求。同时,为了实现小车的自动识别、定位和抓取功能,还选 用了以下硬件设备:
1、传感器部分:采用红外传感器和光电编码器相结合的方式,实现小车对 物料和位置的识别与检测。
analogWrite(motorPin2, 60);
上述代码中,我们通过编码器读取小车的实时速度,并根据速度阈值来判断 小车的速度状态。根据不同的速度状态,我们通过调节PWM信号的占空比来控制 电机的转速,从而实现对小车速度的控制。
三、实验结果
我们在实验中使用了基于Arduino单片机的智能小车速度控制设计,并对其 进行了多项测试。实验结果表明,该设计能够有效地控制小车的行驶速度,并具 有较高的稳定性。下表为实验数据记录:表1实验数据记录表在实验过程中,我 们发现该设计的最大优点在于其简单易行且稳定性高。
四、系统测试与结论
在完成硬件和软件的设计后,对整个系统进行了测试。测试结果显示,基于 单片机控制的智能循迹小车系统能够有效地实现自主循迹和避障功能,具有较高 的稳定性和可靠性。通过本设计的实践,可以得出单片机在自动化控制中具有广 泛的应用前景和发展潜力。
引言
随着科技的快速发展,智能化成为当今社会的关键词。智能小车作为一种智 能化的代表,具有广泛的应用前景。本次演示旨在研究基于STM32单片机的智能 小车控制,通过软硬件结合的方式实现小车的速度、循迹和刹车等控制功能,提 高小车的稳定性和灵活性。
基于单片机STC89C52控制的智能小车
基于单片机STC89C52控制的智能小车摘要:该毕业设计是采用无线遥控基于单片机的功能实现的,当无线遥控器的某个按键按下时,无线发射器将按键信号以编码的形式在315MHz的频率上发射出去,无线接收器接收并放大发射信号同时解调出TTL电平信号送至单片机进行处理,单片机通过比较和识别接收来的无线遥控编码便可执行相应的遥控功能,从而实现智能小车的前进、后退、左转和右转的基本功能和伴随音乐演奏而闪烁的LED的开启与关闭的功能。
此外,我加入了温度传感器与时钟芯片,让它们在液晶显示器上显示其室温和时间,并用按钮进行时间的调控。
由于无线遥控模块是四路单向锁存模块,只能单线实现四个功能,所以发射模块的控制按键不够,根据需要,我仅仅用无线模块控制小车的前进和后退,停止,其它的采用按键调试,用按键来实现小车的前进/后退/左转/右转/音乐/时间调控等功能。
关键词:无线模块;液晶显示模块;电机驱动模块;音乐;智能小车目录引言................................................................3 1 整体方案设计....................................................4 1.1 整体方案设计的思路..............................................41.2 整体方案的流程图................................................42 避障遥控小车系统概况............................................4 2.1 SC2272无线遥控模块原理..........................................4 2.2 驱动原理的简介..................................................62.3 直流电机简介....................................................93 模块方案比较与论证.............................................12 3.1 车体设计.......................................................12 3.2 电机模块的选择.................................................12 3.3 电机驱动模块的选择.............................................123.4 控制器模块的选择...............................................134 系统硬件电路设计...............................................14 4.1 无线模块的设计.................................................144.2 直流电机的驱动模块.............................................155 软件的简单介绍.................................................16 5.1 KEIL的简介....................................................165.2 PROTUES的简介.................................................165.3 STC_ISP_V480的简介.............................................17 参考文献..........................................................18 附录一:实物图....................................................19 附录三:总程序.....................................................22引言随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人玩具制造领域,使智能机器人越来越多样化。
基于STC单片机的智能语音控制小车
基于 STC 单片机的智能语音控制小车一、实验目的1.随着科技的进步和社会的发展, 汽车技术的发展越来越智能化。
本次接口实验 设计就是基于简单智能化的基础上, 采用LD3320 语音单元和 STC 单片机和L298N 机电驱动, 开辟出基于语音无线控制与智能避障的小车, 实现非特定人声语音控 制小车, 以及小车超声波自动避障行驶的功能, 同时液晶显示出超声波前方障碍 物的距离。
2.掌握用 Altium Designer10 软件绘制原理图和 PCB 电路,以及电路板的制作 过程(包括转印、腐蚀,焊接,下载与调试),熟练 Keil uVision4 环境以及单 片机 C 代码的编写、 调试和 hex 文件的生成并下载到单片机芯片内, 掌握软硬联 调技巧与方法。
3.掌握 基于 LD3320 的语音单元的编程、语音处理及与单片机间的通信。
二、系统总体方案本次设计的小车采用 STC89C52 单片机作为主控芯片, 通过 LD3320 语音单元 接单片机控制小车行驶状态(包括前进、后退、左转、右转及停车);小车行驶 过程中遇到障碍物, 如果没有接收到语音信号而超声波检测模块检测周围障碍物 小于安全距离 40cm ,小车自动转向, 距离通过 LCD1602 液晶显示出来; 采用 L298 作为机电驱动芯片驱动小车行驶。
系统总体框图如图 2.1:图 2.1 系统总体框图LCD1602 液晶显示STC89C52 单片机7805 稳压电路18650 锂电池电源HC-SR04 超声波模块L298N 机电驱动直流减 速机电降压模块扬声器LD3320 语音单元三、硬件设计3.1 主控系统本次设计采用 STC89C52 单片机作为控制芯片, STC89C52RC 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 字节系统可编程 Flash 存储器。
单片机系统电路图 2:图 3.1 单片机最小系统原理图复位电路:手动复位,按下复位按钮,复位脚得到 VCC 的高电平,单片机复位,按钮松开后,单片机开始工作。
51单片机智能小车PWM调速前进程序源代码、电路原理图和器件表
51单片机智能小车PWM调速前进程序源代码、电路原理图、电路器件表从控制电路角度划分,智能小车电路板分为核心板和驱动板。
核心板上的处理器的芯片型号是:STC15W4K56S4,这是一款51单片机。
驱动板上有电源电路、电机驱动电路以及一些功能模块接口。
智能小车前进只要控制智能小车四个轮子向前转动就可以了。
智能小车四个轮子由四个直流减速电机驱动。
直流减速电机驱动芯片采用L293D,一片电机驱动芯片L293D可以驱动两个直流减速电机,智能小车用到4个直流减速电机,需要用到两片L293D电机驱动芯片。
但有时候我们需要控制智能小车的速度,不希望智能小车全速前进。
比如在“智能小车循迹实验”中,如果智能小车速度过快,来不及反应做出方向的调整,智能小车会很容易跑离轨迹,这样就需要调整控制智能小车的速度了。
那么怎么样实现智能小车前进速度的调节呢?调节智能小车的速度,实际上是调节电机的运转速度,PWM调速是目前电机的主流调速方式。
智能小车采用脉宽调制(PWM)的办法来控制电机的转速,从而控制智能小车的速度。
在此种情况下,电池电源并非连续地向直流电机供电,而是在一个特定的频率下为直流电机提供电能。
不同占空比的方波信号,调节对直流电机的通断电,能起到对直流电机调速作用。
这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上。
这样,改变L293D使能端EN1和EN2上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了直流电机转速。
智能小车PWM调速前进程序如下:首先,定义了2个变量,这2个变量用于设置智能小车的速度。
unsigned char pwmval_left_init=6; //调节此值可以调节小车的速度。
unsigned char pwmval_right_init=6; //调节此值可以调节小车的速度。
通过以下函数初始化定时器0,每1毫秒中断一次。
void Timer0_Init(void) //定时器0初始化{TMOD=0x01;TH0=0xf8;TL0=0xcd;TR0=1;ET0=1;EA=1;}下面我们看定时器0的中断处理函数。
单片机智能小车
应用场景和扩展功能
4.6 教育和科研
智能小车还是教育和科研领域的重要工具。通过学习和研究51单片机智能小车的编程 和控制技术,学生和研究者可以深入了解嵌入式系统、智能控制等领域的原理和应用 。此外,智能小车还可以用于各种科研项目,例如机器人视觉、自动导航等
5 ห้องสมุดไป่ตู้论
结论
51单片机智能小 车是一种功能强 大、应用广泛的
通过编程和控制,小 车可以实现各种复杂 的运动和功能,包括 无人驾驶、机器人探
此外,小车还可 以扩展出人机交 互、娱乐和游戏
自动化系统
索、自动化运输等
等应用场景
在教育和科研领
随着技术的不
域,智能小车也
断发展,智能
是一种重要的学 习和研究工具
小车的应用前 景将更加广阔
结论
6. 参考和进一步阅读
为了进一步了解51单片机智能小车的编程和控制技术,可以参考以下资料
编程和控制
编程和控制
3.2 控制算法
控制算法是实现智能小车运动的关键,它可以根据传感器的输入和预设的算法来控制电机 的运动。常见的控制算法包括PID控制、模糊控制等
3.3 无线通信 协议
无线通信协议用于定 义智能小车与其他设 备之间的通信规范, 包括数据传输格式、 速率、校验等。根据 不同的应用需求,可 以选择不同的无线通 信协议
结论
结论
Arduino智能小车教程:Arduino是一种流行的开源微控制器板,它与51单片机在编程和控制方面有很
1 多相似之处。通过学习Arduino智能小车的编程和控制方法,可以更好地理解51单片机智能小车的原理
和应用
2
STC89C5xRC系列单片机原理与实践:这是一本关于STC89C5xRC系列单片机的教材,其中详细介绍了51 单片机的原理、应用和编程方法
单片机智能小车程序及解释
left1=1;
left2=0;
}
if(leftout1&&leftout2&&rightout1&&rightout2&&midout)//如果都为黑线则小车停止
{
right1=1;//1停止
right2=1;
left1=1;//2停止
left2=1;
}
if((midout||leftout1||leftout2||rightout1||rightout2)==0) //倒车程序,都为白色则倒车
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//***************************位定义*********************//
sbit left1=P0^0;//IN1小车左轮向前后控制
sbit leftout2=P2^5;//s2左边传感器2位控制
sbit midout=P2^1;//s3中间传感器控制
sbit rightout1 =P2^2;//s4右边传感器1位控制
sbit rightout2=P2^3;//s5右边传感器2位控制
unsigned char highr,highl;//定义高电平时间
left1=1;//左轮停止
left2=1;
}
if((leftout2==1)&&(midout==1))//左端传感器2检测到黑线
{
highr=25;
highl=25;
right1=1;//右轮行走
基于51单片机智能小车循迹程序
#include <reg51.h>#include <stdio.h>#define uint unsigned int#define uchar unsigned char/**********************************/uchar led_data[9]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80}; uchar turn_count=0;bit end=0; //圈数跑完标志/*********************************/sbit xg0=P1^0; //左寻轨对管sbit xg1=P1^1; //中间寻轨对管sbit xg2=P1^2; //右寻轨对管sbit xz=P1^3; //感应挡板对管/*********************************/sbit Q_IN1=P2^0; //车前左轮控制sbit Q_IN2=P2^1;sbit Q_IN3=P2^2; //车前右轮控制sbit Q_IN4=P2^3;sbit H_IN1=P2^4; //车尾左轮控制sbit H_IN2=P2^5;sbit H_IN3=P2^6; //车尾右轮控制sbit H_IN4=P2^7;sbit Q_ENA=P3^0; //车前左轮使能,PWMsbit Q_ENB=P3^1; //车前右轮使能,sbit H_ENA=P3^6; //车尾左轮使能,sbit H_ENB=P3^7; //车尾右轮使能,/****************************************/#define stra_q_l 100 //直线行走时,四个轮子占空比调试#define stra_q_r 100#define stra_h_l 100#define stra_h_r 100#define turn_q_l 100 //转弯时四个轮子的占空比调试#define turn_q_r 100#define turn_h_l 100#define turn_h_r 100#define turnr_time 2900//右转弯时的延时常数#define turnl_time 3000 //左转弯时的延时常数#define dt_time 5800 //原地掉头时延时常数#define over_time 1000 //停止延时#define back_time 2500 //走完环形,回到直道延时转弯#define black_time 1500 //过黑线的时间#define correct_l_time 700 //左矫正时间#define correct_r_time 700 //右矫正时间#define hou_time 200/***************************************/uchar q_duty_l,q_duty_r,h_duty_l,h_duty_r,//车前后左右轮占空比i=0,j=0,k=0,m=0;/**************************************/void delay_cir(uint n){uchar x;while(n--){for(x=0; x<250;x++);};}/***********************************/void delay(uint ct) // 延时函数{uint t;t=ct;while(t--);}/***************************************/ void straight() //直走{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=1;Q_IN2=0;Q_IN3=1;Q_IN4=0;H_IN1=1;H_IN2=0;H_IN3=1;H_IN4=0;}/***************************************/ void houtui() //后退{q_duty_l=stra_q_l;q_duty_r=stra_q_r;h_duty_l=stra_h_l;h_duty_r=stra_h_r;Q_IN1=0;Q_IN2=1;Q_IN3=0;Q_IN4=1;H_IN1=0;H_IN2=1;H_IN3=0;H_IN4=1;}/***************************************/ void turn_left() //左转{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(turnl_time);}/***********************************/ void turn_right() //右转{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_q_l;h_duty_r=turn_q_r;Q_IN1=1; //左轮正转Q_IN2=0;H_IN1=1;H_IN2=0;Q_IN3=0; //右轮反转Q_IN4=1;H_IN3=0;delay(turnr_time);}/**************************************************/ void turn_round() //原地掉头{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;H_IN2=1;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(dt_time);}/******************************************************/void over() //小车停止{Q_IN1=0;Q_IN2=0;Q_IN3=0;Q_IN4=0;H_IN1=0;H_IN2=0;H_IN3=0;H_IN4=0;}/*****************************************************/ void correct_right() //左偏,向右矫正{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_q_l;h_duty_r=turn_q_r;Q_IN1=1; //左轮正转Q_IN2=0;H_IN1=1;H_IN2=0;Q_IN3=0; //右轮反转Q_IN4=1;H_IN3=0;H_IN4=1;delay(correct_r_time);}void correct_left() //右偏,向左矫正{q_duty_l=turn_q_l;q_duty_r=turn_q_r;h_duty_l=turn_h_l;h_duty_r=turn_h_r;Q_IN1=0; //左轮反转Q_IN2=1;H_IN1=0;H_IN2=1;Q_IN3=1; //右轮正转Q_IN4=0;H_IN3=1;H_IN4=0;delay(correct_l_time);}/*************************************/ void xunji(){if(xg1==1){turn_count++;over();delay(over_time);if(turn_count==1){straight();delay(black_time);}elseif(turn_count==2){houtui();delay(hou_time);turn_left();}elseif(turn_count==3) {houtui();delay(hou_time); turn_right();}elseif(turn_count==4) {houtui();delay(hou_time); turn_right();}elseif(turn_count==5) {straight();delay(black_time); }elseif(turn_count==6) {houtui();delay(hou_time); turn_right();}elseif(turn_count==7) {houtui();delay(hou_time); turn_right(); straight();delay(back_time); turn_left();}elseif(turn_count==8) {straight();delay(black_time); }elseif(turn_count==9) {houtui();delay(100);turn_round();}if(turn_count>=9){turn_count=0;cir_count++;circle--;}{end=1;over();delay(500);}}elseif((xg0==0)&&(xg1==0)&&(xg2==0)) {straight();}elseif((xg0==1)&&(xg1==0)&&(xg2==0)) {over();delay(over_time);houtui();delay(hou_time);correct_right();}//左偏,向右矫正elseif((xg0==0)&&(xg1==0)&&(xg2==1)){over();delay(over_time);houtui();delay(hou_time);correct_left();} //右偏,向左矫正}/***********************************************/ void int0(void) interrupt 0 //中断圈数设定{EX0=0;delay_cir(250);circle++;if(circle>8){circle=0;}P0=led_data[circle];EX0=1;}/*************************************/void time1(void) interrupt 3 //T1溢出中断,电机调速{i++;j++;k++;m++;if(i<q_duty_l)Q_ENA=1;else Q_ENA=0;if(i>100){Q_ENA=1;i=0;}if(j<q_duty_r)Q_ENB=1;else Q_ENB=0;if(j>100 ){Q_ENB=1;j=0;}if(k<h_duty_l)H_ENA=1;else H_ENA=0;if(k>100){H_ENA=1;k=0;}if(m<h_duty_r)H_ENB=1;else H_ENB=0;if(m>100){H_ENB=1;m=0;}P0=led_data[circle];TH1=0XFF;TL1=0XF6;}/*************************************/ void main(){P0=led_data[circle];P1=0xFF;P1=0XFF; //P1口做输入P2=0X00; //P2口初始化,小车禁止P3=0XFF;TMOD=0X11;//T0,T1,工作方式1TH1=0XFF; //T1中断一次10USTL1=0XF6;TR1=1;EX0=1;ET1=1;EA=1;while(1){while((xz==1)&&(end!=1)) //无挡板,扫描对管,前进{xunji();};};}。
单片机中的智能车辆控制系统
单片机中的智能车辆控制系统智能车辆控制系统作为一种先进的技术,被广泛应用于现代交通工具。
其中,单片机在智能车辆控制系统中扮演着至关重要的角色。
本文将介绍单片机中的智能车辆控制系统,并对其工作原理、应用以及未来发展进行探讨。
一、智能车辆控制系统概述智能车辆控制系统是指利用先进的技术和算法,通过对车辆进行实时监测和控制,提高车辆的安全性、舒适性和能源利用效率。
单片机在该系统中起到控制中枢的作用,负责接收和处理各种传感器、执行器和控制算法产生的数据,实现对车辆各个方面的精准控制。
二、单片机在智能车辆控制系统中的工作原理智能车辆控制系统通常由传感器、执行器、控制算法和单片机等组成。
单片机通过与传感器的连接,实时接收车辆行驶过程中的各种数据,如速度、方向、倾斜角度等。
同时,它还通过执行器控制车辆的行驶方向、速度和刹车等操作。
三、智能车辆控制系统的应用领域智能车辆控制系统广泛应用于汽车、无人驾驶、物流运输等领域。
在汽车领域,智能车辆控制系统可以通过实时监测车辆状况,提供驾驶员驾驶建议、预警系统和自动驾驶功能,提高行驶安全性和驾驶体验。
在无人驾驶领域,智能车辆控制系统可以通过算法和传感器实时感知周围环境,实现车辆的自主导航和避障功能。
在物流运输领域,智能车辆控制系统可以实现货物追踪、供应链管理和交通调度等功能,提高物流运输的效率。
四、单片机在智能车辆控制系统中的优势相比于其他控制系统,单片机在智能车辆控制系统中具有以下优势:首先,单片机采用集成电路技术,体积小、功耗低,可实现高精度控制。
其次,单片机具有快速的运算速度和高度可编程性,使得控制算法的实时性更好,能够满足对车辆状态的及时响应。
此外,单片机还能够通过串口和其他设备进行通讯,实现与外部设备的数据交换和共享。
五、单片机智能车辆控制系统的未来发展趋势随着科技的不断进步,智能车辆控制系统在安全性、可靠性和智能化程度上都有着更高的要求。
未来,单片机智能车辆控制系统将更加注重对环境的感知和对驾驶行为的学习。
51单片机智能小车
51单片机智能小车51单片机智能小车一、介绍本文档是关于使用51单片机制作智能小车的详细指南。
智能小车是一种能够自主感知周围环境并做出相应行动的。
通过学习本文档,您将了解到如何使用51单片机搭建一个具有基本功能的智能小车。
二、硬件准备1、51单片机开发板2、电机驱动模块3、电源模块4、超声波传感器5、电机6、小车底盘三、电路搭建1、将51单片机开发板和电机驱动模块连接起来,确保电机正常工作。
2、将超声波传感器连接到51单片机开发板上。
3、将电源模块连接到开发板和电机驱动模块上,确保电源供应稳定。
四、程序设计1、编写51单片机的C语言程序,实现小车的基本功能,例如前进、后退、左转、右转等。
2、利用超声波传感器进行障碍物检测,并在检测到障碍物时进行相应的避障行动。
3、可以根据需要添加其他功能,例如跟随线路行驶、遥控操作等。
五、调试与测试1、使用烧录器将程序烧录到51单片机开发板中。
2、将电机驱动模块和超声波传感器连接到开发板后,进行电路的连通测试。
3、使用遥控器或其他方式控制小车的运动,观察小车是否根据预期进行动作。
4、进行避障测试,将障碍物放在小车前方,观察小车是否能够正确避开障碍物。
附件:1、51单片机开发板连接图2、电机驱动模块接线图3、超声波传感器接线图法律名词及注释:1、版权:指著作权法所保护的有关著作权人对其创作作品享有的复制、发表、展览、上演、放映、广播、信息网络传播、出版等权利。
2、专利:指在法律规定的范围内以注册的形式保护发明创造的独占权。
3、商标:指为了区别商品来源而使用,具有识别性、区分性和专用性的标志。
4、法律责任:指根据法律规定,个人或者单位在违反法律规范时应承担的法律后果。
单片机智能小车的电路和程序以及元件
采用由双极性管组成的 H 桥电路。用单片机控制晶体管使之工作在占空比可调的开 关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高; H 桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很 高,是一种广泛采用的调速技术。
3 程序框图………………………………………………………………………………7 4 系统的具体设计与实现………………………………………………………………9
4.1 路面检测模块……………………………………………………………………9 4.2 LCD 显示模块………………………………………………………………………9 4.3 测速模块…………………………………………………………………………9 4.4 控速模块…………………………………………………………………………9 4.5 复位电路模块……………………………………………………………………9 4.6 模式选择模块……………………………………………………………………9 5 最小系统图……………………………………………………………………………10 6 最终 PCB 板图…………………………………………………………………………12
本文由惜忆泪情整理
4.系统的具体设计与实现:
4.1 路面检测模块: 应用一个金属感应器,安装在车盘下,离地略小于或约四毫米。当金属传感器检测
到铁片时将对单片机发送中断信号,单片机运行中断,改变输给电机驱动信号的电压占 空比来控制小车的速度。 4.2 LCD 显示模块:
采用 1602LCD,由单片机的总线模式连接。为节约电源,LCD 的背光用单片机进行控 制。 4.3 测速模块:
基于STC89C51单片机智能小车控制
基于STC89C51单片机智能小车控制项目名称:基于单片机STC89C51智能小车控制小组成员:xx班级:xx指导教师:xx开发结束时间:2011年7月10日星期日目录1.1 项目概述 (3)1.2 项目要求 (3)1.3 系统设计 (3) (3) (4)1.4 硬件设计 (4) (4)1.4.2 原件清单 (6)1.4.3 L293D驱动单片机的原理简介 (7)1.4.4 STC89C51单片机管脚图及其功能 (7)1.5 软件设计 (9)1.5.1 程序流程图 (9)1.5.2 L293D驱动器管脚赋值表 (10)1.5.3 程序清单 (10)1.6 软件仿真及硬件调试 (21)1.6.2 硬件调试 (21)1.6.1 软件仿真 (22)1.7 总结 (23)1.8 文献参考 (23)1.1 项目概述随着单片机技术的不断发展和完善已经大量的运用在工业的控制、数据的采集、智能化仪表、机电一体化、家用电器等领域,极大地提高了这些领域的技术水平和自动化控制水平。
为此我们基于STC89C51这款单片机进行智能小车开发。
1.2 项目要求基于STC89C51单片机智能小车的设计要求如下:·实现智能小车上电自动寻迹。
·实现智能小车向前行驶时避障及其避悬。
·实现智能小车红外遥控控制小车左右转弯前后行驶。
1.3 系统设计智能小车的控制主要是控制小车车轮的转向,以STC89C51单片机为核心芯片,通过控制小车车轮的电路,控制其一个轮和两个轮的正转和反转。
而红外遥控控制是通过红外发送端和接收端来驱动电机的控制。
根据设计的要求,制定总体设计思想如下:(1)小车的正转:两个电机按同一个方向转动。
(2)小车的反转:两个电机按同一个方向反向转动。
(3)小车的左转和右转:一个电机快速转动而另一个电机缓慢的转动。
基于STC89C51单片机智能小车的控制系统由电源电路、单片机主控电路、复位电路、晶振电路、车轮转轴驱动电路、按键电路等组成,框图组成如图1-1所示。
51单片机控制智能小车解析
单片机项目报告班级:自动化21091姓名:邸维汉刘会丽石钱坤学号:102010330420101032152010103122 智能小车控制目录一、前言二、方案设计与论证1)控制器模块选取2)电机模块选取3)电机驱动器模块选取4)电源模块选取三、硬件设计1)主控系统2)电机模块3)电机驱动模块4)电源模块5)按键模块四、软件设计1)直行设计2)转弯设计3)调速设计五、调试中存在的问题六、参考文献一、前言:随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。
可见其研究意义很大。
本设计就是在这样的背景下提出的,指导教师已经有充分的准备。
本题目是结合科研项目而确定的设计类课题。
我们设计的智能电动小车该具有圆形运行、三角形运行、矩形运行和三者一起运行的功能。
都是运行一循环自动停车。
根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
本设计采用STC89C52单片机。
以STC89C52为控制核心,利用按键的动作,控制电动小汽车的轨迹。
实现四种运行轨迹。
STC89C52是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。
二、方案设计与论证1)控制器模块选取我们采用STC公司的STC89S52单片机作为主控制器,STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它在5V供电情况下,最多支持80M晶振、且内部有512B的RAM数据存储器、片内含8k空间的可反复擦些1000次的Flash只读存储器、1K的EEPROM、8个中断源、4个优先级、3个定时器、32个IO口、片机自带看门狗、双数据指针等。
单片机智能小车操作使用手册
单一、片机智能小车操作使用手册单片机智能小车操作使用手册 (1)一、单片机智能小车开发板介绍 (1)二、开发板JP1插针说明 (4)三、小车组装说明 (4)四、光电开关安装说明 (10)五、实验指导 (15)实验1——电池电压检测程序 (15)实验2——模拟PWM控制小车速度程序 (16)实验3——用定时中断控制小车速度程序 (16)实验4——话筒控制小车起停程序 (17)实验5——光控小车程序 (17)实验6——红外遥控数码管显示程序 (18)实验7——红外遥控LCD显示程序 (18)实验8——数码管温度显示程序 (20)实验9——LCD温度显示程序 (20)实验10——避障小车程序 (21)实验11——小车循迹程序 (22)实验12——小车里程计算程序 (22)实验13——无线控制小车程序 (23)实验14——具有语音功能的小车程序 (25)智能小车的设计与开发涉及控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科。
开展自主智能小车的学习与研究工作,对促进控制及电子水平的提高,具有良好推动作用。
单片机智能小车开发板介绍顶顶电子设计的这款简易智能小车,采用STC89C51/52单片机作为小车的检测和控制核心;采用光电开关、声控传感器、光敏传感器、温度传感器、红外接收器等来检测和感应各种外界情况,从而把反馈到的信号送单片机,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶;智能小车既可以采用LED数码管来显示有关信息,也可以采用1602LCD 实时显示小车行驶的距离。
智能小车结构简单,电路功能齐全,具有高度的智能化、人性化,是学习和开发机器人的基础开发板。
机器小车主要由底盘(含2个带电机的驱动轮、2个从动轮,底板)、电路板和6节5号电池盒三部分组成,其正面和底面外形如图所示:下图是51单片机智能小车的电路组成框图:下图是智能小车中主要元件在小车中的位置实物图:二、三、开发板JP1插针说明开发板上设有JP1插针,用来对显示器进行转换,当JP1中的VCC、DS短接时,数码管接入电路中,当VCC、LCD短接时,LCD接入电路中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
METAL_ALARM BIT P1.4
ORG 00H
JMP START
START: MOV P2,#00H
SETB LTURN
SETB RTURN
LOOP: JNB BEGAIN,FOR2 ;;;;;;;;按钮按了没
JMP LOOP
MOVC A,@A+DPTR
JZ FOR33
CPL A
MOV P2,A
CALL CHECK1 ; ; ; ; ;
INC R0
JMP FOR4
CHECK1:MOV R4,#07H
JB LLLEFT,FOR3
JB RRRIGHT,FOR3
CALL DELAY1
INC R0 ,#00H ;;;;;;;加速
FOR4: MOV A,R0
MOV DPTR,#TABLE
RET
STOP: ORL P2,#0FFH
RET
DELAY1:MOV R7,#10 ;;; 减速延时
D1: MOV R6,#248
DJNZ R6,$
DJNZ R7,D1
RET
DELAY2:MOV R1,#10 ; 加速延时
FOR2: CALL DELAY1
JNB BEGAIN,$
CALL DELAY1
JMP FOR
FOR: MOV R0,#00H ;;;;;;;;开始的速度
FOR1: MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ FOR
CPL A
MOV P2,A
JB MIDDLE,FOR3
JB RIGHT,FOR3 ;;;;;检测到直线 后加速
JB LEFT,FOR3
JB RRIGHT,FOR3
JB LLEFT,FOR3
D3: MOV R6,#20
D4: MOV R7,#248
DJNZ R7,$
DJNZ R6,D4
DJNZ R5,D3
RET
TABLE:DB 0cH,09H,03H,06H
DB 00H
DB 0cH,06H,03H,09H
D2: MOV R2,#230
DJNZ R2,$
DJNZ R1,D2
RET
DELAY3:MOV R1,#05
D22: CALL DELAY4
DJNZ R1,D22
RET
DELAY4:MOV R5,#100
A1: SETB LTURN
SETB RTURN
CALL DELAY2 ;;;;直线还是加速
RET
A2: SETB LTURN ;;;;转弯减速
CLR RTURN
CALL DELAY1
RET
MOV R5,#03H
MOV A,P2
CONTINUE: RLC A
JC CHECK2
CHECK2: DJNZ R5, CHECK3
CALL STOP
JMP $
CHECK3:DJNZ R4,CONTINUE
JB MIDDLE,A1
JB LEFT,A2
JB RIGHT,A3
JB LLEFT,A2
JB RRIGHT,A3
JB LLLEFT,A2
JB RRRIGHT,A3
JB MATEL1,STOP5S ;检测到金属停5秒
JB MATEL2,STOP5S
JB MATEL3,STOP5S
CALL DELAY1
SETB LTURN
SETB RTURN
CALL STOP
JMP $
;CALL DELAY3 ;;;黑线尽头,停5秒
LTURN BIT P1.6 ;右转
BEGAIN BIT P1.0 ;开始的按键
MIDDLE BIT P2.3 ;中间探测器
LEFT BIT P2.2 ;左边探测器
RIGHT BIT P2.4 ;右边探测器
LLEFT BIT P2.1
A3: CLR LTURN ;;;;转弯减速
SETB RTURN
CALL DELAY1
RET
STOP5S:ORL P2,#0FFH
CLR METAL_ALARM
CALL DELAY3
SETB METAL_ALARM
RRIGHT BIT P2.5
LLLEFT BIT P2.6 ;最左边探测器
RRRIGHT BIT P2.0 ;最右边探测器
MATEL1 BIT P1.1 ;金属探测1
MATEL2 BIT P1.2 ;金属探测2
MATEL3 BIT P1.3 ;金属探测3
DB 00H
END
;-----------------------------------------------------------
;程序说明:
;
;
;
;-------------------------------------------------------------
RTURN BIT P1.5 ;左转