收藏 分享(赏)

基于单片机的WIFI智能小车毕业论文.doc

上传人:精品资料 文档编号:7943747 上传时间:2019-05-30 格式:DOC 页数:42 大小:3.64MB
下载 相关 举报
基于单片机的WIFI智能小车毕业论文.doc_第1页
第1页 / 共42页
基于单片机的WIFI智能小车毕业论文.doc_第2页
第2页 / 共42页
基于单片机的WIFI智能小车毕业论文.doc_第3页
第3页 / 共42页
基于单片机的WIFI智能小车毕业论文.doc_第4页
第4页 / 共42页
基于单片机的WIFI智能小车毕业论文.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、毕业设计方案课题名称:基于 51 单片机的WIFI 遥控小车设计 所在学院 通信与信号学院班 级 通信 132姓 名 段宗佑学 号 201303410226指导老师 谭传武 完成日期1内容摘要基于单片机的 WIFI 智能小车由路由器,电机,小车车体,STC89C52RC 单片机控制芯片,ESP8266WIFI 模块,电机驱动模块,3.3V 降/稳压电路模块,5V和 3.3V 串口电平转换模块,电源等主要部件以及 LED 灯,蜂鸣器和数码管等辅助部件组成。基于单片机的 WIFI 智能小车是 STC89C52RC 单片机通过其串口对ESP8266WIFI 模块发送 AT 指令,使 ESP8266W

2、IFI 模块连接到路由器并且让ESP8266WIFI 模块开启多连接和 SERVER 模式,然后手机打开 WLAN 连接路由器设备,打开制作好的 APP 软件,通过路由器这个中转站向 ESP8266WIFI 模块发送控制指令,在 ESP8266WIFI 模块接收到控制指令后,通过 ESP8266WIFI 模块的串口和 STC89C52RC 单片机上的串口之间相互发送控制指令的数据流,单片机的串口在接收到从 WIFI 模块传来的控制指令的数据流,最终做出控制选择,进而控制小车运动、指示灯的亮灭、蜂鸣器的开关和数码管的显示。基于单片机的 WIFI 智能小车主要是利用手机作为上位机,而单片机作为下位

3、机,通过 WIFI 模块和路由器进行对无线信号的处理,然后通过串口传送有线的信号,从而实现上位机通过无线来控制下位机的运作,实现智能化和无线遥控等功能。关键词:WIFI;单片机;小车。1目录第 1 章 绪论 1第 2 章 方案论证及选择 22.1 系统方案选择 .22.2 总体设计方案 .32.2.1 整机系统 32.1.2 整机工作原理 4第 3 章 硬件系统设计 53.1 路由器 .53.2 ESP8266WIFI 模块 .53.2.1 ESP8266WIFI 模块引脚功能 63.3 STC89C52RC 单片机 .73.3.1 STC89C52RC 单片机引脚功能 83.3.2 单片机的

4、外围电路 103.4 L293D 电机驱动模块 .113.4.1 L293D 引脚功能及原理图 113.5 3.3V 降/稳压模块 133.5.1 降/稳压模块的原理图 133.6 5V 和 3.3V 串口电平转换模块 143.6.1 引脚功能和原理图 15第 4 章 软件系统设计 164.1 软件开发环境 .164.1.1 Android 的 APP 软件的开发 .164.1.2 单片机程序开发环境 Keil.174.2 程序流程图 .174.2.1 主程序流程图 174.2.2 串口中断接收流程图 194.2.3 串口发送指令流程图 20第 5 章 设备调试 225.1 系统调试 .225

5、.2 硬件设备调试 .225.2.1 ESP8266 串口 WIFI 的连线 235.2.2 STC89C52RC 单片机连线 235.2.3 单片机和 WIFI 模块的连线 .245.3 软件调试 .245.3.1 WIFI 模块的调试 .245.3.2 单片机的调试 265.3.3 单片机和 WIFI 模块的调试 .27心得体会 28总结 29参考文献 30附录 1 单片机程序 .312附录 2 AT 指令集 .361第 1 章 绪论现在是一个智能化的时代,各种智能化的设备正在逐步代替人为的操作。随着汽车工业的迅速发展,关于智能汽车的研究也越来越受人们关注。全国电子大赛和省内电子大赛几乎每

6、次都智能小车这方面的题目,全国各高校也都很重视该课题的研究。设计的 WIFI 智能小车能够实现自动循迹,壁障功能,可程控行驶速度、电脑手机 WIFI 连接控制行驶及其他的控制方式。本系统能实现对小车的运动状态进行实时控制。系统控制灵活、可靠、精度高、可满足对系统的各项要求。本设计以 STC89C52RC 单片机为控制核心,利用 ESP8266WIFI 模块和路由器接收和处理无线信号,然后通过 WIFI 模块和单片机之间的串口通信来传递信息,从而完成手机控制单片机的运作。通过对本小车的研究,我们可以初步构建智能汽车的模型和理论基础。对于智能汽车的研究,国内外都有很大的成就,谷歌的无人驾驶汽车,已

7、经能够在高速公路上安全行驶数千里,在高速行驶下都能有这么好的操控能力,无非是智能汽车领域的一座里程碑。在智能家居系统研发方面,美国及一些欧洲国家一致处于领先地位,今年来,以美国微软公司及摩托罗拉公司等为首的一批国外知名企业,先后跻身于智能家居系统的研发中。例如:微软公司开发的“梦幻之家” 、摩托罗拉公司开发的“居所之门”IBM 公司开发的“家庭主任”等均已日趋成稳定技术强占家居市场。此外,日韩等新国的龙头企业纷纷致力于家居智能化的开发,对家居市场更是跃跃欲试。本设计选用的 89C52 单片机属于 MSC-51 系列单片机,由 Intel 公司开发,其结构有 8 字节 FLASH 闪速存储器,2

8、56 字节内部 RAM , 32 个 I/O 口线,3 个16 位定时计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52 可降至 O Hz 的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于 89C52 的系统性能满足系统数据采集及时间精度要求,而且产品产量丰富来源广,应用也很成熟,故用来作为控制核心。新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下

9、了良好的基础。本设计主要研究内容就是基于 89C52设计一部 WIFI 智能小车,小车能够实现 WIFI 遥控的智能小车控制系统。2第 2 章 方案论证及选择2.1 系统方案选择方案 1:自己首先学习相关知识,理解单片机智能小车的原理以及 WIFI 模块指令等。动手设计出带有 WIFI 模块的单片机开发板,在配购好小车相关的材料后,组装出小车模型。调试好 WIFI 模块和单片机的硬件和软件,然后用手机等终端设备通过路由器驱动 WIFI 小车的运动等一系列指令。具体的如图 2-1 所示。下图是关于方案 1 设计版图构想,如图 2-1 所示。图 2-1 方案 1 设计图方案 2:自己首先学习相关知

10、识,理解单片机智能小车的原理以及单片机和WIFI 之间的通信方式,了解 WIFI 模块的相关指令,以及单片机的串口传输的方式。然后利用已经完成有的单片机小车,通过在单片机小车上添加一个 WIFI模块和相关模块来进行改装,然后自己通过设计编写单片机和 WIFI 模块之间串口通信的程序。利用这样的方法来实现手机终端来通过路由器在无线传输的方式对单片机进行控制,从而进一步的控制小车的运动等一系列指令。具体的如图 2-2 所示。下图是关于方案 2 设计版图构想,如图 2-2 所示。图 2-2 方案 2 设计图方案选择:方案 1 和方案 2 涉及的相关知识大致相同,两种不同思路的选择,所需要的材料也不同

11、。介于我们对制作成本和材料考虑,我们小组选择方案 2,利用已有的单片机小车,对小车进行改装,在小车上加个 WIFI 模块等一系列设备,实现手机等终端设备通过无线信号控制小车的运动。选择方案 2,3我们认为可以加强我们的动手能力,能够充分的学习和利用相关的专业知识,达到综合素质的提升。2.2 总体设计方案基于单片机的 WIFI 智能小车主要由路由器、ESP8266WIFI 模块、STC89C52RC 单片机控制模块、L293D 电机驱动模块、5V 与 3.3V 串口电平转换模块和 3.3V 降/稳压模块等主要结构组成,其中还有一些次要设备,比如蜂鸣器,LED 灯和数码管等。2.2.1 整机系统下

12、图是整机系统图,是 WIFI 模块和单片机之间通信的整体图,如图 2-3 所示。图 2-3 整机系统图项目系统包括路由器、ESP8266 串口 WIFI 模块、STC89C52RC 单片机、电机驱动模块、串口电平转换模块、5V 电源、3.3v 降/稳压模块、电机驱动模块组成。如图 2-3 所示。ESP8266 串口 WIFI 模块是用来接收到手机等上位机设备发送的控制指令信息和单片机通过串口通信传来的 AT 指令信息来连接到路由器,然后创建多连接和 SERVER 模式,来实现手机和 WIFI 模块之间的通信;STC89C52RC 单片机最小系统是小车的核心系统,用来控制和协调小车的运动;电机驱

13、动模块用来驱动小车电机的运作;5V 和 3.3V 串口电平转换模块是用来转换单片机和 WIFI 模块之间的信号电平,主要是适用于本模块的工作电压;电源电路用来提供单片机和 WIFI 模块的外部电源;3.3v 降/稳压模块用来给 WIFI 模块提供一个 3.3v 稳定的工作电压;蜂鸣器电路作用是用来给单片机一个提示音;电机作用就是让小车的轮子转动,来使小车动起来。42.1.2 整机工作原理基于单片机的 WIFI 智能小车是 STC89C52RC 单片机通过其串口对ESP8266WIFI 模块发送 AT 指令,使 ESP8266WIFI 模块连接到路由器并且让ESP8266WIFI 模块开启多连接

14、和 SERVER 模式,然后手机打开 WLAN 连接路由器设备,打开制作好的 APP 软件,通过路由器这个中转站向 ESP8266WIFI 模块发送控制指令,在 ESP8266WIFI 模块接收到控制指令后,通过 ESP8266WIFI 模块的串口和 STC89C52RC 单片机上的串口之间相互发送控制指令的数据流,单片机的串口在接收到从 WIFI 模块传来的控制指令的数据流,最终做出控制选择,进而控制小车运动、指示灯的亮灭、蜂鸣器的开关和数码管的显示。如:小车运动,LED 灯的亮灭,蜂鸣器的发声等。基于单片机的 WIFI 智能小车主要是利用手机作为上位机,而单片机作为下位机,通过 WIFI

15、模块和路由器进行对无线信号的处理,然后通过串口传送有线的信号,从而实现上位机通过无线来控制下位机的运作,实现智能化和无线遥控等功能。5第 3 章 硬件系统设计3.1 路由器路由器(Router) , (如图 3-1 所示)是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽“交通警察“。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在 OSI 参考模型第二层(数据链路层) ,而路由发生在第三

16、层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。路由器(Router) , (如图 3-1 所示)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择 IP 路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。下图是路由器的设备图,如图 3-1 所示。图 3-1

17、路由器3.2 ESP8266WIFI 模块本次设计用到 ESP8266WIFI 模块是用于连接到路由器,然后接收手机端发送的信号,对单片机进行控制。WIFI 模块又名串口 WIFI 模块,属于物联网传输层,功能是将串口或 TTL 电平转为符合 WIFI 无线网络通信标准的嵌入式模块,内置无线网络协议6IEEE802.11b.g.n 协议以及 TCP/IP 协议。传统的硬件设备嵌入 WIFI 模块可以直接利用 WIFI 联入互联网,是实现无线智能家居、M2M 等物联网应用的重要组成部分。下图是 ESP8266WIFI 模块的正反面图,如图 3-2,3-3 所示。图 3-2 ESP8266WIFI

18、 模块正面图 图 3-3 ESP8266WIFI 模块反面图ESP8266 是一款超低功耗的模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和互联网的应用设计,可将用户的物理设备连接到 WIFI无线网络上,进行互联网或局域网通信,实现联网功能。ESP8266 可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。3.2.1 ESP8266WIFI 模块引脚功能下图是 ESP8266WIFI 模块的引脚图,如图 3-4 所示。图 3-4 ESP8266WIFI 模块引脚图下表是 ESP8266WIFI 模块引脚说明,如表 2 所示。表 2 ESP8266WIFI 模块

19、引脚表PIN Function Description1 URXD 1)UART_RXD,接收;2)General Purpose Input/Output:GPIO3;73.3 STC89C52RC 单片机单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU、随机存储器 RAM、只读存储器ROM、多种 I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80 年代,由当

20、时的 4 位、8 位单片机,发展到现在的 300M 的高速单片机。STC89C52 是 STC 公司生产的一种低功耗、高性能 CMOS8 位微控制器,具有8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、有效的解决方案。具有以下标准功能:8k 字节 Flash,512 字节RAM,32 位 I/O 口线,看门狗定时器,内置 4KBEEPROM,MAX810 复位电路,3个

21、 16 位定时器/计数器,4 个外部中断,一个 7 向量 4 级中断结构(兼容传统51 的 5 向量 2 级中断结构) ,全双工串行口。另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35MHz,6T/12T 可选。下图是 STC89C52RC 单片机的实物图,如图 3-5 所示。2 UTXD1)UART_TXD,发送;2)General Purpose Input/

22、Output:GPIO1;3)开机时禁止下拉;3 RESET(GPIO 16) 外部Reset信号,低电平复位,高电平工作(默认高) ;4 GND GND5 VCC 3.3V,模块供电;6 GPIO01)默认WIFI Status:WIFI工作状态指示灯控制信号;2)工作模式选择:悬空:Flash Boot,工作模式;下拉:UART Download,下载模式;7 CH_PD 1)高电平工作;2)低电平模块供电关掉;8 GPIO2 1)开机上电时必须为高电平,禁止硬件下拉;2)内部默认已拉高8图 3-5 STC89C52RC 单片机3.3.1 STC89C52RC 单片机引脚功能下图是 STC

23、89C52RC 单片机的引脚功能图,如图 3-6 所示。图 3-6 STC89C52RC 引脚图1、VCC(40 引脚):电源电压 VSS(20 引脚):接地 P0 端口(P0.0P0.7,3932 引脚):P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供低 8 位地址和8 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM 编程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。2、P1 端口(P1.0P1.7,1

24、8 引脚):P1 口是一个内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻, 那些被外部拉低的引脚会输出一个电流。9此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX) ,具体参见下表 3 所示: 表 3 P1.0 和 P1.1 引脚复用功能表引脚号 功能特性P1.0 T2(定时器/计数器 2 外部计数输入),时钟输出P1.1

25、 T2EX(定时器/计数器 2 捕获/重装触发和方向控制)3、P2 端口(P2.0P2.7,2128 引脚):P2 口是一个内部上拉电阻的 8位双向 I/O 端口。P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。4、P3 端口(P3.0P3.7,1017 引脚):P3 是一个内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉

26、电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。P3 口除作为一般 I/O 口外,还有其他一些复用功能,如下表 4 所示:表 4 P3 口引脚复用功能引脚号 复用功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断 0)P3.3 INT1(外部中断 1)P3.4 T0(定时器 0 的外部输入)P3.5 T1(定时器 1 的外部输入)P3.6 (外部数据存储器、写)P3.7 (外部数据存储器、读)5、RST(9 引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单

27、片机的复位初始化操作。看门狗计时完成后,RST 引脚输出 96个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。6、ALE/PROG(30 引脚):地址锁存控制信号(ALE)是访问外部程序 存储器时,锁存低 8 位地址的输出脉冲。在 Flash 编程时,此引脚(PROG)也用作编程输入脉冲。 107、PSEN(29 引脚):外部程序存储器选通信号(PSEN)是外部 程序存储器选通信号。当 AT89C51RC 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活两次,PSEN 而访问外部数据存储器时

28、,将不被激活。8、EA/VPP(31 引脚):访问外部程序存储器控制信号。为使能从 0000H到 FFFFH 的外部程序存储器读取指令,EA 必须接 GND。注意加密方式 1 时,EA将内部锁定 RESET。为了执行内部程序指令,EA 应该接 VCC。9、XTAL1(19 引脚):振荡器反相放大器和内部时钟发生电路的输入端。 10、XTAL2(18 引脚):振荡器反相放大器的输入端。3.3.2 单片机的外围电路1、基本复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引

29、起的抖动而影响复位。图 3-7 所示的RC 复位电路可以实现上述基本功能。下图是 RC 复位电路,如图 3-7 所示。图 3-7 RC 复位电路在电源上电的时候,等待一定的时间,等到电容两端的电压值相同时,单片机复位。还有一种方法就是按键复位,当 SM 按键按下之后 RST 端的电压值瞬间和 VCC 相同,同样也可以达到复位的效果,图中的电容作用是充放电,电阻是为了保护电路而设置的。2、时钟电路晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联后,再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低,其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的

30、特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等11效为一个电感。所以,晶振的两端并联上合适的电容它就会组成并联谐振电路。下图是时钟电路的电路图,如图 3-8 所示。图 3-8 时钟电路的电路图一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般 IC 的引脚都有等效输入电容。3.4 L293D 电机驱动模块我们所使用的电机一般是直流电机,主要用到永磁直流电机、伺服电机及步进电机三种。直流电机的控制很简单,性能出众,直流电源也容易实现。本次

31、设计使用的是 L293D(如图 3-8 所示) ,L293D 是一款单片集成的高电压、高电流、4 通道电机驱动,设计用于连接标准 DTL 或 TTL 逻辑电平,驱动电感负载(诸如继电线圈、DC 和步进电机)和开关功率晶体管等等。下图是 L293D 电机驱动模块在单片机作用下驱动电机运动图,如图 3-9 所示。图 3-9 单片机驱动电机模块图3.4.1 L293D 引脚功能及原理图下图是 L293D 芯片引脚图,如图 3-10 所示。12图 3-10 L293D 芯片引脚图1、INPUT1:输入电机 1 的引脚 A。2、INPUT2:输入电机 1 的引脚 B。3、INPUT3:输入电机 2 的引

32、脚 A。4、INPUT4:输入电机 2 的引脚 B。5、GND:电源地接口。6、VSS:输入电机驱动电压接口。7、OUTPUT1:输出电机 1 的引脚 A。8、OUTPUT2:输出电机 1 的引脚 B。9、OUTPUT3:输出电机 2 的引脚 A。 10、OUTPUT4:输出电机 2 的引脚 B。下图是电机驱动模块和单片机原理图,如图 3-11 所示。图 3-11 电机驱动模块和单片机原理图单片机的 P0 的 8 个端口在位定义之后对 L293D 电机模块的 4 个 INPUT 写入各不同的高低电平,经 L293D 芯片内部的转换之后,在 OUTPUT 输出 4 个相应的电平值,分别对应 M1

33、 和 M2 的两个电机 A 端和 B 端,从而控制电机 M1 和 M2 的正转和反转,进而实现小车的前进,后退,左转和右转等功能。133.5 3.3V 降/稳压模块降/稳压模块是,通过降压和稳压的过程,给设备提供一个稳定的工作环境,能够提供不同的工作电压设备在同一电源电压下同时工作,应用于单片机上能添加不同工作电压的电子设备。下图是降/稳压模块图,如图 3-12 所示。图 3-12 AMS111 7-3.3 3.3V 降/稳压模块将单片机上的 5V 的电源转换为 3.3V 的稳压电源,提供给正常工作电压是3.3V 的电子设备,实现给 5V 和 3.3V 电压之间的转换,提供了能和单片机同时工作

34、且电压值可以不同的电子设备。比如,ESP8266 串口 WIFI 模块。下图是单片机的 VCC 通过降/稳压模块给 WIFI 模块供电,如图 3-12 所示。图 3-12 降/稳压模块给 WIFI 模块供电图3.5.1 降/稳压模块的原理图下图是降/稳压模块的原理图,如图 3-13 所示。图 3-13 降/稳压模块的原理图14上图所示,D1 作用是防止电源反接。C01、C02 是电源输入滤波。VDD3.3是 3.3V 电源,供数字电路使用。 L1、L2 是隔离滤波电感。VCC3.3 是 3.3V 电源,供模拟电路使用。电源在通过 AMS111 7-3.3 3.3V 降/稳压电路,电源电压由原来

35、的 5V 降为 3.3V,可以提供给正常工作在 3.3V 的设备使用。3.6 5V 和 3.3V 串口电平转换模块数字电路,电平就是电位的高低,用 0 和 1 表示。在计算机或者其他微处理器内部只能识别 0 和 1 这两个数字信号,不同的系统电平表示的 0 和 1 实际的电位并不相同。例如,高电平常用 3.3V,5V,12V,低电平常用 0,当不同的系统进行连接通信控制时,就要进行电平转换。打个比方,单片机的高电位为 5v,而电脑的串口电平为 12V,要实现电脑到单片机通信就必须将电脑的 12V 转到单片机的 5V,反之,5V 转到 12V。下图是串口电平转换模块图,如图 3-14 所示。图

36、3-14 5V 和 3.3V 串口电平转换模块图本项目的单片机是 STC89C52RC,其工作电压是 5V,而 WIFI 模块的工作电压是 3.3V,由于两者工作电压不一致,导致了信号的电平也不一致。要想两个设备之间能够进行通信,就必须要对信号电平进行转换,实现 5V 的电平和3.3V 的电平之间能够通信,完成数据间的交换。下图是单片机和 WIFI 模块通过串口电平转换模块进行通信的图,如图 3-15 所示。图 3-15 单片机和 WIFI 模块电平相互转换图153.6.1 引脚功能和原理图下图是串口电平转换的引脚图,如图 3-16 所示。图 3-16 串口电平转换的引脚图1、5V 和 3.3

37、V:由外电源接入 5V 和 3.3V 电源电压。2、GND:电源接地接口。3、TXD:数据发送引脚。4、RXD:数据接收引脚。下图是 5V 和 3.3V 串口电平转换电路图,如图 3-17 所示。图 3-17 5V 和 3.3V 串口电平转换电路图上图的电路中,3.3V 的信号通过两个三极管 Q1,Q2 的两次放大,再配合上合适的电阻 R1、R2、R3 进行转换,完成了 3.3V 到 5V 信号的变换。5V 信号同样通过相反的方式将信号变成了 3.3V 的输出,从而可以实现了数据能够在3.3V 和 5V 之间的相互通信。16第 4 章 软件系统设计4.1 软件开发环境软件开发环境的主要组成成分

38、是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如 软件开发环境参考书 软件开发环境参考书 源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。4.1.1 Android 的 APP 软件的开发Android 开发需要用到 Eclipse、ADT 和 SDK。三个组件整合开发。1、Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括

39、Java 开发工具(Java Development Kit,JDK) 。如图 15 所示。下图是安卓开发环境界面,如图 4-1 所示图 4-1 安卓开发环境界面2、ADT:目前 Android 开发所用的开发工具主要有 Android Studio、Eclipse,在 Eclipse 编译 IDE 环境中,安装 ADT,为 Android 开发提供开发工具的升级或者变更,简单理解为在 Eclipse 下开发工具的升级下载工具。173、SDK:一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在 Android 中,它为开发者提供了库文件以及

40、其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包。4.1.2 单片机程序开发环境 KeilKeil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。如图 4-2 所示。下图是单片机开发环境界面,如图 4-2 所示。图 4-2 单片机开发环境界面4.2 程序流程图4.2.1 主

41、程序流程图系统主程序模块主要完成对系统中各模块电路的初始化等工作,主要包括对串口中断、外部中断的初始化,同时执行电脑等终端设备所发送的命令,等待外部中段以及根据所需要的功能进行相应的操作。下图是主程序流程图,如图 4-3 所示。18图 4-3 主程序流程图单片机首先设置好串口初始化,比如设置好波特率。然后向 WIFI 模块发送AT 指令,使 WIFI 模块连接上路由器,并创建好服务连接。之后手机通过连接到路由器向 WIFI 模块发送无线的控制指令,单片机在接收到 WIFI 模块从串口传来的数据后,马上进入中断函数来执行接收数据的模式。接收到的控制指令存储在寄存器中,单片机在寄存器中读取接收到的

42、控制指令,然后根据接收到命令的不同,执行小车不同的动作。比如,小车前进、后退、左转、右转和停止等。下图是单片机对串口进行初始化的程序图,如图 4-4 所示。图 4-4 串口初始化程序图由于 WIFI 模块的波特率是 115200,那么单片机为了要和 WIFI 模块进行数据间的通信,就要把两端的波特率设置成一致,这样才能够保证双方通信的正常进行。如上图,首先给 T1(TMOD)选择工作模式,然后给 TH1 和 TL1 赋初始值,然后启动 T1 和 T2(TR2 位)19,确定串口工作方式(编写 SCON 寄存器) 。下图是单片机在接收到信号后发送给电机模块来驱动电机,从而使小车运动的程序图,如图

43、 4-5 所示。图 4-5 单片机驱使小车前进的程序图单片机在接收到 WIFI 模块传来的无线数据,通过 switch 语句来选择小车的运动模式,上图只选择小车前进的简单程序。小车的单片机在接到前进的信号时,就进入选择小车运行的模式这个程序中,判断接收到的信号和小车预先设置的值是否一致,若一致,则小车进入那种模式,直到等待下次接收到的数据再来判断。4.2.2 串口中断接收流程图通过串口中断,实现单片机和路由器进行通讯。进入中断后关掉中断,避免数据信号的重复引起中断。根据命令数据发送的规律,将命令解码储存在相应的二维数组中,方便主函数的调用。下图是串口中断接收流程图,如图 4-6 所示。20图

44、4-6 串口中断接收流程图上图是串口中断函数,进入串口中断函数之后,首先要把 RI 至 0,因为在单片机的串口接收存储数据后 RI 会自动的变成 1,所以每次进入串口中断的时候要把 RI 先至 0。然后判断 RI 是否为 1,是用来判断数据是否接收完毕,不是的话继续接收,是的话就将数据存储在单片机的存储器中,等待单片机到存储器中读取接收到的数据,进一步执行单片机的控制动作。下图是通过串口中断接收流程图编写的程序图,如图 4-7 所示。图 4-7 串口中断接收数据的程序图中断接收函数,首先要把 RI 置 0,然后等待数据的传输。等待数据传输完毕后,RI 会自动跳到 1,判断 RI=1 后,先把数

45、据存储在寄存器中,然后单片机对寄存器中的数据读取后,判断接收到的数据和预先设置的值是否一致,若一致,则进入小车运行的模式函数。4.2.3 串口发送指令流程图单片机通过串口向 WIFI 模块发送指令,控制 WIFI 模块的模式,以便手机接入 WIFI 模块。在发送指令时,要关闭串口中断,避免在发送数据时串口中断的产生,引起指令发送错误。在指令发送完毕后,打开串口中断,允许中断函数对单片机作用。下图是串口发送指令流程图,如图 4-8 所示。21图 4-8 串口发送指令流程图上图是串口发送指令的流程图,在本项目中是单片机用来向 WIFI 模块发送AT 指令的。首先要关闭中断源的允许位,目的是为了在发

46、送数据的时候,不会因为中断函数的请求而去执行中断函数,避免了数据发送的错误。然后将 TI至 0,原因和前面所讲的 RI 至 0 是一样的。单片机为了发送数据,同样的是单片机不能单独的发送或者接收数据,在发送数据之前,都要把数据先存储在寄存器中,在发送数据的时候,就在存储器中进行读取。判断 TI 是否为 1,是为了判断传输是否完成,和前面所讲的判断 RI 是否为 1 是一样的道理。在传输完成之后要将 TI 至 0,以便下次的传输数据。数据传输完成后,要打开中断源的允许位,进行串口中断接收 WIFI 模块发送而来的数据。下图是根据串口中断发送指令流程图来编写的程序,如图 4-9图 4-9 串口中断

47、发送数据的程序图首先把串口中断关闭,防止串口中断引发数据间的干扰,然后将 TI 置 0,将数据存入串口寄存器中,等待数据传输完毕,然后再将 TI 置 0,随后便打开串口中断,便可进行串口中断数据接收。22第 5 章 设备调试5.1 系统调试本智能小车是由 ESP8266WIFI 模块和 STC89C52RC 单片机组成。设计思路是由 WIFI 模块连到路由器,然后接收到手机终端发出的信号,通过串口发送给单片机,单片机在接到控制信号后来控制电机的运转。具体步骤分为硬件设备调试和软件调试两个方面来进行。在硬件设备的连线完成后,要分别对 WIFI 模块,单片机进行调试,确保每个元器件在单独的环境下可

48、以正常工作,之后把各个元器件连接成一个整体,完成整个的项目,实现手机无线控制单片机小车的运动。5.2 硬件设备调试由于此实物焊接量、装配工作量大。所以在电路安装完成后,首先应对系统进行整体检查,确认电路无虚焊、短路、断路等错误。然后应该对电路各个模块进行分级调试,逐步实现系统的整体功能。然后对设备进行连线设置,每个模块之间的连线都有一定的联系,要按照这特有的联系来进行连线设置。比如,WIFI 模块的工作电压是 3.3V,要接在降压模块下,才能正常工作。单片机要和 WIFI 模块进行通信,就要对两者之间的信号电平进行转换,使其达到适合自己的工作电压来进行相互的通信。如图 5-1。下图是整个硬件设

49、备之间的连线图,如图 5-1 所示。23图 5-1 硬件设备连线图5.2.1 ESP8266 串口 WIFI 的连线由于 WIFI 模块(图 5-1)出厂已经配置完成。其中 CH_PD 处于低电平是使供电模块关闭,处于高电平是处于工作状态,所以要将 CH_PD 引脚和 VCC 相连。由于单片机和 WIFI 之间要用串口通信,是要用到串口的端口 TXD 和 RXD,要求是交叉连接,意思就是将单片机的 RXD 和 WIFI 模块的 TXD 相连,单片机的 TXD和 WIFI 模块的 RXD 相连,VCC 接 3.3V 电压,接地要和单片机共地连接。如图5-2。下图是 WIFI 模块的引脚接线图,如图 5-2 所示。图 5-2 WIFI 模块引脚的连线图5.2.2 STC89C52RC 单片机连线单片机上有 RXD 和 TXD 口,其和 WIFI 模块连线时,是属于交叉连线。但是和电脑之间的连线,是要通过 MAX232 芯片进行电平转换,因为单片机的是 5V的工作电源,电脑的是 12V 串口电压,以此来达到合适彼此工作电压的电平来进行数据交换的。当然除此之外,单片机上还要接复位电路和时钟(晶振)电路,晶振电路用来设置单片机的波特率,以达到和 WIFI 模块的波特率一致。下图是单片机的接线图,如图 5-3 所示。24图 5-3 单片机引脚接线图5.2.3

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报