基于labview的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟)_第1页
基于labview的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟)_第2页
基于labview的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟)_第3页
基于labview的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟)_第4页
基于labview的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于LabVIEW的秒表设计摘要数字式秒表是一种常用的计时工具,广泛用于各种比赛以及各类实验测量中。随着生活节奏的加快,人们时间观念的加强,各种计时器已经成为人们日常生活中不可或缺的一部分,并且人们已经不能满足于单一的某一种功能了。而如何在秒表的基础上,根据人们生活的需要增加相应的功能以方便人们的生活,便成为秒表设计方面的重点。我基于LabVIEW设计的的秒表,具有秒表计时器、倒计时器、节拍器、时钟和闹钟的功能。其具有界面美观,简单易用,功能强大,精确度高等特点。此秒表的所有功能均可以独立运行,互不干扰,具有很好的用户体验。关键词:秒表,计时,LabVIEWStopwatch design b

2、ased on LabVIEWAbstract Digital stopwatch is a commonly used tool for timing.It is widely used in various competitions and a variety of experimental measurements.With the accelerated pace of life and the strengthening of the concept of time,variety timer has become an indispensable part of everyday

3、life,and it has been unable to meet on a single feature of a certain kind.It has become the focus of the stopwatch design that how to add the corresponding function according to the needs of people's lives based on the stopwatch to convenience to people's lives. Stopwatch witch I designed ba

4、sed on LabVIEW, is with a stopwatch timer, countdown timer, metronome, clock and alarm functions.It has a beautiful interface, easy to use, powerful, high precision characteristics.This stopwatchs all functions can be run independently, means can without disturbing each other, and with good user exp

5、erience.Keywords: stopwatch, timer, LabVIEW 目 录1.绪 论11.1 引言11.2虚拟仪器的概念及特点11.2.1虚拟仪器11.2.2 虚拟仪器的特点12. 图形化编程和LabVIEW22.1 图形化编程简介22.2 LabVIEW简介22.2.1前面板22.3.2 程序框图23.秒表介绍及程序设计33.1 概述33.2 秒表的发展33.3 秒表的功能设计53.3.1.正计时53.3.2 倒计时63.3.3.节拍器63.3.4.时钟与闹钟64. 程序实现74.1秒表计时器74.1.1 流程图74.1.2程序设计84.2 倒计时器214.2.1流程图2

6、14.2.2程序设计224.3节拍器254.3.1流程图254.3.2 程序设计264.4时钟及闹钟284.4.1流程图284.4.2 程序设计28总 结31致 谢331.绪 论1.1 引言 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。1.2虚拟仪器的概念及特点1.2.1虚拟仪器 LabVIEW程序又称虚拟仪器,即VI,其外观和操作均模仿现实仪器,如示波器和万用表。每个V

7、I都使用函数从用户界面或其它渠道获取信息输入,然后将信息显示或传输至其它文件或计算机。1.2.2 虚拟仪器的特点 根据概念创建者美国国家仪器公司(National Instruments)的定义,虚拟仪器(英语:Virtual instrumentation)技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟 仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。2. 图形化编程和LabVIEW2.1 图形化编程简介 图形化的程序语言,又称为 “G” 语言

8、。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。2.2 LabVIEW简介 双击LabVIEW快捷图标,出现启动画面,打开一个新的LabVIEW程序,可以看到它由两个面板组成。第一个是前面板窗口;第二个是后面板窗口。2.2.1前面板 前面板由输入控件和显示控件组成。这些控件是VI的输入输出端口。输入控件模拟仪器的输入装置,为VI的程序框图提供数据。显示控件模拟仪器的输出装置,用以显示程序框图获取或生成的数据。2.3.2

9、 程序框图 前面板创建完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。程序框图是图形化源代码的集合,图形化源代码又称G代码或程序框图代码。前面板上的对象在程序框图中显示为接线端。3.秒表介绍及程序设计3.1 概述 秒表是一种常用的测时仪器。又可称"机械停表"。由暂停按钮、发条柄头、分针等组成。它是利用摆的等时性控制指针转动而计时的。在它的正面是一个大表盘,上方有小表盘(图142)。秒针沿大表盘转动,分针沿小表盘转动。分针和秒针所指 的时间和就是所测的时间间隔。在表正上方有一表把,上有一按钮。旋动按钮,上紧发条,这是秒表走动的动力。用大拇指按下按钮,秒表开始计时;

10、再按下按钮, 秒表停止走动,进行读数;再按一次,秒表回零,准备下一次计时。秒表的精度一般在0102秒,计时误差主要是开表、停表不准造成的。而使用labview制作的秒表,其精确度可达到1毫秒。3.2 秒表的发展 原始人凭天空颜色的变化、太阳的光度来判断时间。古埃及发现影子长度会随时间改变,发明日晷在早上计时,他们亦发现水的流动需要的时间是固定的,因此发明了水钟。古代中国人亦有以水来计时的工具铜壶滴漏,他们亦会用烧香计时。将香横放,上面放上连有钢珠的绳子,有报时功能。 中国古代烧香的闹钟。除了用水流来计时外,中国古代民间亦有利用燃点线香来计量时间。龙舟报时更香就是利用烧香来计时的仪器,它更设有定

11、时响闹的作用。龙舟上挂了数条两端系著金属球的幼线,线下放了燃著的香。每隔一段时间,香便会烧断一条线子,当金属球跌进下面的盛器时,便会发出报时响闹。这种烧香时计最早 见于宋代(公元12世纪中叶)的文献中。用更香来计算时间的精度不高,但由于它简单易行,极之适合民间使用,所以曾经十分流行。据文献记载有些更香可燃烧一画夜,有些甚至可以燃烧至一个月。此更香是根据文献及示图复原,没有原物传世。 1088年,宋朝的科学家苏颂和韩工廉等人制造了史上首座以水力作自动化机械操作的水运仪象台,它是把浑仪、浑象和机械计时器组合起来的装置。 1276年,中国元代的郭守敬制成大明灯漏。它是利用水力驱动,通过齿轮系及相当复

12、杂的凸轮结构,带动木偶进行“一刻鸣钟、二刻鼓、三钲、四铙”的自动报时。自宋起,十二时辰分初正即廿四小时系统,一刻即今天的十五分钟,其准确度较德国之桌钟早三百多年。 1283年在英格兰的修道院出现史上首座以砝码带动的机械钟。 13世纪意大利北部的僧侣开始建立钟塔(或称钟楼),其目的是提醒人祷告的时间。 1360年詹希元创制“五轮沙漏”,以齿轮、时刻盘合成 16世纪中在德国开始有桌上的钟。那些钟只有一支针,钟面分成四部分,使时间准确至最近的十五分钟。 1657年,惠更斯发现摆的频率可以计算时间,造出了第一个摆钟。1670年英国人威廉·克莱门特(William Clement)发明锚形擒纵

13、器。 1797年,美国人伊莱·特里(Eli Terry)获得一个钟的专利权。他被视为美国钟表业的始祖。 世界上第一座原子钟建于1949年,位于美国的国家标准技术研究所。第一座准确的原子钟于1955年建造,位于英国国家物理实验室。1967年,第十三届国际度量衡会议采用铯-133原子钟所发出特定波长的频率,作为秒的基准依据。当此原子钟某特定波长所发出 的光振动 9,192,631,770 次所经过的时间,定义为一秒。原子钟相当稳定,不易受环境变化影响。 计时码表,或称码表,是一种有计时功能的手表,是将秒表的功能结合于手表之中。计时码表于 1720年由英国人 George Graham 发

14、明。 无论是机械手表,石英手表,甚至 LCD显示数位表,都有计时码表的产品。LCD数位手表的价钱是三者中最低,但计时功能却是最为精确,精度可达百分之一秒或千分之一秒。石英的计时码表价钱较贵,精度多数为十分之一秒 。而机械计时码表的精度是最差,只能以秒计算,但由于机芯结构复杂,因此价钱最为昂贵。3.3 秒表的功能设计3.3.1.正计时我设计的秒表的正计时器首先具有精确到0.01秒的计时功能,最高可以计时到99小时59分59秒99,其他功能如下:以LED七段数码管的方式显示时间。在计时过程中,可以暂停、继续计时。在任意状态下,可以执行复位操作,清除所有数据。可以在任意状态记录任意次时间。在任意状态

15、下,可以实现单人记圈/多人记名的切换,并且切换后自动复位。有毫秒指针,每秒转一圈。3.3.2 倒计时 我设计的倒计时器可以从任意时间开始倒计时,并在倒计时结束时触发警报,其他功能如下: 有倒计时指针显示剩余时间的百分比,且平滑移动。 以LED七段数码管的方式显示剩余时间。 可以设置不同的提示音。 精确到1秒。 倒计时结束时指针中间会出现红点。3.3.3.节拍器我设计的节拍器具有如下功能:开始、暂停节拍器。设置节拍,从20拍/分钟到240拍/分钟,间隔为20拍/分钟。3.3.4.时钟与闹钟我设计的时钟具有以下功能:以指针方式显示12进制的时间。显示当前日期和时间,星期。设置闹钟,并可设置闹钟状态

16、。4. 程序实现4.1秒表计时器4.1.1 流程图通过对秒表原理的理解基础上,在结合LabVIEW软件,秒表计时器的程序流程图如图(4.1)所示:图4.1程序流程图4.1.2程序设计1. 前面板设计程序的前面板如图4.2所示图4.2 前面板2.程序框图 整个秒表计时器的程序框图如图4.3所示图4.3 程序框图3. 程序设计顺序计数的实现:建立while循环,将i创建显示控件,从而将计数值显示到前面板上。在循环中添加等待时间可以控制计时精度。如添加10毫秒等待则是精确到0.01秒。进位的实现:进位的实现有几种备选方案:1)for循环指定循环次数2) 事件结构中设置比较器,当i等于特定值时触发进位

17、3) 使用条件结构,当i等于特定值时比较器输出true,激活进位4) 算数计算由i算出各个数位使用前三种方案有一个弊端:每增加一个进位就会相应的增加一个嵌套的循环,而循环越多越容易出现错误和死循环。于是我选用第四个进位方法:算数方法。由于1秒=1000毫秒,1分钟=60秒,1小时=60分钟。我们可以算出,当while循环延迟为1毫秒时,小时数为(i/60*60*1000)的整数商。设i为(i/60*60*1000)的余数,则分钟数为(i/60*1000)的整数商。设i”为(i/60*1000)的余数,则秒数为(i”/1000)的商,其余数即为毫秒数。市面上的秒表多数是精确到0.01秒,也就是1

18、0毫秒,所以我把算出的毫秒数又进行了*10,从而得到0.01秒的精确度。实现算数进位的子vi程序框图如图4.4所示,其中x为输入端,输出为一个含有4位的时间簇。图4.4 算数进位函数暂停计时的实现: 暂停计数要求在计数开始后点击暂停按钮时暂停计数,再次点击时又开始计数,并且是接着刚才的数值计数。这就要求在整体程序运行时,将程序的一部分暂停和恢复。为了做到这点,我先后尝试了各种结构,最终使用了双层while循环的嵌套结构。具体是将一个while循环外再加一个while循环,在内层while循环中加入停止按钮,并且将停止按钮的动作设置为“释放时转换”,同时将前面板的停止按钮设置为开关的形状以便于识

19、别。这样,这个内层的停止按钮就会实现暂停的功能。 具体程序框图如图4.5所示图4.5 暂停的实现随时退出程序的实现: 我的计数方案没有for循环,所以它不会自己停止。如果沿用先前的独立停止按钮的设计,就会出现一个严重的问题:只能在计时过程中停止。当程序处于计时状态时,内部while循环处于停止状态,点击停止按钮会立即得到响应;而当程序处于暂停计时时,内部while循环处于运行状态,从而外部的事件将无法响应。我注意到,当在暂停状态下点击停止按钮后再让秒表开始计时,内部循环将会跳出,而停止命令则会得到响应。由此想到,如果让程序在我点击停止的时候,自动让内部while循环处于运行状态,那么问题便迎刃

20、而解了。 由此想法,列出了如下的真值表:暂停端停止端内部while循环101111000011不难看出此真值表与或门完全一致。于是便有了如图4.6所示的设计。使用或门将两个按钮同时连接到内部while循环,并且把触发端都放置在最内部,消除延迟:图4.6 停止按钮设计整体框图如图4.7所示图4.7 可以随时停止的秒表设计计时清零的实现: 对显示控件的清零有几种备选方案:1) 事件结构2) 条件结构3) 嵌套while循环 经过多次实验,发现事件结构和条件结构容易在while循环中形成死循环无法跳出,故采用嵌套while循环来实现清零功能。由于在前面的程序中停止程序并重启后i会自动归零,所以在整个

21、程序外面再加一个while循环。这样,可以随时停止内部程序而不中止整个进程。而停止内部程序则会实现清零的操作。和停止按钮一样,如果沿用先前的独立停止按钮的设计,就会出现同样的的问题:只能在计时过程中清零。当程序处于计时状态时,内部while循环处于停止状态,点击清零按钮会立即得到响应;而当程序处于暂停计时时,内部while循环处于运行状态,从而外部的事件将无法响应。解决此问题,同样根据真值表可以看出,在内循环添加或门,这样就可以顺利触发清零。程序框图如图4.7所示.图4.7 带停止功能的秒表程序框图记录功能的实现:秒表的记录功能要求能够在计时的过程中随时记录多次的时间。首先,我实现的是记名。为

22、了能够显示一个完整的字符串(如:第1名:0小时0分钟1秒.20)我使用字符串连接函数将多个字符串和时间进行组合,并使用条件结构控制对数据的采集。在最后添加换行符以换行。为了能够实现实时采集,同样将采集按钮放在最内层循环,并使用或门与其他按钮相连。为使程序能够连续多次记录,使用反馈节点储存数据。程序框图如图4.8所示。图4.8 可以连续记录的秒表程序框图随着记录功能而来的一个问题就是清屏。先前的清零只能对时间进行重置,而字符串却不行。开始时,我使用了对显示控件从新赋值的方法,但这种方法有一个弊端,就是移位寄存器是不可重置的,这样就会导致在执行清零后再记录时,先前清除的内容又显示回来了。为了解决移

23、位寄存器清零的问题,我转而使用了另一种方法:临时文件的读取写入。临时文件可以很好的解决清除数据与读取的问题。先将数据写入临时文件,再从文件中读取字符串显示到显示控件上。每点击一次采集按钮,就会在对应文件的下一行添加一个记录字符串。当需要清零时只需要删除文件内的数据即可。这样,当点击清零按钮时,所有显示控件都会清零,并且没有数据残留。同样,将该按钮放置在内循环并使用或门与其它开关相连。程序框图如图4.9所示.图4.9 可以清零的秒表程序框图复位按钮的实现:秒表上通常会有一个复位按钮,这个按钮会同时实现两个功能:清除所有数据;使秒表处于停止计时状态。所以我把清零按钮改为了复位按钮,次改进需要增加一

24、些触发功能。首先,在点击复位时会清空临时文件中的数据,这一点通过事件结构实现;其次,在清除数据时,将开关置为暂停状态,为此创建了暂停按钮局部变量,通过对局部变量的赋值实现该功能。当点击复位时,暂停按钮会被赋值F,从而暂停计时。事件结构具体如图4.10所示。图4.10 复位的程序框图切换记名/记圈的实现:切换记名/记圈实现的功能就是当点击切换按钮时,程序会在记名模式/记圈模式之间来回切换,并且在切换的同时进行复位。为实现该功能,我使用了一个条件结构,在“真”里面放置“圈”字,在“假”里面放置“名”字,使其共同输出到一个显示控件上。同时,在前面板隐藏该显示控件,并在程序框图上创建该显示控件的局部变

25、量,设置为读取模式,将其连接到采集数据的长字符串里面。这样,就可以把字符串里面的一个字符在两个字之间切换了。程序框图如图4.11所示为了能够在切换的同时执行复位,我在复位按钮的旁边增加了一个事件结构,设置触发源为切换按钮值改变,这样,点击切换按钮时,事件结构触发,输出一个T,将其和复位按钮以或门相连,便可以实现多个触发源触发一个功能了。 图4.11 切换的实现LED七段数码管显示的实现: 七段数码管显示数字的效果如图4.22所示。每一位数字都是由7个布尔指示灯拼接而成,每两位形成一组,共同显示一个小时/分钟/秒/毫秒数值。在每两个位之间,有绿色的双闪LED灯,每秒闪一下。图4.12 LED七段

26、数码管显示效果 为了实现LED数码管的显示,首先需要制作一个数字转换为LED显示的子VI,否则程序会很繁杂。该子VI的程序框图如图4.13所示,前面板如图4.14所示。首先,建立一个十进制整形的数值输入控件,将其连接至一个条件结构,在条件结构中添加10个条件分支,分别对应09这10个数字。在条件结构的每个分支中,加入7个布尔常量,并分别创建显示控件,将显示控件设置为方形指示灯,这7个指示灯对应7个数码管。对这7个指示灯的形状和大小进行调整,使之成为一个“8”字。接下来对条件结构中的常量进行设定,比如8对应的数码管就是7个T,因为8的LED显示中数码管都是亮的。同样的,对所有10个条件分支进行设

27、定,使每一个数值对应一个LED显示样式。因为本程序是子VI,不宜有太多输出,故创建局部变量并将其捆绑为簇,实现单输入单输出。图4.13 LED显示子VI程序框图图4.14 LED显示子VI前面板在主程序中,需要调用8次LED显示函数。因为该函数一次只能显示一位,所以要把时间的两位数变为两个一位数。对一个两位数除10取余和商便可达到这一目的。将簇解除捆绑之后,把每一位除以10,将商和余数分别接入LED显示子VI,并在子VI上创建显示控件,便可在前面板上显示出LED的数字了。程序框图如图4.15所示.为实现每两个数字中间的闪烁灯,我在秒的位置增加了除以2的操作,通过余数来判断奇偶,当得到奇数时,使

28、用条件结构给8个布尔指示灯赋值T,使之点亮。当得到偶数时,使用条件结构给8个布尔指示灯赋值F,使之灭。程序框图如图4.15所示。图4.15 主函数部分LED显示图4.15 闪烁灯程序框图秒针转盘的实现: 在前面板上创建一个量表,并进行自定义,使之成为图4.16中的样子,并将其最大值设置为100.这样,即可实现每秒钟转一圈的秒表指针了。图4.16 毫秒指针4.2 倒计时器4.2.1流程图倒计时器的流程图如图4.17所示。图4.17 倒计时器流程图4.2.2程序设计1. 前面板设计程序的前面板如图4.18所示。图4.18 倒计时器的前面板2. 程序框图倒计时器的程序框图如图4.19所示。图4.19

29、 倒计时器的程序框图3. 程序设计初始时间设置的实现: 倒计时所输入的时间为小时:分钟:秒,想将这些时间转化为秒,则需要把小时*3600+分钟*60+秒。 数值倒计的实现: 得到秒的数值之后,只需要把该数值减去循环次数i就可以实现倒计时了。而将while循环的间隔设置为1秒就可以实现每秒减1的倒计时了。在实际设计中,倒计时提示会在程序运行时响起,因为此时计数数值也是0.为解决此问题,我在-i之前对数值*100,在-i之后又进行/100取整,并且使用/10取整之前的数值与1比较,相等时就会触发报警。同时,把while循环的间隔设置到10毫秒,这样计时还是1秒,同时提高了精确度。程序框图如图4.2

30、0所示。图4.20 倒计时原理倒计时暂停/开始的实现: 和秒表一样,具体是将一个while循环外再加一个while循环,在内层while循环中加入停止按钮,并且将停止按钮的动作设置为“释放时转换”,同时将前面板的停止按钮设置为开关的形状以便于识别。这样,这个内层的停止按钮就会实现暂停的功能。倒计时复位的实现: 倒计时的复位原理同秒表一样,只不过由于不需要记录数据,要比先前简单很多。在点击复位按钮之后,内循环会停止,同时将暂停/开始按钮置为暂停状态。原理在前面的秒表部分已有叙述,在此不再重复。倒计时铃声及其切换的实现:该倒计时器在倒计时器结束时会有铃声报警,并且铃声是可换的。为了实现该功能,我先

31、找来两个wav格式的铃声,使用事件结构来判断是否时间到。时间到时,事件结构执行真的部分,播放放在指定路径下的声音文件。为了实现切换提示音,在条件结构内在加入一个条件结构,并在前面板中加入一个枚举输入,从而选择铃声。另外,在倒计时结束时,指针中间会有一个红点出现,这使用的是一个圆形指示灯的可见性属性节点通过条件结构的赋值所实现的。其触发原理同上。程序框图如图4.21所示。图4.21 倒计时结束触发整合停止按钮: 在逻辑上,秒表和倒计时器的运行关系是并行的,也就是说互不影响,所以要放在同一个程序中。这样就要求当点击停止按钮时,它们必须同时停止而不是只有一个框架停止运行。为实现该功能,我隐藏了倒计时

32、器的停止按钮,同时使用了一个触发源为秒表停止按钮的事件结构来代替它。这样,一个停止按钮就可以停止整个程序了。指针倒计时的实现:倒计时指针是一个显示剩余时间百分比的装置。所以只需要对剩余时间和设定时间的秒数进行相除即可。为实现平滑效果,将其接入-i的前面和后面,这样指针每10毫秒动一下,人的肉眼几乎无法察觉。4.3节拍器4.3.1流程图节拍器的流程图如图4.22所示。图4.22 节拍器流程图4.3.2 程序设计1. 前面板设计 程序的前面板如图4.23所示。图4.23 节拍器2. 程序框图节拍器的程序框图如图4.24所示。图4.24 节拍器程序框图3. 程序设计节拍选择的实现: 在前面板使用转盘

33、输入所需节拍,将其设置为输入差值20,最小值20,最大值240。设需要x拍/分钟,则每拍就是60/x秒,故用60除以所输入的数值即可。为了使得节拍器可以实时识别指令,将while循环的间隔设为50毫秒,同时对输出数值*20。节拍的提示方式: 该节拍器通过判断循环次数i与所需节拍是否为整除关系来判断是否报警,通过条件结构实现。节拍提示采用系统自带的提示音,使用发声控件实现。节拍的暂停/继续与停止: 此处的原理与倒计时器和秒表完全相同,故在此不再重复说明。4.4时钟及闹钟4.4.1流程图时钟闹钟的流程图如图4.25所示。图4.25 时钟闹钟的流程图4.4.2 程序设计1. 前面板设计 程序的前面板如图4.26所示。图4.26 时钟与闹钟2. 程序框图时钟/闹钟的程序框图如图4.27所示。图4.27 时钟的程序框图3. 程序设计字符串

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论