毕业设计(论文)-基于C8051F020单片机的运水机器人设计.doc_第1页
毕业设计(论文)-基于C8051F020单片机的运水机器人设计.doc_第2页
毕业设计(论文)-基于C8051F020单片机的运水机器人设计.doc_第3页
毕业设计(论文)-基于C8051F020单片机的运水机器人设计.doc_第4页
毕业设计(论文)-基于C8051F020单片机的运水机器人设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

理工类 本科生毕业设计(论文)( 2011届 ) 题 目: 运水机器人 学 院: 数理与信息工程学院 专 业: 电子信息工程 学生姓名: 学号: 指导教师: 职称: 教授 合作导师: 职称: 完成时间: 2011 年04月23日 成 绩: 浙江师范大学本科毕业设计(论文)正文目 录摘要11 引言21.1 课题研究背景21.2 系统功能和指标21.2.1 系统功能31.2.2 系统指标32 设计任务与方案论证32.1 设计任务3设计任务3功能及要求32.2 系统总体方案42.3 循迹模块部分方案42.4 MCU部分52.4.1 方案论证52.5 电机驱动部分方案62.6 卸水装置72.7 液晶显示模块72.8 无线传输方案82.9 主控台方案82.10 方案确定83 单元电路设计93.1 C8051F020系列单片机简介93.1.1 系统概述93.1.2 CIP-51TM CPU93.1.3 片内存储器103.1.4 JTAG 调试和边界扫描113.1.5 可编程数字I/O 和交叉开关113.2 C8051F020硬件电路设计123.3 无线收发电路设计133.3.1 NRF2401特征133.3.2 概述143.3.3 工作原理143.3.4 工作模式153.3.5 SPI接口163.3.6 配置寄存器地址174 软件设计194.1 软件开发平台194.2 主程序概述194.3 部分模块子程序流程图设计205结果及分析215.1 测试仪器215.2 测试数据215.3 测试结果分析226 结束语 237 致谢24参考文献25附录:2628运水机器人运 水 机 器 人数理与信息工程学院 电子信息工程专业 指导老师: 摘要:本系统在以C8051F020单片机为主控制核心的监控下实现小车自动运水各项功能。在给水模块中,采用C8051F330单片控制水泵来实现定时定量给水功能。利用红外收发传感器检测黑色引导线,来引导小车前进、后退、停止;利用超声模块波实现小车蔽障;采用主控单片机的PWM波输出控制左右直流电动机转速,从而改变小车的运动状态及转向;利用两个舵机来实现小车自动卸水功能;NRF24L01无线发射接收模块实现小车平台和给水站台间的数据传输;采用车载液晶mzlh12864实现小车运水量和运水时间的显示。本系统硬件配置合理,控制方案优化,实现了小车在不同外部环境下的准确控制。关键词:C8051F020;红外传感器;无线收发模块;舵机;蔽障Water robot Yecheng Director:ZHANG Haoran(College of Mathematics, Physics and Information Engineering ,Zhejiang Normal University,Jinhua) Abstract: C8051F020 SCM in this system as the core to control the monitoring mainly realize C8051F020 SCM in this system as the core to control the monitoring mainly realize precise control of car. In the water supply module, using C8051F330 single-chip control to realize the function of water pump, Using the infrared emission test for pipe receives black guide line to guide the car to stop, forward, backward, Ultrasonic wave condition declivitous car; realizing modules, Direct MCU control PWM output port dc speed and turn around, thus changing the Angle motion and steering car,Using two steering gear to realize the function of water discharge car, NRF24L01 wireless transmitting receiving modules realize car platforms and water of data transmission between platform, Mzlh12864 achieve car transport vehicle crystal water and water time display. The hardware configuration and control scheme optimization, reasonable realized the car in different external environment accurately Key words: C8051F020;Infrared sensor;Wireless module;steering;keep away from obstacles 1 引言在最近几年,随科学技术的进步,智能化和自动化技术越来越普及。本设计就把这一设想基本变成了现实,小车利用传感器实现了对小车的智能控制使它可以沿地面黑线行走,实现了对机器人运送水的基本智能控制。1.1 课题研究背景本课题为应用型课题,来源于时下科学界较热门的话题:现今汽车电子正在迅猛发展,智能车涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的科技,这对进一步深化高等工程教育改革,培养本科生获取知识、应用知识的能力及创新意识,培养学生从事科学、技术研究能力,培养学生动手能力、技术创新具有重要意义。在当今劳动力昂贵,智能化快速发展的时代里智能化机器人的出现显得尤为重要。同时运水也是我们生活生产中必不可少的部分,由此社会急切希望出现一种快速运水的机器人设备。世界各国在智能微型车领域进行了很多研究,己经应用于各个领域,在探测和军事领域使用特别多。近年来,我国也开展了很多研究工作,以满足不同用途的需要。随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。智能小车是智能行走机器人的一种,这种智能小车可以适应不同环境,不受温度、湿度、空间、磁场辐射、重力等条件的影响河以在人类无法进入或生存的环境中完成人类无法完成的探测任务。1.2 系统功能和指标 本系统主要设计一套自动送水机器人系统,由送水机器人(以下简称小车)将水从A区通过B区运至C区。该系统包括A区的自动(或手动)给水装置;往返于A、C区之间的小车; C区存水装置;固定底板。如下图所示:图1-1 参考图(单位:mm)1.2.1 系统功能(1) 小车能完成运水和自动贮水功能。(2)小车可显示运水量和运水时间。(3)小车上的贮水器水溢出时有自动报警功能。(4)在1分钟内运送尽可能多的水。(5)小车及安放的运水容器总垂直高度不得超过300mm,小车上的储水装置容量小于等于600ml,口径小于100mm。小车所载的水卸到C容器采用自动贮水。(6)A区给水采用自动方式完成。(7)小车在1分钟内完成100ml定量自动取水、送水和贮水。(8)小车在尽可能短的时间内,完成1000ml自动取水,送水和贮水。(9) 小车在1分钟内运送100ml水时必须绕过D障碍物(放置在B区,距黑色引导线5cm 的任意一点,直径为5cm,高度10cm的黑色园柱体)。1.2.2 系统指标(1)小车在1分钟内完成100ml准确度:定量自动取水、送水和贮水。误差5%。(2) 小车运水1000ml自动取水,送水和贮水精度:误差5%。(3)小车平均运水速度1000ml/1分钟 2 设计任务与方案论证2.1 设计任务运水车模块包含以下部分,用来实现小车的循迹,无线数据收发,自动卸水,运 水量、运水时间实时显示、贮水溢出自动报警、蔽障等功能。表2-1 运水车模块设计任务设计任务功能及要求注水模块小车能够自动的进行注水卸水部分小车能够自动的进行卸水MCU部分完成数据处理、计算,控制小车与主控台的正常通信循迹部分实现小车正确的前进后退报警部分当有水溢出时,进行声光报警显示部分对运水量,运水时间进行实时显示无线部分能够与主控台进行数据的无线传输2.2 系统总体方案运水机器人系统整体框图如下图所示: 图2-1 运水机器人系统总体框图基于题目要求实现的各项功能及难易程度,在车辆选择上,对坦克模型车进行简单改装,车辆性能良好,易于控制,运行稳定。在处理器方面,运水机器人采用C8051F020单片机作为核心的控制系统,结合C8051F330单片机实现小车沿黑线正常运水、无线数据收发、自动贮水、运水量、运水时间实时显示、贮水溢出自动报警、蔽障等功能。模块电路主要包括:引导线检测电路、报警电路、电机驱动电路、无线收发电路、键盘和液晶显示电路、蔽障电路等。给水装置与小车之间采用两块C8051F330单片机及外围电路实现无线数据收发。2.3 循迹模块部分方案循迹模块是整个设计的关键部分,小车能够按照黑线运行到目的地位置是运水过程能够顺利完成的重要环节。 小车首先能够按照黑线路径行驶,其次能够准确检测判断起点和终点。为了能够实现小车的这些功能。我们需要制作循迹电路。考虑几种方案如下。方案一:采用红外反射式探测。用红外对管发射红外线垂直射到板面,白色会反射大部分红外线,黑色吸收大部分红外线。红外对管在黑白交界处产生跳变信号,信号经过电压比较器处理后送入单片机可以在程序里实现相应的功能。方案二:采用多路阵列式光敏电阻组成的光电探测器。光敏电阻探测到黑线时,黑线上方的电阻值发生变化,经过电压比较器比较,将信号送入单片机处理,从而控制小车做出相应的动作,考虑到室内、室外、白天和黑夜光线强度不同,光敏电阻阻值变化不同,因此运水小车的设计对环境的要求较高,增加了问题复杂性。经过测试,方案一对环境的适应性较强。因此,我们采用了方案一。在这里我们采用红外发射管和红外接收管一对一配对使用。由于检测路线都为直线,我们这里采用四对红外收发管构成一组循迹电路。我们将红外发射管和一个500欧姆电阻限流电阻串联构成红外发射电路。将红外接收管和一个100K电阻构成红外接收到电路,当D0红外管照射到白线时反射回接收管内的红外光比较多时,红外接收管阻抗较低,O0输出较高的电压信号,经过比较器后可输出高电平。当D0红外对管照射到黑线时反社会接收管内的红外光比较少,红外接收管阻抗较高相当于开路,O0输出较低的电压信号,经过比较器后可输出低电平。具体硬件电路连接图如图2-2,图2-3所示。图2-2红外收发管电路图2-3 比较器连接图 由于本设计中小车需要来回运水,为了实现小车在前进和后退过程中都能遵循黑线轨迹,我们需要在小车前后各方一组红外传感器电路。2.4 MCU部分2.4.1 方案论证MCU是整个系统的处理中心,它实现采集和处理传感器数据,控制无线收发模块收发数据,控制显示设备显示系统相关数据等功能。由于MCU实现功能相对校对较多,是系统的处理中心,也是整个设计的核心。常用的MCU有51系列的AT89C51单片机,c8051f020单片机等,有图为AT89C51单片机的引脚图。对MCU的选取我们也综合分析了几种方案。 图 2-4 单片机引脚图方案一:采用MCSE-51系列单片机。AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。传统的51单片机具有价格低廉,使用简单等特点,但存在预算速度低,功能单一,RAM,ROM空间小等缺点。方案二:C8051F020。C8051F020是完全集成的混合信号片上系统MCU,其控制器内核与MCS-51指令完全兼容。C8051F020采用流水线结构,最高处理速度可达25MIPS特别适合用于对实时性要求极高的控制系统。同时C8051f020内置锁相环电路和看门狗电路提高了系统的稳定性。多个I/O口和丰富的外设资源使得C8051f020单片机使用更加方便使用。为了能够实现系统的快速处理传感器数据要求,本设计采用方案二C8051F020作为系统的处理芯片。2.5 电机驱动部分方案 控制电路的输出信号一般都比较小,不足以带动大功率器件工作,因此往往需经过多级放大才能满足要求。通常其前置级是电压放大级,最后一级是功率放大级,把前置级送来的低频信号经功率放大,以获得足够大的功率输出,去推动负载工作。电机是一种大功率器件,单片机不能提供大电流来驱动电机工作。因此单片机需要配合驱动电路来驱动电机,才能控制小车的前进与后退。电机驱动电路方案对比如下。方案一:单片机通过对继电器的控制实现对电机的控制,端口的不同状态可以实现电机的正转、反转、调速等功能。由于继电器是机械式开关,响应时间慢,使小车运动的灵敏度降低,限制了单片机的PWM波控制功能。方案二:采用集成的驱动芯片L298,该芯片具有体积小,驱动电流大,可靠性安全性高,抗干扰能力强等优点,内置过热保护电路等特点,是常用的电机驱动芯片。适合小车的运动。同时一片L298具有四路独立的电机驱动电路,能够同时驱动4个电机。如需增大驱动电流还可以将两路并联成一路使用。经过比较,集成的驱动电路芯片相对于继电器有较大的电流驱动能力,连接方便,简单,可很方便地实现电机的转速控制、制动以及舵机的方向转动角控制。综合以上特点,此模块选择L298驱动直流电机。电机驱动电路是单片机控制信号的数字信号和电机驱动信号的模拟信号相互衔接的地方。为了减少电机运行过程中对单片机的影响,增加系统的稳定性,我们用光耦芯片将单片机控制信号与模拟信号隔离开。具体硬件电路连接图如图2-5所示。图2-5电机驱动电路 在电机驱动模块的输出端口,本设计还增加了二极管保护电路。2.6 卸水装置卸水装置是完成将小车内部水卸入到储水容器中的装置。卸水装置的选取不仅关系到电路的难易程度,同时也会影响运水小车的运水效率。下面比较几种常用的卸水方案。方案一:采用水泵将小车上的水直接抽到储水装置中。水泵控制简单,而且速度较快,效率较高,但是采用水泵时,由于水泵安装位置的限制,必定不可能将小车上的水完全抽干,从而造成小车上都会滞留一定量的水,会对运水总量引起误差。方案二:采用舵机控制的简单机械臂结构。舵机带动机械臂运动,将处于水平位置的水杯抬高,并使水杯在上抬的过程中呈竖直状态保证水不溢出杯口,抬至最高点后,利用舵机控制水杯转向,使水注入储水装置中。该方案的卸水速度更加迅速,电路也比较简单。经过比较,结合选择的单片机有直接的PWM输出通道资源,所以方案二的控制更加简单,而且卸水的速度更加快,故选择方案二。2.7 液晶显示模块方案一:采用LCD1602液晶显示。1602结构简单,编程也较简单,但是一般只用于显示有限的数字和符号,显示能力有限。1602采用并口方式进行数据传输,占用端口比较多。不能满足本设计复杂的显示要求。方案二:采用SMG12864ZK 液晶显示。12864 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312 码简体中文字库(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM(GDRAM)。可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。由于题目要求实时显示小车运动状态、运动时间、运水量及设定给水量等复杂显示,同时SMG12864液晶采用SPI通信方式传输数据能够节省IO口占用数量。故选择方案二。2.8 无线传输方案为了满足本设计数据的双向传输功能,我们需要选用NRF24L01无线收发模块实现小车与给水区之间的数据传输。在给水系统主控台中用一块单独的c8051f330控制此收发模块,运水小车系统上用c8051f020控制此模块。利用NRF24L01与单片机的巧妙结合既可以减轻小车的负重,又可对小车实现远程控制。2.9 主控台方案 在本设计中除了运水小车部分,还包括主控台部分。主控台部分包括MCU电路,电磁阀控制电路,无线收发电路。主控台部分的MCU配置无线收发模块接收运水车发送的数据,根据数据控制注水水阀的开关,实现小车系统的自动注水过程。本模块采用C8051F330作为主控芯片。C8051f330体积小,处理速度快,自带SPI通信模块,能够和无线通信模块nrf24l01的SPI引脚相互兼容。 2.10 方案确定经过不断分析、验证已经查找资料,最终确定了小车部分和主控台设计方案。如下表所示:表2-2 各功能部分主要元器件功能部分主要器件无线通信模块NRF24L01小车部分MCUC8051F020单片机主控台部分MCUC8051F330单片机循迹部分电路光电传感器液晶显示电路SMG12864ZK 液晶显示电机驱动电路L298驱动电路卸水部分舵机卸水装置3 单元电路设计本设计采用C8051F020单片机作为整个系统的控制核心,负责系统运行过程中的数据处理、计算、直流电机的控制、无线收发器件的读写。3.1 C8051F020系列单片机简介 3.1.1 系统概述C8051F020 器件是完全集成的混合信号系统级MCU 芯片,具有64 个数字I/O 引脚(C8051F020/2)或32 个数字I/O 引脚(C8051F021/3)。下面列出了一些主要特性; l 高速、流水线结构的8051 兼容的CIP-51 内核(可达25MIPS)l 全速、非侵入式的在系统调试接口(片内)l 真正12 位(C8051F020/1)或10 位(C8051F022/3)、100 ksps 的8 通道ADC,带PGA和模拟多路开关l 真正8 位500 ksps 的ADC,带PGA 和8 通道模拟多路开关l 两个12 位DAC,具有可编程数据更新方式l 64K 字节可在系统编程的FLASH 存储器l 4352(4096+256)字节的片内RAMl 可寻址64K 字节地址空间的外部数据存储器接口l 硬件实现的SPI、SMBus/ I2C 和两个UART 串行接口l 5 个通用的16 位定时器l 具有5 个捕捉/比较模块的可编程计数器/定时器阵列l 片内看门狗定时器、VDD 监视器和温度传感器具有片内VDD 监视器、看门狗定时器和时钟振荡器的C8051F020/1/2/3 是真正能独立工作的片上系统。所有模拟和数字外设均可由用户固件使能/禁止和配置。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。片内JTAG 调试电路允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG 调试时,所有的模拟和数字外设都可全功能运行。每个MCU 都可在工业温度范围(-45到+85)内用2.7V-3.6V 的电压工作。端口I/O、/RST 和JTAG 引脚都容许5V 的输入信号电压。3.1.2 CIP-51TM CPU(1) 与8051 完全兼容 C8051F020 系列器件使用Silicon Labs 的专利CIP-51 微控制器内核。CIP-51 与MCS-51TM指令集完全兼容,可以使用标准803x/805x 的汇编器和编译器进行软件开发。CIP-51 内核具有标准8052 的所有外设部件,包括5 个16 位的计数器/定时器、两个全双工UART、256 字节内部RAM、128 字节特殊功能寄存器(SFR)地址空间及8/4 个字节宽的I/O 端口。(2) 速度提高CIP-51 采用流水线结构,与标准的8051 结构相比指令执行速度有很大的提高。在一个标准的8051 中,除MUL 和DIV 以外所有指令都需要12 或24 个系统时钟周期,最大系统时钟频率为12-24MHz。而对于CIP-51 内核,70%的指令的执行时间为1 或2 个系统时钟周期,只有4 条指令的执行时间大于4 个系统时钟周期。CIP-51 共有111 条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。表 3-1 周期数与指令数 CIP-51 工作在最大系统时钟频率25MHz 时,它的峰值性能达到25MIPS。(3) 增加的功能C8051F020 系列MCU 对CIP-51 内核和外设有几项关键性的改进,提高了整体性能,更易于在最终应用中使用。扩展的中断系统向CIP-51 提供22 个中断源(标准8051 只有7 个中断源),允许大量的模拟和数字外设中断微控制器。一个中断驱动的系统需要较少的MCU 干预,因而有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。MCU 可有多达7 个复位源:一个片内VDD 监视器、一个看门狗定时器、一个时钟丢失检测器、一个由比较器0 提供的电压检测器、一个软件强制复位、CNVSTR 引脚及/RST 引脚。/RST 引脚是双向的,可接受外部复位或将内部产生的上电复位信号输出到/RST 引脚。除了VDD 监视器和复位输入引脚以外,每个复位源都可以由用户用软件禁止;使用MONEN 引脚使能/禁止VDD 监视器。在一次上电复位之后的MCU 初始化期间,WDT 可以被永久性使能。MCU 内部有一个独立运行的时钟发生器,在复位后被默认为系统时钟。如果需要,时钟源可以在运行时切换到外部振荡器,外部振荡器可以使用晶体、陶瓷谐振器、电容、RC 或外部时钟源产生系统时钟。时钟切换功能在低功耗系统中是非常有用的,它允许MCU 从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速(可达16MHz)的内部振荡器。3.1.3 片内存储器CIP-51 有标准的8051 程序和数据地址配置。它包括256 字节的数据RAM,其中高128字节为双映射。用间接寻址访问通用RAM 的高128 字节,用直接寻址访问128 字节的SFR地址空间。数据RAM 的低128 字节可用直接或间接寻址方式访问。前32 个字节为4 个用寄存器区,接下来的16 字节既可以按字节寻址也可以按位寻址。C8051F020/1/2/3 中的CIP-51 还另有位于外部数据存储器地址空间的4K 字节的RAM 块和一个可用于访问外部数据存储器的外部存储器接口(EMIF)。这个片内的4K 字节RAM 块可以在整个64K 外部数据存储器地址空间中被寻址(以4K 为边界重叠)。外部数据存储器地址空间可以只映射到片内存储器、只映射到片外存储器、或两者的组合(4K 以下的地址指向片内,4K 以上的地址指向EMIF)。EMIF 可以被配置为地址/数据线复用方式或非复用方式。MCU 的程序存储器包含64K 字节的FLASH。该存储器以512 字节为一个扇区,可以在系统编程,且不需特别的外部编程电压。从0xFE00 到0xFFFF 的512 字节被保留,由工厂使用。还有一个位于地址0x10000 - 0x1007F 的128 字节的扇区,该扇区可作为一个小的软件常数表使用。3.1.4 JTAG 调试和边界扫描C8051F020系列具有片内JTAG边界扫描和调试电路,通过4脚JTAG接口并使用安装在最终应用系统中的产品器件就可以进行非侵入式、全速的在系统调试。该JTAG接口完全符合IEEE 1149.1规范,为生产和测试提供完全的边界扫描功能。Silicon Labs的调试系统支持观察和修改存储器和寄存器,支持断点、观察点、堆栈指示器和单步执行。不需要额外的目标RAM、程序存储器、定时器或通信通道。在调试时所有的模拟和数字外设都正常工作。当MCU单步执行或遇到断点而停止运行时,所有的外设(ADC和SMBus除外)都停止运行,以保持与指令执行同步。开发套件C8051F020DK具有开发应用代码所需要的全部硬件和软件,并可对C8051F020MCU进行在系统调试。开发套件中包括开发者工作室软件和调试器、一个集成的8051汇编器和一个RS-232转换到JTAG的串行适配器。套件中还有一个目标应用板,上面有对应的MCU和一大块样机区域。套件中还包括RS-232和JTAG电缆及一个墙装电源。开发套件需要一个运行Windows 95/98/Me/NT并有一个可用RS-232串口的计算机。如图1.8所示,PC机通过RS-232与串行适配器连接。一条六英寸的扁平电缆将串行适配器和用户的应用板连接起来,连接4个JTAG引脚和VDD及GND。串行适配器从应用板获取其电源,在2.7-3.6V时其电源电流大约为20 mA。对于不能从目标板上获取足够电流的应用,可以将套件中提供的电源直接连到串行适配器上。对于开发和调试嵌入式应用来说,该系统的调试功能比采用标准MCU仿真器要优越得多。标准的MCU仿真器要使用在板仿真芯片和目标电缆,还需要在应用板上有MCU的插座。SiliconLabs的调试环境既便于使用又能保证精确模拟外设的性能。3.1.5 可编程数字I/O 和交叉开关该系列MCU具有标准8051的端口(0、1、2和3)。在F020/2中有4个附加的端口(4、5、6和7),因此共有64个通用端口I/O。这些端口I/O的工作情况与标准8051相似,但有一些改进。每个端口I/O引脚都可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被总体禁止,这为低功耗应用提供了进一步节电的能力。可能最独特的改进是引入了数字交叉开关。这是一个大的数字开关网络,允许将内部数字系统资源映射到P0、P1、P2和P3的端口I/O引脚(见图3-1)。与具有标准复用数字I/O的微控制器不同,这种结构可支持所有的功能组合。可通过设置交叉开关控制寄存器将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入、比较器输出以及微控制器内部的其它数字信号配置为出现在端口I/O引脚。这一特性允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。使单片机端口的应用更加灵活。图3-1 数字交叉开关原理框图3.2 C8051F020硬件电路设计对于单片机我们只需设计一些简单的外围电路同时引出相应引脚方便与其他外围电路连接即可。我们使用的是已经具备基本外围电路的C8051F020模块板,无需外接晶振等电路。具体连接图如图3-2所示。图 3-2 C8051f020连接图3.3 无线收发电路设计为了实现无线数据的双向传递功能,增加无线传递过稳定性和准确性。本设计采用NRF24L01作为无线收发模块。3.3.1 NRF2401特征 真正的GFSK 单收发芯片 内置链路层 增强型ShockBurstTM 自动应答及自动重发功能 地址及CRC 检验功能 数据传输率1 或2Mbps SPI 接口数据速率08Mbps 125 个可选工作频道 很短的频道切换时间可用于跳频 与nRF 24XX 系列完全兼容 可接受5V 电平的输入 20 脚QFN 4 4mm 封装 极低的晶振要求60ppm 低成本电感和双面PCB 板 工作电压1.93.6V3.3.2 概述 nRF24L01 是一款工作在2.42.5GHz 世界通用ISM 频段的单片无线收发器芯片无线收发器包括:频率发生器增强型SchockBurstTM 模式控制器功率放大器晶体振荡器调制器解调器输出功率频道选择和协议的设置可以通过SPI 接口进行设置极低的电流消耗当工作在发射模式下发射功率为-6dBm 时电流消耗为9.0mA 接收模式时为12.3mA掉电模式和待机模式下电流消耗更低。引脚及其功能描述如下。表3-2 引脚功能3.3.3 工作原理发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。3.3.4 工作模式通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表3-3所示。 表3-3 配置模式模式PWR_UPPRIM_RXCEFIFO寄存器状态接收模式111-发射模式101数据在TX FIFO 寄存器中发射模式1010停留在发送模式,直至数据发送完待机模式2101TX FIFO 为空待机模式11-0无数据传输掉电0-待机模式:待机模式I在保证快速启动的同时减少系统平均消耗电流在待机模式I 下晶振正常工作。在待机模式II 下部分时钟缓冲器处在工作模式当发送端TX FIFO 寄存器为空并且CE 为高电平时进入待机模式II。 在待机模式期间寄存器配置字内容保持不变。掉电模式:在掉电模式下,nRF24L01 各功能关闭保持电流消耗最小。进入掉电模式后nRF24L01 停止工作,但寄存器内容保持不变。掉电模式由寄存器中PWR_UP 位来控制。数据包处理方式:nRF24L01 有如下几种数据包处理方式(1)ShockBurstTM 与nRF2401 nRF24E1 nRF2402 nRF24E2 数据传输率为1Mbps 时相同(2)增强型ShockBurstTM 模式3.3.5 SPI接口SPI 接口是标准的SPI 接口,其最大的数据传输率为10Mbps,大多数寄存器是可读的。SPI指令格式:参看图3-3 及图3-4。表3-4 nRF24L01 SPI 串行口指令设置R_REGISTER 和W_REGISTER 寄存器可能操作单字节或多字节寄存器。当访问多字节寄存器时首先要读/写的是最低字节的高位。在所有多字节寄存器被写完之前可以结束写SPI 操作,在这种情况下没有写完的高字节保持原有内容不变。例如RX_ADDR_P0 寄存器的最低字节可以通过写一个字节给寄存器RX_ADDR_P0 来改变。在CSN 状态由高变低后可以通过MISO 来读取状态寄存器的内容。中断:nRF24L01的中断引脚(IRQ)为低电平触发当状态寄存器中TX_DS RX_DR 或MAX_RT 为高时触发中断。当MCU 给中断源写1 时,中断引脚被禁止可屏蔽中断可以被IRQ 中断屏蔽。通过设置可屏蔽中断位为高则中断响应被禁止默认状态下所有的中断源是被禁止的。SPI时序:图 3-3,3-4,3-5给出了SPI 操作及时序。在写寄存器之前一定要进入待机模式或掉电模式。在图3-3 至图3-5中用到了下面的符号:Cn-SPI 指令位Sn-状态寄存器位Dn-数据位(备注:由低字节到高字节每个字节中高位在前)图3-3 SPI写操作图 3-4 SPI读操作图3-5 SPI NOP 操作时序图3.3.6 配置寄存器地址 SPI口为同步串行通信接口,最大传输速率为10 Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。相应的状态和数据信息是从MISO输出给MCU。 nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,常用的配置寄存器如表3-5所示。表3-5 寄存器功能能与地址映射地址(H)寄存器名称功能00CONFIG设置24L01工作模式01EN_AA 设置接收通道及自动应答02EN_RXADDR使能接收通道地址03SETUP_AW设置地址宽度04SETUP_RETR设置自动重发数据时间和次数07STATUS状态寄存器,用来判定工作状态0A0FRX_ADDR_P0P5设置接收通道地址10TX_ADDR设置接收接点地址1116RX_PW_P0P5设置接收通道的有效数据宽度4 软件设计4.1 软件开发平台本设计采用C8051F020单片机作为控制核心,软件采用C语言进行编写。KEIL C作为编程工具。4.2 主程序概述系统软件是整个系统的灵魂,协调各个模块正常工作。本次设计中系统软件主要有主机系统软件和从机系统软件两部分。主机软件主要负责运水、蔽障、卸水同时实时显示状态信息。从机软件主要功能是根据主机命令给不同容量的水,并发出结束信号,并可实现给水装置液位检测及超限报警。小车流程图和主控台程序流程图如图4-1所示。图4-1 主程序流程图4.3 部分模块子程序流程图设计 在本设计中需要实现小车的自动循迹功能。我们用一个单独的循迹子函数来控制小车的自动循迹操作。本设计中还包含有液晶显示子模块,同样需要一个独立的液晶显示子函数来管理实现液晶显示功能。具体程序流程图如图4-2所示。 图 4-2 液晶显示子程序(左)循迹子程序(右)流程图5结果及分析5.1 测试仪器DS1012示波器、直尺、直流稳压电源、秒表、万用表等5.2 测试数据1 基本部分实现情况:(1) 小车能完成运水和自动贮水功能。(2) 小车可以显示运水量和运水时间。(3) 小车的贮水器水溢出时有自动声光报警功能。(4) 测量小车在1分钟内最多运送水量,记录数据如表5-1所示。表5-1 一分钟内运送水量测试表次数12345 平均值 运水量(ml)110011501070108010001080(5) 小车所载的水卸到C容器采用自动贮水。2 发挥部分实现情况(1) 可以完成A区自动给水。(2) 在一分钟内完成100ml定量自动取水、送水、和贮水。设定给水量为100ml,测量实际给水量,记录数据如表5-2所示。表5-2 一分钟内100ml定量自动取水、送水、和贮水测试表次数12345平均值 实际给水量(ml)10410010298101101 误差4%02%2%1%1.8% (3)完成1000ml自动取水、送水和贮水。设定给水量为1000ml,测量实际给水量,记录数据如表3所示。表5-3 实际给水量测试表次数12345平均值实际给水量(ml)1020980105095010101002误差2%2%5%5%1%3% 完成时间(s)656866676466(4) 小车在一分钟内运送100ml水时可以顺利绕过障碍物到达C区停车。(5) 特色与创新: 具有给水装置高低液位超限自动声音报警功能; 蔽障声光报警提示功能; 具有运水方式语音提示功能。5.3 测试结果分析通过分析测试结果可以发现本系统的各项指标均达到或超过了相应要求,达到了预期效果。在调试无线数据收发过程中,如果给水模块与水泵共用一个电源,水泵启动会干扰单片机正常工作。改进措施为水泵和给水模块分开供电。感觉整个系统设计制作难度较高。经过导师的细心知道,克服重重困难,最终达到了预期效果。6 结束语 本设计在硬件上,采用了电磁阀和流量计实现自动注水功能;采用了红外传感器检测引导线的方案,使小车既能沿黑线行驶又能在检测到特定的十字时停止并通过舵机实现自动卸水;在驱动电路上充分利用了L298驱动芯片,它的电路结构更简单,驱动电流更大,很好地驱动了后轮的两个电机;用无线发射接收模块完成数据无线传输功能;同时采用了具有可视化编程图形界面、采用串行控制、内含GB2312简体中文字库液晶显示SMG12864ZK,显示界面良好。本系统在软件上则充分利用了单片机C8051F020,使小车对路面具有很强的容错和抗干扰能力,同时也充分利用了C8051F330单片机的灵活方便的特性,控制液晶显示和无线发射接收模块。驱动时,采用PWM脉宽调制技术,可以无级调节小车的后轮电机速度和力度。从最终测试结果来看,本系统对环境具有很强的适应能力,很好地完成了题目各项要求。7 致谢这个毕业设计经过几个月的查资料、设计、整理论文,今天终于可以顺利的完成论文最后的谢辞了。想了很久,要写下这一段谢词,表示可以进行毕业答辩了,自己想想求学期间的点点滴历历涌上心头,时光匆匆飞逝,四年多的努力与付出,随着论文的完成,终于让学生在大学的生活,得以划下了完美的句点。论文得以完成,要感谢的人实在太多了,首先要感谢我的导师张浩然老师,因为论文是在张老师的悉心指导下完成的。其次,在完成本次毕业设计的过程中,我还得到了其他老师和同学们的帮助,他们也为此付出了心血和精力,在此请允许我向他们表示最衷心的感谢!本次毕业设计从方案制定到最后论文成稿,都经过赵浩然老师的精心指导和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论