搜索
您的当前位置:首页基于单片机的汽车倒车防撞系统设计分解

基于单片机的汽车倒车防撞系统设计分解

来源:智榕旅游


2012届毕业设计(论文)

论文题目:基于单片机的汽车倒车防撞系统设计

摘 要

基于超声波的汽车防撞预警系统是指在汽车行驶过程中通过超声波测距原理, 防止汽车发生碰撞障碍物的一种智能报警装置。本次设计由超声波发射模块、信号接收模块、单片机处理模块、数码显示模块以及声光报警模块等部分组成。它由单 片机智能控制,能使汽车在行驶和倒车过程中自动检测到障碍物。然后通过超声波 测距原理测量出汽车与障碍物之间的距离,并通过数码显示模块将测得的距离显示 出来,当汽车与障碍物之间的距离达到安全极限时,单片机控制声光报警模块发出 报警信号,达到提醒司机防止撞车的目的。本设计充分发挥了单片机的性能,其硬 件电路简单,软件功能完善,控制系统可靠,具有一定的使用和参考价值。

基于单片机的汽车倒车防撞系统设计

关键词 超声波 测距 汽车防撞预警 单片机

目录

前言…………………………………………………………………4 第一章 课题简介及其发展现状…………………………………5

1.1 课题研究现状及其发展意义………………………………5 1.2 汽车防撞系统的发展过程…………………………………5

1

基于单片机的汽车倒车防撞系统设计

1.3 超声波简介……………………………………………………6

第二章 总体设计方案……………………………………………7

2.1 设计总体思路概况…………………………………………7 2.2 超声波测距原理…………………………………………8 2.3 超声波传感器……………………………………………9 2.4 控制系统方框图…………………………………………9 2.5 超声波发射装置的设计……………………………………10 2.6 超声波接受装置的设计……………………………………11 2.7 显示电路的设计…………………………………………12 2.8 报警装置的设计…………………………………………13

第三章 硬件的设计和制作………………………………………15

3.1 芯片的功能………………………………………………15

3.1.1 AT89C51的功能特点……………………………………15 3.1.2 CX20106功能特点………………………………………16 3.1.3 LED数码管……………………………………………16 3.1.4 系统的特点………………………………………………18

3.2 硬件电路设计和PCB板的制作……………………………18 3.3 超声波测距系统元器件清单………………………………18 3.4 汽车防撞系统实物制作……………………………………19

第四章 软件的设计………………………………………………21

2

基于单片机的汽车倒车防撞系统设计

4.1 软件工作过程……………………………………………21 4.2 算法的软件设计…………………………………………21 4.3 主程序流程图……………………………………………21

第五章 系统调试…………………………………………………24

5.1 硬件调试…………………………………………………24 5.2 软件调试…………………………………………………24

结论………………………………………………………………25 参考文献…………………………………………………………26 致谢………………………………………………………………27 附录一……………………………………………………………29 附录二……………………………………………………………29 附录三……………………………………………………………30 附录四……………………………………………………………32

前言

曾几何时,汽车对很多家庭来说是不敢想象的。但随着社会生产力的发展和经济水平的大幅度提高,让百姓的收入日益鼓胀,解决了温饱问题的家庭开始走向小康,表现得最明显的是交通工具的升级换代上:一些家庭开始购买汽车作为自己的代步工具。 近几年我国汽车保有量逐年增加,2009年的保有量为6300万辆,2010年达到7400多 万辆。按保守估计,未来国内汽车保有量能够达到4.9亿辆左右,即大约350辆/千人。 对于汽车数量的大副度攀升,尽管国家在公路设施上不断地改进,但道路上的车辆仍然 还是越来越多,尤其在上下班时段完全避免不了公路上汽车拥挤的现状。再加上在汽车设计上车速的不断提高,

3

基于单片机的汽车倒车防撞系统设计

虽然公路上各路段都有限速,但撞车事件仍然在广大人民的生活中屡屡发生,给人们带来了巨大的人身伤亡和社会财产的损失。

针对汽车拥挤的现状,设计一种反应快,稳定性好而且经济实用的汽车防撞报警系统对当今现状是势在必行的。汽车防撞系统是一种向司机的报警装置,此防撞报警系统 能将在汽车行驶和倒车过程中自动检测障碍物,然后通过超声波测距原理测出汽车与障碍物之间的距离,并将距离显示出来,当汽车与障碍物之间的距离达极限时。系统发出声光报警,达到提醒司机防止撞车的目。

汽车倒车防撞预警系统即是俗称的倒车雷达,是汽车泊车辅助装置。在汽车倒车时,倒车雷达采用超声波测距原理探测汽车尾部离障碍物的距离,当汽车尾部离障碍物的距离达到探测范围时,倒车雷达通过数码管实时动态显示距离。当汽车尾部离障碍物的距离达到设定的安全警告值时,倒车雷达发出报警声,以警示驾驶员,辅助驾驶员安全倒车。现在生产的中高档小轿车大多数都配置有倒车雷达,而出于节省成本等方面的考虑,经济型小轿车、大客车等其他车辆都没有配置倒车雷达。有市场需求的产品,必然会带动产品的开发设计。倒车雷达电路种类较多,本文介绍基于单片机控制的倒车雷达系统,该系统采用通用型单片机作为控制电路,方便系统功能扩展。系统电路主要采用集成器件构成,外围元件少,电路简洁、调试方便、成本低,利于商品化生产。

第一章 课题简介及其发展现状

1.1 课题研究现状及其发展意义

随着社会经济发展的不断进步,汽车的数量逐年增加,汽车拥挤的现状不可避免, 而在汽车拥挤的情况下,恶性事故屡屡发生,时刻威胁着人们的安全。我国交通事故的 年死亡人数远高于他国,分别是美国的 2.3 倍、德国的 18.4 倍、日本的 13.4 倍。当 现代家庭充分的享受汽车带来方便的同时,也为此付出了沉重的代价。据统计,我国自 2010 年至 2010 年,已有 150 多万人死于道路交通事故,其中大部分的道路交通事故为 汽车追尾碰撞事故。面对当今这

4

基于单片机的汽车倒车防撞系统设计

种现状,设计出一种反应快,稳定性好而且经济实用的 汽车防撞报警系统势在必行。

防撞预警自动测量的技术应运而生,尤其非接触式测量技术发展卓越。在大多情况 下,测量与障碍物之间的距离是不能够接触到障碍物的,在这种时候就会用到非接触式 测量设备。在物理学中人们发现了电子学技术产生的超声波后,从此超声波技术在测量领域得到了广泛的运用,尤其是在超声波测距方面, 结合了其他技术,用超声波测距变得十分常用

超声波在介质中传播的距离较远,分辨力较高,且能量消耗小,利用超声波测距比 较方便而且速度快计算简单,容易做到实时控制,并且测量精度好,都能够达到工业测 量的需要。因此超声测距广泛应用于当今生活中,特别是应用于超声波测距方面。超声 波测距利用的是声波反射原理,声波在空气中传播避免了与介质接触。

与其它测距方式相比,超声测距不受颜色、光线和电、磁场的影响,使他受到干扰 的可能大幅度减少。它还具有可靠性能高、结构简单、价格便宜、安装方便等优点。也 能够测量处于黑暗、烟雾、有灰尘、电磁干扰等恶劣环境中的障碍物。但由于超声波传 播时温度对声速影响比较大,使超声测距的精确度到了影响,在这里可以采用温度补偿 进行校正,能够消除温度对其的影响。

1.2 汽车防撞系统的发展过程

国际上对汽车防撞的研究开始于二十世纪六十年代,以德、美、日为代表的西方国 家内开始研究,与众多汽车制造厂商合作,制造出世界上第一批汽车防撞报警器。但局 限于当时器件的发展水平和单片机成本过高, 导致报警器难以做到体积轻巧、 结构简单、 价格便宜。此外,报警器的干扰因素很多,在实验室制造的样机,对许多干扰因素考虑 不全面,使在实际得应用中,防撞效果并不让众多研究者满意。

二十世纪末,奔驰公司组织,计划将组合通信、传感器、智能技术结合于于一个系 统中,改进了汽车的经济性、安全性和有效性,在这次研究中研制出了性能优良的汽车 防撞报警器,能够帮助驾驶员避免发生交通事故。使得制造出低成主本、高性能的汽车 防撞雷达成为可能。

欧盟RadarNet研究项目整合己有研究成果,研制新型多功能汽车防撞雷达。其中, 德国的汽车生产厂商奔驰公司和英国的电子生产厂商劳伦斯电子公司强强连和,成功研 制出了超声波频率为35G赫兹可报警距离为150米的汽车防撞报警雷达,系统能够智能计 算出汽车与前方障碍物的距离和两者之间的相对运行速度,并且根据自身行驶速度计算 出汽车与障碍物之间的安全距离,当汽车与障碍物之间或与前车之间的距离小于计算出 的安全距离时,预警系统便会发出声音报警信号,提醒司机避开障碍物或者紧急停车。 这种预警雷达适合于在轿车、客车上使用,应用了汽车防撞预警系统能够对于恶性交通 事故的发生起到了较好的预防作用。

1.3 超声波简介

众所周知,当物体在振动的时候就能够发出声音。但是人类耳朵只能听到频率为 20~20000赫兹的声波。当声波的振动频率不在这个范围时的声音人类是听不见的。根 据这种情况,人们规定把声波频率高于20KHZ的声波称为“超声波” 。由于超声波具有方 向性好,抗干扰能力强,穿透能力强等优点。在现实

5

基于单片机的汽车倒车防撞系统设计

生活中有着不可替代的作用它常用 于清洗,测距,测速等。

实际测试发现,相同振幅下, 振动频率和物体振动的能量是成正比的,当超声波传 播时,声波振动频率很高,物体的震动能量也很大。在现实生活中我们充分的利用了这些 能量,例如超声波加湿器,它是把超声波发射到水罐中,物体震动的巨大能量能够使水 罐中的水升华成雾气,在把雾气吹入到空气中,这样就使空气的湿度增加。除此之外应用 超声波还可以做很多方便现实生活的实用工具,本文介绍的汽车防撞装置也是应用超声波的原理制成的。

超声波是声波大家族中的一员。声波指的是物体在机械振动下,物质的质点在其平衡位置进行的往返运动状态。例如鼓经过敲打之后,鼓面就会上下振动,振动通过空气向四面八方进行传播,这就是声波。超声波就使频率很高的声波。超声波在现实生活中 能够光泛应用,是因为超声波有以下几种特性,它能够在气体、固体、液体、等介质中 进行传播,能够传递巨大的能量,能够发生反射、干涉和共振的现象,并且超声波在液 体中进行传播时,可以产生剧烈的空化和冲击的现象。

虽然人类的耳朵听不见超声波,但是不少动物却拥有此项能力。他们就是利用超声 波来捕捉猎物,并且能够避开障碍物。好多人们疑问为什么蝙蝠能够在完全黑暗的情况 下还能够分析在哪能够捕食和避开障碍物。其实蝙蝠就是利用它听到的超声波而进行在 黑暗中自己定位的。蝙蝠通过自己的嗓子发出超声波,超声波发出之后四面八方的发射 出去, 当超声波遇到障碍物之后发生反射, 这种反射回来的超声波进入到蝙蝠的耳朵中, 蝙蝠听到超声波后,就能自己判断出障碍物或者猎物的位置。然后快速的判断出来从而 能够自在的在空中飞翔。

国内的超声波研究照比其它国家起步较晚,人们在发现正压电效应和逆压电效应之 后,超声波才逐渐应用于电子行业、清洗机械器件、军事、塑料焊接、金属焊接、医学 等等领域。尤其在医学方面的应用尤为广泛,超声波在人体里传播时,当超声波在人体 内的传播时如果遇到障碍物,超声波便会发生反射和折射。由于每个人的组织结构都是不同的所以他们对于超声波的吸收能力也不同。这种差别在通过仪器设备把他们显示出 来,医生便能通过这种差别便能够判断出身体是否发出病变。

第二章 总体设计方案

汽车防撞预警系统是指在汽车行驶过程中防止汽车发生碰撞障碍物的一种智能报 警装置。它能自动发现可能与汽车发生碰撞的障碍物体,并且同时检测汽车与障碍物之 间的距离,到达极限距离时发出报警信号以避免碰撞的发生。根据题目要求,汽车防撞 报警器的功能主要有两个:判断汽车与障碍物之间的距离和当汽车与障碍物之间的距离 到达临界距离时发出报警信号。

2.1 设计总体思路概况

6

基于单片机的汽车倒车防撞系统设计

汽车防撞预警系统的原理是利用超声波的发射和接收,用计时器计出超声波从发射 到接收到遇到障碍物后反射声波的时间通过公式计算出汽车与障碍物之间的距离。在实 际生活中常用的测距方法主要有两种,一种是在被测距离的两端,一端设置发射装置, 一端设置接收装置,利用公式 S = vt 得出测量的距离。这种测量方式特别适用于测量身 高;另一种是本次设计采用的方式,利用超声波遇到障碍物后反射得出距离。

汽车防撞系统硬件电路的设计主要包括单片机系统、超声波发射电路和超声波检测 接收电路及显示电路三部分。单片机采用的是 AT89C51 系列。为了获得较稳定时钟频率 而采用了高精度的晶振,这样极大的减小测量距离的误差。用单片机 P1.0 端口输出超 声波发射器所需要的 40kHz 的方波信号,使用外中断 0 口检测接收超声波的反射信号。 显示电路装置用了结构简单价格便宜的 4 位 LED 数码管来显示距离。

超声波的发射装置主要是由反相器 74LS04 和发射传感器构成。 AT89C51 单片机 P1.0 引脚输出 40k 赫兹的间断方波信号分成 2 路,一路信号经过一个反向器后到达 TCT40 一 个引脚,另一路通过两个反向器后到 TCT40 的另一个引脚,用这种形式将 P1.0 发出的 单片机 P1.0 端口发出的间断方波信号加到 TCT40 的两端上,用这种推换形式将间断的 方波信号连接到超声波传感器的两个引脚上,这样能够增强超声波的发射强度。在加载 反波信号时使用两个 74LS04 并联, 是它的驱动能力得到了很大的提高。 而电阻 R8、 R9 增大超声波传感器的阻尼效果,缩短了震荡时间,使超声波传感器输出高电平的能力大 大增加。

超声波接收采用 CX20106A 集成电路模块, 根据电路图可以看出, 集成芯片 CX20106在接收装置电路中的作用很大。CX20106 是一款红外线检波接收的芯片,它常用于现实 生活中, 而且价格便宜。 由于红外线波的频率为 38 kHz, 与测距使用的超声波频率接近。 并且 CX20106 芯片的内部设置比较好,由于设计中芯片的 f5 角连接了一个外接电阻, 此电阻使他滤波器的中心频率能够调节,当 R15 的阻值越大滤波器的中心频率就越低, 变化范围在 30~60 kHz 之间。此次设计证明用 CX20106A 接收超声波信号具有优秀的灵 敏特性和较强的抗干扰能力。

超声波测距预警系统主要包括主程序、发射子程序、温度采集子程序、外部中断子 程序和数码显示子程序等。超声波测距预计能够系统主程序第一步是对系统进行初始 化, 初始化定时器 T0 为 16 位定时计数器的工作模式。 全局中断打开并给显示端口清 0。 在调用超声波的发生子程序发出一个超声波脉冲,在发射过程中延时约 0.1 ms,避免声 波信号从发射器发出后直接传送到接收器而引起直射波触发,然后在使用外中断接收遇 到物体后返回声波信号。我采用了 12 MHz 的晶振,计数器每次计数间隔是 1μs,当主 程序接收到成功的信号后,将计数器 T0 中的数计算,即得出与障碍物之间的距离,测 出距离后将结果送往 LED 显示,这就是超声波测距的过程。

在系统调试方面,由于设计的电路由很多集成电路构成。外围元件很少,所以调试 不太难。只要焊接的电路没有错误,简单调试一下就能够正常使用了。电路设计中除了 集成电路,对其它电子元件也没专业要求。可以根据测量距离的差异,调整与接收换能 器滤波电容就能得到适合灵敏度和超声波抗干扰能力。

2.2 超声波测距原理

7

基于单片机的汽车倒车防撞系统设计

超声波测距是通过检测超声波发射后遇到障碍物所反射回来的回波,如图2-1所示 。从而测出超声 波发射和接收的时间差T,然后根据公式

S = CT / 2

即可算出汽车与被测物体的距离。S 为汽车与障碍物之间的距离,C为超声波在空气中的传播速度。声速c与温度有关,如温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。本设计中设定温度为常温20℃。

图2-1 超声波传播图

利用超声波的测距的原理图如框图 2-2 所示,单片机发出 40kHZ 的信号,经放大后 通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环 电路进行检波处理后,启动单片机中断程序,测得时间为 t,再由软件进行判别、计算, 得出距离数。

超声波接收器 放大电路 定时器 单片机控制 数据显示 超声波发射器 放大电路

图2-2 超声波测距原理图

2.3 超声波传感器

为了利用超声波方便人们的生活,科研机构已经设计制做了很多的超声波传感器。 超声传感器指的是在超声频率范围内将交变电信号转换成声波信号或将外界的声波信 号转换成电信号的转换器件。

超声波是声波中的一种。超声波就是频率很高的声波。超声波在现实生活中能够广泛应用,是因为超声波有以下几种特性,它能够在气体、固体、液体、等介质中进行传 播,能够传递巨大的能量,能够发生反射、干涉和共振的现象。这些优点使超声波换能 器的研究势在必行。

8

基于单片机的汽车倒车防撞系统设计

大体上讲,超声波的发生器可分为两类:一类是用机械方式产生超声波,一类是用 电气方式产生超声波。两种方式产生的超声波功率、频率和声波的特性都不相同,因此 不同的用途采用不同的方式产生超声波。而我在此次设计中采用电气方式产生超声波, 使用目前在理论研究和实际生活中最为常用的压电式超声波发生器。

压电式超声波传感器装置是根据声电转换原理制成的,它又称超声波探头或者超声 波换能器。超声波换能器有两种,一种是超声波发射换能器,另一种是超声波接收换能 器。压电式超声波换能器的原理是依靠压电晶体的谐振来进行工作的。超声波换能器的 内部由一个换能板和两个压电晶片构成。这种超声换能器需要的压电材料很少并且价格 便宜,并且很适用于气体介质中。当压电晶片受到发射电脉冲激励后即可产生振动,发射声波脉冲,是逆压电效应。逆压电效应用于超声波的发射。当外界的超声波作用于压 电晶片时,晶片被迫发生振动引起形变转换成电信号,这是正压电效应。正压电效应应 用于超声波的接收。

在换能器的两极引脚加上大小和方向不断变化的交流电压,就能使压电晶片产生机 械变形,当引脚的频率和压电晶片上的振荡频率相同时,就能带动共振板发生共振产生 超声波。

超声波换能器的工作原理是把40kHz的间断方波信号分成2路,一路经一级反向器后 到达TCT40一个电极,另一路通过两级反向器后到TCT40的另一个电极,用这种形式将 P1.0发出的方波信号加到TCT40的两端上,然后产生谐振后经辐射器将振动信号向四面 八法传播出去。当超声波信号经过传播后如果遇到障碍物之后就会发生光波折射,在传 播回来,由接收换能器进行接收。

2.4 控制系统方框图

超声波防撞控制系统图如框图 2-3 所示。该系统全部都由单片机进行控制,单盘机 发出 40Hz 的方波脉冲,经过超声波发射电路发射出超声波。超声波在遇到障碍物之后 反射射回来再由接收电路接收反射声波信号送入单片机进行分析,计算出汽车与障碍物 之间的距离,将处理后的结果送入显示电路经过数码显示管显示出距离,如果距离达到 安全的极限距离着由报警电路通过蜂鸣器发车报警,提示司机躲避障碍物。

振荡复位电路 报警电路

超声波发送电AT89C51单片机 扫描驱动 路

超声波接收电路 9 LED显示 基于单片机的汽车倒车防撞系统设计

图 2-3 超声波测距报警系统图

2.5 超声波发射装置的设计

超声波发射器包括两个部分:超声波产生电路部分和超声波发射控制电路部分。超 声波探头采用TCT40。

单片机P1.0端口输出40KHz的超声波信号,此时定时器开始计时。通过输出引脚输 入,经驱动后推动发射探头产生超声波,此方法充分利用了软件控制,灵活性好。超声 波发射电路设计图如图2-4所示。

U4:D1312VCCR8U4:A174LS041174LS042374LS04U4:BU4:E101k4T74LS04TCT40-16U4:C5R961k 图 2-4 超声波发射装置设计图 74LS04 超声波的发射电路主要由反相器 74LS04 和发射换能器构成。AT89C51 单片机 P1.0 口输出的 40kHz 的间断方波信号分成 2 路,一路经一级反向器后到达 TCT40 一个电极, 另一路通过两级反向器后到 TCT40 的另一个电极,用这种形式将 P1.0 发出的方波信号 加到 TCT40 的两端上,这样能够增强超声波的发射强度。在加载反波信号时使用两个 74LS04 并联,可以提高驱动能力。而电阻 R8、R9 可以增加超声波换能器的阻尼效果, 缩短了震荡时间,还可以提高换能器输出高电平的驱动能力。 2.6 超声波接收装置的设计 10 基于单片机的汽车倒车防撞系统设计

超声波接收器包括接收∕发射探头、信号放大电路和波形变换电路三个部分。超声 波探头采用RCT40。

按照超声波原理,微处理器需要的只是第一个回波的时刻。接收装置的设计可用 CX20106A来完成。在空气中传播超声波的其能量的衰减与距离是成正比的,距离越小、 衰减越少,距离越大、衰减越多,通常都在1V之内。

1RR1447C940K4732345678C6C104.7330C174.7R16R15200k200kC11104 图 2-5 超声波接收装置设计图

超声波的接收装置如图2-5超声波接收装置图所示。超声波的接收采用CX20106A集 成电路模块,根据电路图可以看出,集成芯片CX20106在接收装置电路中的作用很大。 CX20106是一款红外线检波接收的芯片,他常用于现实生活中,而且价格便宜。由于红外线波的频率为38 kHz,与测距使用的超声波频率接近。并且CX20106芯片的内部设置 比较好,由于设计中芯片的f5角连接了一个外接电阻,此电阻使他滤波器的中心频率能 够调节,当R15的阻值越大滤波器的中心频率就越低,变化范围在30~60 kHz之间。

CX20106对收到的信号进行放大、滤波的作用。当接收到的声波信号经

11

CC基于单片机的汽车倒车防撞系统设计

由放大器, 调整信号的频率, 然后滤波消除干扰信号, 最后再经过整形, 输出到CX20106的7脚输出。 当接收到的声波信号与CX20106的中心频率相符时,它的7脚就会低电平输出,而7脚接 到INT0引脚上,这样就会中断。若频率和CX20106的中心频率不同时,即可调节R15,使 滤波器的中心频率与超声波测距的频率相符。

2.7 显示电路的设计

显示电路中显示测量距离使用的是4位共阴的LED数码管,它简单实用并且价格便 宜。位码使用四个PNP三极管来驱动,显示电路设计图如图 2-6显示电路设计图所示。

VCCR11R122kR132k901290122kR102k90129012Q1Q2Q3Q4VCC

图2-6显示电路设计图

2.8 报警装置的设计

报警部分采用一个蜂鸣器进行报警,LED发光,利用单片机控制输出一个一定频率的信号。信 号通过一个三极管,把信号放大,以增强驱动能力。然后

12

基于单片机的汽车倒车防撞系统设计

将放大之后的信号连接到蜂鸣器上,报警部分装置的设计图如图 2-7 所示。

VCCR381kVCCLSD12LEDSPEAKERR312kQ59012

图 2-7 报警装置设计图

蜂鸣器是使用直流电源进行供电,它广泛应用于当今生活中,尤其在计算机、报警 器、复印机、打印机、电子玩具、汽车电子设备、电话机等电子设备制造中作为发声的器件而广泛应用。蜂鸣器是一种一体化结构的电子发声器,它分为两种类型,一种是压电式蜂鸣器另一种是电磁式蜂鸣器。

压电式蜂鸣器主要由压电蜂鸣片、多谐振荡器、共鸣箱阻及抗匹配器还有外壳等部 分组成。压电蜂鸣片是由铌镁酸铅或锆钛酸铅压电陶瓷材料制造而成。而多谐振荡器由集成电路或者晶体管构造而成。当电极两端接通电源以 后,多谐振荡器开始振动,输出音频信号,然后阻抗匹配器便能推动压电蜂鸣片发出声 音。电磁式蜂鸣器主要由振荡器、磁铁、振动膜片、电磁线圈和外壳等部分组成。在两 极接通电源之后,振荡器能够产生的音频信号,信号通过电磁线圈,便会使电磁线圈生 成磁场。这样振动膜片便会在磁铁和电磁线圈的作用下,周期性反复地振动从而发出声音。

13

基于单片机的汽车倒车防撞系统设计

第三章 硬件的设计和制作

硬件电路的设计主要包括三部分:单片机系统、显示电路、超声波的发射和检测接 收电路。在本次设计中单片机采用AT89C51。还采用了12MHz高精度的晶振,以减小测量 误的差。用AT89C51的P1.0端口输出所需的40kHz的方波信号,采用AT89C51实现对TCT40 超声波转换模块和CX20106A芯片的控制。

3.1 芯片的功能

3.1.1 AT89C51的功能特点

AT89C51 单片机主要由中央处理器、存储器、输入输出接口等组成。中央处理器是 单片机的核心部分,它的主要作用是完成运算和控制功能。程序存储器具有存储功能, 使应用程序在开发调试后永久性的存储在程序存储器中。 AT89C51 控制着超声波的发送和接收,串行口发送数据。LED 显示是共阴极接法的动态循环显 示.接收电 路接收超声波遇到物体后反射回来的回波信号。该芯片包括了限幅放大、前置放大、整 形和输出数据信号,这样方便了检测判断回波的数据是否正确, 并且能够通过计算得出 距离值. AT89C51 是一种带 4K 字节闪烁可编程可擦除存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压, 8 位高性能的 CMOS 微处理器,叫做单片 机。该单片机采用的制造技术是 ATMEL 高密度非易失存储器制造成的,它能够与达到工 业标准的输出管脚和 MCS-51 指令集相兼容。由于它将 8 位多功能 CPU 处理器和闪烁存 储器组合在单个芯片中,AT89C51 是一种高效微控制器外形及引脚排列如图 3-1 所示。 U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51

14

基于单片机的汽车倒车防撞系统设计

图 3-1 AT89C51 控制器

AT89C51 有两种可用软件来选择的省电方式:空闲工作方式和掉电工作方式。当处 于空闲方式时 CPU 处于睡眠状态,但片内的其他部件仍然继续工作,而且片内 RAM 的内 容和所有专用寄存器的内容在空闲方式期间都被保留起来。当处于掉电方式时保存了 RAM 的内容,振荡器停止震荡,禁止芯片其它功能直到下一次硬件复位才能使用。

AT89C51 为许多器材的制造提供了十分灵活和低成本的解决办法。充分的利用了单 片机的片内资源,使我们可以在较少使用外围电路的情况下完成超声波测距。

3.1.2 CX20106 功能特点

CX20106对收到的信号有放大和滤波的作用。如图3-2所示,CX20106芯片的接口图。 CX20106有8个引脚,管脚1是超声波信号输入端;管脚2的电阻和电容决定接收换能器的 总增益,通过增大或者减小电阻电容,确定放大倍数,改变放大器的频率。管脚3与GND 之间连接的电容起到检波作用;管脚5上的连接一个电阻,这个电阻用来设置滤波器的 中心频率;管脚6与GND之间接入一个电容,该电容确定探测距离;管脚7是集电极开路 输出端:管脚8接电源正极。

图3-2 CX20106 芯片接口图

3.1.3 LED数码管

在生活中最常见到的 LED 数码管是八段和七段的,八段式原理图的如图 3-4 所示。 本次设计中采用的是八段式的数码管。八段式的与七段式的相比,他们各部分结构大体 相同,八段只比七段式的多了一个小数点。数码管里都是由 LED 发光二极管发光单片机 控制 LED 的灭亮显示出不同的形状从而显示出数字,八段式的数码管与七段式的主要区 别就在于八段式的数码管中有八个发光二极管,而七段式的数码管中有七个发光二极 管,两种之间只差一个点。

数码管又分为两种类型,共阳极型和共阴极型。原理图如图3-3共阳极型和共阴极 型原理图所示。共阳极型就是将数码管中发光二极管的阳极都接在一起并且接到电源 上,连接好之后把其中任何哪个发光二极管的阴极接到地线上,它就会发光。共阴极型则是将数码管中发光二极管的阴极都接在一起并且接到地线上,连接好之后把其中任何哪个发光二极管的阳极接到电源上,它就会发光。

15

基于单片机的汽车倒车防撞系统设计

图 3-3 共阴极型和共阳极型原理图

图 3-4数码显示管引脚图

如图 3-4 数码显示管引脚图所示, 把两个 COM 引脚连接起来, 作为数码管的公共端, 数码管共阳端要接地,共阴端接电源。一个二极管是一位,八个管子即 a,b,c,d,e,f,g 还有 dp, 拼成个 8 字列在一起就构成了一个 8 位的数码显示管。 一个八段式的数码显示 管的每个显示管连在一起,每个二极管的公共端称为位选线。在数码管显示数字是,一 个二极管对应一条直线,a 对应的

16

基于单片机的汽车倒车防撞系统设计

是首位,dp 对应最后位。例如,当数码管显示管显示 数字 0 时,那么共阴极数码显示管的编码就为 00111111,十六进制数为 0x3f,而共阳 极的数码显示管的编码就是 11000000,十六进制数为 0xc0。通过这个例子可以看的出 来共阴极数码显示管和共阳极数码显示管的编码各个位是相反的。 3.1.4系统的特点

基于超声波技术的汽车防撞系统的设计,由于使用单片机作为控制元件控制整个系 统电路,致使系统操作方便、可靠性高、结构简单并且能够自动控制该系统的的运行, 能够自己检测障碍物。对于当今社会汽车拥挤的这一现状,此项研究对于防止交通事故 的发生具有预防作用。

总体说来,本次设计能够实现测距的功能,报警距离可以人工智能控制,能够产生 方向性好,抗干扰能力强,穿透能力强的声波信号,能够在事故发生前提示报警。

3.2硬件电路设计和 PCB 板的制作

超声波测距预警系统硬件部分由超声波的接收电路、显示电路、超声波的发射电路 和单片机的外围电路等各部分组成。

使用单片机的P1.0口输出40KHZ的方波信号,经反相器来控制超声波的发送,以达 到超声波换能器所需的震荡条件。利用中断口INT0检测超声波接收电路接收到的返回信 号,当单片机INT0引脚由高电平变为低电平时超声波就已经返回。计数器计出超声波传 播所用的时间,然后算就能够得到与障碍物之间的距离大小。显示电路采用结构简单的 4位LED数码管把测量的距离显示出来,位码用4个PNP三极 管来驱动。

超声波测距预警系统是利用单片机控制超声波的发射接,并自动计时得出超声波的 往返时间,单片机采用的是 AT89C51,这种单片机经济实用,结构简单。并且单片机内 有 4K 的 ROM,方便于编程。

这时就可以使用单片机把各部分设计好的电路图连接起来进行仿真了。超声波预警系统电路的设计图如附录一汽车预警系统原理图所示。

3.3超声波测距系统元器件清单

在本次设计中使用的元器件主要有单片机 AT89C51, CX20106A,超声波探头, 蜂鸣器, 数码显示管等,所用元器件详细清单如表 3-5所示。

表3-5元器件清单

17

基于单片机的汽车倒车防撞系统设计

3.4 汽车防撞系统实物制作

电路图经过仿真成功后,制作成 PCB 板。 PCB 的制造很复杂,一般都要经过制版、 图形转移、光学蚀刻、过孔和铜箔处理、助焊和阻焊处理等过程。由于设备的不足,在 这次设计中,电路板的制作我没有能够亲自参与,由制板公司代为制做,感觉很遗憾。

电路板制作成功之后,其他元件也都成功买到。在焊接制作工程中,遇到了很多苦难, 由于对器件的不了解,造成了多次焊接错误,在改正错误的过程中了解了很多的器件, 尤为一提的便是焊接技术。在这次焊接中,自己专业的学习了焊接技术,大大增强了自 己的动手能力。 在焊接中,焊点的最佳状态是焊点为等腰三角形,两腰要略凹,并且焊点表面要光 滑并且焊点布满焊盘。在焊接时首先要准备好焊锡丝和烙铁。在加热焊件之前确保烙铁 的热度足够,并且烙铁头部要干净。然后开始加热焊件,把烙铁接触到焊接点要保证烙 铁让整个焊件加热,然后放焊锡丝,当焊锡丝融化满焊盘后,先将焊锡丝移开,最后在 移开烙铁。

18

基于单片机的汽车倒车防撞系统设计

图3-4 汽车防撞系统实物图

19

基于单片机的汽车倒车防撞系统设计

第四章 软件的设计

超声波测距预警系统主要包括主程序、发射子程序、温度采集子程序、外部中断子 程序和数码显示子程序等。

4.1 软件工作过程

按下控制系统的开关, 进行系统的初始化, 当主程序完成初始化后调用发射子程序, 由 P1.0 口发射出1 个脉冲,驱动超声波换能器发射超声波,并且计数器开始计时。利 用定时器的计数功能记录到超声波发射到接受所用的时间当超声波接收器接收到超声 波后,接收电路输出端输出一个跳变信号,在INT0端产生一个中断的信号,得到超声波 的时间差。温度假设不变,知道了时间和超声波的声波速度后,通过单片机的计算得出距离,显示出来,到达 距离极限时,启用报警模块。

4.2 算法的软件设计

超声波测距是通过检测超声波发射后遇到障碍物所反射回来的回波,从而测出从发 出超声波信号到接收到返回信号的时间间隔,然后求出距离由 S=CT/2 即可算出汽车与被 测物体的距离。 其中,S 为测量的距离,C 为超声波在空气中的传播速度。T 从发出超声波信号到接 收到返回信号的时间间隔。 在启动发射电路发射超声波的同时开启单片机 AT89C51 内 的定时器 T0, 通过定时器∕计数器的计数功能记录下来超声波发射的时间和接收到超声 波的时间。当接收电路收到超声波时,接收电路的输出端会产生一个负跳变,在 INT0 端能够产生一个中断信号,单片机响应中断请求后执行外部中断子程序,读取出来时间 间隔,计算出距离。

4. 3主程序流程图

软件分成两部分,主程序和中断服务程序,如图4-1(a)(b)(c)所示。 主程序完成初始化工作,各路超声波发射和接受顺序的控制。 定时中断服务子程序完成三方向超声波的轮流发射。

外部中断服务子程序主要完成是件值得读取,距离计算,结果的输出等工作。

20

基于单片机的汽车倒车防撞系统设计

开始 定时中断入口 单片机初始化 定时器初始化

发射超声波 定时中断子程序

N

有无回拨? 三方向均发射完否?

Y Y 停止发射

外部中断子程序 返回

图(a)主程序流程图 图(b)定时中断服务子程序

外部中断入口

关外部中断

读取时间值

计 算 距 离

N

结 果 输 出 开外部中断 返回

图(C)外部中断服务子程序

21

基于单片机的汽车倒车防撞系统设计

主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端P0和P1清零。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断0接受返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1us,当主程序检测到接收成功的标志位之后将计数器T0中的数(即超声波来回所用的时间)按公式计算,即可得到被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:

S = CT / 2=172T0/10000cm

其中,T0为计数器T0的计算值。

测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C语言。

22

基于单片机的汽车倒车防撞系统设计

第五章 系统调试

在本次设计中,除了硬件和软件的设计可行之外,软件和硬件的调试也是本次设计 中的重要部分。如果设计的汽车防撞预警系统没有经过软件和硬件的调试可能会直接导 致本次设计的失败。

5.1 硬件调试

根据前面的研究完成各个电路模块的原理设计并生成PCB图,制作电路板,进行实验调试。

(1)在制作之前,电路板的检查是很重要的, 在检查中先仔细检查印制板上印制的线条有没有断路和毛刺,焊盘有没有脱落,是否和 别的线粘连等等。 (2)用万用表检测看起来可疑连接线或者连接点,看它们是否和设计 中规定的一样。用万能表检查每个电源线与地线之间的链接,看有没有出现短路现象。 短路一定要在器件安装之前及时的检查出来。安装完元器件后接通电源,感觉一下芯片 有没有出现发热的现象,如果出现就要立即关掉电源,检测一次。 (3)硬件调试需要经过反 复的调试,直到各个模块通过检测没有问题,通过反复检查之后硬件调试完毕。

5.2 软件调试

当硬件制作完成后,软件制作也是不可轻视的部分,是实现电路的功能的关键部分,通过本次毕业设计,总结经验如下:

(1)先进行人工检查。写好程序后,不要立刻烧入单片机,先对纸面上的程序进行人工检查。由于采用C语言编程,所以要特别小心地检查语法错误,如括号不配对,漏写分号等,通过仔细的检查,发现并排除这些错误。

(2)人工检查无误后,上机调试。在编译时给出的语法错误的信息,根据提示的信息具体找出程序中错误之处并改之,从上至下逐一改正。应当注意的是:有的提示出错行并不是真正出错的行,如果在提示出错的行上找不到错误的话,则应该到上行再找。

(3) 当确认程序无语法错误和逻辑错误时,通过直接下载到单片机来调试。采用的是自下到上的调试方法,即单独调好每一个模块,然后再连接成一个完整的系统调试。

(4) 程序烧入单片机后,观察各个部件的工作是否正常,功能是否实现。如不能正常工作,则继续检查程序中的相应模块,必要时从上到下重新检查程序。

23

基于单片机的汽车倒车防撞系统设计

结论

汽车防撞预警系统的原理是利用超声波的发射和接收,用计时器计出超声波从发射 到接收到遇到障碍物后反射声波的时间通过公式计算出汽车与障碍物之间的距离。它的硬件电路的设计主要包括单片机系统、超声波发射电路和超声波检测接收电路及显示电路三部分。单片机采用的是AT89C51系列。超声波的发射电路主要由反相器74LS04和发 射换能器构成,用单片机P1.0端口输出超声波发射器所需要的40kHz的方波信号。超声波的接收采用CX20106A集成电路模块进行。超声波测距预警系统软件设计主要包括主程序、发射子程序、外部中断子程序和数码显示子程序。

虽然在本次毕业设计中已经通过认真的思考,但是还有很多不足的地方。在本设计中有两点不足之处,一是没有把汽车速度的测量设计到汽车防撞预警系统中去,对于这一方面还没有充分的研究,对于测速的初步想法就是利用多普勒效应测出汽车的行驶速度,然后根据测出的速 度确定汽车与障碍物之间的极限安全距离在由单片机智能控制发出报警信号。二是对于温度对超声波传播速度的影响,本设计把温度设为常温不变,实际温度对超声波速度影响很大,所以就降低了超声波的抗干扰能力,对于温度补偿的初步想法是用温度传感器对汽车防撞预警系统进行温度补偿,消除了温度对于超声波声速的影响。

总体而言,这次设计达到预期效果,实物可以显示预期要求,而且这次设计时做实物,就更提高了我的动手能力,能让我更好的把理论运用到实际中去, 时间有限,不能进一步的深入,希望有时间时可以对本设计进一步完善,对不足之处进行补充修改。

24

基于单片机的汽车倒车防撞系统设计

参考文献

[1] 陈明荧. 8051单片机基础教程[M]. 北京:科学出版社,2003.

[2] 马忠梅. 单片机C语言应用程序设计[M]. 北京:北京航空航天大学出版

社,2007.

[3] 刘昌华,易逵. 8051单片机的C语言应用程序设计与实践[M]. 北京:国

防工业出版社,2007.

[4] 周润景. Proteus在MCS-51&ARM7系统中的应用百例[M]. 北京:电子

工业出版社,2006.

[5] 周润景,张丽娜,刘印群. Proteus入门实用教程[M]. 北京:机械工业出版

社,2007.

[6] 李学礼. 基于Proteus的8051单片机实例教程[M]. 北京:电子工业出版社,

2008.

[7] 谢维成等. 单片机原理与应用及C51程序设计[M]. 北京:清华大学出版

社,2006.

[8] 徐爱琴等.C语言程序设计[M].北京:电子工业出版社,2008 [9] 陈堂敏,刘焕平. 单片机原理及应用[M].北京:北京理工大学出版社,2008.

25

基于单片机的汽车倒车防撞系统设计

致谢

历时一个月的毕业设计已经告一段落。经过自己的探索努力以及瞿老师的帮助,本设计已经基本完成。同时利用学校图书室及老师提供的书籍为我的设计提供了很多的帮助。在此对帮助过我的同和老师表示深深的感谢。

通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,这次毕业设计使我对单片机有了更加深刻的了解和掌握。并且检验了大学三年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这一个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。

由于自身能力水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。

26

基于单片机的汽车倒车防撞系统设计

附录一

PROTEUS原理图

1U4:D1312VCCR8U4:A174LS041174LS042374LS04RR1447U4:BU4:E101k42345678C6C104.7330P3.2T40KC947374LS04C174.7R16R15200k200kTCT40-16U4:C5R961kC1110474LS04VCCC20U120P19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617VCCX112MR381kVCC18XTAL2C25920PVCCLSD12LEDSPEAKERRSTR3210kC194.7uF293031PSENALEEAR11R122kR132k9012P3.290122kR312kQ59012R102k90129012VCC12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P1.1D11VCCQ1Q2Q3Q4C31LEDPOWER12R391k104VCC

图1 超声波测距电路图

27

基于单片机的汽车倒车防撞系统设计

附录二.

装配图

图2 超声波测距装配图

28

基于单片机的汽车倒车防撞系统设计

附录三

效果图(一)

通电后 ,电源指示灯亮,测距距离大于80cm时,数码管显示距离,LED报警灯不亮,报警器不响。

图3 超声波测距效果图

29

基于单片机的汽车倒车防撞系统设计

效果图(二)

通电后,电源指示灯亮,测距距离小于80cm时,数码管显示距离,LED报警灯亮,报警器响,提醒驾驶员注意。

图4 超声波测距效果图

30

基于单片机的汽车倒车防撞系统设计

附录四

程序

#include

sbit k1=P3^4;

sbit csbout=P1^0; //超声波发送 sbit csbint=P3^2; //超声波接收 sbit bg=P3^3; #define LED P0

sbit LED1=P2^4; //LED控制 sbit LED2=P2^5; //LED控制 sbit LED3=P2^6; //LED控制 sbit bj=P2^0;//报警 #define csbc 0.0347

unsigned char cl,mqzd,csbs,csbds,buffer[3],xm1,xm2,xm0,jpjs;//显示标识 unsigned

unsigned int s,t,i,xx,j,sj1,sj2,sj3,mqs,sx1; void csbcj();

void delay(j); //延时函数 void scanLED(); //显示函数 void timeToBuffer(); //显示转换函数 void keyscan(); void k1cl(); void k2cl(); void k3cl(); void k4cl(); void offmsd();

void main() //主函数 {

EA=1; //开中断

31

char

convert[10]={0x18,0x7b,0x2c,0x29,0x4b,0x89,0x88,0x3b,0x08,0x09};//0~9段码

基于单片机的汽车倒车防撞系统设计

TMOD=0x11; //设定时器0为计数,设定时器1定时

ET0=1; //定时器0中断允许

ET1=1; //定时器1中断允许

TH0=0x00; TL0=0x00; TH1=0x9E; TL1=0x57; csbds=0; csbout=1; cl=0; csbs=8; jpjs=0;

sj1=50;/////////测试报警距离 sj2=200; sj3=580; k4cl();

TR1=1; while(1) {

keyscan(); if(jpjs<1) {

csbcj(); //调用超声波测距程序 if(s>sj3) //大于时显示“CCC” {

buffer[2]=0xC6; buffer[1]=0xC6; buffer[0]=0xC6; }

else if(s32

基于单片机的汽车倒车防撞系统设计

buffer[2]=0xBF; buffer[1]=0xBF; buffer[0]=0xBF; }

else timeToBuffer(); }

else timeToBuffer(); //将值转换成LED段码

offmsd();

scanLED(); if(svoid scanLED() {

LED=buffer[0]; LED3=0; delay(200); LED3=1;

LED=buffer[1]; LED2=0; delay(200); LED2=1;

LED=buffer[2]; LED1=0; delay(200); LED1=1; }

//显示函数 //显示功能模块 33

基于单片机的汽车倒车防撞系统设计

void timeToBuffer() //转换段码功能模块 {

xm0=s/100; xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer[2]=convert[xm2]; buffer[1]=convert[xm1]; buffer[0]=convert[xm0]; }

void delay(i) {

while(--i); }

void timer1int (void) interrupt 3 using 2 {

TH1=0x9E; TL1=0x57; csbds++; if(csbds>=40) {

csbds=0; cl=1; } }

void csbcj() {

if(cl==1) {

TR1=0; TH0=0x00; TL0=0x00;

34

基于单片机的汽车倒车防撞系统设计

i=csbs; while(i--) {

csbout=!csbout; }

TR0=1;

i=mqs; //盲区

while(i--) { } i=0; while(csbint) {

i++;

if(i>=4000) csbint=0; } TR0=0; TH1=0x9E; TL1=0x57; t=TH0; t=t*256+TL0;

t=t-29; s=t*csbc/2; TR1=1; cl=0; csbint=1;

////////////////////////////////////////////////////////////////// if(s<=80)bj=0;

if(s>80)bj=1;

///////////////////////////////////////////////////////////////// if(s35

上限值 // 基于单片机的汽车倒车防撞系统设计

if(csbs>6) {

csbs=csbs-2; sj1=40; } sj1=sj1+2; k4cl(); }

else if(s>=sj3) {

if(csbs<32) {

csbs=csbs+2; sj1=sj1+10; k4cl(); } } } }

void keyscan() //键盘处理函数 {

xx=0;

if(k1!=1) // 判断开关是否按下

{

delay(100); //延时去抖动

if(k1!=1) // 判断开关是否按下

{ while(!k1) {

delay(25);

36

基于单片机的汽车倒车防撞系统设计

xx++; }

if(xx>1000) {

jpjs++; if(jpjs>3) {

} } }

void k1cl() {

sj1=sj1+1; if(sj1>100) sj1=50; s=sj1; } void k2cl() {

sj2=sj2+5; if(sj2>500) sj2=40;

k4cl(); jpjs=0; } } xx=0; switch(jpjs) {

case 1: k1cl();break; case 2: k2cl();break; case 3: k3cl();break; } 37

基于单片机的汽车倒车防撞系统设计

s=sj2; }

void k3cl() {

sj3=sj3+10; if(sj3>600) sj3=600; s=sj3; }

void k4cl() {

sx1=sj1-1; sx1=sx1/csbc; mqs=sx1/4.5; } void

//小时数十位为0判断模块

{

if (buffer[0] == 0xC0) 值为零时小数十位不显示

buffer[0] = 0xFF; }

38

offmsd() 如果 //

因篇幅问题不能全部显示,请点此查看更多更全内容

Top