多功能小车论文.docx
- 文档编号:7964035
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:26
- 大小:293.66KB
多功能小车论文.docx
《多功能小车论文.docx》由会员分享,可在线阅读,更多相关《多功能小车论文.docx(26页珍藏版)》请在冰豆网上搜索。
多功能小车论文
单片机课程设计论文
题目
多功能遥控小车
姓名
学号
彭伟伟
200606002251
周显恩
200606002241
薛培培
200606002233
院系
湖南科技学院电子工程系
班级
0602班
指导教师
谭永宏
目录
摘要---------------------------------------------------------------3
一、系统方案选择和论证----------------------------------------------4
1、1各模块方案选择和论证
1、2系统基本方案
二、系统硬件和软件的设计与实现--------------------------------------5
2、1系统硬件框图
2、2系统软件流程图
2、3单元电路设计
2、4模拟仿真图及其说明
三、电路组装调试---------------------------------------------------11
3、1制作硬件电路
3、2组装调试电路
3、3调试的方法及调试过程中的故障、故障原因和故障的排除方法
四、系统测试-------------------------------------------------------12
4、1测试仪器
4、2测试数据及相关分析
4、3系统实现的功能
五、总体设计电路的优缺点总结及改进意见和展望-----------------------12
六、心得体会-------------------------------------------------------13
七、主要器件简介及相关原理说明-------------------------------------13
八、元件清单-------------------------------------------------------19
九、参考文献-------------------------------------------------------19
十、主程序及其头文件-----------------------------------------------20
十一、系统总体设计电路图-------------------------------------------20
多功能遥控小车
摘要
本设计基于单片机(AT89C52R)的步进遥控小车的的设计,打开密码锁可进入功能界面,选择不同功能键可进入键盘控制步进电机界面、遥控电机界面、时间显示界面、温度显示界面和密码修改界面。
若密码输入有误,则提示密码输入错误。
此设计集密码锁、步进电机控制、红外遥控、数字时钟和温度采集等多项功能于一体,是一台多功能的小车。
关键词:
89C52、多功能、红外、温度、时间、步进电机
Multi-functionRemoteControlCar
Abstract
Thedesignisacontrolcarwithsteppermotorwhichisbasedonsingle-chipmicrocomputer(AT89C52R).Itcanenterthefunctionalinterfacewhileopenthelocks,thenchoosedifferentfunctionkeyscanaccesstothekeyboardinterfaceofsteppermotor,electricremotecontrolinterface,thetimedisplayinterface,temperaturedisplayinterfaceandpasswordmodifyinterface.Ifthepasswordwhichinputtediswrong,thenpromptedthepasswordiswrong.Thisdesignhasfunctionsofpasswordlock,steppermotorcontrol,infraredremotecontrol,digitalclockandtemperaturecollected.Itisamulti-purposecar.
Keywords:
89C52R,multi-function,infrared,temperature,time,steppermotor
一、系统方案选择和论证
1、1各模块方案选择和论证
主控模块的选择:
方案一:
采用单CPU进行系统控制,系统简单,机械负载轻。
而且在单片机I/O合理复用的情况下,能满足本设计的要求,且系统相对较简单。
方案二:
采用主从双CPU系统,用AT89C52作为主CPU,AT89C2051作为从CPU,主CPU负责系统的控制和协调工作,从CPU负责键控电机和遥控电机,并以中断形式反馈给主CPU。
该方案的设计可以降低单个CPU的工作量,而且可为发挥部分的制作以及其他功能提供了充足的内部空间和更多的外部接口。
两方案相比而言,方案一已经完全能符合本设计的要求,方案二能降低单个单片机的使用率,但本设计单片机的使用率并没用达到极限,再从经济等综合方面考虑,采用方案一。
步进电机驱动电路的选择:
方案一:
采用uln2803或者是uln2003作为步进电机的驱动芯片,使用双列齐插式封装的uln2803或者是uln2003使得步进的驱动电路变得尤其的简单,且十分经济,但是这类驱动芯片的驱动能力不够强,如uln2003最大只能提供0.5A的驱动电流。
方案二:
采用l298和l297的组成的电流细分电路做为步进电机的驱动电路,这样不仅可以提供足够大的驱动电流,同时可以减小步进电机的步距角,但是l298比之uln2083和uln2003要贵的多。
两方案相比而言,方案一的电流驱动能力已经能符合本设计的要求,方案二能为步进电机提供足够大的电流,也能减小步距角,可本设计的步进电机额定电流是小于0.5A,而且对步距角的要求不高,综上考虑,采用方案一。
显示器件的选择:
方案一:
采用液晶lcd1602,能显示32个字符,同时用数据缓冲区,而且功耗很低,不需要加驱动,但是与数码管相比,它不够明亮,也不够经济。
方案二:
采用数码管,亮度高,经济,但是为了使LED做够亮,为了提高数据的可靠性,需要外加驱动电路和缓冲电路,这不仅使得电路复杂化,同时也提高了设计成本,还提高了硬件调试的难度。
两方案相比而言,方案一的能较好的满足本设计要求,尤其考虑到复杂的功能界面和密码锁,而方案二不但不能较好的满足密码锁和功能界面设计的要求,同时还要占用更多的单片机的I/O口,综合考虑采用方案一。
电机遥控方案的选择:
方案一:
采用无线实现遥控,这样在有障碍物的情况下,同样呢个对小车进行控制,但是硬件模块比较复杂。
方案二:
采用采用红外方式实现对小车的遥控,这样只要一个红外接收一体头便能实现,硬件电路十分的简单,而且软件实现也十分容易。
两方案相比而言,采用方案二。
1、2系统基本方案
用单片机89C52R做为整个控制系统的控制中心,用红外接收一体头实现小车的遥,用uln1803做为步进电机的驱动,通过时钟芯片DS1302来显示当前的年月日等信息,用集成温度传感器DS18B20来检测现场温度,步进电机用uln2803作为驱动,小车的两电机可通过4X4的键盘来控制,也可以用红外来遥控,要想进入整个系统的控制界面,必须先输入正确的密码,进入控制界面可从新设定密码。
小车的转弯功能通过控制两电机的速度来实现,例如要实现小车的左转弯可是小车的与右边车轮相连的步进电机加速。
二、系统硬件和软件的设计与实现
2、1系统框图
系统如上图所示,89C52R做为控制中心,其中驱动电路单独供电,以减少电机对其他控制电路的影响。
2、2系统软件流程图
主程序结构框图如左图所示,通过一个主功能界面来对所有的功能进行管理,这其实是对单片机的I/O口进行了复用,大大提高了CPU的使用效率。
2、3单元电路设计
MCU和键盘显示模块
4x4的键盘的作用是实现密码锁的功能,在进入功能主界面后,当选择键盘控制步进电机这项功能是实现对电机的控制,当进入时间显示功能时实现校时功能,当进入密码设定功能时实现密码的重新设定,进入其他功能4x4键盘无作用;
lcd1602则实现显示各种提示信息。
4x4键盘和lcd1602实现了一种简单的人机交互功能。
步进电机驱动模块
电机驱动采用了电流型驱动芯片uln2803,它是一种小而美的步进电机驱动芯片,采用dip18的封装形式,最大的驱动电流能达到0.5A。
实际电路中为了进一步提高uln2803输入端的电流,在它的每个输入端均使用了一个三极管(PNP型三极管9012)驱动。
时钟模块
时间显示采用了时钟芯片ds1302来实现,若能采用高精度的晶振,则精确显示年、月、日、星期和时间信息。
实际电路中为了在掉电是时间信息不丢失,采用一个CMOS电池作为备用电源。
温度检测模块
温度传感器采用了单总线结构的ds18b20,它能测量-55摄氏度到125摄氏度的温度测量,且分辨率能达到12位,完全能满足室温的测量要求。
红外接收模块
红外接收设备采用了红外接收一体头1838,硬件电路十分简单,且软件译码很容易实现。
红外接收头接到中断1口,用中断一实现红外接收。
通过红外遥控可以实现,电机的两电机正反转和加减速的控制,也就是能通过遥控器控制小车的行进方向和速度。
2、4模拟仿真图及其说明
密码锁
密码锁的键盘分布如左图所示,系统启动后界面如下图所示。
输入密码后按确认键,如果密码正确则可进入主功能界面,依次显示5个功能键的位置,如果密码输入错误,则提示密码输入错误,只有再次将系统复位才能再次输入密码。
注:
空白键是没有被使用的按键。
密码输入正确后,功能键的分布如上图所示,返回键的作用是在进入各功能界面后,返回此主功能界面。
功能键的提示如下3图所示,逐次进行显示。
键盘控制电机
键控电机的键盘分布如上左图所示,只能对一个电机进行控制,它的控制界面如上右图所示。
红外遥控
进入红外遥控功能界面便显示如左图所示,当有控制键按下后,便显示出此按键的二进制键码,同时显示出步进电机每步间的时间间隔和电机的运行方向。
可对两电机进行遥控。
此设计利用红外遥控器键码为00000001、00000100、00000111分别作左轮电机的加速、减速和方向控制,红外遥控器键码为00000011、00000110、00001001的三个键分别作为右轮电机的加速、减速和方向控制。
其实就是遥控器的数字键1、4、7和3、、6、9数字键。
时间显示
时间显示界面如左图所示,还可以通过键盘进行校时。
因校时功能没有完全实现,故其键盘分布,在此不加说明。
温度显示
温度显示界面如左图所示,能检测现场摄氏温度,并精确到小数点后两位。
密码设定
密码设定功能没用完全实现,因为考虑到单片机容量问题,此功能不能较理想的完成,如果外加ROM或使用两单片机便能很好的实现此功能。
三、电路组装调试
3、1制作硬件电路
本设计使用万用板完成所有电路设计,因为此设计没涉及到十分复杂的模拟电路,因此硬件制作没遇到很大困难。
电路板共由5小模块组成,其中四个模块的自己制作。
这五个模块是:
主板模块,它是一个单片机的最小系统,此模块上有两个发光二极管和一个蜂鸣器(用于调试程序),还要温度检测模块;LCD显示模块,它可实现LCD1602的灰度和亮度的调节;步进电机驱动模块,它是电机和MCU的接口,为了减少电机对控制电路的影星,也为了提升驱动模块的驱动力,控制电路和驱动电路使用各自独立电源供电;时钟和遥控接收模块,这个模块主的两个主要器件是ds1302和红外接收一体头1838;4x4键盘模块,它也是一个独立的电路板,此模块无上拉电阻。
此外还有一个成品的红外遥控器,用它完成对小车的遥控任务。
3、2组装调试电路
在制作各个模块时,先单独完成其中的一个模块焊接,电路焊接完成后,确认电路无误,上电进行硬件和软件的综合调试。
当所有模块单独调试成功后再进入整机的系统综合调试阶段,找出软件中存在的缺点并更正。
除键盘之外的各个模块都是用插针连接,因此只需将各个小模块插到主板上即可。
3、3调试的方法及调试过程中的故障、故障原因和故障的排除方法
确认硬件无误,将程序下入到微机中和仿真效果对比或观察期逻辑控制效果。
其中主板、LCD1602显示模块的硬件制作和软件调试都十分顺利,和仿真效果完全一致,温度检测模块调试也很顺利,不过仿真和实物调试有差异,仿真时温度显示不能显示出小数点,而实物调试时可以的,这完全符合此设计思路。
驱动模块调试过程中发现给驱动芯片加上+15V的电压时,步进电机还是速度很慢,因此为了进一步加大uln2803的输入电流,在uln2803的每一个输入端加上了一个PNP的三极管9012,这样电机的速度等到了一定的提高,而且仅需要+5V的驱动电压即可。
ds1302在调试时,秒钟不动,因此怀疑是ds1302的晶振电路可能出了问题,于是将提升晶振精度的两个电容去掉,问题解决,最后重将两电容焊上,电路工作正常。
红外接收的调试不能用proteus进行仿真,因此是直接进行实物调的。
调试时先通过发光二极管观察红外接收头能否接受的遥控器的信号,次测试中因软件的延时不对,最终将11.059M的晶振换成了12M的晶振,接收头能接收到遥控器信号。
确认能接受到信号后,便将接收到的这一串数据显示的LCD上面以实现对各个遥控键控键盘各个按键的的功能分配工作,此模块调试占用了较长的时间,不过按要求完成了设计功能。
四、系统测试
4、1测试仪器
双踪示波器
4、2测试及相关分析
用双踪示波器观察ds1302的晶振的频率
测得数据略大于32768HZ,和标称值是相符合的。
之后按仿真步骤进行测试,逻辑和仿真相符。
步进电机的速度最大是,步距的时间间隔大约是650us.对时钟进行了4个多小时的测试观察,发现四个小时后大约要比市场上的标准手表快了大约一秒。
4、3系统实现的功能
此设计实现了密码锁功能,步进电机的控制功能,时钟功能,温度检测功能和红外遥控功能。
但是有些功能没能非常出色的完成,比如密码锁的密码重新设定功能和时钟的校时功能。
五、总体设计电路的优缺点总结及改进意见和展望
本设计简单易实现,但在某些元件的选取不够经济。
密码锁和时钟的设计可以加入EEPROM这样不仅仅可以提高密码锁安全性,也能为单片机节约空间,以使得密码锁功能能完美的完成。
为了使时钟显示更加的突出显眼,可以选用较高亮度的LED进行时间的显示。
为了节约成本,还可以自制无线的发射接收设备,用以代替红外遥控器和红外接收一体头,不过这还要考虑到引入高频信号对控制电路是否会造成其它方面的影响。
六、心得体会
从这次设计当中我们学到了很多,它教会了我在设计电路的电路图之前必须深明其原理,并在硬件电路制作过程中小心仔细,不然他将使得我们的调试工作复杂化。
其次就是我们设计各模块时利用模块化的思想是相当好的,但如果模块过多,连接线也会相应增加,因此事先必须考虑好各个模块的连接和安放。
这次设计让我们学会了如何组织一个大型的系统程序,如何对单片机的资源进行合理分配和高效利用。
这次设计还让我们学会了ds1302和ds18b20的使用,掌握了步进电机的工作原理及其它的控制,学会了红外接收一体头的编程。
最后就是通过此设计使我们对以前学过的知识进行了巩固,而且增强了我们的动手能力和创新意识,我们深刻的体会到学以致用这个词语的真正含义,因为设计做的很成功所以我们都很有成就感,相信只要不断地努力学习,大胆地发挥创新能力,再难的设计都难不倒我们。
总之,经过这次单片机设计使我们在硬件制作和软件编程方面都有了较大的提高。
七、主要器件简介及相关原理说明
1.1602字符液晶
.简介
工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
注:
为了表示的方便,后文皆以1表示高电平,0表示第电平。
管脚功能
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VDD接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
操作控制
操作
读状态
写指令
读数据
写数据
输入
RS=0,RW=1,E=1
RS=0,RW=0,
D0~7=指令码,E=H脉冲
RS=1,RW=1,E=1
RS=1,RW=0,
D0~7=数据,E=H脉冲
注:
关于E=H脉冲——开始时初始化E为0,然后置E为1,
2.DS1302
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
引脚功能及结构
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
下图为DS1302的引脚功能图
DS1302封装图
DS1302的控制字节
DS1302的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
为了实现系统报警计时等功能,此设计采用了DS302实时时钟芯片。
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
2.1引脚功能及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK始终是输入端。
3.DS18B20
DS18B20的数字温度计提供9至12位(可编程设备温度读数。
信息被发送到/从DS18B20通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。
为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。
因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。
这使得温度传感器放置在许多不同的地方。
它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。
存储器
DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。
存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。
当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。
当修改过寄存器中的数时,这个过程能确保数字的完整性。
高速暂存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 小车 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)