單片機(jī)實(shí)驗(yàn)板實(shí)現(xiàn)交通_第1頁(yè)
單片機(jī)實(shí)驗(yàn)板實(shí)現(xiàn)交通_第2頁(yè)
單片機(jī)實(shí)驗(yàn)板實(shí)現(xiàn)交通_第3頁(yè)
單片機(jī)實(shí)驗(yàn)板實(shí)現(xiàn)交通_第4頁(yè)
單片機(jī)實(shí)驗(yàn)板實(shí)現(xiàn)交通_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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.C51單片機(jī)系統(tǒng)的硬件資源CPU鍵盤LED數(shù)碼管/液晶蜂鳴器串行通信E2PROM2.城市交通信號(hào)控制系統(tǒng)

設(shè)計(jì)要求在城市道路十字交叉路口,設(shè)計(jì)一個(gè)交通信號(hào)燈控制系統(tǒng);主干道通車時(shí)間1~60s,可任意設(shè)置;黃燈亮?xí)r間1~60s,可任意設(shè)置;采用倒計(jì)時(shí)的方式,用兩位十進(jìn)制數(shù)字顯示紅、綠、黃信號(hào)燈亮的倒計(jì)時(shí)時(shí)間;可以暫停交通燈系統(tǒng)的運(yùn)行,暫停時(shí)紅、綠、黃信號(hào)燈信號(hào)燈全亮。3.城市交通信號(hào)控制系統(tǒng)

硬件組成分析交通信號(hào)燈倒計(jì)時(shí)時(shí)間顯示輸入計(jì)時(shí)器控制器存儲(chǔ)器三位LED兩位數(shù)碼管鍵盤單片機(jī)單片機(jī)24c024.硬件結(jié)構(gòu)框圖綠、黃、紅燈時(shí)間顯示計(jì)時(shí)器控制器設(shè)置定時(shí)值定時(shí)值存儲(chǔ)器設(shè)置運(yùn)行狀態(tài)5、城市交通信號(hào)控制系統(tǒng)

程序設(shè)計(jì)利用一般的方式實(shí)現(xiàn)程序設(shè)計(jì);利用對(duì)象描述和狀態(tài)機(jī)實(shí)現(xiàn)程序設(shè)計(jì);利用RTXTiny51系統(tǒng)實(shí)現(xiàn)程序設(shè)計(jì)。5.1一般的方式實(shí)現(xiàn)程序設(shè)計(jì)流程圖開(kāi)始初始化狀態(tài)改變?計(jì)時(shí)處理交通燈處理計(jì)時(shí)顯示定時(shí)值改變?狀態(tài)處理在設(shè)置狀態(tài)?定時(shí)值處理YYNN交通燈控制器的狀態(tài)有:設(shè)置狀態(tài)(包括設(shè)置紅、黃、綠燈狀態(tài))、運(yùn)行狀態(tài)(包括紅、黃、綠燈亮的狀態(tài))、暫停狀態(tài)。利用定時(shí)器T0進(jìn)行1秒的計(jì)時(shí),定時(shí)中斷程序的流程圖如下:是否為運(yùn)行狀態(tài)?計(jì)時(shí)時(shí)間為0?改變交通燈的亮滅裝入新的倒計(jì)時(shí)值倒計(jì)時(shí)值減一中斷結(jié)束YYNN鍵盤掃描流程圖:有鍵盤按下?延時(shí)有鍵盤按下?讀取鍵盤狀態(tài)鍵盤釋放?結(jié)束開(kāi)始YNYYNN5.2利用對(duì)象描述和狀態(tài)機(jī)實(shí)現(xiàn)程序設(shè)計(jì)對(duì)象描述交通燈系統(tǒng)的設(shè)計(jì)實(shí)際上是對(duì)幾個(gè)對(duì)象的行為進(jìn)行描述,這些對(duì)象包括:鍵盤、信號(hào)燈、計(jì)時(shí)器、定時(shí)設(shè)置器、控制器。狀態(tài)實(shí)現(xiàn)每個(gè)對(duì)象處于不同狀態(tài),在不同狀態(tài)下有不同的行為。對(duì)象描述

1.類型定義了一件事物的抽象特點(diǎn)。通常來(lái)說(shuō),類型定義了事物的屬性和它可以做到的(它的行為)。舉例來(lái)說(shuō),“花”這個(gè)類型會(huì)包含花的一切基礎(chǔ)特征,例如它的顏色、香氣和開(kāi)花的能力。

2.對(duì)象(Object)是類型的實(shí)例。可以通過(guò)對(duì)象的屬性和方法訪問(wèn)該對(duì)象。類型:花屬性:顏色;香氣;行為:開(kāi)花();定義玫瑰是花;玫瑰.顏色=深紅;玫瑰.香氣=濃郁;玫瑰.開(kāi)花()任務(wù)n:狀態(tài)f…狀態(tài)描述每個(gè)操作任務(wù)都處在不同的狀態(tài)中,每個(gè)任務(wù)在某一狀態(tài)下,每次執(zhí)行過(guò)程中連續(xù)執(zhí)行的時(shí)間很短,各個(gè)任務(wù)輪流執(zhí)行,分時(shí)輪流占用內(nèi)核,執(zhí)行的效果好像多個(gè)任務(wù)同時(shí)執(zhí)行,這稱為“時(shí)間輪轉(zhuǎn)調(diào)度法”。任務(wù)2:狀態(tài)b任務(wù)1:狀態(tài)a任務(wù)n:狀態(tài)c…任務(wù)2:狀態(tài)e任務(wù)1:狀態(tài)d信號(hào)燈的狀態(tài)圖:紅燈亮黃燈亮綠燈亮全亮綠燈倒計(jì)時(shí)結(jié)束設(shè)置紅燈時(shí)間紅燈倒計(jì)時(shí)結(jié)束設(shè)置黃燈時(shí)間黃燈倒計(jì)時(shí)結(jié)束設(shè)置綠燈時(shí)間暫停暫停暫停信號(hào)燈的數(shù)據(jù)結(jié)構(gòu):structlight{ucharstate;}l1;voidLightProcess();lightucharstate;voidLightProcess();//燈的狀態(tài)為0則紅燈亮,1則黃燈亮,2則綠燈亮voidLightProcess(){if(s1.pause!=0){r=0;g=0;y=0;}else{if(s1.state!=3) l1.state=s1.state;switch(l1.state){case0:r=0;g=1;y=1;break;case1:y=0;r=1;g=1;break;case2:g=0;r=1;y=1;break;}}}//如果暫停標(biāo)志為1,則進(jìn)入暫停狀態(tài)//暫停時(shí)紅綠黃燈全亮//若系統(tǒng)在設(shè)置狀態(tài),系統(tǒng)狀態(tài)變量s1.state<3//利用系統(tǒng)的狀態(tài)確定燈的狀態(tài)//判斷燈的狀態(tài)//狀態(tài)值0為紅燈亮的狀態(tài),點(diǎn)亮紅燈//狀態(tài)值1為黃燈亮的狀態(tài),點(diǎn)亮黃燈//狀態(tài)值2為綠燈亮的狀態(tài),點(diǎn)亮綠燈計(jì)時(shí)器的狀態(tài)圖:

裝入初值倒計(jì)時(shí)暫停暫停暫停開(kāi)始開(kāi)始倒計(jì)時(shí)為0停止控制器為運(yùn)行狀態(tài)計(jì)時(shí)器的數(shù)據(jù)結(jié)構(gòu)structcounter{uintms5;

ucharval;}c1;voidTimerProcess();counterucharms5;voidCounterProcess();ucharval;//5ms計(jì)數(shù)器,5ms中斷后計(jì)數(shù)器加1//秒倒計(jì)時(shí)器,ms5計(jì)數(shù)滿200后val減1voidCounterProcess(){if(s1.state==3){if(s1.pause==0) { if(++c1.ms5==200) { c1.ms5=0; if(c1.val==0) { if(++l1.state==3) { l1.state=0; } c1.val=t1.val[l1.state]; } else c1.val--; } }}}//系統(tǒng)狀態(tài)3為運(yùn)行狀態(tài)//若暫停標(biāo)志為0//若5毫秒計(jì)數(shù)器為200,則滿1秒//若秒倒計(jì)時(shí)器為0//改變燈的狀態(tài),若從綠燈轉(zhuǎn)為紅燈,則狀態(tài)從3變?yōu)?//在秒倒計(jì)時(shí)器中裝入新的倒計(jì)時(shí)值//若秒倒計(jì)時(shí)器不為0,則計(jì)時(shí)值減1定時(shí)設(shè)置器的狀態(tài)圖設(shè)置紅燈時(shí)間設(shè)置黃燈時(shí)間設(shè)置綠燈時(shí)間等待設(shè)置黃燈狀態(tài)設(shè)置綠燈狀態(tài)進(jìn)入運(yùn)行狀態(tài)+/-鍵按動(dòng)+/-鍵按動(dòng)+/-鍵按動(dòng)設(shè)置紅燈狀態(tài)定時(shí)設(shè)置器的數(shù)據(jù)結(jié)構(gòu)structtimer{ucharval[3];}t1;timervoidTimerProcess();ucharval[3];voidTimerProcess();//三個(gè)元素對(duì)應(yīng)三個(gè)交通燈的定時(shí)值voidTimerProcess(){if(cess2){cess2=0; if(s1.state<3) { if(++t1.val[s1.state]>60) t1.val[s1.state]=60; }}if(cess3){cess3=0; if(s1.state<3) { if(t1.val[s1.state]==0) t1.val[s1.state]=0; else t1.val[s1.state]--; }} }//cess2為1,說(shuō)明+鍵按下//把cess2清零等待下一次響應(yīng)//如果系統(tǒng)在設(shè)置狀態(tài)//對(duì)應(yīng)燈的定時(shí)值加1//若加1后定時(shí)值超過(guò)60,則保持為60//cess3為1,說(shuō)明-鍵按下//若定時(shí)值不為0,對(duì)應(yīng)燈的定時(shí)值減1//若定時(shí)值超過(guò)0,則保持為0控制器的狀態(tài)圖設(shè)置紅燈設(shè)置黃燈設(shè)置綠燈運(yùn)行暫停按下設(shè)置鍵按下設(shè)置鍵按下設(shè)置鍵按下暫停鍵按下暫停鍵按下暫停鍵按下暫停鍵啟動(dòng)啟動(dòng)啟動(dòng)啟動(dòng)structsys{ucharstate;ucharpause;}s1;//系統(tǒng)狀態(tài)為0~3,對(duì)應(yīng)設(shè)置紅燈時(shí)間、設(shè)置黃燈狀態(tài)、設(shè)置綠燈時(shí)間和運(yùn)行sysvoidSysProcess();ucharstate;ucharpause;voidSysProcess();//暫停標(biāo)志位voidSysProcess(){if(cess1){cess1=0; if(++s1.state==4) s1.state=0; if(s1.state==3) { WriteByteToEPROM(t1.val[0],0); delay_ms(2); WriteByteToEPROM(t1.val[1],1); delay_ms(2); WriteByteToEPROM(t1.val[2],2); }}if(cess4){ cess4=0; s1.pause=~s1.pause;}}//cess1為1,說(shuō)明設(shè)置鍵按下//設(shè)置鍵按下后進(jìn)行狀態(tài)轉(zhuǎn)換//系統(tǒng)狀態(tài)超過(guò)4則轉(zhuǎn)為設(shè)置紅燈狀態(tài)//若要進(jìn)入運(yùn)行狀態(tài)//把設(shè)置的定時(shí)值存入存儲(chǔ)器中//cess4為1,說(shuō)明暫停鍵按下//改變暫停狀態(tài)鍵盤掃描程序的流程圖等待輸入狀態(tài)消抖狀態(tài)等待釋放狀態(tài)鍵盤處理狀態(tài)延時(shí)結(jié)束前輸入信號(hào)消失檢測(cè)到輸入信號(hào)延時(shí)結(jié)束輸入信號(hào)消失structkey{ucharstate;ucharvalue;uchartimer;ucharprocess1;ucharprocess2;ucharprocess3;ucharprocess4;}k1;//鍵盤掃描的狀態(tài)//掃描讀取的鍵盤值//延時(shí)的計(jì)時(shí)器//暫停鍵按下的標(biāo)志位//+鍵按下的標(biāo)志位//-鍵按下的標(biāo)志位//設(shè)置鍵按下的標(biāo)志位對(duì)象之間的通信信號(hào)燈計(jì)時(shí)器定時(shí)設(shè)置器鍵盤系統(tǒng)cess3s1.pauses1.pauses1.statet1.val[3]c1.val初始化函數(shù)voidSysInit(){s1.pause=0;s1.state=0;l1.state=0;c1.ms5=0;c1.val=0;t1.val[0]=ReadByteFromEPROM(0);delay_ms(2);t1.val[1]=ReadByteFromEPROM(1);delay_ms(2);t1.val[2]=ReadByteFromEPROM(2);}//從存儲(chǔ)器中讀出定時(shí)值//延時(shí)2ms//對(duì)各個(gè)狀態(tài)進(jìn)行初始化//對(duì)各個(gè)計(jì)數(shù)器進(jìn)行初始化利用RTXTiny51操作系統(tǒng)實(shí)現(xiàn)交通燈控制器RTX51簡(jiǎn)介許多微處理器應(yīng)用程序要求同時(shí)執(zhí)行兩個(gè)工作或任務(wù),對(duì)于這樣的應(yīng)用程序,一個(gè)實(shí)時(shí)操作系統(tǒng)。RTOS允許靈活的分配系統(tǒng)資源(中央處理器、存儲(chǔ)器等等)給各個(gè)任務(wù)。

RTX51是一個(gè)容易使用的強(qiáng)大的實(shí)時(shí)操作系統(tǒng),RTX51可以運(yùn)行于所有的8051派生機(jī)型。使用RTX51操作系統(tǒng)需要頭文件rtx51tny.h。時(shí)間片輪轉(zhuǎn)調(diào)度法Rtx51中的任務(wù)并不是并行執(zhí)行的,而是按時(shí)間片輪流執(zhí)行的??衫玫闹醒胩幚砥鲿r(shí)間被分成時(shí)間片,由RTX51分配一個(gè)時(shí)間片給每個(gè)任務(wù)。每個(gè)任務(wù)允許在一段預(yù)定時(shí)間內(nèi)執(zhí)行,然后rtx51切換到另一準(zhǔn)備運(yùn)行的任務(wù)并且允許這個(gè)任務(wù)執(zhí)行片刻。

時(shí)間片非常短。通常為幾個(gè)毫秒因此它表現(xiàn)得如同各個(gè)任務(wù)是同時(shí)地執(zhí)行。任務(wù)運(yùn)行等待建立注銷事件發(fā)生RTX51任務(wù)定義實(shí)時(shí)或多任務(wù)應(yīng)用程序由一個(gè)或多個(gè)完成具體的操作的任務(wù)組成,RTX51Tiny允許最多16個(gè)任務(wù)。任務(wù)是使用下面的格式定義的返回質(zhì)類型和參數(shù)列表為空的C語(yǔ)言函數(shù)voidfunc(void)_task_numnum是一個(gè)從0到15的任務(wù)標(biāo)識(shí)號(hào)例子voidjob0(void)_task_0{while(1){counter0++;/*incrementcounter*/}}定義函數(shù)job0為任務(wù)號(hào)0。os_create_task#include<rtx51tny.h>charos_create_task(unsignedchartask_id);

/*IDoftasktostart*/文字說(shuō)明|os_create_task函數(shù)啟動(dòng)使用用task_id表示的任務(wù)號(hào)定義的任務(wù)函數(shù)。如果任務(wù)成功地開(kāi)始o(jì)s_create_task函數(shù)的返回值為0,如果任務(wù)不能被開(kāi)始,或如果沒(méi)有使用規(guī)定任務(wù)號(hào)定義的任務(wù)返回值為-1。例:#include<rtx51tny.h>#include<stdio.h>/*forprintf*/voidnew_task(void)_task_2{}voidtst_os_create_task(void)_task_0{if(os_create_task(2)){printf("Couldn'tstarttask2\n");}}os_delete_task摘要#include<rtx51tny.h>charos_delete_task(unsignedchartask_id);

/*IDoftasktostopanddelete*/文字說(shuō)明:os_delete_task函數(shù)停止用task_id表示的任務(wù),指定的任務(wù)被從任務(wù)列表中刪除。如果任務(wù)成功地停止和刪除,os_create_task函數(shù)的返回值為0;如果規(guī)定的任務(wù)不存在或沒(méi)有開(kāi)始返回值為-1。例子

#include<rtx51tny.h>#include<stdio.h>/*forprintf*/voidtst_os_delete_task(void)_task_0{if(os_delete_task(2)){printf("Couldn'tstoptask2\n");}}任務(wù)切換可利用的中央處理器時(shí)間被分成時(shí)間片,由RTX51Tiny分配一個(gè)時(shí)間片給每個(gè)任務(wù)。每個(gè)任務(wù)允許執(zhí)行一個(gè)預(yù)先確定的時(shí)間,然后RTX51Tiny切換到另一準(zhǔn)備運(yùn)行的任務(wù)并且允許這個(gè)任務(wù)執(zhí)行片刻。一個(gè)時(shí)間片的持續(xù)時(shí)間可以用配置變量TIMESHARING定義。RTX51事件即使是在一個(gè)任務(wù)的時(shí)間片到達(dá)前,你也可以使用os_wait函數(shù)通知RTX51中止正在運(yùn)行的當(dāng)前任務(wù),等待一指定事件的發(fā)生,這時(shí)可以讓另一個(gè)任務(wù)開(kāi)始執(zhí)行。直到這個(gè)指定事件發(fā)生后,等待該事件的任務(wù)才繼續(xù)執(zhí)行。RTX51的等待功能支持以下事件超時(shí)(Timeout):掛起運(yùn)轉(zhuǎn)的任務(wù)指定數(shù)量的時(shí)鐘報(bào)時(shí)周期;信號(hào)(Signal):用于任務(wù)內(nèi)部協(xié)調(diào)。#include<rtx51tny.h>charos_wait(unsignedcharevent_sel,/*eventstowaitfor*/unsignedcharticks,/*timertickstowait*/unsignedintdummy);/*unusedargument*/os_wait函數(shù)停止當(dāng)前任務(wù)并等待一個(gè)或幾個(gè)事件;比如一個(gè)一個(gè)超時(shí)或從一個(gè)任務(wù)發(fā)送給另一個(gè)任務(wù)的信號(hào)。參數(shù)event_sel確定事件或要等待的事件。并且可以綜合使用下列常數(shù):事件常數(shù)文字說(shuō)明K_SIG等待一個(gè)信號(hào)K_TMO等待一個(gè)超時(shí)(time-out)上述事件可以用字符“|”進(jìn)行邏輯或。例如K_TMO|K_SIG規(guī)定任務(wù)等待一個(gè)超時(shí)或一個(gè)信號(hào)。參數(shù)ticks規(guī)定等待一個(gè)超時(shí)事件k_tmo的報(bào)時(shí)信號(hào)數(shù)目。返回值:當(dāng)一個(gè)指定的事件發(fā)生時(shí),任務(wù)允許運(yùn)行。運(yùn)行被恢復(fù)并且os_wait函數(shù)返回一個(gè)用于識(shí)別重新啟動(dòng)任務(wù)的事件的識(shí)別常數(shù)??赡艿姆祷刂凳牵菏录?shù)文字說(shuō)明SIG_EVENT接收到一個(gè)信號(hào)TMO_EVENT一個(gè)超時(shí)(time-out)已經(jīng)完成。NOT_OK參數(shù)event_sel的值無(wú)效。RTX51的信號(hào)

你可以使用os_wait功能暫停一個(gè)任務(wù)并等待從另一個(gè)任務(wù)發(fā)出的信號(hào)。這可以用于協(xié)調(diào)兩個(gè)或更多的任務(wù)。如果一任務(wù)在等待一個(gè)信號(hào)并且信號(hào)標(biāo)志是0,在這個(gè)信號(hào)被發(fā)送之前,這個(gè)任務(wù)將一直處于掛起狀態(tài);如果信號(hào)標(biāo)志已經(jīng)是1,當(dāng)任務(wù)查詢信號(hào)時(shí)信號(hào)標(biāo)志會(huì)被清除,并且繼續(xù)執(zhí)行任務(wù)。os_send_signal#include<rtx51tny.h>charos_send_signal(unsignedchartask_id);

/*IDoftasktosignal*/os_send_signal函數(shù)向任務(wù)task_id發(fā)送一個(gè)信號(hào),如果指定任務(wù)已經(jīng)在等待一個(gè)信號(hào),這個(gè)函數(shù)調(diào)用會(huì)把任務(wù)準(zhǔn)備好用于運(yùn)行。os_send_signal函數(shù)只可以從任務(wù)函數(shù)中調(diào)用。如果成功,os_send_signal函數(shù)的返回值為0;如果規(guī)定的任務(wù)不存在則返回值為-1。#include<stdio.h>/*forprintf*/voidsignal_func(void)_task_2{os_send_signal(8);/*signaltask#8*/}os_clear_signal#include<rtx51tny.h>charos_clear_signal(unsignedchartask_id);/*taskIDofsignaltoclear*/os_clear_signal函數(shù)清除用task_id表示的任務(wù)的信號(hào)標(biāo)志位。如果信號(hào)標(biāo)志位成功地清除,os_clear_signal函數(shù)的返回值為0;如果規(guī)定的任務(wù)不存在,返回值為-1。#include<rtx51tny.h>#include<stdio.h>/*forprintf*/voidtst_os_clear_signal(void)_task_8{os_clear_signal(5);/*clearsignalflagintask5*/}交通燈控制器任務(wù)圖任務(wù)初始化系統(tǒng)初始化時(shí)鐘計(jì)數(shù)鍵盤掃描鍵盤處理計(jì)時(shí)值寫入交通燈控制顯示發(fā)送消息任務(wù)走向任務(wù)編寫舉例:#defineINIT0#defineSET1#defineKEYCHECK2#defineKEYREAD3#defineWRITE4#defineCLOCK5#defineLIGHTS6#defineDISPLAY7#include<REG51.H>#include<rtx51tny.h>//RTX51頭文件//定義任務(wù)號(hào),//系統(tǒng)按任務(wù)號(hào)順序調(diào)度任務(wù)voidinit(void)_task_INIT{os_create_task(SET);os_create_task(CLOCK);os_create_task(KEYCHECK);os_create_task(KEYREAD);os_create_task(LIGHTS);os_create_task(DISPLAY);state_work=1;os_delete_task(INIT);}//在第0號(hào)初始化任務(wù)中建立其他的任務(wù)//完成后注銷該任務(wù),以后不進(jìn)行調(diào)度//暫停標(biāo)志位置1,系統(tǒng)在工作狀態(tài)任務(wù)初始化任務(wù)voidclock(void)_task_CLOCK{while(1){if(state_work) { if(ctime==0) { if(++light_state==3) light_state=0; ctime=settime[light_state]; } else ctime--;} os_send_signal(LIGHTS);

溫馨提示

  • 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)論