收藏 分享(赏)

数字温度计论文.doc

上传人:精品资料 文档编号:7739060 上传时间:2019-05-25 格式:DOC 页数:24 大小:309.33KB
下载 相关 举报
数字温度计论文.doc_第1页
第1页 / 共24页
数字温度计论文.doc_第2页
第2页 / 共24页
数字温度计论文.doc_第3页
第3页 / 共24页
数字温度计论文.doc_第4页
第4页 / 共24页
数字温度计论文.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、编号:数字温度计电子技能实训 (论文)说明书题 目: 数字温度计 院 (系): 机电工程学院 专 业: 机械设计制造及其自动化学生姓名: 杨春泉 学 号: 1201110228 指导教师: 郭中玲 2016 年 01 月 19 日基于 52 单片机的数字温度计的设计摘 要本设计主要介绍了一个基于 STC89C52 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小

2、、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20 与 STC89C52 结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;数字温度传感器;最简温度检测系统;目录1 绪论 .41.1 选题的目的和意义 41.1.1 选题的目的 41.1.2 选题的意义 42 数字温度计的设计方案 .52.1 设计方案的确立及论证 52.2 系统器件选择 .52.2.1 单片机的选择 .52.2.2 温度传感器的选择 .52.2.3 数码管选择 .7

3、2.2.4 蜂鸣器选择 .73 系统硬件电路的设计 .83.1 温度检测电路 93.2 显示电路 103.3 蜂鸣器、 LED 灯控制电路 .114 系统软件的设计 .114.1 概述 114.1.1 温度数据的计算处理方法 .124.2 主程序模块 124.3 读温度值模块 134.4 中断模块 134.5 数码管驱动模块 145 心得体会 .15致谢 .17程序源文件 .1811 绪论1.1 选题的目的和意义1.1.1 选题的目的利用单片机 STC89C52、温度传感器 DS18B20、八位四段共阳极数码管、LED灯、蜂鸣器设计一个设计温度计。能够测量-10 50之间的温度值,用八位四段共

4、阳极数码管直接显示,测量精度为 0.1。通过这次设计能够更加了解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识。1.1.2 选题的意义随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器 DS18B20 具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国 MAXIM/DALLAS 半导体公司的单总线温度传感器 DS18B20 为核

5、心,以 STC 公司的 STC89C52 为控制器设计的 DS18B20 温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。本课题研究的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关。22 数字温度计的设计方案2.1

6、设计方案的确立及论证基本功能要求:(1)温度测量范围:-1050 度(2)测量精度:0.1 度(3)显示方式:四位显示(4)能够运用 Protues 仿真2.2 系统器件选择2.2.1 单片机的选择对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。STC89C52是美国 STC 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP) ,也可用传统方法进行编程,所以低价位 AT89C

7、51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2.2 温度传感器的选择DS18B20 简单介绍:DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精

8、度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测3温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 的性能特点如下:1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的

9、双向通讯2.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温3.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内4.适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电5.测温范围55125,精度为0.56.零待机功耗7.测量结果直接输出数字信号,以“一线总线”穿行传送给CPU,同时可传送CRC校验位,具有极强的抗干扰纠错能力8.负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20 内部结构主要由

10、四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列、各种封装形式如图 4.2 所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND 为地信号;VDD 为可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。4外部封装形式 传感器电路图2.2.3 数码管选择1、2、3、4 为控制极,A、B、C、D、E、F、G、dp 对应数码管显示段位。2.2.4 蜂鸣器选择蜂鸣器的结构原理1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的

11、压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V 直流工作电压),多谐振荡器起振,输出 1.52.5kHZ 的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。53 系统硬件电路的设计本设计由 DS18B20 温度传感器芯片测量当前的温

12、度并将转换后的结果送入单片机。然后通过 STC89C52 单片机驱动八位共阳极 4 段数码管显示测量温度值,控制蜂鸣器和 LED 灯。如本设计硬件电路图所示,本电路主要有 DS18B20 温度传感器芯片,两位共阳极数码管,STC89C52 单片机及相应外围电路组成。其中DS18B20 采用“一线制”与单片机相连。仿真图63.1 温度检测电路DS18B20 最大的特点是单总线数据传输方式,DS18B20 的数据 I/O 均由同一条线来完成。DS18B20 的电源供电方式有 2 种: 外部供电方式和寄生电源方式。工作于寄生电源方式时, VDD 和 GND 均接地, 他在需要远程温度探测和空间受限的

13、场合特别有用, 原理是当 1 W ire 总线的信号线 DQ 为高电平时, 窃取信号能量给 DS18B20 供电, 同时一部分能量给内部电容充电, 当 DQ 为低电平时释放能量为 DS18B20 供电。但寄生电源方式需要强上拉电路, 软件控制变得复杂(特别是在完成温度转换和拷贝数据到 E2PROM 时) , 同时芯片的性能也有所降低。外部电源供电方式是 DS18B20 最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。因此本设计采用外部供电方式。如下图所示:温度传感器 DS18B20 的测量范围为-55+125,在-10+85时精度为0.5。

14、因为本设计只用于测量环境温度,所以只显示 0+85。73.2 显示电路本设计显示电路采用四位共阴极 LED 数码管来显示测量得到的温度值。LED 数码管能在低电压下工作,而且体积小、重量轻、使用寿命长,因次本设计选用此数码管作为显示器件。一个 LED 数码管只能显示一位的字符,如果字符位数不止一位,可以用几个数码管组成,但要控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到 LED 的 ag 引脚,是某些段点亮,某些段处于熄灭状态。字位控制是指控制在多位显示器中,哪几位发光或那几位不发光,字位控制则需要通过字位码作用于 L

15、ED 数码管的公共引脚,是某一位或某几位的数码管可以发光。数码管显示电路分为动态显示和静态显示。静态显示方式是指每一个数码管的字段控制是独立的,每一个数码管都需要配置一个 8 位输出口来输出该字位的七段码。因此需要显示多位时需要多个输出口,通常片内并口不够用,需要在片外扩展。动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会被点亮,并显示出相应的字符。下一时刻改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。绕后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视觉残留效应

16、,会使人感觉到几位数码管都在稳定的显示。本设计采用数码管动态显示,电路如下图所示:显示部分电路 图中由单片机 P0 口串接 74HC245 驱动四位共阴极数码管,上拉电阻排为 10K。3.3 蜂鸣器、 LED 灯控制电路本设计有蜂鸣器报警和 LED 灯显示。当温度超过三十度时蜂鸣器开始警报,温度低于三十度时警报消除。本设计有 LED 灯显示,当温度为 0-10 度时一盏 LED 灯开始亮;当温度为10-20 度时,两盏 LED 灯开始亮;当温度问 20-30 度时,三盏 LED 灯开始亮;当温度超过830 度时,四盏 LED 灯全部亮;当温度为 0 度以下,则 LED 灯都不亮。4 系统软件的

17、设计4.1 概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。4.1.1 温度数据的计

18、算处理方法从 DS18B20 读取出的二进制值必须转换成十进制值,才能用于字符的显示。DS18B20 的转换精度为 912 位,为了提高精度采用 12 位。在采用 12 位转换精度时,温度寄存器里的值是以 0.0625 为步进的,即温度值为寄存器里的二进制值乘以 0.0625,就是实际的十进制温度值。通过观察表 4-1 可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0F,转换成十进制小数就是 0.0625 的倍数(015 倍)。这样需要 4 位的数码管来表示

19、小数部分。实际应用不必这么高的精度,采用 1 位数码管来显示小数,可以精确到 0.1。表 4.1 二进制与十进制的近似对应关系表94.2 主程序模块主程序需要调用 2 个子程序,分别为:温度设定、驱动数码管把实时温度值送出在八位四段数码管显示 主程序流程图:图 主程序流程图4.3 读温度值模块读温度值模块需要调用 4 个子程序,分别为:DS18B20 初始化子程序:让单片机知道 DS18B20 在总线上且已准备好操作DS18B20 写字节子程序:对 DS18B20 发出命令DS18B20 读字节子程序:读取 DS18B20 存储器的数据延时子程序:对 DS18B20 操作时的时序控制104.4

20、 中断模块中断采用 T0 方式 1,初始值定时为 50ms。中断模块需调用两个子程序:读温度值子程序:定时读取温度值,实时更新温度值记录温度值子程序:定时记录温度值,供查询使用把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停止更新温度值和记录温度值。中断模块流程图:图中断模块流程图4.5 数码管驱动模块本设计数码管通过锁存器接单片机 P0 口,采用动态扫描驱动 7 段 LED 数码管进行显示,需调用延时子程序以稳定显示。模块流程图如下:11入口关段选P0 置高关位选开位选P0 清零开段选送段码送位码 关段选 关 段 选 关 段 选 关 段 选 延时 关 段 选 关 段

21、选 关 段 选 返回 关 段 选 关 段 选 关 段 选 图 数码管驱动模块流程图5 心得体会该基于 DS18B20 的多点温度测量系统具有硬件结构简单、易于制作、价格低廉、测量值精确和易于操作等许多优点。实际应用中可根据具体情况进行更多点的扩展和对多点进行控制。随着现代信息技术的飞速发展和传统工业改造的逐步实现,基于 DS18B20 的多点温度测量系统已经广泛应用于控制、化工等诸多领域。总之,本次课程设计顺利完成,基本达到了课程设计的要求。本文在深入分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。总结这一星期以来

22、的工作,得到以下结论:1.针对现有测温系统的特点,提出了一套应用数字式温度传感器 DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济实用性。2.以单总线为基本结构,采用 STC 公司的 STC89C52 单片机为总线命令,实现与 DSl8B20 的总线接口,并提供具体电路设计。3.软件编程采用模块化、结构化设计,易于修改和维护。由于时间和精力的限制,对后续的研究还应在以下方面逐步完善:1.应用软件的完善。温度采集方面,一次命令全部单总线上的 DS18B20 进行温度转换,减少系统所需时间。122.进一步完善系统的可靠性。由于实际经验的欠缺,设计上难免有考虑不

23、周之处。当某一个传感器出现故障时,虽然系统能发现该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还需要在今后应用时加以完善。3.可以增加控制部分,以后在该部分进行 PID 算法控制,以提高控制精度。总之 ,本论文在新型数字温度测控系统方面做了一定的研究工作。该系统初步完成了温度测控方案的预定目标,为今后实现数字化与网络化的温度测控系统工程提供了一种参考。社会经济效益分析本温度测控系统可以产生的社会经济效益是显而易见的。在工农业许多场合,温度测量和控制对生产起着非常重要的作用,通过温度测控,可以更好的提高工农业生产的产量和效率。本设计利用数字化的温度传感器作为载体,以 S

24、TC89S52 单片机为控制核心,通过对所测量的温度值进行控制和数据上传,将数字信息上传给上位机进行进一步的处理,从而可以实现这套系统的商品化和技术服务的稳定性。这套系统可以产生的功能强大,扩展温度传感器端口后,可以同时对多个传感器进行测量和控制,并且只需添加 DS18B20 的初始化程序和与本设计两点测控类似的程序即可以实现,所以程序修改上也比较方便。本系统可以实现产品的专业化和工厂化大生产,应用领域广泛,例如,可以对小区内的供暖系统进行多点温度监控,实时处理 DS18B20 温度传感器上传的数据;可以在对温度要求比较严格的车间内进行多点温度测控,以保持室内的精准温度;可以在化学反应炉内安装

25、本系统,使化学反应可以在精确的温度条件下进行等等。在课程设计的整个过程中,我遇到了许多意想不到的困难,如自己设计电路,进行软件编译等等。不仅如此,很多从未遇见过的问题和现象困扰着我,比如在调试的过程中,时常出现问题,但每次经过仔细反复查找,终于可以将这些问题针对性的找到并进行合理的改正,确保其正常实现对应的功能,在自己处理难题的过程中,真正学到了很多新的知识。13致谢在本次课程设计即将完成之际,我要感谢同班同学,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次毕业设计就不会如此的顺利进行。当然,不积跬步何以至千里,这一切也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在

26、设计中得以体现。诚挚的感谢我的指导老师。她在忙碌的教学工作中挤出时间来审查、修改我的论文,告诉我应该注意的细节问题,细心的给我指出错误并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,她严谨细致、一丝不苟的作风一直是我生活、学习中的榜样。在接下来的一年里,我会加倍努力,不辜负老师们的悉心教导,弥补自己在学习生活中的不足,完善知识体系,争取能够更加熟练地运用在课堂上学到的知识,提高自己的成绩,给自己一份满意的答卷。最后,向所有关心我的亲人、师长和朋友们表示深深的谢意。14程序源文件#include “reg52.h“#define uchar unsigned char #define u

27、int unsigned int #define Disdata P0 / 段码入口 #define discan P2 /位扫描口 uint temp; / variable of temperature 定义一个变量 uchar flag1; / 定义一个标志,标志温度是负还是正,1 为负,0 为正 uchar h; / 定义变量 uint wendu=20; /温度值sbit D1=P24; /温度指示灯sbit D2=P25;sbit D3=P26;sbit D4=P27;sbit DQ=P37; / 温度输入口sbit Beep=P24; /蜂鸣器unsigned char code

28、 table=0x3f,0x05,0x3b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40; /共阳数码管段码表 “0“1“2“3“4“5“6“7“8“9“灭“-“15unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x00;/带小数点的编码 /共阳数码管带小数点段码表 “0“1“2“3“4“5“6“7“8“9“灭“uchar data temp_data2=0x00,0x00;/读出温度暂放 uchar data Dis_play5=0x00,0x

29、00,0x00,0x00,0x00;/显示单元数据,共 4 个数据和一个运算暂用 uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09; /小数部分对应十进制 “0“1“2“3“4“5“6“7“8“9“A“B“C“D“E“F“uchar code scan_con3=0xfb,0xfd,0xfe; /列扫描控制字 /*/ /* 延时子程序 */ /*/ void delay(uint i) /delay while(i-); /*/ /* 初始化 ds

30、18b2 子函数 * */ /*/ void Init_DS18B20(void) uchar x=0;DQ = 1; /DQ 复位 delay(8); /稍做延时 DQ = 0; /单片机将 DQ 拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(14); x=DQ; /稍做延时后 如果 x=0 则初始化成功 x=1 则初始化失败 delay(20); /*/ /* 读字节子函数 */ /*/ ReadOneChar(void) 16uchar i = 0; uchar dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉

31、冲信号 dat=1; / 数据右移一位 DQ = 1; / 给脉冲信号 if(DQ) / DQ 为 1 dat|=0x80; / 读出数据 delay(4); / 延时 return(dat); /*/ /* 写字节子函数 */ /*/ void WriteOneChar(unsigned char dat) uchar i = 0; for (i=8; i0; i-) DQ = 0; DQ = dat /写入一位数据 delay(5); DQ = 1; dat=1; /右移一位数据 /*/ /* DS18B20 写命令函数 */ /*/ /*void tmpwritebyte(uchar d

32、at) / write a byte to ds18b20 / 给温度传感器写一个字节 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写入 1 17DQ=0; i+;i+; DQ=1; i=8;while(i0)i-; / 适当延时 else /写入 0 DQ=0; i=8;while(i0)i-; / 适当延时 DQ=1; i+;i+; */ /*/ /* 发送温度转换命令 */ /*/ void tmpchange(void) / DS18B20 begin change Init_DS18B20(); / 初始化 DS18B20 d

33、elay(200); / 延时 WriteOneChar(0xcc); / 跳过序列号命令 WriteOneChar(0x44); / 发送温度转换命令 /*/ /* 读出温度函数 */ /*/ uint tmp() /get the temperature / float tt; Init_DS18B20(); / 初始化 ds18b2 子函数 delay(1); WriteOneChar(0xcc); / 跳过 ROM 命令 WriteOneChar(0xbe); / 发送读取数据命令 temp_data0=ReadOneChar(); / 连续读两个字节数据 temp_data1=Rea

34、dOneChar(); temp=temp_data1; temp6348) / 温度值正负判断 tem=65536-tem;flag1=1; / 负温度求补码 ,标志位置 1 Dis_play4=tem / 取小数部分的值 Dis_play0=ditabDis_play4; / 存入小数部分显示值 Dis_play4=tem4; / 取中间八位,即整数部分的值 Dis_play3=Dis_play4/100; / 取百位数据暂存 Dis_play1=Dis_play4%100; / 取后两位数据暂存 Dis_play2=Dis_play1/10; / 取十位数据暂存 Dis_play1=Dis_play1%10; / 取个位数据暂存 wendu=(Dis_play2)*10+(Dis_play1);if(!Dis_play3) / 最高位为 0 都不显示 Dis_play3=0x0a; / 先判断百位是否为 0 if(!Dis_play2) Dis_play2=0x0a; / 再判断十位是否为 0 19if(flag1) Dis_play3=0x0b; / 为负数时,最高位显示 “-“ /*/ /* 温度数据显示 */ /*/ void display() char k; for(k=0;k=30)Beep=0;elseBeep=1; while(1);

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报