![点击分享此内容可以赚币 分享](/master/images/share_but.png)
本科毕业设计-多路智能温度测控系统设计课程设计.doc
《本科毕业设计-多路智能温度测控系统设计课程设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计-多路智能温度测控系统设计课程设计.doc(23页珍藏版)》请在咨信网上搜索。
天津理工大学 通信工程 课程设计 电子技术课程设计 题目:多路智能温度测控系统设计 学 院 计算机与通信工程学院 专 业 通信工程 学 号 20081672 姓 名 *** 指导老师 *** 2011年5月 目 录 摘要…………………………………………………………………… 3 关键字………………………………………………………………… 3 前言…………………………………………………………………… 3 一.Proteus内容简介 4 二、设计目的 4 三、设计内容 4 四、DS18B20简介 5 五、单片机简介 9 六、基本设计原理 9 七、设计步骤 10 八、Proteus设计图 11 九、Proteus仿真调试 11 十、软件设计 13 结语总结……………………………………………………………… 14 参考文献……………………………………………………………… 14 附录1 15 附录2 17 摘 要: 本文介绍了数字温度传感器DS18B20测温的基本原理以及基于DS18B20的多点温度测量系统的设计过程,包括软件设计和硬件设计两大部分。软件部分给出了软件设计思想及软件流程图,硬件部分给出了单片机、测温电路、显示电路设计。单片机使用AT89C52单片机,温度传感器使用美国DALLAS公司最新推出的DS18B20数字式温度传感器,显示模块采用LCD显示。基于DS18B2O的多点测温系统在实际中应用广泛,测温系统简单、测温精度高、连接方便、占用口线少、转换速度快、给硬件电路设计工作带来极大的方便并且缩短了开发周期。 关键词:DS18B20 多点温度测量 单片机 Proteus仿真 前 言 随着电子技术的快速发展,我们生活中的方方面面几乎都充斥着电子产品,我们也无时无刻不享受着电子技术带给我们的便利。作为电子专业的大学生,我们应当在享受电子生活带给我们的便捷的同时,应该更多的理解与思考电子产品的设计过程,并能在已有的集成芯片和单片机等微控制器的基础上,自己动手亲身体验电子设计的过程,以便于将课本上的理论实践化,做到学以致用,更好的掌握单片机等元器件的应用,锻炼独立解决问题的能力。本课程设计题目是基于DS18B20的多路智能温度测控系统设计,主要介绍了DS18B20的工作过程和原理,以及基于它的系统设计。 在这个设计里,根据要求设计了两个DS18B20与单片机之间的单端口通信,可以推广到多个DS18B20。通过学习了解掌握了Proteus 原理图设计及仿真方法,熟悉Keil开发环境。 在设计过程中参考或引用了《基于PROTEUS的电路及单片机系统设计与仿真》,DS18B20数据手册等参考资料以及网络上的相关资料。在此,向这些技术资料的作者表示感谢。 由于设计者的学识水平有限,加之时间仓促,作品不够完善,不足之处在所难免,敬请老师指导和改正。 一.Proteus内容简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086、MSP430、Cortex和DSP系列处理器。它是能进行模拟电路、数字电路、模数混合电路、RS232动态仿真、I2C调试器、SPI 调试器、键盘和LCD、LED 系统的设计与仿真的平台。Proteus 具备原理图设计、电路分析与仿真、PCB 设计功能,可以通过调入程序的编译结果. hex 或. cof 文件来调试单片机程序,还可直接嵌入到 Microchip 公司的单片机调试软件 MPLAB IDE中,进行程序的调试和仿真。 二、设计目的 1、掌握单片机基本编程技术及外围电路的搭建 2、熟练掌握DS18B20的基本操作并了解其工作原理 3、熟练掌握Proteus原理图设计及仿真 三、设计内容 1、单片机最小系统设计 2、DS18B20与单片机的单口通信设计 3、Proteus原理图的绘制与仿真 4、单片机程序编写 四、DS18B20简介 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,可以节约硬件资源,而且使用较为方便。 DS18B20产品的特点 (1)只要求一个端口即可实现通信。 (2)在 DS18B20中的每个器件上都有独一无二的序列号。 (3)实际应用中不需要外部任何元器件即可实现测温。 (4)测量温度范围在-55°C到+125°C之间。 (5)数字温度计的分辨率用户可以从 9位到 12 位选择。 (6)内部有温度上、下限告警设置。 DS18B20的引脚介绍 TO-92封装的DS18B20的引脚排列见下图 DS18B20的使用方法 由于 DS18B20 采用的是 1-Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51 单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。 由于 DS18B20是在一根 I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 (此图为以下时序图的图例) DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在 15us之内释放单总线,以让DS18B20把数据传输到单总线上。DS18B20进行一个读时序过程,至少需要60us才能完成。(下图左边为读“0”时序,右边为读“1”时序) DS18B20的写时序 对于 DS18B20 的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在 15us 到 45us 之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。(下图左边为读“0”时序,右边为读“1”时序) 单片机检测到DS18B20的存在,即可向其发送ROM操作命令 每一片DS18B20在其ROM中都存有其唯一的64位序列号,在出厂前已写入片内ROM中,主机在进入操作程序前必须逐一接入18B20用读ROM(33H)命令将该18B20的序列号读出并登陆。 当主机需要对众多在线18B20进行操作是,首先要发出匹配ROM命令(55H)之后的操作就是针对该18B20的。而所谓跳过ROM命令即为:之后的操作是对所有18B20的框图中先有跳过ROM,即是启动所有18B20进行温度变换之后,通过匹配ROM再逐一地读回每个18B20的温度数据。 在18B20组成的测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H就可以实现所有18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。 64-bit ROM数据结构图: 低8位为产品类型编码(DS18B20均为10h),中间48位为每个器件唯一的序号,高8位为CRC(循环冗余校验)码。 DS18B20中有用于存储测得的温度值的两个8位RAM存储器,编号为0号到1号。1号存储器存放温度值的符号,如果温度为负,则1号存储器8位全为1,否则全为0。0号存储器用于存放温度值的补码,LSB(最低位)的“1”表示0.5摄氏度。将存储器中的二进制数求补再转化成十进制数并处以2就得到被测温度值(-55摄氏度—125摄氏度)。 温度/数据转换关系 转换示例 五、单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。 六、基本设计原理 单片机在本设计中充当了重要的角色,是整个温度测控系统的核心,作为控制中心而存在,与本设计中的另一个重要部分DS18B20进行数据通信并控制LCD液晶屏显示输出,完成了整个多点温度的测控任务,DS18B20、AT89C52单片机、LCD液晶屏构成了整个多点温度测控系统。本设计共采用了2片DS18B20芯片并接于P1.1口采用AT89C52作为控制中心与DS18B20完成单口通信,读取DS18B20采集的温度信息,并经过处理交由1602LCD显示。本设计出于只阐述说明原理考虑只使用了2片DS18B20芯片,并外接了一个开关用于这2片芯片温度数据之间的切换。系统框图如下所示。 系统框图 AT89C52 DS18B20 DS18B20 LCD1602 七、设计步骤 1、查阅 DS18B20芯片datasheet,熟悉其工作原理 2、在Proteus环境下绘制系统原理图 3、在Keil开发环境下编写程序 4、将程序导入Proteus下仿真 5、根据仿真结果改写程序 6、撰写设计报告 八、Proteus设计图 说明:左下角为两个DS18B20芯片,DQ端同接于AT89C52的P1.1口,右上角为1602LCD,P3.3口接开关,通过它的开关切换两片DS18B20之间的温度显示。 九、Proteus仿真调试 在Proteus中使用多个DS18B20 时,必须改变器件的属性,使仿真中的每个器件序列号各不相同。具体做法:右击DS18B20,选中Edit Properties选项,在其中改变ROM Serial Number的值(在该对话框下还可以改变Granularity的数值,即改变每次调整温度的额度)。在Proteus中,可以人为改变3个字节的器件序列号。要想得到全部8个字节,一个简单的方法就是每一次总线上只连接一个器件,利用0x33读器件序列号的命令在程序中得到完整的器件序列号。 将测试序列号的程序烧入Proteus下AT89C51中,程序中定义通信端口为P1.1只需将DS18B20依次与单片机连接即可。并在运行中点击菜单项debug,选中watch window,按alt+A,即出现图1所示对话框,在Name项中输入a,在Address项中输入0x08,点击add,在Watch Window窗口中即可看到序列号低八位的值。然后依次输入0x09—0x0f,再点击done键,即可获得所有64位序列号。所得序列号如图2所示(本设计共用了两个DS18B20)。 测试程序详见附录1 程序中包含向DS18B20发送一个字节,读取一个字节,以及DS18B20的初始化等子程序。 图 1 图 2 十、软件设计 1、软件流程图 判断K=1? 读取1ST DS18B20 LCD显示 读取2ND DS18B20 LCD显示 初始化DS18B20 开始 是 否 主程序流程图 DS18B20读取温度流程图 开始 初始化DS18B20 跳过读序列号操作 匹配ROM 启动温度转换 读序列号 匹配ROM 读取温度寄存器 2、关键模块说明 本程序由主函数main.c 、 头文件ds18b20.h 、 lcd1602.h (为便于调用特将其编为.h文件)三部分组成。 主函数main.c中处理了由DS18B20采集的温度信息并交由1602LCD显示,并设置了 一个开关,当打开开关显示1ST的温度,闭合开关显示2ND的温度。 ds18b20.h 是DS18B20的驱动程序,包含了DS18B20的初始化函数、读写一个字节的函数、匹配ROM函数、温度读取函数。 Lcd1602.h是1602LCD的驱动程序,包含了LCD初始化等程序,使用时只需在主程序中调用GotoXY()函数即可让LCD1602显示字母数字等信息。 具体程序见附录2。 结语总结 在本次课程设计中,我对于芯片的学习能力有了一定了提高,对于初次接触的DS18B20芯片能通过阅读它的数据手册了解其使用方法,并付诸于软件编程思想。在设计中碰到了一些困难,如在实现多个DS18B20的单总线通信时,遇到了编程上的瓶颈,接着又在Proteus仿真中遇到了不会读取DS18B20的序列号的困难,幸而被一一克服,才得以完成本设计最终的仿真实现。第一次亲自动手编写此类较为冗长的程序,将所学的C语言运用到实际,才发现实践总是高于理论的,在实际应用中总会出现困难。在完成本设计后,本人感觉工程设计能力有较大的提升,培养了系统的思维能力,总之得到了很好的锻炼。 参考文献 1、 唐颖. 单片机原理与应用及C51程序设计.北京:北京大学出版社,2008 2、 周润景.张丽娜.基于Proteus的电路及单片机系统设计与仿真.北京:北京航空航天大学出版社,2006 附录1 DS18B20 ROM系列号测试程序 #include<reg52.h> sbit DQ = P1^1; //定义通信端口 unsigned char a[8]; //延时程序 void delay_18B20(unsigned int i) { while(i--); } //初始化函数 Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(4); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_18B20(100); //精确延时 大于 480us DQ = 1; //拉高总线 delay_18B20(40); } //读一个字节 ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); } return(dat); } //写一个字节 WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay_18B20(10); DQ = 1; dat>>=1; } } void main(void) { unsigned char i; Init_DS18B20(); WriteOneChar(0x33); for(i=0;i<8;i++) a[i]=ReadOneChar();//将Rom序列号存入a[]中 } 附录2 主程序 1、main.c #include<reg52.h> #include<ds18b20.h> #include<lcd1602.h> unsigned char TempBuffer[6]; sbit k=P3^0; void delay(unsigned int i) { while(i--); } void main(void) { unsigned int temp; Init_DS18B20(); delay(5000); while(1) { if(k==1) //打开开关显示1ST DS18B20 {temp = ReadTemperature(1); if(flag_Negative_number)TempBuffer[0]='-'; else TempBuffer[0]='+'; TempBuffer[1]=temp/1000+'0';//百位数 TempBuffer[2]=temp%1000/100+'0';//十位数 TempBuffer[3]=temp%100/10+'0';//个位数 TempBuffer[5]=temp%10+'0';//小数位 TempBuffer[4]='.'; //小数点 LCD_Initial(); GotoXY(0,0); Print(" 1st DS18B20"); GotoXY(0,1); Print("temp:"); GotoXY(5,1); Print(&TempBuffer[0]); GotoXY(11,1); Print(" cent"); delay(50000); } else //闭合开关显示2ND DS18B20 { temp = ReadTemperature(2); if(flag_Negative_number)TempBuffer[0]='-'; else TempBuffer[0]='+'; TempBuffer[1]=temp/1000+'0';//百位数 TempBuffer[2]=temp%1000/100+'0';//十位数 TempBuffer[3]=temp%100/10+'0';//个位数 TempBuffer[5]=temp%10+'0';//小数位 TempBuffer[4]='.'; //小数点; LCD_Initial(); GotoXY(0,0); Print(" 2nd DS18B20"); GotoXY(0,1); Print("temp:"); GotoXY(5,1); Print(&TempBuffer[0]); GotoXY(11,1); Print(" cent"); delay(50000); } } } 2、ds18b20.h #ifndef __DS18B20_H__ #define __DS18B20_H__ sbit DQ = P1^1; //定义通信端口 unsigned char flag_Negative_number = 0;//负数标志 unsigned char code str1[]={0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e}; unsigned char code str2[]={0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9}; //晶振11.0592MHz void delay_18B20(unsigned int i) { while(i--); } //初始化函数 Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(4); //稍做延时 DQ = 0; //单片机将DQ拉低 delay_18B20(100); //精确延时 大于 480us DQ = 1; //拉高总线 delay_18B20(40); } //读一个字节 ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); } return(dat); } //写一个字节 WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; delay_18B20(10); DQ = 1; dat>>=1; } } //匹配ROM MatchRom(unsigned char a) { char j; WriteOneChar(0x55);//发送匹配ROM命令 if(a==1) { for(j=0;j<8;j++) WriteOneChar(str1[j]);//发送18B20的序列号,先发送低字节 } if(a==2) { for(j=0;j<8;j++) WriteOneChar(str2[j]);//发送18B20的序列号,先发送低字节 } } //读取温度 ReadTemperature(unsigned char z) { unsigned char a=0; unsigned char b=0; unsigned int t=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 Init_DS18B20(); if(z==1) { MatchRom(1); //匹配ROM 1 } if(z==2) { MatchRom(2); //匹配ROM 2 } WriteOneChar(0x44);//*启动温度转换*/ delay_18B20(5); Init_DS18B20(); WriteOneChar(0xcc); //读序列号 Init_DS18B20(); if(z==1) { MatchRom(1); //匹配ROM 1 } if(z==2) { MatchRom(2); //匹配ROM 2 } WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar(); b=ReadOneChar(); //启动下一次温度转换 Init_DS18B20(); WriteOneChar(0xCC); // 跳过读序号列号的操作 WriteOneChar(0x44); // 启动温度转换 t=b; t<<=8; t=t|a; flag_Negative_number = 0; if(t>0x0fff) { t=~t+1; flag_Negative_number = 0xff; } t=t*0.625; //有效位到小数点后2位 return(t); } #endif 3、lcd1602.h #ifndef LCD_CHAR_1602_2005_4_9 #define LCD_CHAR_1602_2005_4_9 #include <intrins.h> //Port definitions sbit LcdRs = P2^0; sbit LcdRw = P2^1; sbit LcdEn = P2^2; sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数 unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); //while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环, //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80 //实际硬件时打开此语句 LcdEn=0; return DBPort; } //向LCD写入命令或数据 #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) { LcdEn=0; LcdRs=style; LcdRw=0; _nop_(); DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_(); LCD_Wait(); } //设置显示模式 #define LCD_SHOW 0x04 //显示开 #define LCD_HIDE 0x00 //显示关 #define LCD_CURSOR 0x02 //显示光标 #define LCD_NO_CURSOR 0x00 //无光标 #define LCD_FLASH 0x01 //光标闪动 #define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式 #define LCD_AC_UP 0x02 #define LCD_AC_DOWN 0x00 // default #define LCD_MOVE 0x01 // 画面可平移 #define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) { LCD_Write(LCD_COMMAND, 0x04|InputMode); } //初始化LCD void LCD_Initial() { LcdEn=0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 } //******************************************************* void GotoXY(unsigned char x, unsigned char y) { if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40)); } void Print(unsigned char *str) { while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; } } #endif 23- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 智能 温度 测控 系统 设计 课程设计
![提示](https://www.zixin.com.cn/images/bang_tan.gif)
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文