嵌入式課程設(shè)計(jì)_第1頁(yè)
嵌入式課程設(shè)計(jì)_第2頁(yè)
嵌入式課程設(shè)計(jì)_第3頁(yè)
嵌入式課程設(shè)計(jì)_第4頁(yè)
嵌入式課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

嵌入式課程設(shè)計(jì)學(xué)院:計(jì)算機(jī)與通信工程學(xué)院專業(yè):物聯(lián)網(wǎng)工程班級(jí):物聯(lián)1501姓名:王強(qiáng)學(xué)號(hào):41501602實(shí)驗(yàn)日期:2023年12月25日實(shí)驗(yàn)名稱:嵌入式課程設(shè)計(jì)實(shí)驗(yàn)?zāi)康模阂許TC89開發(fā)板為硬件平臺(tái),開發(fā)溫度采集、動(dòng)態(tài)數(shù)碼管顯示、按鍵響應(yīng)、與PC串口通訊的綜合程序,實(shí)現(xiàn)以下功能:1)PC上的串口調(diào)試助手通過串口給STC89開發(fā)板發(fā)送“GetTemp”命令。2)STC89開發(fā)板從串口接受到“GetTemp”命令后啟動(dòng)溫度傳感器DS18B20的測(cè)溫程序獲取當(dāng)前溫度,測(cè)試完畢時(shí)將所測(cè)得溫度數(shù)據(jù)顯示在動(dòng)態(tài)數(shù)碼管上。(動(dòng)態(tài)數(shù)碼管在溫度獲取之前應(yīng)當(dāng)顯示“FFFFFFFF”,只有在獲取溫度后才顯示溫度值)3)動(dòng)態(tài)數(shù)碼管顯示出溫度數(shù)據(jù)后,請(qǐng)通過按鍵觸發(fā)STC89開發(fā)板通過串口回送環(huán)節(jié)2所測(cè)的溫度數(shù)據(jù)給PC上串口調(diào)試助手,同時(shí)恢復(fù)動(dòng)態(tài)數(shù)碼管顯示為“FFFFFFFF”。為保證每個(gè)同學(xué)的實(shí)驗(yàn)都獨(dú)立完畢,規(guī)定回送的數(shù)據(jù)包含自己的學(xué)號(hào),即假如你的學(xué)號(hào)是20230809,當(dāng)前溫度值是19.6攝氏度,那么在PC上的串口調(diào)試助手應(yīng)當(dāng)顯示:20230809:19.6°C。硬件電路說明:1)STC89解決器管腳和晶振電路2)獨(dú)立按鍵獨(dú)立按鍵一共5個(gè),分別連接在單片機(jī)的P3.0到P3.4口。去抖動(dòng)的方式,我們采用軟件延時(shí)的方法。過程如下:先設(shè)立IO口為高電平(一般上電默認(rèn)就為高),讀取IO口電平確認(rèn)是否有按鍵按下,如有IO電平為低電平后,延時(shí)幾個(gè)ms,再讀取該IO電平,假如任然為低電平,說明相應(yīng)按鍵按下,執(zhí)行相應(yīng)按鍵的程序。3)DS18B20溫度傳感器部分DS18B20內(nèi)部的低溫度系數(shù)振蕩器是一個(gè)振蕩頻率隨溫度變化很小的振蕩器,為計(jì)數(shù)器1提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)振蕩器是一個(gè)振蕩頻率對(duì)溫度很敏感的振蕩器,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。初始時(shí),溫度寄存器被預(yù)置成-55℃,每當(dāng)計(jì)數(shù)器1從預(yù)置數(shù)開始減計(jì)數(shù)到0時(shí),溫度寄存器中寄存的溫度值就增長(zhǎng)1℃,這個(gè)過程反復(fù)進(jìn)行,直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí)便停止。初始時(shí),計(jì)數(shù)器1預(yù)置的是與-55℃相相應(yīng)的一個(gè)預(yù)置值。以后計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補(bǔ)償振蕩器溫度特性的非線性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計(jì)數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增長(zhǎng)1℃計(jì)數(shù)器所需要的計(jì)數(shù)個(gè)數(shù)。DS18B20內(nèi)部的比較器以四舍五入的量化方式擬定溫度寄存器的最低有效位。在計(jì)數(shù)器2停止計(jì)數(shù)后,比較器將計(jì)數(shù)器1中的計(jì)數(shù)剩余值轉(zhuǎn)換為溫度值后與0.25℃進(jìn)行比較,若低于0.25℃,溫度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃時(shí),溫度寄存器的最低位就進(jìn)位然后置0。這樣,通過比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5℃,四舍五入最大量化誤差為±1/2LSB,即0.25℃。溫度寄存器中的溫度值以9位數(shù)據(jù)格式表達(dá),最高位為符號(hào)位,其余8位以二進(jìn)制補(bǔ)碼形式表達(dá)溫度值。測(cè)溫結(jié)束時(shí),這9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲(chǔ)器的前兩個(gè)字節(jié)中,符號(hào)位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。DS18B20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù)。DS18B20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);同樣的,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻率信號(hào)。當(dāng)計(jì)數(shù)門打開時(shí),DS18B20進(jìn)行計(jì)數(shù),計(jì)數(shù)門開通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部尚有斜率累加器,可對(duì)頻率的非線性度加以補(bǔ)償。測(cè)量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)當(dāng)為9位,但因符號(hào)位擴(kuò)展成高8位,所以最后以16位補(bǔ)碼形式讀出。電路圖及管腳如下:4)串口通信串行通信是將數(shù)據(jù)字節(jié)提成一位一位的形式在一條傳輸線上逐個(gè)地傳送,此時(shí)只需要一條數(shù)據(jù)線,外加一條公共信號(hào)地線和若干控制信號(hào)線。由于一次只能傳送一位,所以對(duì)于一個(gè)字節(jié)的數(shù)據(jù),至少要分S位才干傳送完畢。串行通信的必要過程是:發(fā)送時(shí),要把并行數(shù)據(jù)變成串行數(shù)據(jù)發(fā)送到線路上去,接受時(shí),要把串行信號(hào)再變成并行數(shù)據(jù),這樣才干被計(jì)算機(jī)及其他設(shè)備解決。在串行通信中,收、發(fā)雙方對(duì)發(fā)送或接受數(shù)據(jù)的速率要有約定。通過編程可對(duì)單片機(jī)串行口設(shè)定為4種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定期器T1的溢出率來(lái)決定。串行口的4種工作方式相應(yīng)三種波特率。由于輸入的移位時(shí)鐘的來(lái)源不同,所以各種方式的波特率計(jì)算公式也不相同,以下是4種方式波特率的計(jì)算公式。開發(fā)板的電路圖如下圖5)動(dòng)態(tài)數(shù)碼管顯示數(shù)碼管的顯示原理是靠點(diǎn)亮內(nèi)部的發(fā)光二極管來(lái)發(fā)光,下面就來(lái)我們講解一個(gè)數(shù)碼管是如何亮起來(lái)的。數(shù)碼管內(nèi)部電路如下圖所示,從右圖可看出,一位數(shù)碼管的引腳是10個(gè),顯示一個(gè)8字需要7個(gè)小段,此外尚有一個(gè)小數(shù)點(diǎn),所以其內(nèi)部一共有8個(gè)小的發(fā)光二極管,最后尚有一個(gè)公共端,生產(chǎn)商為了封裝統(tǒng)一,單位數(shù)碼管都封裝10個(gè)引腳,其中第3和第8引腳是連接在一起的。而它們的公共端又可分為共陽(yáng)極和共陰極,中間圖為共陰極內(nèi)部原理圖,右圖為共陽(yáng)極內(nèi)部原理圖。上圖展出了常用的兩種數(shù)碼管的引腳排列和內(nèi)部結(jié)構(gòu)??偹苤?,點(diǎn)亮發(fā)光二極管就是要給予它足夠大的正向壓降。所以點(diǎn)亮數(shù)碼管其實(shí)也就是給它內(nèi)部相應(yīng)的發(fā)光二極管正向壓降。如上圖左(一共a、b、c、d、e、f、g、DP八段),假如要顯示“1”則要點(diǎn)亮b、c兩段LED;顯示“A”則點(diǎn)亮a、b、c、e、f、g這六段LED;動(dòng)態(tài)顯示是多個(gè)數(shù)碼管,交替顯示,運(yùn)用人的視覺暫停作用使人看到多個(gè)數(shù)碼管同時(shí)顯示的效果。完整程序代碼: 主程序文獻(xiàn)main.c:#include"temp.h" //引用temp.h頭文獻(xiàn),涉及一些有關(guān)溫度傳感器的函數(shù)#include"reg51.h" //引用reg51.h頭文獻(xiàn),說明引腳地址#defineGPIO_DIGP0 //將P0端口定義為GPIO_DIG#defineGPIO_LEDP2 //將P2端口定義為GPIO_LEDsbitLSA=P2^2; //位選,P2^2定義為L(zhǎng)SAsbitLSB=P2^3; //同上位選定義變量 sbitLSC=P2^4; //同上位選定義變量sbitK3=P3^2; //位選,P3^2定義為K3按鍵unsignedintdisp[8]={0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71}; //顯示FFFFFFFFunsignedcharcodeDIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0、1、2、3、4、5、6、7、8、9的顯示碼unsignedcharcheck1[7]={'0','0','0','0','0','0','0'}; //用來(lái)存放串口通信傳送字符unsignedcharcheck2[7]={'G','e','t','T','e','m','p'}; //用來(lái)比較串口通信傳送字符unsignedcharmessage[17]={'4','1','5','0','1','6','0','2',':','0','0','0','0','0','0','0','0'};//顯示學(xué)號(hào)為41501602:unsignedcharDisplayData[8]; //用來(lái)存放要顯示的8位數(shù)的值unsignedcharKeyValue=0; //是否按下獨(dú)立按鍵的標(biāo)志位voidDigDisplay(); //動(dòng)態(tài)數(shù)碼管顯示函數(shù)voidUsartConfiguration(); //串口設(shè)立函數(shù)voidLcdDisplay(int); //數(shù)碼管顯示讀取到的溫度voidIntConfiguration(); //設(shè)立外部中斷voidDelay(unsignedintn); //延時(shí)函數(shù)voidTimer0Configuration(); //定期器初始設(shè)立voidCheckMessage(charm); //逐字檢查串口通信字符是否對(duì)的unsignedintflag=0; //數(shù)碼管顯示標(biāo)志位unsignedintj=0; //用于CheckMessage逐字檢查發(fā)送字符unsignedcharNum=0; //動(dòng)態(tài)數(shù)碼管位選/*******************************************************************************主函數(shù)模塊*******************************************************************************/voidmain() //主函數(shù){ unsignedinti; IntConfiguration(); //初始化外部中斷設(shè)立 UsartConfiguration(); //初始化串口設(shè)立 Timer0Configuration(); //初始化定期器設(shè)立 while(1) { if(flag==1) //當(dāng)flag為1時(shí)數(shù)碼管直接顯示當(dāng)前溫度 { LcdDisplay(Ds18b20ReadTemp()); //調(diào)用溫度傳感器函數(shù)并在數(shù)碼管顯示溫度 } if(flag==0) //當(dāng)flag為0時(shí)數(shù)碼管顯示FFFFFFFF { for(i=0;i<8;i++) //循環(huán)給disp[]數(shù)組賦值 { disp[i]=0x71; //disp[i]賦值 } } }}/*******************************************************************************獨(dú)立按鍵模塊*******************************************************************************/voidIntConfiguration() //設(shè)立外部中斷{ //設(shè)立INT0 IT0=1; //跳變沿觸發(fā)方式(下降沿) EX0=1; //打開INT0的中斷允許。 //設(shè)立INT1 IT1=1; //跳變沿觸發(fā)方式為下降沿 EX1=1; //打開INT1的中斷允許 EA=1; //打開總中斷 }voidDelay(unsignedintn)//延時(shí)50us誤差0us {unsignedchara,b; for(;n>0;n--) { for(b=1;b>0;b--)for(a=22;a>0;a--); }}voidInt0() interrupt0 //外部中斷0的中斷函數(shù)K3按鍵中斷{ unsignedintk=0; Delay(1); //延時(shí)消抖 if(K3==0) //假如K3按鍵被按下的話,動(dòng)態(tài)數(shù)碼管就顯示FFFFFFFF { KeyValue=1; flag=0; for(k=0;k<17;k++) //逐字將message[]字符數(shù)組中字符送入SBUF { SBUF=message[k]; //將接受到的數(shù)據(jù)放入到發(fā)送寄存器 while(!TI); //等待發(fā)送數(shù)據(jù)完畢 TI=0; //清除發(fā)送完畢標(biāo)志位 } if(k==17) //假如message數(shù)組發(fā)送完畢就歸零準(zhǔn)備下一次 { k=0; } } else KeyValue=0; //K3按鍵沒被按下的時(shí)候就一直保持當(dāng)前狀態(tài),顯示當(dāng)前溫度}/*******************************************************************************串口通信模塊*******************************************************************************/voidUsartConfiguration() //串口設(shè)立{ SCON=0X50; //設(shè)立為工作方式1 TMOD=0X20; //設(shè)立計(jì)數(shù)器工作方式2,也就是自動(dòng)重裝模式 PCON=0X80; //波特率加倍 TH1=0XF3; //計(jì)數(shù)器初始值設(shè)立,注意波特率是4800的 TL1=0XF3; ES=1; //打開接受中斷 EA=1; //打開總中斷 TR1=1; //打開計(jì)數(shù)器}voidUsart()interrupt4 //串口中斷{ unsignedcharreceiveData; receiveData=SBUF; //出去接受到的數(shù)據(jù) RI=0; //清除接受中斷標(biāo)志位 CheckMessage(receiveData); //判斷發(fā)送字節(jié)是否對(duì)的}voidCheckMessage(charm) //逐字檢查串口通信字符是否對(duì)的{ check1[j]=m; //將串口接受到的字符一位一位的賦給check1[] if(check1[j]!=check2[j]) //按位逐字檢查發(fā)送字符是否符合規(guī)定 { flag=-1; //不符合直接退出 } if(j==6) //符合時(shí)改變顯示標(biāo)志位,數(shù)碼管顯示當(dāng)前溫度 { flag=1; } j++; //按位檢查}/*******************************************************************************動(dòng)態(tài)數(shù)碼管模塊*******************************************************************************/voidDigDisplay()interrupt1 //動(dòng)態(tài)數(shù)碼管顯示{ //定期器在工作方式二會(huì)自動(dòng)重裝初,所以不用在賦值。 TH0=0X9c; //給定期器賦初值,定期1ms TL0=0X00; GPIO_DIG=0; //消隱 switch(Num) //位選,選擇點(diǎn)亮的數(shù)碼管, { case(7): LSA=0;LSB=0;LSC=0;break;//顯示第7位 case(6): LSA=1;LSB=0;LSC=0;break;//顯示第6位 case(5): LSA=0;LSB=1;LSC=0;break;//顯示第5位 case(4): LSA=1;LSB=1;LSC=0;break;//顯示第4位 case(3): LSA=0;LSB=0;LSC=1;break;//顯示第3位 case(2): LSA=1;LSB=0;LSC=1;break;//顯示第2位 case(1): LSA=0;LSB=1;LSC=1;break;//顯示第1位 case(0): LSA=1;LSB=1;LSC=1;break;//顯示第0位 } GPIO_DIG=disp[Num]; //發(fā)送段碼 Num++; //動(dòng)態(tài)數(shù)碼管從0到7循環(huán)點(diǎn)亮 if(Num>7) Num=0; }voidTimer0Configuration() //定期器初始設(shè)立{ TMOD=0X20; //選擇為定期器模式,工作方式2,僅用TRX打啟動(dòng)動(dòng)。 TH0=0X9C; //給定期器賦初值,定期100us TL0=0X9C; ET0=1; //打開定期器0中斷允許 EA=1; //打開總中斷 TR0=1; //打開定期器 }/*******************************************************************************溫度傳感器DS18B20模塊*******************************************************************************/voidLcdDisplay(inttemp) //數(shù)碼管顯示讀取到的溫度{ unsignedchardatas[]={0,0,0,0,0};//定義數(shù)組 floattp; if(temp<0) //當(dāng)溫度值為負(fù)數(shù) { disp[2]=0x40; //假如溫度值為負(fù)數(shù)的時(shí)候,disp[2]數(shù)碼管顯示負(fù)號(hào)- //由于讀取的溫度是實(shí)際溫度的補(bǔ)碼,所以減1,再取反求出原碼 temp=temp-1; temp=~temp; tp=temp; temp=tp*0.0625*100+0.5; //留兩個(gè)小數(shù)點(diǎn)就*100,+0.5是四舍五入,由于C語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn) //后面的數(shù)自動(dòng)去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就 //算由?.5,還是在小數(shù)點(diǎn)后面。 } else { disp[2]=0; //假如溫度不是負(fù)數(shù),就置零 tp=temp;//由于數(shù)據(jù)解決有小數(shù)點(diǎn)所以將溫度賦給一個(gè)浮點(diǎn)型變量 //假如溫度是正的那么,那么正數(shù)的原碼就是補(bǔ)碼它自身 temp=tp*0.0625*100+0.5; //留兩個(gè)小數(shù)點(diǎn)就*100,+0.5是四舍五入,由于C語(yǔ)言浮點(diǎn)數(shù)轉(zhuǎn)換為整型的時(shí)候把小數(shù)點(diǎn) //后面的數(shù)自動(dòng)去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就 //算加上0.5,還是在小數(shù)點(diǎn)后面。 } message[9]=(temp/10000)+'0'; //具體溫度的百位 message[10]=(temp%10000/1000)+'0'; //具體溫度的十位 message[11]=(temp%1000/100)+'0'; //具體溫度的個(gè)位 message[12]='.'; //小數(shù)點(diǎn)字符 message[13]=(temp%100/10)+'0'; //具體溫度的十分位 message[14]=(temp%10)+'0'; //具體溫度的千分位 message[15]='o'; //message[15]和[16]字符串代表°C攝氏度符號(hào) message[16]='C'; disp[0]=0; //disp[0]和disp[1]直接置零disp[1]=0;disp[3]=DIG_CODE[temp/10000]; //數(shù)碼管顯示具體溫度的百位 disp[4]=DIG_CODE[temp%10000/1000]; //數(shù)碼管顯示具體溫度的十位 disp[5]=DIG_CODE[temp%1000/100]|0x80; //數(shù)碼管顯示具體溫度的個(gè)位 //共陰接法,數(shù)碼管為高電平驅(qū)動(dòng),且小數(shù)點(diǎn)的段接在IO的bit7,所以用|0x80來(lái)點(diǎn)亮小數(shù)點(diǎn) disp[6]=DIG_CODE[temp%100/10]; //數(shù)碼管顯示具體溫度的十分位 disp[7]=DIG_CODE[temp%10]; //數(shù)碼管顯示具體溫度的千分位} 溫度傳感器temp.c:#include"temp.h"/********************************************************************************函數(shù)名:Delay1ms*函數(shù)功能 :延時(shí)函數(shù)*輸入:無(wú)*輸出 :無(wú)*******************************************************************************/voidDelay1ms(unsignedinty){ unsignedintx; for(y;y>0;y--) for(x=110;x>0;x--);}/********************************************************************************函數(shù)名:Ds18b20Init*函數(shù)功能 :初始化*輸入:無(wú)*輸出 :初始化成功返回1,失敗返回0*******************************************************************************/unsignedcharDs18b20Init(){ unsignedinti; DSPORT=0; //將總線拉低480us~960us i=70; while(i--);//延時(shí)642us DSPORT=1; //然后拉高總線,假如DS18B20做出反映會(huì)將在15us~60us后總線拉低 i=0; while(DSPORT) //等待DS18B20拉低總線 { i++; if(i>5000)//等待>5MS return0;//初始化失敗 } return1;//初始化成功}/********************************************************************************函數(shù)名:Ds18b20WriteByte*函數(shù)功能 :向18B20寫入一個(gè)字節(jié)*輸入:com*輸出 :無(wú)*******************************************************************************/voidDs18b20WriteByte(unsignedchardat){ unsignedinti,j; for(j=0;j<8;j++) { DSPORT=0; //每寫入一位數(shù)據(jù)之前先把總線拉低1us i++; DSPORT=dat&0x01;//然后寫入一個(gè)數(shù)據(jù),從最低位開始 i=6; while(i--);//延時(shí)68us,連續(xù)時(shí)間最少60us DSPORT=1; //然后釋放總線,至少1us給總線恢復(fù)時(shí)間才干接著寫入第二個(gè)數(shù)值 dat>>=1; }}/********************************************************************************函數(shù)名:Ds18b20ReadByte*函數(shù)功能 :讀取一個(gè)字節(jié)*輸入:com*輸出 :無(wú)*******************************************************************************/unsignedcharDs18b20ReadByte(){ unsignedcharbyte,bi; unsignedinti,j; for(j=8;j>0;j--) { DSPORT=0;//先將總線拉低1us i++; DSPORT=1;//然后釋放總線 i++; i++;//延時(shí)6us等待數(shù)據(jù)穩(wěn)定 bi=DSPORT; //讀取數(shù)據(jù),從最低位開始讀取 /*將byte左移一位,然后與上右移7位后的bi,注意移動(dòng)之后移掉那位補(bǔ)0。*/ byte=(byte>>1)|(bi<<7); i=4; //讀取完之后等待48us再接著讀取下一個(gè)數(shù) while(i--); } returnbyte;}/********************************************************************************函數(shù)名:Ds18b20ChangTemp*函數(shù)功能 :讓18b20開始轉(zhuǎn)換溫度*輸入:com*輸出 :無(wú)*******************************************************************************/voidDs18b20ChangTemp(){ Ds18b20Init();

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論