单片机工程实践分析报告.doc_第1页
单片机工程实践分析报告.doc_第2页
单片机工程实践分析报告.doc_第3页
单片机工程实践分析报告.doc_第4页
单片机工程实践分析报告.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

单片机工程实践报告 作者: 日期:学校代码: 10128单片机工程实践(第五组)题 目:电子秒表组长:组员:指导教师:设计时间:2016年3月7日2016年3月18日内蒙古工业大学课程设计(论文)任务书课程名称:单片机系统综合设计与实践 学院: 信息工程学院 班级: 学生姓名: 学号: 指导教师: 、 学生姓名: 学号: 学生姓名: 学号: 一、题目 电子秒表2、 目的与意义 本课程为培养学生计算机应用能力的实践性课程,也是一门重要的专业技术课程。它将使学生不仅理论上掌握单片微型计算机的基本原理、单片机应用系统的构成、系统程序设计,进一步加强学生单片机应用系统软、硬件开发的能力,并能将电路、模拟电子技术、数字电子技术和微机原理等课程的知识有机地结合起来,做到学用结合。课程通过已实际应用的智能仪表为实训对象,其电路包含了单片机应用系统的基本部分,即:8 位单片机、A/D模数转换器、七段LED动态显示电路、RS-485串行通信及Watchdog 等接口电路,是一个理论与实践相结合的良好载体。课程采用项目组运作模式,使学生熟悉理论课程的相关知识,通过具体项目下线要求、验收方式等环节,充分发挥不同程度学生的学习积极性、创新精神及合作意识,培养学生的工程设计思想和科学研究能力,使学生在分析问题、解决问题和动手能力等方面有所提高,并了解工程项目设计实施的全过程,达到提高学生工程实践能力和素质的目标。 三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) 1、要求(1)题目任选。(重复性不可超过30%)(2)2-3人一组,自由组合。(3)分工明确,小组成员分配任务量合适。(4)实践完成后,每小组写一份综合设计报告。主要内容:题目、分工情况、系统可行性分析、系统结构设计说明、程序结构框图设计说明、各模块设计说明、程序清单、体会。2、设计过程要求(1)完成对所选任务的分析报告。(如:系统所需要完成的功能是什么,需要哪些硬件环境支持,小组成员分工、确定自己的设计思想)(2)完成硬件环境的检测程序。 蜂鸣器自检:确定蜂鸣器正确 参见【例7-4-4】 键盘自检: 确定键盘正确 参见【例7-4-14 】 LED 显示器自检:确定LED 显示器每一段均正确 参见【例7-4-16】(3) 完成系统的结构设计,画出任务流程框图。(4) 完成系统软件设计与调试。(5) 每组写一份综合设计报告3、设计理念必须始终保持和发展本课程突出的教学特点:内容综合、按工程项目实施、学生设计自由度较大、对学生的综合能力要求高、挑战性强。四、工作内容、进度安排 第一周:1、自由分组,选定任务,领硬件设备。(题目重复性不可超过30%) 2、完成对所选任务的分析报告。 (如:系统所需要完成的功能是什么,需要哪些硬件环境支持,小组 成员分工、确定自己的设计思想) 3、确定任务思路,完成硬件环境的检测程序。 蜂鸣器自检:确定蜂鸣器正确 参见【例7-4-4】 键盘自检: 确定键盘正确 参见【例7-4-14 】 LED 显示器自检:确定LED 显示器每一段均正确 参见【例7-4-16】 4、画出主任务程序框图 5、指导教师分阶段检查各小组进度,给出成绩。第二周:1、根据主任务程序框图,进行系统软件设计与调试 2、指导教师验收各小组成果 3、各小组交实践报告 4、交硬件设备5、 主要参考文献(三篇以上)1 刘守义等.单片机技术基础M.西安电子科技大学,2007.2 裴岩.刘利民.单片机系统综合设计与实践M.内蒙古大学出版社.20033 陈海宴.51单片机原理及应用M.北京:北京航空航天大学出版社.20104 胡汉才.单片机原理及接口技术M.北京:清华大学出版社.19965 李广弟等.单片机基础M.北京航空航天出版社,2001.6 钟富昭等.8051单片机典型模块设计与应用M.北京:人民邮电出版社.20077 李平等.单片机入门与开发M.北京:机械工业出版社.2008:33-37.8 高吉祥.全国大学生电子设计竞赛培训系列教程M.北京:电子工业出版社.2007审核意见系(教研室)主任(签字) 指导教师下达时间 2016 年 3 月 7 日 指导教师签字: 目录一、设计目的1二、设计任务分析11.题目:电子秒表12.任务可行性分析13.任务分工24.使用软件环境使用简介25.硬件自检报告2(1)蜂鸣器自检硬件编程框图及相关说明2(2)键盘自检硬件编程框图及相关说明4(3)LED自检硬件编程框图及相关说明8(4)电子秒表硬件编程框图以及相关说明12三、任务框图分析13四、程序清单13五、设计体会21六、参考资料23一、设计目的通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有蜂鸣器自检、七段LED 显示自检、键盘自检等接口电路的单片机应用系统的设计思想和方法。学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。二、设计任务分析1.题目:电子秒表2.任务可行性分析功能:(1)显示时间范围059分59秒(2)跑表时间范围059秒99毫秒电子秒表具有时钟显示和秒表计时功能,时钟显示时间范围为00分00秒至59分59秒,秒表计时范围为00秒00毫秒至59秒99毫秒。当显示时钟时,具有设置时间的功能。按一下K1键进入秒位的设置模式,此时按K2键可实现秒位加1,按K3键可实现秒位减1,使秒位在00至59范围内自由切换;按两下K1键进入分位的设置模式,此时按K2键可实现分位加1,按K3键可实现分位减1,使分位在00至59范围内自由切换,以此来实现对时钟显示时间的设置。时钟显示功能与秒表计时可以通过K4键实现功能切换(当处于时钟显示功能时,可以通过按K4键进入秒表功能;当处于秒表计时功能时,可以通过按K4键进入时钟显示功能)。当处于秒表计时时,不影响时钟的正常走时。当单片机运行在秒表计时功能时,可以通过按下K1键使得秒表开始计时,通过按下K2键使得秒表计时暂停(当秒表没有开始计时时,此时按下K2键无动作),通过按下K3键实现秒表的清零。硬件环境:LED显示器、键盘、蜂鸣器3.任务分工(组长):查资料,部分大任务程序流程图的绘制,各个小任务主程序的编制和框图的绘制,策划硬件如何实现具体功能。(副组长):完成大任务的主程序编制,各个小任务子程序的的编写与整理,部分大任务程序流程图的绘制,完成分配给的子程序的编制。(副组长):查资料,大任务的主程序流程图的绘制,各个小任务主程序的编制和框图的绘制,实验报告整理与排版。4.使用软件环境使用简介ARM发布Keil Vision4集成开发环境(IDE),用来在微控制器和智能卡设备上创建、仿真和调试嵌入式应用。Vision4 IDE是为增强开发人员的工作效率设计的,有了它可以更快速、更高效地开发和检验程序。通过Vision4 IDE中引入的灵活的窗口管理系统,开发人员可以使用多台监视器,在可视界面任何地方全面控制窗口放置。新用户界面可以更好地利用屏幕空间,更有效地组织多个窗口,为开发应用提供整齐高效的环境。5.硬件自检报告(1,硬件分析2,编程框图3,程序流程4,硬件自检报告)至少含有:蜂鸣器自检:确定蜂鸣器正确 参见【例7-4-4】 键盘自检: 确定键盘正确 参见【例7-4-14 】 LED 显示器自检:确定LED 显示器每一段均正确 参见【例7-4-16】(1)蜂鸣器自检硬件编程框图及相关说明硬件分析:通过电路图可知当P2.3口置1时蜂鸣器不工作,当P2.3口置0时蜂鸣器工作。AT89C51P2.3电路图:编程框图:程序流程:;* ;蜂鸣器自检;*BEEP: mov r2,#100movr3,#5000movr4,#65536ST1: CLR P2.3 ;200HZ LCALL DELAY1 SETB P2.3 LCALL DELAY1 CLR P2.3 djnz r2,ST1ST2: LCALL DELAY2 ;1kHZ SETB P2.3 LCALL DELAY2 CLR P2.3 djnz r3,ST2ST3: LCALL DELAY3 ;20kHZ SETB P2.3 LCALL DELAY3 CLR P2.3 djnz r4,ST3 JMP BEEPDELAY1: mov r0,#5 ;延时2.5msloop1: mov r1,#250loop2: djnz r1,loop2 djnz r0,loop1 retDELAY2: mov r0,#5 ;延时0.5msloop3: mov r1,#50loop4: djnz r1,loop4 djnz r0,loop3 retDELAY3: mov r0,#4 ;延时0.025msloop5: mov r1,#6loop6: djnz r1,loop6 djnz r0,loop5 ret硬件自检报告:执行程序,蜂鸣器发声,来检测蜂鸣器对设定频率的响应,来达到自检的目的。(2)键盘自检硬件编程框图及相关说明硬件分析:通过电路图可知通过P2.5,P2.6,P2.7控制Y7口控制74LC245的使能端,进而可以控制是否将键盘的状态送入单片机处理。P1P2.5P2.6P2.7LED蜂鸣器电路图:编程框图:程序流程:;* ;按键检测;*ORG 0000HAJMP KEYORG 30HKEY: ACALL SEL5 MOV R0,#80H MOV P0,R0 ;将负号的七段码送到P0口 ACALL TIME2 ACALL KEYIN ;读键 CPL A ;将采集的A取反 ANL A,#0FH ;将拨盘屏蔽 JZ KEY ;没有按键,跳回 ACALL TIME1 ;有按键,延时10ms,去抖动 ACALL KEYIN ;再按键 CPL A ;恢复有效键码 ANL A,#0FH JZ KEYL0:RRC A ; 判断是否为K1按下 JC KEY1 ; 有进位则K1按下,跳到KEY1L1:RRC A JC KEY2L2:RRC A JC KEY3L3:RRC A JC KEY4 ACALL KEYOFF AJMP KEYKEYIN:MOV P0,#0H ;关闭LED显示 ACALL SEL8 ;打开三态门 MOV P1,#0FFH ;设置P1口为输入口 MOV A,P1 ;采集键盘和拨盘的状态 ACALL SEL7 ;关闭三态门 RETTIME1:MOV R1,#5 ;延时10msLP1:MOV R2,#5LP2:DJNZ R2,LP2 DJNZ R1,LP1 RETTIME2:MOV R1,#1FH LP3:MOV R2,#25HLP4:DJNZ R2,LP4 DJNZ R1,LP3 RETKEY1:ACALL SEL1 ;位选最高位 MOV R0,#0CH MOV P0,R0 ;将1的七段码送到P0口 ACALL TIME2 SJMP L1KEY2:ACALL SEL2 MOV R0,#0B6H MOV P0,R0 ;将2的七段码送到P0口 ACALL TIME2 SJMP L2KEY3:ACALL SEL3 MOV R0,#9EH MOV P0,R0 ;将3的七段码送到P0口 ACALL TIME2 SJMP L3KEY4:ACALL SEL4 MOV R0,#0CCH MOV P0,R0 ;将4的七段码送到P0口 ACALL TIME2 SJMP L0SEL1:CLR P2.5 CLR P2.6 CLR P2.7 RETSEL2:CLR P2.5 CLR P2.6 SETB P2.7 RETSEL3:CLR P2.5 SETB P2.6 CLR P2.7 RETSEL4:CLR P2.5 SETB P2.6 SETB P2.7 RETSEL5:SETB P2.5 CLR P2.6 CLR P2.7 RET SEL7:SETB P2.5 SETB P2.6 CLR P2.7 RET SEL8:SETB P2.5 SETB P2.6 SETB P2.7 RET KEYOFF:ACALL KEYIN ORL A,#0F0H ;屏蔽拨盘 RET硬件自检报告:通过依次按键K1,K2,K3,K4让数码管的第一位,第二位,第三位,第四位分别显示数字1,2,3,4,按钮按下时对应的数码管显示相应的数,按钮松开时数码管停止显示,同时按下多个按钮时,数码管同时显示相应的数,以此来检测各个按键的工作情况,来达到自检的目的。(3)LED自检硬件编程框图及相关说明硬件分析:通过电路图可知七段数码管的位选是由单片机的P2.5,P2.6,P2.7口控制的74LS138控制的,而数码管要显示的码字由P0口提供。字型口字位口P0P2.7P2.6P2.5电路图:编程框图:程序流程:;* ;LED检测;*ORG 0000HAJMPMAINORG 30HMAIN:CLR P2.5;第一位数码管显示 CLR P2.6 CLR P2.7 ACALLDISP CLR P2.5;第二位数码管显示 CLR P2.6 SETBP2.7 ACALLDISP CLR P2.5;第三位数码管显示 SETBP2.6 CLRP2.7 ACALLDISP CLRP2.5;第四位数码管显示 SETBP2.6 SETBP2.7 ACALLDISP SETBP2.5;第五位数码管显示 CLR P2.6 CLR P2.7 ACALLDISP1 AJMPMAINDISP:MOVA, #7EH;显示数字0 MOVP0,A ACALLDELAYMOVA,#0CH ;显示数字1MVOP0,AACALLDELAYMOVA,#B6H ;显示数字2MVOP0,AACALLDELAYMOVA,#9EH ;显示数字3MVOP0,AACALLDELAYMOVA,#CCH ;显示数字4MVOP0,AACALLDELAYMOVA,#DAH ;显示数字5MVOP0,AACALLDELAYMOVA,#FAH ;显示数字6MVOP0,AACALLDELAYMOVA,#0EH ;显示数字7MVOP0,AACALLDELAYMOVA,#FEH ;显示数字8MVOP0,AACALLDELAYMOVA,#DEH;显示数字9MVOP0,AACALLDELAYMOVA,#6EH ;显示字母AMVOP0,AACALLDELAYMOVA,#FEH ;显示数字BMVOP0,AACALLDELAYMOVA,#72H ;显示数字CMVOP0,AACALLDELAYMOVA,#7EH ;显示数字DMVOP0,AACALLDELAYMOVA,#F2H ;显示数字EMVOP0,AACALLDELAYMOVA,#E2H ;显示数字FMVOP0,AACALLDELAYMOVA,#FFH ;全显示MVOP0,AACALLDELAYDISP1:MOVA, #0CH;显示数字1 MVOP0,A ACALLDELAY MOVA, #8CH;显示数字-1 MVOP0,A ACALLDELAYDELAY:MOVR6,#0FFHLOOP1:MOVR7,#0FFHLOOP2:DJNZR7,LOOP2 DJNZR6,LOOP1 MOV R6,#0FFHLOOP3:MOVR7,#0FFHLOOP4:DJNZR7,LOOP4 DJNZR6,LOOP3 RET硬件自检报告:LED显示器有共阴极和共阳极两种结构。该图结构为共阳极,且是动态扫描显示,COM端为高电平时,显示器工作,反相驱动器的功能是使LED稳定的亮。P0口控制LED显示字形即LED显示何种字形,P2.5、 P2.6 、P2.7是选择字位口即五位LED中哪位LED亮。通过程序让数码管的四位依次同时显示0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,最高位显示1和-1,来检测低四位数码管对各个码字的响应,来达到自检的目的。(4)电子秒表硬件编程框图以及相关说明 电子秒表具有时钟显示和秒表计时功能,时钟显示时间范围为00分00秒至59分59秒,秒表计时范围为00秒00毫秒至59秒99毫秒。当显示时钟时,具有设置时间的功能。按一下K1键进入秒位的设置模式,此时按K2键可实现秒位加1,按K3键可实现秒位减1,使秒位在00至59范围内自由切换;按两下K1键进入分位的设置模式,此时按K2键可实现分位加1,按K3键可实现分位减1,使分位在00至59范围内自由切换,以此来实现对时钟显示时间的设置。时钟显示功能与秒表计时可以通过K4键实现功能切换(当处于时钟显示功能时,可以通过按K4键进入秒表功能;当处于秒表计时功能时,可以通过按K4键进入时钟显示功能)。当处于秒表计时时,不影响时钟的正常走时,当处于时钟显示时,不影响秒表的计时。当单片机运行在秒表计时功能时,可以通过按下K1键使得秒表开始计时,通过按下K2键使得秒表计时暂停(当秒表没有开始计时时,此时按下K2键无动作),通过按下K3键实现秒表的清零。三、任务框图分析主程序框图、子程序框图及相关说明四、程序清单/*课设题目: 电子秒表实现功能:开机进入时钟,key1键按下1次调节秒,按下2次调节分,key2按下1次秒/分加1,key3按下1次秒/分减1;key4按下一次进入秒表等待,key1按下1次开始计时,key2下1次暂停计时,key3按下1次秒表清0;key4按下2次返回时钟;小组成员: 时 间: 2016年3月*/#include #define uchar unsigned char#define uint unsigned int#define N 8330#define M 41950sbit w1 = P25;sbit w2 = P26;sbit w3 = P27;sbit beep = P23;sbit key1 = P10;sbit key2 = P11;sbit key3 = P12;sbit key4 = P13;uchar code table = 0x7e,0x0c,0xb6,0x9e,0xcc, 0xda,0xfa,0x0e,0xfe,0xde; /数码管显示09 uchar count,count1; /变量定义int sec,min,sec1,min1; uchar a,b,c,d,e;void delay(uchar ms);/函数声明void display(uchar min,uchar sec);void di();void key_scan()/键盘扫描w1 = 1;w2 = 1;w3 = 1;if(key4 = 0)delay(5);if(key4 = 0)b+; while(!key4);di();if(b = 1) /功能键按下1次进入秒表if(TR1 = 0)TR1 = 0; /秒表定时器停止工作if (TR1 = 1)TR1 = 1; if(b = 2) /功能键按下2次返回时钟TR0 = 1; /功能键清零b = 0; if(b = 1)if(key1 = 0)delay(5);if(key1 = 0) /开始秒表TR1 = 1;di();while(!key1); if(key2 = 0)delay(5);if(key2 = 0) /秒表暂停TR1 = 0;di();while(!key2);if(key3 = 0)delay(5);if(key3 = 0) /秒表清零di();TR1 = 0;while(!key3);min1 = 0;sec1 = 0;w1 = 1;w2 = 0;w3 = 1;void key_scan1()/时钟状态下键盘扫描w1 = 1;w2 = 1;w3 = 1;if(key1 = 0)/定义key1为功能键delay(5);if(key1 = 0)/按下确认a+;while(!key1);di();/按键释放if(a = 1)/功能键第一次被按下TR0 = 0;/关闭定时器0,时钟停止工作if(a = 2) TR0 = 0;if(a = 3)a = 0;TR0 = 1;if(a != 0) /功能键按下开始调节if(key2 = 0)delay(5);if(key2 = 0)while(!key2);di();if(a = 1)/功能键第一次按下,按下key2键秒加1sec+;if(sec = 60) /秒加到60清零sec = 0;if(a = 2)min+;if(min = 60)min = 0;if(key3 = 0)delay(5);if(key3 = 0)while(!key3);di();if(a = 1)/功能键第一次按下,按下key3键秒减1sec-;if(sec = -1) /秒减到-1变为59sec = 59;if(a = 2)min-;if(min = -1)min = 59;w1 = 1;w2 = 0;w3 = 1;void di() /蜂鸣器发声函数beep = 0;delay(40);beep = 1;void delay(uchar ms) /延时1ms子程序 uchar i,j; for(i = ms; i 0; i-) for(j = 114; j 0; j-); void display(uchar min,uchar sec)/数码管显示子程序w1 = 0;/显示分高位w2 = 0;w3 = 1;P0 = tablemin/10;delay(15); w1 = 0;/显示分低位w2 = 1;w3 = 0;P0 = tablemin%10;P0 |= 0x01;delay(13);w1 = 0;/显示秒高位w2 = 1;w3 = 1;P0 = tablesec/10;delay(13);w1 = 1;/显示秒低位w2 = 0;w3 = 0;P0 = tablesec%10;delay(13);void display1(uchar sec)/数码管显示子程序w1 = 0;/显示秒高位w2 = 1;w3 = 1;P0 = tablesec/10;delay(13);w1 = 1;/显示秒低位w2 = 0;w3 = 0;P0 = tablesec%10;delay(13);void init()/初始化函数w1 = 1;/关闭数码管显示w2 = 0;w3 = 1;a = 0;b = 0;beep = 1; /蜂鸣器置高位不工作sec = 0;min = 0;sec1 = 0;min1 = 0;count = 0; /时钟计数count1 = 0; /秒表计数EA = 1; /开总中断ET0 = 1; /开定时器0中断TR0 = 1; /定时器0工作TMOD = 0X01; /定时器0工作方式1TH0 = (65536 - M)/256; /定时器0装入初值TL0 = (65536 - M)%256;ET1 = 1; /开定时器1中断TR1 = 0; /定时器1不工作TMOD |= 0X10; /定时器1工作方式1TH1 = (65536 - N)/256; /定时器1装入初值TL1 = (65536 - N)%256; void main() /主函数init(); /初始化while(1) key_scan(); /总键盘扫描if(b != 0) /进入秒表状态w1 = 0;w2 = 0;w3 = 0;P0 = 0x80;delay(15);display(min1,sec1);else /时钟状态key_scan1(); /时钟状态键盘扫描if(a = 1) /秒位调节display1(sec);/只显示秒位elsedisplay(min,sec);void timer0() interrupt 1/定时器0中断服务程序TH0 = (65536 - M)/256; /定时器再次装入初值TL0 = (65536 - M)%256;count+; /中断次数累加if(count = 20)/20次50ms为1scount = 0;sec+;if(sec = 60) /秒加到60进位分钟sec = 0; /秒清零min+;if(min = 60)min = 0;void timer1() interrupt 3/定时器1中断服务程序TH1 = (65536 - N)/256; /定时器再次装入初值TL1 = (65536 - N)%256;sec1+;/中断次数累加if(sec1 = 100)/100次10ms为1ssec1 = 0;min1+;if(min1 = 60)min1 = 0;五、设计体会组长(:作为5组组长,下面就让我来总结下我们组为期二周的实训情况并谈谈自己的实训感受。第一天的任务是蜂鸣器的自检,对蜂鸣器的硬件电路以及仿真器环境并不熟悉的我们刚开始听到这个任务真的有些手足无措,在经过老师的讲解后才开始有所领悟。然后我们组一起把蜂鸣器硬件结构以及电路图弄懂了,之后就该着手去完成任务了。作为组长,我首先把需要完成的任务按流程图的形式画在纸上,然后就是照着流程图编程,最后的程序让我们兴奋了许久。然而在验收的时候,老师说我们的程序不符合任务要求,因为我们对“二个以上的声音”理解错了。不过,老师对我们阐述的构思过程还是很赞同,编程之前必须弄懂硬件结构电路以及仿真器环境,然后绘制程序主框图。接下来的所有任务我们都是按照这一思想进行的,我做总的布局,绘制程序框图,子程序等交给组员完成。在这样的既有明确分工又同时密切合作的前提下,我们比较顺利的完成了此次实训交给的任务。然而,在这次实训中我们组也暴露出了一些问题值得我们今后在学习、生活和工作中注意,比如说对理论知识的掌握不扎实,逻辑思维比较混乱,理论应用到实践能力欠缺等。我一目前在三星公司工作的学姐,她进入公司首先就是为期一个月的单片机培训课程,可见单片机对我们工科生的重要性,这也给我提了个醒。总之,单片机实训是综合性很强的课程,培养了我们工程设计思想和科学研究能力,使我们在分析并解决问题、

温馨提示

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

评论

0/150

提交评论