通訊系統(tǒng)溫度傳感系統(tǒng)及時鐘的設(shè)計_第1頁
通訊系統(tǒng)溫度傳感系統(tǒng)及時鐘的設(shè)計_第2頁
通訊系統(tǒng)溫度傳感系統(tǒng)及時鐘的設(shè)計_第3頁
通訊系統(tǒng)溫度傳感系統(tǒng)及時鐘的設(shè)計_第4頁
通訊系統(tǒng)溫度傳感系統(tǒng)及時鐘的設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、傳感器課程設(shè)計報告題目:通訊系統(tǒng)、溫度傳感系統(tǒng)及時鐘的設(shè)計日期:2013-12-0228目錄目錄2一.設(shè)計任務(wù)與要求 .31)課程設(shè)計任務(wù) .32)課程設(shè)計要求 .3二課程設(shè)計方案 31) 課程設(shè)計思路 .32) 芯片功能 32.1 DS1302 功能簡介 .42.2 DS18B20 功能簡介 .5三 .硬件電路設(shè)計 61)單片機主電路原理圖72)DS1302 原理圖 .73)DS18B20 原理圖 .74)通訊流程圖85 ) DS18B20溫度控制流程圖 96) DS1302時鐘控制流程圖 .10四.通訊、溫度、時鐘效果圖10五程序清單 .141 )通訊 142)溫度 173)時鐘 21六.

2、 實驗心得 . 24七. 自評分 28一.設(shè)計任務(wù)與要求1)課程設(shè)計任務(wù)1、設(shè)計簡單的通訊功能2、設(shè)計簡單的溫度顯示功能3、設(shè)計簡單的時鐘顯示功能2)課程設(shè)計要求1、完成基本的設(shè)計功能2、分工明確,理解程序功能作用3、達(dá)到最終的效果二課程設(shè)計方案1)課程設(shè)計思路通訊:使單片機達(dá)到發(fā)送與接收數(shù)據(jù)的功能溫度:使用單片機讀取溫度傳感器的值,經(jīng)過轉(zhuǎn)換,在8段LED數(shù)碼管顯示時鐘:時鐘系統(tǒng)是通過12C總線訪問DS1302獲取和設(shè)置時鐘的值2)芯片功能2.1 DS1302功能簡介時鐘芯片使用DS1302該模塊電路原理圖如下圖引腳圖時鐘電路采用的是ds1302芯片,DS1302是美國DALLAS公司推出的一

3、種 高性能、低功耗、帶 RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補償功能,工作電壓為 2.5V5.5V。采用三線接口 與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的 時鐘信號或RAM 數(shù)據(jù)。工作電壓與單片機的輸入電壓比較適合。 上面是它的一些基本的應(yīng)用介紹。F面是它的引腳的描述。管腳描述XI,X2弦7住醫(yī)Hz晶振管腦GND胞RST乜位腳I/O敢擁輸入/輸出引腳SCLK串行時鐘VccLVccl 電源供電管腳F面是DS1302的時鐘寄存器。我們要讀取的時間數(shù)據(jù)就是從下面這些數(shù)據(jù)胡,1。DO0分 1O0 0 &小時I t0oa I D1 

4、6;° 1 0 1 °i L' 1%694 J 31 O* I a° 1 ?D' %門 口 由|乜| *一。1 °年 10Q0!,10 %0° 1 °F1相淹電1;00 'o 1%時鄲|老T乩寄存器中讀取出來的。當(dāng)我們要想調(diào)整時間時,可以把時間數(shù)據(jù)寫入到相應(yīng)的寄 存器中就可以了。DS1302和單片機的連接很簡單。只需一根復(fù)位線,一根時鐘線,一根數(shù)據(jù)線即 可。同時它本身還需要接一個32.768KHZ的晶振來提供時鐘源。對于晶振的兩端 可以分別接一個6PF左右的電容以提高晶振的精確度。同時可以在第8腳接上一 個3.

5、6V的可充電的電池。當(dāng)系統(tǒng)正常工作時可以對電池進(jìn)行涓流充電。當(dāng)系統(tǒng) 掉電時,DS1302由這個電池提供的能量繼續(xù)工作。2.2 DS18B20功能簡介通過1820進(jìn)行讀數(shù)據(jù),將讀出來的數(shù)據(jù)進(jìn)行進(jìn)制轉(zhuǎn)換,轉(zhuǎn)換后送到數(shù)碼管 顯示。工作原理介紹:全數(shù)字溫度轉(zhuǎn)換及輸出先進(jìn)的單總線數(shù)據(jù)通信。最高丄2位分辨率,精度PJ達(dá)土 0.5攝氏度°12位分辨率時的最大工作周期為750毫秒 可選擇寄生工作方式°檢測溫度范圍為-55C - + 125" C ( - 67D F - + 257u F) 內(nèi) W EEPROM 限溫報警功能。64 1立光刻ROM 內(nèi)置產(chǎn)品序列號.方便多機掛接

6、76;多樣封裝形式.適應(yīng)不同硬件系統(tǒng)上DS18B20是單總線的數(shù)字溫度傳感器。其與單片機的接口只需要一根數(shù)據(jù)線 即可。當(dāng)然連線簡單意味著軟件處理上可能要麻煩一點。下面來看看它的優(yōu)點 看看它的靚照。外形和我們常用的三極管沒有什么兩樣哦DS18B20的內(nèi)部存儲器分為以下幾部分 ROM:存放該器件的編碼。 前8位為單線系列的編碼(DS18B20的編碼是19H)后面48位為芯 片的唯一序列號。在出場的時候就已經(jīng)設(shè)置好,用戶無法更改。最 后8位是以上56位的CRC碼。RAM : DS18B20的內(nèi)部暫存器共9個字節(jié)。其中第一個和第二個 字節(jié)存放轉(zhuǎn)換后的溫度值。第二個和第三個字節(jié)分別存放高溫和低溫告警值。

7、(可以用RAM指令將其拷貝到EEPROM中)第四個字節(jié)為配置寄存器。 第57個字節(jié)保留。第9個字節(jié)為前8個字節(jié)的CRC碼。2322212°尸2-4MSb(unit =°C)LSbSSSSS262524LSBMSBDS18B20的溫度存放如上圖所示。其中 S位符號位。當(dāng)溫度值為負(fù)值時,S =1,反之則S = 0。我們把得到的溫度數(shù)據(jù)乘上對應(yīng)的分辨率即可以得到轉(zhuǎn)換 后的溫度值。DS18B20的通訊協(xié)議:在對DS18B20進(jìn)行讀寫編程時,必須嚴(yán)格保證讀寫的時序。否則將無法讀 取測溫結(jié)果。根據(jù)DS18B20的通訊協(xié)議,主機控制 DS18B20完成溫度轉(zhuǎn)換必須 經(jīng)過3個步驟:每一次讀

8、寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令。這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主機將數(shù)據(jù)線下拉500us,然后釋放,DS18B20收到信號后等待16160us 然后發(fā)出60240us的存在低脈沖,主機收到此信號表示復(fù)位成功。LINE TYPE LEGEND:Bus master active lowDS13B20 active low Both bus master and mujniiiLLds 1BB2O active towReswtw pulf-up上圖即DS18B20的復(fù)位時序圖F面是讀操作的時序圖MASTER READ p0&

9、quot; SLOT1 tflEC 5MASTER READSLOT叱cHARE BUSGND這是寫操作的時序圖瀰SAMPlfS :'a "'* '"亠0 *.?g uf1 "- - -團(tuán)團(tuán)瞬貌翩蹋鞭継牌:.m .:;:搠移$豐±;常二息:化址匕二:二:?:套二-汀丫卩建那那:三.硬件電路設(shè)計1)單片機主電路原理圖壬上Lrr卜fwfer4 t-feu£ijlmji匸>5 sTJYF=S=SF 一 F=s3t "匚二.-h一二Tr-T-亠亠.一3fl?xtx3 畫“目”日B5H P 4* M=a fBBBB

10、. n-* ii 1s空二 wkll-turbb蜃一廠2) DS1302原理圖9CL7r8RESETA面XIX2GNDV0C2I'YT1產(chǎn)J 7XTAL3TOSDA4DS13O23) DS18B20原理圖DS18B2CGXD284)通訊流程圖通訊子程序發(fā)送八位命令和校臉有誤7收到有用數(shù)扌居F妥竟數(shù)據(jù)井校驗發(fā)送成功命令返回用數(shù)據(jù)變量存儲有用 數(shù)據(jù),誦訊結(jié)束后存 人數(shù)據(jù)5)溫度流程圖6)時間流程圖開始開始初始化,啟動初始化,啟動寫控制指令位(從低到高)寫控制指令位(從低到高)1LK發(fā)脈沖控制指令右移1位控制指令右移1位延時15-45/ 右移8次?/ 右移8次?、X、 右移8次?四.通訊、溫

11、度、時鐘效果圖通訊:STC-ISP (V6n 57)官方STCMCU- c(j» (研發(fā)願問 QQ: STC:全球最大的刃氐 匚叵Jx|單片機型號STC12C5A5QS2V引腳數(shù)Autc 7串口號USE-SERIAL CK34O(COM4)V掃描閱低波特率24007 堀高波特率115200 v起始地址.00000回潘除代碼舞沖區(qū)I打開程序文件0x00000 WEEFKOM沖區(qū)打開EEFBOLI立件程序文件耽文件串口助手Ksiltt真設(shè)置范例程序選型/價格/祥品接收緩沖區(qū):文本梗式 ® ME腮式渚空播收區(qū)I傑存播收數(shù)據(jù)00h 畫便件選項 脫機下載/U

12、?f自動増量|自定文加巒下竭#選擇使用內(nèi)部TRC時鉀環(huán)選為外部時樹0振蕩器放大増益口鈿以上逢蛙喘擇1境位腳用作T/D 口 HISET2腳的電平低于1.33W芯片復(fù)位E上電震位使用較長延時上電復(fù)位時由硬件自動啟動看門狗看門駒定時貉分頻系數(shù)曲«0空閑狀窸時停止看門狗計數(shù)下次冷啟動時FL. 0/F1-1W3才可下載程序下次下煢用尸程序時擦除用戶eepbonE渚空發(fā)送區(qū)保存發(fā)嗟數(shù)據(jù)串口下載f編程停止檢測肛U選項注意/幫助重復(fù)延時3秒v重套編程0每欠下靈前都重新裝羲目標(biāo)文件當(dāng)目標(biāo)文件變讓時自動裝載并發(fā)送下載命令清空全部數(shù)據(jù)1111發(fā)送緩沖區(qū) O立本複式 ® HK模式HEXE a爭手苻

13、串發(fā)送 VIT)a破特率9&00蕪閉串口 編程芫成后自動打開串口>|自動循環(huán)發(fā)電|ns間隔校驗位無驗位7停止位1位V發(fā)送.PL D和Fl. 1與下次下載無關(guān).下次下載用戶程庫時不標(biāo)除用戶eefromEA |.芯片出廠序列號;0003009909042D.單片機型號:STC12C5A60S2.固件版本號;&.2I撫作咸功!V208 清零760接收C : VDacumens ni SettingsAdmiiii5trtQrS)l 11. h«x發(fā)布項目程序發(fā)布項目釉助讀取本機硬盤號|回標(biāo)示音 成功計數(shù)匚可« 七gOODOOOOO溫度:時鐘:六程序清單1)通

14、訊#in clude<reg51.h>#i nclude<i ntri ns.h>sfr AUXR=0x8e;/ 計算波特率un sig ned char i,j=0;unsigned char num=0x00,0x00,0x00,0x00;unsigned char disp4=0x00,0x00,0x00,0x00;sbit P2_0=P2A0;sbit P2_1= P2A1;sbit P2_2=P2A2;sbit P2_3=P2A3;sbit P2_4=P2A4;sbit P2_5=P2A5;sbit P2_6=P2A6;sbit P2_7=P2A7;unsig

15、nedcharcodeled_code10=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XD8,0X80,0X90; /unsigned char led_reg8=0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08; void UartInit()/9600bps12.000MHzPCON &= 0x7F;SCON = 0x50;/波特率不倍速/8 位數(shù)據(jù) ,可變波特率AUXR |= 0x40;/定時器1時鐘為Fosc,即1TAUXR &= 0xFE;/串口 1 選擇定時器 1 為波特率發(fā)生器TMOD &= 0x

16、0F;/清除定時器 1 模式位TMOD |= 0x20;/設(shè)定定時器 1 為 8 位自動重裝方式TL1 = 0xD9;/設(shè)定定時初值TH1 = 0xD9;/設(shè)定定時器重裝值ET1 = 0;/禁止定時器 1 中斷TR1 = 1;/啟動定時器 1EA=1;ES=1;void Delay2ms() /12.000MHzunsigned char i, j;i = 24;j = 85;dowhile (-j); while (-i);void serial() interrupt 4 if(RI)RI=0; numj=SBUF; j+;if(j=5)j=0;if(num0+num1+num2+num3

17、=num4) disp0=num0;disp1=num1;disp2=num2;disp3=num3;SBUF=0x00; elseSBUF=0X01; if(TI)/發(fā)送TI=0;void led_show()P2=0XFF;switch(i)case 0:P2_0=0,P0=led_codedisp0%16;break;case 1:P2_1=0,P0=led_codedisp0/16;break;case 2:P2_2=0,P0=led_codedisp1%16;break;case 3:P2_3=0,P0=led_codedisp1/16;break;case 4:P2_4=0,P0=

18、led_codedisp2%16;break;case 5:P2_5=0,P0=led_codedisp2/16;break;case 6:P2_6=0,P0=led_codedisp3%16;break;case 7:P2_7=0,P0=led_codedisp3/16;break; default:break;i+;if(i=8)i=0;void main() P0=0X00;P2=0XFF;UartInit();disp0=0x10;disp1=0x32;disp2=0x54;disp3=0x76;while(1) led_show();Delay2ms();2) 溫度#include&

19、lt;reg51.h>#define uchar unsigned char#define uint unsigned intsbit P2_0=P2P;引腳位定義sbit P2_1= P2A1;sbit P2_2=P2A2;sbit P2_3=P2A3;sbit P2_4=P2A4;sbit P2_5=P2A5;sbit P2_6=P2A6;sbit P2_7=P2A7;unsignedcharcodeled_code21=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0xFF,0xc6,0x7 f;unsigned char le

20、d_reg8=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08;sbit DQ=P1A0;/數(shù)據(jù)傳輸總線,單片機連接口uchar data disdata6;/uchar fCode8;uchar wdata;/uint t;uchar flag;存放溫度值的各位數(shù)(如個十百小數(shù)位的數(shù)值) /存放 DS18B20 的 ROM 編碼/存放溫度值/溫度正負(fù)標(biāo)志/延時程序void delay(unsigned char i) unsigned char j,k; for(k=0;k<i;k+) for(j=0;j<255;j+);void delay_18B

21、20(unsigned int i) /12m 晶振 i=i*5;/ 仿真時,應(yīng)注釋掉,下載到 STC 單片機時應(yīng)保留/while(i-);ds1820復(fù)位初始化/DQ 復(fù)位/延時/DQ 拉低 /精確延時大于 480us/DQ 拉高void Rst_18B20() unsigned char x=0;DQ=1; delay_18B20(4);DQ=0; delay_18B20(100);DQ=1;delay_18B20(240); uchar Rd_18b20()/讀數(shù)據(jù) unsigned char i=0;unsigned char dat=0;for(i=8;i>0;i-) DQ=1

22、;delay_18B20(1);/延時DQ=0;/產(chǎn)生脈沖信號dat>>=1;delay_18B20(1);DQ=1;/給脈沖信號if(DQ)dat|=0x80;delay_18B20(10);return(dat);void Wr_18b20(uchar wdata) /寫數(shù)據(jù) unsigned char i=0;for(i=8;i>0;i-) DQ=0;DQ=wdata&0x01;/向總線上寫位數(shù)據(jù)delay_18B20(10);延時50us等待寫完成DQ=1;/恢復(fù)高電平,至少保持 1uswdata>>=1;/為下次寫操作準(zhǔn)備uint RD_temp

23、()/讀取溫度值并轉(zhuǎn)換 uchar a,b;Rst_18B20();Wr_18b20(0xcc);Wr_18b20(0x44);Rst_18B20();Wr_18b20(0xcc);Wr_18b20(0xbe);/讀取溫度a=Rd_18b20();b=Rd_18b20();t=b;t<<=8;t=t|a;if(t<0x0fff)flag=0;/ 溫度為正elset=t+1;flag=1;/溫度值為負(fù),負(fù)值以補碼存放,這里要將其還原為原碼t=t*(6.25);/溫度值擴(kuò)大 100 倍,精確到 2 位小數(shù) /return(t);void T_display()uchar flag

24、dat; disdata0=t/10000; disdata1=t%10000/1000; disdata2=t%1000/100; disdata3=t%100/10; disdata4=t%10; if(flag=0) flagdat=0x20; else flagdat=0x2d; if(disdata0=0x30) disdata0=0x20; if(disdata1=0x30) disdata1=0x20;led_reg0= disdata0; led_reg1= disdata1; led_reg2= disdata2; led_reg3= disdata3; led_reg4=

25、disdata4; led_reg5= 11;/溫度值顯示/百位數(shù)/十/個/小數(shù)位/小數(shù)位/負(fù)溫度顯示負(fù)號/ 如果百位為 0,不顯示/如果百位為 0,十位為 0 也不顯示led_reg6= 10;led_reg7= 10;void led_show()/ 顯示函數(shù)static unsigned char led_shift=0x00;P2=0xff;/關(guān)閉數(shù)碼管控制端口switch(led_shift) case 0:P2_0=0;P0=led_codeled_reg0; break; case 1:P2_1=0;P0=led_codeled_reg1; break;case 2:P2_2=0

26、;P0=led_codeled_reg2&0x7f; break;case 3:P2_3=0;P0=led_codeled_reg3; break;case 4:P2_4=0;P0=led_codeled_reg4; break;case 5:P2_5=0;P0=led_codeled_reg5; break;case 6:P2_6=0;P0=led_codeled_reg6; break;case 7:P2_7=0;P0=led_codeled_reg7; break; default:break;led_shift+;if(led_shift=0x08)led_shift=0x00

27、;void main()/主函數(shù)P0=0xff;P2=0xff;/初始化delay(5);while(1)led_show();RD_temp();讀取溫度T_display();/顯示溫度3) 時鐘#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int #define ds1302_sec_add 0x80#define ds1302_min_add 0x82/秒數(shù)據(jù)(寫地址)/分/時#define ds1302_hr_add 0x84 #defi

28、ne ds1302_charge_add 0x8e /控制數(shù)據(jù)地址unsigned char sec,min,hr;sbit DS1302_CLK=PM7;sbit DS1302_IO=P1A6; sbit DS1302_RST=PM5;/實時時鐘時鐘線引腳/實時時鐘數(shù)據(jù)線引腳/實時時鐘復(fù)位線引腳sbit P2_0=P2A0;/引腳位定義sbit P2_1=P2A1;sbit P2_2=P2A2;sbit P2_3=P2A3;sbit P2_4=P2A4;sbit P2_5=P2A5;sbit P2_6=P2A6;sbit P2_7=P2A7;unsignedcharcodeled_code2

29、2=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x40,0xFF,0x7 9,0x24,0x30,0x19,0x12,0x02,0x58,0x00,0x10,0xbf;unsigned char led_reg8=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08;uchar data disdata8; /uchar flag; /延時程序void delay(unsigned char i) unsigned char j,k; for(k=0;k<i;k+) for(j=0;j<255;j+

30、);向 Ds1302 寫 入 一 個 字 節(jié) 數(shù) 據(jù)void Ds1302_Write_Byte(unsigned char addr,unsigned char d) unsigned char i;DS1302_RST=0;/高電平時允許 i/0 端進(jìn)行數(shù)據(jù)傳輸DS1302_CLK=0;/同步時鐘脈沖端,其上升沿將 i/0 端數(shù)據(jù)按位寫入DS1302,下降沿使DS1302按位輸出數(shù)據(jù)到i/0端DS1302_RST=1;addr=addr&0xFE; for(i=0;i<8;i+) if(addr&0x01)/最低位置 0,為了得到寫地址/寫入目標(biāo)地址, addrDS1

31、302_IO=1;/i/0 為串行數(shù)據(jù)輸入輸出端,傳送數(shù)據(jù)順序均已最低位 LSB 開始到最高位 MSB 結(jié)束elseDS1302_CLK=1;DS1302_CLK=0; addr=addr>>1; for(i=0;i<8;i+) DS1302_IO=0;/ /寫入數(shù)據(jù) dif(d&0x01) DS1302_IO=1;else DS1302_IO=0;DS1302_CLK=1;DS1302_CLK=0;d=d>>1;DS1302_CLK=1;DS1302_RST=0;/停止 DS13B20 總線向 Ds1302 讀出 一個字節(jié)數(shù)據(jù)unsigned char

32、Ds1302_Read_Byte(unsigned char addr)unsigned char i;unsigned char temp;DS1302_RST=0;DS1302_CLK=0;DS1302_RST=1;addr=addr|0x01;/最低位置高。為了得到讀地址for(i=0;i<8;i+)if(addr&0x01) DS1302_IO=1;else DS1302_IO=0;DS1302_CLK=1;DS1302_CLK=0; addr=addr>>1;for(i=0;i<8;i+)/輸出數(shù)據(jù): temptemp=temp>>1;if

33、(DS1302_IO)temp|=0x80;else temp&=0x7F;DS1302_CLK=1;DS1302_CLK=0;DS1302_CLK=1;DS1302_RST=0;/停止 DS1302 總線return temp;void T_display()/ 時鐘顯示uchar flagdat;disdata0=Ds1302_Read_Byte(ds1302_hr_add)/16; / 時 disdata1=Ds1302_Read_Byte(ds1302_hr_add)%16; disdata2=0xbf;disdata3=Ds1302_Read_Byte(ds1302_min_add)/16; /分 disdata4=Ds1302_Read_Byte(ds1302_min_add)%16; disdata5=0xbf;disdata6=Ds1302_Read_Byte(ds1302_sec_add)/16; /秒 disdata7=Ds1302_Read_Byte(ds1302_sec_add)%16; if(flag=0) flagdat=0x20;else flagdat=0x2d;if(disdata0=0x30)disdata0=0x20;if(disdata1=0x30)disdata1=0x20;led_reg0=di

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論