2023年12月18日发(作者:口碑最好的紧凑型suv车排名)
设计报告
基于AT89S52单片机的智能小车设计
姓名:***
班级:2013级8班
学号:************
指导教师:***
日期:2016年3月20日星期日目录
引言………………………………………………………..1
1方案的选择与论证 .........................
2
1.1 主控芯片的选择 ......................
2
1.2
显示方案的选择………………………………...2
1.3
避障传感器的选择……………………………..3
1.4 追光方案的选择………………………………...3
2系统的硬件设计 ...........................
42.1 系统的总体结构框图… ................
42.2 显示器电路 ...........................
42.3 蜂鸣器电路 ...........................
42.4 传感器电路 ...........................
主33
系统的软件设计……………………………………...4
3.1 程序流程图…………………………………..6
3.2 循迹程序流程图 .....................
7 83.4 金属检测程序流程图 .................
48测试数据 .................................
59结束语 ...................................
3.3 追光程序流程图 ....................
7附录………………………………………………………10
基于AT89S52单片机的智能小车设计
摘要:本设计给出了以AT89S52单片机为核心芯片的智能小 车的简易控制,使小车沿给定轨道实现循迹,金属检测,避 障,寻光等基本功能,通过了传感器的输出电平来控制小车 走向,基本功能实现后,可完全由程序控制给出极大的发挥 空间,车体采用两个轮子一个万向轮,更加简化了小车的控 制。
关键词:AT89S52 单片机 智能小车
Abstract:The design gives the theory of the smart car
of the simple control and it is maked by AT89S52 as the
core car can realize going along the
track ,detecting metal,avoiding obstacle,searching
light such as can through the level of the
output of the sensor to control the can be
completely by the program control and there are great space to playafter the realization of the basic
smart car are maked by a body two wheels
and a universal wheel,so it highly simplifies the
control of smart car.
Key words:AT89S52 Single-chip Smart car
引言
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人 关注。从2001年起全国电子大赛和省内电子大赛几乎每次 都有智能小车这方面的题目,全国各高校也都很重视该题目 的研究。可见其研究意义很大。
在智能小车现今发展最好的当是飞思卡尔举行的比赛,比赛 分为光电组、摄像组、电磁组,比赛主要追求的是速度,速 度最快者获胜。
我们研究的智能小车主要以完成相应的功能为主,同时要求 有一定的速度。
1
方案的选择与论证
1.1
主控芯片的选择
方案1:选用MSP430系列单片机,MSP430单片机处 理能力强,运行速度快,超低功耗,片内资源丰富,包括 定时器,模拟比较器,液晶驱动电路,运算能力强,但价 格较贵,指令系统较复杂。
方案2:选用ATMEL公司的AT89s52单片机,该单片 机片内集成有定时器,中断系统,丰富的1/0端口,有较 强的位处理功能,且价格便宜,指令系统较简单。
考虑本系统主要用于控制,不需要复杂的运算,选用
AT89S52完全可以实现控制功能,且价格便宜,编程较容 易,故选用方案2。
1.2
显示方案的选择
方案1:选用液晶屏显示器,可以显示汉字,电路设计,程
序控制较为复杂,可观察度不高。
方案2:选用数码管,不能显示汉字,设计,操作均简 单,可观察度高。
本设计显示模块仅显示数字,选用易操作,价格便宜 的数码管。既选方案2。
1.3
避障传感器的选择
方案1:漫反射式光电开关:利用被检测物体对红外光束 的吸收或反射来检出物体的有或无,而且检测距离是可调的。 方案2:三线制输出的碰撞开关模块,模块最前端开关有碰 撞,模块输出低电平,没有碰撞,输出高电平。
碰撞开关需有碰撞时才可控制,所以选择方案1。
因
1.4
追光方案的选择
方案1:利用硅光电池进行光源检测,硅光电池在有光 线照射时,会产生电动势,光照越强,电动势越大。 方案2:利用光敏二极管进行光源检测,当光敏二极管 加上反向电压时,管子中的反向电流随着光照强度的改变 而改变,光照强度越大,反向电流越大。
因硅光电池较光敏二极管较为便宜,所以选择方案1。
2
系统的硬件设计
2.1
系统的总体结构框图 2.3 蜂鸣器电路
蜂鸣器电路原理图
图3
图4 追光电路原理图
系统的软件设计
2.4 传感器电路 3.1 主程序流程图
图5 主程序流程图
3.2循迹程序流程图 3.3追光程序流程图
3.4金属检测程序流程图
图8金属检测程序流程图
4 测试数据
表一系统测试数据
测试次数
循迹
金属探测
避障
追光
运行时间
第一次
第二次
第三次 5结束语
经过半个学期的努力,终于完成了这次智能小车的设计,
把课堂上的理论运用到了实践中,对课本的理论有了更好的
理解,在这次的设计中,因为缺乏经验,在画原理图的时候 出现过很多细节错误,同时也就积累了很多的经验,每次制 板完,焊接好以后都会出现许多的问题,慢慢的也了解到了 常见的错误,相信自己第二次做作品的时候可以避免许多类 似的错误,通过这次系统的设计,也大大增加了自己对专业 的兴趣,更加了解到自己的不足之处,更有方向的去学习欠 缺的理论知识。
感谢负责卓越工程师班的老师们的悉心指导,让我们能自
己独立做出一个作品。
附录1
EN则
11121
+5V
GND
附录2
#include
//定义数码管IO 口
#define DATAPORT P0
//定义电机驱动IO 口
sbit KM1 = P2八4;
sbit KM2 = P2八5;
sbit KM3 = P2八6;
sbit KM4 = P2八7;
〃定义光电传感器IO 口
sbit guangdianl = P3八7;
sbit guangdian2 = P3八6;
//定义避障传感器接口
sbit bizhang=P3八5;
〃定义追光IO 口
sbit zhuiguang1=P3八4;
sbit zhuiguang2=P3八3;
//定义喇叭IO 口
sbit Bzzer=P3八0;
sbit wei1=P3八2;
sbit shu=P2八3;
//检测到黑线是高电平 void qianjin(); //前进函数声明
void zuozhuan(); //左转函数声明
void youzhuan(); //右转函数声明
void stop(); //停止函数声明
void houtui(); //后退函数声明
void Delay(unsigned int x); //延时函数声明
//定义数码管显示0~9数组
unsigned
Table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int i=0;
//函数入口(主函数)
void main()
{
//初始化操作
EA=1;
EX0=1;
IT0=0;
shu=0;
while(1)
{
DATAPORT=Table[i];
code //无光或者在黑线两边—前进
if((guangdian1 ==0 && guangdian2 ==0)|(zhuiguang1 ==0 &&
zhuiguang2 ==0))
qianjin();
//左边在黑线里或者左侧有光-左转
if((guangdian1 == 1 && guangdian2 == 0)|(zhuiguang1 == 1 &&
zhuiguang2 == 0))
zuozhuan();
//右边在黑线里或者右侧有光-右转
if((guangdian1 == 0 && guangdian2 == 1)|(zhuiguang1 == 0 &&
zhuiguang2 == 1))
youzhuan();
//左右两侧都在黑线里-暂停两秒然后前进
if(guangdian1 == 1 && guangdian2 == 1)
{
stop();
Delay(2000);
qianjin();
}
//如果前面有障碍物-后退并延迟2秒后右转
if(bizhang==0)
houtui(); Delay(2000);
youzhuan();
//延时函数的实现 void Delay(unsigned int x)
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
//中断,定时器函数实现 void ISR_Key() interrupt 0
if( wei1==0) //如果位为0,则增加 i++;
if(i==10) //位为10,归零 i=0;
DATAPORT=Table[i];
stop();
Bzzer=0;
P1=0X00;
Delay(400);
Bzzer=1;
P1=0Xff; if(wei1==0)
qianjin();
if(i==4)
{
unsigned char m;
stop();
for(m=5;m>0;m--)
{
Bzzer=0;
P1=0X00;
Delay(400);
Bzzer=1;
P1=0Xff;
Delay(400);
}
}
//前进函数的实现
void qianjin()
{
KM1 = KM4 = 1;
KM2 = KM3 = 0; }
//左转函数的实现
void zuozhuan()
{
KM1 =1;
KM2 =0;
KM3=KM4=0;
}
//右转函数的实现
void youzhuan()
{
KM4 =1;
KM3 =0;
KM1 = KM2 = 0;
}
//暂停函数的实现
void stop()
{
KM1 = KM2 = KM4 =KM3 = 0;
}
//后退函数的实现
void houtui() {
KM1 = KM4 = 0;
KM2 = KM3 = 1;
}
更多推荐
小车,设计,函数,检测,智能,方案
发布评论