51單片機電子萬年歷設(shè)計帶有proteus仿真_第1頁
51單片機電子萬年歷設(shè)計帶有proteus仿真_第2頁
51單片機電子萬年歷設(shè)計帶有proteus仿真_第3頁
51單片機電子萬年歷設(shè)計帶有proteus仿真_第4頁
51單片機電子萬年歷設(shè)計帶有proteus仿真_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南文理學(xué)院課程設(shè)計課程名稱: 單片機課程設(shè)計 設(shè)計題目: 電子萬年歷 教學(xué)院部: 電氣與信息工程學(xué)院 專業(yè)班級: 自動化09101班 指導(dǎo)教師: 張 曉 虎 學(xué)生姓名: 邵 澤 學(xué) 號: 0 完成時間: 2012 年6月12日 報告成績: 評閱意見: 評閱教師 日期 摘要: 電子萬年歷是一種非常廣泛日常計時工具,對現(xiàn)代社會越來越流行。它可以對年、月、日、周日、時、分和秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒等信息,還具有時間校準(zhǔn)等功能。該電路采用AT89C52單片機作為核心,功耗

2、小,能在3V的低壓工作,電壓可選用3到5V電壓供電。萬年歷的設(shè)計過程在硬件與軟件方面進行同步設(shè)計。硬件部分主要由AT89C52單片機,液晶顯示電路,復(fù)位電路,時鐘電路,穩(wěn)壓電路電路以及串口下載電路等組成。在單片機的選擇上使用了AT89C52單片機,該單片機適合于許多較為復(fù)雜控制應(yīng)用場合。顯示器使用液晶LCD1602。軟件方面主要包括日歷程序、液晶驅(qū)動程序,顯示程序等。程序采用匯編語言編寫。所有程序編寫完成后,在Keil C51軟件中進行調(diào)試,確定沒有問題后,在Proteus軟件中嵌入單片機內(nèi)進行仿真。關(guān)鍵詞 時鐘電鐘,DS1302,液晶LCD1602,單片機 Abstract:Electron

3、ic calendar is a very extensive daily timing tool for modern society is more and more popular. It can be to year, month, day, Sunday, when, minutes, and seconds for the time, also has a leap year compensation and other functions, and the DS1302 long service life and small error. For digital electron

4、ic calendar using intuitive digital display, can also shows that year, month, day, Sunday, when the information such as, minutes and seconds, still have time calibration etc. Function. The AT89C52 single chip microcomputer as circuit adopts core, power consumption is small, can be in 3 V of low-pres

5、sure work, voltage can choose 3 to 5 V voltage power supply.The design process of the calendar in the hardware and software design of synchronization. Mainly by AT89C52 single chip microcomputer hardware part, liquid crystal display circuit, reset circuit, clocking circuit on the circuit circuit and

6、 serial download circuit etc. The processor on the choice of the single chip microcomputer AT89C52 use, the single chip microcomputer suitable for many more complex control applications. Use of liquid crystal display LCD1602. Software is mainly including calendar program, liquid crystal driver, show

7、 program, etc. Program using assembly language. All programming, after the completion of Keil C51 software in commissioning, make sure no, after Proteus software embedded in within the single chip microcomputer simulation.Key words DianZhong clock, DS1302, liquid crystal LCD1602, microcontroller 目 錄

8、1設(shè)計要求與方案論證31.1設(shè)計要求31.2 系統(tǒng)基本方案選擇和論證31.2.1單片機芯片的選擇方案和論證31.2.3時鐘芯片的選擇方案和論證:41.3 電路設(shè)計最終方案決定52系統(tǒng)的硬件設(shè)計與實現(xiàn)52.1 電路設(shè)計框圖52.2 系統(tǒng)硬件概述52.3 主要單元電路的設(shè)計52.3.1單片機主控制模塊的設(shè)計62.3.2時鐘電路模塊的設(shè)計62.3.3顯示模塊電路72.3.4串口下載電路82.3.5復(fù)位電路92.3.6穩(wěn)壓電路103系統(tǒng)的軟件設(shè)計113.1程序流程框圖113.2子程序的設(shè)計113.2.1讀寫DS1302子程序113.2.1讀寫LCD1602子程序124軟件測試及分析144.2分析與結(jié)論

9、144.2.1 調(diào)試分析144.2.2調(diào)試和結(jié)論155總結(jié)15 1設(shè)計要求與方案論證1.1設(shè)計要求 能夠顯示年、月、日、時、分。 可以人為校正年、月、日、時、分。 地一次開機顯示:2000 01 01 12.00。 掉電信息不丟失。1.2 系統(tǒng)基本方案選擇和論證系統(tǒng)方案包括單片機的選型、時鐘芯片的選擇和顯示模塊的確定等。 1.2.1單片機芯片的選擇方案和論證方案一:采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備ISP在線編程技術(shù), 當(dāng)在對電路進行調(diào)試時,由于程

10、序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。方案二: 采用AT89C52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內(nèi)部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞。所以選擇采用AT89C52作為主控制系統(tǒng)控制整個系統(tǒng)的正常工作。 1.2.2 顯示模塊選擇方案和論證方案一:采用數(shù)碼管顯示,數(shù)碼管是由八個發(fā)光二極管組成,對于顯示數(shù)字字符比較

11、適合,但對于電子萬年歷需要的數(shù)碼管位數(shù)多,編程麻煩,且不穩(wěn)定,存在抖動現(xiàn)象,需要通過軟件延時進行消抖。 方案二:采用LCD1602液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,易于編程,穩(wěn)定可靠。通過對比,本課程設(shè)計采用LCD1602作為顯示模塊。 1.2.3時鐘芯片的選擇方案和論證:方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、時、分計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。方案二:采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對分、時、日、月、年以及閏

12、年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM作為數(shù)據(jù)暫存區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時耗電小于300nA。同時在外加電源和外加晶振電路下,掉電后走時準(zhǔn)確。本課程設(shè)計采用DS1302作為時鐘的芯片。1.3 電路設(shè)計最終方案決定綜上各方案所述,對此次設(shè)計的方案選定: 采用AT89C52作為主控制系統(tǒng); DS1302提供時鐘;LCD1602作為顯示。2系統(tǒng)的硬件設(shè)計與實現(xiàn)2.1 電路設(shè)計框圖 2.2 系統(tǒng)硬件概述本電路是由AT89C52單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、

13、月、日、時、分和秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口(SPI總線)與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、時、分,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;顯示部分由LCD1602顯示,精度高,顯示穩(wěn)定。2.3 主要單元電路的設(shè)計單元電路的設(shè)計包括主控制系統(tǒng)、時鐘電路模塊、顯示模塊、串口下載模塊、復(fù)位電路和穩(wěn)壓電路的設(shè)計。2.3.1單片機主控制模塊的設(shè)計AT89C52單片機為40引腳雙列直插芯片,有四個I/O口P0,P

14、1,P2,P3, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如下圖所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和30PF電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和30PF電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖2-1 所示 圖2-1 主控制系統(tǒng)2.3.2時鐘電路模塊的設(shè)計圖2-2示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,

15、也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.、KHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。如圖2-2所示。圖2-2 DS1302的引腳圖2.3.3顯示模塊電路如圖23所示,采用液晶1602數(shù)據(jù)端由P0提供實現(xiàn)8位并行通信,其數(shù)據(jù)交換的速率比較快VL是調(diào)整液晶顯示的亮度,E是使能端口,RW是讀寫控制端口,高電平讀信號,低電平寫

16、信號;RS是讀寫命令與數(shù)據(jù)控制端口,高電平寫數(shù)據(jù),低電平寫命令。 圖2-3 LCD 1062的電路圖2.3.4串口下載電路經(jīng)過KEIL C51編譯的匯編程序必須下載到單片機內(nèi)部運行,才能實現(xiàn)所需要的功能。然而單片機得1、0是用5V、和0V表示的,而電腦中的1、0用的電壓并不是5V、和0V,因此,必須用MAX232進行電壓轉(zhuǎn)化,于是設(shè)計的串口下載電路。如圖2-4所示。圖2-4 串口下載電路2.3.5復(fù)位電路在單片機中運行程序時,如果程序跑飛,即程序運行的地址出現(xiàn)混亂時,可以用復(fù)位電路,在低電平時程序從零地址從新開始運行。同時也可以使用看門狗,定時的喂狗,使程序每次從零地址開始運行。防止程序跑飛。

17、如圖2-5所示。圖2-5 復(fù)位電路2.3.6穩(wěn)壓電路當(dāng)輸入的電壓高于或者低于51v時,可以用L7805CV穩(wěn)壓到5V,保證單片機穩(wěn)定的性能和可靠的穩(wěn)定性,其中的二極管是利用了單片機的單向?qū)щ娦裕瑢?dǎo)致單片機被燒毀或者系統(tǒng)不能正常工作。如圖2-6所示。圖2-6 穩(wěn)壓電路3系統(tǒng)的軟件設(shè)計3.1程序流程框圖分離日期時間顯示值讀日期、時間初始化開始顯示子程序返回4軟件proteus測試及分析 通過調(diào)節(jié)四個按鍵設(shè)定時間為2000年1月1日12點整。4.1軟件測試電子萬年歷是多功能的數(shù)字顯示儀器。由于功能很多,所以對于它的程序也較為復(fù)雜,因此本次設(shè)計采用簡化模型,即只顯示年月日,時分秒。但在程序調(diào)試時出現(xiàn)了

18、相對較多的錯誤。最后經(jīng)過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調(diào)試過程中主要遇到的問題如下:4.2分析與結(jié)論4.2.1 調(diào)試分析(1)顯示的數(shù)據(jù)秒并沒有變化,原因是沒有啟動定時器,我有不斷的讀取DS1302時鐘芯片寄存器中的數(shù)據(jù),并顯示才能實現(xiàn)所需要的功能,實時顯示年、月、日、星期、分鐘、小時、秒等基本功能來滿足系統(tǒng)的需求。(2)調(diào)整時間后應(yīng)該先去掉寫保護,如果存在寫保護,那么在初始化寫入初始時間時,是寫不進去初始化的時間的。因而會看見顯示的時間并不隨著設(shè)置的初始化的值變化而變化,甚至我們看見的時間并不按著一秒一秒的增加。(3)液晶顯示的時候,由于采用的并行總線,顯然

19、傳輸速度快,但是數(shù)據(jù)端口必須接1K的排阻,以實現(xiàn)驅(qū)動,實踐證明,沒有排阻的時候,液晶顯示就會不穩(wěn)定,甚至出現(xiàn)亂碼。因此,排阻的作用很大。寫程序時要嚴(yán)格按照時序就行,否則,也不會顯示。 4.2.2調(diào)試和結(jié)論經(jīng)過多次反復(fù)修改程序,對電路各模塊的原理及功能更加熟悉,同時提高了設(shè)計能力與及對電路的分析能力.同時在軟件的編程方面得到更到的提高,對所學(xué)的知識得到很大的提高與鞏固.5總結(jié)通過這次制作使我了解了整個萬年歷的工作過程和各個部分的工作原理。使我認識到利用單片機設(shè)計的萬年歷便于操作。經(jīng)過認真的仿真觀察,本次設(shè)計的萬年歷能夠正確的顯示年、月、日等,總體來說算是比較成功的。本次單片機課程設(shè)計是使用Pro

20、tues設(shè)計工具、協(xié)同使用Keil編程軟件制作的。這也使我又掌握了一門非常實用的軟件,對于我以后的畢業(yè)設(shè)計算是又多了一個非常好的選擇。在看同學(xué)編寫程序的過程中我自己也學(xué)到了很多的東西,對于一些Protues程序的不同用法和功能能夠比較順暢的讀程序和簡單的應(yīng)用。 6參考文獻1 劉勇 編 數(shù)字電路 電子工業(yè)出版社 20042 陳正振 編 電子電路設(shè)計與制作 廣西交通職業(yè)技術(shù)學(xué)院信息工程系 20073 楊子文 編 單片機原理及應(yīng)用 西安電子科技大學(xué)出版社 20064 王法能 編 單片機原理及應(yīng)用 科學(xué)出版社 2004附錄一:系統(tǒng)電路圖附錄二:系統(tǒng)程序清單#include #include #incl

21、ude #define uint unsigned int#define uchar unsigned charsbit IO= P10; /DS1302數(shù)據(jù)線sbit SCLK = P11; /DS130時鐘線sbit RST = P12; /DS1302復(fù)位線sbit RS = P20; /LCD數(shù)據(jù)/命令選擇端sbit RW = P21; /LCD讀/寫控制sbit EN = P22; /LCD使能端sbit K1=P34;/選擇sbit K2=P35;/加sbit K3=P36;/減sbit K4=P37; /確定uchar tCount=0;uchar MonthsDays=0,31

22、,0,31,30,31,30,31,31,30,31,30,31;uchar *WEEK=SUN,MON,TUS,WEN,THU,FRI,SAT;uchar LCD_DSY_BUFFER1=DATE 00-00-00 ; /顯示格式uchar LCD_DSY_BUFFER2=TIME 00:00:00 ;uchar DateTime7; /所讀取的日期時間char Adjust_Index=-1; /當(dāng)前調(diào)節(jié)的時間對象:,分,是,日,月,年(1,2,3,4,6)uchar Change_Flag= -MHDM-Y; /(分,時,日,月,年)(不調(diào)節(jié)秒與周)/*-延時程序-*/void Dela

23、yMS(uint ms) uchar i;while(ms-)for(i=0;i120;i+);/-向DS1302寫入一字節(jié)-/void Write_A_Byte_TO_DS1302(uchar x)uchar i;for(i=0;i=1; / 右移/-從DS1302讀取一字節(jié)-/uchar Get_A_Byte_FROM_DS1302()uchar i,b=0x00;for(i=0;i8;i+) b |= _crol_(uchar)IO,i);SCLK=1;SCLK=0; /每一個高脈沖讀取一位數(shù)據(jù)return b/16*10+b%16; /返回BCD碼/-從DS1302指定位置讀數(shù)據(jù)-/u

24、char Read_Data(uchar addr) uchar dat;RST = 0;SCLK=0;RST=1; /RST高電平時讀/寫 Write_A_Byte_TO_DS1302(addr); /先寫入地址dat = Get_A_Byte_FROM_DS1302(); SCLK=1;RST=0;return dat;/-向DS1302某地址寫入數(shù)據(jù)-/void Write_DS1302(uchar addr,uchar dat)SCLK=0;RST=1;Write_A_Byte_TO_DS1302(addr);Write_A_Byte_TO_DS1302(dat);SCLK=0;RST

25、=0; /高脈沖寫入數(shù)據(jù)/-設(shè)置時間-/void SET_DS1302()uchar i;/寫控制字,取消寫保護Write_DS1302(0x8E,0x00);/分時日月年依次寫入for(i=1;i7;i+) /分的起始地址(0x82),后面依次是時,日,月,周,年,寫入地址每次遞增2Write_DS1302(0x80+2*i,(DateTimei/104)|(DateTimei%10); Write_DS1302(0x8E,0x80); /加保護/-讀取當(dāng)前日期時間-/void GetTime()uchar i;for(i=0;i7;i+)DateTimei=Read_Data(0X81+2

26、*i);/-讀LCD狀態(tài)-/uchar Read_LCD_State()uchar state;RS=0;RW=1;EN=1; /輸出:D0D7=狀態(tài)字DelayMS(1);state=P0; /從P0口讀LCD狀態(tài)EN = 0;DelayMS(1);return state; /-忙等待-/void LCD_Busy_Wait() while(Read_LCD_State()&0x80)=0x80);DelayMS(5);/-向LCD寫數(shù)據(jù)-/void Write_LCD_Data(uchar dat) LCD_Busy_Wait();RS=1;EN=0;RW=0; /寫數(shù)據(jù),EN為高脈沖,

27、P0=dat;EN=1;DelayMS(1);EN=0;/-寫LCD指令-/void Write_LCD_Command(uchar cmd) LCD_Busy_Wait();RS=0;EN=0;RW=0; /寫指令,EN高脈沖,輸出:D0D7=數(shù)據(jù)P0=cmd;EN=1;DelayMS(1);EN=0;/-LCD初始化-/void Init_LCD() Write_LCD_Command(0x38); /設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口DelayMS(1);Write_LCD_Command(0x01); /顯示清零,數(shù)據(jù)指針清零DelayMS(1);Write_LCD_Comma

28、nd(0x06); /寫一個字符后地址指針自動加1DelayMS(1);Write_LCD_Command(0x0c); /設(shè)置開顯示,不顯示光標(biāo)DelayMS(1);/-/設(shè)置液晶顯示位置/-void Set_LCD_POS(uchar p)Write_LCD_Command(p|0x80);/相當(dāng)于在0x80基礎(chǔ)上加入位置量/-在LCD上顯示字符串-/void Display_LCD_String(uchar p,uchar *s)uchar i;Set_LCD_POS(p);for(i=0;i16;i+)Write_LCD_Data(si); /在固定位置顯示時間日期DelayMS(1)

29、;/-日期與時間值轉(zhuǎn)換為數(shù)字字符-/void Format_DateTime(uchar d,uchar *a)a0=d/10+0;a1=d%10+0;/判斷是否為閏年uchar isLeapYear(uint y)return (y%4=0&y%100!=0)|(y%400=0);/求自2000.1.1開始的任何一天是星期幾/函數(shù)沒有通過,求出總天數(shù)后再求星期幾/因為求總天數(shù)可能會超出uint的范圍void RefreshWeekDay()uint i,d,w=5; /已知1999.12.31是周五for(i=2000;i2000+DateTime6;i+)d=isLeapYear(i)?3

30、66:365;w=(w+d)%7;d=0;for(i=1;iDateTime4;i+)d+=MonthsDaysi;d+=DateTime3;/保存星期,06表示星期日,星期一,二,.,六,為了與DS1302的星期格式匹配,返回值需要加1DateTime5=(w+d)%7+1;/*年月日時分+/-*/void DateTime_Adjust(char x)switch(Adjust_Index)case 6: /年00-99if(x=1&DateTime60) DateTime6-;/獲取2月天數(shù)MonthsDays2=isLeapYear(2000+DateTime6)?29:28;/如果年

31、份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限if(DateTime3MonthsDaysDateTime4)DateTime3=MonthsDaysDateTime4;RefreshWeekDay(); /刷新星期break;case 4: /月01-12if(x=1&DateTime41) DateTime4-;MonthsDays2=isLeapYear(2000+DateTime6)?29:28;if(DateTime3MonthsDaysDateTime4)DateTime3=MonthsDaysDateTime4;RefreshWeekDay();break;case 3: /日00-2

32、8、29、30、31,調(diào)節(jié)之前首先根據(jù)年份得出該年中斷二月 天數(shù)MonthsDays2=isLeapYear(2000+DateTime6)?29:28;/根據(jù)當(dāng)前月份決定調(diào)節(jié)日期的上限if(x=1&DateTime30) DateTime3-;RefreshWeekDay();break;case 2: /時if(x=1&DateTime20) DateTime2-;break;case 1:/分if(x=1&DateTime10) DateTime1-;break;/-定時器0每秒刷新LCD顯示-/void T0_INT() interrupt 1TH0=-50000/256;TL0=-50000%256;if(+tCount !=2)return;tCount=0;/按指定格式生成待顯示的日期時間串Format_DateTime(DateTime6,LCD_DSY_BUFFER1+5);Format_DateTime(DateTime4,LCD_DSY_BUFFER1+8);Format_DateTime(DateTime3,LCD_DSY_BUFFER1+11);/星期strcpy(LCD_DSY_BUFFER

溫馨提示

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

評論

0/150

提交評論