【《基于单片机的多功能万年历系统设计》7800字】_第1页
【《基于单片机的多功能万年历系统设计》7800字】_第2页
【《基于单片机的多功能万年历系统设计》7800字】_第3页
【《基于单片机的多功能万年历系统设计》7800字】_第4页
【《基于单片机的多功能万年历系统设计》7800字】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

PAGEII基于单片机的多功能万年历系统设计摘要本文的设计主要是基于51单片机,对一个电子万年历时钟系统所需要进行的一种多功能用途的时钟单片机控制设计,主要原理是由采用时钟控制芯片的DS1302将系统采集的时钟数据信号送入到该单片的主机中,然后进行信号采集处理再经LCD1602显示后进行输入。电子万年历系统软件集成部分主要是可以使用java和c语言进行编写,可以用到的电子硬件集成电路有时间闹钟芯片DS1302、液晶显示芯片LCD1602,温度传感器芯片DS18B20,主控制器的芯片AT89S52,还有独立按键。电子万年历计算是一种目前使用非常广泛的日常生活计时计算工具,在整个现代中国社会十分广泛流行。它不仅可以对年、月、日、时、分、秒等时进行自动计时,还可以具有闰年时间补偿计时功能和专用时间长度校准器等功能。关键词:AT89S52DS1302DS18B20LCD1602目录1绪论 11.1课题研究的背景 11.2课题研究的目的与意义 11.3课题研究的内容 12系统设计方案 22.1系统任务设计 22.2系统方案设计 23硬件设计 33.1AT89S51单片机 33.1.1单片机的引脚功能 43.1.2单片机的主要特性 53.2时钟模块DS1302 63.1.1单片机的引脚功能 63.1.2操作控制字 73.3温度模块DS18B20 83.4显示模块LCD1602 93.1.1LCM1602的接口信号说明如表4 93.5按键模块 114软件设计 124.1主程序流程图设计 124.2程序设计 124.2.1DS1302读写程序设计 124.2.2温度程序设计 165系统调试 195.1总体实现 195.2显示实现 20结语 26参考文献 271绪论时代在前进,社会在发展,技术也在不断的创新,电子产品被广泛的应用于人们的生活当中。于此同时,人们对电子产品使用性能的要求也日渐提高,在日常生活中,电子万年历的智能化也在不断地发展。1.1课题研究的背景在繁忙的都市生活中,每天都有新的技术诞生在这个世界上,高科技的时代已经来到,电子产品的技能化日益增强,工作的要求,学习的需要,都让电子产品融入到我们的生活中。手机、电脑可以帮助我们获取十分丰富的外界信息,但生活中还有许多与人类紧密相关的东西,像是温度、时间、日期、星期等,于是便产生了多功能电子万年历,它集日期、时间、星期和温度功能于一体,有非常多的优点,具有显示清楚、功能明了、电路简洁的特点,适合今后作为电子仪器的发展。俗话说“时间就是金钱”。电子万年历十分符合现代人们的需求,满足人们对时间与温度的实时获取。如今的部分单片机产品已归为成熟,将敲响每一户家门。1.2课题研究的目的与意义LCD液晶显时明朗、走时直观。功能日渐齐全。由于单片机拥有成熟的性能,良好的可靠性,低的功耗,良好的抗干扰能力和轻便快捷的使用能力等优点,且最近几年发展迅速,单片机已经应用于许多产业。所以单片机技术为核心,软硬件结合,设计出了功能多样、电路简洁,操作简单,成本小等多项优点的万年历系统。1.3课题研究的内容本设计将单片机作为主打内容,并引申出相应的模块,主要内容有下面几处,如表1.3.1所示:表1.3.1研究内容内容特点电子万年历芯片功能齐全、使用便捷、功耗低,拥有在线编程技术。外围电路功能实在、易于实现。接口电路按照设计要求实现,简洁易懂。硬件电路考虑结构的实用性,使用起来方便易懂;在开发板上选择合适的元器件实现设计功能。软件电路对程序进行编程、编译、调试等一系列操作,将程序下载到单片机上,完成本设计的功能。2系统设计方案为了实现本设计——基于单片机的多功能万年历系统,将LED显示器连接到三个8位74LS164串行接口,为了给单片机AT89S52进行供电,采用RESPACK-8;单片机AT89S52连接时钟DS1302芯片。2.1系统任务设计关于这个设计,任务如下:1、以AT89S52单片机为核心。2、采用DS1302作为时钟模块芯片。3、采用DS18B20作为温度模块芯片。4、采用LCD1602作为显示模块芯片。5、通过五个按键,分别为复位键、加键、减键、功能键、移位键,来实现对时间、日期的实时调控。2.2系统方案设计按照电路系统软件设计的功能要求,本电路系统由六个电路模块软件组成,分别设置为系统核心控制模块、电源模块、时钟控制模块、显示控制模块、按键控制模块和电源温度控制模块,电路系统构成电路框图设计如图1硬件电路框图所示。图1硬件电路框图3硬件设计本产品的亮点是由AT89S52这一款单片机作为本设计的控制要素,操作起来非常的便捷,即使在超低压环境中,它也能工作;选择DS1302作为时钟电路的芯片,它占内存小,使用起来方便,并且性能优异、在电路中功耗不大,可以长久的使用,可以对时间、日期来进行计时,能够对特殊年份闰年进行补偿。温度模块的芯片选用的是比较熟悉的DS18B20传感器,单根总线传输是作为它的功能之一,可以明显的节省读取单片机的温度资源。采用LCD1602作为液晶显示控制模块的核心芯片,它的软硬件设计制作简单,可直接与其他单片机进行接口,内容广泛显示丰富,功耗小,成本低。3.1AT89S51单片机本系统采用的AT89S52单片机,是由美国ATMEL公司推出的,首先来熟悉一下AT89S52单片机的外部引脚和主要特性,如图3.3.1所示。图3.1.1AT89S51引脚图3.1.1单片机的引脚功能AT89S52单片机有40个引脚。VCC:电源电压+5vGND:接地端p0口:一组8位专用电源开路漏极端口专用电源开路型双向开关专用电源i/o口,也可说就是端口即专用电源输入地址/专用总线电源数据复位端口。p1口/p2口:是一个具有带输出内部上或下拉缓冲电阻的8位双向缓冲i/o口,输出内部缓冲的一级电流可通过驱动(同时吸收或增加输出最大电流)4个串口ttl复位逻辑的入门电路。p3口:为控制电路可以是用于一组两端分别带一个内部上升高压下压回拉器的稳压输出电阻的8位双向入门输入逻辑i/o,输出最大电流输入缓冲器初级控制电路它也可以是用来吸收驱动(同时分别吸收或驱动增加两个输出最大输入电流)4个复位输入逻辑ttl复位输入逻辑的双向入门控制电路。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。le/prog:当不被用户允许访问外部作为应用程序数据处理器的存储器或内部使用数据处理器的存储器时,ale(用于读入时的地址锁存器不被用户允许)可以读入一个输出作为地址输入脉冲区的值,这是一个用于读入作为地址锁存器的输入输出地址的低8位进制整数的小字节。ea/vpp:外部数据文件夹的访问不被系统允许。欲正常网络使用的话ecpu仅可以用于直接访问外部网络应用程序文件中的地址存储器(外部文件中的地址编码格式为0000h—ffffh)。xtal1振荡信号放大器外部红内反射正相信号振荡放大器及内部红外反相信号时钟器是信号振荡发生器的两个信号输入端。xtal2振荡器反相放大器的输出端。3.1.2单片机的主要特性与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.2时钟模块DS1302DS1302时钟芯片如图3.2.1所示,该芯片是由美国DALLAS公司推出的。该芯片性能高、功耗低、并且是自身带有RAM的实时时钟电路,采用32.768Khz的晶振,可对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能。它不仅可同时采用多个串行接口与多个cpu串行接口同时进行多个单位突发串行时钟控制数据,同时串行传输,并且也可同时串行采用多个单位串行突发时钟控制数据方式,一次同时串行传送多个大于整数单位字节的多个单位突发时钟串行控制数据信号或多个ram单位串行控制数据。图3.2.1DS1302时钟芯片3.1.1单片机的引脚功能=1\*GB3①X1、X2:外接32768Hz晶振。=2\*GB3②SCLK:串行时钟脉冲输入端。=3\*GB3③I/O:串行数据输入/输出端。=4\*GB3④:复位/片选端。=0,DS1302复位;=1,允许对DS1302读写操作。=5\*GB3⑤Vcc1和Vcc2为主电源,接+5V电源;Vcc1为备用电源,可外接3.6V锂电池。=6\*GB3⑥GND:接地端。图DS1302的引脚3.1.2操作控制字操作控制字实际上是一个地址有着固定的结构,其中包含了操作对象和操作命令,如表3.3所示。表3.3DS1302操作控制字=1\*GB3①D7:操作使能位。1有效,允许操作;0无效,禁止操作。=2\*GB3②D6:操作数据区选择位。1选择操作RAM,0选择操作时钟。=3\*GB3③D5~D1:被操作单元A4~A0位地址,与其余各位共同组成操作单元8位地址信号,即操作控制字。=4\*GB3④D0:读写选择位。1表示进行读操作,0表示写操作。因此,读操作单元地址(控制字)均为奇数,写操作单元地址(控制字)均为偶数。=5\*GB3⑤读写DS1302首先要写入操作控制字。3.1.3片内寄存器DS1302内部共有12个寄存器,具有时钟读写、RAM读写、充电和写保护等功能,如表3-4所示。表3-4DS1302寄存器3.3温度模块DS18B20DS18B20温度传感器是由美国DALLAS半导体公司推出的,如图3.3.1所示,其技术性能如表3.3.2所示。图3.3.1DS18B20芯片3.3.1DS18B20技术性能独特的双向通用接口,单线程双接口方式实现主机通讯ds18b20在与多个单台微处理器之间进行数据连接时仅仅只不过需要一条单线程接口数据线即可使您主机即可轻松快速实现一个单台微处理器与多台主机之间ds18b20的双向线程数据通讯。测温范围-55℃~+125℃支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最大只能并联8个,实现多点测温,如果数量过多,会使供电电压过低,从而造成信号传输的不稳定。工作电源3.0~5.5V\DC外围控制电路在实际使用中的ads18b20不一定需要任何的外围控制电路。传输方式根据测量测试结果以9~12位高频数字模拟量程的方式实现串行数据传输。3.3.1DS18B20工作原理DS18B20与DS1820有一样的读写时序和测温原理。DS18B20测温原理如图3.3.2所示。图中受外界温度变化影响不大的为低于高温度频率系数晶振,低于高温度频率系数晶振将其计数产生的固定脉冲频率信号通过传输电路给温度计数器一,用于计数产生固定脉冲频率。改变最为强烈的晶振是高一定温度的热系数晶振,它因此在温度发生变化时就会迅速产生信号振荡和频率大大改变的响应结果,作为温度计数器二的高频脉冲信号输入即为它温度产生的改变结果。会对脉冲信号温度进行再次减法用来计数的这是因为你的计数器一对低脉冲温度频率系数一对晶振脉冲产生的每个脉冲,当把这个计数器一的脉冲预置参数值再次减到最小温度直至0时,就把脉冲温度频率寄存器的预置值再次加1,重新进行装入这个计数器一的脉冲预置,计数器一会再次减法进行计数,针对低脉冲温度频率系数一对晶振脉冲产生的每个脉冲温度信号,一直持续循环到你的计数器二,当计数值减到0时,让脉冲温度频率寄存器的预置值暂时停止再次累加,此时所能量测到的脉冲温度即为频率寄存器预置中的脉冲数值。图3.3.2测温原理3.4显示模块LCD1602LCD1602液晶显示器由液晶显示屏和驱动控制集成电路(HD44780)组成,分析其功能实际上主要是分析驱动电路HD44780的功能。LCD1602的外形和引脚结构图3.4.1所示。 图3.4.1LCD1602的外形和结构引脚3.1.1LCM1602的接口信号说明如表4表4LCM1602的接口信号编号引脚符号功能说明编号引脚符号功能说明1VSS电源地1D2DATAI/O2VDD电源正极2D3DATAI/O3VL液晶显示偏压信号3D4DATAI/O4RS数据/命令选择端(H/L)4D5DATAI/O5R/W读/写选择端(H/L)5D6DATAI/O6E使能信号6D7DATAI/O7D0DATAI/O15BLA背光正极8D1DATAI/O16BLK背光负极2、基本操作时序如下:读状态RS=L,RW=HE=H写指令RS=L,RW=L,D0~D7=指令码E=高脉冲读数据RS=H,RW=HE=H写数据RS=H,RW=L,D0~D7=数据E=高脉冲3、初始化设置1)显示模式设置如表5:表5显示模式设置指令码功能0000111111000000设置16*2显示,5*7点阵,8位数据接口显示开/关及光标设置如表6:表6显示开/关及光标设置指令码功能0000000011DDCCBBD=1开显示;D=0关显示C=1显示光标;C=0不显示光标B=1光标闪烁;B=0光标不显示000000000011NNSSN=1当读或写一个字符后地址指针加1,且光标加1;N=0当读或写一个字符后地址指针减1,且光标减1;S=1当写一个字符,整屏显示左移(N=1)3.5按键模块本系统用到了5个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图3.5.1所示。图3.4独立按键硬件结构对以上4个按键作简要说明:S2为功能键,S3为移位键,S4为功能加键,S5为功能减键。开始键:当S2键按下时,此键功能为开始校准功能,屏幕显示日期、时间和温度。移位键:按下S3键进入时间校准状态,按一下进入年调整,两下进入月调整,依此类推可进行各年月日,时分秒以及星期的校准;功能加键:当S5键按下时,进行时间、日期(年、月、日、时、分、秒、星期)的加操作;功能减键:当S5键按下时,进行时间、日期(年、月、日、时、分、秒、星期)的减操作;

4软件设计硬件设备主要为提供各电路模块,而软件部分主要是温度、日期等模块的程序设计,最后设计再由LCD液晶显示屏显示出来。4.1主程序流程图设计主程序用于初始化系统的各部分,以及程序调用。主程序流程图如图所示:图4-2主程序流程图4.2程序设计4.2.1DS1302读写程序设计此系统将单片机与时钟芯片的连接作用来读取有效时间,时钟芯片DS1302根据SCLK端、I/O端、RST端,这三端的传输线与单片机连接,传输信号,具体连接图见系统硬件设计原理图。读取写程序设计如下:sbitclk=P1^3; //ds1302时钟线定义sbitio=P1^4; //数据线sbitrst=P1^5; //复位线 //秒分时日月年星期 ucharcodewrite_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a};//写地址ucharcoderead_add[]={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b};//读地址ucharcodeinit_ds[]={0x58,0x00,0x00,0x01,0x01,0x13,0x1};ucharmiao,fen,shi,ri,yue,week,nian;uchari;ucharfen1=0x11,shi1=0; //两个闹钟变量的定义bitopen1;/*************写一个数据到对应的地址里***************/voidwrite_ds1302(ucharadd,uchardat){ rst=1; //把复位线拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //时钟线拿低开始写数据 io=add&0x01; add>>=1; //把地址右移一位 clk=1; //时钟线拿高 } for(i=0;i<8;i++) { clk=0; //时钟线拿低开始写数据 io=dat&0x01; dat>>=1; //把数据右移一位 clk=1; //时钟线拿高 } rst=0; //复位线合低 clk=0; io=0;}/*************从对应的地址读一个数据出来***************/ucharread_ds1302(ucharadd){ ucharvalue,i; rst=1; //把复位线拿高 for(i=0;i<8;i++) { //低位在前 clk=0; //时钟线拿低开始写数据 io=add&0x01; add>>=1; //把地址右移一位 clk=1; //时钟线拿高 } for(i=0;i<8;i++) { clk=0; //时钟线拿低开始读数据 value>>=1; if(io==1) value|=0x80; clk=1; //时钟线拿高 } rst=0; //复位线合低 clk=0; io=0; returnvalue; //返回读出来的数据}/*************把要的时间年月日都读出来***************/voidread_time(){ miao=read_ds1302(read_add[0]); //读秒 fen=read_ds1302(read_add[1]); //读分 shi=read_ds1302(read_add[2]); //读时 ri=read_ds1302(read_add[3]); //读日 yue=read_ds1302(read_add[4]); //读月 nian=read_ds1302(read_add[5]); //读年 week=read_ds1302(read_add[6]); //读星期 Conversion(0,nian,yue,ri); //农历转换 n_nian=year_moon; n_yue=month_moon; n_ri=day_moon;}/*************把要写的时间年月日都写入ds1302里***************/voidwrite_time(){ write_ds1302(0x8e,0x00); //打开写保护 write_ds1302(write_add[0],miao); //写秒 write_ds1302(write_add[1],fen); //写分 write_ds1302(write_add[2],shi); //写时 write_ds1302(write_add[3],ri); //写日 write_ds1302(write_add[4],yue); //写月 write_ds1302(write_add[5],nian); //写星期 write_ds1302(write_add[6],week); //写年 write_ds1302(0x8e,0x80); //关闭写保护}/*************把数据保存到ds1302RAM中**0-31*************/voidwrite_ds1302ram(ucharadd,uchardat){ add<<=1;//地址是从第二位开始的 add&=0xfe;//把最低位清零是写的命令 add|=0xc0;//地址最高两位为1 write_ds1302(0x8e,0x00); write_ds1302(add,dat); write_ds1302(0x8e,0x80);}/*************把数据从ds1302RAM读出来**0-31*************/ucharread_ds1302ram(ucharadd){ add<<=1;//地址是从第二位开始的 add|=0x01;//把最高位置1是读命令 add|=0xc0;//地址最高两位为1 return(read_ds1302(add)); }/*************初始化ds1302时间***************/voidinit_ds1302(){ uchari; rst=0; //第一次读写数据时要把IO品拿低 clk=0; io=0; i=read_ds1302ram(30); if(i!=3) { i=3; write_ds1302ram(30,i); //40504100 3080 write_ds1302(0x8e,0x00); //打开写保护 for(i=0;i<7;i++) write_ds1302(write_add[i],init_ds[i]); //把最高位值0允许ds1302工作 write_ds1302(0x8e,0x80); //关写保护 }}4.2.2温度程序设计单总线上最基本的操作有初始化、写和读3种,所有其它的操作都由这3种基本操作组合而成,初始化用于对总线上的器件进行状态复位,写用于主节点向总线上写入一位数据,读用于主节点从总线上读取一位数据。在这3种操作中,只有写操作是单向的,初始化操作和读操作都是双向的。具体程序设计如下:byteow_reset(void){bytepresence;DQ=0;//拉低总线delay(29);//保持480usDQ=1;//释放总线delay(3);//等待回复presence=DQ;//读取信号delay(25);//等待结束信号return(presence);//返回0:正常1:不存在}//从1-wire总线上读取一个字节byteread_byte(void){bytei;bytevalue=0;for(i=8;i>0;i--){value>>=1;DQ=0;DQ=1;delay(1);if(DQ)value|=0x80;delay(6);}return(value);}//向1-WIRE总线上写一个字节voidwrite_byte(charval){bytei;for(i=8;i>0;i--)//一次写一位{DQ=0;//DQ=val&0x01;delay(5);//DQ=1;val=val/2;}delay(5);}

5系统调试硬件与软件所构成的整体,使整个系统可以按照设计要求运转,以下主要讲述了该系统的调试与实现问题。5.1总体实现本文设计多功能万年历系统,可在系统工作时读取LCD显示屏的时间、日期、温度,相较准确的显示出数值信息。根据五个独立按键功能,分别为功能键、移位键、加键、减键和复位键,可实现对日期、时间和温度的实时调控。本系统在通电后,初始化显示屏,软件程序烧录后,进行不断地调试和数据精准化后,各个模块相继工作,显示屏上显示出时间、日期、星期和温度信息。本电路供电电压为3-5V,在系统接通电源后,按下电路板开关,LCD显示屏便会亮,表示电路已处于接通状态,可正常的工作。系统的实物图为接通电源时如图5-1,接通电源后图5-2所示,第一行显示的是年、月、日、星期,第二行显示的是时、分、秒和温度。图5-1未通电实物图图5-2系统实物图5.2显示实现对于功能的实现,如图所示。如图5-3按键功能图5-4按键实物图S2键为开始,按下S2键后光标闪烁,首先年闪烁,等待修改,按下S3键选择需要修改的值,按照年、月、日、时、分、秒、星期的顺序循环选择。第一次修改年份,按下S4键(加按键)有效,年份的值加1,按下S5键(减按键)有效,年份数值减1,如图5-5所示。图5-5年份修改年份值修改完毕后,按下S3键进入修改月份值,对应光标闪烁,按下S4键(加按键)有效,月份的值加1,按下S5键(减按键)有效,月份的数值减1,如图5-6所示。图5-6月份修改月份值修改完毕后,按下K1键进入日调整程序,修改日值,对应光标闪烁,按下S4键(加按键)有效,日的值加1,按下S5键(减按键)有效,日的数值减1,如图5-7所示。图5-7日修改日的值修改完毕后,按下S3键进入小时调整程序,修改小时数值,对应光标闪烁,按下S4键(加按键)有效,小时的值加1,按下S5键(减按键)有效,日小时的数值减1,如图5-8所示。图5-8小时修改小时的值修改完毕后,按下S3键进入分钟调整程序,修改分钟的值,对应光标闪烁,按下S4键(加按键)有效,分钟的值加1,按下S5键(减按键)有效,分钟的数值减1,如图5-9所示。图5-9分钟修改分钟的值修改完毕后,按下S3键进入秒钟调整程序,修改秒钟的值,对应光标闪烁,按下S4键(加按键)有效,秒钟的值加1,按下S5键(减按键)有效,秒钟的数值减1,如图5-10所示。图5-10秒钟修改秒钟的值修改完毕后,按下S3键进入星期调整程序,修改星期的值,对应光标闪烁,按下S4键(加按键)有效,星期的值加1,按下S5键(减按键)有效,星期的数值减1,如图5-11所示。图5-11星期修改所有值修改完毕后释放S2键,跳出循环,进入自动计时状态。结语本文根据市场走访调查,在导师的帮助下最终确定了此次项目主体“基于单片机的多功能万年历系统设计”,在导师的帮助下现已完成此设计。最终的设计具有以下功能:1、可在LCD上显示年、月、日、时、分、秒、星期、温度。2、可通过独立按键对日期、时间、温度进行更改。对于本次所使用的芯片都是低功耗,使用率高的芯片,温度传感器DS18B20拥有单根总线传输功能,使用起来方便。时钟芯片DS1302也是高性能的时钟芯片,使用方便。通过一块AT89S52开发板来为系统进行调试,选择用Keil、STC等软件再加上自己搭建的外围电路、硬件电路和软件电路实现的。本设计具有良好的社会发展前景,可应用于多样化的场景中,但也有许多的进步空间,每一样设计都无止境,需多加创新。整个设计在阅资料,寻求帮助中已完满完成,这个过程中,充分的感受到了深深的满足感,不仅在专业知识上有了进步,也让我在动手能力和思维能力上有了极大的提升。独立完成本次

温馨提示

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

最新文档

评论

0/150

提交评论