基于單片機的智能電子鐘系統(tǒng)設(shè)計畢業(yè)設(shè)計論文1_第1頁
基于單片機的智能電子鐘系統(tǒng)設(shè)計畢業(yè)設(shè)計論文1_第2頁
基于單片機的智能電子鐘系統(tǒng)設(shè)計畢業(yè)設(shè)計論文1_第3頁
基于單片機的智能電子鐘系統(tǒng)設(shè)計畢業(yè)設(shè)計論文1_第4頁
基于單片機的智能電子鐘系統(tǒng)設(shè)計畢業(yè)設(shè)計論文1_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的智能電子鐘系統(tǒng)設(shè)計姓 名:李永健、王海、呂軍梅、鞏珍珍 課題組的分工或貢獻:每人完成的百分比或者每人負責的內(nèi)容課 程 名 稱: mcs-51單片機應(yīng)用設(shè)計指 導(dǎo) 教 師:李林2014年12月基于單片機的智能電子鐘系統(tǒng)設(shè)計李永健、王海、呂軍梅、鞏珍珍(信息科學(xué)與工程學(xué)院)摘要:電子鐘是一種利用數(shù)字電路來顯示時間的計時裝置,與傳統(tǒng)的機械鐘相比,它具有走時準確、顯 示直觀、無機械傳動裝置等優(yōu)點,因而得到廣泛應(yīng)用。 本設(shè)計通過以單片機芯片stc89c51為核心,通過軟件編程完成時鐘及定時的基本功能,溫度芯片ds18b20完成溫度測量功能。采用了六位數(shù)碼管動態(tài)顯示時、分、秒,兩個led燈分別

2、指示上下午,同時還有兩個led燈每半秒分別閃爍一次。通過4個外部按鍵可以控制小時和分鐘的定時和定鬧以及報警。此電子鐘具有性能優(yōu)越,操作簡單等優(yōu)點。關(guān)鍵詞:智能電子鐘、stc89c51、led數(shù)碼管、ds18b20目錄1、 項目目的2、 項目要求3、 基本原理4、 設(shè)計方案 (一)系統(tǒng)整體設(shè)計思想(二) 電子鐘計時(三) 數(shù)碼管顯示(四) 調(diào)時(五) 定鬧、報警(六) 溫度采集五、結(jié)論六、參考文獻七、附錄一 附錄二1、 項目目的 1. 掌握單片機各個功能模塊(并行i/o口、中斷系統(tǒng)、定時器/計數(shù)器)的工作原理、性能和特點;2、掌握單片機外圍電路的設(shè)計方法和仿真方法;3、掌握單片機外圍電路的調(diào)試方

3、法;4、掌握單片機外圍電路設(shè)計報告的撰寫方法;5、培養(yǎng)團隊合作精神、項目組織與管理、交流表達能力;6、培養(yǎng)責任感和職業(yè)道德。二、項目要求本課程三級項目要求學(xué)生使用mcs-51系列單片機設(shè)計并制作一個具有時間顯示、按鍵調(diào)時、鬧鐘報警、溫度測量、遙控和自動調(diào)時等功能的軟硬件系統(tǒng),可實現(xiàn)六項基本功能分別如下:1) 時間顯示:采用六個數(shù)碼管顯示當前時間:小時、分鐘、秒。2) 溫度顯示:采用兩個數(shù)碼管顯示當前環(huán)境溫度。3) 上下午指示:采用兩個發(fā)光二極管來指示上下午。4) 半秒提示:采用兩個發(fā)光二極管,每隔半秒閃爍。5) 調(diào)時功能:采用三個按鍵(k1-k3)來調(diào)整時間,步驟如下:a)按下k1鍵,開始調(diào)小

4、時,同時2個小時數(shù)碼管閃爍。b)按下k2鍵,小時加;按下k3鍵,小時減。c)小時調(diào)整好后,再按下k1鍵,開始調(diào)分鐘,同時分鐘數(shù)碼管閃爍。d)按下k2鍵,分鐘加;按下k3鍵,分鐘減。e)調(diào)整好分鐘后,再按下k1鍵,調(diào)時結(jié)束。6) 鬧鐘功能:采用三個按鍵(k2-k4)來調(diào)整鬧鐘,步驟如下:a)按下k4鍵,開始調(diào)小時,同時2個小時數(shù)碼管閃爍。b)按下k2鍵,小時加;按下k3鍵,小時減。c)小時調(diào)整好后,再按下k4鍵,開始調(diào)分鐘,同時分鐘數(shù)碼管閃爍。d)按下k2鍵,分鐘加;按下k3鍵,分鐘減。e)調(diào)整好分鐘后,再按下k4鍵,定鬧結(jié)束。鬧鐘定時的時間到后,蜂鳴器/揚聲器發(fā)出提示音;用戶需按k2-k4鍵來

5、取消鬧鐘警告。3、 基本原理 利用軟件編程借助于定時器/計數(shù)器0實現(xiàn)間隔為1s的定時功能,格式為秒,分,時,在其中斷服務(wù)程序中實現(xiàn)對小時、分鐘、秒單元數(shù)值的調(diào)整。主程序通過不斷循環(huán)調(diào)用調(diào)時子程序,實現(xiàn)整個功能。利用嵌套在調(diào)時子程序中的顯示子程序?qū)崿F(xiàn)上下午指示和半秒閃爍。利用溫度芯片ds18b20來測量溫度。4、 設(shè)計方案 (一)系統(tǒng)整體設(shè)計思想 總體設(shè)計框圖:按鍵(k1k4)ds18b20溫度芯片stc89c52單片機 電源8片數(shù)碼管顯示led燈指示(上下午、半秒)報警 通過定時器/計數(shù)器0實現(xiàn)1s的計時,將它設(shè)計成內(nèi)部中斷,即每計滿1s產(chǎn)生中斷信號,主程序轉(zhuǎn)去執(zhí)行定時器0的中斷服務(wù)程序,按照

6、時間規(guī)則改變相應(yīng)ram存儲單元的數(shù)值。在主程序里首先不斷檢測是否有按鍵按下,如果沒有,則不斷調(diào)用顯示子程序,否則,根據(jù)按下的是哪個鍵可以轉(zhuǎn)去執(zhí)行相應(yīng)的程序段,分別實現(xiàn)小時和分鐘的加和減以及鬧鐘定時,而每次執(zhí)行結(jié)束都會調(diào)用顯示子程序,保證數(shù)碼管的穩(wěn)定顯示,同時也可以實時根據(jù)存儲單元數(shù)值的不同顯示。而鬧鐘的倒計時則利用定時器/計數(shù)器1的計時來實現(xiàn),同樣為1s計時,只不過是在中斷服務(wù)程序中實現(xiàn)對存儲單元的按規(guī)則遞減,同樣的即使顯示就可以實現(xiàn)倒計時功能,到達00:00:00時就可以調(diào)用報警子程序,實現(xiàn)報警。(1) ram單元分配(21h).0指示即將顯示的是十位還是個位20h #0ah,定時器/計數(shù)器

7、0或1計滿10次為1s19h#05h,定時器/計數(shù)器0或1計滿5次為0.5s18h#05h,顯示子程序內(nèi)部執(zhí)行次數(shù)29h #01010101b 30h 小時的bcd碼31h 分鐘的bcd碼 32h 秒的bcd碼th0#3ch,t0計數(shù)初值,可計時100mstl0#0b0hth1 #3ch,t1計數(shù)初值,可計時100mstl1 #0b0h(2) 循環(huán)執(zhí)行部分:here:lcalladjustajmphere;反復(fù)調(diào)用adjust程序可以實現(xiàn)所有功能(3)主程序的初始化部分: main:setbp3.0 clrp3.1 movtmod,#01h;設(shè)t0方式1,定時 clra;a清零 mov30h,

8、a;“時”單元清零 mov31h,a;“分”單元清零 mov32h,a;“秒”單元清零 setbet0;允許中斷 setbet1setbea;cpu開中斷movth0,#3ch;給t0裝入計數(shù)初值,可計時100msmovtl0,#0b0h;movth1,#3ch;給t1裝入計數(shù)初值movtl1,#0b0hsetbtr0;啟動計數(shù) (二)時間顯示模塊(1) 物理連接p0.0p0.7接數(shù)碼管的adp(片選碼)p2.0p2.5接數(shù)碼管的16(段選碼)時間顯示:采用六個數(shù)碼管顯示兩位的小時,分鐘,秒 (2) 流程圖: (3) 動態(tài)顯示的核心在于依次選中一塊數(shù)碼管,并在此之前將相應(yīng)數(shù)碼管要顯示的數(shù)字的段

9、碼送到端口,進行相應(yīng)的延時后關(guān)閉數(shù)碼管選通信號。不斷執(zhí)行上述過程就可以實現(xiàn)較為穩(wěn)定的動態(tài)顯示。每次進入主程序都首先判斷是否到了1s,到了則繼續(xù)執(zhí)行,否則,返回中斷。為了在顯示完秒之后還能繼續(xù)顯示小時的十位,必須有一個用來計數(shù)的單元,用以區(qū)分當前顯示的是小時還是分鐘,還是秒,并以此作為僅次于顯示次數(shù)n的循環(huán)。對每一個單元(30h32h)的兩位bcd碼的顯示,用一位(21h).0來指示即將顯示的是十位還是各位,據(jù)此控制剛才所說的單元指示數(shù)值是否用該加一或者重新初始化。由此在display子程序中有3重循環(huán)。調(diào)用入口參數(shù)為30h32h單元的數(shù)值。(4) 半秒提示:采用兩個發(fā)光二極管,每隔半秒閃爍。中

10、斷5次就是半秒,并在相應(yīng)的分支里設(shè)置p3.6和p3.7,保證二者同時取反即可。這可以放在顯示子程序內(nèi)部,保證時間顯示和半秒閃爍的同步,同時可以節(jié)約計數(shù)器。(5) 上下午指示:采用兩個發(fā)光二極管來指示上下午。只要判斷30h單元的內(nèi)容與11h相比較就可以知道是上午還是下午了,在分支語句里控制相應(yīng)的燈亮了就行。如上所述,將它放置在顯示子程序里較為方便。時分秒時間顯示模塊的仿真結(jié)果半秒提示上午(3) 按鍵模塊adjust的主體部分就是檢測是否有按鍵按下,如果沒有只是調(diào)用顯示子程序,而有的話轉(zhuǎn)去執(zhí)行相應(yīng)的分支語句。為了防止干擾,我們便寫了一個延時5ms左右的子程序,若是經(jīng)過延時后,按鍵信號依然有效,則認

11、定是有效信號,否則為干擾,返回程序起始點重新檢測。k1可以控制實現(xiàn)定時,所以定時器計數(shù)器依然是0在起作用,在其分支語句里根據(jù)按鍵次數(shù)使指針指向不同的單元(小時、分鐘),然后檢測k2k3的信號到來。在k2k3的分支語句里實現(xiàn)指針所指向單元的加一或者減一,但是注意要按照時間規(guī)則來,對加一或者減一結(jié)果進行調(diào)整,否則可能出錯。對單元的加一或者減一直接反映到顯示子程序和定時器計數(shù)器0或者1的16位計數(shù)單元里,所以,每次更改后的值就相當于對時間確定調(diào)節(jié),并從該處繼續(xù)計時,這樣就實現(xiàn)了調(diào)時功能。k4的分支語句要求實現(xiàn)定鬧,它與k1分支語句的不同之處是更改當前計數(shù)器為1,關(guān)閉0,在計數(shù)器1的中斷服務(wù)程序里可以

12、實現(xiàn)倒計時功能。元器件:按鈕開關(guān)k1:控制調(diào)時k3:對應(yīng)單元減一k2:對應(yīng)單元加一k4:控制定鬧(四)鬧鐘模塊(1)計時器t1的倒計時同樣是1s的倒計時,只是在中斷程序里實現(xiàn)對計時單元的減一,但在減一之前檢測是否為0,如果是就調(diào)用報警子程序,如果不是則按照規(guī)則減一,注意的同樣是數(shù)值的調(diào)整。調(diào)整結(jié)束后返回adjust程序,繼續(xù)檢測,這樣就可以實現(xiàn)連續(xù)調(diào)節(jié)。(5) 報警模塊連線p1.7引腳連接到三極管元器件:蜂鳴器、三極管2n2907原理:由單片機芯片中引腳輸出的信號來控制蜂鳴器的開和關(guān)在報警子程序里要求不斷調(diào)用顯示子程序,這樣數(shù)碼管可以在時間到達之后穩(wěn)定顯示00:00:00.(六)溫度測量模塊元

13、器件:數(shù)字溫度傳感器ds18b20(測溫范圍-55度125度)原理:利用溫度傳感器測量到溫度值通過引腳傳遞到芯片中 利用ds18b20溫度芯片來實現(xiàn)溫度測量的功能,并將其顯示在數(shù)碼管上。測量的溫度范圍是零下55至零上125攝氏度。 ds18b20的六條控制命令如下表:指 令約定代碼操 作 說 明溫度轉(zhuǎn)換44h啟動ds18b20進行溫度轉(zhuǎn)換讀暫存器beh讀暫存器9個字節(jié)內(nèi)容寫暫存器4eh將數(shù)據(jù)寫入暫存器的th、tl字節(jié)復(fù)制暫存器48h把暫存器的th、tl字節(jié)寫到e2ram中重新調(diào)e2ramb8h把e2ram中的th、tl字節(jié)寫到暫存器th、tl字節(jié)讀電源供電方式b4h啟動ds18b20發(fā)送電源供

14、電方式的信號給主cpu5、 結(jié)論 本次項目利用單片機stc89c52控制串行口與時鐘芯片ds1302構(gòu)成數(shù)字時鐘電路,實現(xiàn)計時功能,同時具有定時鬧鐘的功能,并且可以顯示溫度,定時和調(diào)時的功能僅用四個鍵控制,更加方便。本設(shè)計沒有實現(xiàn)上下午提示和半秒提示的功能,但是智能電子鐘的基本功能已經(jīng)實現(xiàn),所以算是比較成功的。6、 不足和改進(1) 當定鬧結(jié)束之后不能夠通過按鍵來重新啟動,這個可以通過在報警子程序里跳轉(zhuǎn)到主程序重新開始執(zhí)行來實現(xiàn)。(2) 在調(diào)時和定鬧的過程中,相應(yīng)模塊不能閃爍,這個可以通過調(diào)用一個新的顯示子程序,實現(xiàn)相應(yīng)數(shù)碼管間歇性亮滅。(3) 時間緊迫,沒有對減或者加的單元設(shè)定上限和下限值,

15、所以只能實現(xiàn)一天內(nèi)的功能。這個可以通過在相應(yīng)程序段中與限值比較來實現(xiàn)。(4) 溫度顯示模塊是一大遺憾,沒有足夠的時間來做。(5) 在設(shè)計過程中另外有一個關(guān)于按鍵的想法,沒有能夠編程實現(xiàn)。它是利用兩級中斷來實現(xiàn)。加一或者減一是通過外部中斷的中斷服務(wù)程序?qū)崿F(xiàn)。這里可能與按鍵延時有關(guān),同時這樣的設(shè)計可能會涉及到從引腳讀入信號,這在實際設(shè)計中不可取。此處不再贅述。七、感想 經(jīng)歷過這么多不間斷的討論課和三級項目,我們有挺多感觸的,從最基本上來說我們看到了,也意識到了自己的不足,對于不斷克服的各種阻礙也讓我們體會到了討論課、三級項目的意義所在。對于只接觸課本只動筆桿的我們,面臨實際的設(shè)計,讓我們很是尷尬,

16、都說理論聯(lián)系實際,真正到聯(lián)系的時候才發(fā)現(xiàn)挺困難的,不過正是理論知識的各種補充才讓我們能最終完成任務(wù),然后深深地體會到理論對現(xiàn)實的指導(dǎo)作用。我們現(xiàn)在最缺乏的就是實踐動手的經(jīng)驗,而理論聯(lián)系實踐并不像我們想象的那么簡單,它需要堅實的理論基礎(chǔ)和實際工作經(jīng)驗。堅實的理論基礎(chǔ)決定了我必須堅持學(xué)習(xí)新的知識新的理論,完善了自己的知識結(jié)構(gòu),才能在以后的實際中輕松面對。在這個一邊忙著復(fù)習(xí)忙著考試又要準備討論課三級項目的日子里,真真正正的體會到了時間的寶貴,有點像高中忙忙碌碌的生活,不過能按時完成三級項目對我們來說也是一個莫大的安慰。嚴謹和細心是做項目的必要態(tài)度,要想做好一件事,就必須一絲不茍、態(tài)度認真。俗話說:“

17、失之毫厘,謬之千里?!痹谠O(shè)計上尤其應(yīng)該注意。再者就是設(shè)計中要嚴謹和細心,任何的微小誤差都達不到預(yù)計的結(jié)果,當然對于我們來說就是設(shè)計中要走一些彎路,而且在這個嚴重缺少時間又惦記回家問題的我們來說也是一個很嚴重的打擊。不過,困難雖是難免的,但我們有信心就能并且已經(jīng)戰(zhàn)勝了困難,完成了這個無比揪心的三級項目。因為時間等各種關(guān)系設(shè)計中難免有些不足還請老師助教給予批評和幫助。程序:org0000hljmpmainorg000bhljmpit0porg001bhljmpit1porg0100hdb0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;0-9的共陽極顯示段碼

18、org1000hmain:setbp3.0;6亮,綠燈clrp3.1movtmod,#01h;設(shè)t0方式1,定時,t1為方式1,計數(shù);setbit0;外部中斷0為跳沿方式有效;setbit1;外部中斷1為跳沿方式有效;setbpx0;外部中斷0為高優(yōu)先級中斷;setbpx1;外部中斷1為高優(yōu)先級中斷;clrpt0;定時器0為低優(yōu)先級中斷;clrpt1;計數(shù)器1為低優(yōu)先級中斷mov20h,#0ah;中斷10次為1s,中斷計數(shù)單元為20hmov19h,#05hmov29h,#55h;01010101b,不斷左移位,相當于最高兩位的0和1轉(zhuǎn)換mov18h,#05h;display子程序執(zhí)行這么多次后

19、結(jié)束clra;a清零mov30h,a;“時”單元清零mov31h,a;“分”單元清零mov32h,a;“秒”單元清零setbet0;允許中斷setbet1;setbex0;setbex1setbea;cpu開中斷movth0,#3ch;給t0裝入計數(shù)初值,可計時100msmovtl0,#0b0h;movth1,#3ch;給t1裝入計數(shù)初值movtl1,#0b0hsetbtr0;啟動計數(shù);setbtr1movr1,#31hhere:nop;允許被中斷l(xiāng)calladjustajmphere;反復(fù)調(diào)用顯示子程序adjust:movr3,#00ha1:lcalldisplaymovp1,#0ffhjn

20、bp1.2,k3jnbp1.1,k2jnbp1.0,k1jnbp1.3,k4ljmpa1;如果沒有鍵按下重新檢測;等待按鍵抬起來j3:jbp1.2,a1lcalldisplayljmpj3j2:jbp1.1,a1lcalldisplayljmpj2j1:jbp1.0,a1lcalldisplayljmpj1j4:jbp1.3,a1lcalldisplayljmpj4k3:lcalldelayjbp1.2,a1;確實有鍵按下,進入下面處理,否則嚴重干擾,重測mova,r1anla,#0fhcjnea,#09h,m1mova,r1adda,#10hanla,#0f0hmovr1,ajmpm2m1:

21、incr1m2:lcalldisplayljmpj3;等按鍵彈起來,按一次,只加一次k2:lcalldelayjbp1.1,a1mova,r1anla,#0fhjnznonboundmova,r1clrcsubba,#06hmovr1,anonbound:decr1lcalldisplayljmpj2k1:lcalldelayjbp1.0,a1incr3cjner3,#01h,twice1movr1,#30hjmps1twice1:cjner3,#02h,done;完了movr1,#31hs1:lcalldisplayljmpj1k4:lcalldelayjbp1.3,n1jmpn2n1:lj

22、mpa1n2:clrtr0setbtr1incr3cjner3,#01h,twice2movr1,#30hjmps2twice2:cjner3,#02h,done;完了movr1,#31hs2:lcalldisplayljmpj4done:nopretit0p:pushacc;保護現(xiàn)場pushpswclreamovth0,#3ch;重新裝入計數(shù)初值movtl0,#0b0hdjnz19h,half;半秒mov19h,#05hmova,29hrlamov29h,ahalf:djnz20h,return;1s還沒有到,那么就返回繼續(xù)計數(shù)100smov20h,#0ah;否則,重新裝入中斷次數(shù)計數(shù)值mo

23、va,#01h;adda,32h;秒單元增1daa;將二進制的秒數(shù)轉(zhuǎn)換成bcd碼,以便顯示mov32h,a;返回到秒單元保存cjnea,#60h,return;如果不滿60s,繼續(xù)下一個1s的計時mov32h,#00h;否則,秒單元就要清零mova,#01hadda,31h;針對分單元加1daamov31h,acjnea,#60h,return;如果不滿60分鐘,則繼續(xù)下一個1s的計數(shù)mov31h,#00h;否則分單元清零mova,#02hadda,30h;針對時單元加1daamov30h,acjnea,#24h,return;如果不滿24小時,則繼續(xù)計數(shù),否則,全部清零mov30h,#00h

24、;時單元清零return:setbeapoppswpopaccretidisplay:;clreapushaccpushpswpush01hloop0:djnz18h,startljmpfinishstart:movdptr,#0100hmovc,(29h).7;29h的最高兩位每隔半秒互調(diào)一次,只要不斷調(diào)用顯示程序,輸出就會每隔半秒變化一次movp3.7,cmovc,(29h).6movp3.6,cmova,#11hcjnea,30h,next1;若是12小于小時數(shù),則cy被置位,否則清零next1:jcnight;c為0,是早上setbp3.0;6亮,綠燈clrp3.1jmpmoonnig

25、ht:setbp3.1;c為1,是晚上clrp3.0;7亮,黃燈moon:nopnopmov10h,#01h;存放片選碼movr0,#30h;寄存器間接尋址setb(21h).0;指示將要顯示的是十位還是個位,1表示十位,0表示個位loop1:mova,r0;a中是待顯示的兩位數(shù)bcd碼jnb(21h).0,next;若將要顯示個位則直接相與取位swapa;否則,十位與個位交換再取位next:cpl(21h).0;指示位取反,為下次顯示做準備anla,#0fh;取得待顯示的一位bcd碼movca,a+dptr;取得待顯示段碼movp0,a;準備顯示movp2,10h;片選,亮了nopnopno

26、pmovp0,#0ffh;關(guān)閉數(shù)碼管mova,10hrla;為下次顯示做準備mov10h,ajnb(21h).0,loop1;若將顯示個位,則r0不變incr0;否則,加一cjner0,#33h,loop1;若剛才顯示的是秒并且是個位,也就是顯示結(jié)束,那么重新置數(shù)ajmploop0;否則,繼續(xù)顯示finish:mov18h,#05hpop01hpoppswpopacc;setbearet;int0中斷服務(wù)程序eint0:pushpsw;它本來就是高優(yōu)先級中斷,所以不會再被打斷pushaccincr1mova,r1daamovr1,apopaccpoppswreti;int1中斷服務(wù)程序eint1:pushpswp

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論