南京工程學院單片機課程設(shè)計報告-電子琴_第1頁
南京工程學院單片機課程設(shè)計報告-電子琴_第2頁
南京工程學院單片機課程設(shè)計報告-電子琴_第3頁
南京工程學院單片機課程設(shè)計報告-電子琴_第4頁
南京工程學院單片機課程設(shè)計報告-電子琴_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

可修編可修編目錄目錄1一、設(shè)計任務〔要求〕1二、總體案2三、原理框圖3四、系統(tǒng)模塊詳細設(shè)計與調(diào)試4〔一〕鍵盤掃描模塊4〔二〕數(shù)碼管顯示模塊4〔三〕音調(diào)編碼讀取模塊5〔四〕定時器中斷模塊5五、設(shè)計總結(jié)6六、參考文獻7七、附件材料7一、設(shè)計任務〔要求〕利用51系列單片機、按鍵、揚聲器等器件,設(shè)計一個電子琴。具體功能要求如下:設(shè)計鍵盤電路,使其具有數(shù)字鍵1、2、3、4、5、6、7、8、9作為電子琴按鍵,演示鍵口£乂0,其中1~7號鍵按下后即發(fā)出相應的音調(diào)。8號鍵按下后依次發(fā)出“1、2、3、4、5、6、7〞音調(diào),9號鍵按下后依次發(fā)出“7、6、5、4、3、2、1〃音調(diào),按下口£乂0鍵,自動演示一首歌曲,用單片機某一接口發(fā)出音頻脈沖,驅(qū)動揚聲器發(fā)音。利用定時器定時,可以發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)揚聲器驅(qū)動電路放大濾波后,就會發(fā)出不同的音調(diào).定時器按設(shè)置的定時參數(shù)產(chǎn)生中斷,一次中斷發(fā)出脈沖低電平,下一次反轉(zhuǎn)發(fā)出脈沖高電平.由于定時參數(shù)不同,就發(fā)出了不同頻率的脈沖.按鍵一次,發(fā)50個脈沖.發(fā)完后繼續(xù)檢測鍵盤,如果鍵還按下,繼續(xù)發(fā)音,發(fā)脈沖個數(shù)的多少可以決定節(jié)拍的長短。二、總體案按照設(shè)計任務〔要求〕,電子琴的主要涉及以下幾個模塊:1、定時器控制不同頻率發(fā)音;2、矩陣鍵盤的掃描;3、除此以外,我還在本次設(shè)計中參加了數(shù)碼管顯示,分別顯示當前彈奏的音符。于是又多了數(shù)碼管顯示模塊;實現(xiàn)案:通過不斷地鍵盤進展掃描。當有按鍵按下時,執(zhí)行該按鍵對應的程序,包括:發(fā)出相應的音符或音樂、數(shù)碼管顯示當前音符。當按鍵松開,將音符停頓發(fā)出,如果是音樂,將進展演奏。其中,不同的音符,采用定時器中斷,從而發(fā)出不同的音符。即改變不同的定時器初始值。對于音樂的音符,采用自編的特殊編碼,以便程序的調(diào)用。本程序的設(shè)計采用了三位數(shù)編碼,即:利用三位數(shù)表示一個音符。第一位由1-7組成,表示音符1-7;第二位由1-4組成,表示音階的低、中、高和超高;第三位由1-9組成,表示該音階的拍數(shù),計算式是1/2拍x數(shù)字。例如:6,2,2……表示一拍中音6;4,3,1……表示半拍高音4。關(guān)于對音符編碼的調(diào)用,設(shè)一個音的編碼為〃,b,。那么,調(diào)用的頻率參數(shù)為bx7+a,該參數(shù)用于修改定時器初始值;調(diào)用的時間參數(shù)為J該參數(shù)用于修改定時器執(zhí)行時間。三、原理框圖否是否鍵盤按、,是讀取當前第一個音符各模塊初始化’顯示對應音符,顯示音樂編號鍵盤掃描開場、,無動作按鍵9-13否是否鍵盤按、,是讀取當前第一個音符各模塊初始化’顯示對應音符,顯示音樂編號鍵盤掃描開場、,無動作按鍵9-13播放音樂〔5個〕按鍵14-16判別按鍵彈奏單音節(jié)〔〔8個〕按鍵1-8四、系統(tǒng)模塊詳細設(shè)計與調(diào)試〔一〕鍵盤掃描模塊1、矩陣鍵盤工作原理矩陣鍵盤的按鍵設(shè)在行、列線的交點上。行線通過上拉電阻接到+5V電源上。無鍵盤按下時,行線出于高電平狀態(tài);當有按鍵按下時,行線電平狀態(tài)將由此按鍵相連接的列線的電平?jīng)Q定。2、設(shè)計思路通過掃描法識別鍵盤。即,先將某一列線置為低電平,其余各列線置為高電平,檢查各行線電平的變化,如果某行線電平的為低電平,就可以確立此行此列穿插點處的按鍵被按下?!捕硵?shù)碼管顯示模塊1、硬件電路數(shù)碼管的顯示,是通過74LS374鎖存器來實現(xiàn)的。段選和位選分別是P3.5和P3.4。數(shù)據(jù)的輸出為P0口?!苍斠姼戒浺唬河布韴D〕2、設(shè)計思路通過分別控制段選、位選鎖存器的導通〔低電平〕、鎖存信號〔高電平〕。從而分時給數(shù)碼管寫入數(shù)據(jù)并鎖存?!踩骋粽{(diào)編碼讀取模塊1、編碼規(guī)那么本程序的設(shè)計采用了三位數(shù)編碼,即:利用三位數(shù)表示一個音符。第一位由1-7組成,表示音符1-7;第二位由1-4組成,表示音階的低、中、高和超高;第三位由1-9組成,表示該音階的拍數(shù),計算式是1/2拍x數(shù)字。例如:6,2,2……表示一拍中音6;4,3,1……表示半拍高音4。2、讀取式首先讀取前兩位數(shù),以確定音調(diào)。然后讀取最后一位,以確定拍數(shù)〔時間〕。然后依次遞增3位。音調(diào)確定后,通過查表獲取定時器初始值,并調(diào)用定時器中斷。拍數(shù),即定時器中斷執(zhí)行的循環(huán)次數(shù),以此來控制聲音的時間?!菜摹扯〞r器中斷模塊1、定時器的調(diào)用本程序的設(shè)計采用定時器中斷的法來使蜂鳴器發(fā)出不同的頻率聲音,從而實現(xiàn)電子琴的音調(diào)。定時器的初始值不同,產(chǎn)生的頻率也就不同。定時器的調(diào)用是循環(huán)不斷的,它的循環(huán)包括兩類:一類是一個音節(jié)頻率的循環(huán),從而控制一個拍數(shù)的長短;另一類是下一個音節(jié)的到來,重新寫入初值,直至完畢標志位的到來,即0,0,0。如果再調(diào)用程序中,再參加一個整體循環(huán),那么可以反復執(zhí)行音樂播放。即,檢測到完畢標志后,重新播放音樂而不連續(xù)?!脖境绦颍瑳]有使用該循環(huán)?!?、初始值的生成與寫入定時器的初始值,是通過網(wǎng)絡(luò)搜索得到的,不同的初值代表著會發(fā)出不同頻率的音調(diào)。將它制成表,以便程序讀取。五、設(shè)計總結(jié)我課程設(shè)計的題目是電子琴的設(shè)計。主要用的了之前所學的定時器中斷、矩陣鍵盤掃描、數(shù)碼管顯示、C51編程等相關(guān)的單片機及接口技術(shù)的知識和理論。在課設(shè)中,也充分的做到了學以致用,把之前所學的知識應用的實際當中去。同時,也通過實踐來檢驗之前所學的理論,發(fā)現(xiàn)了很多對理論知識的誤解。這些,也都在實踐中得到了很好的彌補。在設(shè)計程序的初始階段,我本打算一次性完成任務,但每次嘗試都以失敗告終。后來,我學會了分模塊處理問題,逐一突破。這也是我在此次課程設(shè)計中的一大收獲。讓我充分懂得了,如去處理一個較大的工程工程。首先,我先實現(xiàn)了使單片機發(fā)出不同音調(diào)的根本功能,然后開場考慮鍵盤掃描。但是在調(diào)試時,總是出現(xiàn)BUG。在局部按鍵按下后,蜂鳴器會一直響,無法終止。這個問題一直困擾了我很久,嘗試了很多法都沒能成功,終于在一天早上醒來后的第一次嘗試,終于成功了,即在鍵盤掃描中參加一個程序,當音樂執(zhí)行到完畢標志后,此時假設(shè)沒有鍵盤被按下時,令蜂鳴器停頓鳴叫不做任響應,直至有鍵盤再被按下。最后,我將兩個模塊進展結(jié)合,于是便成功的寫出了電子琴的程序。而且成功進展了調(diào)試。第一天驗收,教師讓我再參加數(shù)碼管顯示功能。于是,我又寫了數(shù)碼管顯示模塊的程序。數(shù)碼管顯示是通過鎖存器來完成的。當我程序?qū)懲曛筮M展調(diào)試,數(shù)碼管沒有進展顯示,屢次調(diào)試發(fā)現(xiàn):只有長時間按下按鍵才會有相應字符顯示。于是我嘗試把段選信號的選通與鎖存指令和P0數(shù)據(jù)寫在一起,這樣就可以立即顯示當前字符了。第二天驗收,順利通過。事后,我又采用了外部中斷的法進展電子琴的模式切換等其他功能,從而不斷地豐富了電子琴的功能。同時,也對程序進展了整理,使程序更加規(guī)、美觀、易讀??偠灾舜握n設(shè),我學的東西很多。也深深地懂得理論不進展實際,是不行的。只有通過實踐才能檢驗自己對理論知識的理解和掌握。在寫程序的時候,一定要有良好的習慣,格式要有自己的排版式,不能混亂。這樣易于檢查和調(diào)整。通過這次課設(shè)。大大提高了我對單片機以及編程的能力與信心。我相信,以后通過自己的不斷深入的學習,我一定能夠熟練的運用單片機到實際當中去。六、參考文獻升,?單片機原理與接口技術(shù)?,:大學,2011年7月;網(wǎng)友:lv_xiaowei,?音調(diào)與頻率對應關(guān)系表?,wenku.baidu./view/d90a081a6edb6f1aff001f45.html,2012年01月03日;七、附件材料附錄一:硬件原理圖附錄二:程序清單及說明附錄三:元器件清單

附錄四:實物圖/***********************************************************課程設(shè)計:電子琴〔工程學院自動化學院〕開發(fā)平臺:AT80C52程序設(shè)計:施國慶203100423********************************************************/* /oooooooooooo ooo/\/ooooooooooo ooo/// ////////I///LOVE//U/////////___//////////////////////////_//***************************\ \ \_*/******************************/***********************************頭文件***********************************************************#include<reg51.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsbitspeaker=P3節(jié);sbita0=P2P;sbita1=P21;sbita2=P22sbita3=P23sbita4=P2%;sbitb2=P32sbitb4=P3%;sbitb5=P3巧;unsignedchartimer0h,timer0l;voidjian();// /***********************************************************音調(diào)設(shè)置及數(shù)碼管編碼**************************************************************///頻率-半期數(shù)據(jù)表高八位codeunsignedcharFREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,//低音12345670xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//1,2,3,4,5,6,70xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//高音12345670xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF};//超高音1234567//頻率-半期數(shù)據(jù)表低八位codeunsignedcharFREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,//低音12345670x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,//1,2,3,4,5,6,70x8F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D,//高音12345670x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16};//超高音1234567// unsignedcharconstdisplay[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/***********************************************************樂譜及其獨立音調(diào)***********************************************************// 樂譜 //codeunsignedcharsszymmh[]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0};codeunsignedchardfc[]={5,2,2,6,2,2,5,2,2,3,2,1,2,2,1,1,2,1,2,2,1,1,2,1,6,1,1,5,1,4,6,1,1,6,1,2,5,1,1,6,1,1,6,1,2,5,1,1,5,2,3,3,2,1,2,2,4,5,2,1,6,2,1,5,2,1,3,2,1,2,2,4,1,2,1,2,2,1,6,1,1,1,2,1,2,2,4,2,2,1,2,2,1,2,2,1,3,2,1,5,2,2,5,2,1,6,2,1,1,2,3,6,1,1,1,2,1,0,0,0};codeunsignedcharsheng[]={1,2,2,2,2,2,3,2,2,4,2,2,5,2,2,6,2,2,7,2,2,1,3,2,0,0,0};codeunsignedcharjiang[]={1,3,2,7,2,2,6,2,2,5,2,2,4,2,2,3,2,2,2,2,2,1,2,2,0,0,0};codeunsignedcharsongbie[]={5,2,2,3,2,1,5,2,1,1,3,4,6,2,2,1,3,2,5,2,4,5,2,2,1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,5,2,2,2,2,1,3,2,1,4,2,3,7,2,1,1,2,4,6,2,2,1,3,2,1,3,4,7,2,2,6,2,1,7,2,1,1,3,4,6,2,1,7,2,1,1,3,1,6,2,1,6,2,1,5,2,1,3,2,1,1,2,1,2,2,4,5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,3,2,2,1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,5,2,2,2,2,1,3,2,1,4,2,3,7,2,1,1,2,4,0,0,0};// 單音 //codeunsignedchardou[]={1,2,1,0,0,0};codeunsignedcharre[]={2,2,1,0,0,0};codeunsignedcharmi[]={3,2,1,0,0,0

};codeunsignedcharfa[]={4,2,1,0,0,0,};codeunsignedcharso[]={5,2,1,0,0,0};codeunsignedcharla[]={6,2,1,0,0,0};codeunsignedcharxi[]={7,2,1,0,0,0};codeunsignedchardoo[]={1,3,1,0,0,0};/**************************************************************時間參數(shù):延時、定時器中斷**************************************************************voidt0int()interrupt1//T0中斷程序,控制發(fā)音的音調(diào){TR0=0;〃先關(guān)閉T0speaker=!speaker;//輸出波,發(fā)音TH0=timer0h;//下次的中斷時間,這個時間,控制音調(diào)上下TL0=timer0l;TR0=1;//啟動T0}// voiddelay(unsignedchart)//延時程序,控制發(fā)音的時間長度{unsignedchart1;unsignedlongt2;for(t1=0;t1<t;t1++)〃雙重循環(huán),共延時t個半拍for(t2=0;t2<8000;t2++);//延時期間,可進入T0中斷去發(fā)音TR0=0;//關(guān)閉T0,停頓發(fā)音}voidjpdelay(void){unsignedchari;for(i=300;i>0;i--);}/***********************************************************聲頻驅(qū)動程序***********************************************************voidsong(unsignedchartime)//演奏一個音符{a3=0;TH0=timer0h;//控制音調(diào)TL0=timer0l;TR0=1;〃啟動T0,由10輸出波去發(fā)音delay(time);//控制時間長度}/***********************************************************聲頻調(diào)用程序***********************************************************// 單音節(jié) //voidyin1(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=dou[i]+7*dou[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=dou[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin2(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=re[i]+7*re[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=re[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin3(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=mi[i]+7*mi[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=mi[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin4(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=fa[i]+7*fa[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=fa[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin5(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=so[i]+7*so[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=so[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin6(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=la[i]+7*la[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=la[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin7(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=xi[i]+7*xi[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=xi[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidyin8(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=doo[i]+7*doo[i+1]-1;〃第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=doo[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}// 音樂 //voidmusic1(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=songbie[i]+7*songbie[i+1]-1;//第》個是音符,第》+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=songbie[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidmusic2(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=dfc[i]+7*dfc[i+1]-1;〃第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=dfc[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidmusic3(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=sheng[i]+7*sheng[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=sheng[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidmusic4(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=jiang[i]+7*jiang[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度time=jiang[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符}}voidmusic5(void){unsignedchark,i,time;TMOD=1;ET0=1;EA=1;i=0;time=1;while(time){k=sszymmh[i]+7*sszymmh[i+1]-1;//第i個是音符,第i+1個是第幾個八度timer0h=FREQH[k];//從數(shù)據(jù)表中讀出頻率數(shù)值timer0l=FREQL[k];//實際上,是定時的時間長度

time=sszymmh[i+2];//讀出時間長度數(shù)值i+=3;song(time);//發(fā)出一個音符/***********************************************************鍵盤掃描***********************************************************/ucharkeyscan(void)//鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法uchar^m』2。辦」;//行列值中間變量P2=0x0f;//行線輸出全為0cord_h=P2&0x0f;//讀入列線值if(cord_h!=0x0f)P2=0x0f;//行線輸出全為0cord_h=P2&0x0f;//讀入列線值if(cord_h!=0x0f)//先檢測有無按鍵按下//去抖cord_h=P2&0x0f;//讀入列線值P2=cord_h|0xf0;//輸出當前列線值cord_l=P2&0xf0;//讀入行線值//去抖cord_h=P2&0x0f;//讀入列線值P2=cord_h|0xf0;//輸出當前列線值cord_l=P

溫馨提示

  • 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

提交評論