《基于单片机的智能小车_毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能小车_毕业论文.doc(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本科毕业设计(论文)基于单片机的智能小车控制专业: 测控技术与仪器 姓名:咸蛋小超人2013年 6 月52 / 57基于单片机的智能小车控制 摘要:智能化作为现代电子产品的新趋势,是今后的电子产业的发展方向。智能化设计的电子产品可以按照预先设定的模式在一个环境里自动运作,不需要人为的管理,可应用于科学勘探、环境监测、智能家居等方面。基于单片机的智能小车控制就是其中的一个体现。本设计实现了一种基于51单片机的自动避障智能模型车系统,通过红外传感器采集路况信息,通过对检测信息的分析,自动控制转向电机转向,改变行驶路径,绕过障碍物,从而实现车稳定避障。本课题设计的智能小车,具有自动避障功能,超声波
2、测距报警,无线电遥控等功能。关键词:智能车;51单片机;避障;红外线Smart car based on SCM controlAbstract:As a new trend of modern electronic products, intelligent is the developmental direction of electronic industry after then. Electronic products, which are intelligently designed, can automatically operate following the mode tha
3、t is pre-set. Without the management of human beings, it can be used for scientific exploring, environmental monitoring, intelligent home furnishing, etc. One of the embodiments is the intelligent control car which is based on single chip microcomputer. In the design, an intelligent model car system
4、 based on MCU 51 has been realized. It can collect traffic information with infrared sensors. Meanwhile, by the analysis of information examined, it can transfer from automatic control to motor steering in order to change the route and dodge the obstacles so that the steady avoidance of the barrier
5、can come true.In this paper, a car with the ability of intelligent judgment has been designed and made. It functions as the device which can dodge obstacles automatically, alarm with ultrasonic distance examination, and remote control by radio.Key words: Smart Cart;Single-chip 51;Obstacle Avoidance;
6、Infrared目 录序 言3第1章 总体设计方案4 1.1课题任务分析4 1.2 方案论证41.2.1小车遥控部分51.2.2小车驱动部分6第2章 系统硬件构成72.1系统设计原理72.2主要元器件简介72.2.1 STC89C52RC简介72.2.2 NRF24L01无线收发芯片简介82.2.3 L298N芯片直流电机驱动模块92.2.4 红外避障模块92.2.5 HC-SR04超声波测距模块112.2.6 蜂鸣器驱动电路132.2.7 液晶显示电路132.2.8遥控部分独立按键电路14第3章 软件的设计与说明153.1软件设计153.2软件的说明163.2.1 遥控部分主程序流程163.
7、2.2 24L01子程序流程图173.2.3 小车部分主程序流程图18第4章 调试与总结204.1硬件部分204.1.1硬件的焊接204.1.2 24L01无线电模块204.1.3 外接电源模块204.2 软件部分214.2.1 超声波模块214.3 小车联调214.4 调试的总结23参考文献24致 26附录27附件1 L298N电机驱动模块27附件2 小车侧视图28附件3 小车俯视图29附件4 小车的遥控部分30附件5 小车最终硬件图31附件6 程序清单321.遥控部分程序322.小车部分程序41附件7 元器件清单50 附件8 英文资料与中文翻译51序 言随着我国科学技术的进步,智能化和自动
8、化技术越来越普与,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉与到当今许多前沿领域的技术1。而智能电动车正是智能机器人的一种,具有不可估量的实际意义。智能车辆是一个运用计算机、传感、信息、通信、导航、人工智能与自动控制等技术来实现环境感知、规划决策和自动行驶为一体的高新技术综合体。它在军事、民用和科学研究等方面已获得了应用,对解决道路交通安全提供了一种新的途径。随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省电子大赛几乎每次都
9、有智能小车这方面的题目,全国各高校也都很重视该题目的研究,许多国家已经把电子设计比赛作为创新教育的战略性手段。电子设计涉与到多个学科,机械电子、传感器技术、自动控制技术、人工智能控制、计算机与通信技术等等,是众多领域的高科技2。电子设计技术,它是一个国家高科技实例的一个重要标准,可见其研究意义很大。第1章 总体设计方案1.1课题任务分析 当前的电动小汽车基本上采取的是基于纯硬件电路的一种开环控制方法, 或者是直线行使, 或者是在遥控下作出前进、后退、转弯、停车等基本功能。但是这不能满足某些特殊场合下的要求。基于此,本文设计了智能小车控制系统。智能小车是一个运用传感器、单片机、信号处理、电机驱动
10、与自动控制等技术来实现环境感和自动行驶为一体的高新技术综合体,它在军事、民用和科学研究等方面已获得了应用。 通过各种选题之后,我们发现制作智能小车非常有意思,它唤起我们对玩具的革新思想,智能小车制作的兴趣。自己遇到过的汽车的功能是怎样的,想通过自己的手创作出属于自己的智能汽车。也夹杂一种童年时对玩具智能化的假想。所以我选定制作单片机智能小车。 通过这次设计,掌握51单片机的原理,了解简单传感器组成原理,初步掌握传感器的调整与测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解传感器各单元电路之间的关系与
11、相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握传感器的调整与测试方法。提高动手能力和排除故障的能力。本设计采用直流减速电机,电机专用驱动芯片L298N进行电机驱动控制,主控芯片为STC89C52,测距部分采用超声波模块,控制器采用24L01无线电通信模块,自动避障部分采用红外收发模块。本次设计虽然只是一个演示模型,但是具有充分的科学性和实用性。首先我们根据交通路面的复杂情况,按照适当的比例制作出一个路况模型,包括弯道、直道以与路面上设置的障碍物等。在弯、直道上,小车沿着预定轨道自由行使,当小车遇到障碍物时,脉冲调制的红外线传感器将检测到的信号发送给单片机,单片机根据程序发出相应
12、的控制信号控制小车自动避开障碍物。由无线模块控制小车进行倒车、前进、左转、右转等动作。1.2 方案论证1.2.1小车遥控部分方案一:小车的无线通信模块采用红外遥控,红外收发遥控是目前大部份遥控小车采用的遥控手段,红外遥控具有代码简单,操作性强的特点。如图1-1为红外遥控模块实物图。图1-1 红外遥控模块实物图 方案二:小车的通信模块采用无线电NRF24L01模块,NRF24L01是一款工作在2.42.5GHz,世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockburstTM模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以
13、通过SPI接口进行设置。如1-2为NRF24L01无线模块实物图。图1-2 NRF24L01无线模块实物图 方案论证:方案一中的红外遥控模块的信号传送距离有限,并且发送和接收的红外信号容易受到干扰。NRF20L01发射频率高,所受到的干扰影响较小,无线通信的距离比红外的要长许多。小车的遥控是小车的最主要的部分之一,所以选择NRF24L01无线通信模块,故选择方案一。1.2.2小车驱动部分方案一:小车的电机驱动部分采用自己搭建的9012三极管电路来实行小车的驱动,9012三极管电路具有电路简单,操作方便的等特点。方案二:小车的电机驱动部分采用L298N芯片直流电机驱动模块,该模块具有较大的驱动带
14、载能力,驱动部分端子供电围Vs:+5V+35V,并且另外自带了5V、3V的输出端口。方案论证:本设计为4轮驱动的小车,对于小车驱动部分要求能够有较大的帯载能力,并且在小车的实际设计过程中,需要不同的输出电压来提供给小车的各个模块。因此综上所述采用方案二,小车的电机驱动部分使用L298N芯片直流电机驱动模块。第2章 系统硬件构成2.1系统设计原理 本设计主要分为两部分:遥控部分和小车部分。遥控部分主要由电源电路,单片机最小系统,无线电模块组成,遥控部分的系统框图如图2-1所示。图2-1 遥控系统框图 小车部分由电源电路,单片机最小系统,显示电路,无线电木块,报警电路,超声波电路等电路模块组成,小
15、车部分的系统框图如图2-2所示。图2-2 小车的系统框图2.2主要元器件简介2.2.1 STC89C52RC简介常用的单片机有很多种:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、华邦(Winbond)W78系列、荷兰PiliPs的PCF80C51系列、MicrochiP公司系列4位单片机、义隆的EM-78系列等1。本次设计最终选用了STC89C52单片机。本系统采用最常用的STC89C52单片机,它是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低
16、电压,高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器。STC89C52单片机为很多嵌入式系统提供了一种灵活性高且价廉的方案。6引脚排列如图2-3所示。图2-3 STC89系列引脚排列2.2.2 NRF24L01无线收发芯片简介NRF24L01是一款工作在2.4-2.5GHz,世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockburstTM模式控制器、功率放大器、晶体振荡器、调制器
17、、解调器。输出功率、频道选择和协议的设置可通过SPI接口进行设置。极低的电流消耗:当工作在发射模式下发射功率为-6dBm时电流消耗为9mA,接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低。NRF24L01引脚排列如图2-4所示。图2-4 NRF24L01引脚排列2.2.3 L298N芯片直流电机驱动模块该模块由L298N作为双H桥直流电机驱动芯片,驱动部分端子供电围Vs:+5V+35V。如果在模块上取电压供电,则模块供电围为Vs:+7V+35V。模块的驱动不封峰值电流Io为2A。其他相关参数见表2-1。模块的实物图见附录附件1(注:红色线框部分为电源接口)。表2-1 L298N芯片
18、直流电机驱动模块产品参数逻辑部分端子供电围Vss 5V7V(可板取电5V) 逻辑部分工作电流围 036mA 控制信号输入电压围 低电平:0.3VVin1.5V 高电平:2.3VVinVss 使能信号输入电压围 低电平:0.3Vin1.5V(控制信号无效) 高电平:2.3VVinVss(控制信号有效) 最大功耗 20W(温度T75时) 存储温度 25130驱动板尺寸 82mm*57mm*33mm (带固定铜柱,散热片高度) 驱动板重量 60g 其他扩展 控制方向指示灯、 逻辑部分板取电接口 2.2.4 红外避障模块红外避障的原理:用红外线传感器进行避障。红外线发射头与接收头于一体的检测开关,其工
19、作原理是根据发射头发出的光束,被物体反射,接收头据此做出判断是否有障碍物。当有光线反射回来时,输出低电平。当没有光线反射回来时,输出高电平。单片机根据接收头电平的高低做出相应控制,避免小车碰到障碍物。由于接收管输出TTL电平,有利于单片机对信号的处理。红外接收二极管又叫红外光电二极管,也可称红外光敏二极管。它广泛用于各种家用电器的遥控接收器中,如音响、彩色电视机、空调器、VCD视盘机、DVD视盘机以与录像机等。红外接收二极管能很好地接收红外发光二极管发射的波长为94Onm的红外光信号,而对于其他波长的光线则不能接收。因而保证了接收的准确性和灵敏度。 小车采用红外线传感器进行避障的电路原理图如下
20、图2-5所示,实物图如图2-6所示。红外模块的功能指标如表2-2所示。表2-2 红外模块的功能指标使用芯片 NE555 工作电压 3.3V - 5V 输出模式 数字信号 测量距离 1CM - 200CM 探测距离是否可以调节 是 检测信号 探测到障碍物为高电平,无障碍物或超出探测围输出低电平 LED 红色为Power指示灯,绿色为Status指示灯 图2-5 红外线传感器进行避障的电路原理图图2-6 红外线传感器进行避障的实物图2.2.5 HC-SR04超声波测距模块HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm;模块包括超声波发射器
21、、接收器与控制电路。基本工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2。 HC-SR04超声波测距模块的时序图如图2-7所示。图2-7 超声波模块时序图以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收
22、到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者 uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。 HC-SR04超声波测距模块的电路图如图2-8所示,实物图如图2-9所示。图2-8 超声波模块的电路图图2-9 超声波模块实物图2.2.6蜂鸣器驱动电路蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标
23、准用“FM”、“LB”、“JD”等)表示。由于自激蜂鸣器是直流电压驱动的,不需要利用交流信号进行驱动,只需对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音(其驱动电路如图2-10所示),利用定时器来做定时,通过定时翻转电平产生符合蜂鸣器要求的频率的波形,这个波形就可以用来驱动蜂鸣器了。图2-10 蜂鸣器驱动电路2.2.7液晶显示电路该设计的显示部分采用LCD1602来显示超声波测距模块测得的距离。对于现实电路我们可以采用数码管,也可以采用液晶显示。液晶显示相对于数码管显示电路更简洁,显示更明了,故我们采用液晶显示电路。液晶又分字符型和点阵型,我们使用的液晶是字符型液晶。LCD1
24、602自带字符库,不需要查找代码,英文字符可直接使用。液晶电路使用时,如果发现液晶不亮可以调节连接液晶的电位器,调节液晶的亮度。液晶显示电路如图2-11所示。图2-11 液晶显示电路2.2.8遥控部分独立按键电路遥控部分的独立按键与单片机的接口设置为P2.0、P2.1、P2.2、P2.3、P2.4,分别控制小车的前进、后退、左转弯、右转弯、以与功能切换。独立按键采用低电平触发,即当按下按键时给单片机一个低电平信号,单片机随后做出相应的处理,当按键松开时,单片机接收到一个高电平信号,单片机随后继续做出相应处理。遥控部分的独立按键电路如图2-12所示。图2-12 遥控部分独立按键电路第3章 软件的
25、设计与说明3.1软件设计系统功能的实现依赖于软、硬件的协同工作。主控芯片为STC89C52RC单片机。单片机控制软件实现遥控和小车的各项功能。程序编译采用Keil uVision4编程软件,Keil uVision4程序编译界面如图3-1所示。程序部分采用目前单片机最通用的C语言进行编程。程序的烧录软件采用STC_ISP_V479软件烧写编译好的HEX文件,STC_ISP_V479软件程序烧写界面如图3-2所示。图3-1 Keil uVision4编程软件界面图3-2 STC_ISP_V479软件程序烧写界面3.2软件的说明3.2.1 遥控部分主程序流程遥控部分主程序流程图如图3-3所示。程序
26、从主函数开始执行,24L01无线模块初始化,同时在主函数中定义单片机口对应的按键按下时所发出的函数值。接下来判断是否有按键按下,如果有按键按下,则发送相应的按键对应的函数值,接着判断是否又有按键按下。如果未发现按键按下则在主函数中循环判断是否有按键按下。图3-3 遥控主程序流程图3.2.2 24L01子程序流程图 24L01子程序流程图如图3-4所示,本模块子程序采用收发一体的驱动程序,即使该模块既可以在需要时发送信号,又可以在需要时接收信号。24L01子程序模块先初始化,初始化的同时在设置的写入reg函数中写入本地地址,写入接收端地址,并且设置频道0自动ACK应答允许。设置24L01的允许接
27、收地址只有频道0,并且是信道工作在2.4GHz,以与设置数据长度为32字节,发射速率为1MHz。图3-4 24L01子程序流程图3.2.3 小车部分主程序流程图 小车部分主程序流程图如图3-5所示。程序从主函数开始执行,24L01无线模块初始化,液晶显示模块初始化,24L01无线电模块初始化,超声波模块初始化。各个模块初始化完毕后,单片机判断是否接受到了信号,如果接收到信号,则判断相应的按键值,如果没有接收到按键值则返回继续判断是否接受到信号。接收到信号后,小车开始执行键值对应的相应的命令。而超声波测距,并在液晶上显示相应距离,危险距离报警都是贯穿在整个while(1)的语句中的。图3-5 小
28、车部分主程序流程图第4章 调试与总结 基于单片机的智能小车控制有许多的模块,在做整体设计之前首先是对每个模块的调试。只有在确保每个模块都正常的情况下才能进行总体的设计和总体的调试。每个模块都需要软硬件的调试才能确保模块的正常。4.1硬件部分4.1.1硬件的焊接 单片机的电路系统相对于简单一些,对于焊接只要多练习就不会出现问题,但是,单片机的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交叉线较多,对于各种锋利的引脚都要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。 在本次单片机的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,主要问题在于
29、单片机上的测试用灯不亮,原因出于焊接时间过长导致电路板上的金属片脱落,造成断路。解决方案:重新引线使电路重新导通。4.1.2 24L01无线电模块24L01模块是直接购买的模块,在调试的时候按照商家提供的时序图,编写程序后却一直无法通信,既不接受信号也不发送信号。首先排除了程序上的错误,然后对硬件各部分电压进行测量并无发现异常,最后详细的阅读了说明书,发现24L01是3.3V3.6V电压供电,而自己设计的电源部分缺少了去耦电容导致了硬件的无常工作。解决方案:在3.3V电源处并入1个104瓷片电容,1个100uF电解电容,减少电源的波动对模块带来的影响。4.1.3 外接电源模块在刚刚接触小车的时
30、候,本设计的小车应为是4轮驱动的,所以比一般的小车更加吃电流,刚刚开始使用的普通的电池仅仅调试几次就没电了,而使用的两节3.7V的充电电池串联效果也不尽理想,该小车使用的减速电机对电流的要求非常大,故购买了SONY的电脑适配器,该适配器可以提供19.5V的输出电压,以与高达4.5A的直流电流。所以设计了采用7805,与7809并联的方式作为SONY适配器下级稳压输出,成为了小车的外部供电电源。由于小车的电流需求非常大,小车在该电源的供电下只能维持10s的行驶时间。在接下来的检查中发现,由于夏天天气热,7809散热比较慢,而单个7809的最高输出电流在1.5A。7809由于温度过高进入了掉电保护
31、模式。解决方案:在7809旁边并入一个7809,相当于加大了7809的输出电流。在此同时,在7809的片子上加上散热片,使7809与时散热。该方案的实施使得小车的续航能力大大提高。4.2 软件部分4.2.1 超声波模块超声波模块是直接购买的模块,在调试的时候按照商家提供的时序图,编写程序。但是编写后超声波测量时值测量一次,不能一直保持测量状态。经检查后发现,电路焊接正常,接口正常,所以排除了硬件问题的可能性。在接下来程序的检查中发现了超声波中count()计算函数放在了while(1)函数外面。 解决方案:超声波中count()计算函数放在while(1)函数的循环,并且根据时序图加上1ms的
32、延时。该方案的实施,使得小车能够一直保持测距的状态,并且在LCM1602上一直持续显示正确的数值。4.3 小车联调小车的联调是一个非常复杂的过程,在此过程中,不仅仅是对平时的专业知识的考验,更是对自己的耐心的考验。小车联调的时候遇到了很多问题:(1) 在无线电模块调试的时候,小车执行的动作与发射的信号的所需要执行的动作不一致,要求小车往左的时候小车并没有往左转弯,要求小车前进的时候小车也并没有前进。 解决方案:对小车的控制电机转动的IO口进行逐一排查,找出问题为小车的IO口与程序定义的有所不同。重新再程序中定义IO口后,小车就能按照无线信号发射的要求做出相应的动作。(2) 当无线电模块发射了相
33、应的信号后,小车执行的动作正确,但是有时候并没有执行相应的动作,如同“聋哑”一般不接收信号。当按键多次按下后,小车才执行相应的动作。解决方案:小车的“聋哑”并不是真正的“聋哑”,无线电模块在发射信号的时候并不是每次都能发射出去,发射出去的信号小车的接收部分的无线模块不一定能够接收。而且,按键的抖动也会对无线的发射信号产生影响。故在程序中有按键按下时,发射5次信号信号,提高无线模块的信号发射次数,并且在按键程序中加入10ms的去抖程序。实施该方案后小车对信号的接受灵敏度大幅度提高,能够准确快速的做出相应的信号所要求的动作。4.4 调试的总结通过这次设计,掌握51单片机的原理,了解简单传感器组成原
34、理,初步掌握传感器的调整与测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解传感器各单元电路之间的关系与相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握传感器的调整与测试方法。提高动手能力和排除故障的能力。调试期间要多向同学老师请教,有问题就该虚心请教。 经过多次的反复测试与分析,可以对电路的原理与功能更加熟悉,同时提高了设计能力与对电路的分析能力,同时在软件的编程方面得到更高的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。参考文献1 徐.移动机器人的发展现状与其趋势J
35、.机器人技术与应用,2001,(03):1102-1103,1150.2 宏业,段哲民编著.小型舞蹈机器人的驱动系统设计J.国外电子元器件.2005,(04):56-65.3 南主编.定位控制器的设计与实现J.科技大学学报. 2003.4谭浩强C语言程序设计M:清华大学,19985卫东,任思聪等温控箱数学模型的建立与其自适应PID控制J中国惯性技术学报,1995年,(3):4.6万福君. MCS-51单片机原理、系统设计与应用M. :清华大学,2008.7 宏业,段哲民编著.小型舞蹈机器人的驱动系统设计J.国外电子元器件.2005,(4).8 甘娜等编著.IBM-PC微机原理与接口技术J.:电
36、子科技大学,1998.9广清便携式温度传感标定装置D西北工业大学硕士学位论文,2007.10 鲍丽星,晓争一种高精度信号源的设计J航空航天大学,2008,16(4):588-59011 党宏社.智能车辆系统发展与其关键技术概述J公路交通科技,2002.(4)12 林敏.简易数字化语音存储与回放系统J.仪表技术,2008,28(9):13-18.13 余祖俊.微机监测与控制应用系统设计, 北方交通大学,2001.1214 温志明.运动控制系统分析与应用J,国防工业,2008.215 WANG SH X,WU G N,JIANG W,et al.The principle and illumina
37、tion applies of light emitting diodeJ.Light and Lighting, 2006,14(5):21-23.16I.M Filanvsky,H.Baltes.CMOS Schmit Trigger DesignJ.IEEE Transactioms on Circuits and System-Fundamental Theory andApplications.1994,41(1):46-49.致 在作品完成之际,我们要特别感XXX老师的热情关怀和悉心指导。在我们作品制作的过程中,老师们给了我们很多耐心的指导和启发,不仅让我学到了专业知识,还让我学到
38、了很多做人的道理。特别是他们广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我们终生受益,在此表示真诚地感。 在作品的制作过程中,也得到了许多同学的宝贵建议,在此一并致以诚挚的意。感所有关心、支持、帮助过我们的朋友。 最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位领导老师表示衷心地感!由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。附录附件1 L298N电机驱动模块附件2 小车侧视图附件3 小车俯视图附件4 小车的遥控部分附件5 小车最终硬件图附件6 程序清单1.遥控部分程序#include #include typedef unsigned c
39、har uchar;typedef unsigned char uint;/*NRF24L01端口定义*sbit MISO=P10;sbit MOSI=P11;sbitSCK =P12;sbitCE =P13;sbitCSN=P14;sbitIRQ=P15;/*按键*sbitKEY1=P20;sbitKEY2=P21;sbitKEY3=P22;sbitKEY4=P23;sbitKEY5=P24;/*NRF24L01*#define TX_ADR_WIDTH 5 / 5 uints TX address width#define RX_ADR_WIDTH 5 / 5 uints RX addre
40、ss width#define TX_PLOAD_WIDTH 20 / 20 uints TX payload#define RX_PLOAD_WIDTH 20 / 20 uints TX payloaduint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/接收地址uchar TxBuf20; / /*NRF24L01寄存器指令*#define READ_REG 0x00 / 读寄存器指令#defi
41、ne WRITE_REG 0x20 / 写寄存器指令#define RD_RX_PLOAD 0x61 / 读取接收数据指令#define WR_TX_PLOAD 0xA0 / 写待发数据指令#define FLUSH_TX 0xE1 / 冲洗发送 FIFO指令#define FLUSH_RX 0xE2 / 冲洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定义重复装载数据指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址*#define CONFIG 0x00 / 配置收发状态,CRC校验模式以与收发状态响应方式#define EN
42、_AA 0x01 / 自动应答功能设置#define EN_RXADDR 0x02 / 可用信道设置#define SETUP_AW 0x03 / 收发地址宽度设置#define SETUP_RETR 0x04 / 自动重发功能设置#define RF_CH 0x05 / 工作频率设置#define RF_SETUP 0x06 / 发射速率、功耗功能设置#define STATUS 0x07 / 状态寄存器#define OBSERVE_TX 0x08 / 发送监测功能#define CD 0x09 / 地址检测 #define RX_ADDR_P0 0x0A / 频道0接收数据地址#defi
43、ne RX_ADDR_P1 0x0B / 频道1接收数据地址#define RX_ADDR_P2 0x0C / 频道2接收数据地址#define RX_ADDR_P3 0x0D / 频道3接收数据地址#define RX_ADDR_P4 0x0E / 频道4接收数据地址#define RX_ADDR_P5 0x0F / 频道5接收数据地址#define TX_ADDR 0x10 / 发送地址寄存器#define RX_PW_P0 0x11 / 接收频道0接收数据长度#define RX_PW_P1 0x12 / 接收频道0接收数据长度#define RX_PW_P2 0x13 / 接收频道0接收数据长度#define RX_PW_P3 0x1