电子设计竞赛《实用多功能万年历》_第1页
电子设计竞赛《实用多功能万年历》_第2页
电子设计竞赛《实用多功能万年历》_第3页
电子设计竞赛《实用多功能万年历》_第4页
电子设计竞赛《实用多功能万年历》_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第二届电子设计竞赛

设计题目《多功能电子万年历》

作品编号:

目录

摘要.............................................2

第一部分:绪论...................................4

第二部分:设计方案原理与理论分析计算..............5

第三部分:硬件设计..................................8

第四部分:软件设计..................................11

第五部分:系统的设计与分析.........................14

第六部分:结论......................................15

第七部分:【附录一】作品外图........................17

【附录二】程序源代码....................18

多功能电子万年历

摘要

“一寸光阴一寸金,寸金难买寸光阴”!时间对于我们每一个

人都是非常宝贵的,所以钟表作为人们掌握时间的工具就显

得十分重要!

钟表的出现已经有几百年历史,尤其是摆钟和后来的怀表,

2

可以称作钟表中的经典,不仅大方实用,而且制作精美。但

近几十年,由于微电子的迅猛发展,这样的钟表已经销声匿

迹,取而代之的则是电子时钟。随着社会的发展,人们的消

费水平不断的提高,对生活的要求也越来越高,而电子时钟

不仅精确度更高、外观小巧、功能更加强大更加完善,制作

成本也是非常低。

由于单片机体积小、价格低、可靠性高、适用面广、有其本

身的指令系统等诸多优势,在各个领域得到广泛应用,所

以用单片机控制的电子时钟完全具备时钟的各种功能,硬件

组成非常精简,只需要进行软件的编写,就能够实现我们需

要的功能。

本设计利用STC89c52RC计数器产生时间,并进行处理,辅

以必要的外围电路,用C语言编写程序,并进行模块化设计

而成的的电子万年历。它能显示阳历年,月,日,星期,小

时,分,秒;具有定时报警功能,能够进行整点和半点语音

报时;能用按键调整时间。

关键词:万年历,LCD显示,STC89C52RC,定时报警

Abstract

“Aninchoftimeaninchofgold,gold-inchDifficulttobuy

time"!Timeforeveryoneofusisveryvaluable,sopeople

havetimetowatchasitisaveryimportanttool!

Theemergenceofwatcheshavebeenafewhundredyearsof

history,especiallythependulumclockandwatchlater,can

3

becalledclassicwatches,generousnotonlypractical,but

beautifullyproduced.However,inrecentdecades,duetothe

rapid,developmentofmicroelectronics,suchwatcheshave

disappeared,replacedbytheelectronicclock.Withthe

developmentofsociety,people1sconsumptionlevelofthe

increaseinthedemandsoflifehavebecomemoresophisticated,

andtheelectronicclockisnotonlyahigheraccuracy,the

appearanceofcompact,morepowerfulevenmoreperfect,the

productioncostisverylow.

Single-chipmicrocomputerasaresultofsmallsize,lowcost,

highreliabilityforawiderange,hasitsowncommandsystem

andmanyotheradvantages,arewidelyusedinvariousfields,

soMCUclockelectronicclockwithavarietyofcompletely

features,hardwarecomponentsareverylean,onlytheneed

forsoftwaredevelopment,willbeabletoachievethe

functionalityweneed.

STC89C52RCcountertheuseofthisdesignhaveatimeanddeal

withthenecessaryperipheralcircuits,usingCprogramming

language,andfromthemodulardesignoftheelectronic

calendar.Itshowsthatthesolarcalendaryear,month,day,

weeks,hours,minutesandseconds;withregularpolice

functions,tocarryoutthewholetimeandasinglevoice;

keyscanbeusedtoadjustthetime.

Keywords:calendar,LCDdisplay,STC89C52RCZregularalarm

第一部分绪论

第二部分设计方案原理与理论分析计算

1.方案论证及比较

1.1.方案论证

根据题目要求,我们对系统方案进行多方面的分析和比较,一般来讲可以采用以

下几种方案进行系统设计:

1.1.1.方案一

设计系统由主控模块、时钟模块、显示模块、键盘接口模

4

块共4个模块组成。主控模块用STC89c52RC做处理器,时钟

模块采用DS1302获取时间,显示模块用12864LCD液晶显

示,键盘接口模块用直接编码输入。

1.1.2方案二

本设计利用STC89C52RC计数器定时产生时间,并进行处理,然后

把时钟信息传输到1602LCD液晶屏进行显示;键盘接口模块采用

直接编码输入;当系统时间与预设的报警时间相同时,蜂鸣器

发出响声进行报警提示。

1.1.3方案三:

采用89c51芯片作为硬件核心,采用FlashROM,内部具有

4KBROM存储空间,能于3V的超低压工作,而且与MCS-51

系列单片机完全兼容,但是运用于电路设计中时由于不具备

ISP在线编程技术,当在对电路进行调试时、由于程序的错误

修改或对程序的新增功能需要烧入程序时,对芯片的多次拔

插会对芯片造成一定的损坏。

1.2方案比较与选择

比较以上方案,很明显:

方案一:用时钟芯片DS1302获取的时间较为精确,而且支

持断电计时;采用12864LCD显示模块,显示量大,但价格

较「司;

方案二:用STC89c52RC的计数器定时产生时间,充分利用单片机

5

的资源,且其自动重装初值定时方式能达到ms级误差,能满足需求,

不必用DS1302。1602LCD显示量少,但成本低,设计简单。

基于以上两种方案的比较,我们选择方案二。

2实现原理

单片机STC89C52RC的定时/计数器每1s产生一次中断,每产生一

次中断,秒计数单元加一,当秒计数单元大于或等于60时,秒计

数单元清零,分计数单元加一,当分计数单元大于或等于60时,

分计数单元清零,时计数单元加一,当时计数单元大于或等于24

时,时计数单元清零,如此循环来产生时间。

3.理论分析计算

3.1星期计算方法

星期天数可由年月日来计算,计算公式为

Weekday=(日+2*月+3*(月+1)/5+年+年/4-年/100+年/400)%7

4.功能与指标

4.1功能

4.1.1LCD显示

显示阳历年、月、日、星期、小时、分、秒、报警次序、

6

定时报警时间;

4.1.2定时报警

当时间到达所设置的报警设定值时,蜂鸣器发出响声,按

SOUNDER(STOP)键终止响声

4.1.3调时

按模式键MODE进入调时功能,按PLUS键是加1,按DEC

是减1。

4.2指标

工作电压:5V

工作频率:12MHz

液晶显示:160*2像素LCD显示

第三部分硬件设计

1.1.硬件系统分析

1.1.系统原理框图

系统原理框图如图3所示:

系统原理框图3

1.2:单片机主控电路如下图所示

8

2.模块功能与实现

设计系统以STC89c52RC为核心,外接晶振电路、显示模

块、定时报警模块、键盘接口模块组成。

2.1STC89C52RC

STC89c52RC是深圳宏晶公司的产品,它是一个低功耗,高性能CMOS8

位单片机,片内含8KBytesISP的可反复擦写100000次的Flash只读程序存储器,

器件采用SST公司的高密度、非易失性存储技术,兼容标准MCS-51指令系统及

80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,其具

有如下特点:40个引脚,8KBytesFlash片内程序存储器,256bytes的随机存

取数据存储器,32个外部双向输入/输出口,5个中断优先级2层中断嵌套中断,2

个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。

单片机引脚如下图所示:

9

4

X10

T2/P1.0Cfo39□Vcc

T2EX/P1.1Cc33PO.0/ADO

OC8

Pl.2C37□PO.1/AD1

Pl.3C36□PO.2/AD2

uc

Pl.4C35□PO.3/AD3

M0SI/P1.5匚3□PO.4/AD4

*f4

XIS0/P1.6C—33□PO.5/AD5

0

SCK/P1.7C32□PO.6/AD6

RSTC31□PO.7/AD7

xi0

BXD/P3.0C30□EAZVPP

*11

TXD/P3.1C29□ALE/PROG

x12

IHT0/P3.2C328□PESN

x1

INT1/P3.3C427□P2.7/A15

A1

T0/P3.4C526□P2.6/A14

X1

T1/P3-5C625□P2.5/A13

X1

面/P3.6C1724□P2.4/Al2

RD/P3.7C*8233P2.3/AU

A1

XTAL2C1322□P2.2ZA10

XTAL1CA021□P2.1/A3

to

PDIPGNBC□P2.0/A8

STC89C52RC引脚图

2.2.LCD显示

该模块采用的1602LCD是一种具有并行、串行多种接口方式的字

符点阵液晶显示器,液晶模块内部的字符发生存储器(CGROM)

已经存储了160个不同的点阵字符图形,能够同时显示16x02

即32个字符。(16列2行),它通过D0〜D7的8位数据端传

输数据和指令。

2.3.定时报警

定时报警用蜂鸣器播放曲谱,曲谱包括广7七个音符,通过

程序来控制音符的播放效果

2.4.键盘接口

键盘接口电路由四个按键组成,分别是模式键MODE,加一

键PLUS,减一键DEC,停止键STOP,用查询法完成读键功能

IO

第四部分软件设计

1.软件系统分析

STC89c52RC单片机及其开发应用系统具有语言简洁、可移植性好、表达

能力强、实现方式灵活等特点,可以进行结构化设计,也可以直接控制计算机硬

件,所生成的代码质量高,使用方便.该系统采用模块化设计。由主程序、定时

程序、定时报警程序、显示程序、调时程序等构成。

2.软件流程

3.定时程序

使用定时/计数器TO,设置TO工作方式为方式1,16位工作模式,

设定TO低8位数值TLO=11H,高8位数值THO=OEEH,这样TO的溢

11

出时间为5ms,另外还需使用软件计数方式,软件计数器初值为

200,定时器每溢出一次,软件计数器减一,当软件计数器减到0

时,即可获得1s的定时时间。

4.液晶显示程序

先初始化LCD1602,当CPU检测到LCD1602处于空闲状态时,调用

写指令子程序完成相应的功能,调用写数据子程序把数据传输到

LCD1602进行显示。

5.定时报警流程

5.调时程序

开始

12

13

第五部分系统的测试及分析

1.系统测试方案

采用先分别调试各单元模块,调通后再进行整个系统调试的方法,以提高调

试效率。

1.1LCD测试

编写一段程序让LCD显示一串数字

1.2定时报警测试

编程设定在系统启动一段时间后蜂鸣器发出响声

1.3定时中断测试

用定时器TO,编程设定TO的初值,让TO每一秒中断一次,在LCD上

显示相应数字

1.4整个系统测试

拿一个能记录分、秒、毫秒的秒表,分别记录系统时间走过10分钟、

20分钟、30分钟所用的时间,以此来测量系统的精度

2.测试设备

数字万用表,秒表,个人电脑(内含protues/keilc51仿真软件),整个测试均在

室内完成

3.测试数据

10分00秒06毫秒

系统时间走过1。分钟所用的时间

14

20分01秒02毫秒

系统时间走过20分钟所用的时间

30分01秒08毫秒

系统时间走过30分钟所用的时间

4.测试结果分析

由上述数据记录表分析可知,测量误差均在0.1%以内,精确度较高,可以满足基

本的需要

第六部分结论

1.最终实现功能

1.1LCD显示阳历年、月、日、星期、小时、分、秒;

L2定时报警

L3按键调时

2.特色

时间精度较高,定时报警和液晶显示相结合,更直观,更人

性化成本低,体积小,使用方便

3.未来的改进方向

该设计已有的功能和特色上,仍需进一步改善,使其更人性化,功能更完

善。

3.1提高系统时间的精度

3.2增加阴历年显示和半点/整点语音报时/温度显示等功能

4.总结

本设计以STC89c52RC为核心,利用软件编程,通过按键控制和液晶显示,

辅以语音警示,实现显示万年历的功能。利用单片机设计的电子万年历系统,易

于设计和安装维护,可靠性好,功能扩展便捷,价格实惠,系统精确度高,稳定

性好,应用前景非常广阔。

这次竞赛锻炼了我们的动手能力,激发了我们的创新思维,培养了我们勇于

面对困难克服困难的坚强意志和不懈的精神,使我们又一次体味到团队的力量和

15

合作的重要性;更重要的是使我们深深的体会到理论结合实际的重要性,体会到

知识的海洋是无穷无尽,激发我们去追求。总之,我们喜欢“电子设计”竞赛,

感谢组委会给了我们锻炼的机会。

【参考文献】

[1]潘永雄.《新编单片机原理与应用》.西安:西安电子

科技大学出版社,2008.1

[2]楼苗然.《单片机设计实例》.北京:北京航空航天大

学出版社,2006.4

【3】刘文涛.《单片机应用开发实例》.北京:清华大学出

版社,2005.5

[4]尹勇.《单片机程序设计教程》.北京:北京航空航天

大学出版社,2004.3

[5]徐爱均,彭爱华.《单片机高级语言C51windows环

境编程与应用》.北京:电子工业出版社,2001.7

[6]冯育长,《单片机系统设计与实例分析》.西安:西安

电子科技大学出版社,2007.5

【7】李群芳,肖看.《单片机原理、接口及应用》--嵌入

式系统设计基础.北京:清华大学出版社,2007.12

16

【附录一】作品外形图

17

【附录二】源程序代码

/*用定时器0,1602液晶,设计一个数字时钟,可以由三个

按钮控制调节时间*/

多功能万年历*/

#include<reg52.h>

#includenlcdl602.hM

#defineucharunsignedchar

#defineuintunsignedint

#defineTIMERO_COUNTOxEEll

sbitmode=P3A0;

sbitplus=P3A3;

sbitdec=P3A6;

sbitnao=P2A3;

sbitstop=P3A4;

ucharcount,s1num,timer0_tick,count=0;

chardingshi[32];

chardingfen[32];

uchark;

uchar1;

ucharmodenum;

chardingtime;

18

voiddelaytime(uintx)

(

uinta,b;

fbr(a=x;a>0;a—)

fbr(b=1000;b>0;b-);

typedefstruct{

charhour;

charminute;

charsecond;

}time;

typedefstruct{

uintyear;

ucharmonth;

charday;

}date;

timenow={0,0,0};

datetoday={2009,1,8};

charcodedayofmonth[]={31,28,31,30,31,30,31,31,30,31,30,31};

charcodeweekday[7][4]={”MON”JTUE”JWED”JTHU”JFRTJSAT'JSUN"};

ucharmonthday(ucharyear,ucharmonth)

(

if(month=2&&year%4==0)〃润年的2月有29天

retum(29);

else

retum(dayofinonth[month-1]);〃非闰年时的该月份天数

voiddisplay_week()//由年月日计算星期

(

chardays;

days=(today.day+2*today.month+3*(today.month+l)/5+today.year+today.year/4-toda

y.year/1OO+today.year/400)%7;

display_string(&weekday[days][0]);

}

staticvoidtimerOinitialize(void)//timerOinitialize

(

EA=0;〃设置不接受所有中断

19

timerO_tick=O;

TRO=O;〃关闭Timer。

TMOD=0X01;//设置TimerO为模式1,16位工作模式

TLO=(TIMERO_COUNT&OXOOFF);//设置TimerO低八位数值

THO=(TIMERO_COUNT»8);〃设置TimerO高八位数值

PT1=1;~〃设置TimerO的优先级为最高

ETO=1;〃设置接受TimerO的中断

TRO=1;〃启动TimerO

EA=1;〃设置系统接受中断

voidwrite_dingtime(ucharadd,ucharnumber)

(

gotoxy(2,add);

displaydata(number);

}

voidwrite_time(ucharadd,ucharnumber)

(

gotoxy(2,add);

displaydata(number);

}

voidwrite_riqi(ucharadd,ucharnumber)

(

gotoxy(l,add);

display_data(number);

)

voidkeyscan()

(

if(mode==0)

(

delay⑸;

if(mode==0)

{mode_num-H-;

while(!mode);

TR0=0;

write_com(0x0f);

}

if(mode_num==1)gotoxy(l,4);

i出mode_num==2)gotoxy(l,7);

if(mode_num==3)gotoxy(l,10);

if(mode_num==4)gotoxy(2,2);

if(mode_num==5)gotoxy(2,5);

20

if(mode_num==6)gotoxy(2,8);

if(mode_num==7)gotoxy(2,ll);

if(mode_num==8)gotoxy(2,l4);

imode_num==9)gotoxy(2,l6);

if(mode_num==10)

(

mode_num=0;

write_com(OxOc);

TRO=1;

)

)

if(mode_num!=0)

(

if(plus=0)

(

delay⑸;

i<plus=0)

{

while(!plus);

if(mode_num=1)

(

today.year++;

write_riqi(l,today,year/100);

write_riqi(3,today.year%100);

gotoxy(l,12);

display_week();

gotoxy(l,4);

)

if(mode_num=2)

(

today,month++;

ifttoday.month==l3)today.month=l;

write_riqi(6,today,month);

gotoxy(l,12);

display_week();

gotoxy(l,7);

)

if(mode_num=3)

(

today.day++;

if(today.day>monthday(today.year,today.month))

today.day=l;

write_riqi(9,today.day);

gotoxy(l,12);

21

display_week();

gotoxy(l,10);

}

if(mode_num==4)

(

now.hour++;

if(now.hour=24)now.hour=0;

write_time(1,now.hour);

gotoxy(2,2);

)

if(mode_num==5)

(

now.minute++;

if(now.minute=60)now.minute=0;

write_time(4,now.minute);

gotoxy(2,5);

f

if(mode_num==6)

(

now.second++;

if(now.second=60)now.second=0;

write_time(7,now.second);

gotoxy(2,8);

)

if(mode_num==7)

(

dingtime-H-;

if(dingtime==33)dingtime=l;

write_dingtime(lO,dingtime);

write_dingtime(13,dingshi[dingtiine-1]);

write_dingtime(l5,dingfen[dingtime-1]);

gotoxy(2,ll);

)

if(mode_num==8)

(

dingshi[dingtime-l]++;

if(dingshi[dingtime-1]=24)dingshi[dingtime-l]=0;

write_dingtime(13,dingshi[dingtime-1]);

gotoxy(2,14);

)

i出mode_num==9)

(

dingfen[dingtime-1]++;

if(dingfen[dingtime-1]==60)dingfen[dingtime-1]=0;

22

write_dingtime(l5,dingfen[dingtime-1]);

gotoxy(2,16);

if(dec==O)

delay(5);

if(dec==O)

(

while(!dec);

if(mode_num=1)

{

today.year—;

write_riqi(l,today,year/100);

write_riqi(3,today,year%100);

gotoxy(l,12);

display_week();

gotoxy(l,4);

)

if(mode_num=2)

(

today,month—;

ifttoday.month==0)today.month=12;

writeriqi(6,today,month);

gotoxy(l,12);

display_week();

gotoxy(l,7);

}

if(mode_num=3)

(

today,day—;

ifttoday.day==0)

today.day=monthday(today.year,today.month);

write_riqi(9,today.day);

gotoxy(l,12);

display_week();

gotoxy(l,10);

)

if(mode_num==4)

(

now.hour-;

if(now.hour<0)now.hour=23;

write_time(1?now.hour);

23

gotoxy(2,2);

if(mode_num==5)

(

now.minute-;

if(now.minute<0)now.minute=59;

write_time(4,now.minute);

gotoxy(2,5);

)

if(mode_num==6)

(

now.second-;

if(now.second<0)now.second=59;

write_time(7,now.second);

gotoxy(2,8);

)

if(mode_num==7)

(

dingtime-;

if(dingtime<0)dingtime=32;

write_dingtime(lO,dingtime);

write_dingtime(13,dingshi[dingtime-1]);

write_dingtime(l5,dingfen[dingtime-1]);

gotoxy(2,ll);

)

if(mode_num==8)

(

dingshi[dingtime-1]—;

if(dingshi[dingtime-1]<0)dingshi[dingtime-1]=23;

write_dingtime(13,dingshi[dingtime-1]);

gotoxy(2,14);

)

if(mode_num==9)

(

dingfen[dingtime-1]—;

if(dingfen[dingtime-1]<0)dingfen[dingtime-1]=59;

write_dingtime(15,dingfen[dingtime-1]);

gotoxy(2,16);

24

voidtimerO(void)interrupt1

TR0=0;

TLO=(TIMERO_COUNT&0X00FF);〃设置TimerO低八位数值

THO=(TIMERO_COUNT»8);〃设置TimerO高八位数值

TRO=1;

count-H-;

if(count=200)

(

count=0;

now.second-H-;

iftnow.second==60)

{

now.second=0;

now.minute++;

if(now.minute=60)

(

now.minute=0;

now.hour++;

if(now.hour=24)

(

now.hour=0;

today.day++;

if(today.day>monthday(today,year,today.month))

(

today.day=l;

today.month++;

if(today.month=13)

(

today,month=l;

today.year++;

)

writeriqi(6,today,month);

)

write_riqi(9,today.day);

gotoxy(l,12);

display_week();

)

write_time(1,now.hour);

)

write_time(4,now.minute);

25

write_time(7,now.second);

if(dingshi[dingtime-1]!=0&&dingfen[dingtime-1]!=0)

(

if(now.hour=dingshi[dingtime-1]&&now.minute==dingfen[dingtime-1])

{

if(stop=0)

|

delay(5);

if(stop==0)

(

nao=0;

while(!stop);

dingtime-H-;

iftdingtime==33)

dingtime=l;

write_dingtime(10,dingtime);

write_dingtime(13,dingshi[dingtime-1]);

write_dingtime(l5,dingfen[dingtime-1]);

voidmain()

{

dingtime=l;

nao=0;

init_lcd();

timerO_initialize();

gotoxy(lj);

display_string(n2009/01/08");

display_week();

gotoxy(2,l);

display_string(n00:00:00n);

gotoxy(2,10);

display_string(n010000");

while(l)

26

keyscan();

if(mode_num==0)

{

if(dingshi[dingtime-1]!=0&&dingfen[dingtime-1]!=O)

(

if(now.hour=dingshi[dingtime-1]&&now.minute=dingfen[dingtime-1])

{

fbr(l=20;l>0;l-)

{

fdr(k=5OOOO;k>O;k-)

{

if(stop==0)gotoloop;

nao=~nao;

delay(20);

}

delaytime(50);

)

nao=0;

delaytime(500);

fdr(l=10;l>0;l-)

(

fdr(k=5OOOO;k>O;k-)

(

if(stop==0)gotoloop;

nao=-nao;

delay(20);

)

delaytime(50);

)

dingtime-H-;

if(dingtime==33)

dingtime=l;

write_dingtime(lO,dingtime);

write_dingtime(13,dingshi[dingtime-1]);

write_dingtime(l5,dingfen[dingtime-1]);

loop:delay(5);

27

“LCD1602.h”

#defineucharunsignedchar

#defineuintunsignedint

sbitrs=P2A0;

sbitlcden=P2A2;

#defineledmode0x38

#definedisplaycursorOxOf

#defineundisplay_cursor0x0c

charcodeint_to_char[]=n0123456789H;

voiddelay(uintx)

uinta,b;

for(a=x;a>0;a-)

fbr(b=10;b>0;b—);

voidwrite_com(ucharcom)〃写命令

PO=com;

rs=O;

lcden=O;

delay(lO);

lcden=l;

delay(lO);

lcden=O;

voidwrite_date(uchardate)〃写数据

{

PO=date;

rs=l;

lcden=0;

delay(lO);

lcden=l;

delay(lO);

lcden=0;

voidinit_lcd(void)〃初始化led1602

(

delay(15);

write_com(ledmode);

28

delay(20);

write_com(undisplay_cursor);

delay(20);

write_com(0x06);//letcursormove

delay(20);

write_com(0x01);//clearled

delay(20);

)

voiddisplay_string(char*p)〃写字符串

while(*p)

write_date(*p);

delay(20);

p++;

)

voidgotoxy(ucharx,uchary)

if(x==l)

write_com(0x80+y-1);

e

温馨提示

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

评论

0/150

提交评论