基于某单片机SPWM波形产生器.doc

上传人:李司机 文档编号:1131887 上传时间:2022-06-30 格式:DOC 页数:24 大小:600.50KB
返回 下载 相关 举报
基于某单片机SPWM波形产生器.doc_第1页
第1页 / 共24页
基于某单片机SPWM波形产生器.doc_第2页
第2页 / 共24页
基于某单片机SPWM波形产生器.doc_第3页
第3页 / 共24页
基于某单片机SPWM波形产生器.doc_第4页
第4页 / 共24页
基于某单片机SPWM波形产生器.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于某单片机SPWM波形产生器.doc》由会员分享,可在线阅读,更多相关《基于某单片机SPWM波形产生器.doc(24页珍藏版)》请在三一办公上搜索。

1、目录一、绪论二、SPWM的根本原理三、单片机AT89C52的简介四、设计思路与总体框图五、系统设计分析六、程序调试与仿真七、实验结果分析与总结八、心得体会 九、参考文献十、参考程序一、绪论电力电子技术和微机控制技术的开展使得正弦波脉宽调制技术(SPWM) 在电气传动、UPS 电源等领域得到广泛的应用。随着集成电路技术的飞速开展,特别是单片机功能的日益强大和单片机技术的日益成熟,使得以前需要昂贵的专用SPWM芯片产生SPWM,现在用单片机产生SPWM已成为可能。而当今单片机的应用已经从单纯依赖于51系列单片机向其它多种单片展,尤其以嵌入式PIC单片机的开展应用更为广泛。正弦脉宽调制(SPWM)技

2、术已在交流调速、直流输电、变频电源等领域得到广泛应用,为了提高整个系统的控制效果,高性能SPWM 脉冲形成技术一直是人们不断探索的课题。采用模拟电路和数字电路等硬件电路来产生SPWM波形是一种切实可行的方法,但是这种实现方法控制电路复杂、抗干扰能力差、实时调节较困难。近年来,人们提出了由单片机、DSP等微控制器来实现SPWM波形的数字控制方法,由于微控制器内部集成了很多控制电路,比如定时器、PWM 电路、可编程计数器阵列等,所以使得这种实现SPWM 的方法具有控制电路简单、运行速度快、控制精度高、抗干扰能力强等优点。本文介绍了一种利用C8O51单片机实现输出频率可变SPWM 波形的方法。SPW

3、M 技术的根本原理是利用一个三角波载波和一个正弦波进展比拟,得到一个宽度按正弦规律变化的脉冲序列,用它们来驱动逆变器开关管的开关转换。在本课题里对目前产生SPWM的各种算法进展比拟和研究。选择一种适宜的算法面积等效法来实现正弦波脉宽调制,同时对当前最有前途的功率器件绝缘栅双极晶体管IGBT的性能,保护电路和驱动电路进展了探讨。在系统中采用面积等效算法,利用51单片机为控制核心产生SPWM波,经过保护、隔离、驱动电路后的SPWM波,控制单相全桥逆变电路产生一个频率和电压都可调的交流输出,经滤波电路后供应负载使用。二、SPWM的根本原理近年来,随着逆变电源在各行各业应用的日益广泛,采用正弦脉宽调制

4、(SPWM)技术控制逆变电源提高整个系统的控制效果是人们不断探索的问题。对SPWM的控制有多种实现方法,其一是采用模拟电路、数字电路等硬件电路产生SPWM波形,该方法波形稳定准确,但电路复杂、体积庞大、不能进展自动调节;其二是借助单片机、DSP等微控制器来实现SPWM的数字控制方法,由于其内部集成了多个控制电路,如PWM电路、可编程计数器阵列(PCA)等,使得这种方法具有控制电路简单、运行速度快、抗干扰性强等优点。 1、常见SPWM信号产生方法方案一:模拟调制器法。该方法由正弦调制波发生电路、三角载波发生电路和模拟电压比拟器三局部组成。而这种控制电路要实现调频、调压都离不开CPU、EPROM、

5、AD、DA转换器等。所以该电路复杂、器件分散性大、可靠性差。方案二:专用芯片法。如英国Mulend公司的HEF4752和德国西门子公司的SLE4520等。该方法的优点是电路集成度高、可靠性高,缺点是无法全面实现对调速系统的反应控制、监视管理和保护工作,故一般也要配合单片机实现。方案三:软件生成法。该方法要考虑指令功能、存储容量和运算速度是否影响实时性,采用89C51单片机查表法生成SPWM控制脉冲列的方法。2、正弦脉宽调制技术SPWMSPWM控制方案有两种:即单极性调制和双极性调制法。单极性法所得的SPWM信号有正、负和0三种电平,而双极性得到的只有正、负两种电平。比拟二者生成的SPWM波可知

6、:在一样载波比情况下,生成的双极性SPWM波所含谐波量较大;并且在正弦逆变电源控制中,双极性SPWM波控制较复杂。因此一般采用单极性SPWM波控制的形式。由单片机实现SPWM控制,根据其软件化方法的不同,有如下几种方法:自然采样法、对称规如此法、不对称规如此法和面积等效法等。理论分析发现面积等效法相对于其它方法而言,谐波较小,对谐波的抑制能力较强。而且实时控制简单,利于软件实现。 2.1 对称规如此采样法对称规如此采样法是从自然采样法演变而来的,它由经过采样的正弦波实际上是阶梯波与三角波相交,由交点得出脉冲宽度。这种方法只在三角波的顶点或底点位置对正弦波采样而形成阶梯波。假如以单位量1代表三角

7、载波的幅值Uc,如此正弦调制波的幅值Ur 就是调制比a。图中的三角波和正弦波都是经过向上平移单位量1 得到的,与过横坐标轴得到的结果一致。对称规如此采样法原理图如图2-1所示。图2-1 生成SPWM波形的规如此采样法2.2. 不对称规如此采样法不对称规如此采样法采用在每个载波周期采样两次,即在三角波的顶点位置采样,又在三角波的底点位置采样,这样形成的阶梯波与正弦波的逼近程度会大大提高。不对称规如此采样法生成SPWM 的原理图如图2-2所示。图2-2 不对称规如此采样法生成SPWM的原理图根据相似三角形原理,可得如下关系式:,式中:为在三角波的正峰值对正弦信号波的采样时刻, 为在三角波的负峰值对

8、正弦信号波的采样时刻;+是A 相开通时刻脉冲宽度;Tc为三角波载波周期。因此可得A 相开通时刻的脉冲宽度: k=0,1,2N-12k 为一个周期内采样计数值由以上分析得比拟单元 1 的比拟存放器的值为:s CMPR1 = T1PR (+) / 2T 为EVA 通用定时器1的时钟周期2.3. 等效面积法在采样控制理论有中一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果根本一样。冲量即指窄脉冲的面积。正弦脉宽调制的根本原理就是按面积相等的原如此构成与正弦等效的一系列等幅不等宽的矩形脉冲波形。等效面积法就是根据数据和正弦数值依次算出每个脉冲的宽度,通过查表的方式实时控制。图2

9、-3生成SPWM波形的等效面积法假如以单位量 1 代表矩形脉冲的幅值Uc,如此正弦调制波的幅值Um 就是调制比a。图2-3为SPWM面积等效法原理示意图假设所需的输出正弦电压为U0=Umsint,式中:Um为正弦波幅值。利用面积等效法正弦波小块面积S1与对应脉冲面积S2相等的原如此,将正弦波的正半周分为N等分,如此每一等分的宽度为兀N,计算出半个周期内N个不同的脉宽值。相关公式如下:正弦波S1面积为:逆变器输入直流电压为UD,脉冲面积S2与S1相等,即有:所以第k个区间的脉冲宽度k式中:M为调制度。N为半个周期内的脉冲个数。综合考虑载波比、输出谐波等因素,在此N取60。由上式计算出的SPWM脉

10、宽表是一个由窄到宽、再由宽到窄的60个值的正弦表,将其存入STC单片机的ROM中以供调用。3. STC系列单片机生成SPWM波原理3-1 STC系列单片机简介STCl2系列单片机是美国STC公司在8051单片机标准的内核根底上改良推出的一个增强型功能的8051的单片机,从引脚到指令上完全与8051单片机兼容。最突出的特点就是其具有可编程计数器阵列PCA。以STCl2C5410AD为例,有四路可编程计数器阵列PCAPWM。PCA含有一个特殊的16位定时器,有4个16位的捕获比拟模块与之相连。四个模块的公共时间基准由PCA定时器决定,可以通过PCA模式存放器CMOD SFR的CPSl和CPS0位确

11、定。每个模块可编程工作在4种模式下:上升下降沿捕获、软件定时器、高速输出或PWM脉冲输出。文中SPWM生成功能主要靠PWM脉冲输出模式完成。图2即为PCA模块脉宽调节PWM输出模式框图。图3-1 PCA PWM输出模式框图在PCA PWM输出模式中,当CLSFR的值小于EPL,CCAPnL时,输出为低,当PCA CL SFR的值等于或大于EPH,CCAPnH时,输出为高。当CL的值由FF变为00溢出时,EPH,CCAPnH的内容装载到EPL,CCAPnL中。这样就实现了无干扰的更新PWM。要使能PWM模式,模块CCAPMn存放器的PWMn和En位必须置位。本文中,SPWM波形是综合使用了模块O

12、的脉宽调节(PWM)模式和模块1的16位软件定时器模式,通过软件中断的形式实现的。3-2 SPWM波生成方法利用STC系列单片机产生SPWM波的根本原理是:将载波周期数值赋给PCA模块l的16位捕获比拟模块存放器CCAPlH(高8位)和CCAPlL(低8位),PCA定时器的值CH(高八位)、CL(低八位)与模块捕获存放器的值相比拟,当两者相等时,产生PCA中断。在中断中,调用模块0的PWM脉宽调节模式,将下一个SPWM波的脉宽通过CCAP0H装载到CCAPOL中,这样就可以实现无干扰的更新PWM。图3-2 SPWM波形示意图三、单片机AT89C52简介 图3 AT89C52的管脚图AT89C5

13、2是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器RAM,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出I/O端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进

14、展编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。兼容MCS51指令系统 8k可反复擦写(1000次Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 AT89C52P为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能与管脚排布上与通用的8xc5

15、2 一样,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部存放器、数据RAM与外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码与与主板CPU通信等。主要管脚有:XTAL119 脚和XTAL218 脚为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd9 脚为复位输入端口,外接电阻电容组成的复位电路。VCC40 脚和VSS20 脚为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口3239 脚被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10

16、 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS18脚和SCLS19脚端口,12 脚、27 脚与28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测与会聚调整状态进入的控制功能。P1口P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路。对端口写“1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入P1.0/T

17、2和输入P1.1/T2EX,Flash 编程和程序校验期间,P1 接收低8 位地址。引脚号功能特性T2,时钟输出T2EX定时/计数器2P2 口P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路。对端口P2 写“1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器例如执行MOVX DPTR 指令时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器如执行MOVX RI 指令时,P2

18、 口输出P2 锁存器的内容,Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路。对P3 口写入“1时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流IIL,P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。四、设计思路与总体框图主程序流程如图4所示,在系统初始化过后首先通过键盘设置输出频率,然后进入SPWM脉宽计算程序,根据所设置频率选择调

19、制比N,计算脉宽并确定max。在SPWM输出程序中,对PCA特殊功能存放器进展设置并启动计数器运行,开始输出SPWM波形。在中断服务程序中,首先根据CCFn的值来判断发生匹配的捕捉/比拟模块,然后根据该模块CEX引脚上的电平状态判断是将SPWM波形的高电平脉宽值还是低电平脉宽值累加到捕捉/比拟模块存放器上;同时,根据脉宽数据指针与max是否相等来确定一个SPWM周期的完毕和下一个周期的开始,以便正确载入对应数据。当载波比N发生变化时,max的值会发生变化。应该注意的一点是,CCFn位和CF位计数器/定时器溢出标志由硬件置位,但不能由硬件自动清0,必须在中断程序中用软件清0。 图4 设计框图五、

20、系统设计分析由于硬件原因,任何微控制器都不能输出宽度无限小的脉冲,这就使得理想SPWM脉冲序列中小于一定宽度的窄脉冲不能正常输出,即最小脉冲问题。 对于AT89C52单片机,它的PCA所能输出的最小脉冲取决于其中断服务程序执行的时间,所以其最小脉冲问题不容无视。解决该问题的具体方法有:采用汇编语言编写中断服务子程序并且应用最精简省时的指令,减 小最小脉冲的宽度;在计算SPWM波脉冲宽度时,对宽度小于PCA所能输出最小宽度的脉冲进展修正,使它们的宽度为最小脉冲的宽度;限制调制比M,使SPWM脉冲序列中不会含有过多的小脉冲。六、程序调试与仿真 电路图设计:仿真结果:七、实验结果分析与总结1、误差分

21、析: 频率偏差原因:在定时器中断服务程序中查表赋定时的初值,占用时间较多,导致定时不准确;另外,测试仪器本身存在测量误差。 波形失真原因:滤波器可能设计不是很好,导致出来的波形不是那么的平滑,单片机系统存在最小脉冲的限制,还有各种因数都会导致波形失真。2、总结利用AT89C52单片机产SPWM波形是一种简单易行的方法,具有运算精度高、实时调节性强的特点。同时,通过改变SPWM波脉宽计算的方法,可以方便地实现双极性SPWM波形。因而,这种方法适合于对输出SPWM波形的极性、路数和频率有不同要求的场合。八、心得体会本单片机课程设计是要设计基于单片机的SPWM波形产生器设计,刚开始接触这门课题,毫无

22、头绪,甚至不知道如何下手,这学期才刚开单片机这门课程,对汇编语言不是很熟悉,C语言大一的时候学过,但也学得不是很深,只是能简单的运用,更别提自己编程了,大三了,也接触到了汇编语言,单片机编程可以用C语言或者汇编语言,面对SPWM,我都不知道这是什么意思,经网上查询,才知道这是正弦脉冲调制的意思,在进展脉宽调制时,使脉冲系列的占空比按正弦规律来安排。当正弦值为最大值时,脉冲的宽度也最大,而脉冲间的间隔如此最小,反之,当正弦值较小时,脉冲的宽度也小,而脉冲间的间隔如此较大,这样的电压脉冲系列可以使负载电流中的高次谐波成分大为减小,称为正弦波脉宽调制。通过在网上查找一些资料,根本明白要干一些什么事了

23、,要实现SPWM有三种方法,一是:模拟调制器法。该方法由正弦调制波发生电路、三角载波发生电路和模拟电压比拟器三局部组成。而这种控制电路要实现调频、调压都离不开CPU、EPROM、AD、DA转换器等。所以该电路复杂、器件分散性大、可靠性差。二是:专用芯片法。如英国Mulend公司的HEF4752和德国西门子公司的SLE4520等。该方法的优点是电路集成度高、可靠性高,缺点是无法全面实现对调速系统的反应控制、监视管理和保护工作,故一般也要配合单片机实现。三是:软件生成法。该方法要考虑指令功能、存储容量和运算速度是否影响实时性,采用89C51单片机查表法生成SPWM控制脉冲列的方法。刚开始在考虑用第

24、一种方案,用一个正弦波和一个三角波进展比拟,得到不同脉宽的方波信号,因为条件有限,缺乏A/D转换器,这个方案被搁浅,然后在教师的点拨下,综合考虑,采用第三种方案。如果要实现方案,必须要编程,但自己C语言基底很薄弱,必须要开始拾起C语言,C语言入门容易,可是要掌握它还要经过实践,多编程,如果只是利用这两个星期就想把C语言学好,是不可能, 再怎么难,也得从根底做起,从网上下载了一些程序,慢慢琢磨,开始对这个课题的整个编程有了初步的认识,在原来的根底上,通过自己的理解和修改,在单片机板子上调试,直到与预想的结果一致。通过运用我所学习的单片机原理与应用、数字电子技术等关于电子技术的课程中的理论知识来完

25、成此项设计。在设计的过程中,通过查找资料又重新的温习了一下各个局部的内容,并且通过查阅书籍和相关文献资料来提高独立分析能力和解决实际问题的能力;掌握并熟练运用相关软件进展操作;熟悉常用电子器件的类型、特征和功能,并本着合理采选用的原如此进展选用;进一步熟悉电子仪器的正确使用。 在此我要感谢指导教师的悉心教诲,感谢期间帮助过我的同学,谢谢你们,让我加强了对单片机知识的理解,能过把所学的理论知识运用到实际当中去,加强了我的动手能力。同时,在整个设计过程中我懂得了许多东西,不仅加强了我与伙伴一起合作的团结能力,增进了我们之间的友谊,树立了对自己工作能力的信心,相信这次设计对今后的工作有非常重要的影响

26、,而且还大大提高了我的动手能力,使我充分体会到了在创造过程中的探索的困难和成功的喜悦。总之,通过这次课程设计我受益良多。九、参考文献1、51系列单片机应用与实践教程 周向红 编 北航2、单片机应用系统设计 何立民 编 北航3、单片机原理与应用 王迎旭 编 机械工业 4、51系列单片机设计实例 楼然苗 编 北航5、51单片机应用系统开发典型实例 戴家 等编 中国电力6、单片机实用系统设计技术 房小翠 编 国防工业7、51单片版C语言教程新概念 郭天祥 编 电子工业8、单片机C 语音编程与实例 赵亮 编 人民邮十、参考程序#include#define unint unsigned int#def

27、ine unchar unsigned charunchar code pwm5120= 4 , 12 , 20 , 27 , 35 , 43 , 51 , 58 , 66 , 74 , 81 , 88 , 96 , 103 , 110 , 117 , 124 , 131 , 137 , 144 , 150 , 156 , 162 , 168 , 174 , 180 , 185 , 190 , 195 , 200 , 205 , 209 , 213 , 217 , 221 , 224 , 228 , 231 , 234 , 237 , 239 , 241 , 243 , 245 , 246 ,

28、 247 , 248 , 249 , 250 , 250 , 250 , 250 , 249 , 248 , 247 , 246 , 245 , 243 , 241 , 239 , 237 , 234 , 231 , 228 , 224 , 221 , 217 , 213 , 209 , 205 , 200 , 195 , 190 , 185 , 180 , 174 , 168 , 162 , 156 , 150 , 144 , 137 , 131 , 124 , 117 , 110 , 103 , 96 , 88 , 81 , 74 , 66 , 58 , 51 , 43 , 35 , 27

29、 , 20 , 12 , 4 , 8 , 24 , 39 , 55 , 70 , 85 , 99 , 113 , 127 , 140 , 153 , 165 , 177 , 187 , 198 , 207 , 215 , 223 , 229 , 235 , 240 , 244 , 247 , 249 , 250 , 250 , 249 , 247 , 244 , 240 , 235 , 229 , 223 , 215 , 207 , 198 , 187 , 177 , 165 , 153 , 140 , 127 , 113 , 99 , 85 , 70 , 55 , 39 , 24 , 8,

30、10 , 29 , 49 , 68 , 87 , 105 , 122 , 139 , 155 , 170 , 184 , 196 , 208 , 218 , 227 , 234 , 241 , 245 , 248 , 250 , 250 , 248 , 245 , 241 , 234 , 227 , 218 , 208 , 196 , 184 , 170 , 155 , 139 , 122 , 105 , 87 , 68 , 49 , 29 , 10 , 16 , 47 , 77 , 106 , 134 , 159 , 182 , 202 , 219 , 232 , 242 , 248 , 2

31、50 , 248 , 242 , 232 , 219 , 202 , 182 , 159 , 134 , 106 , 77 , 47 , 16, 20,58,96,130,162,190,213,231,243,249,249,243,231,213,190,162,130,96,58,20 ; / 反正弦变化unchar i=0;unchar m=0;unchar dr=0;sbit output=P00; /脉冲输出sbit key=P30; /频率转换键void init();void delay(unint);void main()init();TR0=1; /启动定时器0output

32、=1; /给脉冲TR1=1; /启动定时器1while(1)if(key=0)delay(5);if(key=0)while(1)if(key=1)i+; /关光标if(i=5)i=0;break; switch (i)case 0: m=100;break; /20Hz 100个数据case 1: m=50;break; /40HZ 50个数据case 2: m=40;break; /50HZ 40个数据case 3: m=25;break;/ 80Hz25个数据case 4: m=20;break; /100HZ 20个数据void init()TMOD=0x11;TH0=(65536-5

33、00)/256;TL0=(65536-500)%256;TH1=(65536-100)/256;TL1=(65536-100)%256;EA=1;/开总中断ET0=1;/开定时器0中断ET1=1;/开定时器1中断/*延时*/void delay(unint z)unint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void time0() interrupt 1TH0=(65536-500)/256;TL0=(65536-500)%256;output=1;TR1=1; /启动定时器1void time1() interrupt 3 output=0;TR1=0;

34、/停止定时器1TH1=(65536-pwmidr)/256;TL1=(65536-pwmidr)%256;dr+;if(dr=m)dr=0; 电气信息学院课程设计评分表项 目评 价优良中与格差设计方案合理性与创造性10%开发板焊接与其调试完成情况*10%硬件设计或软件编程完成情况20%硬件测试或软件调试结果*(10%)设计说明书质量(20%)辩论情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综 合 评 分指导教师签名:_ 日 期:_注:表中标*号项目是硬件制作或软件编程类课题必填内容;此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件非16K大小的图纸与程序清单。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号