51單片機(jī)的C語(yǔ)言應(yīng)用基礎(chǔ)程序設(shè)計(jì)綜述_第1頁(yè)
51單片機(jī)的C語(yǔ)言應(yīng)用基礎(chǔ)程序設(shè)計(jì)綜述_第2頁(yè)
51單片機(jī)的C語(yǔ)言應(yīng)用基礎(chǔ)程序設(shè)計(jì)綜述_第3頁(yè)
51單片機(jī)的C語(yǔ)言應(yīng)用基礎(chǔ)程序設(shè)計(jì)綜述_第4頁(yè)
51單片機(jī)的C語(yǔ)言應(yīng)用基礎(chǔ)程序設(shè)計(jì)綜述_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)1C51數(shù)據(jù)類型及在51中的存儲(chǔ)方式

2C51數(shù)據(jù)的存儲(chǔ)類型與51存儲(chǔ)結(jié)構(gòu)351特殊功能寄存器(SFR)的C51定義451并行接口的C51定義5位變量的C51定義6中斷應(yīng)用的C語(yǔ)言編程7定時(shí)器/計(jì)數(shù)器的應(yīng)用編程851片外擴(kuò)展的C語(yǔ)言編程951機(jī)串行通信的C語(yǔ)言編程10鍵盤和數(shù)碼顯示人機(jī)交互的C語(yǔ)言編程1.C51數(shù)據(jù)類型及在51中的存儲(chǔ)方式1.1C51的數(shù)據(jù)類型C51編譯器具體支持的數(shù)據(jù)類型有:位型(bit)、無符號(hào)字符(unsignedchar)、有符號(hào)字符(singedchar)、無符號(hào)整型(unsignedint)、有符號(hào)整型(signedint)、無符號(hào)長(zhǎng)整型(unsignedlong)、有符號(hào)長(zhǎng)整型(signedlong)、浮點(diǎn)型(float)和指針類型等。C51的數(shù)據(jù)類型數(shù)據(jù)類型長(zhǎng)度(bit)長(zhǎng)度(byte)值域bit110,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedlong3240~4294967295signedlong324–2147483648~2147483647float324±1.176E–38~±3.40E+38(6位數(shù)字)double648±1.176E–38~±3.40E+38(10位數(shù)字)一般指針243存儲(chǔ)空間0~655351.2C51數(shù)據(jù)的存儲(chǔ)類型與51存儲(chǔ)結(jié)構(gòu)C51存儲(chǔ)類型與MCS-51存儲(chǔ)空間的對(duì)應(yīng)關(guān)系存儲(chǔ)類型與存儲(chǔ)空間的對(duì)應(yīng)關(guān)系data直接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),訪問速度快(128字節(jié))bdata可位尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),允許位與字節(jié)混合訪問(16字節(jié))idata間接尋址片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū),可訪問片內(nèi)全部RAM地址空間(256字節(jié))pdata分頁(yè)尋址片外數(shù)據(jù)存儲(chǔ)區(qū)(256字節(jié))由MOV@Ri訪問(i=0,1)xdata片外數(shù)據(jù)存儲(chǔ)區(qū)(64KB)由MOVX@DPTR訪問code程序存儲(chǔ)器64KB空間,由MOVC@DPTR訪問C51存儲(chǔ)類型及其數(shù)據(jù)長(zhǎng)度和值域存儲(chǔ)類型長(zhǎng)度(bit)長(zhǎng)度(byte)值域范圍data810~255idata810~255pdata810~255xdata1620~65535code1620~65535帶存儲(chǔ)類型的變量的定義的一般格式為數(shù)據(jù)類型存儲(chǔ)類型變量名帶存儲(chǔ)類型的變量定義舉例:chardatavar1;bitbdataflags;floatidatax,y,z;unsignedintpdatavar2;unsignedcharvector[3][4];1.351特殊功能寄存器(SFR)的C51定義MCS-51單片機(jī)中,除了程序計(jì)數(shù)器PC和4組工作寄存器組外,其它所有的寄存器均為特殊功能寄存器(SFR),分散在片內(nèi)RAM區(qū)的高128字節(jié)中,地址范圍為80H~0FFH。SFR中有11個(gè)寄存器具有位尋址能力,它們的字節(jié)地址都能被8整除,即字節(jié)地址是以8或0為尾數(shù)的。為了能直接訪問這些SFR,C51提供了一種自主形式的定義方法,這種定義方法與標(biāo)準(zhǔn)C語(yǔ)言不兼容,只適用于對(duì)MCS-51系列單片機(jī)進(jìn)行C語(yǔ)言編程。特殊功能寄存器C51定義的一般語(yǔ)法格式如下: sfrsfr-name=intconstant;"sfr"是定義語(yǔ)句的關(guān)鍵字,其后必須跟一個(gè)MSC-51單片機(jī)真實(shí)存在的特殊功能寄存器名,"="后面必須是一個(gè)整型常數(shù),不允許帶有運(yùn)算符的表達(dá)式,是特殊功能寄存器"sfr-name"的字節(jié)地址,這個(gè)常數(shù)值的范圍必須在SFR地址范圍內(nèi),位于0x80~0xFF。例如:sfrSCON=0x98; /*串口控制寄存器地址98H*/sfrTMOD=0x89; /*定時(shí)器/計(jì)數(shù)器方式控制寄存器地址89H*/對(duì)于位尋址的SFR中的位,C51的擴(kuò)充功能支持特殊位的定義,像SFR一樣不與標(biāo)準(zhǔn)C兼容,使用“sbit”來定義位尋址單元。有三種表達(dá)方式第一種格式:sbitbit-name=sfr-name^intconstant;"sbit"是定義語(yǔ)句的關(guān)鍵字,后跟一個(gè)尋址位符號(hào)名(該位符號(hào)名必須是MCS-51單片機(jī)中規(guī)定的位名稱),"="后的"sfr-name"必須是已定義過的SFR的名字,"^"后的整常數(shù)是尋址位在特殊功能寄存器"sfr-name"中的位號(hào),必須是0~7范圍中的數(shù)。例如:sfrPSW=0xD0; /*定義PSW寄存器地址為D0H*/sbitOV=PSW^2; /*定義OV位為PSW.2,地址為D2H*/sbitCY=PSW^7; /*定義CY位為PSW.7,地址為D7H*/第二種格式:sbitbit-name=intconstant^intconstant;"="后的intconstant為尋址地址位所在的特殊功能寄存器的字節(jié)地址,"^"符號(hào)后的intconstant為尋址位在特殊功能寄存器中的位號(hào)。例如:sbitOV=0XD0^2; /*定義OV位地址是D0H字節(jié) 中的第2位*/sbitCY=0XD0^7; /*定義CY位地址是D0H字節(jié)中 的第7位*/第三種格式:sbitbit-name=intconstant;"="后的intconstant為尋址位的絕對(duì)位地址。例如:sbitOV=0XD2; /*定義OV位地址為D2H*/sbitCY=0XD7; /*定義CY位地址為D7H*/特殊功能位代表了一個(gè)獨(dú)立的定義類,不能與其它位定義和位域互換。1.451并行接口的C51定義MCS-51系列單片機(jī)并行I/O接口除了芯片上的4個(gè)I/O口(P0~P3)外,還可以在片外擴(kuò)展I/O口。MCS-51單片機(jī)I/O口與數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址,即把一個(gè)I/O口當(dāng)作數(shù)據(jù)存儲(chǔ)器中的一個(gè)單元來看待。對(duì)于MCS-51片內(nèi)I/O口按特殊功能寄存器方法定義。例如:sfrP0=0x80;/*定義P0口,地址為80H*/sfrP1=0x90;/*定義P1口,地址為90H*/對(duì)于片外擴(kuò)展I/O口,則根據(jù)硬件譯碼地址,將其視作為片外數(shù)據(jù)存儲(chǔ)器的一個(gè)單元,使用#define語(yǔ)句進(jìn)行定義。例如#include<absacc.h>#definePORTAXBYTE[0xFFC0]absacc.h是C51中絕對(duì)地址訪問函數(shù)的頭文件,將PORTA定義為外部I/O口,地址為FFC0H,長(zhǎng)度為8位。一旦在頭文件或程序中對(duì)這些片外I/O口進(jìn)行定義后,在程序中就可以自由使用變量名與其實(shí)際地址的聯(lián)系,以便使程序員能用軟件模擬51的硬件操作。1.551內(nèi)部資源使用的C語(yǔ)言編程(1)中斷應(yīng)用的C語(yǔ)言編程C51編譯器支持在C源程序中直接開發(fā)中斷程序。中斷服務(wù)程序是通過按規(guī)定語(yǔ)法格式定義的一個(gè)函數(shù)。中斷服務(wù)程序的函數(shù)定義的語(yǔ)法格式如下:返回值函數(shù)名([參數(shù)])interruptm[usingn]{

}…MCS-51中斷源編號(hào)編號(hào)中斷源入口地址0外部中斷00003H1定時(shí)器/計(jì)數(shù)器0000BH2外部中斷10013H3定時(shí)器/計(jì)數(shù)器1001BH4串行口中斷0023H

usingn選項(xiàng)用于實(shí)現(xiàn)工作寄存器組的切換,n是中斷服務(wù)子程序中選用的工作寄存器組號(hào)(0~3)。在許多情況下,響應(yīng)中斷時(shí)需保護(hù)有關(guān)現(xiàn)場(chǎng)信息,以便中斷返回后,能使中斷前的源程序從斷點(diǎn)處繼續(xù)正確地執(zhí)行下去。這在MCS-51單片機(jī)中,能很方便地利用工作寄存器組的切換來實(shí)現(xiàn)。即在進(jìn)入中斷服務(wù)程序前的程序中使用一組工作寄存器,進(jìn)入中斷服務(wù)程序后,由"usingn"切換到另一組寄存器,中斷返回后又恢復(fù)到原寄存器組。這樣互相切換的兩組寄存器中的內(nèi)容彼此都沒有被破壞。擴(kuò)展多個(gè)中斷源例下圖示是利用優(yōu)先權(quán)解碼芯片,在單片機(jī)8031的一個(gè)外部中斷INT1上擴(kuò)展多個(gè)中斷源的原理電路圖。圖中是以開關(guān)閉合來模擬中斷請(qǐng)求信號(hào)。當(dāng)有任一中斷源產(chǎn)生中斷請(qǐng)求,能給8031的INT1引腳送一個(gè)有效中斷信號(hào),由P1的低3位可得對(duì)應(yīng)中斷源的中斷號(hào)。在中斷服務(wù)程序中僅設(shè)置標(biāo)志,并保存I/O口輸入狀態(tài)。C51編譯器提供定義特定MCS-51系列成員的寄存器頭文件。MCS-51頭文件為reg51.h。C51程序如下:#include<reg51.h>unsignedcharstatus;bitflag;voidservice_int1()interrupt2using2 /*INT1中斷服務(wù)程序,使用第2組工 作寄存器*/{flag=1; /*設(shè)置標(biāo)志*/status=p1; /*存輸入口狀態(tài)*/}voidmain(void){IP=0x04; /*置INT1為高優(yōu)先級(jí)中斷*/IE=0x84; /*INT1開中斷,CPU開中斷*/for(;;){if(flag) /*有中斷*/{switch(status) /*根據(jù)中斷源分支*/{case0:break; /*處理IN0*/case1:break; /*處理IN1*/case2:break; /*處理IN2*/case3:break; /*處理IN3*/…default:;}flag=0; /*處理完成清標(biāo)志*/}}}

1.6定時(shí)器/計(jì)數(shù)器(T/C)應(yīng)用的C語(yǔ)言編程例設(shè)單片機(jī)的fosc=12MHz晶振,要求在P1.0腳上輸出周期為2ms的方波。周期為2ms的方波要求定時(shí)時(shí)間隔1ms,每次時(shí)間到P1.0取反。機(jī)器周期=12/fosc=1μs需計(jì)數(shù)次數(shù)=1000/(12/fosc)=1000/1=1000由于計(jì)數(shù)器是加1計(jì)數(shù),為得到1000個(gè)計(jì)數(shù)之后的定時(shí)器溢出,必須給定時(shí)器置初值為-1000(即1000的補(bǔ)數(shù))。(1)用定時(shí)器0的方式1編程,采用查詢方式,程序如下:

#include<reg51.h>sbitP1_0=P1^0;voidmain(void){TMOD=0x01; /*設(shè)置定時(shí)器1為非門控制方式1*/TR0=1; /*啟動(dòng)T/C0*/for(;;){TH0=-(1000/256); /*裝載計(jì)數(shù)器初值*/TL0=-(1000%256);while(!TF0); /*查詢等待TF0置位*/P1_0=!P1_0; /*定時(shí)時(shí)間到P1.0反相*/TF0=0; /*軟件清TF0*/}}(2)用定時(shí)器0的方式1編程,采用中斷方式。程序如下:#include<reg51.h>sbitP1_0=P1^0;voidtime(void)interrupt1using1/*T/C0中斷服務(wù)程序入口*/{P1_0=!P1_0; /*P1.0取反*/TH0=-(1000/256);

TL0=-(1000%256); /*重新裝載計(jì)數(shù)初值*/}voidmain(void){TMOD=0x01; /*T/C0工作在定時(shí)器非門控制方式1*/P1_0=0;TH0=-(1000/256); /*預(yù)置計(jì)數(shù)初值*/TL0=-(1000%256);EA=1; /*CPU中斷開放*/ET0=1; /*T/C0中斷開放*/TR0=1; /*啟動(dòng)T/C0開始定時(shí)*/do{}while(1); /*等待中斷*/}例采用10MHz晶振,在P1.0腳上輸出周期為2.5s,占空比20%的脈沖信號(hào)。10MHz晶振,使用定時(shí)器最大定時(shí)幾十毫秒。取10ms定時(shí),周期2.5s需250次中斷,占空比20%,高電平應(yīng)為50次中斷。10ms定時(shí),晶振fosc=10MHz。#include<reg51.h>#defineucharunsignedcharucharperiod=250;ucharhigh=50;timer0()interrupt1using1 /*T/C0中斷服務(wù)程序*/{TH0=-8333/256; /*重置計(jì)數(shù)值*/TL0=-8333%256;if(++time==high)P1=0; /*高電平時(shí)間到變低*/elseif(time==period) /*周期時(shí)間到變高*/{time=0;P1=1;}}main(){TMOD=0x01; /*定時(shí)器0方式1*/TH0=-8333/256; /*預(yù)置計(jì)數(shù)初值*/TL0=-8333%256;EA=1; /*開CPU中斷*/ET0=1; /*開T/C0中斷*/TR0=1; /*啟動(dòng)T/C0*/P1=1;do{}while(1);}中斷服務(wù)程序流程圖

1.751數(shù)據(jù)采集的C語(yǔ)言編程例ADC0809與8031接口的數(shù)據(jù)采集程序舉例。程序如下:#include<absacc.h>#include<reg51.h>#defineucharunsignedchar#defineIN0XBYTE[0x7ff8] /*設(shè)置AD0809的通道0地址*/sbitad_busy=P3^3; /*即EOC狀態(tài)*/voidad0809(ucharidata*x) /*采樣結(jié)果放指針中的A/D采集函數(shù)*/{uchari;ucharxdata*ad_adr;ad_adr=&IN0;for(i=0;i<8;i++) /*處理8通道*/{*ad_adr=0; /*啟動(dòng)轉(zhuǎn)換*/ i=i; /*延時(shí)等待EOC變低*/i=i;while(ad_busy==0);/*查詢等待轉(zhuǎn)換結(jié)束*/x[i]=*ad_adr; /*存轉(zhuǎn)換結(jié)果*/ad_adr++; /*下一通道*/}}voidmain(void){staticucharidataad[10];ad0809(ad); /*采樣AD0809通道的值*/}1.851輸出控制的C語(yǔ)言編程例8031與DAC0832雙緩沖接口的數(shù)據(jù)轉(zhuǎn)換程序舉例。將data1和data2數(shù)據(jù)同時(shí)轉(zhuǎn)換為模擬量的C51程序如下:#include<absacc.h>#include<reg51.h>#defineINPUTR1XBYTE[0x8fff]#defineINPUTR2XBYTE[0xa7ff]#defineDACRXBYTE[0x2fff]#defineucharunsignedcharvoiddac2b(data1,data2)uchardata1,data2;{INPUTR1=data1; /*送數(shù)據(jù)到一片0832*/INPUTR2=data2; /*送數(shù)據(jù)到另一片0832*/DACR=0; /*啟動(dòng)兩路D/A同時(shí)轉(zhuǎn)換*/}例8031與DAC0832單緩沖區(qū)接口的數(shù)據(jù)轉(zhuǎn)換舉例。按片選線確定FFFEH為DAC0832的端口地址。使運(yùn)行輸出端輸出一個(gè)鋸齒波電壓信號(hào)的C51程序如下:#include<reg51.h>#defineDA0832XBYTE[0xfffe]#defineucharunsignedchar#defineuintunsignedintvoidmain(void){uchari;while(1){for(i=0;i<=255;i++) /*形成鋸齒波輸出值,最大值為255*/DA0832=i; /*D/A轉(zhuǎn)換輸出*/}}1.951機(jī)間通信的C語(yǔ)言編程點(diǎn)對(duì)點(diǎn)的串行異步通信1.通信雙方的硬件連接圖7.178031間RS—232C電平信號(hào)的傳2.通信雙方的約定3.點(diǎn)對(duì)點(diǎn)通信編程點(diǎn)對(duì)點(diǎn)通信雙方基本等同,只是人為規(guī)定一個(gè)為發(fā)送,一個(gè)為接收。要求兩機(jī)串行口的波特率相同,因而發(fā)送和接收方串行口的初始化相同??删幹坪谐跏蓟瘮?shù)、發(fā)送函數(shù)接收函數(shù)的程序,在主函數(shù)中根據(jù)程序的發(fā)送、接收設(shè)置TR,采用條件判別決定使用發(fā)送函數(shù)還是接收函數(shù)。這樣點(diǎn)對(duì)點(diǎn)通信的雙方都可運(yùn)行此程序,只需在程序運(yùn)行之前人為設(shè)置選擇TR,一個(gè)令TR=0,一個(gè)令TR=1,然后分別編譯,在兩機(jī)上分別裝入,同時(shí)運(yùn)行。點(diǎn)對(duì)點(diǎn)通信的程序如下:#include<reg51.h>#defineucharunsignedchar#defineTR1 /*發(fā)送接收差別值TR=0發(fā)送*/ucharidatabuf[10];ucharpf;voidinit(void) /*串行口初始化*/{TMOD=0x20; /*設(shè)T/C1為定時(shí)方式2*/TH1=0xe8; /*設(shè)定波特率*/TL1=0xe8;PCON=0x00;TR1=1; /*啟動(dòng)T/C1*/SCON=0x50; /*串行口工作在方式1*/}voidsend(ucharidata*d){uchari;do{SBUF=0xaa; /*發(fā)送聯(lián)絡(luò)信號(hào)*/while(TI==0); /*等待發(fā)送出去*/TI=0;while(RI==0); /*等待B機(jī)回答*/RI=0;}while((SBUF^0xbb)!=0); /*B機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)*/do{pf=0; /*清校驗(yàn)和*/for(i=0;i<16;i++){SBUF=d[i]; /*發(fā)送一個(gè)數(shù)據(jù)*/pf+=d[i]; /*求校驗(yàn)和*/while(TI==0);TI=0;}SBUF=pf; /*發(fā)送校驗(yàn)和*/while(TI==0);TI=0;while(RI==0);RI=0; /*等待B機(jī)回答*/}while(SBUF!=0); /*回答出錯(cuò),則重發(fā)*/}

voidreceive(ucharidata*d){uchari;do{while(RI==0);RI=0;} while((SBUF^0xaa)!=0); /*判A機(jī)請(qǐng)求否*/SBUF=0xbb; /*發(fā)應(yīng)答信號(hào)*/ while(TI==0);TI=0;while(1){pf=0; /*清校驗(yàn)和*/for(i=0;i<16;i++){while(RI==0);RI=0;d[i]=SBUF; /*接收一個(gè)數(shù)據(jù)*/pf+=d[i]; /*求校驗(yàn)和*/}while(RI==0);RI=0; /*接收A機(jī)校驗(yàn)和*/if((SBUF^pf)==0) /*比較校驗(yàn)和*/{SBUF=0x00;break;} /*校驗(yàn)和相同發(fā)"00"*/else{SBUF=0xff; /*出錯(cuò)發(fā)"FF",重新接收*/ while(TI==0);TI=0;}}}voidmain(void){init();if(TR==0){send(buf);}else{receive(buf);}}1.10鍵盤和數(shù)碼顯示人機(jī)交互的C語(yǔ)言編程1行列式鍵盤與8031的接口鍵盤輸入信息的主要過程是:(1)單片機(jī)判斷是否有鍵按下。(2)確定按下的是哪一個(gè)鍵。(3)把此步驟代表的信息翻譯成計(jì)算機(jī)所能識(shí)別的代碼,如ASCII或其它特征碼。8031與行列式鍵盤的接口例174×4鍵盤的掃描程序。掃描程序查詢的內(nèi)容為:(1)查詢是否有鍵按下。首先單片機(jī)向行掃描P1.0~P1.3輸出全為"0"掃描碼F0H,然后從列檢查口P1.4~P1.7輸入列掃描信號(hào),只要有一列信號(hào)不為"1",即P1口不為F0H,則表示有鍵按下。接著要查出按下鍵所在的行、列位置。(2)查詢按下鍵所在的行列位置。單片機(jī)將得到的信號(hào)取反,P1.4~P1.7中的為1的位便是鍵所在的列。接下來要確定鍵所在的行,需要進(jìn)行逐行掃描。單片機(jī)首先使P1.0為"0",P1.1~P1.7為"1",即向P1口發(fā)送掃描碼FEH,接著輸入列檢查信號(hào),若全為"1",表示不在第一行。接著使P1.1接地,其余為"1",再讀入列信號(hào)……這樣逐行發(fā)"0"掃描碼,直到找到按下鍵所在的行,將該行掃描碼取反保留。當(dāng)各行都掃描以后仍沒有找到,則放棄掃描,認(rèn)為是鍵的誤動(dòng)作。(3)對(duì)得到的行號(hào)和列號(hào)譯碼,得到鍵值。(4)鍵的抖動(dòng)處理。當(dāng)用手按下一個(gè)鍵時(shí),往往會(huì)出現(xiàn)所按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況。在釋放一個(gè)鍵時(shí),也會(huì)出現(xiàn)類似的情況,這就是鍵抖動(dòng),抖動(dòng)的持續(xù)時(shí)間不一,通常不會(huì)大于10ms,若抖動(dòng)問題不解決,就會(huì)引起對(duì)閉合鍵的多次讀入,對(duì)于鍵抖動(dòng)最方便的解決方法就是當(dāng)發(fā)現(xiàn)有鍵按下后,不是立即進(jìn)行逐行掃描,而是延時(shí)10ms后再進(jìn)行。由于鍵按下的時(shí)間持續(xù)上百毫秒,延時(shí)后再也不遲。掃描函數(shù)的返回值為鍵特征碼,若無鍵按下,返回值為0。程序如下:#include<reg51.h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論