简易数字电压表设计 论文.doc_第1页
简易数字电压表设计 论文.doc_第2页
简易数字电压表设计 论文.doc_第3页
简易数字电压表设计 论文.doc_第4页
简易数字电压表设计 论文.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告书题目:简易数字电压表设计 学 院 机械与汽车工程学院 专 业 机械电子工程2班 学生姓名 周家齐 学生学号 201330011463 指导教师 欧元贤 徐静 江伟 陈泽飞 马迎 课程编号 课程学分 起始日期 2016/3/1 课 程 设 计 任 务 书一、 目的任务1.1增进对单片机的感性认识,加深对单片机理论方面的理解。1.2握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。1.3解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。二、设计内容:2、数字电压表设计三、时间安排3、第一至第二周四、设计工作要求4.1系统功能4.1.1可测05V的8路输入电压值;4.1.2在LED数码管上轮流显示;4.1.3单路选择显示;4.2系统硬件设计4.2.1单片机采用MCS51系列4.2.2 A/D转换器ADC08094.2.3键盘为44行列式键盘,按键设有10个数字键09,和5个功能键依次是:各通道轮流显示键、单通道显示键、向左滚动显示键、显示启动/停止键、回车键。4.2.4有4位LED管,左边1位用于指示显示通道,右边3位显示电压值。4.3系统软件设计4.3.1键盘管理程序(包括键扫描、键处理程序)。4.3.2 LED动态显示程序,包括:4.3.3各通道轮流显示,共显示8个通道,每通道显示1s;4.3.4单通道显示,仅显示指定通道电压,并保持到其他功能键按下。 五、成绩评定六、参考文献教师评语教师签名:日期:成绩评定备注简易数字电压表设计一、 选题背景在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。二、方案论证(设计理念)1.设计理念:本实验设计主要讲述了数字电压表的设计过程,主要包括硬件设计和程序设计,硬件主要包括以AT89S51单片机为主要控制电路、数据采样电路、显示电路等,是基于51单片机开发平台实现的一种数字电压表系统。该设计采用AT89S51单片机作为控制核心,驱动控制四块数码管显示被测电压,以ADC0809为模数转换数据采样,实现被测电压的数据采样,使得该数字电压表能够测量05V之间的直流电压值。2实现的功能及要求2.1系统功能2.1.1可测05V的8路输入电压值;2.1.2在LED数码管上轮流显示;2.1.3单路选择显示;2.2系统硬件设计2.2.1单片机采用MCS51系列2.2.2 A/D转换器ADC08092.2.3键盘为44行列式键盘,按键设有10个数字键09,和5个功能键依次是:各通道轮流显示键、单通道显示键、向左滚动显示键、显示启动/停止键、回车键。2.2.4有4位LED管,左边1位用于指示显示通道,右边3位显示电压值。2.3系统软件设计2.3.1 键盘管理程序(包括键扫描、键处理程序)。2.3.2 LED动态显示程序,包括:2.3.3 各通道轮流显示,共显示8个通道,每通道显示1s;2.3.4 单通道显示,仅显示指定通道电压,并保持到其他功能键按下。3.芯片功能介绍3.1 51单片机简介3.1.1 STC89C51单片机学习板是一款基于8位单片机处理芯片STC89C52RC的系统。 其功能强大,可以实现单片机开发的多种要求,学习、开发者可以根据需要选配多种常用模块,达到实验及教学的目的。 89C51单片机学习板功能强大,具有报警,跑马灯、串行通信(max232)、段码液晶(msm0801LCD)和字符液晶显示(LCD1602)、电机控制(L298)、A/D转换(TLC2543)、D/A转换(TLC5615)、温度采集(DS18B20)、数字信号合成(AD9851)、实时时钟电路(DS1302)、420mA输出、PWM输出(UC3842)、红外检测(KSM-603LM)控制等十七种功能,供学习者学习开发使用,如图3-1 图3-1 AT89S51芯片3.1.2 主要性能特点1、4k Bytes Flash片内程序存储器; 2、128 bytes的随机存取数据存储器(RAM); 3、32个外部双向输入/输出(I/O)口; 4、2个中断优先级、2层中断嵌套中断; 5、6个中断源; 6、2个16位可编程定时器/计数器; 7、2个全双工串行通信口; 8、看门狗(WDT)电路; 9、片内振荡器和时钟电路; 10、与MCS-51兼容; 11、全静态工作:0Hz-33MHz; 12、三级程序存储器保密锁定; 13、可编程串行通道; 14、低功耗的闲置和掉电模式。3.1.3 管脚说明P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口 的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(T0定时器的外部计数输入) P3.5 T1(T1定时器的外部计数输入) P3.6 /WR(外部数据存储器的写选通) P3.7 /RD(外部数据存储器的读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上 并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。 RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端。 图3-2 AT89S51 芯片管脚3.2 ADC0809 模数转换简介3.2.1 ADC0809是美国国家半导体公司生产的带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。产品外观图如图3-3所示。 图3-3 ADC0809 芯片3.2.2 主要性能特点(1)8路输入通道,8位A/D转换器,即分辨率为8位。 (2)具有转换起停控制端。 (3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) (4)单个+5V电源供电 (5)模拟输入电压范围0+5V,不需零点和满刻度校准。 (6)工作温度范围为-40+85摄氏度 (7)低功耗,约15mW。3.2.3 内部结构结构如图 3-4 图3-4 ADC0809内部图3.3 74LS164移位寄存器3.3.1概述 74ls164、74lsT164 是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,非同步地清除寄存器,强制所有的输出为低电平。3.3.2特性(1)门控串行数据输入;(2)异步中央复位符合 JEDEC 标准 no. 7A;(3)静电放电 (ESD) 保护;HBM EIA/JESD22-A114-B 超过 2000 V;MM EIA/JESD22-A115-A 超过 200 V;(4)多种封装形式;(5)额定从 -40 C 至 +85 C 和 -40 C 至 +125 C3.3.3功能图如图3-5、3-6、3-7 图3-5逻辑符号 图3-6 管脚图 图3-7 功能图3.4 74HC573的介绍3.4.1简介在数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。 锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU时间。 锁存器作用:锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。 锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。还有些芯片具有锁存器,比如芯片74LS244就具有锁存的功能,它可以通过把一个引脚置高后,输出就会保持现有的状态,直到把该引脚清0后才能继续变化。3.4.2 管脚图如图3-8图3-8 74HC573锁存器管脚图 注:1脚三态允许控制端低电平有效; 1D8D为数据输入端; Q8Q为数据输出端; LE为锁存控制端;OE为使能端3.5 LED显示系统3.5.1 LED显示器的选择在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。本系统中第一位为通道显示,第二位为显示电压的整数位,即个位,后两位显示电压的小数位,分别为十分位和百分位。 4-LED显示器引脚如图2-9所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。三、过程论述1.硬件设计图4-1为硬件的总体框图,可分为四个模块。模数转换使用ADC0809芯片,它将输入的模拟电压量转换为一个8位的二进制数字,然后进入到单片机STC80C51控制单元,经过驱动处理模块用数码管显示出直流电压值。另外注意ADC0809芯片输入电压不可大于5V 图4-1 硬件框图 1.1 时钟电路设计MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可,如图4-2所示。 图4-2时钟电路的设计1.2 复位电路的设计复位电路的设计单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位电路如图4-3所示 图4-3 复位电路设计1.3 采样电路设计这里使用的是ADC0809的模数转换芯片,可根据其工作机理来设计电路图:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。采样电路如图4-5所示。 图4-5采样电路1.4 键盘电路的设计当按键数量较多时,为节省I/O口线和减少引线,常将其按矩阵方式连接。每条行线与列线的交叉处通过一个按键来接通,则只需要N条行线和M条列线,即可组成N*M个按键的键盘。比如,有16个按键的键盘,可将其按4*4的方式连接,即4根行线和4根列线,每根行线和列线交叉点处即为一个键位,其连接形式如图4-6所示 图4-6 键盘电路设计1.5 显示电路的设计单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和D小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED能按照正常的亮度显示出数字,如图4-7所示。 图4-7 显示电路的设计1.6整体电路的设计如图4-8 图4-8 整体电路的设计2.系统的程序设计系统程序的设计系统程序的设计是对照已经设计好的硬件电路进行编写的程序,其每个函数模块及其硬件原理都可以在上一节中进行对应。系统程序设计代码:#include#include #define uchar unsigned char#define uint unsigned int#define ADD P3 uchar code LED_Data1 =0xfc, 0xc0, 0xda, 0xf2, 0x6,0xb6, 0xbe, 0xe0, 0xfe, 0xf6;uchar code LED_Data2 =0xfd, 0x61,0xdb, 0xf3, 0x67,0xb7, 0xb7, 0xel, 0xff, 0xf7;sbit HC164_CLK=P31;sbit HC164_DATA=P30; sbit a0=ACC0;sbit wei0=P10;sbit wei1=P11; sbit wei2=P12; sbit wei3=P13;sbit ST=P16;sbit OE=P17;sbit ADD_A=P35;sbit ADD_B=P36;sbit ADD_C=P37;uchar num, getdata, temp1, temp2, temp3, temp4;uchar a=0, d=0, c=0, t=0, k=0, sig_flag=0, on_off=0, CHAN=0, chan_temp=0;nTIME=0, sig_mul=0,k1=0;void init ( ) ; void AD_convert (uchar j) ;void HC164_Display (uchar data_buf) ;void LED_scan (uchar l, uchar m, uchar n, uchar w) ;void mul_display ( ) ; uchar keyscan ( ) ; uchar key_driver ( ) ;void delay_ms (uint) ;void main ( )init() ; while (1)switch (key_driver ( ) )case 0: if (sig_flag =1) k=0 ; k1=0 ; break ;case 1: if (sig_flag =1) k=0x20 ; k1=1 ; break ;case 2: if (sig_flag =1) k=0x40 ; k1=2 ; break ;case 3: if (sig_flag =1) k=0x60 ; k1=3 ; break ;case 4: if (sig_flag =1) k=0x80 ; k1=4 ; break ; case 5: if (sig_flag =1) k=0xa0 ; k1=5 ; break ;case 6: if (sig_flag =1) k=0xc0 ; k1=6 ; break ;case 7: if (sig_flag =1) k=0xe0 ; k1=7 ; break ; case8: ; case9: ; break;case 10: if (on_off=1) sig_mul=2;TR0=1; sig_flag=0 ; break;case 11: sig_flag=1;TR0=0 ; break;case 12: ; break;case 13:on_off+; if (on_off=1) wei0=0 ; wei1=0 ; wei2=0 ; wei3=0 ; TR0=1 ; if (on_off=2) wei0=1 ; wei1=1 ; wei2=1 ; wei3=1 ; on_off=0; break ; case 14: break; case 15: if (sig_flag=1) sig_mul=1 ;break; default: if (on_off=1) if (sig_mul=1) AD_convert (k) ; LED_scan (k1, a, d, c) ; else mul_display() ;break ;void init() wei0=1 ; wei1=1 ; wei2=1 ; wei3=1 ;P2=0XF0 ;TMOD=0X01 ; TH0= (65536-50000)/256 ; TL0= (65536-50000)%256 ;EA=1 ;ET0=1 ; on_off=1 ;void AD_convert (uchar j)P0=0xff ;P3=j; ST=0;ST=1 ; ST=0 ; delay_ms (5) ; OE=1 ; delay_ms (1) ;temp4=P0 ; temp1 =( _crol_ (temp4, 3) &0x80)|(temp4&0x6f)|(_cror_ (temp4, 3) &0x10) ; temp4 =( _crol_ (temp1, 7) &0x80)|( _crol_ (temp1, 5) &0x40)|(_crol_ (temp1, 3) &0x20)|(_crol_ (temp1, 1) &0x10) ; temp3 =( _cror_ (temp1, 7) &0x01)|( _cror_ (temp1, 5) &0x02)|(_cror_ (temp1, 3) &0x04)|(_cror_ (temp1, 1) &0x08) ; getdata=temp3|temp4; delay_ms (10) ; getdata=getdata*2 ;a=getdata/100 ;d=(getdata-a*100)/10 ; c=getdata-a*100-d*10 ;OE=0 ;void HC164_Display (uchar data_buf)uchar i ;ACC=data_buf;for(i=0; i1; void LED_scan (uchar l, uchar m, uchar n, uchar w)wei0=0; wei1=1 ; wei2=1 ; wei3=1 ;HC164_Display (LED_Data1l) ;delay_ms (10) ;HC164_Display (0x0);wei0=1; delay_ms (1) ; wei1=0 ;wei0=1; wei2=1 ; wei3=1 ;HC164_Display (LED_Data2m) ;delay_ms (10) ;HC164_Display (0x0); wei1=1 ; delay_ms (1) ;wei2=0;wei0=1; wei1=1 ; wei3=1 ;HC164_Display (LED_Data1n) ;delay_ms (10) ;HC164_Display (0x0);wei2=1 ; delay_ms (1) ;wei3=0 ;wei0=1; wei1=1 ; wei2=1 ; HC164_Display (LED_Data1w) ;delay_ms (10) ;HC164_Display (0x0);wei3=1 ; delay_ms (1) ; void mul_display ( )AD_convert (CHAN) ; delay_ms (8) ;LED_scan (chan_temp, a, d, c) ; void delay_ms (uint i)uchar x, j ; for (j=0;ji;j+)for (x=0 ; ; x+); uchar keyscan ( )uchar sccode; uchar recode; P2=0xf0 ; if ( (P2&0xf0)!= 0xf0) delay_ms (8) ; if ( (P2&0xf0)!= 0xf0)sccode=0xfe ; while ( (sccode&0x10) !=0) P2=sccode ;if ( (P2&0xf0)!= 0xf0) recode=(P2&0xf0)|0x0f;while ( (P2&0xf0) !=0); return( recode+ sccode) ; elsesccode=(sccode 1)|0x01 ;while ( (P2&0xf0) !=0xf0) ;return (0) ;uchar key_driver ( )uchar temp=0, num=100; temp=keyscan ( ) ; switch (temp)case 0x11:num=1; break;case 0x12: num=2; break; case 0x14: num=3; break; case 0x18: num=10; break ;case 0x21: num=4; break ; case 0x22: num=5; break; case 0x24: num=6 ; break ; case 0x28: num=11 ; break; case 41 : num=7; break ; case 0x42: num=8; break ; case 0x44: num=9; break; case 0x48: num=12 ; break; case 0x81: num=13; break; case 0x82: num=0; break; case 0x84: num=14; break; case 0x88: num=15; break; default : break; return num; void timer0 (void) interrupt 1 TH0= (65536-49995) /256 ; T

温馨提示

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

评论

0/150

提交评论