智能火災報警系統的設計論文_第1頁
智能火災報警系統的設計論文_第2頁
智能火災報警系統的設計論文_第3頁
智能火災報警系統的設計論文_第4頁
智能火災報警系統的設計論文_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

目錄TOC\o"1-3"\h\u27208摘要 ⑨可定義的非易失性溫度告警設置。(3)接口電路接口電路的電路圖如圖3.2.4所示圖3.2.4溫度傳感器接口電路圖DS18B20有六條控制命令:溫度轉換44H啟動DS18B20進行溫度轉換、讀暫存器BEH讀暫存器9個字節內容、寫暫存器4EH將數據寫入暫存器的TH、TL字節、復制暫存器48H把暫存器的TH、TL字節寫到E2RAM中、重新調E2RAMB8H把E2RAM中的TH、TL字節寫到暫存器TH、TL字節、讀電源供電方式B4H啟動DS18B20發送電源供電方式的信號給主CPU【15】。DS18B20有兩種供電方式,一是用電源供電的方式,此時DS18B20的1腳接地、2腳為信號線、3腳來接電源。另一個是寄生電源的供電方式,單片機的端口接總線,為了保證在有效DS18B20的時鐘周期內能提供足夠電流,可用一個三極管對總線進行上拉。本設計用電源供電的方式。3.3顯示與報警電路3.3.1顯示電路圖3.3.1數碼管顯示顯示采用4位共陽數碼管,單片機控制數碼管顯示不同的四位數字,P2.0.P2.3選位,P0.0.P0.7選段,顯示電路如圖3.3.1。前兩位顯示煙霧濃度,可顯示范圍為0-9;后兩位顯示溫度值,可顯示范圍為0-99度。3.3.2報警電路電路通過三極管基極串連一個電阻與單片機P3.6端口連接從而達到控制喇叭是否報警。聲音報警電路圖如圖3.3.2所示。圖3.3.2聲音報警電路圖3.4按鍵控制及電源電路設計圖3.4消音按鍵連接電路圖本電路設計了四個按鍵,一個設置鍵、一個加鍵、一個減鍵、一個緊急報警鍵,當遇到緊急情況時,可按下緊急報警鍵,蜂鳴器進行報警。如圖3.4所示供電方式可以用5V蓄電池為系統供電。蓄電池具有較強的電流驅動能力以及穩定的電壓輸出性能。但是蓄電池的體積過于龐大,在報警器上使用極為不方便。因此我們放棄了此方案。也可以用3節1.5V干電池共4.5V做電源,經過實驗驗證系統工作時,單片機、傳感器的工作電壓穩定能夠滿足系統的要求,而且電池更換方便。本系統采用電池供電。電源接口電路如圖3.5,其中P1為電池接口,SW1為電源開關。D1為電源指示燈。圖3.5電源接口電路圖

4系統主程序設計及流程圖4.1主程序設計首先要給傳感器預熱,因為MQ.2型半導體電阻式煙霧傳感器在不通電存放一段時間后,再次通電時,傳感器不能立即正常采集煙霧信息,需要一段時間預熱。程序初始化結束后,系統進入監控狀態。主程序流程圖如下圖所示。程序初始化程序初始化傳感器預熱處理開始單片機處理,判斷否超過設定報警值A/D轉換進入報警子程序信號采集YN 圖4.1主程序流程圖在整個報警系統工作中,煙霧濃度信息經ADC0832轉換處理后,由單片機進行分析處理,判斷系統是否啟動報警。主程序還包括LED八段式數碼管濃度字符顯示功能、手動報警功能、報警濃度設定功能,中斷子程序等,使報警器功能更加完善,更加方便。預熱后,程序就開始執行初始化子程序,初始化實現的功能是I/O口輸入、輸出狀態設定,寄存器初始化,中斷功能等。首先,設定定時初值為50ms,利用IAP寫入EEPROM,作為取值間隔。然后,設置定時器0,選擇方式1。方式1狀態下,定時器的工作寄存器TH1、TL1,是全16位參與操作。接下來,定時器0中斷的允許位置1,打開定時器0,關閉蜂鳴器,開啟綠燈,設置報警限初值。4.2濾波子程序設計求2到9采樣值的和設置采樣次數N=10求2到9采樣值的和設置采樣次數N=10開始已采樣10次調用A/D采樣將10次采樣值排序值送入寄存器和除以8NY圖4.2濾波子程序流程路4.3線性化處理子程序設計在單片機測控系統中,使用之前必須進行靜態標定,以得到輸出信號與被測信號的關系輸出曲線,用來作為使用過程中的計量依據。但是標定時輸出曲線往往不是一條理想的直線,所以要對標定曲線進行線性化處理,用一條擬合直線近似代替輸出曲線,線性化是智能儀表的典型功能之一。該報警器主要針對甲烷煙霧檢測,在軟件線性化處理時,以傳感器對甲烷的響應曲線為依據。本論文報警器使用的MQ.2型傳感器的電阻是隨著煙霧濃的升高而降低的,因此輸入單片機的電壓也是隨之降低的。圖4.4為單片機采集電壓值與煙霧濃度百分比的對應曲線,可以看出,電壓值與煙霧濃度之間是非線性的關系,為了實時顯示煙霧濃度.需要對其進行線性化處理。在誤差許可范圍內,根據標定曲線形狀,以及單片機處理能力,把曲線分成若干小段,對每小段分別線性化。返回上電狀態返回監控狀態啟動故障報警是否大于20%讀取處理后的空氣濃度值開始延遲20秒采集一組濃度數據是否大于20%傳感器故障自診斷返回上電狀態返回監控狀態啟動故障報警是否大于20%讀取處理后的空氣濃度值開始延遲20秒采集一組濃度數據是否大于20%傳感器故障自診斷傳感器有問題啟動燃氣泄露報警消音鍵是否按下YNNYNY圖4.4報警子程序流程圖當煙霧濃度超過報警設定值時,報警器發出一種近似警笛的鳴叫聲,對應通道的紅燈閃亮,以提示操作人員采取安全對策或自動控制相關安全裝置,從而保障生產安全,避免火災和爆炸事故的發生。為防止誤報,在程序設計上,對煙霧濃度進行快速重復檢測和延時報警,以區別出是管道中煙霧的泄漏,還是由于暫短打開閥門產生的可燃煙霧的微量散失,防止誤報。4.5控制按鍵設計子程序報警系統必須有控制按鈕,本設計采用自鎖復位開關調整設置值,從而達到超出設定值時報警功能,鍵盤處理子程序流程路如圖4.5所示提取鍵值提取鍵值結束調用鍵盤子程序是否有鍵按下延時10ms去抖動是否有鍵按下掃描鍵值開始NYNY圖4.5鍵盤處理子程序流程圖

5硬件調試第一步是目測,單片機應用系統電路全部手工焊接在洞洞板上,因此對每一個焊點都要進行仔細的檢查。檢查它是否有虛焊、是否有毛剌等。第二步是萬用表來測試,首先用萬用表來復核目測時可疑的連線或接點,查看通斷狀態,是否與設計是的規定相符,然后檢查電源線與地線間,是否有短路的現象。第三步是加電檢查。當系統加電時,先檢查全部插座或者器件引腳電源端,是否有符合的電壓值,接地端電壓值是否接近零,接固定電平的引腳端是否電平正確。第四步是聯機檢查。在對硬件電路調試過程中,還遇到了不少問題,第一次把所有的元件都焊上去后,都準備調試了,才發現正負極的插針離得太近了,不容易接電源,本不該犯的錯誤,這些都是由于自己的粗心大意造成的,所以說,做任何事情都必需經過“三思而后行”,來不得半點的馬虎,否則浪費了時間和精力。實物實現的功能有:可設置煙霧濃度和高溫報警值,可緊急報警和手動取消緊急報警功能,當有特殊情況時可按緊急報警鍵報警,并有掉電保存功能,設置的參數保存在單片機內部EEPOM中。當煙霧傳感器檢測到火災釋放的煙霧時,信號由ADC0832進行處理模數轉化再到單片機進行處理,當檢測到濃度超標時,蜂鳴器會發出滴滴的報警聲。同時,此系統還可以檢測溫度,火災發生往往環境溫度會升高。到檢測到溫度超過設定的報警溫度時候,蜂鳴器也將產生報警,系統的按鍵還具有連加、減功能,操作起來非常方便,系統還能夠在進入設置界面后,如果沒有按鍵按下30秒后會自動退出設置界面。經過調測,該實物符合設計要求,能實現火災報警功能。當設置煙霧濃度上限為4,溫度上限為33度時,只要超過煙霧濃度或者溫度之一時,系統就會報警。

結論本論文在對煙霧傳感器和報警技術進行深入研究的基礎上,全面比較國內外同類產品的技術特點,合理地確定系統的設計方案。并對儀器的整體設計和各個組成部分進行了詳細的分析和設計。本論文設計的煙霧報警器由煙霧信號采集電路與單片機控制電路兩大部分構成。根據設計要求、使用環境、成本等因素,選用MQ.2型半導體電阻式煙霧傳感器。該傳感器是對以烷類煙霧為主的多種煙霧有良好敏感特性的廣譜型半導體敏感器件。它的靈敏度適中,具有響應與恢復特性好,長期工作穩定性、重現性、不易受環境影響及抗溫濕度影響等優點。在系統單片機控制電路的設計上,采用了高性能、高整合度的STC89C52單片機作為核心芯片,充分利用了其高速數據處理能力和豐富的片內外設,實現了儀器的小型化和智能化。使儀器具有結構簡單、性能穩定、體積小、成本低等優點。由于煙霧傳感器需要在加熱狀態下工作,溫度越高,反應越快,響應時間和恢復時間就越快。為提高響應時伺,保證傳感器準確地、穩定地工作,需要向煙霧傳感器持續供給5V的加熱電壓。煙霧報警器能在較寬的溫度范圍工作,可將煙霧濃度顯示用LED數碼管顯示。當煙霧的濃度達到設定的濃度時,發出報警。通過現場標定及測試,分析煙霧濃度信號的實驗數據,計算本報警器顯示煙霧濃度與實際濃度之間的誤差為2.55%LEL,在所規定誤差范圍±5%LEL之內,滿足檢測要求,達到了預期的設計效果的結論。到目前為止我的畢業設計也即將告一段落了,在這次的畢業設計中,自己也學習到了很多以前沒有沒有經歷過的知識,讓我更加清楚了理論知識和實踐能力的差別了,了解到自己的短處,培養了我的獨立思考能力,進一步提高了自己在實際設計過程中研究問題、發現問題、解決問題的能力,同時,也發現了自己的不足之處,和一些問題的存在,并有待進一步學習和發展,讓自己在未來的工作和學習之中更快的適應和提高自己。致謝在完成本設計的寫作過程中,我十分感謝我的指導老師。從選題到完成設計,老師一直都是很悉心的給我講解著在設計中遇到的各種問題,循循善誘,嚴格把關,幫助我開拓設計思路,并不斷地鼓舞著我,使我感到信心倍增,讓我非常積極地投入到設計中,不斷地完成設計中的一個個部分。在此,再次感謝老師在設計上不斷地給與我幫助,讓我在大學里的最后一次的學習過程中,充分感受到了自己對學習的興趣和熱情,使我能夠圓滿地完成自己的畢業設計。回想大學四年的時光,仿佛盡在昨天。最后,我還要感謝在我大學四年的學習期間給我極大關心和支持的家人、各位老師以及我的同學和朋友。是你們在生活和學習上不斷給與我支持、幫助和無微不至的關懷,是你們不斷地給與了我信心,讓我在人生中一次次堅強地走下去。

參考文獻[1]李華.MCS一52系列單片機實用接口技術.北京航空航天大學出版社.[2]張毅坤等.單片微型計算機原理及應用.西安電子科技大學出版社.2006.[3]潘新民等.微型計算機控制技術.電子工業科技大學出版社.2003.[4]偉.MCS一52系列單片機實用子程序集錦.清華大學出版社.1993.[5]吳佑壽.LabVIEW7實用教程.電子工業出版社.2007.[6]朱明程等.一氧化碳傳感器MGS1100原理及應用電子技術.1998年第1期.[7]劉迎春.傳感器原理設計及應用.哈爾濱工業大學出社.[8]趙負圖.數據采集與控制系統.北京科學技術出社.1987.[9]王若鯨.數據通信系統入門.人民郵電出版社.1984.[10]肖忠祥主編.數據采集原理.西北工業大學出版社.2003[11]劉廣玉.新型傳感器技術及應用.北京航空航天大學出版社.1989.[12]張毅剛.MCS一52單片機應用設計.1990.[13]陳偉.MCS一52系列單片機實用子程序集錦.清華大學出版社.1993.[14]何立民.單片機實用文集.北京航空航天大學出版.1993.[15]余成波.傳感器與自動檢測技術.高等教育出版社.2004.附錄1:總體原理圖設計附錄2:元器件清單元器件規格名稱數量AD采集芯片ADC083211蜂鳴器蜂鳴器B11電容10uFC11電容20pFC2,C32電源指示燈DD11數碼管DS04DS11電源接口Header2P11三極管8550Q1,Q2,Q3,Q44三極管8550Q51電阻200R1,R6,R7,R8,R9,R10,R11,R128電阻2KR2,R3,R4,R5,R135電阻1KR14,R182電阻10KR15,R162電阻4.7R171獨立按鍵SW-PBS1,S2,S3,S4,S55電源開關sw-灰色SW11單片機U1U11煙物傳感器煙物傳感器1溫度傳感器DS18B20U31晶振12MY11附錄3:PCB圖附錄4:實物圖

附錄5:部分程序源代碼#include<reg52.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint#include<intrins.h>//數碼管段選定義012345 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼//數碼管位選定義ucharcodesmg_we[]={0x7f,0xbf,0xdf,0xef};//ucharcodesmg_we[]={0xfe,0xfd,0xfb,0xf7};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=3;//顯示數碼管的個位數sbitSCL=P3^4; //SCL定義為P1口的第3位腳,連接ADC0832SCL腳sbitDO=P3^3; //DO定義為P1口的第4位腳,連接ADC0832DO腳sbitCS=P3^2; //CS定義為P1口的第4位腳,連接ADC0832CS腳sbitdq=P3^5; //18b20IO口的定義sbitbeep=P3^6;//蜂鳴器IO口定義uinttemperature,s_temp;//溫度的變量uchardengji,s_dengji;//煙物等級ucharshoudong;//手動報警鍵uinthuoyan;bitflag_300ms;ucharkey_can; //按鍵值的變量ucharmenu_1;//菜單設計的變量bitflag_lj_en; //按鍵連加使能bitflag_lj_3_en; //按鍵連3次連加后使能加的數就越大了ucharkey_time,flag_value;//用做連加的中間變量bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//自動退出設置界面uchara_a;/***********************1ms延時函數*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/***********************小延時函數*****************************/voiddelay_uint(uintq){ while(q..);}/******************把數據保存到單片機內部eepom中******************/voidwrite_eepom(){ SectorErase(0x2000); byte_write(0x2000,s_temp); byte_write(0x2001,s_dengji); byte_write(0x2060,a_a); }/******************把數據從單片機內部eepom中讀出來*****************/voidread_eepom(){ s_temp=byte_read(0x2000); s_dengji=byte_read(0x2001); a_a=byte_read(0x2060);}/**************開機自檢eepom初始化*****************/voidinit_eepom(){ read_eepom(); //先讀 if(a_a!=1) //新的單片機初始單片機內問EEPOM { s_temp=50; s_dengji=5; a_a=1; write_eepom(); } }/***********************18b20初始化函數*****************************/voidinit_18b20(){ bitq; dq=1; //把總線拿高 delay_uint(1); //15us dq=0; //給復位脈沖 delay_uint(80); //750us dq=1; //把總線拿高等待 delay_uint(10); //110us q=dq; //讀取18b20初始化信號 delay_uint(20); //200us dq=1; //把總線拿高釋放總線}/*************寫18b20內的數據***************/voidwrite_18b20(uchardat){ uchari; for(i=0;i<8;i++) { //寫數據是低位開始 dq=0; //把總線拿低寫時間隙開始 dq=dat&0x01;//向18b20總線寫數據了 delay_uint(5); //60us dq=1; //釋放總線 dat>>=1; } }/*************讀取18b20內的數據***************/ucharread_18b20(){ uchari,value; for(i=0;i<8;i++) { dq=0; //把總線拿低讀時間隙開始 value>>=1; //讀數據是低位開始 dq=1; //釋放總線 if(dq==1) //開始讀寫數據 value|=0x80; delay_uint(5); //60us 讀一個時間隙最少要保持60us的時間 } returnvalue; //返回數據}/*************讀取溫度的值讀出來的是小數***************/uintread_temp(){ uintvalue; ucharlow; //在讀取溫度的時候如果中斷的太頻繁了,就應該把中斷給關了,否則會影響到18b20的時序 init_18b20(); //初始化18b20 write_18b20(0xcc); //跳過64位ROM write_18b20(0x44); //啟動一次溫度轉換命令 delay_uint(50); //500us init_18b20(); //初始化18b20 write_18b20(0xcc); //跳過64位ROM write_18b20(0xbe); //發出讀取暫存器命令 EA=0; low=read_18b20(); //讀溫度低字節 value=read_18b20();//讀溫度高字節 EA=1; value<<=8; //把溫度的高位左移8位 value|=low; //把讀出的溫度低位放到value的低八位中 value*=0.0625; //轉換到溫度值 returnvalue; //返回讀出的溫度}/***********讀數模轉換數據********************************************************/ //請先了解ADC0832模數轉換的串行協議,再來讀本函數,主要是對應時序圖來理解,本函數是模擬0832的串行協議進行的 //100通道 //111通道unsignedcharad0832read(bitSGL,bitODD){ unsignedchari=0,value=0,value1=0; SCL=0; DO=1; CS=0; //開始 SCL=1; //第一個上升沿 SCL=0; DO=SGL; SCL=1; //第二個上升沿 SCL=0; DO=ODD; SCL=1; //第三個上升沿 SCL=0; //第三個下降沿 DO=1; for(i=0;i<8;i++) { SCL=1; SCL=0;//開始從第四個下降沿接收數據 value<<=1; if(DO) value++; } for(i=0;i<8;i++) { //接收校驗數據 value1>>=1; if(DO) value1+=0x80; SCL=1; SCL=0; } CS=1; SCL=1; if(value==value1) //與校驗數據比較,正確就返回數據,否則返回0 returnvalue; return0;}/***********************數碼顯示函數*****************************/voiddisplay(){ uchari; for(i=0;i<smg_i;i++) { P2=smg_we[i]; //位選 P1=dis_smg[i]; //段選 delay_1ms(1); P1=0xff; //消隱 P2=0xff; //位選 } }/*************定時器0初始化程序***************/voidtime_init() { EA=1; //開總中斷 TMOD=0X01; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時}/****************按鍵處理數碼管顯示函數***************/voidkey_with(){ if(key_can==4) //緊急報警鍵手動報警 { if(menu_1==0) shoudong=1; } if(key_can==1) //設置鍵 { menu_1++; if(menu_1>=3) { menu_1=0; } if(menu_1==0) { dis_smg[0]=smg_du[temperature%10]; //取溫度的個位數顯示 dis_smg[1]=smg_du[temperature/10%10];//取溫度的十位顯示 smg_i=3; } if(menu_1==1) { dis_smg[0]=smg_du[s_temp%10]; //取個位顯示 dis_smg[1]=smg_du[s_temp/10%10];//取十位顯示 dis_smg[2]=0xbf; dis_smg[3]=smg_du[10]; //顯示A smg_i=4; } if(menu_1==2) { dis_smg[0]=smg_du[s_dengji%10]; //取個位顯示 dis_smg[1]=0xbf; dis_smg[2]=0xbf; dis_smg[3]=smg_du[11]; //顯示B smg_i=4; } } if(menu_1==0) { if((key_can==2)||(key_can==3)) shoudong=0;//取消手動報警 } if(menu_1==1) //設置高溫報警 { if(key_can==2) { if(flag_lj_3_en==0) s_temp++; //按鍵按下未松開自動加三次 else s_temp+=10; //按鍵按下未松開自動加三次之后每次自動加10 if(s_temp>99) s_temp=99; dis_smg[0]=smg_du[s_temp%10]; //取個位顯示 dis_smg[1]=smg_du[s_temp/10%10];//取十位顯示 dis_smg[2]=0xbf; dis_smg[3]=smg_du[10]; //顯示A } if(key_can==3) { if(flag_lj_3_en==0) s_temp..; //按鍵按下未松開自動加三次 else s_temp.=10; //按鍵按下未松開自動減三次之后每次自動減10 if(s_temp<=10) s_temp=10; dis_smg[0]=smg_du[s_temp%10]; //取個位顯示 dis_smg[1]=smg_du[s_temp/10%10];//取十位顯示 dis_smg[2]=0xbf; dis_smg[3]=smg_du[10]; //顯示A } } if(menu_1==2) //設置低溫報警 { if(key_can==2) { if(flag_lj_3_en==0) s_dengji++; else s_dengji++; if(s_dengji>=9) s_dengji=9; dis_smg[0]=smg_du[s_dengji%10]; //取個位顯示 dis_smg[1]=0xbf; dis_smg[2]=0xbf; dis_smg[3]=smg_du[11]; //顯示B } if(key_can==3) { if(flag_lj_3_en==0) s_dengji..; else s_dengji..; if(s_dengji<=1) s_dengji=1; dis_smg[0]=smg_du[s_dengji%10]; //取個位顯示 dis_smg[1]=0xbf; dis_smg[2]=0xbf; dis_smg[3]=smg_du[11]; //顯示B } } }/****************獨立按鍵處理函數************************/voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; if(key_new==0) { //按鍵松開的時候做松手檢測 if((P2&0x0f)==0x0f) key_value++; else key_value=0; if(key_value>=5) { write_eepom(); key_value=0; key_time=0; key_new=1; flag_lj_en=0; //關閉連加使能 flag_lj_3_en=0; //關閉3秒后使能 flag_value=0; //清零 } } else { if((P2&0x0f)!=0x0f) key_value++;//按鍵按下的時候 else key_value=0; if(key_value>=5) { key_value=0; key_new=0; flag_lj_en=1; //連加使能 zd_break_en=1;//自動退出設置界使能 zd_break_value=0;//自動退出設置界變量清零 } } key_can=20; if(key_500ms==1) { key_500ms=0; zd_break_en=1;//自動退出設置界使能 zd_break_value=0;//自動退出設置界變量清零 key_new=0; key_old=1; } if((key_new==0)&&(key_old==1)) { switch(P2&0x0f) { case0x0e:key_can=4;break; //得到k1鍵值 case0x0d:key_can=3;break; //得到k2鍵值 case0x0b:key_can=2;break; //得到k3鍵值 case0x07:key_can=1;break; //得到k4鍵值 } } key_old=key_new; }/****************報警函數***************/voidclock_h_l(){ staticucharvalue; if((dengji>=s_dengji)||(temperature>=s_temp)||(shoudong==1)) //報警 { value++; if(value>=3) { value=10; beep=~beep; //蜂鳴器報警 } }else { if((dengji<s_dengji)&&(temperature<(s_temp.1))&&(shoudong==0)) //取消報警 { value=0; beep=1; } }}voidmain(){ staticucharvalue; temperature=read_temp();//讀取溫度值 init_eepom(); //讀eepom數據 time_init(); //初始化定時器 delay_1ms(650); while(1) { key(); //獨立按鍵程序 if(key_can

溫馨提示

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

評論

0/150

提交評論