基于单片机的红外测距系统设计 - 副本

合集下载

基于51单片机的红外测仪

基于51单片机的红外测仪

基于51单片机的红外测仪【摘要】本系统是基于51单片机的一款测量精度为0.1毫米红外测距仪。

本系统采用能量测距原理,通过红外接收模块将采集的光信号转化成电信号,再经信号放大,A/D采样将信号转化为数字信号输入单片机中,通过编写相应的程序实现自动测量功能,通过显示电路显示出结果。

并在超出系统测试范围时进行警报。

【关键词】红外测距当前主流测距方法主要有三种:传统测量、激光测量、红外测量、超声波测量。

传统测量方法需要话费大量人力时间,且精度和范围都无法达到高标准要求。

激光测距虽在测量范围和时间上有一定优势,但对操所人员的技能要求较高容易出现安全事故,且制做的难度较大,成本较高。

超声波测距误差较大环境温度、湿度、海拔高度等都可能对其造成影响。

红外线是介于可见光和微波之间的一种电磁波,因此,它不仅具有可见光直线传播、反射、折射等特性,还具有微波的某些特性,如较强的穿透能力和能贯穿某些不透明物质等。

故在未来的发展中红外测距技术必将拥有广阔的应用前景。

本文提供一种用51单片机解决短距高精度红外测距的方法。

此系统精度高电路简单,用51c编程易懂且方便移植。

降低了调试难度且增加了初学者的可操作性。

1 方案论证与比较目前在红外测距领域中,主要有应用一下三种测距法:时间差测距法、放射能测距法和相位测距法。

这三测距法原理如下1.1 时间差测距法原理红外线发射器发射出有频率的红外线,经障碍物反射,红外线接收器接收到反射波信号,并将其转变为电信号。

测出发射波与接收到反射波的时间差,即可求出距离s,但是经过计算这个方法并不合理,红外线的传播速度为310 m/s,单片机要想反应的过来的话,处理速度至少在GHz以上,很显然是不可能的,所以是无法根据时间测出距离的。

1.2 反射能量法原理反射能量法:仪器发射一束光(通常是近红外光)照射到被障碍物表面,同时红外接收管接收障碍物的反射光能量,传播距离越远,光强就越弱,所以根据接收到的反射光能量来判断被测物体的距离。

基于单片机控制的红外报警器的设计_毕业设计

基于单片机控制的红外报警器的设计_毕业设计

基于单片机控制的红外报警器的设计_毕业设计毕业设计题目:基于单片机控制的红外报警器的设计一.设计背景和意义随着社会的不断发展,人们越来越注重家庭和财产的安全。

红外报警器作为一种常见的安防设备,能够及时发现室内外的异常情况并进行报警,起到了一定的防护作用。

本毕业设计旨在基于单片机控制,设计一个能够准确、快速并稳定地检测室内外空间的红外报警器,为人们提供更加安全的居住环境。

二.系统设计方案红外报警系统通常有红外传感器、控制电路和报警器三部分组成。

本设计方案将采用单片机作为控制核心,并通过红外传感器实时获取目标物体的热量,并根据实时的数据进行判断,当检测到异常情况时,通过控制电路驱动报警器发出警报。

1)硬件设计:a)红外传感器的选择:选择一款高灵敏度、稳定性好的红外传感器,能够检测到人体或其他物体的热量变化。

b)控制电路设计:将所选红外传感器连接到单片机的引脚上,通过数模转换芯片将传感器获取的模拟信号转换为数字信号,然后通过I/O口输入到单片机中进行处理。

c)报警器设计:选择一款高音量报警器,通过控制电路连接到单片机的输出引脚上,当检测到异常情况时,单片机输出高电平信号,控制报警器发出警报。

2)软件设计:a)系统初始化:对单片机进行初始化设置,包括引脚的配置、中断的设置等。

b)传感器数据处理:通过定时中断采集红外传感器获取的模拟信号,并进行模数转换,将转换后的数据保存到指定的变量中。

c)异常检测:根据实时的传感器数据进行算法判断,当数据超出预设的阈值范围时,判断为异常情况,触发报警功能。

d)报警控制:当发生异常情况时,通过控制指定的输出引脚输出高电平信号,触发报警器发出警报声。

e)系统保护:设计适当的保护措施,如防止误报、稳定性问题等。

三.预期成果通过本设计,预计能够实现以下目标:1)搭建一个基于单片机控制的红外报警器的硬件电路。

2)设计并实现红外报警器的软件系统,包括初始化设置、数据处理、异常检测、报警控制等功能。

红外距课程设计 - 副本

红外距课程设计 - 副本

摘要现代科学技术的发展,进入了许多新领域,而在测距方面先后出现了激光测距、微波雷达测距、超声波测距及红外线测距。

为了实现物体近距离、高精度的无线测量,我采用红外发射接收模块作为距离传感器,单片机作为处理器,编写A/D转换、显示以及与PC机的通信程序,开发了一套便推式的红外距离测量系统,系统可以高精度的实时显示所测的距离,并且可以将距离量通过串口发送到PC机显示处理、本系统结构简单可靠、体积小、测量精度高、方便使用,另外本系统形成了一套完善的软硬件开发平台,可以进行扩展、移植和做进一步的开发。

下面是红外测距的相关课程设计。

目录摘要 (1)一、红外线简介 (3)1.1 红外线传感器的分类 (3)1.2红外线传感器的应用 (5)二、实验目的 (6)三、实验内容 (6)四、实验仪器 (6)五、红外测距原理 (6)5.1、时差法光电测距基本原理 (6)5.2、相位法光电测距基本原理 (7)5.3、三角法光电测距基本原理 (8)六、红外测距的基本结构及系统框图 (8)6.1 主要元件分析 (9)1.红外线发射器件 (9)6.2、红外测距硬件电路设计 (10)1.单片机最小系统 (10)2. 红外发射电路设计 (11)3. 红外接收放大电路设计 (12)4. 电源电路 (12)5. 数码管显示电路图 (13)6. 系统总电路图及元器件 (13)七、总结 (15)一、红外线简介近二十年来,红外辐射技术已成为一门迅速发展的新兴技术科学,它已广泛应用于生产、科研、军事、医学等各个领域。

红外辐射技术是发展测量技术、遥感技术和空间科学技术的重要手段。

红外辐射俗称红外线,又称红外光,它是一种人眼看不见的光线,但实际上它和其他任何光线一样,也是一种客观存在的物质,任何物质只要它的湿度高于绝对零度,就有红外线向周围空间辐射。

它的波长介于可见光和微波之间,它的波长范围大致在0.75μM-1000μM的频谱范围之内,红外线与可见光、紫外线、x射线、y射线和微波、无线电波一起构成了整个无线连续的电磁波谱。

基于单片机的红外测距系统

基于单片机的红外测距系统
KEYWORDS:Infrared distance,STC89C52microcontroller, A / D conversion
第一章绪论1
1.1设计背景1
1.2红外线简介1
1.3红外传感器概述2
1.3.1红外传感器的分类2
1.3.2红外线传感器的应用5
第二章红外测距的方法和原理6
2.1几种红外测距原理及选择6
In order to achieve the objects at close range, high-precision wireless measurement, I used the infrared transmitter receiver module as the distance sensor, microcontroller as the processor to write the A / D conversion, display and communication with the PC program, developed a will to push infrared distance measurement systems, high-precision real-time system can display the measured distance, and distance measuring can be sent through the serial port to a PC display processing, the system structure is simple and reliable, small size, high accuracy, ease of use, while this system the formation of a complete set of hardware and software development platform can be extended, transplantation, and further development.

基于51单片机的红外遥控设计-毕业设计论文

基于51单片机的红外遥控设计-毕业设计论文

基于51单片机的红外遥控设计摘要很多电器都采用红外遥控,那么红外遥控的工作原理是什么呢?本文将介绍其原理和设计方法。

红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。

常用的红外遥控系统一般分发射和接收两个部分。

红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来决定的,在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。

也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。

接收端的输出状态大致可分为脉冲、电平、自锁、互锁、数据五种形式。

“脉冲”输出是当按发射端按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。

一般情况下,接收端除了几位数据输出外,还应有一位“数据有效”输出端,以便后级适时地来取数据。

这种输出形式一般用于与单片机或微机接口。

除以上输出形式外,还有“锁存”和“暂存”两种形式。

所谓“锁存”输出是指对发射端每次发的信号,接收端对应输出予以“储存”,直至收到新的信号为止;“暂存”输出与上述介绍的“电平”输出类似。

关键词:80c51单片机、红外发光二极管、晶振目录第一章1、引言 (3)2、设计要求与指标 (3)3、红外遥感发射系统设计 (4)4、红外发射电路设计 (4)5、调试结果及分析 (9)6、结论 (10)第二章1、引言 (10)2、设计要求与指标 (11)3、红外遥控系统设计 (11)4、系统功能实现方法 (15)5、红外接收电路 (16)6、软件设计 (17)7、调试结果及分析 (18)8、结论 (19)参考文献附录绪论人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。

其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。

比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。

基于单片机的红外无线测距仪

基于单片机的红外无线测距仪

• 183•因为红外测距是一种非接触检测技术,它受到影响的因素少,相比于其他的测距仪有较大的优势;更能应对恶劣环境,功能也更加的可靠。

因此可广泛应用于各种工业设计中。

1.概述随着科学技术的快速发展,研究出了多种新型测距仪器。

系统进行近距离高精度的距离测量,因此采用了红外无线测距模块最为测距传感器。

此外系统采用了单片机作为中央处理器,LCD12864作为显示距离的屏幕。

同时拥有距离超过预设值报警功能。

系统在保证安全可靠的前提下可以进行高精度近距离的测距功能。

基于单片机的红外无线测距仪具有相对与其他测距仪精度更高但距离也更近。

因此可以用于近距离高精度的测距需求当中。

与此同时红外测距仪的响应速度极快,相对于其他类型的传感器,更加迅速的反应也使得红外测距传感器可以应用于相对复杂的场景。

2.系统方案框图设计本设计由单片机红外测距模块是由12864液晶显示电路、按键电路、报警电路和电源电路组成。

(1)通过红外测距模块检测距离(测距范围10-80cm),通过PCF8591将红外模块的模拟数值转化为数字数值,然后传给单片机处理。

(2)LCD12864液晶第一行实时显示距离,第二行显示设置的阈值。

(3)阈值可以通过2个按键调节。

(4)超过阈值后,蜂鸣器鸣叫报警。

3.系统具体模块方案确定本设计采用了单片机、显示模块、测距模块以及按键电路和报警电路几部分组成,来实现系统的功能。

3.1 单片机芯片的选择采用STC89C51单片机来作为系统的核心处理器,相比于其他的单片机51单片机的性能更加可靠,价格低廉,编程相对简单。

而且可以满足系统的设计需求。

通过对系统的相关程序的编写,调试最后再烧进单片机内来实现功能。

3.2 声音报警方案的选择系统通过蜂鸣器来实现报警。

蜂鸣器接入系统电路中,当距离超过设定的报警值时,蜂鸣器通过蜂鸣来发出警报。

通过报警可以提醒用户距离超过先前的设定范围。

这样不进了以降低成本还可以达到系统的需求。

3.3 显示方案的选择基于单片机的红外无线测距仪采用了LCD12864来进行显示距离,以及设置的报警值。

基于单片机的红外遥控系统设计毕业设计

基于单片机的红外遥控系统设计毕业设计

本科生毕业设计(论文)论文题目:基于单片机的红外遥控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:本设计是基于单片机的红外遥控系统设计,设计内容包括了红外接收,红外解码和步进电机控制三大块。

如今红外遥控技术已经得到了广泛的应用;其利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强。

我们日常生活中的电视机,洗衣机,空调,航天飞机,工业现场设备等都运用了红外遥控的技术。

本设计中发射端采用专用的发射芯片来实现红外遥控码的发射,且遥控码格式是NEC标准。

接收端采用市面上流行的1838一体化红外接收头,接收到的红外信号经由1838接收头完成光/电转化和解调的工作,然后把33位的完整码发送到解码芯片中去完成解码工作。

本设计中的主芯片是STC89C52单片机,主芯片和解码芯片之间进行串行通讯。

系统启动后,解码芯片将解码后得到的8位数据码串行发送到主芯片中,然后通过主芯片来控制步进电机的正转,反转,加速,减速。

本设计中的被控对象是步进电机,步进电机最适合做数字控制。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

基于单片机的机器人用红外测距仪系统设计

基于单片机的机器人用红外测距仪系统设计

# 13#
1. 3 声光报警电路 1. 3. 1 蜂鸣器报警电路
声音报警是非常有效的报警方式. 本电路采用 的是最为简单实用的蜂鸣器实现报警. 蜂鸣器报警 硬件实现简单, 工作 十分可靠, 编程也非常容 易实 现. 当接收到控制器发过来的报警信号 ( P 2. 2 口输 出变为低电平并维持 1 s) 时, 蜂鸣器导通发声. 1. 3. 2 指示灯报警电路
第 37卷第 4期 2010年 4月




Applied Sc ience and T echno logy
do :i 10. 3969 / .j issn. 1009- 671X. 2010. 04. 003
V o.l 37, l . 4 A pr. 2010
基于单片机的机器人用红外测距仪系统设计
唐秦崴, 瞿哲奕, 朱熀秋
( 江苏大学 电气信息工程学院, 江苏 镇江 212013)
摘 要: 针对机器人智能倒车防护的问题, 提出 了以单片机 AT 89S52为控制 核心, 采 用红外测 距技术设 计机器
人用红外测距仪系统, 由单片机处理环境信息, 红外测距仪发出停 车提示或 直接执 行停车, 不需 要驾驶 员亲自
[ 3]曾德怀, 谢存禧, 张 铁, 等. 行走 机器 人的 超声 波测 距 系统的研究 [ J]. 机械 科学 与技术, 2004, 23( 5) : 61361 6.
[ 4]孙牵宇, 童 峰, 许肖梅. 一种大 角度范 围的高 精度超 声 波测 距 处 理 方 法 [ J] . 厦 门 大 学 学 报: 自 然 科 学 版, 2006, 45( 4): 513-517.
机器人智能倒车防护有利于机器人安全可靠运 行. 目前投入应用的机器人智能倒车防护技术主要 有 2种: 一种是车载雷达 (超声波技术 ) 测距倒车防 护 [ 1- 4] ; 一种是摄像头视觉防护 [ 5- 6] . 车载雷达测距 十分精确, 智能化程度较高, 但造价较为昂贵; 摄像 头视觉防护虽然可以让驾驶员实时获取身后的环境 信息, 但对距离的测量则仍需要外加其他设备的辅 助, 驾驶员仍然需要亲自通过肉眼判断身后的情况, 智能化有所不足. 基于红外管以及单片机技术的机 器人用测距仪采用单片机独立处理环境信息并发出
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京联合大学应用科技学院实训报告基于单片机的红外测距系统设计系别电子专业电子信息工程技术年级12级02班组长:张祎楠2012191294068组员:殷跃2012191294070 白雨童2012191294063目录第1章绪论 (1)1.1 本课题研究的目的 (1)1.2 本课题研究的内容 (1)13整个红外测距系统显示 (4)第2章红外测距的软件设计 (5)后记 (6)第1章绪论1.3 本课题研究的目的我们所进行的课题便是做一个简易的,精确的,近距离的距离检测仪,这也是对我们所学知识的一种考验方法,从中我们可以更系统的认识单片机,了解AD转换和红外收发模块。

1.4 本课题研究的内容红外传感器的测距基本原理为:红外发射电路的红外发光管发出红外光,红外接收电路的光敏接收管接收发射光,根据发射光的强弱判断出所测的距离。

由于接收管接收的光强度是随着发光管与测量物的距离变化而变化的,因而,与测量物的距离近则接收光强,距离远则接收光弱。

具体方法如图1所示,红外模块发出并接收到红外线信号;AD转换模块将接收到的模拟信号转换成数字信号再交给单片机, 启动单片机中断程序,此时单片机得到数字信号也就是电压值,再由软件进行判别、计算,得出距离数并送给LED/LCD显示。

红外模块电压距离公式AD模块单片机显示模块图1.1 反射能量法原理图3.7 protues中整体系统单片机AT89C52左端分别接了时钟电路和复位电路,这是单片机最小的系统。

XTAL1和XTAL2串连一个晶振,并且分别接上一个20p的电容,两个电容另一端都接地,构成时钟电路。

RST同时接上100p电容,4脚按键,1k电阻,4脚按键另一端接上一个1k电阻再与100p电容并联接VCC,1k电阻另一端则接地,构成复位电路。

单片机AT89C52右端P0端同时接LED的D1-D7端口和排阻,P2.0接CLK,P2.1接DO,P2.2接CS,P2.5接E,P2.6接RW,P2.7接RS。

MCP3001的VREF接vcc,IN+接红外距离传感器的Vo。

软件程序#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit RS=P2^0; //LCD命令/数据端sbit RW=P2^1; //LCD读/写端sbit LCDE=P2^2; //LCD使能端sbit MCP_CS=P2^3; //MCP3001与AT89S52的管脚接线定义sbit MCP_DO=P2^4;sbit MCP_CLK=P2^5;uint measure;uchar flag; //Busy标志uchar code dis[]={"Measure Start"}; //显示uchar code dis1[] = {"V= . V,L= CM"};uchar code dis2[] = {"0123456789."}; //显示代码uchar code dis3[]={"Out Measure!"}; //显示uchar dis_buf[8]; //显示缓冲区void L_delay(void); //短延时void delay_ms(uint n); //延时函数uint read_MCP(void); //读MCP3001void init_1602(void); //1602初始化函数void busy(void); //LCD忙标志判断函数void dat_wrt(uchar dat); //写数据子函数void cmd_wrt(uchar cmd); //写命令子函数uint distance(void); //距离计算函数void lcd_start(uchar start); //设定显示位置函数void LCD_Clear(void); //LCD清屏函数uchar dat_adj(uint dat1); //显示数据调整函数void print(uchar *str); //字符串显示函数void disp(uint dat); //显示子函数uint average(void); //算术平均滤波程序/****************************主函数*******************************/main(){init_1602();print(dis); //显示测量开始delay_ms(1000);while(1){measure=distance();disp(measure); //显示高度delay_ms(100);}}/**************************延时函数**************************/ void delay_ms(uint n){uint j;while(n--){for(j=0;j<125;j++);}}/***************************短延时****************************/ void L_delay(void){uchar i;for(i=0;i<5;i++)_nop_();}/************************读MCP3001函数*************************/ uint read_MCP(void)////////////////////////// read_MCP 采集的数据并转换后的值//////////////////////////{uchar i;uint temp=0;MCP_CS=1;L_delay();MCP_CS=0; //CS置低,开始采样数据for(i=0;i<13;i++) //读转换的10位数据{MCP_CLK=0;L_delay();MCP_CLK=1;temp<<=1;if(MCP_DO==1)temp|=0x01;}MCP_CS=1;temp&=0x03ff; //获取有效转换值return(temp);}/************************LCD忙标志判断函数*******************/void busy(void){flag=0x80; //赋初值高位为1 禁止while (flag&0x80) //读写操作使能位禁止时等待继续检测{P0=0xff;RS=0; //指向地址计数器RW=1; //读LCDE=1; //信号下降沿有效flag=P0; //读状态位元高位为状态LCDE=0;}}/************************写数据子函数************************/void dat_wrt(uchar dat){busy(); //检测读写操作使能吗LCDE=0;RS=1; //指向数据寄存器RW=0; //写P0=dat; //写数据LCDE=1; //高电平有效LCDE=0;}/*************************写命令子函数************************/void cmd_wrt(uchar cmd){LCDE=0;busy(); //检测读写操作使能吗P0=cmd; //命令RS=0; //指向命令计数器RW=0; //写LCDE=1; //高电平有效LCDE=0;}/***********************距离计算函数***************************/ uint distance(void){uint temp1;temp1=average();/////////////////////////////////temp1 平均数据转换的距离//////////////////////////////////// if((temp1>60)&(temp1<960)) //在正常测量范围?{temp1=13569/(temp1+7)-4; //转换测量数据}else{temp1=0x00ff; //超出测量范围,返回错误标志}return(temp1);}/************************算术平均滤波程序**********************/ uint average(void){uchar i;uint av_dat;/////////////////////////////////av_dat 平均数据////////////////////////////////////////ulong ave=0;for(i=0;i<10;i++) //连续读取10个数据值{ave+=read_MCP(); //读转换数据L_delay();}av_dat=(uint)(ave/10); //求平均值return(av_dat);}/*************************1602初始化函数************************/void init_1602(void){cmd_wrt(0x01); //清屏cmd_wrt(0x0c); //开显示,不显示游标,不闪烁cmd_wrt(0x06); //完成一个字符码传送后,光标左移,显示不发生移位元cmd_wrt(0x38); //16×2显示,5×7点阵,8位数据接口}/************************设定显示位置函数************************/void lcd_start(uchar start){cmd_wrt(start|0x80);}/************************LCD清屏函数****************************/void LCD_Clear(void){cmd_wrt(0x01); //写入清屏指令delay_ms(1);}/************************显示数据调整函数************************/uchar dat_adj(uint dat1)/////////////////////////////////dat1 L距离////////////////////////////////////////{uchar i=0;uint date;date=average()/2;dis_buf[0]=(uchar)(dat1/100); //百位dis_buf[1]=(uchar)(dat1%100/10); //十位dis_buf[2]=(uchar)(dat1%100%10); //个位dis_buf[3]= date/100 ;dis_buf[4]= date%100/10;dis_buf[5]= date%100%10;if(dis_buf[0]==0)i=1;return(i);}/**************************字符串显示函数**************************/ void print(uchar *str){while(*str!='\0') //直到字符串结束{dat_wrt(*str);str++; //指向下一个字符}}/***************************显示子函数****************************/ void disp(uint dat){uchar temp,j;if(dat!=0x00ff){temp=dat_adj(dat);LCD_Clear();lcd_start(0x40);print(dis1);lcd_start(0x42);dat_wrt(dis2[dis_buf[3]]);print(".");for(j=4;j<6;j++)dat_wrt(dis2[dis_buf[j]]); //显示文字lcd_start(0x4B+temp); //确定显示起始位置for(j=temp;j<3;j++) //写显示数据dat_wrt(dis2[dis_buf[j]]);}else{LCD_Clear();lcd_start(0x42+temp); //确定显示起始位置print(dis3);}}后记在这次论文设计中我明白了理论和实际之间有着巨大的差距,理论成立但毕竟只是原理上,一旦做起来就会发现现实中有着各种各样的因素影响着你,只看理论是不会发现这些的,只有实践中你才会发现自己的不足。

相关文档
最新文档