资源描述
交通控制器设计 引言在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。本文设计的交通控制器设计属于小型智能自动化控制系统。利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路,可实现数码的显示和声音报警。交通控制器既可广泛应用于铁路与公路的交叉口,也可应用于安排不了人手看管的交叉路口。因而,此设计具有相当重要的现实意义和实用价值。2 系统概述本设计以AT89S52单片机为核心,构成单片机控制电路,结合LM386芯片,显示15秒倒计时,并进行报警,同时完成对它们的自动调整和掉电保护,全部信息用数码管显示。软件控制程序实现所有的功能。整机电路使用+5V稳压电源,可稳定工作。系统框图如图2-1所示,其软硬件设计简单,时间记录准确,可广泛应用于长时间连续显示的系统中。人机接口显示电路软件控制程序电源电路单片机控制电路图2-1 系统框图3 方案选择 由于电子万年历的种类比较多,因此方案选择在设计中是至关重要的。正确地选择方案可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。3.1 方案1基于AT89S52单片机的交通控制器的设计不使用时钟芯片,而直接用AT89S52单片机来实现电子万年历设计。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦写1000余次。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。用单片机来实现交通控制器设计,无须外接其他芯片,充分利用了单片机的资源。但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。3.2 方案2基于与非门数字电子的交通控制器设计用电子元器件来搭交通控制器设计,电路较复杂,接点较多,运行不稳定。555产生的时钟信号时序控制电路15秒控制电路时间显示电路4 系统硬件电路的设计按照系统设计功能的要求,初步确定设计系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构成框图如图4-1所示。主控芯片使用52系列AT89S52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用美国ATMEL公司生产的低功耗CMOS串行EEPROM存储芯片AT24C02。DS1302作为主要计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备 (2.55.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。控制器传感器灯指示显示音频放大图4-1 交通控制器设计系统构成框图4.1 系统核心部分闪电存储型器件AT89S524.1.1 AT89S52具有下列主要性能5: 8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期) 全静态工作:0Hz24MHz三级程序存储器保密1288字节内部RAM32条可编程I/O线2个16位定时器/计数器6个中断源可编程串行通道片内时钟振荡器4.1.2 AT89S52的引脚及功能AT89S52单片机的管脚说明如图4-2所示。图4-2 AT89S52的管脚(1) 主要电源引脚 VCC 电源端 GND 接地端(2) 外接晶体引脚XTAL1和XTAL2 XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。(3) 控制或与其它电源复用引脚RST、ALE/PROG、/PSEN和/EA/VPP RST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)6。 /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA端必须保持低电平(接到GND端)。当/EA端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。(4) 输入/输出引脚 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和P3.0P3.7 P0端口(P0.0 P0.7) P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。P1端口(P1.0 P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3端口(P3.0P3.7) P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能,这些特殊功能见表4-17。表4-1 P3端口的特殊功能 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中断1) P3.4T0 ( 定时器0的外部输入) P3.5T1 (定时器1的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通)4.2 LM386电路4.2.1 LM386是美国国家半导体公司生产的音频功率放大 器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场 合。 LM386的封装形式有塑封8引线双列直插式和贴片式。图4-3 LM386管脚图二、特性(Features): 静态功耗低,约为4mA,可用于电池供电。 工作电压范围宽,4-12V or 5-18V。 外围元件少。 电压增益可调,20-200。 低失真度。 LM386电源电压4-12V,音频功率0.5w。LM386音响功放是由NSC制造的,它的电源电压范围非常宽,最高可使用到15V,消耗静态电流为4mA,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。它的典型输入阻抗为50K。4.3报警电路当数码管显示“关”时,闹铃不起作用;当闹铃显示“开”时,设定闹铃时间,闹铃时间只可设定时和分,当前时间不断与设定的闹铃时间比较,不相等时不产生任何现象,一旦相等,P3.5输出一个高电平使三极管导通,从而使蜂鸣器工作,闹铃起作用。闹铃电路如图4-12所示。图4-12 报警电路晶振特性如图10 所示,AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入,如图12 所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。图11 内部振荡电路连接图 图12 外部振荡电路连接图石英晶振 C1,C2=30PF10PF陶瓷谐振器 C1,C2=40PF10PF图10图11 内部振荡电路连接图图12 外部振荡电路连接图空闲模式在空闲工作模式下,CPU 处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。掉电模式在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAMAT89S5218 和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。表6 空闲模式和掉电模式下的外部引脚状态程序存储器的加密位AT89S52有三个加密位不可编程(U)和可编程获得下表所示的功能。5 结论本设计硬件电路较简单,所用器件较少,电路中使用了AT89S52单片机、LM386等芯片,实现了预计功能。在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计硬件电路,包括单片机控制电路、时钟电路、存储电路、键盘扫描电路、显示倒计时电路和报警。然后通过软件编程,实现的目标。参考文献1、数字集成电路应用300例,黄继昌等主编。,人民邮电出版社2、第二届全国大学生电子设计竞赛组委会编全国大学生电子设计竞赛获奖作品选编(19941995)北京:北京理工大学出版社,19973、电子电路设计与实践,姚福安编著。山东科学技术出版社4、电子技术基础(数字部分),康华光主编。第四版北京:高等教育出版社.5、数字逻辑电路设计与实验,绳广基编著。上海交通大学出版社, 19896、中国集成电路大全TTL集成电路,中国集成电路大全编写委员会编。北京:国防工业出版社,19857、电子技术基础课程设计 ,粱宗善 。华中理工大学出版社 .1995.18、电子技术基础实验与课程设计,高吉祥主编。电子工业出版社 2002.2致 谢不知不觉,六周的毕业设计结束了。我的毕业论文已整理完毕,电路调试进展良好。毕业设计的完成意味着我的大学学习生活即将结束,从此我将进入一个新的人生旅途、开始一段崭新的生活工作。在此,我衷心地感谢所有在我做毕业设计期间帮助过我的人。 首先我要感谢我的指导老师李杰的大力帮助和支持。在整个设计过程当中,李老师在大局上指导我毕业设计的每一进程,还在百忙中抽空为我答疑解难,帮我分析讲解毕业设计中所遇到的问题。不仅如此,李老师还无私的给我提供了丰富的学习资源和良好的学习环境,为我的毕业设计带来了很大方便。同时在我完成毕业设计的过程中提供了很多指导性的意见,使我受益匪浅。另外,李老师渊博的学识、严谨的治学态度和为人给了我很大的教育,这些将使我终身受益。在此,我衷心感谢李老师给予我的帮助和教育。此外,我还要感谢夏九同学给予我的无私的帮助,他在程序编写和调试过程中给予了我莫大的帮助。在此,我真诚地感谢他们。最后,我要感谢我的母校天津工程师范学院,在校期间,这里给我留下了美好的回忆。特别是在我即将踏上工作岗位的同时,毕业设计整个过程给了我这样一个锻炼的机会,使我加深了对以前知识的理解和巩固,拓宽了知识面,也提高了我对所学知识的综合应用能力。我要对母校说:母校有我三五载,我爱母校一万年。祝愿母校的将来更美好!附录1:交通控制器设计电路原理图附录2 主程序org 00h; jmp start; ORG 001BH ;定时器T1中断程序入口 LJMP time1 ;跳至INTT1执行 org 30h;start: mov TMOD,#10h mov IE,#88h MOV TH1,#0d8h MOV TL1,#0efh mov r7,#100; mov 20h,#00h; mov 30h,#0fh;main: jnb p2.0 ,key; lcall disp; ljmp main;key: ;clr 01h; jb p2.0 ,main; ; clr TR1 lcall delay; jb p2.0 ,main; jnb p2.0,$ ;等待按键抬起 setb TR1 jb 00h, up; mov p3,#0feh; clr p2.2; mov 30h,#0fh; xrl 20h,#01h; MOV TH1,#0d8h MOV TL1,#0efh mov r7,#100 setb TR1 setb 01h; jmp main;up: mov p3,#0fdh; clr p2.4; mov 30h,#0fh; xrl 20h,#01h; MOV TH1,#0d8h MOV TL1,#0efh mov r7,#100 setb TR1 ; clr p1.0 ;clr 01h; setb 01h; jmp main;=显示程序=disp: push acc; jnb 01h,clear mov a,30h setb c; subb a,#9 jnc shi; mov a,30h mov dptr,#nember_table movc a,a+dptr mov p0,a clr p2.7; ; mov p2,#7fh jmp disp_returnshi: mov dptr,#nember_table movc a,a+dptr mov p0,a ;mov p2,#7fh clr p2.7; lcall delay1; mov p0,#0ffh mov p0,#0F9h ;mov p2,#0bfh clr p2.6; lcall delay1; mov p0,#0ffh jmp disp_returnclear: mov p0,#0ffh orl p2,#0f0hdisp_return: pop acc retnember_table: db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h;=延时程序=delay: mov r0,#0ffhd4: mov r1,#0ffh djnz r1,$ djnz r0,d4 retdelay1: mov a,r0 push a mov r1,#0fh;d5: mov r0,#0fFH; djnz r0,$; djnz r1,d5 pop a mov r0,a ret;=定时程序=time1: push acc mov TH1,#0d8h ;mov TH1,#0feh mov TL1,#0efh jnb 01h,no_bell xrl p1,#01h;no_bell: djnz r7,return mov r7,#100; ; xrl p3,#0ffh djnz 30h,return mov p3,#0ffh; mov 30h,#0fh; clr TR1 clr 01h;return: pop acc reti end6 数字数据传输:接口和调制解调器(选自数据通信与网络, Behrouz Forouzan著)我们将信息编码成可以传输的格式,下一步就是探讨传输过程了。信息处理设备如个人计算机能生成编码信号,通常还需要其它设备协助才能将这些信号在通信链路上传输。例如一台PC机产生数字信号,在将信号通过电话线发送之前,还需要一台附加设备来调制载波频率。在这过程中,我们怎样才能把数据从产生它的设备传送到下一个设备呢?解决办法是使用一捆导线,成为一种为通信链路,或叫接口。因为接口连接的两个设备有可能不是一个厂家生产的,所以必须规定接口的特性并建立标准。接口特性包括机械规范(使用多少条导线来传输信号)、电气规范(预期信号的频率、振幅和相位)以及功能规范(如果使用多条导线,每条导线的功能是什么?)。这些特性在一些常用标准中都有描述并且被集成到了OSI7层模型的物理层中。6.1数字数据传输数据传输并行传输串行传输同步传输异步传输从一个设备向另一个设备发送数据主要考虑的是配线方式。对于配线问题主要考虑的因素是数据流。我们是否一次只发送一个比特,或是将比特成组发送以及如何成组?通过链路传输二进制数据可以采用并行模式或串行模式。在并行模式中,在每个时钟脉冲到来时多个比特被同时发送。在串行模式中,每个时钟脉冲只发送一个比特。尽管只有一种发送并行数据的方法,串行传输却有两个子类:同步方式和异步方式(参见图6-1)。 图6-1 数据传输6.1.1 并行传输由0和1组成的二进制值可以组成n比特的位组。计算机使用和生成以比特为单位的数据,就像我们在英语会话时用词而不是一个个的字母来交流一样。通过分组,我们可以一次发送n个比特而不是一个比特。这称为并行传输。从概念上说,并行传输的机制很简单:一次使用n条导线来传输n个比特。这种方式下,每个比特都使用专门的线路,而一组中的n个比特就可以在每个时钟脉冲从一个设备传输到另一个设备。图6-2显示了n=8时并行传输的工作状况。通常八根导线被捆成一根电缆,两端都有连接头。8个比特一起发送 接收方需要8条线s发送方 图6-2 并行传输并行传输的优势在于速度。当其它因素相同时,并行传输将比串行传输的速度快n倍,但同时也存在一个严重缺点:费用高。为进行数据传输,并行传输需要n条通信线路(本例中是导线)。因为如此昂贵,所以并行传输通常被限制在最长25英尺的距离内。6.1.2 串行传输在串行传输中,比特是一个一个一次发送的,因此在两个通信设备之间传输数据只要一条通信通道,而不是n条。串行传输相对于并行传输的优点是:因为只需要一条通信信道,串行传输的的费用大约只是并行传输的n分之一。因为在设备内部的传输是并行的,所以在发送端和线路之间以及接收端和线路之间的接口上,都需要有转换器(前者是并/串转换,后者是串/并转换)。串行传输以两种方式进行:同步方式和异步方式。(1) 异步传输如果在传输中信号的时序并不重要,我们就将这种传输称为异步传输。它与同步方式不同的事,信息是以一种约定的模式来被接收和翻译的。只要遵照约定模式,接收设备就可以以不理会信息发送的节奏而能正确获取信息。约定模式是基于将比特组成字节。每一组比特(通常为八个)作为一个单位通过链路传输。发送端系统单独处理每个组,每处理完一个组就将其转发到链路上,并不理会时钟信号。因为没有同步脉冲,接收方步可能通过及是方式来预测下一组比特何时到达。因而,为了通知接收方有新的比特组到达,在每字节的开头都要附加一个比特。这个比特,通常是0,被称为起始位。为了让接收方知道一个字节已经结束,在每字节尾部还要加上一个或多个比特。这些比特,通常是1,被称为停止位。利用以上的方法,每字节的大小至少增加到了10个比特,其中有8比特的信息在加上2个或更多的提示接收方的信号。另外,每发送完一个字节,可能还要跟上一段可变长的时间间隙。这段间隙或者通过信道控闲状态代表,或者通过附加的停止比特流代表。在异步传输中,需要在每字节开始时发送一个起始位(0),然后在结束时发送一个或多个停止位(1)。在字节之间可以插入间隙。起始位、停止位和间隙将一个字节的起始和终止提示给接收放,使得接收方可以根据数据流进行同步。因为在字节这一级别,发送方和接收方不需要进行同步,所以这种传输方式称为异步传输。但是在每一字节内,接受方仍要根据比特流来进行同步。也就是说,一定程度上的同步还是存在的,但仅仅局限在一个字节的时间内。在每一个字节的开始,接收端设备就进行重同步。当接收方检测到一个起始位后,就启动一个时钟,并随着到来的比特开始记数。在接受完n个比特后,接受方就等待停止位到达。当检测到停止位到达时,接受方在下一个起始位到达前忽略接收的所有信号。异步传输意味着在字节级别以异步方式进行,但是每比特仍需要同步,他们的时延是一致的。相对于不需要控制信息的传输方式,异步传输由于加入了起始位、停止位以及比特流间插入了间隙而显得慢一些。但是这种方式既便宜又有效,这两大优点使得在低速通信这一类情形下异步传输方式显得很有吸引力。例如,一台终端到计算机的连接很自然就是一种异步传输的应用实例。用户一次只敲一个字符,这在数据通信领域内是十分低速的,同时还在字符之间引入了不可预计长短的时间间隙。(2) 同步传输在同步传输中,比特流被组装成更长的“帧”,一帧包含有许多个字节。与异步方式不同的是,引入帧内的字节与字节之间没有间隙,需要接收方在解码时将比特流分解成字节。也就是说,数据被当作不简短的0、1比特流传输,而接收方来将比特流分割成重建信息所需的一个个字节。在同步传输中,不插入起始/停止比特或间隙就将比特依次发送出去,完全有接收方负责重组比特。因为没有间隙和起始/停止位,就没有勒比特流内部的同步机制可以帮助接收端设备在处理比特流时调整比特同步。因为所接收数据的准备性完全依赖于接收端设备根据比特到达进行精确的比特计数的能力,所以时序变得十分重要。同步传输的优点是速度快。因为在发送端不需要插入附加的比特和间隙,再接收端也不需要去掉这些比特和间隙,因而在传输方式在类似计算几件数据串是这样的高速应用中更有效。字节同步在数据链路层实现。6.2 数据终端设备和数据电路中接设备接口 在这里必须首先分清计算机网络中的两个重要概念:数据终端设备(DTE)和数据电路终结设备(DCE)。在数据通信中经常涉及到四个基本功能单元:两端各有一个DTE和一个DCE。数据终端设备(DCE)将信号转换成适用于传输介质的形式并将它发送到网络链路中。当信号到达另一端时,相反的过程将发生。6.2.1 数据终端设备数据终端设备(DTE)包括所有具有作为二进制数字数据源点或终点能力的单元。在物理层,这可以是一台终端、一台小型计算机、计算机、打印机、传真机或是任何产生和处理数据的设备。数据终端设备之间并不经常直接通信,他们产生或处理数据,然而通信需要一种能够用于传输的中间形式。可以把DTE的工作方式想象成当你说话时大脑的工作。比如说你有一个想法要与朋友交流,你的大脑产生了这个想法但并不能将它直接传送到你的朋友的大脑中。由幸或者说不幸的是,我们都不是头脑阅读者。相反,你的大脑将想法传送给你的声带和嘴,让他们将想法转换成声波通过空气或是电话线传输到你朋友的耳朵,并由此进入他的大脑。在对方的大脑中,声波信号被还原成信息。通过这种方式,你和你朋友的大脑就像DTE一样。你的声带和嘴是DCE,你朋友的耳朵也是DCE。空气或电话线就是你们之间的传输媒介。一个数据终端设备(DTE)就是可作为二进制数字数据来源和终点的任何设备。6.2.2 数据电路终接设备任何能够通过网络发送和接收模拟或数字形式数据的功能单元都是数据电路终接设备(DCE)。在物理层,一个数据电路终接设备(DCE)接收从数据终端设备(DTE)中产生的数据,将她们转换为相应信号,然后将这些信号发送到传输链路上。在这一层中常用的DCE设备由调制解调器。在任何一个网络中,一个DTE设备产生数字数据并将它传送到DCE设备,DCE设备将这些数据转化可以在传输媒体上传送的格式并将转化后的信号发送给网络上另一个DCE设备。第二个DCE设备从线路上接收信号,将信号转化为与它相连的DTE设备可用的格式,然后转发信息。为实现这一通信,发送和接收的DCE设备必须采用一样的编码技术(例如,频移键控(FSK)编码)。这就像如果你想要和一个只懂日语的人交流,你就必须说日语一样。两个DTE设备不需要互相协调,但是每个DTE设备必须与它连接的DCE设备协调工作。而DCE设备之间必须协调工作,才能实现完整的数据翻译过程。通过网络,能够传送和接收模拟或数字数据的任何功能单元都叫数据电路终接设备(DCE)。21
展开阅读全文