基于單片機(jī)C51的簡(jiǎn)單萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)C51的簡(jiǎn)單萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)C51的簡(jiǎn)單萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)C51的簡(jiǎn)單萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)C51的簡(jiǎn)單萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、福建工程學(xué)院軟件學(xué)院 軟件工程物聯(lián)網(wǎng)工程第十屆學(xué)生科技節(jié) -單片機(jī)設(shè)計(jì)大賽作品名稱: 萬(wàn)年歷 專 業(yè): 物聯(lián)網(wǎng) 班 級(jí): 1 指導(dǎo)老師: 鄭旭丹 組長(zhǎng): 鄧清蘭 學(xué)號(hào): 3112113111 組員: 黃孟秋 學(xué)號(hào): 3112113101 目 錄一、 緒論1二、 系統(tǒng)功能1三、 硬件電路13.1.電路設(shè)計(jì)框圖13.2.系統(tǒng)硬件概述2四、 各模塊功能及工作原理24.1.單片機(jī)主控制模塊的設(shè)計(jì)24.2.lcd1602顯示模塊34.3.鍵盤模塊6五、 實(shí)現(xiàn)結(jié)果9六、 系統(tǒng)的實(shí)用性及創(chuàng)新性9七、 調(diào)節(jié)中遇到的問(wèn)題及心得體會(huì)10八、 程序設(shè)計(jì)118.1.流程圖118.2.源代碼12九、 總結(jié)及感謝241、

2、 緒論眾所周知單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、多種i/o口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。本設(shè)計(jì)要制作的就是單片機(jī)于生活中最為常見(jiàn)的幾種應(yīng)用萬(wàn)年歷。本設(shè)計(jì)以at89s52單片機(jī)作為核心,可以顯示當(dāng)前的日歷和時(shí)間,時(shí)間也可以人為設(shè)定,顯示格式為年(四位),月(兩位),日(兩位),時(shí)(兩位),分(兩位),秒(兩位)。設(shè)置時(shí)間的位切換、設(shè)定數(shù)值、啟動(dòng)定時(shí)器、切換日歷通過(guò)外部中斷來(lái)實(shí)現(xiàn)。

3、萬(wàn)年歷顯示電路由lcd1602組成, 制作該裝置的材料需要有軟硬件的支持,硬件方面at89c51單片機(jī),晶振,電源,液晶屏lcd1602。2、 系統(tǒng)功能本次設(shè)計(jì)的是萬(wàn)年歷,采用lcd1602顯示,實(shí)現(xiàn)的功能如下:1. 顯示當(dāng)前時(shí)間,顯示格式為年(四位),月(兩位),日(兩位),時(shí)(兩位),分(兩位),秒(兩位);2. 時(shí)鐘計(jì)時(shí),自動(dòng)進(jìn)行時(shí)間的位切換;3. 鍵盤設(shè)置,能通過(guò)鍵盤設(shè)定當(dāng)前時(shí)間和計(jì)時(shí),并通過(guò)鍵盤人為設(shè)定時(shí)間。at89s52主控制模塊lcd1602顯示模塊計(jì)時(shí)模塊鍵盤輸入模塊3、 硬件電路1.2.3.3.1. 電路設(shè)計(jì)框圖3.2. 系統(tǒng)硬件概述本電路是由at89s52單片機(jī)為控制核心,

4、具有在線編程功能,低功耗,能在3v超低壓工作,本系統(tǒng)選用12mhz的晶振,使得單片機(jī)有合理的運(yùn)行速度;利用液晶屏lcd1602顯示時(shí)間信息,通過(guò)對(duì)at89s52單片機(jī)的編程控制液晶屏lcd1602的顯示。顯示時(shí)間在lcd1602,通過(guò)按鍵切換選擇。外部按鍵可及時(shí)設(shè)定或調(diào)整時(shí)間信息。4、 各模塊功能及工作原理4.4.1. 單片機(jī)主控制模塊的設(shè)計(jì)at89s52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲(chǔ)器。at89s52單片機(jī)為40引腳雙列直插芯片,有四個(gè)i/o口p0,p1,p2,p3, mcs-51單片機(jī)共有4個(gè)8位的i/o口(p0、p1、p2、p3),每一條

5、i/o線都能獨(dú)立地作輸出或輸入。18引腳和19引腳接時(shí)鐘電路,xtal1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,xtal2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端。引腳圖如圖圖4.1: 圖4.1 at89s52 引腳結(jié)構(gòu) 圖4.2.1 lcd1602 引腳結(jié)構(gòu)4.2. lcd1602顯示模塊4.2.1lcd1602引腳介紹 lcd1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,引腳圖如圖圖4.2.1:各引腳接口說(shuō)明如表4.2.2所示:編號(hào)符號(hào)引腳

6、說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1vss電源地9d2數(shù)據(jù)2vdd電源正極10d3數(shù)據(jù)3vl液晶顯示偏壓11d4數(shù)據(jù)4rs數(shù)據(jù)/命令選擇12d5數(shù)據(jù)5r/w讀/寫選擇13d6數(shù)據(jù)6e使能信號(hào)14d7數(shù)據(jù)7d0數(shù)據(jù)15bla背光源正極8d1數(shù)據(jù)16blk背光源負(fù)極表 4.2.2 lcd1602引腳說(shuō)明第1腳:vss為地電源。第2腳:vdd接5v正電源。第3腳:vl為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度。第4腳:rs為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:r/w為讀寫信號(hào)線,高電平時(shí)進(jìn)

7、行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)rs和r/w共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)rs為低電平r/w為高電平時(shí)可以讀忙信號(hào),當(dāng)rs為高電平r/w為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:e端為使能端,當(dāng)e端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。4.2.2lcd1602指令1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表4.2.3編號(hào)指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001i/ds4顯示開(kāi)/關(guān)控制0000001dcb5光標(biāo)

8、或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01bf計(jì)數(shù)器地址10寫數(shù)到cgram或ddram)10要寫的數(shù)據(jù)內(nèi)容11從cgram或ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表4.2.3 lcd1602的指令說(shuō)明1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01h,光標(biāo)復(fù)位到地址00h位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00h。指令3:光標(biāo)和顯示模式設(shè)置 i/d:光標(biāo)移動(dòng)方向,高電平右移,低電平左移

9、s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開(kāi)關(guān)控制。d:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 c:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 s/c:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 dl:高電平時(shí)為4位總線,低電平時(shí)為8位總線 n:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 f: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器ram地址設(shè)置。指令8:ddram地址設(shè)置。指令9:讀忙信號(hào)和光標(biāo)地址 b

10、f:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。4.2.3 lcd1602讀/寫操作lcd1602基本操作時(shí)序說(shuō)明,如表4.2.4讀狀態(tài)輸入rs=l,r/w=h,e=h輸出d0d7=狀態(tài)字寫指令輸入rs=l,r/w=l,d0d7=指令碼,e=高脈沖輸出無(wú)讀數(shù)據(jù)輸入rs=h,r/w=h,e=h輸出d0d7=數(shù)據(jù)寫數(shù)據(jù)輸入rs=h,r/w=l,d0d7=數(shù)據(jù),e=高脈沖輸出無(wú)表4.2.4 lcd1602基本操作時(shí)序說(shuō)明4.2.4 lcd1602顯示模塊流程圖按下按鍵?開(kāi)始lcd 1602初始界面顯示歡迎界面顯示初始時(shí)間結(jié)束ny4

11、.3. 鍵盤模塊 本設(shè)計(jì)采用4乘4鍵盤的反轉(zhuǎn)法控制萬(wàn)年歷的計(jì)時(shí)和時(shí)間設(shè)定,4乘4鍵盤電路圖如圖圖4.3.1 圖4.3.2012348+59-674.3.1鍵盤功能圖開(kāi)始對(duì)鍵盤進(jìn)行掃描,返回鍵值鍵值為+或-?鍵值為?鍵值為?鍵值為09?鍵值為13?4.4.2流程圖 n y yn n y y nny y nny ny5、 實(shí)現(xiàn)結(jié)果6、 系統(tǒng)的實(shí)用性及創(chuàng)新性基本功能:能顯示當(dāng)前時(shí)間和計(jì)時(shí),實(shí)現(xiàn)基本時(shí)鐘功能。創(chuàng)新性:界面友好,能實(shí)現(xiàn)計(jì)時(shí)和鍵盤數(shù)字的時(shí)間設(shè)定和自增、自減的時(shí)間設(shè)定。7、 調(diào)節(jié)中遇到的問(wèn)題及心得體會(huì)問(wèn)題一 lcd1602的初始化不規(guī)范,導(dǎo)致無(wú)法正確在lcd1602上顯示相應(yīng)的字符,時(shí)間等。

12、解決 在網(wǎng)上及課本上查找有關(guān)lcd1602初始化的程序,找出錯(cuò)誤的地方并及時(shí)改正,最終解決了lcd1602的初始化問(wèn)題。問(wèn)題二 在對(duì)秒、分、時(shí)、日、月、年等的大小判斷時(shí),采用逐位判斷,導(dǎo)致程序冗長(zhǎng),不利于程序的優(yōu)化。解決 通過(guò)老師的指導(dǎo)及其他相關(guān)程序的借鑒,對(duì)時(shí)間大小的判斷進(jìn)行優(yōu)化,將秒的十位和各位合為一個(gè)整體進(jìn)行判斷,分、時(shí)、日、月、年類似。問(wèn)題三 在計(jì)時(shí)模塊中,因?yàn)榧?xì)節(jié)問(wèn)題,找不到導(dǎo)致不能正常計(jì)時(shí)的原因。解決 通過(guò)老師的精心指導(dǎo),找到不能正常計(jì)時(shí)的原因,將中斷次數(shù)的判斷if(count100)改為if(count=100)即可。問(wèn)題四 在鍵盤設(shè)計(jì)模塊中,對(duì)空數(shù)組的定義無(wú)效。解決 通過(guò)查找相

13、關(guān)資料,了解到空數(shù)組的定義要放在data中,不能放在code中。將空數(shù)組定義為uchar a14使其默認(rèn)放在data中就解決了該問(wèn)題。8、 程序設(shè)計(jì)5.6.7.8.8.1. 流程圖開(kāi)始顯示“showtime”界面 welcome設(shè)置鍵按下?顯示當(dāng)前時(shí)間鍵盤數(shù)字進(jìn)行時(shí)間設(shè)置鍵盤自增、自減進(jìn)行時(shí)間設(shè)置開(kāi)始計(jì)時(shí)按鍵開(kāi)始按下?nyy y8.2. 源代碼#include#define uchar unsigned char#define uint unsigned int uchar code buffer4=0xfe,0xfd,0xfb,0xf7;uchar code table=0,1,2,3,4,

14、5,6,7,8,9,+,-,!,; uchar code w14=0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,0xc4,0xc5,0xc7,0xc8,0xca,0xcb;uchar a14;sbit e=p27;/1602使能引腳sbit rw=p26;/1602讀寫引腳sbit rs=p25;/1602數(shù)據(jù)/命令選擇引腳void delay(uint xms); /延時(shí)void time0_init();/中斷請(qǐng)求void timer1_int(void); /中斷void charge();/判斷秒分時(shí)日月等是否大于額外值,若大于向上一位加一void f

15、time();/初始時(shí)間void timeon();/計(jì)時(shí)void add();/自加void sub();/自減void wcmd(uchar del);/1602寫指令void write(uchar del);/1602寫數(shù)據(jù)void l1602_init(void);/1602初始化void second();/秒顯示void minute();/分顯示void hours();/時(shí)顯示void days();/日顯示void month();/月顯示void years();/年顯示void other();/符號(hào)顯示void number();/鍵盤輸入數(shù)字uint count,t

16、; /中斷執(zhí)行次數(shù),光標(biāo)位置參數(shù)uchar sec=0;/初始秒uchar min=0;/初始分uchar hour=0;/初始時(shí)uchar day=0;/初始日uchar mon=0;/初始月uchar yearh=0;/初始年前兩位uchar yearl=0;/初始年后兩位/1602命令函數(shù)void wcmd(uchar del) p0 = del;rs = 0; rw = 0;e = 1;delay(1);e = 0;delay(1); / 1602寫數(shù)據(jù)函數(shù)void write(uchar del) p0 = del;rs = 1;rw = 0;e = 1;delay(1);e = 0

17、;delay(1);/ 1602初始化void l1602_init(void)wcmd(0x38);wcmd(0x38);wcmd(0x38);wcmd(0x0e);wcmd(0x06); wcmd(0x01);/顯示秒void second() uchar i,j; i=sec/10; j=sec%10; wcmd(0xca); write(tablei); write(tablej);/顯示分void minute() uchar i,j; i=min/10; j=min%10; wcmd(0xc7); write(tablei); write(tablej); /顯示時(shí)void hou

18、rs() uchar i,j; i=hour/10; j=hour%10; wcmd(0xc4); write(tablei); write(tablej);/顯示日void days() uchar i,j; i=day/10; j=day%10; wcmd(0x8b); write(tablei); write(tablej); /顯示月void month() uchar i,j; i=mon/10; j=mon%10; wcmd(0x88); write(tablei); write(tablej);/顯示年void years() uchar i,j,m,n; i=yearh/10;

19、 j=yearh%10; m=yearl/10; n=yearl%10; wcmd(0x83); write(tablei); write(tablej); write(tablem); write(tablen);/符號(hào)顯示void other() wcmd(0xc9); write(:); wcmd(0xc6); write(:); wcmd(0x87); write(-); wcmd(0x8a); write(-);/延時(shí)void delay(uint xms) uint i,j; for(i=0;ixms;i+) for(j=0;j=100) count=0; charge(); ft

20、ime();/顯示初始時(shí)間/時(shí)間初值void ftime() second();delay(5); minute();delay(5); hours();delay(5); days();delay(5); month();delay(5); years();delay(5); other();delay(5);/各個(gè)按鍵返回值uint keyvalue() uint i,j; uchar temp; uint key_value; while(1) p1=0xf0; if(p1!=0xf0) delay(100); if(p1!=0xf0) for(j=0;j4;j+) p1=bufferj

21、; temp=0x10; for(i=0;i4;i+) if(!(p1&temp) key_value=i+j*4; temp=1; return key_value; /字符串顯示void l1602_string(uchar hang,uchar lie,uchar *p)uchar a,b=0;if(hang = 1) a = 0x80;if(hang = 2) a = 0xc0;a = a + lie - 1;while(1)wcmd(a+);b+;if(*p = 0)|(b=16) break;write(*p);delay(500);p+;/自增void add() wcmd(wt

22、); /光標(biāo)置位 if(t=1) /光標(biāo)在第二個(gè)位置時(shí) if(yearh99) /判斷年前兩位是否小于99,是,年前兩位加1,并顯示 yearh+;years(); else if(t=3) /光標(biāo)在第四個(gè)位置時(shí) if(yearl99) /判斷年后兩位是否小于99,是,年后兩位加1,并顯示 yearl+; years(); else if(t=5) /光標(biāo)在第六個(gè)位置時(shí) if(mon12) /判斷月是否小于12,是,月加1,并顯示 mon+; month(); else if(t=7) /光標(biāo)在第八個(gè)位置時(shí) if(day30) /判斷日是否小于30,是,日加1,并顯示 day+; days()

23、; else if(t=9)/當(dāng)光標(biāo)在第十個(gè)位置時(shí) if(hour12)/判斷時(shí)是否小于12,是,時(shí)加1,并顯示 hour+; hours(); else if(t=11) /光標(biāo)在第十二個(gè)位置時(shí) if(min59) /判斷分是否小于59,是,分加1,并顯示 min+;minute(); else if(t=13) /光標(biāo)在第十四個(gè)位置時(shí) if(sec0) yearh-;years(); else if(t=3) /光標(biāo)在第四個(gè)位置時(shí),判斷年后兩位是否大于0,是,年后兩位減1,并顯示 if(yearl1) yearl-; years(); else if(t=5)/光標(biāo)在第六個(gè)位置時(shí),判斷月是

24、否大于1,是,月減1,并顯示 if(mon1) mon-; month(); else if(t=7)/光標(biāo)在第八個(gè)位置時(shí),判斷日是否大于1,是,日減1,并顯示 if(day1) day-; days(); else if(t=9) /光標(biāo)在第十個(gè)位置時(shí),判斷時(shí)是否大于0,是,時(shí)減1,并顯示 if(hour0) hour-; hours(); else if(t=11) /光標(biāo)在第十二個(gè)位置時(shí),判斷分是否大于0,是,分減1,并顯示 if(min0) min-;minute(); else if(t=13) /光標(biāo)在第十四個(gè)位置時(shí),判斷秒是否大于0,是,秒減1,并顯示 if(sec0) sec-

25、; second(); /主函數(shù)void main()uchar keys; uint i,key; /數(shù)組a的參數(shù)i=0; t=0; /位置參數(shù)l1602_init(); /1602初始化l1602_string(1,5,showtime);/初始界面顯示 l1602_string(2,5,welcome!);/初始界面顯示while(1) key=keyvalue(); /將鍵值賦值給key keys=tablekey; if(keys=) /判斷鍵值是否為,是,執(zhí)行計(jì)時(shí) time0_init(); while(1) timeon(); else if(keys=!)/判斷鍵值是否為!,是

26、,顯示初始時(shí)間,光標(biāo)在第一個(gè)位置 ftime(); wcmd(0x83); else if(keys=-|keys=+) /判斷鍵值是否為+或- if(keys=+) /鍵值為+,執(zhí)行自加函數(shù) add(); else /鍵值為-,執(zhí)行自減函數(shù) sub(); /判斷鍵值是否為,是,光標(biāo)不在最左邊時(shí),光標(biāo)左移一位 else if(keys=1) i-;t=t-1; wcmd(wt); else if(keys=) /判斷鍵值是否為,是,光標(biāo)不在最右邊時(shí),光標(biāo)右移一位 if(t13) i+;t=t+1; wcmd(wt); else /鍵值為數(shù)字鍵時(shí),將鍵值放入a數(shù)組中,在調(diào)用函數(shù),顯示當(dāng)前設(shè)置的時(shí)間 number(); i=i%14; ai=key; i+; t+; number(); /輸入數(shù)字void number() yearh=a0*10+a1;yearl=a2*10+a3;mon=a4*10+a5;day=a6*10+a7;hour=a8*10+a9;min=a10*10+a11;sec=a12*10+a13;ftime();/中斷請(qǐng)求void time0_init() tmod=0x10; th1=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論