基于Yeelink的溫度遠程采集系統(tǒng)實訓報告_第1頁
基于Yeelink的溫度遠程采集系統(tǒng)實訓報告_第2頁
基于Yeelink的溫度遠程采集系統(tǒng)實訓報告_第3頁
基于Yeelink的溫度遠程采集系統(tǒng)實訓報告_第4頁
基于Yeelink的溫度遠程采集系統(tǒng)實訓報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Yeelink物聯(lián)網(wǎng)溫度遠程采集系統(tǒng)摘要 隨著網(wǎng)絡的飛速發(fā)展,許多新興產(chǎn)業(yè)涌現(xiàn)并蓬勃發(fā)展,億聯(lián)物聯(lián)網(wǎng)平臺正是在這股浪潮下應運而生。Yeelink是一個開放的通用物聯(lián)網(wǎng)平臺,主要提供傳感器數(shù)據(jù)的訪問、存儲和展示服務,為所有開源軟硬件愛好者和制造企業(yè)提供物聯(lián)網(wǎng)項目的平臺。它使硬件和制造商能夠交付支持物聯(lián)網(wǎng)的電子產(chǎn)品,而無需關心服務器實施細節(jié)和運維。Yeelink平臺最大的特點是不僅可以提供數(shù)據(jù)的上游功能,還可以實現(xiàn)家電的控制功能?;丶仪耙磦€熱水澡,還是需要提前開空調?很簡單,用手機的智能APP,幾分鐘就搞定了。簡單來說,你可以將你收集到的數(shù)據(jù)提交給Yeelink,Yeelink會以一定的形式展示出來。比如我們采集體溫數(shù)據(jù)并提交,這樣無論您身在何處,只要能上網(wǎng),就可以實時在線監(jiān)測體溫數(shù)值。本次培訓內(nèi)容是通過數(shù)字溫度傳感器將實時采集的溫度顯示在數(shù)碼管上,通過串口致到PC,PC通過yeelink串口轉發(fā)工具發(fā)布到互聯(lián)網(wǎng)。關鍵詞:溫度、傳感器、yeelink、物聯(lián)網(wǎng)、遠程采集目錄TOC\o"1-5"\h\z\u實習任務書總線,主要應用于18B20芯片。需要溫度傳感器才能使它們能夠像可以調試、更改和控制外部鍵盤一樣發(fā)揮作用。主要原則 系統(tǒng)整體硬件電路包括傳感器采集電路、溫度顯示電路、單片機主板電路等。主控制器顯示電路顯示電路采用3位共陽極LED數(shù)碼管,從P3口的RXD和TXD串口輸出段碼。溫度感應器DS18B20溫度傳感器是達拉斯半導體公司新推出的改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻等測溫元件相比,它可以直接讀取被測溫度,并可根據(jù)實際需要通過簡單的編程進行編程。實現(xiàn)9~12位的數(shù)值讀取方式。DS18B20的性能特點如下:●獨特的單線接口,僅需一個端口引腳即可通信;●可將多臺DS18B20并聯(lián)在單根三線上,實現(xiàn)多點組網(wǎng)功能;●無需外接設備;●可數(shù)據(jù)線供電,電壓范圍3.0~5.5V;●零待機功耗;●9位或12位溫度;●用戶自定義報警設置;●報警搜索命令識別和標記超出編程溫度限制的設備(溫度報警條件);●負電壓特性,當電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其結構框圖如圖2所示。CC64位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器VddI/OI/O圖2DS18B20部分結構64位ROM結構的前8位是產(chǎn)品型號,后面是每個設備的唯一序列號,共48位,后8位是前56位的CRC校驗碼,這也是多個DS18B20進行通信的單線。的原因。溫度報警觸發(fā)器TH和TL可以通過軟件寫入用戶報警的上限和下限。DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性電可擦除EERAM。高速暫存RAM的結構是一個8字節(jié)的內(nèi)存,結構如圖3所示。前2個字節(jié)包含測量的溫度信息,第三和第四個字節(jié)是TH和TL的副本,分別是是易失性的,每次電源重置時都會刷新。第五個字節(jié)為配置寄存器,其內(nèi)容用于確定溫度值的數(shù)字轉換分辨率。DS18B20工作時,寄存器中的分辨率轉換為相應精度的溫度值。該字節(jié)每一位的定義如圖3所示。低5位始終為1。TM為工作模式位,用于設置DS18B20處于工作模式還是測試模式。DS18B20出廠時該位設置為0,用戶需要更改。R1和R0決定了溫度轉換的精度。,設置分辨率。溫度LSB溫度MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器預訂預訂預訂CRC圖3DS18B20字節(jié)定義從表1可以看出DS18B20的溫度轉換時間比較長,分辨率越高,需要的溫度數(shù)據(jù)轉換時間越長。因此,在實際應用中,應考慮分辨率和轉換時間之間的權衡。高速暫存器RAM的第6、7和8字節(jié)保留,均為邏輯1。第9個字節(jié)讀出前8個字節(jié)的所有CRC碼,可以用來校驗數(shù)據(jù),保證通訊數(shù)據(jù)的正確性。DS18B20收到溫度轉換命令后,開始轉換。轉換完成后,溫度值以16位符號擴展二進制補碼的形式存入高速暫存存儲器的第1和第2字節(jié)。單片機可以通過單線接口讀取數(shù)據(jù)。讀取數(shù)據(jù)時,低位在前,高位在后。數(shù)據(jù)格式以0.0625°C/LSB的形式表示。當符號位S=0時,表示測得的溫度值為正值,二進制位可直接轉換為十進制;當符號位S=1時,表示測得的溫度值為負值,必須先轉換補碼。成為原始碼,然后計算十進制值。表2是一些溫度值對應的二進制溫度數(shù)據(jù)。表1DS18B20溫度轉換時間表DS18B20完成溫度轉換后,將測得的溫度值與RAM中的TH和TL字節(jié)進行比較。如果T>TH或T<TL,則設置設備的報警標志位,并響應上位機發(fā)出的報警搜索命令。因此,可以使用多個DS18B20同時測量溫度并進行報警搜索。循環(huán)冗余校驗碼(CRC)存儲在64位ROM的最高有效字節(jié)中。主機ROM的前56位用于計算CRC值,并與存儲在DS18B20中的CRC值進行比較,判斷主機接收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理如下。裝置中的低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用來產(chǎn)生固定頻率的脈沖信號送入減法計數(shù)器1;高溫度系數(shù)晶體振蕩器的振蕩頻率隨溫度變化。顯著改變,產(chǎn)生的信號被用作遞減計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門。當計數(shù)門打開時,DS18B20對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù),完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器決定。每次測量前,先將一個對應于-55℃的基數(shù)分別放入減法計數(shù)器1和溫度寄存器中。計數(shù)器1和溫度寄存器預置在-對應于55°C的基值中。減法計數(shù)器1對低溫系數(shù)晶體振蕩器產(chǎn)生的脈沖信號進行遞減計數(shù)。當減法計數(shù)器1的預置值減為0時,溫度寄存器的值會加1,減法計數(shù)器1的預置值會被重新加載。減法計數(shù)器1重新開始計數(shù)低溫度系數(shù)晶振產(chǎn)生的脈沖信號,并重復這個循環(huán),直到減法計數(shù)器計數(shù)到0,停止溫度寄存器的累加。此時溫度寄存器中的值為測得的溫度值。其輸出用于校正減法計數(shù)器的預設值。只要計數(shù)器的門沒有關閉,就重復上述過程,直到溫度寄存器值近似于測量的溫度值。表2部分溫度對應值表溫度/℃二進制表示十六進制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100000191H+10.125000000001010000100A2H+0.500000000000000100008H000000000000010000000H-0.51111111111110000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90H另外,由于DS18B20單線通訊功能及時完成,具有嚴格的時隙概念,所以讀寫時序非常重要。系統(tǒng)按照協(xié)議對DS18B20進行各種操作。操作協(xié)議為:初始化DS18B20(致復位脈沖)→致ROM功能命令→致內(nèi)存操作命令→處理數(shù)據(jù)。

圖4DS18B20與單片機的接口電路DS18B20溫度傳感器與微控制器的接口電路DS18B20可以通過兩種方式供電。一是采用供電方式。此時DS18B20的第1腳接地,第2腳為信號線,第3腳接電源。另一種是寄生供電方式。如圖4所示,單線總線連接到單片機端口。為了保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可以使用一個MOSFET來完成總線的上拉。DS18B20在寫存儲器操作和溫度A/D轉換操作時,總線上必須有強上拉,最大上拉時間為10us。使用寄生供電模式時,VDD端接地。由于單線系統(tǒng)只有一根線,因此傳輸接口必須是三態(tài)的。ZLG7290芯片ZLG7290功能及功能介紹ZLG7290可直接驅動8位共陰極數(shù)碼管(或64個獨立LED),也可掃描管理多達64個按鍵。其中八個也可以用作功能鍵,就像計算機鍵盤上的Ctrl、Shift和Alt鍵一樣。此外,ZLG7290B還配備了連擊計數(shù)器,可以讓按鍵持續(xù)有效,按下后不松手。使用I2C總線方法,與微控制器的接口只需要兩條信號線。可控制掃描位數(shù),可控制任意數(shù)碼管閃爍。引腳說明如下:ZLG7290使用說明ZLG7290B是一款基于I2C總線接口的芯片。主控單片機ADUC831作為主器件時,沒有I2C總線功能,所以需要使用SPI總線的引腳來模擬I2C總線。具體連接如下:ZLG7290BADUC831GNDDGND斯達瑪斯SCL時鐘/INTINT0VCCDVDD但是,這種連接并不是唯一的,它只在正在編寫的軟件中需要。其實中斷可以根據(jù)你選擇的中斷來確定。接地(GND)和電源(VCC)也可以從電源連接。使用的電源是5V。編譯軟件采用WSD,主要用于AD系列芯片。只需下載帶有HEX擴展名的文件。ZLG7290的工作原理ZLG7290的核心是ZLG7290B芯片,采用I2C接口,可直接驅動8位共陰極數(shù)碼管,最多可同時掃描管理64個按鍵,人機功能資源非常豐富對話。除了自動消除抖動功能外,還具有段閃、段亮、段熄滅、功能鍵、組合鍵計數(shù)等強大功能,可提供10種數(shù)字和21種字母。將顯示數(shù)據(jù)直接寫入顯示緩存,無需外接元件即可直接驅動數(shù)碼管,還可以擴展驅動電壓和電流。此外,ZLG7290B的電路簡單易用。當用戶按鍵時,ZLG7290的INT引腳會產(chǎn)生一個低電平中斷請求信號。讀取鍵值后,中斷信號會自動取消。一般情況下,單片機只需要判斷INT引腳就可以得到鍵盤輸入信息。微控制器可以通過兩種方式獲取用戶的鍵盤輸入信息。一種是中斷方式,優(yōu)點是抗干擾能力強,缺點是占用單片機的外部中斷源。第二種是查詢法,即通過不斷查詢INT管腳來判斷是否有按鍵被按下,這種方法可以省去一條單片機的I/O口線,但代價是I2C總線頻繁活動狀態(tài)并消耗電流。而且不利于抗干擾。系統(tǒng)組成框圖蜂鳴報警器蜂鳴報警器ZLG7290數(shù)碼管顯示DS18B20DS18B20溫度傳感器8051單片機芯片系統(tǒng)原理介紹在數(shù)字溫度計系統(tǒng)框圖中,DS18B20溫度傳感器主要用于采集溫度;ZLG-7290按鍵電路用于控制和調整時間,數(shù)碼管顯示時間方便讀數(shù),蜂鳴器用于報警。軟件流程圖主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20測量的當前溫度值,每1s進行一次溫度測量。這樣就可以在一秒鐘內(nèi)測量一次被測溫度。程序流程如圖所示。Y發(fā)Y發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結束NNY初始化調用顯示子程序1S到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉換開始命令NYNY主程序流程圖 讀取溫度流程圖軟件項目程序列表和注釋#include<reg52.h>#include<intrins.h>#definezlg72900x70/*ZLG7290的IIC地址*/#defineucharunsignedchar/*宏定義*/#defineuint無符號整數(shù)#define_Nop()_nop_()/*定義空指令*/uchardisp_buf[8]={0,0,0,0,0,0,0,0};/*顯示緩沖區(qū)*/uchartemp[2];/*存儲溫度的數(shù)組*/uchar代碼采樣[]={0,20,29,38,47,56};/*端口位定義*/位SDA=P1^7;/*模擬I2C數(shù)據(jù)傳輸位*/位SCL=P1^6;/*模擬I2C時鐘控制位*/sbitDQ=P3^3;/*18B20數(shù)據(jù)線引腳*/位KEY_INT=P3^2;位BEEP=P3^5;位確認;/*確認標志*/ucharg;uchart1;uchart2;uchar1=1;uchar鍵;ucharchange_disp=0;/*IIC啟動*//************************************************************************啟動IIC總線功能****************************************************************************/無效Start_I2c(){SDA=1;/*致開始條件的數(shù)據(jù)信號*/_Nop();SCL=1;_Nop();/*啟動條件建立時間大于4.7us,延遲*/_Nop();_Nop();_Nop();_Nop();SDA=0;/*致開始信號*/_Nop();/*啟動條件鎖定時間大于4μs*/_Nop();_Nop();_Nop();_Nop();SCL=0;/*鉗位I2C總線,準備致或接收數(shù)據(jù)*/_Nop();_Nop();}/************************************************************************結束IIC總線功能****************************************************************************/無效Stop_I2c(){SDA=0;/*致結束條件的數(shù)據(jù)信號*/_Nop();/*致結束條件的時鐘信號*/SCL=1;/*結束條件建立時間大于4μs*/_Nop();_Nop();_Nop();_Nop();_Nop();SDA=1;/*致I2C總線結束信號*/_Nop();_Nop();_Nop();_Nop();}/************************************************************************字節(jié)數(shù)據(jù)傳輸功能****************************************************************************/無效致字節(jié)(ucharc){ ucharBitCnt; for(BitCnt=0;BitCnt<8;BitCnt++)/*要傳輸?shù)臄?shù)據(jù)長度為8位*/{if((c<<BitCnt)&0x80)SDA=1;/*確定致位*/否則SDA=0;_Nop();SCL=1;/*設置時鐘線為高,通知從機開始接收數(shù)據(jù)位*/_Nop();_Nop();/*確保時鐘高電平周期大于4μs*/_Nop();_Nop();_Nop();SCL=0;}_Nop();_Nop();SDA=1;/*致8位后釋放數(shù)據(jù)線,準備接收響應位*/_Nop();_Nop();SCL=1;_Nop();_Nop();_Nop();如果(SDA==1)確認=0;否則ack=1;/*判斷是否收到確認信號*/SCL=0;_Nop();_Nop();}/************************************************************************字節(jié)數(shù)據(jù)傳輸功能****************************************************************************/ucharRcvByte(){ ucharretc; ucharBitCnt; retc=0; SDA=1;/*設置數(shù)據(jù)線為輸入模式*/ for(BitCnt=0;BitCnt<8;BitCnt++){_Nop();SCL=0;/*設置時鐘線為低,準備接收數(shù)據(jù)位*/_Nop();_Nop();/*時鐘低電平周期大于4.7μs*/_Nop();_Nop();_Nop();SCL=1;/*設置時鐘線為高,使數(shù)據(jù)線上的數(shù)據(jù)有效*/_Nop();_Nop();retc=retc<<1;如果(SDA==1)retc=retc+1;/*讀取數(shù)據(jù)位,將接收到的數(shù)據(jù)位放入retc*/_Nop();_Nop();}SCL=0;_Nop();_Nop();返回(返回);}/*********************************************************************響應函數(shù)原型:voidAck_I2c(bita);****************************************************************************/無效Ack_I2c(位a){如果(a==0)SDA=0;/*在此處致響應或不響應信號*/否則SDA=1;_Nop();_Nop();_Nop();SCL=1;_Nop();_Nop();/*時鐘低電平周期大于4μs*/_Nop();_Nop();_Nop(); SCL=0; /*清除時鐘線并鉗位I2C總線繼續(xù)接收*/_Nop();_Nop();}/************************************************************************向無子地址設備致字節(jié)數(shù)據(jù)功能****************************************************************************/位ISendByte(ucharsla,ucharc){開始_I2c(); /*啟動總線*/致字節(jié)(SLA); /*致設備地址*/如果(確認==0)返回(0);致字節(jié)(c); /*致數(shù)據(jù)*/如果(確認==0)返回(0);停止_I2c(); /*結束總線*/返回(1);}/************************************************************************致多字節(jié)數(shù)據(jù)函數(shù)到帶有子地址的設備****************************************************************************/位ISendStr(ucharsla,ucharsuba,uchar*s,ucharno){uchar我; 開始_I2c(); /*啟動總線*/致字節(jié)(SLA); /*致設備地址*/如果(確認==0)返回(0);致字節(jié)(suba); /*致設備子地址*/如果(確認==0)返回(0);for(i=0;i<no;i++){致字節(jié)(*s);/*致數(shù)據(jù)*/如果(確認==0)返回(0);s++;}停止_I2c();/*結束總線*/返回(1);}/************************************************************************讀取字節(jié)數(shù)據(jù)功能到無子地址設備****************************************************************************/位IRcvByte(ucharsla,uchar*c){開始_I2c();/*啟動總線*/致字節(jié)(SLA+1);/*致設備地址*/如果(確認==0)返回(0);*c=RcvByte();/*讀取數(shù)據(jù)*/Ack_I2c(1);/*致非應答位*/停止_I2c();/*結束總線*/返回(1);}/************************************************************************從子尋址設備讀取多字節(jié)數(shù)據(jù)函數(shù)****************************************************************************/位IRcvStr(ucharsla,ucharsuba,uchar*s,ucharno){uchar我;開始_I2c();/*啟動總線*/致字節(jié)(SLA);/*致設備地址*/如果(確認==0)返回(0);致字節(jié)(suba);/*致設備子地址*/如果(確認==0)返回(0);開始_I2c();致字節(jié)(SLA+1);如果(確認==0)返回(0);for(i=0;i<no-1;i++){*s=RcvByte();/*致數(shù)據(jù)*/Ack_I2c(0);/*致答案位*/s++;}*s=RcvByte();Ack_I2c(1);/*致未經(jīng)請求的位*/停止_I2c();/*結束總線*/返回(1);}/*IIC完成*//*zlg7290開始*/無效延遲MS(無符號字符我){飛行j,k;for(k=0;k<i;k++)for(j=0;j<60;j++);}無效延遲(){飛行i,j;對于(i=0;i<100;i++)for(j=0;j<100;j++);}/******************************************************************************Hàn?ùmínchēng:ZLG7290_SendCmd************************************************************************************/flyZLG7290_SendCmd(flyData1,flyData2){浮動數(shù)據(jù)[2];數(shù)據(jù)[0]=數(shù)據(jù)1;數(shù)據(jù)[1]=數(shù)據(jù)2;ISendStr(zlg7290,0x07,Data,2);延遲MS(10);返回1;}/****************************************************************************函數(shù)名稱:ZLG7290_SendBuf********************************************************************************/無效ZLG7290_SendBuf(uchar*disp_buf,ucharnum){uchar我;for(i=0;i<num;i++){ZLG7290_SendCmd(0x60+i,*disp_buf);disp_buf++;}}/****************************************************************************函數(shù)名稱:ZLG7290_GetKey********************************************************************************/ucharZLG7290_GetKey(){uchar接收;接收=0;IRcvStr(zlg7290,1,&rece,1);延遲MS(10);返回收據(jù);}/*zlg7290完成*//*18b20開始*/無效延遲(uintus){而(我們--);}無效重置(無效)/*重置*/{ucharx=0;DQ=1;延遲(8);/*稍微延遲一下*/DQ=0; 延遲(80);/*精確延遲大于480us*/DQ=1;/*拉高總線*/延遲(14);x=DQ;延遲(20);DQ=1;}/************************從DS18B20讀取一個字節(jié)****************/ucharreadbyte(void) /*讀取1個字節(jié)*/{uchari=0;uchar數(shù)據(jù)=0;對于(i=8;i>0;i--){DQ=0;數(shù)據(jù)>>=1;DQ=1;如果(DQ)數(shù)據(jù)|=0x80;延遲(4);}返回(數(shù)據(jù));}/************************向DS18B20寫入一個字節(jié)***************************/voidwritebyte(uchardat) /*寫1個字節(jié)*/{uchari=0;對于(i=8;i>0;i--){DQ=0;DQ=dat&0x01;延遲(cn1);DQ=1;數(shù)據(jù)>>=1;}延遲(4);}/************************CPU讀取溫度值**************************/voidreadtemp(void)/*讀取溫度*/{uchara=0,b=0;重置();寫字節(jié)(0xCC);寫字節(jié)(0x4E);寫字節(jié)(0x55);/*警報0--100*/寫字節(jié)(0x00);寫字節(jié)(0xff);/*分辨率0.0625*/重置();寫字節(jié)(0xCC);/*跳過序列號*/寫字節(jié)(0x48);/*保存設置*/重置();寫字節(jié)(0xCC);寫字節(jié)(0xB8);/*回調溫度*/ 重置();寫字節(jié)(0xCC);/*跳過讀取序列號列號的操作*/寫字節(jié)(0x44); /*開始溫度轉換*/延遲(500);重置();寫字節(jié)(0xCC); /*跳過讀取序列號列號的操作*/寫字節(jié)(0xBE); /*讀取溫度寄存器等(一共可以讀取9個寄存器)前兩個是溫度*/ a=readbyte();/*低階*/b=讀字節(jié)();/*高階*/脾氣[0]=a&0x0f; /*小數(shù)部分的LSB數(shù)量*/脾氣[0]=脾氣[0]>>2; g=脾氣[0]; g=g*25; a=a>>4; /*低位右移2位,丟棄低位部分的低兩位*/ 脾氣[1]=b<<4;/*高位左移6位, 丟棄高位前5位符號位和符號位后1位*/ 脾氣[1]=脾氣[1]|a;/*獲取整數(shù)部分*/ /*0.25*100*LSB是小數(shù)部分*/}/*18b20完成*/無效的主要(){TMOD=0x20;TL1=0xfd;TH1=0xfd;SCON=0x52;TR1=1; 而(1){uchar我,米;uint[13]; 浮動t;讀臨時(); 如果(更改_disp) {t1=采樣[cn1];/*顯示值*/disp_buf[0]=t1%10;disp_buf[1]=t1/10%10;disp_buf[2]=31;disp_buf[3]=31;disp_buf[4]=31;disp_buf[5]=31;disp_buf[6]=31;disp_buf[7]=31;ZLG7290_SendBuf(disp_buf,8);如果(KEY_INT==0) {KEY=ZLG7290_GetKey(); 開關(鑰匙) {案例4: if(cn1==5) cn1=1; 別的

溫馨提示

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

評論

0/150

提交評論