《2022年数据采集系统实验报告报告 .pdf》由会员分享,可在线阅读,更多相关《2022年数据采集系统实验报告报告 .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料可编辑任务要求14 路模拟量输入,输入电压范围05V ,分辨率 8 位,转换时间100us,具有显示(数码管)测量结果(用10 进制显示直流电压值或交流电压峰值)的功能;21 路模拟量输出,用来分别重现4 路被采信号的波形(供示波器观测)摘要本数据采集系统是基于单片机AT89C51 来完成的,4路的模拟电压通过通用的8 位 A/D转换器 ADC0809 转换成数字信号后,由单片机进行数据处理,并将处理后的数据送LED 显示器显示。 再经过常用的8 位 D/A转换器 DAC0832 将数字数据转换成模拟量,供示波器观测。一、系统的方案选择和论证根据题目基本要求,可将其划为如下几个部分:4
2、 路模拟信号A/D 转换单片机数据处理LED 显示测量结果D/A 转换模拟量输出系统框图如图1 所示:图 1 单片机数据采集系统框图1、4 路模拟信号 A/D 转换由于被测电压范围为05V ,分辨率为8 位,转换时间为100us,所以 A/D转换部分,本系统选择常用的8 路 8 位逐次逼近式A/D转换器 ADC0809。ADC0809 芯片有 28条引脚,采用双列直插式封装。下面说明各引脚功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - -
3、- - - - 精品资料可编辑IN0 IN7: 8路模拟量输入端。2-12-8:8 位数字量输出端。ADDA 、ADDB 、ADDC :3 位地址输入线,用于选通8 路模拟输入中的一路。ALE :地址锁存允许信号,输入,高电平有效。START: AD 转换启动信号,输入,高电平有效。EOC: A D 转换结束信号,输出,当AD 转换结束时,此端输出一个高电平(转换期间一直为低电平) 。OE:数据输出允许信号,输入,高电平有效。当A D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK :时钟脉冲输入端。要求时钟频率不高于640KHZ 。REF(+) 、REF( -) :基
4、准电压。Vcc:电源,单一5V。GND :地。ADC0809 的工作过程是: 首先输入3 位地址, 并使 ALE=1 ,将地址存入地址锁存器中。此地址经译码选通8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动AD 转换,之后 EOC 输出信号变低, 指示转换正在进行。直到 AD 转换完成,EOC 变为高电平,指示A D 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当 OE 输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。2、单片机数据处理选择美国ATMEL 公司的 CMOS8 位单片机AT89C51,其工作电压为2.76V,具有低电压低
5、功耗性能和高性价比,兼容标准MCS-51 指令系统, 4Kbytes 的 PEROM 和 128bytes 的RAM,片内置通用的8 位中央处理器(CPU)和 Flash存储单元。AT89C51 是一种带有4 KB 闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8 位微处理器,可为很多嵌入式控制系统提供灵活且价廉的方案。所以,本设计采用ATMEL 公司的 AT89C51 作为程序的主控芯片。AT89C51 数据总线是由P0口提供的, P0 口本身能以多种方式提供数据总线和地址总线。当 ALE 输出信号为高电平时,P0将输出的数据锁入总线驱动器中作为地址的低8 位,然后和 P2送出来的高8
6、 位地址一起组成一个完整的16 位地址, 以寻址到外部的64KB 的地址空间。 AT89C51 的地址总线比较简单(只有 3 个: RD、WR、PSEN),其中 RD 是用来读取外部数据内存的控制线,WR 是用来写数据到外部数据内存的控制线,PSEN 是用来存取外部程序内存的读取控制线。3、LED 显示测量结果这里选择的是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - -
7、 - 精品资料可编辑理芯片ZLG7289B ,它可直接驱动8 位共阴式数码管(或64 只独立LED ) ,同时还可以扫描管理多达64 只按键。ZLG7289B 内部含有显示译码器, 可直接接受BCD 码或16 进制码,并同时具有2 种译码方式。此外,还具有多种控制指令,如消隐闪烁左移右移段寻址等。 ZLG7289B 采用 SPI 串行总线与微控制器接口,仅占用少数几根I/O 口线。利用片选信号, 多片 ZLG7289B 还可以并接在一起使用,能够方便地实现多于8 位的显示或多于64 只按键的应用。4、D/A 转换模拟量输出在本设计中D/A转换的作用是使得采集处理过的数据通过D/A 转换电路后送
8、示波器进行观察。这里选择了DAC0832 这一 D/A转换器。它是一个8 位 D/A 转换芯片,唯一电源供电,从 +5V+15V均可正常工作,其引脚功能说明如下:DI0DI7 :数据输入线,TLL 电平。ILE :数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为 DAC 寄存器写选通输入线。Iout1:电流输出线。当输入全为1 时 Iout1 最大。Iout2:电流输出线。其值与Iout1 之和为一常数。RFb:反馈信号输入线,芯片内部有反馈电阻. Vcc:电源输入线(+5v+1
9、5v) Vref:基准电压输入线(-10v+10v) AGND :模拟地 ,摸拟信号和基准电源的参考地. DGND :数字地 ,两种地线在基准电源处共地比较好二、系统的硬件设计本系统硬件电路包括以下几个部分:AT89C51 外围电路(如时钟电路、复位电路等)AT89C51 和 ADC0809 接口电路AT89C51 和 DAC0832 接口电路LED 显示电路1、 AT89C51外围电路(如时钟电路、复位电路等)AT89C2051 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAl1 和 XTAL2分别是该放大器的输入端和输出端,这个放大器与作为反馈元件的片外石英晶体一起构成自名师资料
10、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 精品资料可编辑己振荡器,外接石英晶体和电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容没有太严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器的稳定性等,这里选用12MHz 的石英晶体,电容选用33pF,如图 2 所示。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见, 电源稳定后还要经一定的延时才撤销复位信号,以防电源
11、开关或电源插头分-合过程中引起的抖动而影响复位。本设计的时钟电路如图3 所示。图 2 时钟电路图 3 复位电路2、 AT89C51和 ADC0809接口电路AT89C51 和 ADC0809 接口电路如图4 所示, START 和 ALE 互连可使 ADC0809 在接收模拟量路数地址时候启动工作。START 的启动信号由89C51的WR和 P2.7 经或门 U7A 产生。平时, START 因 P2.7 高电平而被封锁。ALE 的正脉冲使得ADDA 、ADDB 和 ADDC 上的地址锁存,选中IN0-IN3路模拟电压送入比较器,这里ADDA 、ADDB和 ADDC分别和P0.0,P0.1,P
12、0.2连接。 EOC 线经过反相器和AT89C51 的 INT1 线相连,这里采用中断方式来和 ADC0809 传送 A/D转换后的数字量。 为了给 OE 线分配一个地址, 把 AT89C51 的RD和P2.7 经或门 U7B 和 OE 相连。平时,因P2.7为高电平,从而使得OE 处于低电平封锁状态。在响应中断时候, 单片机执行中断服务程序使得OE 变为高电平, 从而打开三态输出锁存器,让 CPU 提取 A/D 转换后的数字量。ADC0809 的时钟 CLK 由两个 D 触发器把 AT89C51 的 ALE 信号 4 分频后来得到,如图5所示,如果使用单片机时钟电路选择12MHz 的晶振,那
13、么 ALE 信号的频率为2MHz (12/6 ) ,经两个串联D 触发器四分频之后,CLK 端的频率为500KHz ,能够满足ADC0809 要求。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 精品资料可编辑图 4 AT89C51 和 ADC0809 接口电路图 5 时钟分频电路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
14、- - 第 5 页,共 18 页 - - - - - - - - - 精品资料可编辑3、 AT89C51和 DAC0832接口电路图 6 AT89C51 和 DAC0832 接口电路AT89C51 和 DAC0832 接口时, 可以有三种方式:直通方式、 单缓冲方式和双缓冲方式。本系统选择单缓冲方式, 电路如图 6所示。ILE 直接接到 VCC, 允许数字量输入,CS和XFER由译码器的输出端F7 控制,从而控制DAC0832 的 8 位输入寄存器。AT89C51 的WR和DAC0832 的2WR连接,1WR直接接地,这样1WR和2WR之间的延迟可以满足不小于500ns。参考电压直接选择VCC
15、。Rbf 作为运算放大器反馈线,接到uA741 输出端, Iout1 和Iout2 接到其输入端。4、LED 显示电路LED 显示电路如图7 所示。图中,VCC 和 GND 之间接入100uF 的电容,使得电源更加稳定,通过拉低RST引脚的方法复位ZLG7289B ,四个数码管是共阴式的,10R至17R是限流电阻,1R至8R是下拉电阻。 KC0/DIG0 KC3/DIG3来作为位选信号来选择LED 数码管的显示。 在这里使用键盘功能,真正实现人机交互,四个按键开关分别控制四路模拟信号的输入。 晶振这里选择和单片机同样的晶振,即 12MHz。数码管 0 显示选择通道, 数码管 1、2、3 显示电
16、压峰值。ZLG7289B 的 CS、CLK 和 DIO 引脚分别接在单片机P1.0、P1.1和 P1.2引脚, ZLG7289B 的 INT 接单片机的P3.3,也即中断1,实现模拟信号输入通道的选择。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 精品资料可编辑图 7 LED 显示电路部分(1)图 8 LED 显示电路部分(2)三、系统的软件实现本系统软件包括系统初始化、数据采集与处理,AD 转换、 DA 转换和数据显示几个
17、部名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 精品资料可编辑分。其中主程序流程图如图8 所示, AD 转换程序流程图如图9 所示, DA 转换程序如图10所示。实验源程序见附录2.图 9 主程序流程图图 10 A/D转换流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - -
18、 - - - - 精品资料可编辑图 11 键盘控制程序流程图四、电路和程序调试对电路的调试氛围对硬件的调试和对软件的调试。所以在调试的时候,先检查硬件电路各接线是否正确, 有误短路现象, 如果有那就要及时改正。软件的调试, 首先要在 Keil C51上面编译运行通过,由于有中断的缘故,所以中断部分要结合硬件电路进行调试,在这里可以借用实验用Monitor-51 仿真器来进行调试,而不是一次次把程序写进单片机进行调试,那样不仅麻烦,而且还有可能写坏单片机。在软件硬件结合起来调试的过程中,要分模块进行调试,比如本实验中, 有键盘中断、LED 显示、 AD 转换和 DA 转换四个大的模块,根据程序流
19、程图,应该依次对上面四个模块分别进行调试检查。调试过程中, 要熟悉使用示波器、万用表等工具, 硬件部分, 上电以后,要用示波器测试晶振是否正常工作,单片机和其他芯片个引脚电位是否正常。软件部分, 可以通过 Keil C51 来观察各特殊寄存器和某些变量的值来验证程序和电路的准确性,也可以设置断点来查看程序的运行路线,比如要查看中断是否执行,就可以在中断服务程序里面设置断点。下面结合本人在调试中遇到的部分问题加以说明。1、LED 不显示原因: 画原理图时候由于粗心所致,漏画一结点,如图12 所示。从而导致SG/KRi(i=07)全部为低电平(示波器测得),而 ZLG7289 驱动的是共阴式数码管
20、,所以数码管不显示。解决方法 :按照图13接通 VCC.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 精品资料可编辑图 12 漏结点图 13 原图(节点VCC)2、测试 P0口达不到高电平原因:经过查询P0 口内部结构,发现P0 口是接在两个三极管VT1 和 VT2 之间的,而P1P3 口的上部是接一个电阻的。P0 口的上面VT1 是在进扩展存储器或扩展总线时由指令控制的、平时都是截止的。一般象P00=0 P00=1 这些语
21、句时控制的都是下面那个三极管的。 P0口接负载 P0 0,VT2 导通, P0 点电位为 0,当 P01,VT2 截止,而VT1 始终是截止的,这样P0 点就等于悬空了,P0是高阻抗输入,容易受外界电路干扰。3、分频信号没有出现原因:这里是采用D 触发器实现四分频电路,结果测试分频器输出引脚根本没有出现分频信号,但是单片机ALE 输入信号是正常的,问题就出现在D 触发器这块,原因如图14 所示。由于看到D 触发器示意图PR 和 CLR 端有个圆圈,所以就误认为那是接低电平的,所以就不假思索的和地连接起来了,这种毛病得彻底改正啊。于是我重新查看了一下D 触发器资料,发现其真值表如下:图 14 D
22、 触发器真值表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 精品资料可编辑很明显, 只有 PR 和 CLR 同时为高电平时,D 触发器才能正常工作,所以以后在使用某一芯片之前,一定要认真查看其技术资料才行。解决方法: D 触发器 PR 和 CLR 接 VCC,如图 15 所示。图 15 D 触发器 PR 和 CLR 接地图 16 D 触发器 PR 和 CLR 接 VCC4、EOC 始终是高电平原因: EOC 始终是高电平,
23、那就说明ADC0809 根本就没有启动,而ADC0809 是在 START和 ALE 接收模拟量路数地址时候启动工作的。那么问题就出现在这里,原来是地址写错了,经过改正,启动正常,转换结果也正常了。五、实验结果及结论1、AD 转换及 LED 显示结果及结论实验中,通道 0,通道 1 和通道 2 分别接地、 VCC 和信号发生器出来的信号,通道 0 和通道 1 结果如下:按键通道实际值LED 显示值000V(地)0.030115V(VCC)5.001注:LED 显示值最后一位表示选择通道。下面表格是通道 2 结果,该表格适用于频率的范围为5HZ2KHZ ,这里选取了 100Hz。频率( Hz)
24、100100100100100100100100名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - 精品资料可编辑幅值( V)2.53.03.23.54.04.24.55.0LED2.5023.0323.2123.4723.9624.2924.5324.982注:LED 显示值最后一位表示选择通道。2、DA 转换及示波器显示结果如图 17所示,下面一路是输入信号,上面一路是DA 转换输出信号,有图可见,输出波形基本重现了原始输入
25、波形,通过将两者重合, 可以发现, 相位也比较吻合。图 17 DA 转换结果结论: 本系统符合任务要求,能够很好的实现AD 转换、 DA 转换以及键盘控制和LED 显示。六、实验心得体会从对实验题目的认真分析,到实验方案的设计和论证,从源程序的编写到面包板电路的搭建, 还有就是最后实验电路的调试,这一系列过程走下来,可谓是艰辛啊。由于本科期间做的电路实验大部分都是验证性实验,所以就少了设计、 制作和调试电路中的所有能遇到的问题,而作为研究生,这些问题在以后的学习研究中必定会经常遇到,正是因为这次训练,才真正提高了自己的发现问题、分析问题和解决问题的能力,这势必给我以后的学习研究带名师资料总结
26、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - 精品资料可编辑来极大的帮助。经过这次实验,我发现,电子技术方面的实验或者研究,必须自始至终的细心细心在细心,调试之前一定要一遍一遍又一遍的检查电路,确保电路连线准确无误之后再接电源,否则就可能某些芯片就会被迅速烧坏,从而造成很多麻烦。在调试的时候,要分模块调试,就拿本实验来说,先调试7289 按键中断是否起效,数码管显示是否准确,再调AD 是否启动,转换是否准确,最后再调DA 部分。在这几部
27、分电路模块调试的时候,要学会用示波器或者万用表测各个芯片的各个引脚电平是否正常,时钟电路是否正常,引脚之间会不会有短路现象出现等等,软件部分的调试,要学会单步调试和断点调试,弄清楚程序是否按正常步骤运行, 观察各个寄存器和变量的值是否正确,中断是否成功等。还有就是关于电路的设计和调试,切忌眼高手低,一定要多动手,遇到问题要沉着冷静。七、感谢首先感谢杨栓科老师从始至终的指导和最后调试阶段补开实验室给我,其次感谢师兄师姐们在我调试阶段的指导和帮助,还要感谢实验室徐峥宇和赵同学,在期末考试即将来临的时候,他们还耐心的帮我解决调试中的各种问题。八、参考资料1 胡汉才 . 单片机原理及其接口技术. 清华
28、大学出版社,2004.22 孙肖子等 . 电子设计指南 . 高等教育出版社,2006.13 张齐,杜群贵 . 单片机应用系统设计技术基于C 语言编程 . 电子工业出版社, 2004.84 王建校、 杨建国、宁改娣、危建国. 51系列单片机及C51程序设计 . 科学出版社, 2002.45 全国大学生电子设计竞赛组委会. 第五届全国大学生电子设计竞赛获奖作品选编. 北京理工大学出版社,2003.名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - -
29、- - - - 精品资料可编辑附录 1:元件清单器件名称个数器件名称个数AT89C511LED4ADC08091270欧姆电阻8DAC0832110k欧姆电阻2ZLG7289B.11k 欧姆电阻1DM74LS74AN2100K 欧姆电阻8SN74LS138N1按键开关512MHz 晶振233pF 电容2DM74LS14N110pF 电容374LS022100nF 电容1UA741ID1100uF 电解电容1导线若干10uF 电解电容1备注:调试过程中,本人对部分细节电路进行了更改,额外增加74LS373芯片,而取消使用原来的 74LS138 , 当然也增加了一些电阻。7289电路部分, 由于没
30、有100uF 电解电容和100nF电容, 所以分别用220uF电解电容和220nF 电容代替, 实验结果证明对电路无大的影响,由于面包板面积有限, 而布线相对较多, 尤其是 7289部分,所以没有用到反相器DM74LS14N ,而是使用或非门实现将ADC08509EOC 信号的反相。由于7289 具有按键防抖功能,按键开关则是使用线头快速接触来实现。由于仿真器上有111.0592M晶振,所以12MHz 晶振只用了一个,那就是7289时钟电路。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
31、 第 14 页,共 18 页 - - - - - - - - - 精品资料可编辑附录 2:实验程序#define _SHUJU_C_#include reg52.h#include zlg7289.h#include stdio.h#include absacc.h/#define IN0 XBYTE0X7FF8 / 通道 0#define IN1 XBYTE0X7FF9 / 通道 1#define IN2 XBYTE0X7FFA / 通道 2#define IN3 XBYTE0X7FFB / 通道 3#define dac0832Addr 0XBFFF /DAC0832地址#define u
32、char unsigned char#define uint unsigned int/uint ADCFlag; /ADC处理标志uchar DigitalDataTemp; / 转换结果uint KeyValue; / 按键键值uint Key; / 按键键值uchar MaxResult; / 峰值uchar xdata *nCurrentAddr; / 当前 ADC 通道的地址uchar LEDDisplayData; /LED显示的峰值数据uint display100; / 显示最高位uint display10; / 显示中间位uint display1; / 显示最低位uint
33、 i;/sbit ad_busy=P13;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - 精品资料可编辑static uchar xdata result512; / 存贮 AD 转换结果void Delay(uint i);main()IT0=0;IT1=0;EX0=1; / 外部中断 0 开启EX1=1; / 开启外部中断1PX1=1;EA=1; / 开启总中断ZLG7289_Init(20); /ZLG7289初始化K
34、eyValue=0 xFF; / 设置按键初值,0 xFF 表示没有按下Key=0; / 按键中断标志位,0:无键按下, 1:有键按下ADCFlag=0; /AD转换结束标志,1:转换结束,0:转换没结束display100=0;display10=0;display1=0;/ while(Key=0)/ 等待键盘中断,启动ADC0809 while(1)MaxResult=0;for(i=0;i512;i+)*nCurrentAddr=KeyValue;Delay(8);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心
35、整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 精品资料可编辑resulti=*nCurrentAddr; / 读取转换结果*(uchar xdata *) dac0832Addr)=resulti;/ 进行 DA 转换if(MaxResult=resulti) / 判断最大值函数MaxResult=resulti; LEDDisplayData=(MaxResult*100)/51; / 数值转换display100=LEDDisplayData/100; display10=(LEDDisplayData%100)/10;display1=
36、(LEDDisplayData%100)%10;ZLG7289_Download(1,3,1,display100); / 高位ZLG7289_Download(1,2,0,display10); / 中间位ZLG7289_Download(1,1,0,display1); / 低位ZLG7289_Download(1,0,0,KeyValue); / 通道显示/ 下面为各子程序/void int0() interrupt 0 / 外部中断0,中断向量为0003H/ZLG7289键盘中断,读取键盘的值void int1() interrupt 2 / 外部中断1,中断向量为0013H Key=
37、1;KeyValue=ZLG7289_Key(); / 读取键值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 精品资料可编辑switch(KeyValue)case 0:nCurrentAddr=&IN0; /0809通道 0 地址break;case 1: nCurrentAddr=&IN1; /0809通道 1 地址break;case 2: nCurrentAddr=&IN2; /0809通道 2 地址break;case 3:nCurrentAddr=&IN3; /0809 通道 3 地址break;default:Key=0;break;/void Delay(uint j)uint i;for(i=0;ij;i+);/名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -