ds18b20詳解及程序(共17頁)_第1頁
ds18b20詳解及程序(共17頁)_第2頁
ds18b20詳解及程序(共17頁)_第3頁
ds18b20詳解及程序(共17頁)_第4頁
ds18b20詳解及程序(共17頁)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、最近都在學(xué)習(xí)和寫單片機(jī)的程序, 今天有空又模仿寫了一個(gè)與DS18B20基于單總線通信的程序.DS18B20 數(shù)字溫度傳感器(參考:是DALLAS 公司生產(chǎn)的1Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。因此用它來組成一個(gè)測(cè)溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì)。DS18B20 產(chǎn)品的特點(diǎn):(1)、只要求一個(gè)I/O 口即可實(shí)現(xiàn)通信。(2)、在DS18B20 中的每個(gè)器件上都有獨(dú)一無二的序列號(hào)。(3)、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。(4)、測(cè)量溫度范圍在55 到125之間; 在-10 +85范圍內(nèi)誤差為5;(5)、數(shù)字溫度計(jì)的分辨率用戶可以從9 位到1

2、2 位選擇。將12位的溫度值轉(zhuǎn)換為數(shù)字量所需時(shí)間不超過750ms;(6)、內(nèi)部有溫度上、下限告警設(shè)置。DS18B20引腳分布圖DS18B20 詳細(xì)引腳功能描述:1、GND 地信號(hào);2、DQ數(shù)據(jù)輸入出引腳。開漏單總線接口引腳。當(dāng)被用在寄生電源下,此引腳可以向器件提供電源;漏極開路, 常太下高電平. 通常要求外接一個(gè)約5k的上拉電阻.3、VDD可選擇的VDD 引腳。電壓范圍:35.5V; 當(dāng)工作于寄生電源時(shí),此引腳必須接地。DS18B20存儲(chǔ)器結(jié)構(gòu)圖暫存儲(chǔ)器的頭兩個(gè)字節(jié)為測(cè)得溫度信息的低位和高位字節(jié); 第3, 4字節(jié)是TH和TL的易失性拷貝, 在每次電復(fù)位時(shí)都會(huì)被刷新;第5字節(jié)是配置寄存器的易失性

3、拷貝, 同樣在電復(fù)位時(shí)被刷新;第9字節(jié)是前面8個(gè)字節(jié)的CRC檢驗(yàn)值.配置寄存器的命令內(nèi)容如下:0R1R011111MSB LSBR0和R1是溫度值分辨率位, 按下表進(jìn)行配置.默認(rèn)出廠設(shè)置是R1R0 = 11, 即12位.溫度值分辨率配置表R1R0分辨率最大轉(zhuǎn)換時(shí)間(ms)009bit93.75(tconv/8)0110bit183.50(tconv/4)1011bit375(tconv/2)1112bit750 (tconv)4種分辨率對(duì)應(yīng)的溫度分辨率為0.5, 0.25, 0.125, 0.0625(即最低一位代表的溫度值)12位分辨率時(shí)的兩個(gè)溫度字節(jié)的具體格式如下:低字節(jié): 2322212

4、02-12-22-32-4高字節(jié): SSSSS262524其中高字節(jié)前5位都是符號(hào)位S, 若分辨率低于12位時(shí), 相應(yīng)地使最低為0, 如: 當(dāng)分辨率為10位時(shí), 低字節(jié)為: 232221202-12-200, 高字節(jié)不變.一些溫度與轉(zhuǎn)換后輸出的數(shù)字參照如下:溫度數(shù)字輸出換成16進(jìn)制+12500000111 1101000007D0H+8500000101 010100000550H+25.062500000001 100100010191H+10.12500000000 1010001000A2H+0.500000000 000010000008H000000000 000000000000H

5、-0.511111111 11111000FFF8H-10.12511111111 01011110FFE5H-25.062511111110 01101111FF6FH-5511111100 10010000FC90H由上表可看出, 當(dāng)輸出是負(fù)溫度時(shí), 使用補(bǔ)碼表示, 方便計(jì)算機(jī)運(yùn)算(若是用C語言, 直接將結(jié)果賦值給一個(gè)int變量即可).DS18B20 的使用方法:由于DS18B20 采用的是方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)單片機(jī)來說,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì)DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有

6、著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序(dsInit()實(shí)現(xiàn))、讀時(shí)序(readByte()、寫時(shí)序(writeByte()。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。DS18B20與單片機(jī)連接電路圖:利用軟件模擬DS18B20的單線協(xié)議和命令:主機(jī)操作DS18B20必須遵循下面的順序1. 初始化單線總線上的所有操作都是從初始化開始的. 過程如下

7、: 1)請(qǐng)求: 主機(jī)通過拉低單線480us以上, 產(chǎn)生復(fù)位脈沖, 然后釋放該線, 進(jìn)入Rx接收模式. 主機(jī)釋放總線時(shí), 會(huì)產(chǎn)生一個(gè)上升沿脈沖.DQ : 1 - 0(480us+) - 1 2)響應(yīng): DS18B20檢測(cè)到該上升沿后, 延時(shí)1560us, 通過拉低總線60240us來產(chǎn)生應(yīng)答脈沖. DQ: 1(1560us) - 0(60240us)3)接收響應(yīng): 主機(jī)接收到從機(jī)的應(yīng)答脈沖后, 說明有單線器件在線. 至此, 初始化完成.DQ: 02. ROM操作命令當(dāng)主機(jī)檢測(cè)到應(yīng)答脈沖, 便可發(fā)起ROM操作命令. 共有5類ROM操作命令, 如下表命令類型命令字節(jié)功能Read Rom 讀ROM 3

8、3H讀取激光ROM中的64位,只能用于總線上單個(gè)DS18B20器件情況, 多掛時(shí)會(huì)發(fā)生數(shù)據(jù)沖突Match Rom匹配ROM55H此命令后跟64位ROM序列號(hào),尋址多掛總線上的對(duì)應(yīng)DS18B20.只有序列號(hào)完全匹配的DS18B20才能響應(yīng)后面的內(nèi)存操作命令,其他不匹配的將等待復(fù)位脈沖.可用于單掛或多掛兩種情況.Skip Rom 跳過ROMCCH可無須提供64位ROM序列號(hào)即可運(yùn)行內(nèi)存操作命令, 只能用于單掛.Search Rom搜索ROMF0H通過一個(gè)排除法過程, 識(shí)別出總線上所有器件的ROM序列號(hào)Alarm Search告警搜索ECH命令流程與Search Rom相同, 但DS18B20只有最

9、近的一次溫度測(cè)量時(shí)滿足了告警觸發(fā)條件的, 才會(huì)響應(yīng)此命令.3. 內(nèi)存操作命令在成功執(zhí)行ROM操作命令后, 才可使用內(nèi)存操作命令. 共有6種內(nèi)存操作命令:命令類型命令字節(jié)功能Write Scratchpad寫暫存器4EH寫暫存器中地址2地址4的3個(gè)字節(jié)(TH,TL和配置寄存器)在發(fā)起復(fù)位脈沖之前,3個(gè)字節(jié)都必須要寫.Read Scratchpad讀暫存器BEH讀取暫存器內(nèi)容,從字節(jié)0一直到字節(jié)8, 共9個(gè)字節(jié),主機(jī)可隨時(shí)發(fā)起復(fù)位脈沖,停止此操作,通常我們只需讀前5個(gè)字節(jié).Copy Scratchpad復(fù)制暫存器48H將暫存器中的內(nèi)容復(fù)制進(jìn)EERAM, 以便將溫度告警觸發(fā)字節(jié)存入非易失內(nèi)存. 如果

10、此命令后主機(jī)產(chǎn)生讀時(shí)隙, 那么只要器件還在進(jìn)行復(fù)制都會(huì)輸出0, 復(fù)制完成后輸出1.Convert T溫度轉(zhuǎn)換44H開始溫度轉(zhuǎn)換操作. 若在此命令后主機(jī)產(chǎn)生時(shí)隙, 那么只要器件還在進(jìn)行溫度轉(zhuǎn)換就會(huì)輸出0, 轉(zhuǎn)換完成后輸出1.Recall E2 重調(diào)E2暫存器B8H將存儲(chǔ)在EERAM中的溫度告警觸發(fā)值和配置寄存器值重新拷貝到暫存器中,此操作在DS18B20加電時(shí)自動(dòng)產(chǎn)生.Read Power Supply讀供電方式B4H主機(jī)發(fā)起此命令后每個(gè)讀數(shù)時(shí)隙內(nèi),DS18B20會(huì)發(fā)信號(hào)通知它的供電方式:0寄生電源, 1外部供電.4. 數(shù)據(jù)處理DS18B20要求有嚴(yán)格的時(shí)序來保證數(shù)據(jù)的完整性. 在單線DQ上,

11、有復(fù)位脈沖, 應(yīng)答脈沖, 寫0, 寫1, 讀0, 讀1這6種信號(hào)類型. 除了應(yīng)答脈沖外, 其它都由主機(jī)產(chǎn)生. 數(shù)據(jù)位的讀和寫是通過讀、寫時(shí)隙實(shí)現(xiàn)的.1) 寫時(shí)隙: 當(dāng)主機(jī)將數(shù)據(jù)線從高電平拉至低電平時(shí), 產(chǎn)生寫時(shí)隙.所有寫時(shí)隙都必須在60us以上, 各寫時(shí)隙間必須保證1us的恢復(fù)時(shí)間.寫1 : 主機(jī)將數(shù)據(jù)線DQ先拉低, 然后釋放15us后, 將數(shù)據(jù)線DQ拉高;寫0 : 主機(jī)將DQ拉低并至少保持60us以上.2)讀時(shí)隙: 當(dāng)主機(jī)將數(shù)據(jù)線DQ從高電平拉至低電平時(shí), 產(chǎn)生讀時(shí)隙. 所有讀時(shí)隙最短必須持續(xù)60us, 各讀時(shí)隙間必須保證1us的恢復(fù)時(shí)間.讀: 主機(jī)將DQ拉低至少1us,. 此時(shí)主機(jī)馬上將D

12、Q拉高, 然后就可以延時(shí)15us后, 讀取DQ即可.源代碼: (測(cè)量范圍: 0 99度)DS18B201#include2/通過DS18B20測(cè)試當(dāng)前環(huán)境溫度,并通過數(shù)碼管顯示當(dāng)前溫度值3sbitwela=P27;/數(shù)碼管位選4sbitdula=P26;/數(shù)碼管段選5sbitds=P22;6/0-F數(shù)碼管的編碼(共陰極)7unsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,80x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;9/0-9數(shù)碼管的編碼(共陰極),帶小數(shù)點(diǎn)10unsignedchar

13、codetableWidthDot=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,110x87,0xff,0xef;1213/延時(shí)函數(shù),例i=10,則大概延時(shí)10ms.14voiddelay(unsignedchari)1516unsignedcharj,k;17for(j=i;j0;j-)1819for(k=125;k0;k-);20212223/初始化DS18B2024/讓DS18B20一段相對(duì)長時(shí)間低電平,然后一段相對(duì)非常短時(shí)間高電平,即可啟動(dòng)25voiddsInit()2627/一定要使用unsignedint型,一個(gè)i+指令的時(shí)間,作為與DS18B20通信的小

14、時(shí)間間隔28/以下都是一樣使用unsignedint型29unsignedinti;30ds=0;31i=103;32while(i0)i-;33ds=1;34i=4;35while(i0)i-;363738/向DS18B20讀取一位數(shù)據(jù)39/讀一位,讓DS18B20一小周期低電平,然后兩小周期高電平,40/之后DS18B20則會(huì)輸出持續(xù)一段時(shí)間的一位數(shù)據(jù)41bitreadBit()4243unsignedinti;44bitb;45ds=0;46i+;47ds=1;48i+;i+;49b=ds;50i=8;51while(i0)i-;52returnb;535455/讀取一字節(jié)數(shù)據(jù),通過調(diào)用

15、readBit()來實(shí)現(xiàn)56unsignedcharreadByte()5758unsignedinti;59unsignedcharj,dat;60dat=0;61for(i=0;i8;i+)6263j=readBit();64/最先讀出的是最低位數(shù)據(jù)65dat=(j1);6667returndat;686970/向DS18B20寫入一字節(jié)數(shù)據(jù)71voidwriteByte(unsignedchardat)7273unsignedinti;74unsignedcharj;75bitb;76for(j=0;j=1;80/寫1,讓低電平持續(xù)2個(gè)小延時(shí),高電平持續(xù)8個(gè)小延時(shí)81if(b)8283d

16、s=0;84i+;i+;85ds=1;86i=8;while(i0)i-;8788else/寫0,讓低電平持續(xù)8個(gè)小延時(shí),高電平持續(xù)2個(gè)小延時(shí)8990ds=0;91i=8;while(i0)i-;92ds=1;93i+;i+;9495969798/向DS18B20發(fā)送溫度轉(zhuǎn)換命令99voidsendChangeCmd()100101dsInit();/初始化DS18B20102delay(1);/延時(shí)1ms103writeByte(0xcc);/寫入跳過序列號(hào)命令字104writeByte(0x44);/寫入溫度轉(zhuǎn)換命令字105106107/向DS18B20發(fā)送讀取數(shù)據(jù)命令108voidsen

17、dReadCmd()109110dsInit();111delay(1);112writeByte(0xcc);/寫入跳過序列號(hào)命令字113writeByte(0xbe);/寫入讀取數(shù)據(jù)令字114115116/獲取當(dāng)前溫度值117unsignedintgetTmpValue()118119unsignedintvalue;/存放溫度數(shù)值120floatt;121unsignedcharlow,high;122sendReadCmd();123/連續(xù)讀取兩個(gè)字節(jié)數(shù)據(jù)124low=readByte();125high=readByte();126/將高低兩個(gè)字節(jié)合成一個(gè)整形變量127value=h

18、igh;128value=8;129value|=low;130/DS18B20的精確度為0.0625度,即讀回?cái)?shù)據(jù)的最低位代表0.0625度131t=value*0.0625;132/將它放大10倍,使顯示時(shí)可顯示小數(shù)點(diǎn)后一位,并對(duì)小數(shù)點(diǎn)后第二2進(jìn)行4舍5入133/如t=11.0625,進(jìn)行計(jì)數(shù)后,得到value=111,即11.1度134value=t*10+0.5;135returnvalue;136137138/顯示當(dāng)前溫度值,精確到小數(shù)點(diǎn)后一位139voiddisplay(unsignedintv)140141unsignedcharcount;142unsignedchardata

19、s=0,0,0;143datas0=v/100;144datas1=v%100/10;145datas2=v%10;146for(count=0;count3;count+)147148/片選149wela=0;150P0=(0xfe(8-count);/選擇第(count+1)個(gè)數(shù)碼管151wela=1;/打開鎖存,給它一個(gè)下降沿量152wela=0;153/段選154dula=0;155if(count!=1)156157P0=tabledatascount;/顯示數(shù)字158159else160161P0=tableWidthDotdatascount;/顯示帶小數(shù)點(diǎn)數(shù)字162163dul

20、a=1;/打開鎖存,給它一個(gè)下降沿量164dula=0;165delay(5);/延時(shí)5ms,即亮5ms166167/清除段先,讓數(shù)碼管滅,去除對(duì)下一位的影響,去掉高位對(duì)低位重影168/若想知道影響效果如何,可自行去掉此段代碼169/因?yàn)閿?shù)碼管是共陰極的,所有滅的代碼為:00H170dula=0;171P0=0x00;/顯示數(shù)字172dula=1;/打開鎖存,給它一個(gè)下降沿量173dula=0;174175176177voidmain()178179unsignedchari;180unsignedintvalue;181while(1)182183/啟動(dòng)溫度轉(zhuǎn)換184sendChangeCm

21、d();185value=getTmpValue();186/顯示3次187for(i=0;i3;i+)188189display(value);190191192顯示效果:流程圖:改進(jìn)代碼: 擴(kuò)大測(cè)量范圍, 使可測(cè)量范圍為: -55度 +125度, 嚴(yán)格按照上面的流程進(jìn)行軟件設(shè)計(jì)3.15 1:34 修正display()函數(shù)中的下一位顯示對(duì)上一位的影響改進(jìn)代碼1#include2#include3#include/要用到取絕對(duì)值函數(shù)abs()4/通過DS18B20測(cè)試當(dāng)前環(huán)境溫度,并通過數(shù)碼管顯示當(dāng)前溫度值,目前顯示范圍:-55+125度5sbitwela=P27;/數(shù)碼管位選6sbitdu

22、la=P26;/數(shù)碼管段選7sbitds=P22;8inttempValue;910/0-F數(shù)碼管的編碼(共陰極)11unsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,120x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;13/0-9數(shù)碼管的編碼(共陰極),帶小數(shù)點(diǎn)14unsignedcharcodetableWidthDot=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,150x87,0xff,0xef;1617/延時(shí)函數(shù),對(duì)于11.0592MHz時(shí)鐘,例i=10,

23、則大概延時(shí)10ms.18voiddelay(unsignedinti)1920unsignedintj;21while(i-)2223for(j=0;j0)i-;36ds=1;/產(chǎn)生一個(gè)上升沿,進(jìn)入等待應(yīng)答狀態(tài)37i=4;38while(i0)i-;394041voiddsWait()4243unsignedinti;44while(ds);45while(ds);/檢測(cè)到應(yīng)答脈沖46i=4;47while(i0)i-;484950/向DS18B20讀取一位數(shù)據(jù)51/讀一位,讓DS18B20一小周期低電平,然后兩小周期高電平,52/之后DS18B20則會(huì)輸出持續(xù)一段時(shí)間的一位數(shù)據(jù)53bitre

24、adBit()5455unsignedinti;56bitb;57ds=0;58i+;/延時(shí)約8us,符合協(xié)議要求至少保持1us59ds=1;60i+;i+;/延時(shí)約16us,符合協(xié)議要求的至少延時(shí)15us以上61b=ds;62i=8;63while(i0)i-;/延時(shí)約64us,符合讀時(shí)隙不低于60us要求64returnb;656667/讀取一字節(jié)數(shù)據(jù),通過調(diào)用readBit()來實(shí)現(xiàn)68unsignedcharreadByte()6970unsignedinti;71unsignedcharj,dat;72dat=0;73for(i=0;i8;i+)7475j=readBit();76/

25、最先讀出的是最低位數(shù)據(jù)77dat=(j1);7879returndat;808182/向DS18B20寫入一字節(jié)數(shù)據(jù)83voidwriteByte(unsignedchardat)8485unsignedinti;86unsignedcharj;87bitb;88for(j=0;j=1;92/寫1,將DQ拉低15us后,在15us60us內(nèi)將DQ拉高,即完成寫193if(b)9495ds=0;96i+;i+;/拉低約16us,符號(hào)要求1560us內(nèi)97ds=1;98i=8;while(i0)i-;/延時(shí)約64us,符合寫時(shí)隙不低于60us要求99100else/寫0,將DQ拉低60us120u

26、s101102ds=0;103i=8;while(i0)i-;/拉低約64us,符號(hào)要求104ds=1;105i+;i+;/整個(gè)寫0時(shí)隙過程已經(jīng)超過60us,這里就不用像寫1那樣,再延時(shí)64us了106107108109110/向DS18B20發(fā)送溫度轉(zhuǎn)換命令111voidsendChangeCmd()112113dsInit();/初始化DS18B20,無論什么命令,首先都要發(fā)起初始化114dsWait();/等待DS18B20應(yīng)答115delay(1);/延時(shí)1ms,因?yàn)镈S18B20會(huì)拉低DQ60240us作為應(yīng)答信號(hào)116writeByte(0xcc);/寫入跳過序列號(hào)命令字SkipR

27、om117writeByte(0x44);/寫入溫度轉(zhuǎn)換命令字ConvertT118119120/向DS18B20發(fā)送讀取數(shù)據(jù)命令121voidsendReadCmd()122123dsInit();124dsWait();125delay(1);126writeByte(0xcc);/寫入跳過序列號(hào)命令字SkipRom127writeByte(0xbe);/寫入讀取數(shù)據(jù)令字ReadScratchpad128129130/獲取當(dāng)前溫度值131intgetTmpValue()132133unsignedinttmpvalue;134intvalue;/存放溫度數(shù)值135floatt;136uns

28、ignedcharlow,high;137sendReadCmd();138/連續(xù)讀取兩個(gè)字節(jié)數(shù)據(jù)139low=readByte();140high=readByte();141/將高低兩個(gè)字節(jié)合成一個(gè)整形變量142/計(jì)算機(jī)中對(duì)于負(fù)數(shù)是利用補(bǔ)碼來表示的143/若是負(fù)值,讀取出來的數(shù)值是用補(bǔ)碼表示的,可直接賦值給int型的value144tmpvalue=high;145tmpvalue0?0.5:-0.5);/大于0加0.5,小于0減0.5155returnvalue;156157158unsignedcharconsttimeCount=3;/動(dòng)態(tài)掃描的時(shí)間間隔159/顯示當(dāng)前溫度值,精確到小數(shù)點(diǎn)后一位160/若先位選再段選,由于IO口默認(rèn)輸出高電平,所以當(dāng)先位選會(huì)使數(shù)碼管出現(xiàn)亂碼161voiddisplay(intv)162163unsignedcharcount;164unsignedchardatas=0,0,0,0,0;165unsignedinttmp=abs(v);166datas0=tmp/10000;167datas1=t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論