基于51的波形发生器设计_第1页
基于51的波形发生器设计_第2页
基于51的波形发生器设计_第3页
基于51的波形发生器设计_第4页
基于51的波形发生器设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 概述11.1 研究背景11.2 设计思想及基本功能12 总体方案设计22.1 方案选取22.2 系统框图23 硬件电路设计33.1 设计思路、元件选型33.2 原理图33.3 主要芯片介绍43.4 硬件连线图114 系统软件设计114.1 锯齿波的产生过程134.2 三角波的产生过程144.3 矩形波的产生过程154.4 梯形波的产生过程164.5正弦波的产生过程.175 总结.19参考文献201 概述1.1 研究背景波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不

2、同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。

3、1.2 设计思想及基本功能随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。单片机构成的仪器具有高可靠性,高性价比。单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。采用AT89C51单片机和DAC0832芯片,直接连接键盘和显示。该种方案主要对AT89C51单片机的各个I/O口充分利用. P1口是连接键盘以及接显示电路,P2口连接DAC0832输出波形.这样总体来说,能对单片机各个接口都利用上,而不在多用其它芯片, 利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,

4、频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。只要对电路稍加修改,调整程序,就能实现功能的升级。本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制五种波形的类型选择。本次设计主要由信号发生模块、数模转换模块和仿真模块。2 总体方案设计2.1 方案选取信号发生器的实现方法通常有以下几种:方案一:用分立元件组成的函数发生器:通常是单函数发生器且频率不高,其工作不很稳定,不易调试。方案二:可以由晶体管、运放IC等通

5、用器件制作,更多的则是用专门的函数信号发生器IC产生。早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。方案三:利用专用直接数字合成芯片的函数发生器:能产生任意波形并达到很高的频率。但成本较高。方案四:采用AT89C51单片机和DAC0832芯片,直接连接键盘和显示装置。该种方案主要对AT89C51单片机的各个I/O口充分利用. P1口是连接键盘以及接显示电路,P2口连接DAC0832输出波形.这样总体来说,能对单片机各个接口都利用

6、上,而不在多用其它芯片,从而减小了系统的成本.也对按照系统便携式低频信号发生器的要求所完成.占用空间小,使用芯片少,低功耗。综合考虑,方案四各项性能和指标都优于其他几种方案,能使输出频率有较好的稳定性,充分体现了模块化设计的要求,而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作成功的可能性比较大,所以本设计采用方案四。2.2 系统框图3 硬件电路设计3.1 设计思路、元件选型设计思路:(一)、课设需要各个波形的基本输出。如输出锯齿波、三角波、方波、正弦波。这些波形的实现的具体步骤:锯齿波实现很简单,只需要一开始定义一个初值,然后不断的加1,当溢出后又重初值开始加起,就这样循

7、环下去。三角波的实验过程是先加后减,实现方法是先是从00H开始加1直到溢出后就执行减1操作,就这样不断调用这个循环。方波的实现方法是连续输出一个数,到某个时候就改变一下值,可以把值定义为正极性的,也可以是负极性。正弦波的实现是非常麻烦的。它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。(二)、通过P1口和开关K0-K4相连接来控制各个波形的输出。能根据k0-k4键状态进行波形切换,当某一按键按下时,输出相对应的波形。 元件选型:单片机AT89C51系统,DAC0832一片,PC机一台,运算放大器3.2 原理图3.3 主要芯片介绍(1)、DAC0832芯片介绍:DAC083

8、2是使用较多的一种8位D/A转换器,其转换时间为1us,工作电压为+5V+15V,基准电压为+-10V。根据对DAC0832的输入寄存器和DAC寄存器的不同控制方法,可有3种工作方式:单缓冲方式、双缓冲方式和直通方式。单缓冲方式的应用:此方式适用于只有一路模拟量输出或几路模拟量非同步输出的情形。在这种方式下,将两级寄存器的控制信号并接,输入数据在控制信号作用下,直接送入DAC寄存器中。也可以采用把WR2、XFER这两个信号固定接地的方法。双缓冲方式的应用:此方式主要用于同时输出几路模拟信号的场合。此时,每一路模拟量输出需一片DAC0832,构成多个0832同步输出系统。其传送控制端接地,输入所

9、存允许断ILE与+5V电源相连,利用一个地址码进行二次输出操作,完成数据的传送和激动转换,第一次操作室P2.6为高电平,将P0口数据线上的数据锁存于DAC0832的输入寄存器中。第二次操作是写控制信号由效,传送控制端为低电平,将输入寄存器中的内容锁存入0832的DAC寄存器中,D/A转换器便开始对锁存于DAC寄存器的8位数据进行转换,约经过1/2时钟周期后,在输出端(IOUT2、IOUT1)建立稳定的电流输出。运放的作用是将0832输出的模拟电流信号转换为电压波形。DAC0832为一个8位D/A转换器,单电源供电,在+5+15V范围内均可正常工作。基准电压的范围为10V,电流建立时间为1s,C

10、MOS工艺,低功耗20mW。DAC0832的内部结构框图如下图所示。图2-2 DAC0832工作原理图DAC0832的外部引脚及功能介绍图如下:图1 DAC0832引脚图DAC0832内部结构:DAC0832主要由两个8位寄存器和一个8位D/A转换器组成.使用两个寄存器(输入寄存器和DAC寄存器)的好处是可以进行两级缓冲操作,使该期间的操作有更大的灵活性.DAC0832芯片为20脚双列直插式封装,各引脚功能如下: DI0DI7:数据输入线,TLL电平,有效时间应大于90ns。ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通输入端

11、。负脉冲有效(脉冲宽度应大于500ns)。当CS为“0”,ILE为“1”,WR1有效时,DI0DI7状态被锁存到输入寄存器。 XFER:数据传送控制信号输入线,低电平有效。 WR2:为DAC寄存器写选通输入端,负脉冲(脉冲宽度应大于500ns)有效。当XFER为“0”且WR2有效时,输入寄存器的状态被传送到DAC寄存器中。 Iout1:电流输出线。当输入全为“1”时,Iout1最大。 Iout2: 电流输出线。其值与Iout1之和为一常数。 Rfb:反馈信号输入线,芯片内部此端与Iout1之间已接有一个15欧姆的电阻。. Vcc:电源电压端,范围为 (+5v+15v) Vref:基准电压输入端

12、,范围为(-10v+10v)。此端电压决定D/A输出电压的范围。如果Vref接+10V,则输出电压范围为0V-10V;如果Vref接-5V,则输出电压范围为+5V0V。 AGND:模拟地,摸拟信号和基准电源的参考地. DGND:数字地,为工作电源地和数字逻辑地,两种地线在基准电源处共地比较好DAC0832是电流型输出,应用时需要外接运算放大器使之成为电压型输出。(2)、AT89C51单片机介绍: AT89C51单片机与Intel公司MCS-51系列的80C51型号单片机在芯片结构与功能上基本相同,外部引脚完全相同。再一块芯片上,集成了一台微型计算机的各个主要部分。其中主要有CPU、存储器、可编

13、程I/O口、定时、计数器、串行口等,各个部分通过内部总线相连。89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提

14、供了一种灵活性高且价廉的方案。89C51单片机有3种封装形式,一种采用普通40脚塑料双列只差封装(PDIP)形式,一种是44个“J”形脚的方形封装(PLCC)形式,一种是44脚的方形表面贴封装(TQFP)形式,以下已PDIP封装为例外形及引脚排列如下图所示:AT89C51管脚说明:VCC(40脚):供电电压,主电源+5V。 GND(20脚):接地。P0P3是四个寄存器 ,也称4个端口,是89C51单片机与外界联系的4个8位双向并行I/O口。犹豫在数据的传输过程中,CPU需要对接口电路中输入输出数据的寄存器惊醒读写操作,所以在单片机中对这些寄存器像对存储单元一样进行编址。通常把接口电路中这些已编

15、址并能进行读写操作的寄存器称为端口(Part),或简称口。P0.0P0.7(3932脚):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1.0P1.7(18脚):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

16、在FLASH编程和校验时,P1口作为第八位地址接收。 P2.0P2.7(2128脚):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3.0P3.7(1017脚

17、):P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST(9脚):复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG(30脚):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器

18、时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN(29脚):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP(31脚):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在

19、FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。(3)、运算放大器运算放大器最早被设计出来的目的是将电压类比成数字,用来进行加、减、乘、除的运算,同时也成为实现模拟计算机(analog computer)的基本建构方块。然而,理想运算放大器的在电路系统设计上的用途却远超过加减乘除的计算。今日的运算放大器,无论是使用晶体管(transistor)或真空管(vacuum tube)、分立式(discrete)元件或集成电路(integrated circuits)元件,运算放大器的效能都已

20、经逐渐接近理想运算放大器的要求。早期的运算放大器是使用真空管设计,现在则多半是集成电路式的元件。但是如果系统对于放大器的需求超出集成电路放大器的需求时,常常会利用分立式元件来实现这些特殊规格的运算放大器。运放有两个输入端a(反相输入端),b(同相输入端)和一个输出端o。也分别被称为倒向输入端非倒向输入端和输出端。当电压U-加在a端和公共端(公共端是电压为零的点,它相当于电路中的参考结点。)之间,且其实际方向从a 端高于公共端时,输出电压U实际方向则自公共端指向o端,即两者的方向正好相反。当输入电压U+加在b端和公共端之间,U与U+两者的实际方向相对公共端恰好相同。为了区别起见,a端和b 端分别

21、用-和+号标出,但不要将它们误认为电压参考方向的正负极性。电压的正负极性应另外标出或用箭头表示。一般可将运放简单地视为:具有一个信号输出端口(Out)和同相、反相两个高阻抗输入端的高增益直接耦合电压放大单元,因此可采用运放制作同相、反相及差分放大器。运放的供电方式分双电源供电与单电源供电两种。对于双电源供电运放,其输出可在零电压两侧变化,在差动输入电压为零时输出也可置零。采用单电源供电的运放,输出在电源与地之间的某一范围变化。运放的输入电位通常要求高于负电源某一数值,而低于正电源某一数值。经过特殊设计的运放可以允许输入电位在从负电源到正电源的整个区间变化,甚至稍微高于正电源或稍微低于负电源也被

22、允许。这种运放称为轨到轨(rail-to-rail)输入运算放大器。运算放大器的输出信号与两个输入端的信号电压差成正比,在音频段有:输出电压=A0(E1-E2),其中,A0 是运放的低频开环增益(如 100dB,即 100000 倍),E1 是同相端的输入信号电压,E2 是反相端的输入信号电压。运算放大器是用途广泛的器件,接入适当的反馈网络,可用作精密的交流和直流放大器、有源滤波器、振荡器及电压比较器。(4)、独立式键盘独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了

23、。独立式键盘电路配置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。如图所示。3.4 硬件连线图4 系统软件设计ORG 0000HLJMP MAINORG 0003H;外部中断0LJMP INT00ORG 0040HMAIN: MOV SP,60H;更改堆栈指针,避免堆栈与工作寄存器区发生冲突SETB IT0;外部中断请求0为下降沿触发方式SETB EA;中断允许总开关打开SETB EX0;允许外部中断0中断INT00: CLR EA;关中断PUSH PSW;现场保护PUSH AccSETB EA

24、;开中断JNB P1.0,IR0;如果K0键闭合,则跳转至IR0输出锯齿波JNB P1.1,IR1;如果K1键闭合,则跳转至IR1输出梯形波JNB P1.2,IR2;如果K2键闭合,则跳转至IR2输出三角波JNB P1.3,IR3;如果K3键闭合,则跳转至IR3输出方波JNB P1.4,IR4;如果K4键闭合,则跳转至IR4输出正弦波INTIR: CLR EA;关中断POP Acc;现场恢复POP PSWSETB EA;开中断RETI4.1 锯齿波的产生过程锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行

25、刚刚的操作,如此循环下去。锯齿波发生流程图如下图所示:定义变量ifor(i=0;i255;i+) P0=i判断按键是否断开否返回是开 始 锯齿波发生子程序如下:IR0:MOV DPTR,#7FFFH ;选中DAC0832MOV A,#00HLOOP:MOVX DPTR,A ;向DAC0832输出数据JB P1.0,INTIR ;如果k0键已经断开,则返回INC A ;累加器值加一SJMP LOOP ;循环LJMP INTIR ;返回4.2 三角波的产生过程三角波的实现是设置一个初值,当加到某个值的时候,执行减一操作,减到初值时,再加一。三角波发生流程图如下图所示:开始定义变量ifor(i=0;

26、i0;i-)否判断按键是否断开是返回三角波发生子程序如下:IR1:MOV DPTR,#7FFFH ;选中DAC0832MOV A,#00HUP: MOVX DPTR,AJB P1.1,INTIR ;如果k1键已经断开,则返回INC A ; JNZ UP ;上升到A中为FFHDOWN:DEC A MOVX DPTR,AJB P1.2,INTIR ;如果k2键已经断开,则返回JNZ DOWN ;下降到A中为00H INC ASJMP UP ;重复 LJMP INTIR ;返回4.3 矩形波的产生过程矩形波的实现只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据

27、,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了。矩形波发生子程序如下:IR2:MOV DPTR,#7FFFHLP: MOV A,#dataH ;置输出矩形波上限MOVX DPTR,ALCALL DELAY ;调高电平延时程序JB P1.2,INTIR;如果k2键已经断开,则返回MOV A,#dataL ;置输出矩形波下限MOVX DPTR,ALCALL DELAYJB P1.2,INTIR;如果k2键已经断开,则返回SJMP LP ;重复LJMP INTIR ;返回4.4 梯形波的产生过程梯形波的实现是设置一个初

28、值,然后进行加一,当加到某个数时延时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。梯形波发生流程图如下图所示:开始定义变量ifor(i=0;i0;i-)否判断按键是否断开是返回梯形波发生子程序如下:IR3:MOV DPTR,#0FEH L1:MOV A,#dataL-1 ;下限-1送AUP:MOVX DPTR,AJB P1.3,INTIR ;如果k3键已经断开,则返回CJNE A,#dataH,L3 ;与上限比较L3: JC UPDOWN:LCALL DEL ;调上限延时程序L2: DEC A MOVX DPTR,A JB P1.3,INTIR ;如果k3键已经断开,则返回

29、CJNE A,#dataL,L4 ;与下限比较L4: JC L1 SJMP L2 LJMP INTIR ;返回4.5正弦波的产生过程正弦波的实现比较麻烦,需要查表,每查一次表,输出一个数值,之后查下一个数值继续输出,当一个波形的256个数值全部输出之后,从头开始继续输出。正弦波发生流程图如下图所示:开始查表并输出否判断按键是否断开是返回正弦波发生子程序如下:IR4:MOV R0,#0FEH;设置端口地址MOV R1,#00HXX:MOV A,R1LCALL HANSHU ;调用查表函数MOVX R0,A ;写入JB P1.4,INTIR;如果k4键已经断开,则返回INC R1SJMP XX;继

30、续查表LJMP INTIR;返回HANSHU:MOV DPTR,#TAB1MOVC A,A+DPTRRET;-以下是通过正弦的值所建立的一个表SIN: DB 80H,83H,86H,89H,8DH,90H,93H,96H DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,

31、0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D

32、6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H,

温馨提示

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

评论

0/150

提交评论