完整版单片机遥控车的毕业课程设计.docx
- 文档编号:10547901
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:21
- 大小:518.71KB
完整版单片机遥控车的毕业课程设计.docx
《完整版单片机遥控车的毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版单片机遥控车的毕业课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
完整版单片机遥控车的毕业课程设计
编号:
Z
学号:
课程设计
教学院
计算机学院
课程名称
单片机课程设计
题目
智能小车
专业
计算机应用技术
班级
12计算机应用
姓名
同组人员
指导教师
2014
年
6
月
20
日
课程设计任务书
2013~2014学年第二学期
学生姓名:
专业班级:
12计算机应用
指导教师:
工作部门:
计算机学院
一、课程设计题目单片机遥控智能小车的设计
二、课程设计内容(含技术指标)
1.要求学生按照设计要求用PROTEUS做出智能小车原理图。
2.在KEIL-C环境下完成程序设计,并且调试成功,将仿真功能实现。
3.按照要求完成课程设计论文并且答辩。
三、进度安排
第一周前1天进行系统功能分析与设计;(2学时)
PROTEUS软件的学习和设计分析;(2学时)
KEIL-C软件的学习和设计;(2学时)
第一周第2天用PROTEUS软件进行原理图的设计;(2学时)
KEIL-C软件进行驱动程序的编写和调试;(2学时)
第二周第1天进行驱动程序和烧写;(2学时)
将写好的驱动程序对仿真原理图进行仿真驱动;(4学时)
第二周第2天演示程序并且调试成功;(2学时)
论文的撰写准备和答辩答疑等;(2学时)
四、基本要求
1.按照本组分工完成自己的设计内容。
2.完成仿真原理图的设计。
3.原理图与代码顺利连接。
摘要
51系列单片机是各单片机中最为典型和最有代表性的一种。
由RAM,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。
本次设计的智能遥控小车采用了AT89C52芯片,主要有单片机模块、驱动模块、电池模块、遥控模块、液晶显示屏模块组成,从而实现了一个四驱小车的前后左右转弯和液晶显示屏上能显示Intelligentcarloveyou。
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
应用Proteus软件实现了单片机智能小车系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
关键词:
51单片机、L298N、液晶显示屏、遥控器等等。
Abstract
WithThe51SeriesSCMisthemosttypicalandthemostrepresentativeone.ByRAM,ROM,CPU,timing,countingandvarietyofinterfaceintegratedmicrocontroller.IntelligentremotecontrolcarofthisdesignusestheAT89C52chip,mainlycomposedofsingle-chipmodule,drivermodule,abatterymodule,remotecontrolmodule,liquidcrystaldisplaymodule,thusachievedaftera4WDcarturnaroundandtheLCDscreencandisplayIntelligentcarloveyou.
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
应用Proteus软件实现了单片机智能小车系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
Thecurriculumdesignthroughitsstudy,application,thusreachthestudy,design,developmentofthesoft,ofProteussoftwaretorealizethedesignandSimulationofintelligentcarsystem.Themethodofsimulationresultsistrue,accurate,savethe.
目录
1绪论1
1.1课题的背景和意义1
1.2系统的相关领域与进展1
1.3论文的主要内容1
2系统分析2
2.1问题的提出及定义2
2.2可行性分析2
2.3需求分析3
3系统设计6
3.1系统总体设计6
4软件实施10
4.1相关知识简介10
4.2系统实施中的关键技术12
4.3系统测试13
5总结15
参考文献16
1绪论
1.1课题的背景和意义
伴随着计算机技术的不断发展,单片机也得到了相应的发展,而且其应用的领域也得到更好的扩展。
我们生活中广泛使用的各种智能IC卡、数码产品,工业自动化过程的实时控制和数据处理,以及军备中涉及到的重要系统控制都离不开单片机。
通过本课题的研究,我们应当充分认识到单片机的发展趋势以及应用前景,也好在社会主义经济飞速发展的道路上能够大步向前,做出应有的贡献。
1.2系统的相关领域与进展
现在可以说单片机是百花齐放,百家争叫的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
1.3论文的主要内容
本论文系统地介绍了利用KeiluVision3和ISIS7Professional这两个软件实现了智能小车的调试和液晶显示屏实现的功能。
有效的将所学的理论知识通过实践表现出来。
首先,对系统的研究背景和意义,相关领域的进展情况进行了阐述。
对系统需求分析和可行性分析及系统的数据流图和数据字典进行了介绍。
之后从硬件出发,收集材料到最后代码的调试实现特定的功能。
2系统分析
2.1问题的提出及定义
2.1.1小车需要的器材
1.遥控车底板部分:
四个轮子、一张底板、四个电机、若干螺母。
2.电机驱动部分:
需要若干导线和杜邦线。
3.单片机部分:
12MHZ晶振一个、10uf电容一个、二极管一个、AT89C52芯片一个、开关一个、1k电阻两个。
4.遥控部分:
遥控器一个,接收器一个。
5.电池部分:
一块5v的电池和一块12v的电池。
2.1.2智能小车的基本结构
1.电机驱动模块:
由于单片机输出的电流有限,无法直接驱动电机进行工作,因此需要通过专用的电路进行驱动,只要单片机给出相应的控制信号,便可控制电机工作,本次用的是常用的H桥驱动芯片L298N。
2.单片机模块:
本次使用的是AT89C52的单片机。
这个模块包含最小系统,通过STC-TSP-15xx-v6.67C.exe软件把代码烧写到89C52单片机中,这样就可以实现想要的功能。
3.电源模块:
由于小车采用电池供电,因此合理的设计一个电源模块是小车稳定运行的前提。
本次用了两块电源,给驱动提供的电源为12v的电池组,给单片机提供的电源为5v的电池组。
4.遥控模块:
采用遥控器。
5.液晶显示模块:
QC1602C
2.2可行性分析
2.2.1电源的选择
1.电源的选择取决于单片机的供电和驱动的供电。
2.考虑到电源的大小以及实际中的可操作性。
2.2.2小车的速度实现
1.小车电源的选择直接影响到小车的速度。
2.发射器发射到电平的次数也影响小车的速度。
2.3需求分析
2.3.1液晶显示仿真图
通过protues仿真可以实现液晶屏幕显示的内容。
仿真图如下:
2.3.2小车实物图
通过器件的组合和代码的调试,实现了小车的运动,具体的图形如下:
3系统设计
3.1系统总体设计
3.1.1电源模块设计
电源是整个系统稳定工作的前提,因此必须有一个合理的电源设计,对于小车来说电源设计应注意两点:
1.单片机的电源一般在5V左右,和常规的电源基本没有多大区别。
2.驱动供电与一般的稳压电源不同,小车的电池电压一般在6-12V左右,还要考虑在电池损耗的情况下电压的降低,因此采用大一点的电源相对比较好。
3.1.2单片机最小系统设计
单片机是小车的控制中心,单片机最小系统的合理设计是小车平稳运行的前提,所谓最小系统,就是能够保证单片机运行的最精简的硬件设计,由于设计时间有限,不可能设计一块统一规划,功能刚好符合要求的电路板,因此需要设计若干系统板组合使用。
本次选择的是AT89C52芯片。
在设计单片机最小系统时需要注意以下几点:
1.需要合理考虑调试过程中的扩展需要,正常情况下需要将所有IO口引出,同时需要注意单片机电源设计,保证最小系统能够稳定供电。
2.合理集成相应的外围模块,如几个LED显示,电阻、晶振、电容值的选择等,这些小部件可能觉得无关紧要,但是在调试的时候能够带来很大方便。
3.最好将程序的下载接口集成在最小系统上,这样会极大的方便小车的调整与测试。
这一点对于贴片式封装的单片机不考虑,但是对于51、AVR等单片机却经常让初学者忽略。
如下图所示,为51单片机的最小系统参考电路图。
图51单片机最小系统
上图中的51单片机最小系统由以下几个部分组成:
1.晶振电路,单片机要想工作必须有一个外部的时钟源,这个时钟源由外部晶振产生,具体电路为图中的Y1、C1、C2,在做电路板时应注意晶振和电容要靠近18脚和19脚放置,如果放置过远可能会造成晶振不能起振,或工作不稳定。
典型值为C1、C2为30pF,Y1为12MHZ。
2.复位电路,复位电路包括加电复位和外部复位两部分,51系列单片机多为高电平复位,也就是说RST(9)脚上只要有持续两个机器周期以上的高电平就能使单片机复位,因此上电复位的原理就是利用电容充电的一段时间将复位脚拉至高电平,使单片机完成复位,R1在电容充电结束后将复位脚拉至低电平,保证单片机正常工作。
3.ISP下载接口,改下载接口在实际制作时可以用双排的5*2的排针代替,电路是根据标准的ISP下载线来设计的,与常用的并口下载线,串口下载线和笔记本用的USBASP下载线兼容,只需将下载线接口插到本接口上就可以直接向单片机烧写程序,免去了不断拔插单片机芯片的烦恼。
ISP的下载接口在设计时应注意以下两点,否则可能会造成程序下载的失败。
1.下载线接口中的电源尽量和单片机共用一个电源。
2.下载线接口中用到的P1.5~P1.7脚不要连接数码管等外部器件,如果要连接外部器件可以设计为可插拔的方式,防止影响程序的下载,或者将P1口分配为读取按钮开关状态等方式。
对于下载线有几点说明:
1.51和AVR常用的是ISP下载方式,也就是上面介绍的接口,实物接口如图3.4所示,常用的有分为并口下载线,串口下载线和USB下载线,一般台式机建议使用并口下载线,速度快而且稳定,图3.5为并口下载线实物图。
2.购买并口下载线时应注明51AVRISP下载线或stk200stk300下载线,购买USB接口的下载线时一般的名称为USBASP。
3.1.3四轮电机驱动模块设计
电机常用的驱动芯片很多,在本设计中我们选用硬件设计简单,驱动效率较高的L298N作为电机驱动芯片,在用L298N之前有必要介绍一下H桥电路。
H桥驱动电路是较为常见的一种,图所示为一个典型的直流电机控制电路。
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。
H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
由于H桥电路可以很方便的实现电机正反转的驱动因此应用广泛。
由于车的构造不能像一般的车那样转弯,因此只能采用原地转弯,使得两个轮向前走,两个轮向后转,从而实现向左向右转弯。
H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
由于H桥电路可以很方便的实现电机正反转的驱动因此应用广泛。
3.1.4常用H桥集成电路芯片L298
H桥电路虽然有着诸多的优点,但是在实际制作过程中,由于元件较多,电路的搭建也较为麻烦,增加了硬件设计的复杂度。
由于H桥电路有诸多的优点,但是在实际制作过程中电路又比较麻烦,因此在本设计中我们采用H桥集成电机驱动芯片L298。
L298N的工作原理和以上介绍的H桥相同。
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。
该芯片采用15脚封装。
主要特点是:
工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。
内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。
使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。
在本次设计中用的是直流电机,步进电机可以准确的控制速度和转角的度数。
L298的参考电路图如下图所示。
图L298参考电路图
对于以上电路图有以下几点说明:
1.电路图中有两个电源,一路为L298工作需要的5V电源VCC一路为驱动电机用的电池电源VSS6-12V左右。
2.1脚和15脚有的电路在中间串接大功率电阻,可以不加。
3.图中连接了两路电机,P2和P5是一一对应关系,如果只驱动一路电机可以连接对应的12或者34引脚。
4.八个续流二极管是为了消除电机转动时的尖峰电压保护电机而设计,简化电路时可以不加。
5.6脚和11脚为两路电机通道的使能开关,高电平使能,所以可以直接接高电平,也可以交由单片机控制。
6.由于工作时L298的功耗较大,可以适当加装散热片。
4软件实施
4.1相关知识简介
本次设计主要用到KeiluVision3和ISIS7Professional这两个软件。
KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。
除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。
此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。
uVision3提供逻辑分析器,可监控基于MCUIO引脚和外设状态变化下的程序变量。
ISIS7Professional是一个可以实现元件仿真的软件,在单片机实物未成之前可以检查错误,并且观察结果。
4.1.1程序总体的设计
对于简单的智能小车程序设计来说,直接的定义然后实现向前、向后、左转右转等功能。
具体是设计各有不同如简单的while语句轮流判断就可以实现类似的功能,本次设计在这个基础之上还加了液晶显示屏,在小车运行的时候可以显示:
“Intelligentcarloveyou”代码如下:
#include"reg52.)延时函数
{
uintx,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
voidlcd_wcom(ucharcom)1602写命令函数
{
RS=0;选择指令寄存器
RW=0;选择写
P2=com;把命令字送入
delay(5);延时一小会儿,让1602准备接收数据
EN=1;使能线电平变化,命令送入1602的8位数据口
EN=0;
}
voidlcd_wdat(uchardat)1602写数据函数
{
RS=1;选择数据寄存器
RW=0;选择写
P2=dat;把要显示的数据送入
delay(5);延时一小会儿,让1602准备接收数据
EN=1;使能线电平变化,数据送入1602的8位数据口
EN=0;
}
voidlcd_init()1602初始化函数
{
lcd_wcom(0x38);8位数据,双列,5*7字形
lcd_wcom(0x0c);开启显示屏,关光标,光标不闪烁
lcd_wcom(0x06);显示地址递增,即写一个数据后,显示位置右移一位
lcd_wcom(0x01);清屏
}
main()
{
ucharn,m=0;
lcd_init();液晶初始化
lcd_wcom(0x80);显示地址设为80H(即00H,)上排第一位
for(m=0;m<16;m++)将table[]中的数据依次写入1602显示
{
lcd_wdat(table[m]);
delay(200);
}
lcd_wcom(0x80+0x44);重新设定显示地址为0xc4,即下排第5位
for(n=0;n<8;n++)将table1[]中的数据依次写入1602显示
{
lcd_wdat(table1[n]);
delay(20);
}
while(D0==1)前
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
while(D1==1)后
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
}
while(D2==1)左
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
}
while(D3==1)右
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
4.2系统实施中的关键技术
液晶显示屏、发射器、接收器的使用、驱动和STC-TSP-15xx-V6.67C.exe软件对89C52芯片的烧写等等。
4.3系统测试
4.3.1测试的目标
软件测试是系统质量保证的主要活动之一。
测试虽然不是质量保证的“安全网”。
但它是不可缺少的,而且是重要的环节。
因为,在系统开发的过程中,涉及一系列的活动,而在这个活动过程中,人们可能犯很多错误,错误可能发生在设计阶段,也可能发生在整个过程的开始阶段。
系统测试的目标是:
测试是一个程序的执行过程,其目标在于发现错误。
一个好的测试用例能够发现至今尚未察觉的错误。
一个成功的测试则是发现至今尚未察觉的错误的测试。
总之,测试是发现错误,这不只是从技术角度测试下定义。
软件测试中最为重要的是,实际工作中人们的心理学和经济学问题。
4.3.2测试的方法
对于小车的整体来说测试要按照模块来进行,一般我认为应分为以下几个步骤:
1.首先测试电源的工作情况,各个模块能否得到良好供电。
2.检查单片机能否正常的烧写程序和工作。
3.测试四轮电机的工作情况,观察左边两个和右边两个轮子转的方向,看能否实现向左转和向右转等功能。
4编写好程序测试转向情况。
5.编写程序让小车初步运行。
6.反复测试各参数变化对小车的影响,找出最有效的配置。
7.对小车运行过程中各种可能出现的情况进行测试,发现问题、找出解决方法。
8.整理数据,优化算法和程序设计。
4.3.3测试总结
在整个设计中测试和调试显的尤为重要,首先是测试,测试就是检验元件好坏,电路能否正常工作,因此特别是在硬件设计中,开始一个模块设计之前和完成一个模块设计之后都要进行测试。
在初学阶段不要盲目的焊接板子,在每个模块调试完后可以把所有的器件焊接在一起,在本次设计没有用到洞洞板,也就是说不需要焊接。
在稍微复杂一点的电路设计之前可以先搭建其中的一部分电路,测试一下是否正常,然后在进行总的电路设计。
这样循序渐进的进行设计可以节省时间保证电路的正确性。
同样,程序方面的设计也是如此。
要试着去写,从简单的程序开始,慢慢的调试和扩充。
电路设计之后的测试也同样重要,特别是和程序有关的外围检测、驱动等模块,如果不排除硬件故障在调试的时候很难让你分清到底是硬件还是软件的问题,因此硬件设计完成之后首先需要测试硬件能够正常工作,这样在遇到问题时才能够排除硬件的干扰找出问题的所在。
测试完成之后再看调试部分,调试就是在基本功能实现的基础之上调整参数,实现最佳的性能。
调试其实是一个难点也是一个重要的阶段,通过调试使得性能优化。
车的速度可以达到最大速度,就如刚开始我用的是9v的干电池,由于干电池的电量不充足,最终导致了小车在刚开始运行时就出现速度慢和不能动的情况。
从总的角度上来说我们在做的时候可以先做一个个模块,进行测试,基本功能实现后可以去尝试在原有的基础之上去扩展并提高性能,最后根据前一阶段的测试结果有针对性的重新设计电路板,最终将硬件部分测试下来,后面的时间主要就可以从软件的角度去调整参数。
5总结
历时两周的课程设计,终于做出来我想要的遥控小车,这些最终也归于老师的耐心的指导和组员们不懈的努力和密切的配合。
其实在做这个小车的过程碰到了种种困难,比如,前期的的器材选择到中期的器件组装到后期的小车调试阶段。
尤其是在调试阶段,根本不知道错误到底在哪儿,虽然各个模块测试是成功的,但所有的东西组装在一起后轮子还是不能转,当时有一种莫名其妙的感觉,但这些问题并没有让我失去信心,我觉的只要用心一切都会迎刃而解。
测试中遇到以下几点问题:
1.为什么遥控接受模块,测试的时候有高电平,但在真正在遥控车上却无法检测到信号?
原因:
通过查阅资料和请教同学,原来接收端的信号太微弱。
解决办法:
在接受器上加一个稍微长一点的铜丝就可以解决此问题。
2.为什么单片机和驱动不能用同一块电源,并且两者的负极要接在一起?
原因:
两者接在一起产生电势差,不能正常供电。
解决方案:
用独立的电源,5v的电源给单片机供电,12v的电池组给驱动供电。
3.为什么用5v的电池组和9v并联的电池组却只能让小车慢速的前进,过一会只有一个轮子在转动?
原因:
驱动的电压过于低,不能带动电机转动,干电池的电量不充足很快会消耗完。
在刚开始时由于干电池的电量匮乏,只有一个轮子在转,后来经过电压表测试后发现已经低于5v了,因此无法带动电机转动。
解决方案:
买一组充电的电池组,本次用的是12V的电池组,明显可以让小车轮子快速的转动。
本次设计中不足之处:
在刚开始选用电机时,选用的是一般的直流电机,导致了小车在运行时会轻微的偏移方向。
可以换成歩进电机,不仅可以让小车沿直线运行而且可以有一定角度的转弯。
只实现了基本的功能,没有实现循轨迹、避障功能。
扩展功能:
可以实现循轨迹、避障功能。
轨迹是该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。
笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。
在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。
传感器的选择,市场上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 单片机 遥控 毕业 课程设计