基于51单片机的循迹小车系统设计说明
基于51单片机智能小车循迹程序
![基于51单片机智能小车循迹程序](https://img.taocdn.com/s3/m/9f6290959b89680202d82568.png)
#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();};};}。
基于89c51单片机的循迹小车设计报告
![基于89c51单片机的循迹小车设计报告](https://img.taocdn.com/s3/m/b5ae5feab8f67c1cfad6b842.png)
基于89c51单片机的循迹小车设计报告摘要本文介绍了基于at89c51单片机的智能小车的设计与实现。
小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。
小车系统以AT89c51 单片机为系统控制处理器;采用红外对管获取赛道的信息;通过数字PID控制策略和PWM控制技术来对小车的方向和速度进行控制。
本文介绍了小车硬件和软件系统的设计过程。
目录摘要 (2)第一章引言 (2)1.1设计目的 (2)1.2设计方案介绍 (2)1.3技术报告内容安排 (2)第二章技术方案概要说明 (3)第三章硬件电路的设计 (4)3.1单片机最小系统 (4)3.2传感器电路 (4)3.3电源电路设计 (5)3.4舵机及电机驱动电路设计 (5)第四章软件系统的实现 (6)4.1主程序设计 (6)4.2程序思路 (6)第五章结论 (7)附录:源程序主代码 (8)第一章引言1.1 设计目的通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。
进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。
1.2 设计方案介绍该智能车采用红外对管方案进行道路检测,单片机根据采集到的红外对管的不同状态判断小车当前状态,通过pid控制发出控制命令,控制舵机和电机的工作状态以实现对小车姿态的控制。
1.3 技术报告内容安排本技术报告主要分为三个部分。
第一部分是对整个系统实现方法的一个概要说明,主要内容是对整个技术方案的概述;第二部分是对硬件电路设计的说明,主要介绍系统传感器的设计及其他硬件电路的设计原理等;第三部分是对系统软件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说明及代码设计介绍等。
第二章技术方案概要说明本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块、舵机控制模块。
在整个系统中,由电源管理模块实现对其他各模块的电源管理。
基于51单片机循迹避障太阳能小车软硬件设计原理
![基于51单片机循迹避障太阳能小车软硬件设计原理](https://img.taocdn.com/s3/m/4816a99459f5f61fb7360b4c2e3f5727a4e9241e.png)
基于51单片机循迹避障太阳能小车软硬件设计原理下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一、引言一款基于51单片机的循迹避障太阳能小车是一种集成了光电传感器、红外传感器、电机驱动器等各种器件的智能小车。
基于51单片机的循迹避障小车的设计
![基于51单片机的循迹避障小车的设计](https://img.taocdn.com/s3/m/c173d7647fd5360cba1adbed.png)
清华大学本科生毕业论文题目: 基于51单片机的循迹避障小车的设计专业班级:电子信息工程2012级02班学号:学生姓名:指导教师:论文完成日期: 年月郑重声明本人的毕业论文是在指导老师的指导下独立撰写并完成的。
毕业论文没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为,如果有此现象发生,本人愿意承担由此产生的各种后果,直至法律责任;并可通过网络接受公众的查询。
特此郑重声明。
毕业论文作者(签名):年月日目录1 绪论 (3)1.1 课题研究的背景 (3)1.2 课题研究的意义 (5)1.3 课题研究的主要内容 (6)2 系统方案确定及主要元件的选择 (7)2.1 系统方案确定 (7)2.2 主要模块的选择 (7)3 系统硬件部分设计 (11)3.1 主控器AT89C51 (11)3.2 复位电路 (13)3.3 时钟电路 (13)3.4 寻迹模块 (14)3.5 避障模块 (15)3.6 H桥电机驱动 (16)3.7 电源模块 (17)4 系统软件部分设计 (19)4.1 系统使用的软件简介 (19)4.2 软件调试平台 (19)4.3 系统程序流程设计 (21)5 系统仿真实现 (26)6 调试结果分析 (27)结束语 (28)附录 (29)附录1 元件清单 (29)附录2 程序代码 (29)参考文献 (33)致谢 (34)基于51单片机的循迹避障小车的设计专业:电子信息工程班级:**班作者:*** 指导老师:***摘要智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
本设计通过实时检测各个模块传感器的输入信号,利用红外对管检测黑线实现寻迹,通过光电传感器实现避障,采用存储空间较大的AT89C51作为主控制芯片,小车电机驱动采用L298N芯片,根据内置的程序分别控制小车左右两个直流电机运转,实现小车自动识别路线,能较有效的控制其在碰上障碍物时能转弯角度及寻迹行驶。
基于51单片机的自动寻迹小车控制设计
![基于51单片机的自动寻迹小车控制设计](https://img.taocdn.com/s3/m/4044f65bbe23482fb4da4c98.png)
基于51单片机四路循迹小车
![基于51单片机四路循迹小车](https://img.taocdn.com/s3/m/3c1c60e879563c1ec4da718f.png)
基于51单片机四路循迹小车[导读]这学期开设的51单片机课程的课程设计即将验收,今天开始正式着手做循迹小车~这学期开设的51单片机课程的课程设计即将验收,今天开始正式着手做循迹小车~一. 任务要求二. 系统原理本系统以设计题目的要求为目的,采用STC89C52单片机为控制核心,利用红外传感器检测轨道,控制电动小汽车的自动循迹,快慢速行驶。
这里的轨道是指汽车沿着白色地板上的黑线行驶。
由于黑线与白地板的反射系数不同,可以根据接收到的反射光的强度来判断“道路”。
常用的方法是红外检测。
红外检测方法,即在汽车行驶过程中,利用红外光在具有不同颜色的物体表面的不同反射特性,不断向地面发射红外光。
当红外光与白纸地板相遇时,会发生漫反射,反射光被安装在车内的接收器接收,如果遇到黑线,就会变成红色。
外部光被吸收,车内的接收器不能接收红外线。
单片机根据是否接收到反射的红外光来确定黑线的位置和汽车的行驶路线。
三. 整体方案1. 控制模块小车的核心控制部件采用STC公司生产的8位单片机STC89C52。
它是一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。
STC89C52有3个16 位定时器/计数器,2个外部中断,1个串口中断。
最小系统51单片机的具体引脚功能不细说,不了解的可自行百度。
直接上最小系统电路图(自己画的,凑合着看)。
顺便说一句,在我看来一个没有指示灯的电路是最烦的电路<(`^´)> 我的复位一定要有灯才行!三部分:①电源电路:给单片机提供5V的电源②时钟电路:外接11.0592M石英晶振。
③复位电路:确保单片机是从一个确定的初始状态开始。
焊接时注意P0口要接上拉电阻,否则不能用,一般都用排阻做上拉电阻(当然如果能自己画板子就更好了)。
去除AD网格线记一下怎么去除AD网格线,如图步骤,最后去掉Visible前面的对勾即可,别忘记最后点OK:2. 电机驱动模块我使用的是最经典的LM298N电机驱动:我太喜欢用298了。
基于51单片机的寻迹小车设计报告
![基于51单片机的寻迹小车设计报告](https://img.taocdn.com/s3/m/97d5b88383d049649b6658cf.png)
寻迹小车摘要:以C8051F单片机作为微空机器,设计出一种寻迹小车,通过红外传感器检测黑带信号,利用单片机输出PWM脉冲控制两组直流电机正反转和转动的速度,使小车沿着还带行走。
关键词:寻迹,检测,传出信号。
1.方案论证与选择1.1电机驱动芯片的选择方案一:采用内部集成H桥式芯片L298驱动电路。
方案二:采用分立元件的H桥驱动电路。
由于采用内部集成H桥式芯片每一组PWM波用来控制一个电机的速度,而另外两个I/O口可以控制电机的正反转,控制比较简单,电路也很简单,一个芯片内包含有8个功率管,这样简化了电路的复杂性,所以采用方案一。
1.2传感器的选择方案一:采用发光二极管发光,用光敏二极管接收。
当发光二极管发出的可见光照射到黑带时,光线被黑带接收,光敏二极管检测到信号,呈现高阻抗,使输出端为低电平。
当发光二极管发出的可见光照射到地面时,它发出的可见光反射回来被光敏二极管检测到时,起阻抗迅速降低,此时输出端为高电平。
但是由于光敏二极管受环境中可见光影响较大,电路中的电压不太稳定。
方案二:利用红线发射管发射红线,红外线二极管进行接收。
采用四组红外光敏耦合三极管发射和接收红外信号,外面课见光对接收的信号影响较小。
接收的红外信号转化为电压信号经过LM393进行比较,产生高电平或低电平输出,信号返回给C8051F单片机.方案三:采用光敏电阻接收可见光检测。
四组光敏电阻用于检测可见光信号。
当光敏电阻检测到黑带时,输出端为低电平,当光敏电阻没有检测到黑带时,输出端为高电平,信号返回给单片机,通过单片机控制电机的转向。
光敏电阻易受环境的影响,电压稳定性较差。
综上比较,本设计才用方案二。
2.硬件设计2.1元器件明细表:(1) C8051单片机×1(2) 298带散热片×1(3) 7805带散热片×2(4) TCR5000 ×8(5) LM393 ×4(6)定位器×9(7) 1602显示屏×1(8)开关×1(9)电容:470uF ×110uf ×2104 ×4(9)电阻:EN4007 ×8150Ω×125.1K ×8200Ω×1(10)发光二极管×11(11)三极管×1(12)蜂鸣器×1(13)其他:导线,排线,排针,杜邦头,杜邦针2.2单元电路设计:2.11单片机最小系统电路2.12驱动电路2.13寻迹电路2.14电源电路2.15显示屏电路2.16蜂鸣器电路2.17指示灯电路VDD +5150VSS3、软件设计主控芯片为C8051F120,编程由C语言实现,程序流程如下:4.系统测试4.1单元电路的检测:4.11驱动电路的检测5V、12V、接地分别接好,使能1使能2接口接5V,A口接5V,B口接地,C口接5V,D口接地,然后用万用电表测01和02,03和04的输出电压是否为12V(可有小偏差),然后交换A,B接口,测01和02,03和04的输出电压是否反向,最后断开使能1和使能2接口,测01和02,03和04的输出电压是否为0V.4.12寻迹电路的检测先把电路接通,用照相机观察TCRT5000是否发光,再把万用表调到20V档位,正接线柱接输出,负接线柱接负极,看电压表示数是否5V(可有小偏差),用白纸挡上四个TCRT5000后,看电压是否有明显变化,最好低电压为1V以下。
51循迹小车程序实验报告
![51循迹小车程序实验报告](https://img.taocdn.com/s3/m/cdfe4d83c77da26925c5b070.png)
竭诚为您提供优质文档/双击可除51循迹小车程序实验报告篇一:智能循迹小车实验报告摘要本设计主要有单片机模块、传感器模块、电机驱动模块以及电源模块组成,小车具有自主寻迹的功能。
本次设计采用sTc公司的89c52单片机作为控制芯片,传感器模块采用红外光电对管和比较器实现,能够轻松识别黑白两色路面,同时具有抗环境干扰能力,电机模块由L298n芯片和两个直流电机构成,组成了智能车的动力系统,电源采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能。
关键词智能小车单片机红外光对管sTc89c52L298n1绪论随着科学技术的发展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断发展。
在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹。
2设计任务与要求采用mcs-51单片机为控制芯片(也可采用其他的芯片),红外对管为识别器件、步进电机为行进部件,设计出一个能够识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规则的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。
3方案设计与方案选择3.1硬件部分可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电源模块。
3.1.1单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用。
由于以前自己开发板使用的是ATmeL公司的sTc89c52,所以让然选择这个芯片作为控制核心部件。
sTc89c52是一种低损耗、高性能、cmos八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
其程序和数据存储是分开的。
3.1.2传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息。
阻值经过比较器输出高低电平进行分析,但是光照影响很大,不能稳定工作。
方案二:使用光电传感器来采集路面信息。
基于单片机循迹小车的设计
![基于单片机循迹小车的设计](https://img.taocdn.com/s3/m/0d29af5fc381e53a580216fc700abb68a982adea.png)
基于单片机循迹小车的设计
一、硬件结构设计
(1)外观设计
该循迹小车采用4轮驱动底盘,使小车有较强的稳定性,小车安装有
一个带调光功能的LED头灯,可以缩短小车行驶的距离,以及一个用于采
集道路信息的循迹模块。
四个车轮上安装有电机,以及一个用于驱动小车
的电源,主控器采用的是51单片机。
(2)基础硬件设计
1)电源:采用12V锂电池,通过一个5V调整稳压电路改变输出电压,并调整电流大小以供电源的可靠性;
2)车轮电机:采用马达,可提供足够的动力,能够拉动小车行驶,
同时通过电路来控制马达的速度;
3)主控器:采用51单片机,作为小车的主控单元,可实现小车的运
动控制、数据采集等功能;
4)循迹模块:采用模拟循迹模块,用于采集道路信息,根据采集的
信息以及灰度传感器的反馈信息,调整小车的运动方向;
5)头灯:采用LED头灯,可实现可调光的功能,使得车子在夜晚的
黑暗环境中也能保持安全的运行;
6)电路板:依据小车的硬件结构设计出合理的路径,实现电路图和
实际的车路径的一一匹配,以此实现对小车运行的控制。
二、软件程序设计
(1)程序流程设计。
单片机的智能循迹小车
![单片机的智能循迹小车](https://img.taocdn.com/s3/m/e9e32353df80d4d8d15abe23482fb4daa48d1d55.png)
调试方法
A
总之,基于 51单片机的 智能循迹小 车是一种简 单实用的智 能控制系统
B
通过合理的 硬件设计和 软件编程, 可以实现小 车的自动循
迹功能
C
在调试过程中, 需要逐步排查 问题,不断优 化程序,以提 高系统的性能
和稳定性
感/谢/聆/听
以及调试方法
1
原理
原理
1Байду номын сангаас
基于51单片机的智能循迹小车通过传感器检测小车与路径之间的距 离,将检测到的信号转换为电平信号,然后通过单片机进行处理
单片机根据接收到的信号控制电机驱动模块,从而控制小车的运动 方向和速度
2
3
通过不断调整小车的运动方向和速度,使得小车能够沿着指定的路 径进行运动
2
硬件组成
51单片机的智能 循迹小车
-
01
原理
02 硬件组成
03 软件设计 04 调试方法
51单片机的智能循迹小车
1
智能循迹小车是一种自动 控制系统,能够沿着指定
的路径进行运动
2
基于51单片机的智能循迹 小车是一种使用51单片机 作为主控制器的智能循迹
小车
3
下面将详细介绍基于51单 片机的智能循迹小车的原 理、硬件组成、软件设计
4
调试方法
调试方法
基于51单片机的智能循迹小车的调试方法主要包括以下几个步骤
硬件调试:检查硬件连接是否正确,确保电源、传感器、电机驱动模块等设备 能够正常工作
软件调试:通过调试器或仿真器对程序进行调试,检查程序是否存在语法错误 或逻辑错误
实际环境测试:将调试好的程序下载到单片机中,然后在实际环境中进行测试 。观察小车的运动情况,如果存在偏差或问题,需要对程序进行调整和优化
基于51单片机控制的自动循迹小车技术指标要求
![基于51单片机控制的自动循迹小车技术指标要求](https://img.taocdn.com/s3/m/f556782f7f21af45b307e87101f69e314332fa09.png)
基于51单片机控制的自动循迹小车技术指标要求1.引言1.1 概述概述部分:在现代科技的发展中,自动化技术逐渐成为人们生活和工作中不可或缺的一部分。
自动循迹小车作为自动化技术的一种重要应用,广泛应用于工业生产、仓储物流、无人驾驶和教育领域等各个领域。
本文将以基于51单片机的自动循迹小车为研究对象,探讨其技术指标要求及实现原理。
通过对循迹传感器原理和控制算法原理的介绍,将带领读者深入了解自动循迹小车的核心技术。
在循迹传感器原理方面,本文将介绍如何通过光电传感器进行光线检测,并利用检测结果来实现对小车运动方向的控制。
同时,在控制算法原理方面,本文将详细介绍基于51单片机的控制算法的设计思路和实现方法。
在硬件要求和软件要求部分,本文将分别列举并详细说明自动循迹小车各个功能模块的需求和实现方法。
通过对硬件和软件的需求分析,读者将了解到自动循迹小车技术研究和开发过程中的具体要求和实现方式。
通过本文的阅读,读者将能够全面了解基于51单片机控制的自动循迹小车的技术指标要求及实现原理。
同时,本文还将总结研究结果并展望未来自动循迹小车技术的发展方向,希望能够为相关领域的工程应用和学术研究提供有益的参考和借鉴。
1.2文章结构文章结构本文将详细介绍基于51单片机控制的自动循迹小车技术指标要求。
文章结构如下所述。
引言部分概述了本文的内容和目的。
首先,对自动循迹小车的技术指标要求进行了概述,包括硬件要求和软件要求。
然后,介绍了基于51单片机的控制原理,包括循迹传感器原理和控制算法原理。
正文部分将详细讨论技术指标要求。
首先,对硬件要求进行了分析和说明,包括所需的传感器、电机、微控制器等。
其次,对软件要求进行了介绍,包括编程语言、开发环境和控制算法等。
接下来,详细介绍基于51单片机的控制原理。
首先,解释了循迹传感器原理,包括红外线传感器的工作原理和信号处理方法。
其次,探讨了控制算法原理,包括循迹算法的设计和实现。
结论部分对全文进行总结,并展望了未来可能的研究方向。
基于51单片机的循迹小车系统设计说明
![基于51单片机的循迹小车系统设计说明](https://img.taocdn.com/s3/m/3dcb56b1f8c75fbfc67db233.png)
基于51单片机的循迹小车系统设计摘要80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。
在生活中但凡涉及到自动控制的地方都会出现单片机的身影,单片机的应用有利于产品的小型化、智能化,并且能够提高生产效率。
这里介绍的是如何用AT89C52单片机来实现小车的循迹功能,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用AT89C52单片机为控制核心,利用红外传感器检测道路上的黑线,控制电动小汽车的自动循迹,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,和寻光功能。
整个系统的电路结构非常简单,可靠性能很高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
关键词:80C51单片机;电动小车;pwm调速;光电检测;自动调速系统Car tracking system based on microcontrollerAbstract80C51 is a 8 bit single chip computer. Its easily using and multi-function suffer large users.In life, whenever it comes to automatic control of the local microcontroller will appear figure, microcontroller applications in favor of product miniaturization, intelligent, and can improve productivity. Here is how to use AT89C52 microcontroller to achieve the car tracking feature, which is designed to determine the combination of scientific research and design class topic. This system design requirements of the subject for the purpose of usingAT89C52 microcontroller core, the use of infrared sensors to detect the black line on the road, the automatic tracking control of electric cars, fast low traffic speeds, as well as automatic parking, and can automatically record time , mileage and speed, and look for the light function.The circuit structure of the entire system is very simple, very high reliability. The test results meet the requirements, the paper focuses on the hardware design and test results of the system analysis.Keywords:80C51 microcontroller; Electric car Pwm speed; A photodetector; Automatic Speed Control System.目录中文摘要 (I)外文摘要 (Ⅱ)1 绪论 (1)1.1 课题背景及意义 (1)1.2 智能小车研究前景及功能 (3)1.3 国外的研究情况 (6)1.3.1 智能小车国外研究现状.........................1.3.2 智能小车国研究现状.........................1.4 本课题具体应用方面及场合2 智能循迹小车的方案设计2.1 智能小车的运行环境及行走路线 (7)2.1.1 智能小车的运行环境2.1.2 智能小车的运行路线2.2 主控芯片的选择与原理 (8)2.2.1 51单片机引脚与功能说明2.3 调速系统的设计 (8)2.3.1 PWM逆变电路及其控制方法2.3.1.1 计算法2.3.1.2 调制法2.3.2 PWM调速的优点3 硬件电路的选择与搭建3.1 单片机的辅助电路3.1.1 时钟电路3.1.2 复位电路3.2 单片机控制模块的设计3.3 驱动模块的设计3.3.1 电机驱动芯片3.3.2 电机驱动模块3.4 循迹模块的制作与设计3.4.1 循迹传感器工作原理3.4.2 寻光电路分析3.4.3 循迹电路分析3.4.3.1 红外对管TCRT5003.4.3.2 电压比较器LM3243.5 各模块的组装与连接4 循迹小车的软件设计4.1 软件设计开发平台 (15)4.2 小车运动状态分析及三路算法的设计 (16)4.2.1 小车运动状态分析 (16)4.2.2 三路循迹算法设计 (17)4.3 软件设计流程图 (20)4.4 软件的调试 (24)4.4.1 设置和删除断点 (24)4.4.2 查看和修改寄存器的容 (26)4.4.3 观察和修改变量 (28)4.4.4 查看存储器区域结论 (44)参考文献 (45)致 (46)附录1 智能循迹小车原理图 (50)附录2 循迹程序附录3 外文参考文献(译文) (50)附录4 外文参考文献(原文)51绪论1.1课题背景及意义随着汽车工业的发展,关于汽车的研究也就越来越受到人们的关注。
基于51单片机的循迹小车程序设计
![基于51单片机的循迹小车程序设计](https://img.taocdn.com/s3/m/a0ffd10bf12d2af90242e602.png)
#include<reg51.h>#define uchar unsigned char#define uint unsigned intuint zkb1=0 ; //**右边电机的占空比**//uint zkb2=0 ; //**左边电机的占空比**//uint t=0; //**定时器中断计数器**//sbit rin1=P1^0;sbit rin2=P1^1;sbit lin1=P1^2;sbit lin2=P1^3;sbit lift2=P2^2;sbit lift1=P2^3;sbit mid=P2^4;sbit right1=P2^5;sbit right2=P2^6;sbit pwm1=P2^0;sbit pwm2=P2^1;//****************延时函数****************// void delay(uint x){uchar j;while (x--){for(j=0;j<123;j++);}}//**********初始化定时器,中断***********// void init(){ TMOD=0x01;TH0=(65536-100)/256;TL0=(65536-100)%256;EA=1;ET0=1;TR0=1;}//***********中断函数+脉宽调制***********// void timer0() interrupt 1{TH0=(65536-100)/256;TL0=(65536-100)%256;++t;if(t<=zkb1){pwm1=1;}if(t>zkb1){pwm1=0;}if(t<=zkb2){pwm2=1;}if(t>zkb2){pwm2=0;}if(t==1000){t=0;}}// zkb2=左,zkb1=左//******************直行******************// void qianjin(){// zkb2=200; zkb1=170;zkb2=1000; zkb1=920;lin1=1; //******给电机加电启动******//lin2=0;rin1=1;rin2=0;}//***************左转1函数***************// void turn_right1(){// zkb2=200; zkb1=0;zkb2=950; zkb1=100;rin1=0;rin2=1;}//***************左转2函数***************// void turn_right2(){// zkb2=300; zkb1=0;zkb2=1000; zkb1=110;rin1=0;rin2=1;}//***************右转1函数***************// void turn_lift1(){// zkb2=0; zkb1=200;zkb2=100; zkb1=950; lin1=0;lin2=1;}//***************右转2函数***************//void turn_lift2(){// zkb2=0; zkb1=300;zkb2=110; zkb1=1000; lin1=0;lin2=1;}//***************循迹函数*****************//void xunji(){uchar flag;if((lift2==1)&&(lift1==1)&&(mid==0)&&(right1==1)&&(right2==1)) { flag=0; }//*******直行*******//else if((lift1==0)&&(mid==0)&&(right1==0)){ flag=0; } //******直行*******////else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==1)) // { flag=0; } //*******直行*******//else if((lift2==1)&&(lift1==0)&&(mid==1)&&(right1==1)&&(right2==1)) { flag=1; } //*******左转1*******//else if((lift2==0)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==1)) { flag=2; }//***左转2***//else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==0)&&(right2==1)) { flag=3; }//***右转1***//else if((lift2==1)&&(lift1==1)&&(mid==1)&&(right1==1)&&(right2==0)) { flag=4; }//***右转2***//switch (flag){case 0:qianjin();break;case 1:turn_lift1();break;case 2:turn_lift2();break;case 3:turn_right1();break;case 4:turn_right2();break;default: break;}}//****************主程序****************// void main(){init();while(1){ lin1=1; //******给电机加电启动******// lin2=0;rin1=1;rin2=0;// pwm1=1;// pwm2=1;while(1){xunji(); //*********寻迹**********// // zkb1=0;// zkb2=500;// qianjin();// turn_lift1();// turn_lift2();// turn_right1();// turn_right2();}}}。
基于51单片机循迹智能小车
![基于51单片机循迹智能小车](https://img.taocdn.com/s3/m/1b0dcfc1227916888586d7a8.png)
小车走翘翘板摘要本次设计的简易智能电动车采用简单的人工智能技术,使用AT89C52作为小车的检测和控制核心。
根据题目设定的行进及具体要求,分别采用红外传感器进行寻迹行驶、黑带采集及变速行驶,采用霍尔元件对小车行驶过程中的速度进行测量,并在终点进行行驶路程的测量,采用直流减速电机对小车实行较精确定位,由LCD显示出各项功能知识。
由数码管进行行驶时间显示,由蜂鸣器及LED构成声光提示电路。
最后,小车的运行过程中的各种自动化过程由单片机通过编程实现。
关键词:AT89C52 红外传感器减速电机光电管霍尔元件一、方案比较1.轨迹探测模块设计与比较方案一:用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
方案二:红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。
单片机就是通过接收到的高低电平为依据来确定黑线的位置和小车的行走路线。
对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。
经测试,此种方法简单可靠。
经反复对比后,采用方案二。
1、控制电机方案比较方案一:利用步进电机的准确定长步进性能方便的实现调速和方向的偏转,且能准确的测量速度、路程以及时间,简化编程和硬件连接的工作量。
但是步进电机在与机械配合的小车改装上难度极大,非短时间所能完成。
该方案实现较困难。
方案二:用玩具小车上自带的双直流电机,只需对后轮电机进行简单改造,加上一个齿轮减速装置即可,两电机分别负责小汽车的驱动和转向的功能,依据外围红外反射传感器所采集到的信息可以补足直流电机定位不准的缺点,同时红外反射传感器的使用还能实现比较准确的寻迹行驶,用较好的控制算法及特色硬件来提高小车的整体性能,可具有很高的性能/价格比。
基于51单片机的智能循迹小车设计
![基于51单片机的智能循迹小车设计](https://img.taocdn.com/s3/m/51f6a2c6ac51f01dc281e53a580216fc700a53fe.png)
基于51单片机的智能循迹小车设计**********************************************参赛学校:******************参赛队号:******************参赛题目:(a题)智能小车掌控参赛学生:*******************指导教师:*******************参赛日期:2021.7.18~2021.7.22第1页共23页智能小车掌控摘要智能做为现代的新发明,就是以后的发展方向,它可以按照预先预设的模式在一个环境里自动的运作,不须要人为的管理,可以应用于科学勘探等用途。
我们通过软件编程同时实现它的前进、绕障、暂停的准确掌控以及遇障次数的表明,并再次找寻至原来的轨道。
第2页共23页一、功能表明1、基本功能:小车能够在设计的线路上完成寻迹功能;2、拓展功能:在循迹线路上设置障碍物,小车遇到障碍物能够自动绕道行驶,完成避障功能;二、方案论证方案一:以at89s51单片机为核心的控制电路,采用模块化的设计方案,运用传感器检测电路,实现小车在行驶中自动寻迹、躲避障碍物的功能。
并将循迹过程中遇障次数等数据传至单片机进行处理,然后由单片机根据所检测数据实现对电动小车的智能化控制。
方案二:使用各类数字电路去共同组成电动小车的控制系统。
使用数字电路对外围观测轨迹信号,避障信号展开处置。
但对输入输出都就是模拟量的小装置,如果使用数字化方案,则必须先用a/d转换器和d/a转换器同时实现数字量与模拟量之间的切换。
这样必然增添低成本、电路繁杂等缺点。
因此,本方案灵活性不低,效率高,有利于电动小车智能化的拓展。
同时,对各路信号处理也比较困难。
比较以上两种方案的优缺点,方案一简洁、灵活、可扩展性好,能达到设计要求,因此本设计采用方案一来实现。
三、各模块设计电路分为电源模块、单片机系统模块、电机驱动板、寻迹模块、避障模块。
智能小车运转基本原理框图见到图1。
基于51单片机的循迹避障小车的设计ppt课件
![基于51单片机的循迹避障小车的设计ppt课件](https://img.taocdn.com/s3/m/6c17541576232f60ddccda38376baf1ffc4fe392.png)
复位电路
时钟电路
时钟电路是用来产生AT89C51单片机工 作时所必须的时钟信号,AT89C51本身就是 一个复杂的同步时序电路,为保证工作方式 的实现,AT89C51在唯一的时钟信号的控制 下严格的按时序执行指令进行工作,时钟的 频率影响单片机的速度和稳定性。
系统程序流程设计
本智能小车通过实时检测各个模 块传感器的输入信号,利用红外对 管检测黑线实现寻迹,通过光电传 感器实现避障,把所有采集到的信 息送到主处理器,让小车做出正确 的行驶路线。小车的启动与停止, 均采用了声控模块,实现对小车的 声音控制,其程序流程图如图所示。
请多指教
我们系统采用内部时钟方式来为系统提 供时钟信号,如图所示。AT89C51内部有一 个用于构成振荡器的高增益反向放大器,该 放大器的输入输出引脚为XTAL1和XTAL2它们 跨接在晶体振荡器和用于微调的电容,便构 成了一个自激励振荡器。
时钟电路
循迹模块
小车循迹,采用红外检测的方法,红外 检测法是通过黑线和白色对红外线的吸收效 果不同,当红外光线射到白色底板时,会发 生漫反射反射到智能车的接受管上,而射到 黑线则会被吸收不会产生发射,智能车红外 接收管就接收不到。故,整个智能车通过红 外接收管是否接收到红外线来判断黑线和白 线的,从而实现循迹。但需要主要的是,红 外传感器的检测距离有限,一般在3cm之内。 红外光电传感器由1个红外发射管(发射器) 和1个光电二极管(接收器)所构成,循迹 示意图如图所示。
基于51单片机循迹小车的设计
![基于51单片机循迹小车的设计](https://img.taocdn.com/s3/m/0dce503b376baf1ffc4fad03.png)
基于51单片机寻迹小车的设计摘要:本寻迹小车采用铝合金为车架,STC89C52单片机为控制核心,加以直流电机、光电传感器和电源电路以及其他电路的设计思路。
系统由STC89C52通过I/O口控制小车的前进后退以及转向。
寻迹由ST188型光电对管完成。
关键词:STC89C52 直流电机光电传感器自动寻迹电动车Abstract: The smart car use aluminum alloy for the chassis, STC89C52 MCU as its core, including motor and servo, plus photoelectric sensors, as well as other flame sensor and power circuit. MCU controls the car turning back forward or running on the black line. ST188 reflective photo sensor seeks the trace. Far infrared flame sensor tracks the flame.Keywords: ATmaga32L、Motor、Servo、Photo、sensor、Electrical、fire engines目录一、绪论 (2)1.1立项背景及课题研究的目的及意义 (2)1.1.1 立项背景 (2)1.1.2 课题研究的目的和意义 (3)1.2设计任务与设计要求 (3)1.2.1设计任务 (3)1.2.2设计要求 (3)1.3设计思路 (4)二、总体方案设计 (5)2.1模块方案比较与论证 (5)2.1.2 控制器模块设计 (5)2.1.3 电源模块设计 (5)2.1.4 稳压模块设计 (6)2.1.5 寻迹传感器模块设计 (6)2.1.6 电机模块设计 (6)2.1.7 电机驱动模块设计 (7)2.2最终选取方案 (7)三、硬件实现及单元电路设计 (8)3.1微控制器模块 (8)3.2光电对管电路 (8)3.3电机驱动电路的设计 (9)3.4电源模块设计 (9)3.4.1 12V稳压电源设计 (9)3.4.2 5V稳压电源设计 (10)3.5原理图整合图 (10)3.6整合电路板(PCB)图 (11)3.6.1 顶层图 (11)3.6.2 底层图 (11)3.6.3 整体图 (12)四、软件实现 (13)4.1主程序流程图 (13)4.2软件实现主程序(C语言) (13)五、结论 (16)六、结束语 (16)七、参考文献 (16)一、绪论1.1立项背景及课题研究的目的及意义1.1.1 立项背景目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。
基于51单单片机的自动循迹小车
![基于51单单片机的自动循迹小车](https://img.taocdn.com/s3/m/7e387738e2bd960590c677ec.png)
学号毕业设计(论文)基于单片机的自动循迹小车的设计教学系:指导教师:专业班级:学生姓名:二〇一二年五月郑重声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
本人签名:日期:目录摘要 (1)ABSTRACT (2)1 绪论 (3)1.1 研究背景 (3)1.2 自动循迹小车的国内外研究现状 (3)1.3 本课题设计的主要工作及结构安排 (4)2 自动循迹小车系统方案设计 (5)2.1 自动循迹小车基本原理 (5)2.2 总体方案设计 (5)2.2.1 系统总体方案的设计 (5)2.2.2 方案选择与论证 (5)3 系统硬件设计 (8)3.1 自动循迹小车硬件设计 (8)3.2 单片机控制器模块设计 (8)3.3 稳压电路模块 (10)3.4 电动机驱动模块 (12)3.5 循迹电路设计 (13)4 系统软件设计 (15)4.1 系统软件流程图 (15)4.2 程序设计 (16)4.2.1 计时程序设计 (16)4.2.2 主程序设计 (16)5 系统扩展 (18)5.1 避障功能扩展 (18)5.2 遥控功能扩展 (19)6 系统调试 (21)结束语 (23)参考文献 (24)附录A 总电路图 (25)附录B 仿真电路图 (26)附录C 小车实物图 (27)附录D 循迹避障遥控源程序 (28)摘要本设计是基于单片机控制的简易自动循迹小车,小车能够沿着宽约3CM的黑色轨迹行驶,能够非常流畅的转大于90°小于180°的弯道。
本设计包括电源模块、微处理器控制模块、循迹模块和电机驱动模块。
其中控制器模块以STC89C52单片机为控制核心,STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器,以有机玻璃作为小车的车架,循迹模块是用RPR220光电传感器来检测小车的运动轨迹,电机驱动模块使用的是L298电机驱动芯片驱动2个直流减速电机。
基于51单片机的蓝牙循迹小车
![基于51单片机的蓝牙循迹小车](https://img.taocdn.com/s3/m/81b7d94e6fdb6f1aff00bed5b9f3f90f76c64db3.png)
基于51单⽚机的蓝⽛循迹⼩车51单⽚机课程设计做了辆蓝⽛⼩车,下⾯是对课程设计内容的⼀些总结基于51单⽚机的蓝⽛循迹⼩车硬件模块L298N具体如图所⽰:⼯作原理简介:可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接⼝(输⼊最低只要 6V),可以给 5V 单⽚机电路系统供电。
输⼊电压最好是7v以上,输⼊电压低了会导致⼀系列问题,在后⾯有具体实践总结具体应⽤:可以⽅便的控制直流电机速度和⽅向,也可以控制 2 相步进电机,5 线 4 相步进电机。
管脚应⽤可以参考如图所⽰:①板载5V输出使能:如果跳线帽接上,则5v端⼦可以输出电压,若跳线帽没有街上,则12v输⼊端⼦没有作⽤,只能5v输⼊⼝输⼊(如果不接上直接废了,5v 输⼊基本不能使电机模块正常⼯作)②AB通道使能:端⼦接在上⾯表⽰AB通道⼀直保持⾼电平,处于使能状态,并且电压和5v输⼊端⼝电压相同;若处于没有使能状态,直接影响到输⼊端,让其⽆法⼯作!③单⽚机IO控制输⼊ + 马达AB输出 :顾名思义,四个IO输⼊端⼝和单⽚机四个IO⼝相连,然后通过电机驱动模块(双H桥电路)马达AB输出,以获得更⼤的驱动直流减速电机的能⼒,带动电机转动!B站直接搜L298N电机驱动模块,有视频详情介绍问题以及解决⽅案下⾯是⼀些使⽤L298N驱动电机的⼀些问题以及解决⽅法总结问题:1.直流减速电机不能正常转动,⼀个轮⼦只能单⽅向转动2.使能端⼝帽摘下来后,pwm信号输⼊问题3.供电问题解决:1.起初⽤4节南孚电池供电,⽤万⽤表测电压⼩于4.8v(电池快没啥电了),更换四节电池后⽤万⽤表测得4.9v+,上⾯出现的问题解决了2.输⼊端电压⼩于7v(⽤得四节南孚电池6v不到供电),使能电压和5v输⼊端⼦的电压相同,经测量5v端⼝电压只有3.8v左右,故使能电压就只有3.8v左右了,对PWM输出使能有⼀定影响3.L298N电机驱动中有稳压降压模块,如果供电⾜够⼤(⼤于7v),那么稳压降压模块会发挥作⽤,使得5v输⼊端⼦、使能端⼦、马达电机都能有稳定的5v⾼电平输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机的循迹小车系统设计摘要80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。
在生活中但凡涉及到自动控制的地方都会出现单片机的身影,单片机的应用有利于产品的小型化、智能化,并且能够提高生产效率。
这里介绍的是如何用AT89C52单片机来实现小车的循迹功能,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用AT89C52单片机为控制核心,利用红外传感器检测道路上的黑线,控制电动小汽车的自动循迹,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,和寻光功能。
整个系统的电路结构非常简单,可靠性能很高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
关键词:80C51单片机;电动小车;pwm调速;光电检测;自动调速系统Car tracking system based on microcontrollerAbstract80C51 is a 8 bit single chip computer. Its easily using and multi-function suffer large users.In life, whenever it comes to automatic control of the local microcontroller will appear figure, microcontroller applications in favor of product miniaturization, intelligent, and can improve productivity. Here is how to use AT89C52 microcontroller to achieve the car tracking feature, which is designed to determine the combination of scientific research and design class topic. This system design requirements of the subject for the purpose of usingAT89C52 microcontroller core, the use of infrared sensors to detect the black line on the road, the automatic tracking control of electric cars, fast low traffic speeds, as well as automatic parking, and can automatically record time , mileage and speed, and look for the light function.The circuit structure of the entire system is very simple, very high reliability. The test results meet the requirements, the paper focuses on the hardware design and test results of the system analysis.Keywords:80C51 microcontroller; Electric car Pwm speed; A photodetector; Automatic Speed Control System.目录中文摘要 (I)外文摘要 (Ⅱ)1 绪论 (1)1.1 课题背景及意义 (1)1.2 智能小车研究前景及功能 (3)1.3 国外的研究情况 (6)1.3.1 智能小车国外研究现状.........................1.3.2 智能小车国研究现状.........................1.4 本课题具体应用方面及场合2 智能循迹小车的方案设计2.1 智能小车的运行环境及行走路线 (7)2.1.1 智能小车的运行环境2.1.2 智能小车的运行路线2.2 主控芯片的选择与原理 (8)2.2.1 51单片机引脚与功能说明2.3 调速系统的设计 (8)2.3.1 PWM逆变电路及其控制方法2.3.1.1 计算法2.3.1.2 调制法2.3.2 PWM调速的优点3 硬件电路的选择与搭建3.1 单片机的辅助电路3.1.1 时钟电路3.1.2 复位电路3.2 单片机控制模块的设计3.3 驱动模块的设计3.3.1 电机驱动芯片3.3.2 电机驱动模块3.4 循迹模块的制作与设计3.4.1 循迹传感器工作原理3.4.2 寻光电路分析3.4.3 循迹电路分析3.4.3.1 红外对管TCRT5003.4.3.2 电压比较器LM3243.5 各模块的组装与连接4 循迹小车的软件设计4.1 软件设计开发平台 (15)4.2 小车运动状态分析及三路算法的设计 (16)4.2.1 小车运动状态分析 (16)4.2.2 三路循迹算法设计 (17)4.3 软件设计流程图 (20)4.4 软件的调试 (24)4.4.1 设置和删除断点 (24)4.4.2 查看和修改寄存器的容 (26)4.4.3 观察和修改变量 (28)4.4.4 查看存储器区域结论 (44)参考文献 (45)致 (46)附录1 智能循迹小车原理图 (50)附录2 循迹程序附录3 外文参考文献(译文) (50)附录4 外文参考文献(原文)51绪论1.1课题背景及意义随着汽车工业的发展,关于汽车的研究也就越来越受到人们的关注。
在全国电子大赛以及省的电子大赛上,我们几乎每次都能看到智能小车这方面的题目,在全国各的高校中也都很重视该类型题目的研究。
由此可见其研究意义很大,故本设计中就是在这样的背景下提出来的。
本题目是结合科研类项目而确定的设计类课题。
本设计的智能电动小车应该具有自动循迹的功能,并且可以扩展实时显示时间、速度、里程、寻光、避障功能,可程控行驶速度、准确定位停车等功能。
近几十年来,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。
1.2 智能小车研究前景及功能智能车辆也叫做无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。
它具有道路障碍自动识别、自动的报警、自动制动、自动保持安全距离、车速和巡航控制等功能。
智能车辆的主要特点是在复杂的道路情况下,能够自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)前进。
智能车辆在原有的车辆系统中,增加了一些智能化的技术设备:(1)在计算机处理系统,智能车主要来获取图像,并预处理、增强、分析、识别等工作;(2)摄像机,用来获得道路图像信息;(3)传感器设备,车速传感器可以用来获得当前车速,障碍物传感器可以用来获得前方、侧方、后方障碍物等信息。
智能车辆技术按照其功能可划分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。
且上一层技术是下一层技术的基础。
可以利用各种传感器来获得车辆自身、车辆行驶的周围环境及驾驶员自身的状态信息,必要时发出预警信息。
主要包括碰撞预警系统和驾驶员状态监控系统。
碰撞预警系统可以给出前方碰撞警告、十字路口警告、车道偏离警告、盲点警告、换道/并道警告、后方碰撞警告、行人检测与警告等.驾驶员状态监控系统。
1.3 国外的研究情况智能小车技术在国外的研究现状。
智能小车技术是一个体现国家高技术实力的一个重要标准,它涉及到多个学科,机械、电工、数学、自动控制、计算机测量、人工智能、传感技术等等,是众多领域的高科技。
而智能小车比赛就是机器人技术的一个重要研究方向,目前许多国家己经开始把移动机器人比赛作为创新教育的一个战略性手段。
移动机器人比赛是一种高科技的对抗性的活动,各国的专家和学者来通过移动机器人竞赛,推进了在竞赛型移动机器人方面的研究,不改进机器人寻址速度和算法研究,并试图让机器人更加的接近智能化,它集高科技、娱乐和比赛于一体,引起了各国的广泛关注和极大兴趣,从而推动了移动机器人研究热潮...... 据统计部门的数据,至2006年中国汽车保有量已达3500万辆(其中轿车占80%,约2500万辆),每年仍以30%的速度递增。
我国成为了继美国之后的第二大汽车生产和消费国。
汽车行业的发展也带动了相关服务业的发展。
而将功能强大的智能车载信息系统——车载电脑加载到汽车上已经成为欧美、日本等国汽车市场的首选新装备。
车载电脑给汽车带来了一场信息化的革命,让每辆汽车构都建成一个完美的车载信息与娱乐系统终端,我们坐在汽车里面听广播或者音乐已经习以为常。
让你在开车的时候听音乐,在休息的时候欣赏好莱坞大片或是收看电视,甚至玩各种游戏。
车载通讯与导航系统主要指GPRS 和GPS,可以让你“轻车熟路”,而且可以轻松的打。
智能小车,就是在关键得基础理论模型研究的前提下,把先进的信息技术、、数据通信技术及计算机处理技术等技术有效地综合运用于汽车交通体系,从而可以大围、全方位的发挥准确、实时、高效的功能,是很好的交通工具。
它可以利用无线通讯的专网低频段并以其低成本实现了智能小车的实时控制、快速传输,并自行开发研制出了无线通讯系统的车载智能终端设备及控制系统,使智能小车能够完全利用无线通讯系统来采集和传输路面状况数据,并进行小车速度和方向的控制,具有载人和自动控制的双重功能。
小车信息响应速度快、全自动方向控制自动化、信息发布智能化、设备自维护智能化的特点。
1.3.1 智能小车国外研究现状国外的智能车辆研究历史比较长,开始于上个世纪的50年代,其发展历程大致可以分为三个阶段。
第一阶段:20世纪50年代是智能车辆研究的初始阶段。
1954年美国的Barrett Electronic公司研究出了世界上的第一台自主引导车系统,该系统是一个可以运行在固定路线上的拖车式的运货平台,但是它却具有了智能车辆所具有的最基本的的特征。
第二阶段:开始于80年代中后期,西方发达国家对智能车辆的开展具有卓有成效的研究,在欧洲,普罗米修斯项目于1986年开始在这个领域探索,在北美,美国于1995年成立了国家自动高速公路系统联盟,他的目标之一就是来研究发展智能车辆的可行性,并促进智能车辆技术进入实用化,来为人类谋福利。
第三个阶段:从90年代开始,智能车辆进入了更加深入、系统、大规模的研究阶段。
其中最为突出的是,美国卡基-梅陇大学的机器人研究所完成的Navlab系列的自主车的研究,取得了非常显著的成就。