《單片機系統(tǒng)設計仿真與應用》課件第4章_第1頁
《單片機系統(tǒng)設計仿真與應用》課件第4章_第2頁
《單片機系統(tǒng)設計仿真與應用》課件第4章_第3頁
《單片機系統(tǒng)設計仿真與應用》課件第4章_第4頁
《單片機系統(tǒng)設計仿真與應用》課件第4章_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4.1中斷系統(tǒng)結(jié)構(gòu)及工作原理4.2定時/計數(shù)器的結(jié)構(gòu)及工作4.3中斷與定時器應用設計4.4小結(jié)

習題

4.1.1MCS-51中斷系統(tǒng)的總體結(jié)構(gòu)

圖4-1所示為MCS-51中斷系統(tǒng)的總體結(jié)構(gòu),圖中包括5個中斷請求源,4個用于中斷控制和管理的可編程和可位尋址的特殊功能寄存器:中斷請求源標志寄存器(TCON及SCON)、中斷允許控制寄存器(IE)和中斷優(yōu)先級控制寄存器(IP)。4.1中斷系統(tǒng)結(jié)構(gòu)及工作原理圖4-1中斷系統(tǒng)總體結(jié)構(gòu)4.1.2中斷請求

中斷源是引起中斷的原因或發(fā)出中斷請求的中斷來源。在MCS-51單片機中有五個中斷源,分為三類:外部中斷、定時器/計數(shù)器中斷、串行口中斷。

1)外部中斷

2)定時器/計數(shù)器中斷

3)串行口中斷4.1.3中斷控制

8051單片機中,中斷請求信號的鎖存、中斷源的屏蔽、中斷優(yōu)先級控制等都是由相關(guān)專用寄存器實現(xiàn)的。

1.定時器/計數(shù)器控制寄存器TCON

TCON字節(jié)地址為88H,是可位尋址的特殊功能寄存器,其位地址為88H~8FH。寄存器的位地址及格式如下:2.串行口控制寄存器SCON

SCON字節(jié)地址為98H,是可位尋址的特殊功能寄存器,其位地址為98H~9FH。寄存器的位地址及格式如下:

3.中斷允許寄存器IE

IE字節(jié)地址為A8H,是可位尋址的特殊功能寄存器,其位地址為A8H~AFH。MCS-51單片機對中斷的開放或屏蔽,均是由片內(nèi)的中斷允許寄存器IE控制的。

寄存器的位地址及格式如下:

4.中斷優(yōu)先級寄存器IP

IP字節(jié)地址為B8H,是可位尋址的特殊功能寄存器,其位地址為B8H~BFH。

寄存器的位地址及格式如下:

5.中斷約定

MCS-51單片機中斷系統(tǒng)規(guī)定:

(1)若CPU正在對某一個中斷服務,則級別低的或同級中斷申請不能打斷正在進行的服務;而級別高的中斷申請則能中止正在進行的服務,使CPU轉(zhuǎn)去更高級的中斷服務,待服務處理完畢后,CPU再返回原中斷服務程序繼續(xù)執(zhí)行。

(2)若多個中斷源同時申請中斷,則級別高的優(yōu)先級先服務。

(3)若同時收到幾個同一級別的中斷請求時,中斷服務取決于系統(tǒng)內(nèi)部輔助優(yōu)先順序。在每個優(yōu)先級內(nèi),存在著一個輔助優(yōu)先級,其優(yōu)先順序如圖4-2所示。圖4-28051內(nèi)部中斷優(yōu)先級4.1.4中斷響應

1.CPU響應中斷的條件及過程

MCS-51單片機在每個機器周期順序采樣各中斷請求標志位,如有置位,且下列三種情況都不存在,那么在下一周期響應中斷;否則,CPU不能立即響應中斷。

各中斷源所對應的中斷服務程序的入口地址如表4-1所示。表4-1中斷服務程序入口地址

2.中斷請求的撤除

3.外部中斷的響應時間

如果中斷請求遇到了上面所列三種情況之一,使CPU不能立即響應中斷時,則中斷響應的時間將更長。如果正在執(zhí)行的指令沒有執(zhí)行到該指令的機器周期,所需的額外的等待時間不會多于3個機器周期(乘法指令和除法指令是最長的指令,需4個機器周期)。如果正在處理的指令為RETI或訪問IE、IP的指令,額外的等待時間不會多于5個機器周期(執(zhí)行這些指令最多需一個機器周期,再執(zhí)行一條指令最多為4個機器周期)。由此看來,外部中斷響應時間總是3~8個機器周期(不包括等待中斷服務程序處理情況在內(nèi))。4.2.1定時/計數(shù)器的結(jié)構(gòu)

MCS-51單片機內(nèi)部有兩個16位的可編程定時器/計數(shù)器,稱為定時器0(T0)和定時器1(T1),可編程選擇其作為定時器用或作為計數(shù)器用。此外,工作方式、定時時間、計數(shù)值、啟動、中斷請求等都可以由程序設定,其邏輯結(jié)構(gòu)如圖4-3所示。4.2定時/計數(shù)器的結(jié)構(gòu)及工作原理圖4-38051定時器/計數(shù)器邏輯結(jié)構(gòu)圖4.2.2定時器/計數(shù)器的工作方式

1.工作方式寄存器TMOD

TMOD字節(jié)地址為89H,是不可位尋址的特殊功能寄存器。寄存器的位地址及格式如下:

?M1和M0:方式選擇位。其定義如表4-2所示。表4-2定時器工作方式選擇

2.控制寄存器TCON

TCON前面已經(jīng)介紹過,該寄存器可位尋址,它的作用是控制定時器的啟動、停止,標志定時器的溢出和中斷情況。其格式如下:

3.工作方式

通過對TMOD寄存器中M0、M1位進行設置,可選擇下述四種工作方式。

1)方式0

方式0構(gòu)成一個13位定時器/計數(shù)器。圖4-4是定時器0在方式0時的邏輯電路結(jié)構(gòu),定時器1的結(jié)構(gòu)和操作與定時器0完全相同。圖4-4T0(或T1)方式0時的邏輯電路結(jié)構(gòu)圖

【例4-1】

用定時器1方式0實現(xiàn)1?s的延時。

2)方式1

定時器工作于方式1時,其邏輯結(jié)構(gòu)圖如圖4-5所示。

【例4-2】

用定時器1方式1實現(xiàn)1?s的延時。圖4-5T0(或T1)方式1時的邏輯結(jié)構(gòu)圖圖4-6T0(或T1)方式2時的邏輯結(jié)構(gòu)圖

【例4-3】

試用定時器1方式2實現(xiàn)1?s的延時。

4)方式3

定時器/計數(shù)器工作于方式3時,其邏輯結(jié)構(gòu)圖如圖4-7所示。圖4-7T0(或T1)方式3時的邏輯結(jié)構(gòu)圖

【例4-4】

用定時器T0方式3實現(xiàn)1?s的延時。

4.定時器應用步驟

(1)向TMOD寫工作方式控制字;

(2)向計數(shù)器TLx、THx裝入初值;

(3)置TRx=1,啟動計數(shù);

(4)置ETx=1,允許定時/計數(shù)器中斷(也可采用查詢方式);

(5)置EA=1,CPU開中斷。4.3.1原理圖設計與說明

本章使用的電路原理圖如圖4-8所示。4.3中斷與定時器應用設計(a)頂層原理圖(b)?LED_KEY子圖圖4-8電路原理圖4.3.2秒表設計

1.設計要求

(1)結(jié)果在數(shù)碼管的后4位顯示。

(2)可通過1個按鍵控制秒表的啟動、暫停、清零,即按一次啟動、再按一次暫停、按第3次清零,按第4次再從啟動開始,從而進行啟動、暫停、清零的循環(huán)。

程序設計流程圖如圖4-9所示。圖4-9秒表設計程序流程圖

2.設計說明

定時器/計數(shù)器既可用作定時亦可用作計數(shù),而且其應用方式非常靈活。

3.設計源碼

秒表設計的完整源程序包括兩個文件:main.c文件和timer_int.c文件,如例4-5和例4-6所示。

【例4-5】main.c文件。#include<reg51.h>

#defineucharunsignedchar

//全局變量聲明

externucharclock[2]; //秒表計時值

//以下為函數(shù)聲明

voidled_7s(uchar,uchar);

ucharkeyscan(void);

voidinit_8255(void);

voidinit_timer(void);voidmain(void)

{

uchartmp,cnt=-1,disp=0xff;

init_8255(); //8255初始化

init_timer(); //定時器初始化

//按0號對秒表進行控制

while(1)

{ if((tmp=keyscan())!=0xff)disp=tmp //如果有按鍵按下,則保存該鍵值

if(disp!=0xff)led_7s(0x08,disp);

if(tmp==0)

{

cnt=(cnt+1)%3; //cnt取值為0,1,2

if(cnt==0) //計時 {

TR0=1;

}

elseif(cnt==1) //暫停

{

TR0=0;

//定時器0初值設定 }

elseif(cnt==2) //清0

{

clock[0]=0;clock[1]=0;

}

} led_7s(0xc,clock[1]/10);

led_7s(0xd,clock[1]%10);

led_7s(0xe,clock[0]/10);

led_7s(0xf,clock[0]%10);

}

}【例4-6】timer_int.c文件。

#include<reg51.h>

#include<absacc.h>

#include<intrins.h>

#defineucharunsignedchar

//定義全局變量

ucharclock[2]={0,0};

//以下為函數(shù)聲明

voiddelay(ucharx);//下面地址定義中包含使能138芯片的信息

#definePA8255XBYTE[0x80fc]//8255端口A的地址

#definePB8255XBYTE[0x80fd]//8255端口B的地址

#definePC8255XBYTE[0x80fe]

//8255端口C的地址

#defineCOM8255XBYTE[0x80ff]//8255命令字的地址

/************8255初始化代碼************************/

voidinit_8255(void)

{

COM8255=0x81;//8255命令字,PA/PB均為輸出,PC低4位輸入,高4位輸出/************定時器初始化代碼************************/

voidinit_timer(void)

{

MOD=0x01; //T0為16位定時器

E=0x82; //開中斷,T0中斷

TH0=-10000/256;TL0=-10000%256; //定時器0初值設定

}/************七段數(shù)碼管項目代碼***********************/

//該函數(shù)帶2個參數(shù),?x為位控,?y為段控

voidled_7s(ucharx,uchary)

{

ucharled_table[16]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};//0~F共16個數(shù),用于段控 PB8255=(PB8255&0xf0)|x; //在驅(qū)動位選時不影響PB高4位的狀態(tài)

PA8255=led_table[y];

delay(1);

}

/*********************按鍵處理函數(shù)********************/

//鍵盤從左到右從上到下的鍵值依次為://0,1,2,3

//4,5,6,7

//8,9,10,11

//12,13,14,15

ucharkeyscan(void)

{

ucharscode,rcode,keyvalue,keycode;PB8255=PB8255&0xf7;

//關(guān)閉所有數(shù)碼管,第4個管腳控制138不使能端

PC8255=0x0f; //使PC高4位為低電平,低4位為高電平

keyvalue=0; //無鍵按下時,鍵值為0

if((PC8255&0x0f)!=0x0f)

{

delay(2); //延時2ms消抖

PC8255=0x0f;

if((PC8255&0x0f)!=0x0f)

{scode=0xef;

while((scode&0x01)!=0)

//此while語句使PC高4位依次為低電平

{

PC8255=scode;

if((PC8255&0x0f)!=0x0f)

{

rcode=(PC8255&0x0f)|0xf0;

keyvalue=~rcode|~scode; //有鍵按下時,取得鍵值

}else

scode=_crol_(scode,1); //sccode左移1位

}

}

}

//下面swithc語句對鍵值進行編碼

switch(keyvalue)

{ case0:keycode=0xff;break;

case0x11:keycode=0;break;

case0x12:keycode=1;break;

case0x14:keycode=2;break;

case0x18:keycode=3;break;

case0x21:keycode=4;break;

case0x22:keycode=5;break;

case0x24:keycode=6;break;

case0x28:keycode=7;break; case0x41:keycode=8;break;

case0x42:keycode=9;break;

case0x44:keycode=10;break;

case0x48:keycode=11;break;

case0x81:keycode=12;break;

case0x82:keycode=13;break;

case0x84:keycode=14;break;

case0x88:keycode=15;break;

}

//下面這兩句作用:等待按鍵釋放PC8255=0x0f;

//使PC高4位為低電平,低4位為高電平

while((PC8255&0x0f)!=0x0f);

returnkeycode;

}

/***********定時器中斷服務程序***************/

//T0:一次定時0.1?ms

voidTimer0_Int(void)interrupt1using1

{ TH0=-10000/256;TL0=-10000%256; //定時器0初值設定

clock[0]++;

if(clock[0]==100)

{

clock[0]=0;

clock[1]++;

if(clock[1]==60)clock[1]=0;

}

}/***************延時x毫秒*****************/

voiddelay(ucharx)//設晶體振蕩器的頻率為11.0592?MHz

{uchark;

while(x--) //延時大約x毫秒

for(k=0;k<125;k++){}

}

4.仿真結(jié)果

將例4-5和例4-6在Keil軟件中編譯生成?.hex文件,然后下載到單片機中。隨后運行仿真,仿真結(jié)果如圖4-10和圖4-11所示。圖4-10按0號鍵1次后的計時狀態(tài)圖4-11按0號鍵3次后的計時狀態(tài)4.3.3可調(diào)頻率方波設計

1.設計要求

(1)可產(chǎn)生1~6?kHz的方波信號,占空比為50%。

(2)頻率可調(diào),可調(diào)步進為1?kHz。通過一個按鍵實現(xiàn),每按一次鍵頻率增加1?kHz,當增加到最大頻率后,再返回從最小頻率開始。

(3)通過喇叭播放相應頻率的聲音。

圖4-12所示為可調(diào)頻率方波的程序流程圖。圖4-12可調(diào)頻率方波程序流程圖

2.設計說明

首先根據(jù)題目要求,計算1?kHz、2?kHz、3?kHz、4?kHz、5?kHz、6?kHz等各種頻率所需的定時初值。

使用8255A的PB4口輸出方波信號,一方面可用示波器觀察輸出波形,另一方面還可以通過喇叭的聲音來了解頻率的變化。

3.設計源碼

產(chǎn)生可調(diào)頻率方波的源程序包括兩個文件:main.c文件和timer_int.c文件,如例4-7和例4-8所示。其中main.c文件中調(diào)用了led_7s函數(shù)、keyscan函數(shù)以及delay函數(shù),這些函數(shù)的源碼見例4-6?!纠?-7】main.c文件。

#include<reg51.h>

#defineucharunsignedchar

//全局變量聲明

ucharcnt=-1; //用于調(diào)整定時參數(shù)//以下為函數(shù)聲明

voidled_7s(uchar,uchar);

ucharkeyscan(void);

voiddelay(ucharx);

voidinit_8255(void);

voidinit_timer(void);voidmain(void)

{

uchartmp,disp=0xff;

init_8255(?);//8255初始化

init_timer(?);//定時器初始化

//按3號鍵控制產(chǎn)生相應頻率的方波

while(1)

{ if((tmp=keyscan())!=0xff)disp=tmp;

//如果有按鍵按下,則保存該鍵值

if(disp!=0xff)led_7s(0x08,disp);

if(tmp==3)

{

cnt=(cnt+1)%6; //cnt取值為0,1,2,3,4,5

if(cnt==0)

{

TH0=-250;TL0=-250; //定時器0初值設定 }

else

{

TH0=-250*2/(cnt+1);TL0=-250*2/(cnt+1); //定時器0初值設定

}

TR0=1;

}

}

}【例4-8】timer_int.c文件。

#include<reg51.h>

#include<absacc.h>

#include<intrins.h>

#defineucharunsignedchar

//定義全局變量

externucharcnt;

//以下為函數(shù)聲明

voiddelay(ucharx);//下面地址定義中包含使能138芯片的信息

#definePA8255XBYTE[0x80fc]//8255端口A的地址

#definePB8255XBYTE[0x80fd]//8255端口B的地址

#definePC8255XBYTE[0x80fe]//8255端口C的地址

#defineCOM8255XBYTE[0x80ff]//8255命令字的地址

/************8255初始化代碼************************/

voidinit_8255(void)

{ COM8255=0x81; //8255命令字,PA/PB均為輸出,PC低4位輸入,高4位輸出

}

/************定時器初始化代碼************************/

voidinit_timer(void)

{

TMOD=0x02;//T0為可預置初值的8位定時器

IE=0x82; //開中斷,T0中斷

}/************T0中斷服務例程***********************/

//T0:一次定時0.5?ms,2次為1?ms

voidTimer0_Int(void)interrupt1using1

{

staticucharcnt1=0;

if(cnt==0)

{

if(++cnt1==2) {

cnt1=0; PB8255=PB8255^0x10; //產(chǎn)生方波

}

}

else

PB8255=PB8255^0x10; //產(chǎn)生方波

}

4.仿真結(jié)果

啟動仿真,仿真結(jié)果如圖4-13所示。

圖4-13是第2次按了3號鍵后示波器的顯示結(jié)果。

對示波器得到的波形進行測量,測量圖形如圖4-14所示。圖4-13可調(diào)頻率方波設計仿真波形圖4-14方波周期(頻率)的測量4.3.4頻率計設計

1.設計要求

(1)可以測量任何信號的頻率,信號通過P3.5引腳引入。

(2)不需要按鍵控制,動態(tài)測量輸入的頻率值。

(3)由定時器0產(chǎn)生特定頻率的方波,并將該方波接入P3.5引腳測量其頻率,觀察產(chǎn)生的頻率與測得的頻率是否一致。

(4)測周期性信號的正脈沖寬度,進一步結(jié)合頻率值求出占空比。

2.設計說明

本節(jié)僅完成設計要求(1),其他要求由讀者自行設計完成。本節(jié)采用頻率測量法,在1?s時間內(nèi)對被測信號脈沖進行計數(shù),計數(shù)值即為頻率。

圖4-15為頻率計程序流程圖。圖4-15頻率計程序流程圖

3.設計源碼

設計源碼包括兩個文件:main.c文件和timer_int.c文件,如例4-9和例4-10所示。其中,main.c文件中調(diào)用了led_7s函數(shù)、keyscan函數(shù)以及delay函數(shù),這些函數(shù)的源碼見例4-6。

【例4-9】main.c文件。

#include<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

//全局變量聲明

externuintfreq; //頻率值

externbitflag; //標志//以下為函數(shù)聲明

voidled_7s(uchar,uchar);

ucharkeyscan(void);

voidspeaker(void);

voidrelay(bit);

voiddelay(ucharx);

voidinit_8255(void);

voidinit_timer(void);voidmain(void)

{

uchartmp,disp=0xff;

init_8255(); //8255初始化

init_timer(); //定時器初始化

speaker(); //喇叭工作

//按2號鍵開始測頻,測量完后顯示頻率

while(1)

{ if((tmp=keyscan())!=0xff)disp=tmp; //如果有按鍵按下,則保存該鍵值

if(disp!=0xff)led_7s(0x08,disp);

if(disp==0)

{ //第1個按鍵控制繼電器工作

relay(1);

}

elseif(disp==1) //第2個按鍵控制喇叭發(fā)聲,按后發(fā)聲

{ speaker();

relay(0);

}

elseif((disp==2)&&(flag==0))

{ //第3個按鍵頻率量測量

TR0=1;TR1=1;

}

elseif((disp==2)&&(flag==1))

{ led_7s(0x0b,freq/10000);

led_7s(0x0c,freq/1000%10);

led_7s(0x0d,freq/100%10);

led_7s(0x0e,freq/10%10);

led_7s(0x0f,freq%10);

}

}

}【例4-10】timer_int.c文件。

#include<reg51.h>

#include<absacc.h>

#include<intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

//定義全局變量

uintfreq;

bitflag=0; //頻率測量完成標志//以下為函數(shù)聲明

voidspeaker(void);

voidrelay(bit);

voiddelay(ucharx);

//下面地址定義中包含使能138芯片的信息

#definePA8255XBYTE[0x80fc]//8255端口A的地址

#definePB8255XBYTE[0x80fd]//8255端口B的地址

#definePC8255XBYTE[0x80fe]//8255端口C的地址

#defineCOM8255XBYTE[0x80ff]//8255命令字的地址/************8255初始化代碼************************/

voidinit_8255(void)

{

COM8255=0x81;//8255命令字,PA/PB均為輸出,PC低4位輸入,高4位輸出

}

/************定時器初始化代碼************************/

voidinit_timer(void)

{ TMOD=0x51;

//T0為16位定時器;T1為16位計數(shù)器

TH0=-50000/256;TL0=-50000/256;

//12?MHz晶振,50?ms

TH1=0;TL1=0; //從0開始計數(shù)

IE=0x8a; //開中斷,T0中斷,T1中斷

}

/************喇叭發(fā)聲代碼************************/

voidspeaker(void)

{ ucharcnt;

for(cnt=0;cnt<=100;cnt++)

{

PB8255=PB8255^0x10;

//產(chǎn)生方波

delay(2); //此延時用于產(chǎn)生不同頻率的聲音

}

}/************繼電器工作代碼************************/

//繼電器由鍵盤控制,在本函數(shù)中,繼電器的工作狀態(tài)由輸入?yún)?shù)決定

voidrelay(bitctrl)

{

if(ctrl) PB8255=PB8255|0x20;

//PB5為1,繼電器工作

elsePB8255=PB8255&0xdf;

//PB5為0,繼電器不工作

}/************T0中斷服務例程***********************/

//T0:一次定時50?ms,20次為1?s,相應的T1計的數(shù)即為頻率值

voidTimer0_Int(void)interrupt1using1

{

staticucharcnt=0;

TH0=-50000/256;TL0=-50000%256;

//定時器初值重新裝載

if(++cnt==20)

{

flag=1; //頻率測量完成標志

TR0=0;TR1=0;

freq=TH1*256+TL1;

}

}4.仿真結(jié)果

仿真結(jié)果如圖4-16所示。圖4-16頻率計的仿真波形

中斷是單片機中的一個重要概念。中斷是指當機器正在執(zhí)行程序的過程中,一旦遇到某些異常情況或特殊請求時,暫停正在執(zhí)行的程序,轉(zhuǎn)入必要的處理(中斷服務子程序),處理完畢后,再返回到原來被停止程序的間斷處(斷點)繼續(xù)執(zhí)行。

引起中斷的事情稱為中斷源,MCS-51單片機提供了5個中斷源:、、TF0、TF1和串行中斷請求。中斷請求的優(yōu)先級由用戶編程和內(nèi)部優(yōu)先級共同確定,中斷編程包括中斷入口地址設置、中斷源優(yōu)先級設置、中斷開放或關(guān)閉、中斷服務子程序等。4.4小結(jié)

MCS-51單片機內(nèi)部有兩個可編程定時器/計數(shù)器T0和T1,每個定時器/計數(shù)器有四種工作方式:方式0~方式3。方式0是13位的定時器/計數(shù)器;方式1是16位的定時器/計數(shù)器;方式2是初值重載的8位定時器/計數(shù)器;方式3只適用于T0,將T0分為兩個獨立的定時器/計數(shù)器,同時T1可以作為串行接口波特率發(fā)生器。不同位數(shù)的定時器/計數(shù)器其最大計數(shù)值也不同。

對于定時器/計數(shù)器的編程包括設置方式寄存器、初值及控制寄存器(可位尋址)。初值由定時時間及定時器/計數(shù)器的位數(shù)決定。

本節(jié)詳細介紹了使用定時器與中斷的三個項目:秒表、可調(diào)頻率方波、頻率計。

4-1什么是中斷?MCS-51單片機有哪幾個中斷源?各自對應的中斷入口地

溫馨提示

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

最新文檔

評論

0/150

提交評論