基于单片机的步进电机控制系统的设计.doc

上传人:飞****2 文档编号:66780896 上传时间:2022-12-21 格式:DOC 页数:35 大小:648.50KB
返回 下载 相关 举报
基于单片机的步进电机控制系统的设计.doc_第1页
第1页 / 共35页
基于单片机的步进电机控制系统的设计.doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《基于单片机的步进电机控制系统的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统的设计.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本科毕业设计基于单片机的步进电机控制系统的设计摘 要随着自动控制系统的发展和对高精度控制的要求,步进电机在自动化控制中扮演着 越来越重要的角色,区别于普通的直流电机和交流电机,步进电机可以对旋转角度和转 动速度进行高精度控制。步进电机作为控制执行元件,是机电一体化的关键组成之一,广泛应用在各种自动化控制系统和精密机械等领域。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况 下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影 响,即给电机加一个脉冲信号,电机则转过一个步距角。 本系统介绍了一种基于单片机的步进电机控制系统的设计,包括了硬件设计和

2、软件 设计两部分。其中,硬件设计包括单片机最小系统、键盘控制模块、LCD显示模块、步进电机驱动模块、位置检测模块共5个功能模块的设计。系统软件设计采用C语言编写,包括主程序、数字键处理程序、功能键处理程序、电机驱动处理程序、显示模块、位置采集模块。本设计采用STC89C52单片机作为主控制器,4*4矩阵键盘作为输入,LCD1602液晶作为显示,ULN2003A芯片驱动步进电机。系统具有良好的操作界面,键盘输入步进电机的运行距离;步进电机能以不同的速度运行,可以在不超过最大转速内准确运行到任意设定的位置,可调性较强;显示设定的运行距离和实际运行距离;方便操作者使用。 关键词:单片机 步进电机 液

3、晶显示 键盘 驱动 Design of the Stepping Motor Control System Based on SCMQiu Haizhao(College of Engineering, South China Agricultural University, Guangzhou ,China) Abstract:With the development of automatic control system and the requirements of high-precision control, stepping motor control in automation

4、is playing an increasingly important role, different from the common DC and AC motor, stepper motor rotation angle and rotational speed can be high-precision controlled. Stepper motor as a control actuator is a key component of mechanical and electrical integration, widely used in a variety of autom

5、ated control systems and precision machinery and other fields. Stepper motor is the open-loop control components changing electric pulse signals into angular displacement or linear displacement .In the case of non-overloaded, the motor speed, stop position depends only on the pulse frequency and pul

6、se number, regardless of load changes, that is, to add a pulse motor, the motor is turned a step angle. This system introduces a design of stepper motor control system based on single chip microcomputer, including hardware design and software design in two parts. Among them, the hardware design, inc

7、luding single chip minimal system, keyboard control module, LCD display module, the stepper motor drive module, position detection module five functional modules. System software design using C language, including the main program, process number keys, the key of function processes, motor driver han

8、dler, the display module, position acquisition module. This design uses STC89C52 microcontroller as the main controller, 4 * 4 matrix keyboard as an input, LCD1602 LCD as a display, ULN2003A chip as stepper motor driver. System has a good user interface, keyboard input stepper motor running distance

9、; Stepper motor can run at different speed, and run to any given position accurately in any speed without exceeding the maximum speed, with a strong adjustable ; Display the running distance and the actual running distance, which is more convenient for the operator to use. Key words: SCM stepper LCD

10、 keyboard driver目 录1 前言11.1 步进电机的发展11.2 设计要求12 系统方案分析与选择论证12.1 步进电机的选择12.2 步进电机驱动方案的选择22.3 显示方案的选择32.3 键盘方案的选择32.3 步进电机位置检测方案的选择32.4 整体方案43 主要芯片介绍与硬件电路设计43.1 单片机最小系统模块43.1.1 单片机介绍43.1.2 单片机最小系统53.2 键盘电路设计63.3 显示模块73.3.1 LCD1602介绍73.3.2 LCD1602电路图73.4 驱动模块83.4.1 ULN2003A介绍83.4.2 驱动电路图93.5 位置检测模块93.5.

11、1 A3144E介绍93.5.2 位置检测电路图114 程序设计114.1 主程序114.2 数字键处理程序124.3 功能键处理程序135 结论14参考文献15附录16致谢27华南农业大学本科生毕业设计成绩评定表1 前言1.1 步进电机的发展步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易(谢辉等,2010)。步进电机又称脉冲电动机,是数字控制系统中的一种执行元件,其功能是将脉冲电信号变换为相应的角位移或直线位移,且其输出转角、转速与输入脉冲个数、频率有着严格的同步关系。步进电机由于其本身的特点,在具体的应用中有利于装

12、置或设备的小型化和低成本。因而,广泛地应用在众多的领域中并得以不断的发展。虽然步进电机是一种数控元件,易于同数字电路接口。但是,一般数字电路的信号能量远远不足以驱动步进电机,必须有一个与之匹配的驱动电路来驱动步进电机。步进电机本体和步进电机驱动电路两者密不可分地组成步进电机系统。多年来,随着电力电子技术、自动化控制技术以及计算机网络通信技术的发展,步进电机系统尤其是其中的驱动电路部分也不断地发展,国内外围绕步进电机驱动电路做了大量的研究与开发。本次设计采用的是四相步进电机,通过软硬件的结合来实现步进电机的启动、停止、正转、反转、精确定位、变速等功能,并且用LCD显示出步进电机运行参数和设定的参

13、数。主要通过三大块来设计,包括驱动电路设计,显示部分,按键部分的设计。1.2 设计要求 本次设计任务要完成的功能是:实现步进电机的开启与停止、正转、反转、精确定位、变速等功能,并且通过按键来输入运行参数,液晶显示一些参数。 1. 按键设置步进电机运行距离; 2. 液晶显示步进电机设置的运行距离和实际运行距离; 3. 启动时步进电机速度由慢到快,停止时电机速度由快到慢;4. 当实际运行距离与设置的运行距离相等时,精确停止。2 系统方案分析与选择论证2.1 步进电机的选择在进行其他模块设计前,应先选择合适的电机。考虑到此次设计只是简单地控制步进电机的速度、正反转、位置定位等,而并没有涉及使用步进电

14、机拖到负载,因此诸如静力矩和动力矩、转子的转动惯量、力矩负载、惯性负载这些因素就不需要考虑了,所以最终选择了市场上价格相对较为便宜而又比较常见的28BYJ48型四相五线制步进电机,实物图如图1所示。 图1 28BYJ48型四相五线制步进电机实物图其主要技术参数如表1所示 表1 28BYJ48步进电机主要技术参数电机型号电压V相数相电阻+10%步距角度减速比起动转矩100P.P.S g.cm起动频率定位 转矩 g.cm28BYJ48-031243005.625/541:643005503002.2 步进电机驱动方案的选择方案一:使用多个功率放大器件驱动电机 通过使用不同的放大电路和不同参数的器件

15、,可以达到不同的放大的效果,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。方案二:使用L298N芯片驱动电机 L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。但是芯片的价格相对较高,本设计只是简单的对步进电机进行控制。方案三:利用ULN2003A来驱动步进电机 ULN2003A是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作

16、电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。 通过比较,使用ULN2003A芯片可以充分发挥它的功能,能稳定地驱动步进电机,而且价12 格不高,故选用ULN2003A驱动电机。ULN2003A芯片成本比较低,又实现了本次设计的所有要求。方案三比较合适此次设计。2.3 显示方案的选择方案一:采用LED数码管显示电机的设定距离以及实际运行的距离。在本系统中需要用到6只LED数码管进行动态显示才可以达到要求。采用LED的优点是亮度高

17、,醒目,价格便宜,寿命长;缺点是只能显示09的数字和一些简单的字符,电路复杂,占用资源较多且信息量小。方案二:用LCD(RT1602C)液晶显示,其优点是能显示更多的字符,工作电流比LED 小几个数量级,故其功耗低,且有着良好的人机界面,体积小,功耗极低。基于上述考虑,所以本系统选择方案二。2.3 键盘方案的选择方案一:采用独立式键盘,每个按键占用一条I/O线,当按键数量较多时,I/O口利 用率不高,但程序编制简单,适用于所需按键较少的场合。 方案二:采用矩阵式键盘,电路连接复杂,但提高了I/O口利用率,软件编程较复杂, 适用于需使用大量按键的场合。 由于本设计要求用户扩展的键盘按键有数字键0

18、-9和功能键等共16个,因此键盘电路采用独立式键盘将会占用很多的I/O线,所以采用独立式键盘不实用,故采用4*4矩阵式键盘。2.3 步进电机位置检测方案的选择方案一:红外检测,传输要求比较严苛,必须要对准方向,且中间不能有障碍物,限制较多,性能也比较差。 方案二:霍尔传感器,体积小,重量轻,精度高,线性度好,动态性能好,过载能力强,还可以通过使用多块磁钢来倍频,以增加测量的精度,并且还有电路简单,易处理等优点。基于上述考虑,所以本系统选择方案二。2.4 整体方案本系统先通过矩阵键盘设置步进电机的运行距离,单片机采集键盘指令,给出相应的步进电机控制信号,然后通过霍尔传感器来检测步进电机的实际运行

19、距离,并且通过液晶显示器来显示所设定的步进电机的运行距离和实际运行距离,当实际运行距离大于等于设定的运行距离时,步进电机停止工作。结合以上各部分方案的对比,系统的整体方案方框图如图2所示。键盘控制时钟电路单片机LCD1602步进电机驱动位置检测步进电机图2 整体方案设计方框图3 主要芯片介绍与硬件电路设计3.1 单片机最小系统模块3.1.1 单片机介绍STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位C

20、PU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口(王卫星,2009)。另外STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作

21、停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。其引脚图如图3所示。图3 STC89C52引脚图3.1.2 单片机最小系统单片机控制模块由STC89C52最小系统组成,包括STC89C52单片机、晶振电路和复位电路。晶振电路由两个30pF左右电容和一个12MHz晶体振荡器构成,接入单片机的X1、X2引脚。单片机复位端高电平有效。单片机最小系统如图4所示。图4 单片机最小系统 3.2 键盘电路设计本设计采用了4*4矩阵式键盘也称行列式键盘,它由行和列组成,在每一个行列的交叉点上设置一个按键,这样一个8位的控制端口(P1口)就可以实现,比独立式键盘节省了一半端口。其电

22、路原理图如图5所示。图5 键盘电路键盘对应的按键功能如表2。表2 按键功能行列号第一列第二列第三列第四列第一行E正转987第二行D反转654第三行C加速321第四行B减速F停止0A开始3.3 显示模块3.3.1 LCD1602介绍1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块(胡学海,2005)。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。LCD1602是指显示的内容为

23、16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字),LCD1602已经很普遍了,具体的就不再介绍了。其引脚图如图6所示。VSSVCCV0RSRWEDB0DB1DB2DB3DB4DB5DB6DB7BLADBK12345678910111213141516图6 LCD1602引脚图3.3.2 LCD1602电路图本系统采用1602字符型液晶显示模块来显示设定的步进电机的运行距离与步进电机的实际运行距离。LCD1602与单片机的接线如图5所示。LCD1602的控制端口RS、R/W、E分别与单片机的 P3.3、P3.6、P3.7相连,LCD的八个数据引脚分别与单片机的P0端口八个引脚相

24、连,由于单片机P0端口内没有内部上拉电阻,所以当其作为输出端口时,必须外加上拉电阻,并且通过把LCD1602与一个电位器连接来控制LCD1602的显示亮度。其电路图如图7所示。图7 LCD1602电路3.4 驱动模块3.4.1 ULN2003A介绍本系统采用额定电压为5VDC,相数为4相的步进电机,驱动方式为4相8拍。一共有5跟线连接,其中红色的为电源线。采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。由于单片机P口输出的电流比较弱不能驱动步进电机,所以要加一个ULN2003A芯片来放大电流使之能驱动步进电机工作(李仁定,1999)。 ULN2003A

25、内部结构及等效电路图如图8所示:图8 ULN2003A内部框图及等效电路图3.4.2 驱动电路图把STC89C52的P2.0、P2.1、P2.2、P2.3口分别与ULN2004芯片的输入端IN1,IN2,IN3,IN4接口连接,P2口通过软件实现高低电平的依次转换,然后再把P2口的电平信号通过ULN2003芯片放大后再把放大后的信号通过OUT1,OUT2,OUT3,OUT4一次接到步进电机的ABCD四相。驱动电路与单片机连接电路图如图9所示。图9 驱动电路3.5 位置检测模块本设计需要测量步进电机实际运行的距离,采用了A3144E霍尔元件来测量。3.5.1 A3144E介绍霍尔传感器是利用霍尔

26、效应原理制成的一种磁敏传感器。它是近年来为适应信息采 集的需要而迅速发展起来的一种新型传感器,这类传感器具有工作频带宽、响应快、面积小、灵敏度高、便于集成化、多功能等特点,且易于计算机和其他数字仪表接口,因此被广泛用于自动监测、自动报警、自动控制、信息传递、生物医学等各个领域,此处主要介绍开关型霍尔传感器。 开关型霍尔传感器由稳压器A、硅霍尔片B、差分放大器C、施密特触发器D和OC 门输出E五部分组成,如图16所示,从输入端1输入电压Vcc,经稳压器A稳压后加在 18 硅霍尔片B的两端,以提供恒定不变的工作电流。在垂直于霍尔片的感应面方向施加磁 场,产生霍尔电势Vw,该n信号经差分放大器C放大

27、后送至施密特触发器D整形。当磁场到达“工作点”时,触发器D输出低电压,此状态称为“开”。当施加的磁场到达“释 放点”时,触发器D输出低电压,使三极管E截止,输出端V,输出高电位,此状态称为“关”。这样2次高低电位变换,使霍尔传感器完成了1次开关动作。开关型霍尔传感器功能方框图及其输出电压与外加磁感应强度关系如图10和11所示。ABDC123GNDEVCCV0图10 霍尔传感器功能方框图工作点释放点VOHV0BVRPVOPVOL图11 输出电压与外加磁感应强度关系 3.5.2 位置检测电路图位置检测电路是由开关型霍尔传感器和磁钢组成,其中霍尔元件与单片机的连接电路图如图12所示。图12 位置检测

28、电路4 程序设计4.1 主程序单片机开始工作时首先要对系统初始化,且LCD1602也要进行初始化,对各标志位、各变量进行初始化,对各端口初始化等。初始化后系统进入LCD显示主界面,然后系统进入循环部分,进入循环部分后单片机会不断检测是否有键按下,如果没有则继续检测,如果检测到有任意键按下,则进入相应的按键子程序,而且本系统还会不断的检测单片机与霍尔传感器连接的端口是否为低电平,如果不是则继续检测,如果是则进行实际运行距离的计算。流程图如图13所示。实际距离大于等于设定距离?系统初始化主界面有数字键按下?相应数字按键子程序P3.5端口脉冲为0?有功能键按下?相应功能按键子程序计算实际运行距离是否

29、否否否是是是结束有功能键按下?相应功能按键子程序是否开始图13 主程序流程图4.2 数字键处理程序当按下数字键值,系统就会执行相应的数字按键子程序,本程序就是把将相应设定的距离变量左移一位,并将这个数字值存入设定的距离变量的个位。得到的流程图如图14所示:程序入口数字键按下?设定运行距离变量左移一位,数字值存入个位返回是否图14 数字键处理程序流程图4.3 功能键处理程序当功能键按下时,系统就会执行相应的功能按建子程序,则系统功能键相对应的功能就会得到实现,而本系统功能键包括开始、停止、正转、反转、加速、减速。得到的流程图如图15所示。程序入口功能键按下?执行相应功能返回是否图15 功能建处理

30、程序流程图5 结论本次设计的重点在于对步进电机的控制,由于一开始对步进电机的相关知识并不是 很了解,出现了失步和堵转的现象,通过查找资料,知道这是启动频率过高所导致的,查找所买步进电机的相关资料,并且通过调试,得到合适的启动速度,并且通过加速达 到所设置的速度,通过理论计算编程实现了电机的精确定位。 本次设计通过4*4矩阵键盘作为输入设备,能根据操作者的意愿,决定步进电机运行的快慢,步进电机可以在不超过其最高运行速度内以几个档位的速度运行,并且在设置的距离内精确定位;本系统可以显示设定的距离,也可以用霍尔传感器检测实际距离并加以显示,方便了与所设置距离进行对比。本设计达到了设计的预期要求,是比

31、较理想的步进电机控制方案。 参 考 文 献胡学海. 单片机原理及应用系统设计M. 北京:电子工业出版社. 2005:290-293.李仁定. 电机的微机控制M. 北京:机械工业出版社. 1999:55-74. 王卫星. 单片机原理与应用开发技术M. 北京:中国水利水电出版社. 2009:92-220. 谢辉,唐勇. 步进电机发展回顾与前景展望J. 重庆三峡学院学报,2010,26(125):110-111.附 录附录A电路原理图附录B源程序代码#include#include#include#define uint unsigned int /宏定义,为了后面定义变量书写简便#define u

32、char unsigned charsbit lcdrs=P33;/定义端口sbit lcdrw=P36;sbit lcden=P37;sbit ceju=P35;bit flag=0;/ 正反标识uchar code table=0X0E,0X06,0X07,0X03,0X0B,0X09,0X0D,0X0C,0X0E,0X0C,0X0D,0X09,0X0B,0X03,0X07,0X06;/驱动输出表uchar code table1=set distance;uchar code table2=run distance;uchar num=0; uchar speed=0;uchar tab

33、le_begin = 0;uchar dat=0, , ,;/存放数子串值uchar s= , , ,;uchar c=0,0,0,;uchar rdat;/按键次数uchar dk;uchar j=0;uchar maichong=0;float juli;int rl ,sl;uchar temp=1;void duankou();void delay(uint z);void write_com(uchar com);void write_data(uchar dat);void lcd1602_init();void kbscan(void);void keycl(uchar keyv

34、ol);void left(uchar rx,uchar date);void dispose();void qudong();void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) lcdrs=0;lcdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar dat)lcdrs=1;lcdrw=0;P0=dat;delay(5);lcden=1;delay(5);lcden=0;void lcd1602

35、_init()lcden=0;write_com(0x38);/显示模式设置write_com(0x0c);/显示开及光标设置write_com(0x06);/显示光标移动设置write_com(0x01);/显示清屏void kbscan(void)/键盘扫描函数 uchar line,row; P1=0xf0; if(P1&0xf0)!=0xf0) delay(5); if(P1&0xf0)!=0xf0) row=0xfe; while(row&0x10)!=0) P1=row; if(P1&0xf0)!=0xf0) line=(P1&0XF0)|0X0F); keycl(row&line

36、);/进入处理 else row=(row1)|0x01; /键值处理函数void keycl(uchar keyvol) uchar k; delay(400); switch(keyvol) case 0xeb: rdat+;k=1;srdat-1=k;left( rdat,k); break;/1 case 0xdb: rdat+;k=2;srdat-1=k;left( rdat,k); break;/2 case 0xbb: rdat+;k=3;srdat-1=k;left( rdat,k); break;/3 case 0xed: rdat+;k=4;srdat-1=k;left(

37、rdat,k); break;/4 case 0xdd: rdat+;k=5;srdat-1=k;left( rdat,k); break;/5 case 0xbd: rdat+;k=6;srdat-1=k;left( rdat,k); break;/6 case 0xee: rdat+;k=7;srdat-1=k;left( rdat,k); break;/7 case 0xde: rdat+;k=8;srdat-1=k;left( rdat,k); break;/8 case 0xbe: rdat+;k=9;srdat-1=k;left( rdat,k); break;/9 case 0x

38、d7: rdat+;k=0;srdat-1=k;left( rdat,k); break;/0 case 0xe7: k=A ;break;/开始 case 0x77: k=E;break;/正转 case 0x7b: k=D;break;/反转 case 0x7d: k=C;break;/加速 case 0x7e: k=B;break;/减速 case 0xb7: k=F;break;/停止 if(k=A) dk=1; if(k=B) flag=0;if(k=C) flag=1;if(k=D) delay(5);num+;if(num=5)num=4;if(k=E) if(num!=0)nu

39、m-;elsenum=0;if(k=F) dk=0;/移位函数void left(uchar rx,uchar date) switch(rx) case 1:dat0=date;break; case 2:dat1=dat0,dat0=date;break; case 3:dat2=dat1,dat1=dat0,dat0=date;break; void dispose()/处理电机速度 switch(num)case 0:speed=5;break;case 1:speed=4;break;case 2: speed=3;break;case 3: speed=2;break;case 4

40、:speed=1;break; default: break;if(flag=0)table_begin=0;elsetable_begin=8;void qudong()/电机驱动int i;for(j=0+table_begin;j8+table_begin;j+)duankou();/查电机输出表输出,从而驱动电机for(i=0;ispeed;i+)/根据档位来增加或者减少延迟次数delay(5); void duankou() switch(dk) case 0:P2=0;temp=1;break;case 1:P2=tablej;break;default:break; void m

41、ain()uchar i;lcd1602_init();write_com(0x80+0x00);/第一行首地址,注意每写一次,地址自动加1for(i=0;i12;i+)write_data(table1i);write_com(0xc0+0x00);/第二行首地址for(i=0;i12;i+)write_data(table2i); while(1) kbscan(); write_com(0x80+0x0d);/第一行首地址,注意每写一次,地址自动加1 for(i=0;i=sl) P2=0; else qudong(); 致 谢感谢!华南农业大学本科生毕业设计成绩评定表学号姓名专业毕业设计题目指导教师评语成绩(百分制):指导教师签名:年月日评阅人评语成绩(百分制):

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁