直流电机微型计算机速度控制系统的设计.doc

上传人:仙人指路1688 文档编号:2941548 上传时间:2023-03-05 格式:DOC 页数:27 大小:2.03MB
返回 下载 相关 举报
直流电机微型计算机速度控制系统的设计.doc_第1页
第1页 / 共27页
直流电机微型计算机速度控制系统的设计.doc_第2页
第2页 / 共27页
直流电机微型计算机速度控制系统的设计.doc_第3页
第3页 / 共27页
直流电机微型计算机速度控制系统的设计.doc_第4页
第4页 / 共27页
直流电机微型计算机速度控制系统的设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《直流电机微型计算机速度控制系统的设计.doc》由会员分享,可在线阅读,更多相关《直流电机微型计算机速度控制系统的设计.doc(27页珍藏版)》请在三一办公上搜索。

1、摘要 工业控制是计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。本次设计所采用的主体芯片有8086CPU和可编程并行接口芯片8255A,其中,8086CPU曾是使用广泛的16位微处理器,具有40个管脚的双列直插式封装芯片,内外数据线都为16位,地址线为20位,直接寻址为1MB。而8255A是一种通用的可编程并行I/O接口芯片,广泛用于几乎所有系列的微机系统中,它的各端口内具有中断控制逻辑,在外设于CPU之间可以用中断方式进行信息交换,使用条件传输方式时可用“联络”

2、线进行控制。数字P ID控制系统是时间的离散系统,计算机对生产过程的控制是断续的过程. 即在每一个采样周期内,传感器将所测数据转换成统一的标准信号后输入给调节器,在调节器中与设定值进行比较得出偏差值,经PID运算得出本次的控制量,输出到执行器后才完成了本次的调节任务。关键字:计算机控制 8086CPU 8255A 数字PID目录摘要11 直流电机及主要芯片介绍31.1 直流电机的工作原理31.2 直流电机的调速方法31.3 8086CPU介绍41.4 8255A芯片61.5 74LS48芯片71.6 74LS373芯片81.7 L298芯片介绍82 系统硬件设计92.1 各部分电路详细原理图1

3、02.1.1 显示驱动电路102.1.2 电机驱动电路112.1.3 8086控制电路122.1.4 8255控制电路133 系统的软件设计143.1 总体设计思路143.2 按键检测子程序流程图164 运行结果与分析18课程设计感想及体会21参考文献22附录:源程序23直流电机微型计算机速度控制系统的设计1 直流电机及主要芯片介绍1.1 直流电机的工作原理直流励磁的磁路在电工设备中的应用,除了直流电磁铁(直流继电器、直流接触器等)外,最重要的就是应用在直流旋转电机中。在发电厂里,同步发电机的励磁机、蓄电池的充电机等,都是直流发电机;锅炉给粉机的原动机是直流电动机。此外,在许多工业部门,例如大

4、型轧钢设备、大型精密机床、矿井卷扬机、市内电车、电缆设备要求严格线速度一致的地方等,通常都采用直流电动机作为原动机来拖动工作机械的。直流电动机的工作原理很直观,给两个电刷加上直流电源,有直流电流从电刷A流入,经过线圈abcd,从电刷B流出,根据电磁力定律,载流导体ab和cd收到电磁力的作用,其方向可由左手定则判定,两段导体受到的力形成了一个转矩,使得转子逆时针转动;如果转子转到一定位置,电刷A和换向片2接触,电刷B和换向片1接触,直流电流从电刷A流入,在线圈中的流动方向是dcba,从电刷B流出。此时载流导体ab和cd受到电磁力的作用方向同样可由左手定则判定,它们产生的转矩仍然使得转子逆时针转动

5、。电枢一经转动,由于换向器配合电刷对电流的换向作用,直流电流交替地由线圈边ab和cd流入,使线圈边只要处于N极下,其中通过电流的方向总是由电刷A流入的方向,而在S极下时,总是从电刷B流出的方向,这就保证了每个磁极下线圈边中的电流始终是一个方向,这样的结构,就可使电动机连续旋转。1.2 直流电机的调速方法根据直流电机的基本原理,由感应电势、电磁转矩以及机械特性方程式可知,直流电动机的调速方法有三种:(1)调节电枢供电电压U。改变电枢电压主要是从额定电压往下降低电枢电压,从电动机额定转速向下变速,属恒转矩调速方法。对于要求在一定范围内无级平滑调速的系统来说,这种方法最好。变化遇到的时间常数较小,能

6、快速响应,但是需要大容量可调直流电源。(2)改变电动机主磁通。改变磁通可以实现无级平滑调速,但只能减弱磁通进行调速(简称弱磁调速),从电机额定转速向上调速,属恒功率调速方法。变化时间遇到的时间常数同变化遇到的相比要大得多,响应速度较慢,但所需电源容量小。(3)改变电枢回路电阻。在电动机电枢回路外串电阻进行调速的方法,设备简单,操作方便。但是只能进行有级调速,调速平滑性差,机械特性较软;空载时几乎没什么调速作用;还会在调速电阻上消耗大量电能。改变电阻调速缺点很多,目前很少采用,仅在有些起重机、卷扬机及电车等调速性能要求不高或低速运转时间不长的传动系统中采用。弱磁调速范围不大,往往是和调压调速配合

7、使用,在额定转速以上作小范围的升速。因此,自动控制的直流调速系统往往以调压调速为主,必要时把调压调速和弱磁调速两种方法配合起来使用。1.3 8086CPU介绍Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085(它与8080有组合语言上的原始码兼容性)的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)喂指令给执行单元(Exec

8、ution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为01048575,用十六进制表示为00000HFFFFFH。Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够

9、存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。 Intel 8086有四个 内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大

10、于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作如图所示就是仿真中的8086芯片的模型,这里隐藏了8086的VCC和GND两个引脚。如图1-1图1-1 8086引脚图1.4 8255A芯片图1-2 8255A引脚图8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种; 方式0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。 方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口

11、可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0. 方式2: 双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。 8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。 A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0

12、或方式1.RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线

13、,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。当A1=0,A0=0时,PA口被选择;当A1=0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;当A1=1.A0=1时,控制寄存器被选择。1.5 74LS48芯片 74LS48是一个译码芯片,可以将BCD码转换成7段数码管的地址码,因此经常用来驱动4位或单独一位的7段数码管显示电路。输出高电平有效。举一个例子:假设需要输出数字“1”,2进制的编码为0001B,那么就将0001,4个电平分别送入74LS48的DCBA口,那么就输出了一个“01100

14、00”的编码,如果不加入反相器就需要用共阴极的7段数码管,这样bc两段就点亮了,在数码管显示器上就显示一个“1”,如果用共阳极的7段数码管,还需要在74LS48的输出段加入反相器。74LS48可以译码015编码。这里的系统只需要输出数字,因此,完全可以满足要求,这里要注意的就是,74LS48只能完成一位7段数码管的驱动,因此,还需要产生位选信号,选择相应的位,然后再显示相应的数,位选信号这里用8255来产生,因为这里只需要4位就可以显示数字,那么8255剩下的4位就可以产生位选信号,这样可以控制4位7段数码管的循环滚动显示。1.6 74LS373芯片74LS373为三态输出的八 D 透明锁存器

15、,共有 54S373 和 74LS373 两种线路。74LS373 的输出端 Q0Q7 可直接与总线相连。当三态允许控制端 OE 为低电平时,Q0Q7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,Q 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。在本次的系统中,OE端接地,LE端与8086CPU的ALE管脚相连,来达到地址锁存的目的。1.7 L298芯片介绍L

16、298芯片是用来驱动直流电动机的。L298是SGS公司的产品,内部包含4通道逻辑驱动电路。L298可以直接对电机进行控制,无需隔离电路通过改变控制端的电平即可对电机执行正反转,停止的操作,非常方便,异能满足直流减速电机的大电流要求。这里我用到了L298的一个输入输出端,来驱动一台电机。图1-3 L298管脚图上面是在系统仿真中L298的管脚图,如图1-3。2 系统硬件设计 设计要求:设计一个直流电机微型计算机速度控制系统,学习直流电机的速度控制和测试方法。定义8个键盘按键:5个为数字键15;3个功能键:设置SET、清零 CLR、开始START;显示器上的四位可显示每分钟的速度;通过键盘的按键,

17、设置直流电机每分钟的速度值;按START键启动电机开始转动,按SET键停止;按CLR键清零。 电路原理图如下图所示,图2-1 系统总原理图2.1 各部分电路详细原理图2.1.1 显示驱动电路图2-2 数码管驱动部分74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,晶体管右边的1234号引脚端则是首先扫描,确定是先显示哪个数字,然后通过ABCD四个输入,转换为八种状态,控制晶体管的数字具体显示是多少。按键按下的时候,首先扫描D0D7,然后8086调用内部相应的程序,8255A的B口和C口输出,B口输出信号到74LS48,以此来控制数码管的显示。2.1

18、.2 电机驱动电路图2-3 电机驱动部分L298芯片是一种高压、大电流双H桥式驱动器。L298 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。从8255的C口输出信号来控制电机的运动。2

19、.1.3 8086控制电路图2-4 8086控制部分在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作,按键按下从8255的A口输入,接着反应到8086中,让8086做出反应。要编写8段子程序。这里对于没有开关按下的情况,就循环扫描键盘开关即可。8个子程序对应8个按键按下的状态。其中有三个控制键:START键、SET键和CLEAR键,它们分别完成的任务是开始开启,停止,和重置清零。2.1.4 8255控制电路图2-5 8255A控制部分8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。方式0基本输入输出方式;方式1选通输入/出方式;

20、方式2双向选通输入/输出方式; 键盘从A口输入,8086检验D0D7口,再做出反应,调用其内部相应程序,最后再把信息传到8255,C口和B口做出反应。3 系统的软件设计图3-1 系统总流程图3.1 总体设计思路这次编程按照任务书上的要求,以直流电动机调速为基本目的。整体思路是先给定了8255的控制字,然后设置好8255的各个端口的地址值,程序首先进行的任务就是扫描按键开关是否有动作,是否被按下,然后通过按下不同的按键开关,从PA口输入不同的高低电平的组合,然后程序对PA口输入的数据进行判断,若和对应的键值相等则跳转到对应的子程序。对于这三个程序的编写需要和其他子程序分开,这里的START,就是

21、让电动机全速的运转,并在显示上显示一个键值1,这里控制电机的PC口就输出一个全为1的PWM波,即让电机全速旋转。而对于SET,编写程序让PC口输出一个全0的排列,这样电动机就不再运转,并且在数码管显示器上显示一个键值2。而对于其他5个按键的编程则大同小异。图3-2 按5号键时的显示以一个键值为5的键为例。要求再按下后,程序将PA口数据扫描进入寄存器,然后再执行相应子程序,在数码管上第一位显示数字,后三位显示转速。这里因为转速都是3位数,因此就空出一位来显示键值了,如例子中的键值为5,速度为300。因此就显示“5300”然后再在PC口输出相应的高低电平组合,这里300为额定转速,因此输出的是全1

22、的组合。子程序执行一次以后,要重新检查键值是否改变,因此这里需要重新扫描键盘,输入PA口的数据,然后在输出PC口和PB口的数据,这里要注意了,由于PC口要产生一个高低电平的PWM波,因此,需要端口高低电平的不断循环,因此当前的输出值需要送入另一个寄存器,然后用AL来存放其他端口的信息,其他端口内容输出结束以后,再将寄存器的内容返回给AL。如果不这样做,那么PC口会一直输出同一个值,这样不能达到调速的目的。同时还要注意一点,在IN和OUT指令中只能用DX和AL寄存器,因此在读取不同端口的值的时候,这几个寄存器内的内容是随时变化的。因此,每当要给PC口输出波形的时候,都要重新赋值给AL,这也是使用

23、其他寄存器的目的。3.2 按键检测子程序流程图图3-3 按键检测子程序图3-4 按键按下时处理子程序4 运行结果与分析启动后,初始状态 图4-1 上电状态按下启动按钮。电机顺时针方向转动,如图4-2,倘若此时按停止按钮,电机停止转动,回到图4-3状态。(显示管中的数字是按键的编号)图4-2 启动状态图4-3 停止状态此时再按清零按钮,就可以直接清零,电机停止转动,回到初始状态,如图4-4图4-4 清零状态3到7号按钮是控制电机的转速,并且依次递增,对应着按钮分别是100到500(显示屏中最左边的数字对应着该按钮,右边三个则是速度),如图4-5,是按5号键时,对应着300的转速。图4-5 速度为

24、300时的状态课程设计感想及体会 经过这次的课程设计,让我再次发现了自己的很多不足之处,首先,第一就是态度问题,在接到课设任务之后的很多天,我都没有要开始的计划,导致荒废了很多天的时间,这样直接使得后来开始动手的时候已经没有多少时间了。这一点我觉得无论在以后的学习还是工作中都很值得注意,凡事都不能拖延,该完成的事情就应该果断快速完成。在做课程设计的过程中,我逐渐发现了计算机类课程的关联性相当大,从C语言,汇编语言到微机原理的课程内容,再到我们这学期学的计算机控制技术和单片机原理,这些课程有很多的关联部分。正如这次所做的直流电机调速,首先要对直流电机有一定的了解,要知道通过控制什么量来调整速度,

25、知道了这些以后再联想自己所学的微机原理,计算机控制等课程的知识,就大概想到应该用什么样的芯片组合来达到这效果。当然,其中的资料搜集过程是相当枯燥的。在搜集资料的时候,我发现8086CPU和8255A芯片很适合实现这样一个功能,当然,还要配合其他芯片,比如74LS373、74LS138还有与门辅助来实现控制信号;用L298来控制电机。我发现,我在计算机控制这门课程上还有很多没搞懂的地方,直到做课设的时候要用到相关知识了,我才发现以前自己学习到的东西还很肤浅,这样使得我要不停的翻书,才能确定到底应该怎么做。 总的来说,这次课程设计收获是巨大的,无论是心态还是知识,我都得到了很大启发,虽然经历了很多

26、失败,也曾经沮丧甚至绝望过,但还是做出了这个方案。我开始觉得,我们所学的东西越来越接近实际生活了,与此同时,压力也更大了,因为现实的东西更加复杂,会出现很多书本上不会有的变故,很多东西也不是书本的知识能够解决的,我们应该试着更多的去用自己的脑子去想想,看看能不能有更加好的解决办法。同时,我也在课设中得到了一些自信,毕竟自己还是学有那么一点东西的,或许其他的知识在以后会慢慢忘记,但是这次课设我所用到的一些知识,绝对会让我印象深刻的。参考文献1于海生.计算机控制技术.北京:机械工业出版社,20072彭虎,周佩玲,傅忠谦.微机原理与接口技术.北京:电子工业出版社,20083李发海,王岩.电机与拖动基

27、础(第3版).北京:清华大学出版社,20054谢维成.单片机原理与应用及C51程序设计M.北京:清华大学出版社,20065杨恢先.单片机原理及应用M.北京:人民邮电出版社,2006 6张靖武.单片机系统的PROTEUS设计与仿真M.北京:电子工业出版社,2007 附录:源程序org 100hCODE SEGMENTASSUME CS:CODESA_PORT EQU 8020HB_PORT EQU 8022HC_PORT EQU 8024HCTRL_PORT EQU 8026H ;各控制口的地址START: MOV AL,90H MOV DX,CTRL_PORT OUT DX,AL ;初始化KE

28、Y: MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0FFH JE KEY ;检测是否有按键按下,没有则重新检测 CMP BH,0FEH JE ONE ;若7号键按下,则跳到ONE CMP BH,0FDH JE TWO CMP BH,0FBH JE THREE CMP BH,0F7H JE FOUR CMP BH,0EFH JE FIVE CMP BH,0DFH JE SET CMP BH,0BFH JE BEGIN CMP BH,7FH JE CLEARONE: MOV CX,0FFFFH ;7号键按下后的处理子程序 MOV AX,0FFFFHD1: MOV

29、 DX,C_PORT OUT DX,AX ROL AX,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0FEH JNZ KEY ;继续检测按键,按键有变化则跳到KEY MOV DX,B_PORT MOV AL,0E7H OUT DX,AL MOV AL,0D5H OUT DX,AL MOV AL,0B0H OUT DX,AL MOV AL,70H OUT DX,AL MOV AX,CX JMP D1 ;显示相应数据 TWO: MOV CX,0FFFFH MOV AX,0FCFCHD2: MOV DX,C_PORT OUT DX,AX R

30、OL AX,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0FDH JNZ KEY MOV DX,B_PORT MOV AL,0E6H OUT DX,AL MOV AL,0D4H OUT DX,AL MOV AL,0B0H OUT DX,AL MOV AL,70H OUT DX,AL MOV AX,CX JMP D2 THREE: MOV CX,0FFFFH MOV AX,0F8F8HD3: MOV DX,C_PORT OUT DX,AX ROL AX,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,

31、AL CMP BH,0FBH JNZ KEY MOV DX,B_PORT MOV AL,0E5H OUT DX,AL MOV AL,0D3H OUT DX,AL MOV AL,0B0H OUT DX,AL MOV AL,70H OUT DX,AL MOV AX,CX JMP D3 FOUR: MOV CX,0FFFFH MOV AX,0F0F0H D4: MOV DX,C_PORT OUT DX,AX ROL AX,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0F7H JNZ KEY MOV DX,B_PORT MOV AL,0E4H

32、 OUT DX,AL MOV AL,0D2H OUT DX,AL MOV AL,0B0H OUT DX,AL MOV AL,70H OUT DX,AL MOV AX,CX JMP D4 FIVE: MOV CX,0FFFFH MOV AX,0E0E0HD5: MOV DX,C_PORT OUT DX,AX ROL AX,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0EFH JNZ KEY MOV DX,B_PORT MOV AL,0E3H OUT DX,AL MOV AL,0D1H OUT DX,AL MOV AL,0B0H OUT

33、DX,AL MOV AL,70H OUT DX,AL MOV AX,CX JMP D6 SET: ;停止程序 MOV CX,0FFFFH MOV AL,00H D6: MOV DX,C_PORT OUT DX,AL ROL AL,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0DFH JNZ KEY MOV DX,B_PORT MOV AL,72H OUT DX,AL MOV AX,CX LOOP D6BEGIN: ;启动程序 MOV CX,0FFFFH MOV AL,0FFHD7: MOV DX,C_PORT OUT DX,AL RO

34、L AL,1 MOV CX,AX MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,0BFH JNZ KEY MOV DX,B_PORT MOV AL,71H OUT DX,AL MOV AX,CX LOOP D7CLEAR: ;清零段程序 MOV CX,0FFFFH MOV AL,00H MOV DX,C_PORT OUT DX,AL MOV DX,B_PORT MOV AL,0E0H OUT DX,AL MOV AL,0D0H OUT DX,AL MOV AL,0B0H OUT DX,AL MOV AL,70H OUT DX,AL MOV DX,A_PORT IN AL,DX MOV BH,AL CMP BH,7FH JNZ KEY LOOP CLEAR CODE ENDSEND STARTret

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号