基于51单片机电子锁设计毕业论文_第1页
基于51单片机电子锁设计毕业论文_第2页
基于51单片机电子锁设计毕业论文_第3页
基于51单片机电子锁设计毕业论文_第4页
基于51单片机电子锁设计毕业论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计课题:基于51单片机电子锁设计学生姓名:学号:专业:电子信息工程班级:院(系):机械与电子信息工程学院指导教师:职称:二○年月日毕业设计真实性承诺及指导教师声明学生毕业设计真实性承诺本人郑重声明:所提交的毕业设计是本人在指导教师的指导下,独立进行研究工作所取得的成果,内容真实可靠,不存在抄袭、造假等学术不端行为。除文中已经注明引用的内容外,本设计不含其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。如被发现设计中存在抄袭、造假等学术不端行为,本人愿承担相应的法律责任和一切后果。学生(签名):颜强日期:指导教师关于学生毕业设计真实性审核的声明本人郑重声明:已经对学生毕业设计所涉及的内容进行严格审核,确定其成果均由学生在本人指导下取得,对他人论文及成果的引用已经明确注明,不存在抄袭等学术不端行为。指导教师(签名):日期:注:此声明由指导教师和学生本人亲笔签名。目录摘要………………2第一章方案论证与选择………31.1驱动模块………………31.2黑线检测模块……………41.3码盘测距模块……………41.4金属检测模块……………51.5光源追踪检测模块………51.6超声波模块……………51.7声光提示模块……………61.8.系统供电单元电路……………………6第二章系统理论分析与计算…………………72.1总体设计方案…………72.2电机PWM驱动模块的设计与实现……72.3单片机控制电路………82.4测距模块设计…………92.5黑线循迹电路设计……………………102.6光源检测电路的设计…………………11第三章软件设计………………123.1系统流程图……………133.2软件程序设计部分源程序……………14第四章系统测试………………204.1硬件调试……………20第五章结论…………………21参考文献………………………22附录……………23附录1……………23附录2……………23附录3……………23简易智能电动车摘要本电路系统分为检测、控制、驱动三个模块。首先利用红外传感器对地面信号进行检测,然后送给控制模块进行实时控制,输出相应信号给驱动电机控制小车的运动。该系统以STC12C5A60S2为主控核心,运用AD转换将光敏二极管采集的信号转换为模拟值进行控制,并且采用LCD12864显示和语音播报,系统测试性能优异、稳定。关键词:PWM红外检测码盘超声波STC12C5A60S2光源追踪声光提示模块金属检测AbstractThiscircuitsystemisdividedintotestandcontrol,drivethreemodules.First,theinfraredsensortothegroundsignaldetection,Thensenttocontrolmoduleforreal-timecontrol,Theoutputsignalcorrespondingtothedrivemotorcontrolthemovementofthecar.ThissystemtoSTC12C5A60S2formastercore.UsingtheADconversionwillphotosensitivediodeacquisitionsignalsareconvertedtoanalogvaluetocontrol.AndusingLCD12864displayandvoicebroadcast.Keywords:PWMInfrareddetectionCodediscUltrasonicSTC12C5A60S2LightsourcetrackingAcousto-opticpromptmoduleMetaldetection一:方案论证与选择根据赛题要求的功能及指标,我们将整个系统划分为七个基本模块,如图1-1所示。为了使各个模块具有较好的性能,分别提出以下不同设计方案:MCUMCU声光提示模块黑线检测模块驱动模块码盘测距模块金属检测模块超声波模块光源追踪模块图1-11.1驱动模块H桥驱动电路方案一:采用L298N直流电机驱动模块,一个芯片里面就集成了2路的H桥电路,还带PWM控制和电流采集。通过单片机可以精确调整电动机的转速,达到对电机速度的控制。这个方案的优点是控制比较简单、购买方便。方案二:采用数控电位器X9313集合NE555多谐振荡器输出PWM信号。通过单片机控制数控电位器来调整NE555多谐振荡器的输出方波的占空比,达到对电机速度的控制。这个方案的优点是控制比较方便、软件资源消耗少。方案一中芯片简单便于控制,控制精度高。操作简单。方案二的硬件电路较为复杂,且驱动能力不及方案一,功耗大。综合考虑两种方案的优缺点,我们选择方案一实现本系统。1.2黑线检测模块图3.3黑线检测模块方案一:使用发光二极管和光敏二极管。此方案缺点在于环境的其他光源对光敏二极管的工作产生很大的干扰,一旦外界光强改变,很可能造成误判和漏判,即使采用超高亮发光管可以降低一定的干扰,但这又增加额外的功耗。 方案二:反射式红外发射—接收管。此方案可以降低可见光的干扰,灵敏度高,同时其尺寸小、质量轻、价格也低廉。外围电路简单,安装起来方便,电源要求不高,用它作为近距离传感器是最理想的。方案三:利用激光。此方案虽然抗干扰性强、可靠性高,但其缺点在于体积大、功耗大、价格高。一般用在要求场合非常高的场合,本系统采用方案二已经能够胜任,无须采用此方案。1.3码盘测距模块方案一:采用霍尔器件。该器件内部由三片霍尔金属板组成,当磁钢正对金属片时,由于霍尔效应,金属板发生横向导通,因此可在电机轴上安装固定有磁片的圆片,而将霍尔器件固定在距圆片上方1cm3的范围,通过对脉冲的记数实现对速度的检测。方案二:采用码盘。由于该器件是沟槽结构,可以将其置于固定轴上,再在电机轴上安装圆片,均匀地固定多个遮光片,让其恰好通过沟槽,产生一个个脉冲。通过脉冲的计数实现对速度的检测。两种方案都是可行性的转速检测方案。由于霍尔元件互换性差,信号随温度变化,非线性输出,而且采用码盘较容易获取较为精确的数值。故采用方案二。1.4金属检测模块该系统采用LJ183A-8-Z/BX。它由振荡器和整形放大器组成振荡器起振后在开关的感应头上产生一个交变的磁场,当金属体接近感应区时,在金属体内产生了涡流,从而吸收了振荡的能量,使振荡幅度减弱以至于停振使接近开关达到反转的目的,由整形放大器换成二进制的开关电信号,从而达到检测的目的。它无接触、无压力、无火花,迅速地发出检测信号,而且灵敏度高,频率响应快,重复定位精度高,舜变过程短,输出功率大,抗干扰性能好,工作稳定性可靠,使用寿命长等优点。1.5光源追踪检测模块方案一:光敏电阻器又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换。方案二:利用光敏二极管对光源变换的敏感反映,检测外部光源。当有光照射时,光敏二极管呈强电阻,经比较器输出一个高电平,反之则输出低电平。我们可以再外接一个LED作为检测指示灯,则可以明显观察到这个变化。即有光照时LED亮,无时则灭。由于光敏电阻检测范围太广,而本系统有三个光敏器件,分别在不同方向检测光源信号。而方案一检测范围太大,不利于三个器件分别检测。方案二检测方便,感应灵敏。故选择方案二。1.6超声波模块本系统采用了HC-SR04超声波测距模块,该模块可以提供2cm-400cm的非接触式距离感测功能,测距精度高达3mm;并且该模块包含了超声波发射器、接收器和控制电路。本模块使用方法简单,一个控制口发射一个10us以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,即可以达到你移动测量的值。7.声光提示模块图4.4蜂鸣器本系统采用了蜂鸣器和发光二极管作为声光提示。本实验共有3种模式。在各个模式下分别要处理不同的情况。例如在模式一下检测到金属时,声光模块中蜂鸣器会持续鸣叫5s钟,发光二极管也会不停地闪烁5s钟。1.8系统供电单元电路智能车控制系统中,芯片需要提供5V的工作电压,而电机所需的电压为12V,本设计中用到的是12V的电源供电,然后通过三端稳压器LM7805将电压变换为5V电压供给电路系统。电源系统的电路图如图5.5所示。图5.5稳压电源提供电路二:系统理论分析与计算2.1总体设计方案智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制两个轮子的转速从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将四个红外线光电传感器装在车体的底盘前端和底盘中间,小车根据传感器检测到的情况执行。避障的原理是在车头装一个超声波传感器,通过软件可以设置检测的距离,当传感器检测到有障碍物时,小车做出相应的反应。小车距离的检测利用的是红外线,速度检测的传感器用的是对射式,把码盘装在电机的轴上,码盘随电机一起转动。通过测定码盘在一定周期内转过的圈数和相应的参数,可以获取实际的路程值。电机控制要使用PWM波形,而AT12C5A60S2单片机本身就能产生PWM,所以通过定时器设定频率,通过软件调节PWM。整体原理图如下图2-1整体原理电路图2.2电机PWM驱动模块的设计与实现由于本实验采用的是STC12C5A60S2芯片,内部就含有pwm调制,而本实验用到的电机驱动的所需的pwm信号就是由该芯片产生的。首先,电机的控制采用脉冲宽度调制技术(PWM),单片机输出一个频率不变的方波,利用调制它的脉宽来改变电机转动的速度,其输出电压就是方波的平均值,当输出为低电平时,电机停转,当输出高电平时,电机最高速。利用定时器1的外部中断才生3.2khz的方波频率。如图2.2,该图为L298N电机驱动图,当INT1、INT3为高电平时,INT2、INT4为低电平时,左边电机和右边电机均正转,反之,反转。ENA、ENB分别为左右电机的使能端,高电平时电机工作。此外,ENA、ENB由单片机pwm输出P1.3、P1.4构成的。图2.2电机驱动电路2.3单片机控制电路单片机是控制单元的核心。起着控制小车所有运行状态的作用。单片机控制模块使用的是宏晶科技公司生产的STC12C5A60S2,使用该芯片很容易实现对其他模块的控制。通过对单片机写入程序,可以方便的用软件来控制整个过程.控制部分如图2-3所示。STC12C5A60S2单片机介绍:STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。片上集成了1280字节RAM,有EEPROM功能,看门狗定时器,内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。其引脚排列如图2-4所示图2-3片机最小控制系统图2-4STC12C5A60S2的引脚图2.4测距模块设计图2-5测距码盘示例图通过开启一个外部中断,用于记录转速传感器发出的n个脉冲,我们首先记录了车轮转动一圈传感器发出的脉冲m个,码盘共有6个格。车轮的直径为d。由此可计算出每检测到一个格所走的距离s。2.5黑线循迹电路设计该智能小车在铺有约两厘米宽黑纸的路面行驶,路面可看作白色。由于黑纸和白色路面对光线的反射系数不同,可以根据接收的反射光的强弱来判断道路——黑纸轨迹。本设计利用红外线在不同颜色的物表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外线遇到白色地面时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑纸则红外光被吸收,小车上的接收管接收不到信号。考虑到集成红外探测头体积小、简便易用,性能可靠。所以本设计选择了反射式红外线光电传感器作为红外光的发射和接受器件,一般检测距离可达4~10cm,其内部结构和外接电路均较为简单.鉴于小车底部聚地面的距离不超过五厘米,故用红外光电传感器足以满足要求。其内部结构和外接电路均较为简单,检测电路如图4所示。图2-6黑线检测电路2.6光源检测电路的设计光源检测使用常见的光敏器件,光敏二极管。光敏电阻器(photovaristor)又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。这里我们就可以利用光敏二极管对光源变换的敏感反映,检测外部光源。当有光照射时,光敏二极管呈强电阻,经比较器输出一个高电平,反之则输出低电平。我们可以再外接一个LED作为检测指示灯,则可以明显观察到这个变化。即有光照时LED亮,无时则灭。光源小车光源小车图2-7光源检测电路图2-8光敏二极管排布三:软件设计3.1系统控制流程启动初始化程序I/O口启动初始化程序I/O口扫描I/O是否有变化是进入程序判断,输出相应信号控制电机否终止开始单片机初始化检测有无黑线YN终止前进方向调整检测有无金属Y计数N避障检测光源检测图3-1控制系统的流程图

是采集寻迹模块数据是采集寻迹模块数据左侧压线保持原有转速前进结束右转采集光敏传感器信号开始右侧压线都不压线左转寻线模块是

开始判断光源位置无光源有光源前进左转右转结束前

图3-2寻迹模块图3-3光源追踪模块3.2软件程序设计部分源程序本程序以c语言的形式编辑,结合硬件实现小车整个系统功能。小车以自动寻迹为主体,不断检测黑线信号,实时进行调整,并且加入了超声波避障模块。此程序主要以查询方式实现,同时也结合了语音控制的中断方式,主体程序如下:/****03年的赛题,车子需要装有三个黑线传感器,两个光源传感器,一个金属探测传感器****//****首先现在直线区进行直线运动,在经过2.3m后开始沿黑线进行弯道行走****//****其要求做到可产生声光信号,通过led小灯与扬声器完成****//****运动区域现今分为直线区0、弯道区1、障碍区2、光源区3****/#include<STC12C5A.h>#include<stdio.h>#include"PWM.h"#include"JN12864.h"#include"metal_detect.h"#include"motoruse.h"#include"ultrasonic.h"#include"AD.h"#defineucharunsignedchar#defineuintunsignedintsbitinfrared=P3^2;/************各类计数变量************/ucharnumber=0;//用于记录薄铁片的数量bitj;charstatus=0;uintcounter; //与计时相关ucharDIS1[16]; //用于显示的变量floattime,Venue,location[3]; //时间,距离,位置bitabc;floatrsl,rsm,rsr;//voidmotor(ucharindex,intspeed);voidcompare(){if(rsl<rsm&&rsl<rsr) //左轮的光感最强 { motor(1,70);motor(2,248); }if(rsm<rsl&&rsm<rsr) //中轮的光感最强 { motor(1,256);motor(2,248); }if(rsr<rsm&&rsr<rsl) //右轮的光感最强 { motor(1,256);motor(2,70); }if(rsl<1.0||rsm<1.0||rsr<1.0) { CR=0; CCAPM0=CCAPM1=0; en1=0; en2=0;while(1){EA=0;} } }/*************************初始化函数***************************/voidinitial(){ EX0=1; ET1=1; IT0=1; EA=1;//用于启动外部中断 TMOD|=0x12;//八位自动重装的 TH0=0xff; //产生的中断频率TR0=1;TR1=1; PWM_clock(2);//PCA/PWM时钟源为定时器0的溢出 TH1=(65536-50000)/256; TL1=(65536-50000)%256; EX1=1;IT1=1;}/****************90S显示函数**************/voidfinally(){ if(time>=90) { lcd_wcmd(0x34);//扩充指令操作 delayult(5); lcd_wcmd(0x30);//基本指令操作 delayult(5); lcd_wcmd(0x01);//清屏 delayult(5); while(1) { s1=s3=0;EA=0; sprintf(DIS1,"Timer:%5.2fs",time);LCD_PutString(0,1,DIS1); sprintf(DIS1,"N=%d",(uint)number);LCD_PutString(6,1,DIS1); if(location[0]!=0){sprintf(DIS1,"%5.4f",location[0]);LCD_PutString(0,2,DIS1);} if(location[1]!=0){sprintf(DIS1,"%5.4f",location[1]);LCD_PutString(0,3,DIS1);} if(location[2]!=0){sprintf(DIS1,"%5.4f",location[2]);LCD_PutString(0,4,DIS1);} } }}/**************************主函数***************************/voidmain(){bitj=0;bitk=0;bitp=0;biti=0;bitq=0;floattimestore=300;initial();lcd_init();ADinitial();while(1){distances();sprintf(DIS1,"Timer:%6.3fs",time); //显示小车跑过的时间 LCD_PutString(0,1,DIS1); sprintf(DIS1,"N=%d",(uint)number); LCD_PutString(6,1,DIS1); sprintf(DIS1,"Venue:%6.3fm",Venue); LCD_PutString(0,2,DIS1); sprintf(DIS1,"S=%d",(uint)status); LCD_PutString(6,2,DIS1); Metal_Detec(); rsl=get_AD_result(0); rsm=get_AD_result(1); rsr=get_AD_result(2); sprintf(DIS1,"S=%3.1f",rsl); LCD_PutString(0,3,DIS1); sprintf(DIS1,"S=%3.1f",rsm); LCD_PutString(0,4,DIS1); sprintf(DIS1,"S=%3.1f",rsr); LCD_PutString(4,4,DIS1); switch(status) { case0://直线区:依赖黑线与三个黑线传感器行走2.3m { speaker=1;led=1; external_interrupt(256,240,220,220); //直线区代码保持不变,直线效果不错 break; } case1://转弯区:进行转弯,待检测到金属的存在后进行5S的停车 { CR=0; CCAPM0=CCAPM1=0; if(i==0){CR=0;CCAPM0=CCAPM1=0;external_interrupt(98,195,98,195);} if(Metal_Detec()==1&&i==0) { CR=0; CCAPM0=CCAPM1=0; en1=0; en2=0; timestore=time;i=1; } if(i==1&&((time)<=(timestore+5.0))){led=!led;speaker=!speaker;} if((time)>(timestore+5.0)) { CR=0; CCAPM0=CCAPM1=0;motor(1,256);motor(2,248); timestore=0; status=2;i=0;j=0;speaker=1; } break; } case2://障碍区 //初步构想先通过超声波检测,走到离障碍物0.1m处,而后90度转,再直线行走,之后通过红外避障来判定障碍物是否存在,当判定不存在时,再转 //难度:90度直线的实现 { speaker=1;motor(1,256);motor(2,247); //这个是在无黑线修正情况下的直线 if(distances()<35&&i==0) //遇障转弯 { CR=0;CCAPM0=CCAPM1=0;en1=0;motor(2,256); delay(3800); //实现角度的90度变化 CR=0;CCAPM0=CCAPM1=0;en1=en2=0; i=1;j=1; timestore=Venue; } if((Venue>=(timestore+0.35))&&j==1) //直行点四 //if(infrared==1&&j==1) //红外检测到是低电平 { timestore=0; CR=0;CCAPM0=CCAPM1=0;en2=en1=0;motor(1,256);motor(2,5); delay(3400); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; j=0;k=1; led=1;speaker=0; timestore=Venue; } //而后前行0.8m,之后停。 if((Venue>timestore+0.8)&&k==1) { timestore=0; CR=0;CCAPM0=CCAPM1=0;en2=en1=0;motor(1,256);motor(2,5); delay(3350); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; k=0;p=1; led=1;speaker=1; } if(rsl>3.9&&p==1) { CR=0;CCAPM0=CCAPM1=0;en1=0;motor(2,256); delay(3300); //实现角度的90度变化 CR=0;CCAPM0=CCAPM1=0;en1=en2=0; p=0;q=1; } //而后就进入了光敏引导区 if(q==1)compare(); /* if(distances()<35&&k==1) { CR=0;CCAPM0=CCAPM1=0;en2=0;motor(1,256); delay(3200); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; k=1;p=1; } if(infrared==1&&p==1) { CR=0;CCAPM0=CCAPM1=0;en2=0;motor(1,256); delay(3200); CR=0;CCAPM0=CCAPM1=0;en1=en2=0; p=0; } */ break; } } finally();// compare();}}/*********************中断函数************************/voidPCA_Interrpt(void)interrupt7 { if(CCF0)CCF0=0; if(CCF1)CCF1=0;//软件清零 if(CF)CF=0;//软件清零}/*****************外部中断(留着以后备用)******************/voidwtimer0()interrupt2//用于测距{ Venue=Venue+0.000358;//0.01/30*0.807018*3.4/2.2*198/230; if(Venue>=2.3&&abc==0){status=1;abc=1;} }voidtimer1()interrupt3 //用于计时{ TH1=(65536-50000)/256; TL1=(65536-50000)%256; counter++; time=0.05*counter;}四.系统测试4.1硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。1.电机控制此模块调试实现的功能是结合软件共同实现,当连接单片机与电机控制芯片的I/0加上一定的电平可以实现电机左右转向,前后转向以及停止等功能,同时通过程序延时降低电机转速。如表5-1为电机测试记录。表4-1电机测试记录P1.5P2.6小车行驶状态11小车向前行驶10小车向前左转01小车向前右转00小车不转光源追踪调试光源追踪是该系统最后的阶段,在光源的引导下,小车会追随光源的移而移动小车的光敏二极管接收一定的光照,并将数据返回给单片机,本实验用到了单片机内置的A/D转换,将光源的能量转换模拟值,通过转换光强以后,到达一定光强(即小车非常接近光源后)单片机便会发出指令,让小车停止。表4-2光源强度检测测试次数第1次第2次第3次第4次第5次第6次放置距离30cm25cm20cm15cm10cm5cm左侧光照值右侧光照值中间光照值

由于在测量之前,我们已经知道我们所需要的测量距离,根据本实验要求和自身小车限制,我们所需的测量值为20cm。表4-2超声波距离控制测试次数第1次第2次第3次第4次第5次第6次软件预设值对应测量值与所需值之差五.结论各模块都调试通过之后,将各个模块连接起来与硬件结合进行联合调试。在进行联合调试时,经过反复的实验,不断的来修改参数来完善结果。使程序按照要求设计的要求进行。参考文献:[1]李建忠.单片机原理及应用[M].西安:西安科技大学出版社,2002,2.[2]赵负图.光电检测控制电路手册[M].北京:化学工业出版社,2001,1.[3]赵广林.轻松跟我学Protel99SE电路设计与制版[M].北京:电子工业出版社,2005,2.[4]王东锋、董冠强.单片机C语言应用100例[M].北京:电子工业出版社,2009,3.[5]陈继荣.智能电子制作创新制作——机器人制作入门[M].北京:科学出版社,2007,10.[6]夏美云,张鸿彦.人工智能发展探讨[J].焦作大学学报,2005年4期,49~66.[7]张金.电子设计与制作100例[M].北京,2009,10.[8]王晓明.电动机的单片机控制[J].学术期刊,2002,13(15):1322-1755.

附录:附1:元器件明细表:STC12C5A60S2LCD12864LJ18A3-8-7JBXL298NHC-SR04附2:使用的仪器设备及软件数字万用表稳压电源数字示波器电烙铁画图制板软件编译软件烧写器附3:部分功能代码/*用于STC12C5A的内置AD转换*/#include"AD.h"#defineucharunsignedchar#defineuintunsignedintfloatget_AD_result(ucharchannel){ inti; uintmyRS; ucharmyRSL; floatanswer

温馨提示

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

评论

0/150

提交评论