注意由于本程序要用到看門狗對單片機進行復(fù)位_第1頁
注意由于本程序要用到看門狗對單片機進行復(fù)位_第2頁
注意由于本程序要用到看門狗對單片機進行復(fù)位_第3頁
注意由于本程序要用到看門狗對單片機進行復(fù)位_第4頁
注意由于本程序要用到看門狗對單片機進行復(fù)位_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、/*注意:由于本程序要用到看門狗對單片機進行復(fù)位,故運行本程序時一定要打開看門狗。 同時選擇振蕩器為HS*/#include <pic.h>#include <stdio.h>#include <stdlib.h>#define VOLOFFL 0X92/*設(shè)定31.5V為低壓保護動作電壓*/#define VOLONL 0X99/*設(shè)定33V為低壓保護恢復(fù)電壓*/#define CURB 0X0004B/*電流環(huán)比例系數(shù)KP*/#define CURA 0X00050/*電流環(huán)比例系數(shù)KI+KP*/#define TH 0X32000/*電流環(huán)的限幅輸出*

2、/#define FULLDUTY 0XFF/*PWM占空比為1*/ #define TSON 0X27/*剎車時的調(diào)速手柄復(fù)位條件 TS<=1.5V*/#define SPELOW 0/*電機轉(zhuǎn)速為0*/#define TSHOFF 0X38/*調(diào)速手柄電壓為1.1V時的采樣值*/#define GSPEHI1 0X65/*最大轉(zhuǎn)速給定*/#define GSPEHI2 0XCA#define SPEB1 0X004E/*轉(zhuǎn)速環(huán)比例系數(shù)KP*/#define SPEA1 0X0050/*轉(zhuǎn)速環(huán)比例系數(shù)KP+KI*/#define SPEB2 0X003E/*轉(zhuǎn)速環(huán)比例系數(shù)KP*/#de

3、fine SPEA2 0X0040/*轉(zhuǎn)速環(huán)比例系數(shù)KP+KI*/#define GCUR 0X3F0/*轉(zhuǎn)速環(huán)限幅輸出*/#define MAXCUR 0X3F/*電流環(huán)的最大給定*/#define KLSPE 0X0A/*轉(zhuǎn)速閉環(huán)積分分離點*/#define KLCUR 0X030/*電流閉環(huán)積分分離點*/#define TIME_CUR 0X06/*電流采樣次數(shù)*/volatile char CURGIVE;/*存儲電流給定值*/volatile unsigned char COUNT;volatile unsigned char STATE1;/*存儲當前電機轉(zhuǎn)子位置*/volatil

4、e unsigned char OLDSTATE;/*存儲上一次電機轉(zhuǎn)子位置*/volatile unsigned char DELAY;volatile unsigned char SPEED;/*存儲電機轉(zhuǎn)速SPEED=SPECOUNT*2+TMR1H*/volatile unsigned char SPECOUNT;/*電機轉(zhuǎn)速計數(shù)器*/volatile unsigned char COUNT_VOL;/*存儲電池電壓采樣周期*/volatile int TSH;/*存儲轉(zhuǎn)速給定值*/volatile unsigned char TEMP1;volatile unsigned char

5、VOLTAGEH;/*存儲電池電壓*/volatile unsigned char COUNT_TS;/*存儲調(diào)速手柄采樣周期*/volatile unsigned char CURRENT8=0;/*存儲電流反饋值*/volatile unsigned char COUNT_CUR;/*存儲電流采樣次數(shù)*/union spe volatile int X; volatile unsigned char A2;union cur volatile long Y; volatile unsigned char B4;bit REHIGH;/*低壓保護動作后,電池電壓重新恢復(fù)到36VREHIGH=

6、1*/bit OFF;/*剎車條件結(jié)束,OFF=1*/bit SAME;/*當前采樣所得電機轉(zhuǎn)子位置與前次采樣所得相等時,SAME=1*/ bit SP1; /*電機轉(zhuǎn)速低于50r/min,SP1=1*/bit TS;/*當前AD采樣值為調(diào)速手柄,TS=1*/bit VOLTAGE;/*當前AD采樣值為電池電壓,VOLTAGE=1*/bit SPEPID;/*需要進行一次轉(zhuǎn)速PI運算,WHENT SPEPID=1*/bit LOWPOWER;/*需要進行一次電池電壓測試,LOWPOWER=1*/bit SHUTDOWN;/*剎車中斷發(fā)生,SHUTDOWN=1*/bit CURPID;/*需要進

7、行一次電流PI運算,CURPID=1*/bit LOWSPEED;/*WHEN SPEED IS LOW,LOWSPEED=1*/*-電機轉(zhuǎn)子位置輸出表-*/const unsigned char out_table=0XAF,0XBE,0XFF,0X07E,0X0CF,0X0FF,0X0D7,0X077,0X0FF;/*-函數(shù)聲明-*/void power(void);void curpi(void);void breakon(void); void interrupt interrupted(void);void sample(void);void output(void);void sp

8、epi(int, int);/*-主程序-*/main()PORTC=0XFF;/*關(guān)斷逆變橋所有MOSFET*/TRISC=0X02;/*設(shè)置RC口輸入輸出狀態(tài)*/PIR1=0;/*清所有中斷標志位*/INTCON=0;/*屏蔽所有中斷*/T2CON=0X01;/*關(guān)閉TMR2,置TMR2預(yù)分頻為4*/CCPR1L=FULLDUTY;/*PWM輸出占空比為1*/CCP1CON=0XFF;/*CCP1工作于PWM方式*/CCP2CON=0X0B;/*CCP2工作于特殊事件觸發(fā)方式,用作AD采樣周期寄存器*/ADCON0=0X81;/*選擇AD轉(zhuǎn)換時鐘為32分頻、AN0通道、AD轉(zhuǎn)換允許*/as

9、m("CLRWDT");/*清看門狗*/TMR2=0X0;/*TMR2計數(shù)器清零*/TMR1H=0;/*TMR1計數(shù)器清零*/TMR1L=0;T1CON=0;/*TMR1預(yù)分頻為1、關(guān)閉振蕩器,工作于定時工作方式*/CCPR2H=0X09;/*初始化AD采樣周期寄存器,T=600uS*/CCPR2L=0X60;TRISA=0XFF;/*RA口設(shè)置為模擬輸入口*/TRISB=0XEF;/*RB口設(shè)置為輸入*/CCP2IE=0;/*CCP2中斷禁止*/ADIE=1;/*AD采樣中斷允許*/PR2=0XC7;/*初始化PWM頻率為5KHz*/ADCON1=0X02;/*AD采樣結(jié)

10、果左移,RA口引腳均為模擬輸入*/TMR0=0;OPTION=0XD1;/*取消RB口弱上拉,選擇INT在上升沿產(chǎn)生中斷,TMR0 1:4*/TMR2ON=1;/*開CCP1,送出占空比為1的PWM脈沖*/REHIGH=0;/*初始化相應(yīng)的標志位*/OFF=0;SP1=0;SAME=0;VOLTAGE=0;SPEPID=0;LOWPOWER=0;SHUTDOWN=0;CURPID=0;LOWSPEED=1;sample();/*確定當前轉(zhuǎn)子位置*/SAME=0;output();/*根據(jù)采得狀態(tài)值觸發(fā)相應(yīng)的MOSFET*/INTCON=0XF8;/*開總中斷、外圍中斷、INT中斷、TMR0和R

11、B口電平變化中斷允許*/SPECOUNT=0;/*初始化轉(zhuǎn)速計數(shù)器*/CURGIVE=0;/*轉(zhuǎn)速給定為0*/SPEED=0X7F;/*初始化轉(zhuǎn)速寄存器,認為當前轉(zhuǎn)速為0*/COUNT_TS=0X08;/*設(shè)定調(diào)速手柄采樣周期為4mS*/COUNT_VOL=0;/*設(shè)定電池端電壓采樣周期為1024mS*/COUNT_CUR=TIME_CUR;/*連續(xù)采樣電流6次*/CURRENT7=0;/*設(shè)定采得電流得最小值為0*/CURRENT0=0XFF;/*設(shè)定采得電流得最大值為FF*/TS=1;/*設(shè)TS標志位,當前采樣值為調(diào)速手柄電壓值*/ADGO=1;/*開AD采樣*/TMR1ON=1;/*開T

12、MR1定時器*/for(;) asm("CLRWDT");/*清看門狗*/ if(CURPID=1)/*需要進行電流PI運算?*/ curpi();/*是,進行電流PI運算*/ CURPID=0;/*清電流PI運算標志位*/ if(SPEPID=1)/*需要進行轉(zhuǎn)速PI運算?*/ spepi(SPEED,TSH);/*是,進行轉(zhuǎn)速PI運算*/ SPEPID=0;/*清轉(zhuǎn)速PI運算標志位*/ if(LOWPOWER=1)/*需要測試電池端電壓?*/ power();/*是,調(diào)用POWER子程序*/ while(REHIGH=1)/*如果REHIGH=1,進入死循環(huán),利用看門狗

13、復(fù)位單片機*/ continue; if(SHUTDOWN=1)/*剎車中斷到來?*/ breakon();/*調(diào)用剎車子程序*/ while(OFF=1)/*如果OFF1,進入死循環(huán),利用看門狗復(fù)位單片機*/ continue; /*-轉(zhuǎn)速PI運算子程序-*/void spepi(int SPEED1, int TSH1)union spe SPEEP;/*聲明SPEEP為聯(lián)合,用于臨時存儲SPEB*SPEEK*/static volatile int SPEUK=0;/*用于存儲轉(zhuǎn)速PI運算最終結(jié)果*/static volatile int SPEEK=0;/*用于存儲轉(zhuǎn)速誤差*/if(L

14、OWSPEED=1) if(SP1=1)/*轉(zhuǎn)速很慢?*/ SPEED1=0X7F;/*是,置SPEED1寄存器為7F*/ SPEED1=(0X7F-SPEED1);/*獲取當前電機轉(zhuǎn)速*/ TSH1=TSH1-TSHOFF;/*調(diào)速手柄采樣值減去偏移量1.1V,獲取轉(zhuǎn)速給定*/ if(TSH1<0)/*轉(zhuǎn)速給定小于0?*/ SPEUK=0;/*是,清轉(zhuǎn)速PI輸出寄存器*/ CURGIVE=0;/*PI調(diào)節(jié)器輸出為0*/ return;/*返回*/ if(TSH1>=GSPEHI1)/*轉(zhuǎn)速給定大于最大給定?*/ TSH1=GSPEHI1;/*是,轉(zhuǎn)速給定設(shè)置為最大給定*/ SPE

15、EP.X=SPEEK*SPEB1;/*求取KP*E(K-1),其中E(K-1)為前次轉(zhuǎn)速誤差*/ SPEEK=TSH1-SPEED1;/*求取當前轉(zhuǎn)速誤差*/ SPEUK=SPEUK+SPEEK*SPEA1-SPEEP.X;/*否則進行轉(zhuǎn)速PI運算*/else SPEED1=0XFE-SPEED1; TSH1=(TSH1-TSHOFF)*2; if(TSH1<0)/*轉(zhuǎn)速給定小于0?*/ SPEUK=0;/*是,清轉(zhuǎn)速PI輸出寄存器*/ CURGIVE=0;/*PI調(diào)節(jié)器輸出為0*/ return;/*返回*/ if(TSH1>=GSPEHI2)/*轉(zhuǎn)速給定大于最大給定?*/ TS

16、H1=GSPEHI2;/*是,轉(zhuǎn)速給定設(shè)置為最大給定*/ SPEEP.X=SPEEK*SPEB2;/*求取KP*E(K-1),其中E(K-1)為前次轉(zhuǎn)速誤差*/ SPEEK=TSH1-SPEED1;/*求取當前轉(zhuǎn)速誤差*/ SPEUK=SPEUK+SPEEK*SPEA2-SPEEP.X;/*否則進行轉(zhuǎn)速PI運算*/ if(SPEUK<0)/*PI運算結(jié)果為負?*/ SPEUK=0;/*是,清SPEUK*/ CURGIVE=0;/*PI調(diào)節(jié)器輸出為0*/ return;/*返回*/SPEEP.X=SPEUK;/*若SPEUK大于0,則SPEUK內(nèi)容送聯(lián)合SPEEP*/CURGIVE=(SP

17、EEP.A0&0xf0)|SPEEP.A1;/*對SPEUK的高、低字節(jié)處理獲得PI調(diào)節(jié)器輸出*/asm("SWAPF _CURGIVE,f");if(SPEUK>GCUR)/*SPEUK大于限幅值?*/ CURGIVE=MAXCUR;/*PI調(diào)節(jié)器輸出限幅值*/ SPEUK=GCUR;/*輸出限幅*/return;/*返回*/ /*-電流PI運算子程序-*/void curpi(void)union cur UK;/*聲明UK,用于暫時存儲E(K-1)*KP*/volatile static int CUREK=0;/*聲明CUREK和CURUK*/vola

18、tile static long CURUK=0;volatile int CURRENTH=0;if(CURRENT1!=0) CURRENTH=CURRENTH+(int)CURRENT1;/*求取電流平均值*/if(CURRENT2!=0) CURRENTH=CURRENTH+(int)CURRENT2;if(CURRENT3!=0) CURRENTH=CURRENTH+(int)CURRENT3;if(CURRENT4!=0) CURRENTH=CURRENTH+(int)CURRENT4;if(CURRENT5!=0) CURRENTH=CURRENTH+(int)CURRENT5;

19、UK.Y=(long)CUREK*CURB;/*求取E(K-1)*KP*/CURRENTH=CURRENTH>>3;/*獲取反饋電流平均值*/if(CURRENTH=0)/*如果電流反饋值為0,則置反饋值為1*/ CURRENTH=0X04;CUREK=(int)CURGIVE-CURRENTH;/*求取當前電流誤差EK*/CURUK=CURUK+(long)CUREK*CURA-UK.Y;/*進行電流PI運算*/if(CURUK<=0)/*PI運算結(jié)果小于0?*/ CURUK=0;/*是,清PI運算結(jié)果寄存器*/ CCPR1L=FULLDUTY;/*PWM輸出占空比為1*/

20、 CCP1X=0; CCP1Y=0; return;/*返回*/UK.Y=TH-CURUK;/*電流環(huán)限幅值減去當前PI運算結(jié)果*/if(UK.Y<=0)/*電流PI運算輸出大于限幅值?*/ CURUK=TH;/*是,電流PI運算限幅輸出*/ CCPR1L=0;/*PWM輸出占空比為0*/ CCP1X=0;/*清CCP1CON.5*/ CCP1Y=0;/*清CCP1CON.4*/ return;/*返回*/UK.Y=UK.Y>>2;/*處理UK,獲取PWM輸出高電平時間*/CCPR1L=UK.B1;/*根據(jù)高電平時間設(shè)置相應(yīng)寄存器*/CCP1X=1;if(UK.B0&

21、0X80)=0)CCP1X=0;CCP1Y=1;if(UK.B0&0X40)=0)CCP1Y=0;return;/*-中斷服務(wù)子程序-*/#pragma regsused w fsr pclath status#pragma interrupt_level 1void interrupt interrupted(void)/*中斷服務(wù)子程序*/if(T0IF=1)/*TMR0中斷?*/ T0IF=0;/*是,清中斷標志*/ SPECOUNT=SPECOUNT+1;/*轉(zhuǎn)速計數(shù)器加1*/ if(SPECOUNT>=0X80)/*轉(zhuǎn)速值大于80*/ SP1=1;/*置SP1標志位,代

22、表轉(zhuǎn)速很慢*/else if(RBIF=1)/*當前中斷為RB口電平變化中斷?*/ RBIF=0;/*是,清中斷標志*/ sample();/*采樣RB口狀態(tài)*/ if(SAME=0)/*RB口狀態(tài)與上一次狀態(tài)相同?*/ output();/*不同,調(diào)輸出子程序*/ if(SP1=1)/*轉(zhuǎn)速計數(shù)器溢出?*/ SPEED=0X7F;/*是,認為當前轉(zhuǎn)速為0X7F*/ TMR0=0;/*清TMR0定時器,重新定時*/ OPTION=OPTION|0X01;/*置TMR0預(yù)分頻為1*/ else if(LOWSPEED=1) SPEED=SPECOUNT;/*否,算出當前電機轉(zhuǎn)速*/ TMR0=0

23、;/*清TMR0定時器,重新定時*/ OPTION=OPTION|0X01;/*置TMR0預(yù)分頻為4*/ if(SPECOUNT<=0X20) SPEED=SPECOUNT<<1; TMR0=0; OPTION=OPTION&0XF8; LOWSPEED=0; else SPEED=SPECOUNT; TMR0=0; OPTION=OPTION&0XF8; if(SPECOUNT>=0X4C) SPEED=SPECOUNT>>1; TMR0=0;/*清TMR0定時器,重新定時*/ OPTION=OPTION|0X01;/*置TMR0預(yù)分頻為4

24、*/ LOWSPEED=1; SPECOUNT=0;/*轉(zhuǎn)速計數(shù)器清零*/ SP1=0;/*清溢出標志*/ SAME=0;/*清SAME標志位*/ RBIF=0;/*清RB口中斷標志*/ else if(ADIF=1)/*當前中斷為AD采樣中斷?*/ if(TS=1)/*是。當前AD采樣調(diào)速手柄?*/ CHS0=1;/*是。選擇AN1采樣通道,準備采樣電流*/ COUNT_VOL=COUNT_VOL+1; /*采樣電壓周期寄存器加1*/ if(COUNT_VOL=0)/*電壓采樣周期到?*/ CHS0=0;/*是,選擇AN3采樣通道,準備采樣電壓*/ CHS1=1; VOLTAGE=1;/*置

25、電壓采樣標志位*/ ADIF=0;/*清AD中斷標志*/ SPEPID=1;/*置轉(zhuǎn)速PI運算標志位*/ TS=0;/*清調(diào)速手柄采樣標志*/ TSH=(int)ADRESH;/*AD采樣結(jié)果送TSH寄存器*/ if(VOLTAGE=1)/*需要采樣電壓?*/ asm("MOVLW 0X06");/*是,延時*/ asm("MOVWF _TEMP1"); asm("AD5 DECFSZ _TEMP1"); asm("GOTO AD5"); ADGO=1;/*開啟AD轉(zhuǎn)換器,采樣電機電壓*/ else if(VOLT

26、AGE=1)/*當前AD轉(zhuǎn)換為電壓值?*/ CHS1=0;/*是,選擇AN1通道,準備采樣電流*/ CHS0=1; ADIF=0;/*清AD中斷標志*/ VOLTAGE=0;/*清電壓采樣標志位*/ VOLTAGEH=ADRESH;/*AD采樣結(jié)果送VOLTAGEH寄存器*/ LOWPOWER=1;/*置LOWPOWER標志位*/ else/*當前AD采樣為電流采樣*/ if(ADRESH<=CURRENT0) CURRENTCOUNT_CUR=CURRENT0;/*是,保存較大的采樣值*/ CURRENT0=ADRESH;/*較小值送CURRNT0*/ else if(ADRESH&g

27、t;=CURRENT7)/*當前采樣值大于本次采樣循環(huán)中的最大電流值?*/ CURRENTCOUNT_CUR=CURRENT7;/*是,小的采樣值送CURRENT保存*/ CURRENT7=ADRESH;/*大的采樣值送CURRENT7*/ else CURRENTCOUNT_CUR=ADRESH;/*當前采樣值不是最大也不是最小,保存*/ ADIF=0;/*清AD轉(zhuǎn)換中斷標志*/ COUNT_CUR=COUNT_CUR-1;/*電流采樣循環(huán)寄存器減1*/ if(COUNT_CUR=0)/*本次電流采樣循環(huán)完畢?*/ COUNT_CUR=TIME_CUR;/*是,重新初始化電流采樣循環(huán)寄存器*

28、/ CURRENT0=0XFF;/*重新初始化采樣最大和最小值寄存器*/ CURRENT7=0; COUNT_TS=COUNT_TS-1;/*調(diào)速手柄采樣寄存器減1*/ if(COUNT_TS=0)/*調(diào)速手柄寄存器為0?*/ CHS0=0;/*是,選擇AN0采樣通道*/ COUNT_TS=0X08;/*重新初始化調(diào)速手柄采樣周期寄存器*/ asm("MOVLW 0X0A");/*延時*/ asm("MOVWF _TEMP1"); asm("AD3 DECFSZ _TEMP1"); asm("GOTO AD3");

29、/*置手柄采樣標志位*/ ADGO=1;/*開AD采樣*/ TS=1;/*置TS標志位*/ CURPID=1;/*置CURPID標志位,電流PI運算允許*/ else asm("MOVLW 0X06");/*電流采樣循環(huán)沒結(jié)束,延時*/ asm("MOVWF _TEMP1"); asm("AD6 DECFSZ _TEMP1"); asm("GOTO AD6"); ADGO=1;/*開AD,繼續(xù)采樣電流*/ /*中斷返回*/ else if(INTF=1)/*外中斷到來?*/ SHUTDOWN=1;/*置SHUTDO

30、WN標志位*/ INTF=0;/*清外中斷標志*/ /*中斷返回*/*-電機轉(zhuǎn)子位置采樣子程序-*/#pragma interrupt_level 1void sample(void)/*RB口狀態(tài)采樣子程序*/unsigned char STATE2,STATE3;/*變量聲明*/resamp: STATE1=PORTB&0XE0;/*取RB口高3位信息送STATE1*/#asm MOVLW0X0A/*延時*/MOVWF_DELAYDEL1DECFSZ_DELAYGOTODEL1 #endasmSTATE2=PORTB&0XE0;/*再取RB口高3位信息送STATE2*/if

31、(STATE1=STATE2)/*兩次讀得得狀態(tài)相同?*/ if(STATE1=OLDSTATE) /*是。認為STATE1為當前狀態(tài),再判當前狀態(tài)與上次調(diào)用本子程序得到狀態(tài)相同?*/ SAME=1;/*相同,置SAME標志位*/ else OLDSTATE=STATE1;/*否則保存當前狀態(tài)值*/ return;/*子程序返回*/#asm/*若兩次讀得狀態(tài)不同,則延時*/MOVLW0X0AMOVWFDELAYDEL2DECFSZDELAYGOTO DEL2#endasmSTATE3=PORTB&0XE0;/*第三次讀取RB口高三位狀態(tài)值*/if(STATE1=STATE3)/*第三次

32、狀態(tài)值與第一次相同否?*/ if(STATE1=OLDSTATE) /*相同,認為STATE1為當前狀態(tài),再判當前狀態(tài)與上次調(diào)用本子程序得到狀態(tài)相同?*/ SAME=1;/*相同,置SAME為1*/ else OLDSTATE=STATE1;/*否則保存當前狀態(tài)*/ return;/*返回*/if(STATE2=STATE3)/*第三次狀態(tài)值與第二次狀態(tài)值相同否?*/ STATE1=STATE2;/*相同,則認為STATE2為當前狀態(tài),當前狀態(tài)值送STATE1*/ if(STATE1=OLDSTATE) /*再判當前狀態(tài)與上次調(diào)用本子程序得到狀態(tài)相同?*/ SAME=1;/*相同則置SAME標

33、志位*/ else OLDSTATE=STATE1;/*否則STATE1送OLDSTATE保存*/ return;/*返回*/goto resamp;/*若在本次子程序調(diào)用中所取得三次狀態(tài)值各不相同,則重新采樣RB口*/*-轉(zhuǎn)子位置輸出子程序-*/#pragma interrupt_level 1void output(void)/*電機換相子程序*/asm("SWAPF _STATE1");/*STATE1高低半字節(jié)互換*/RP0=0;/*選擇0存儲體*/PORTC=out_tableSTATE1>>1;/*查表輸出相應(yīng)的換相值*/return;/*返回*/*-剎車處理子程序-*/void breakon(void)OFF=0;/*清剎車標志位*/SHUTDOWN=0;if(RB0=0)/*

溫馨提示

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

評論

0/150

提交評論