懸掛運動控制系統(tǒng)概要_第1頁
懸掛運動控制系統(tǒng)概要_第2頁
懸掛運動控制系統(tǒng)概要_第3頁
懸掛運動控制系統(tǒng)概要_第4頁
懸掛運動控制系統(tǒng)概要_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

懸掛運動控制系統(tǒng)大綱懸掛運動控制系統(tǒng)大綱懸掛運動控制系統(tǒng)大綱1懸掛運動控制系統(tǒng)大綱:本設(shè)計采用一塊STC單片機(jī)STC89S52作為懸掛物體的控制和檢測核心,懸掛物體在傾斜(仰角不大于100度)的板上能夠進(jìn)行任意軌跡的運動,包括直線運動、圓周運動、任意曲線運動等。系統(tǒng)能經(jīng)過鍵盤輸入自行設(shè)定的坐標(biāo)點參數(shù),物體可依照給定的坐標(biāo)地址作定點運動和自行設(shè)定的曲線運動,在運動的過程中能在板上畫出運動軌跡,并能沿任意給定的用黑線表記的曲線軌跡運動。本系統(tǒng)同時擁有顯示當(dāng)前物體地址坐標(biāo)的功能。系統(tǒng)采用反射式光電傳感器感知與坐標(biāo)紙顏色有很大差其他黑色引導(dǎo)線,使用兩個兩相步進(jìn)電機(jī),電機(jī)驅(qū)動采用集成芯片L298N,經(jīng)過單片機(jī)給定的控制信號進(jìn)行換相,可靈便方便地對步進(jìn)電機(jī)的速度和轉(zhuǎn)向進(jìn)行控制。要點字:懸掛物體,光電傳感器,雙步進(jìn)電機(jī),STC89S52,L298N系統(tǒng)設(shè)計1.1設(shè)計要求基本要求(1)控制系統(tǒng)能夠經(jīng)過鍵盤或其他方式任意設(shè)定坐標(biāo)點參數(shù);(2)控制物體在80cm×100cm的范圍內(nèi)作自行設(shè)定的運動,運動軌跡長度不小于100cm,物體在運動時能夠在板上畫出運動軌跡,限300秒內(nèi)完成;(3)控制物體作圓心可任意設(shè)定、直徑為50cm的圓周運動,限300秒內(nèi)完成;(4)物體從左下角坐標(biāo)原點出發(fā),在150秒內(nèi)到達(dá)設(shè)定的一個坐標(biāo)點(兩點間直線距離不小于40cm)。發(fā)揮部分(1)能夠顯示物體中畫筆所在地址的坐標(biāo);(2)控制物體沿板上標(biāo)出的任意曲線運動(見表示圖),曲線在測試時現(xiàn)場標(biāo)出,線寬~,總長度約50cm,顏色為黑色;曲線的前一部分是連續(xù)的,長約30cm;后一部分是兩段總長約20cm的中斷線段,中斷距離不大于1cm;沿連續(xù)曲線運動限制在200秒內(nèi)完成,沿中斷曲線運動限制在300秒內(nèi)完成;(3)其他。整體設(shè)計方案系統(tǒng)整體方案懸掛運動控制系統(tǒng)整體方框圖如圖1.2.1所示。系統(tǒng)包括控制器模塊、光電檢測模塊、電機(jī)驅(qū)動模塊、鍵盤顯示模塊四個部分。圖懸掛運動控制系統(tǒng)整體方框圖E-12方案論證與比較(1)控制器模塊的設(shè)計方案論證與選擇方案一:采用FPGA(現(xiàn)場可編寫門列陣)作為系統(tǒng)控制器。FPGA能夠?qū)崿F(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,集成度高,體積小,牢固性好,而且可利用EDA軟件進(jìn)行仿真和調(diào)試。FPGA采用并行工作方式,提高了系統(tǒng)的辦理速度,常用于大規(guī)模實時性要求較高的系統(tǒng)。在本設(shè)計中,F(xiàn)PGA的高速辦理能力得不到充分發(fā)揮。方案二:采用STC89C52單片機(jī)作為系統(tǒng)控制器。單片機(jī)STC89S52的晶振頻率為12MHZ,有8K的FLASH,5V供電,8位可編程并行I/O口,兩個十六位可編程準(zhǔn)時/計數(shù)器,能夠自動設(shè)置預(yù)設(shè)初值,擁有運行/睡眠方式下的看門狗保護(hù)功能。依照題目要求,控制器主要接收和鑒別傳感器來的信號,控制兩個電機(jī)的動作,控制顯示物體當(dāng)前所在地址的坐標(biāo)值等。綜上所述,采用方案二。(2)光電檢測模塊的設(shè)計方案論證與選擇光電檢測模塊能夠?qū)崿F(xiàn)懸掛物體沿著板上標(biāo)出的黑色曲線運動,且不能夠偏離軌跡。此時軌跡是一條黑線,周圍是淺色坐標(biāo)紙,能夠利用傳感器來感知軌跡。方案一:采用光電傳感器檢測。當(dāng)光輝照射到滑塊運動的表面上時會發(fā)生反射,由于黑線和白紙的反射系數(shù)不相同,光電傳感器可依照接收到的反射光強(qiáng)弱來判斷可否偏離黑線。使用八個集成的反射式光電傳感器,懸掛物體的,八個光電傳感器個分別位于懸掛物體的物體的八邊,當(dāng)物體運動時,若八個傳感器的狀態(tài)沒變化,連續(xù)原來的運動。只有當(dāng)某一個或兩個傳感器的狀態(tài)發(fā)生變化時,依照最先變化的傳感器來確定物體運動偏離的方向,爾后單片機(jī)控制電機(jī)調(diào)整懸掛物體的運動,直至中間的傳感器恢復(fù)原狀態(tài)為止。方案二:采用攝像頭把板上的信息收集起來再用單片機(jī)對其進(jìn)行解析。此種方法,對信息的辦搭理很正確,但成本很高,而且要將其裝在懸掛物體上,必定要集成化,更增加了軟硬件的要求,在短時間內(nèi)很那做出實物來,所以不大可取。綜上所述,選擇方案一。(3)電機(jī)驅(qū)動模塊的設(shè)計方案論證與選擇步進(jìn)電機(jī)是數(shù)字控制電機(jī),適合于單片機(jī)控制。其驅(qū)動電路依照控制信號工作,控制信號控制步進(jìn)電機(jī)的換相序次、轉(zhuǎn)向和速度。方案一:采用集成芯片L298N的驅(qū)動電路。L298N能夠驅(qū)動兩相或四相步進(jìn)電機(jī),能夠直接用單片機(jī)的I/O口供應(yīng)控制信號,經(jīng)過L298N控制電機(jī)的轉(zhuǎn)向和速度。該驅(qū)動電路接線很簡單,也很簡單控制,使用很方便。一個L298N驅(qū)動一個電機(jī)的工作,本設(shè)計中要用到兩個L298N。驅(qū)動電路的四個輸入引腳分別接單片機(jī)的四個I/O端口,當(dāng)輸入腳為低電平時,相應(yīng)的輸出就是高電平,四個輸出端口則會驅(qū)動四相電機(jī)的換相動作。引腳高低電平轉(zhuǎn)變的頻率會直接影響電機(jī)的轉(zhuǎn)速。高低電平的變化即方波的產(chǎn)生有兩種方法,一種是給端口一個高電平并延時一段時間,此后再給一個低電平,這樣電機(jī)的速度就由延時的時間決定。這種方法比較簡單,在實時性要求不高的系統(tǒng)中不失為一種好方法。方案二:使用多個功率放大器驅(qū)動電機(jī)。經(jīng)過使用不相同的放大電路和不相同參數(shù)的器件,能夠達(dá)到不相同的放大概求,放大后能夠獲取較大的功率。但是由于使用的是四相步進(jìn)電機(jī),就需要對四路信號分別進(jìn)行放大,由于放大電路很難做到完好一致,當(dāng)電機(jī)的功率較大時運行起來會不牢固,而且電路的制作會比較復(fù)雜。綜上所述,選擇方案一。鍵盤顯示模塊的設(shè)計方案論證與選擇在控制懸掛物體的運動過程中,系統(tǒng)需要按鍵輸入設(shè)定物體的坐標(biāo)值,并顯示運動E-23物體的地址坐標(biāo)值,考慮有三種方案:方案一:使用16位字符型液晶(LCD)顯示。液晶顯示屏擁有低功耗、平面直角顯示、影像牢固不閃爍、可視面積大、畫面收效好、分辨率高、抗攪亂能力強(qiáng)等特點。液晶以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)辦字符庫,編程工作量大。液晶動向顯示功能富強(qiáng),能夠?qū)崿F(xiàn)歡迎信息的顯示,并供應(yīng)了一個友好的用戶界面,使系統(tǒng)更加直觀,更趨智能化和人性化。直接使用單片機(jī)上的三個按鍵,并與液晶結(jié)合就可以實現(xiàn)多項功能。方案二:使用傳統(tǒng)的數(shù)碼管顯示及鍵盤輸入。數(shù)碼管采用BCD編碼顯示數(shù)字,編程簡單,硬件電路調(diào)試簡單。但其顯示的信息容量小,功耗較大,而且一般芯片上會有六位數(shù)碼管,使用時片選信號和段選信號會占用十六個I/O端口,若同時使用鍵盤輸入,單片機(jī)端口資源開銷太大。方案三:采用以HD7279為核心的鍵盤顯示模塊。HD7279是一種擁有串行接口,可同時驅(qū)動8位共陰式數(shù)碼管的智能顯示驅(qū)動芯片,并可連接多達(dá)64按鍵的鍵盤矩陣。這樣8位數(shù)碼管顯示只需要占用3個接口線,而4個接口線即可驅(qū)動8位數(shù)碼管和64按鍵的鍵盤。大大減少了占用的單片機(jī)端口數(shù),而且不需要對數(shù)碼管進(jìn)行顯示控制,節(jié)省單片機(jī)資源。綜上所述,本設(shè)計采用了方案一,使用凌陽公司的SPLC501液晶顯示。系統(tǒng)組成經(jīng)過屢次比較與論證,最后確定的系統(tǒng)方框圖如下圖。圖系統(tǒng)基本框圖單元電路設(shè)計光電檢測電路的設(shè)計題目要求運動物體要沿著劃出的黑線運動,但在運動過程中,物體不能防備地會偏離運動軌跡,為了能使物體在偏離后能夠自動調(diào)整方向,重新回到運動軌跡上,系統(tǒng)需要將物體的運動狀態(tài)實時地以電信號的形式反響到控制部分,控制部分控制兩個電機(jī)的正轉(zhuǎn)或反轉(zhuǎn),使物體重新回到軌跡上。本設(shè)計中共使用五個集成的反射式光電傳感器,分別裝在物體的中間和周圍。當(dāng)物體向左偏出軌跡時,中間的傳感器將不被黑線掩蓋,E-34輸出由高電平變?yōu)榈碗娖剑矣覀?cè)的傳感器進(jìn)入黑線內(nèi),輸出由低電平變?yōu)楦唠娖健T摖顟B(tài)變化會引起系統(tǒng)中斷,控制兩個電機(jī)正轉(zhuǎn)或反轉(zhuǎn),經(jīng)過控制兩邊線長的變化使物體重新運動回軌跡上。詳盡電路如圖2.2.1所示。集成反射式光電傳感器的電壓驅(qū)動為4.5V-5V。當(dāng)發(fā)射二極管導(dǎo)通時,發(fā)出紅外光輝,使接收管的集電極和發(fā)射極間電阻變小,輸出端接一上拉電阻,輸出為低電平。當(dāng)紅外光輝照射到黑色線上時,反射光較少,接收管集電極和發(fā)射極間的電阻增大,輸出被上拉電阻拉至高電平。在信號和地之間接一個電容,能夠減小電路中的"毛刺"攪亂。圖光電檢測電路電機(jī)驅(qū)動電路的設(shè)計電機(jī)驅(qū)動電路采用芯片L2L298N,一個芯片可驅(qū)動一個四相步進(jìn)電機(jī)。詳盡電路如圖2.2.2所示。芯片的4個輸入端接單片機(jī)的4個I/O端口,控制電機(jī)的轉(zhuǎn)向和速度。每個端口的高低電平變換,經(jīng)過單片機(jī)內(nèi)部計數(shù)器的設(shè)置,以控制電機(jī)的轉(zhuǎn)速。E-45圖L2L298N驅(qū)動電路控制電路的設(shè)計單片機(jī)接收從傳感器檢測電路輸入的信號,并將輸入的信號進(jìn)行辦理運算,以控制電流或控制電壓的方式輸出給被控制的單元電路,完成各項任務(wù)要求。單片機(jī)STC89S52外接液晶顯示電路、光電檢測電路、電機(jī)驅(qū)動電路。光電傳感器的輸出接單片機(jī)的端口P2。單片機(jī)的準(zhǔn)時器中斷A、B分別調(diào)用步進(jìn)電機(jī)換相子程序?qū)崿F(xiàn)步進(jìn)電機(jī)驅(qū)動電路的工作。經(jīng)過傳感器檢測,單片機(jī)控制電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。兩個電機(jī)控制由P2輸出。液晶顯示中,數(shù)據(jù)傳輸線輸出接P1的高八位。三個鍵盤使用P3端口。軟件設(shè)計系統(tǒng)的軟件設(shè)計采用c語言和匯編語言混雜編程,在KEIL51平臺上完成了單片機(jī)系統(tǒng)的開發(fā),實現(xiàn)了各項設(shè)計功能和指標(biāo)要求。光電傳感器檢測子程序光電檢測子程序流程圖為圖3.1.1所示:E-56圖光電檢測子程序電機(jī)驅(qū)動子程序四相四拍步進(jìn)電機(jī)驅(qū)動子程序如圖3.2.1所示:E-67圖電機(jī)驅(qū)動子程序圖中斷服務(wù)子程序鍵盤設(shè)定坐標(biāo)值子程序鍵盤設(shè)定坐標(biāo)值子程序流程圖如圖3.3.1所示。E-78圖鍵盤輸入子程序流程圖液晶顯示子程序依照用戶的選擇執(zhí)行不相同的功能(如在菜單中選擇畫圖,則在畫圖菜單中輸入X,Y坐標(biāo)即可)。子程序流程圖如圖3.4.1所示.圖3.4.1LCD子程序流程圖E-89定點運動子程序(從當(dāng)前地址x0,y0搬動到任意地址x,y),其設(shè)計思想原理圖以下列圖3.5.1:圖3.5.1定點運動原理圖定點運動子程序流程圖如圖3.5.2所示E-910圖定點運動子程序流程圖系統(tǒng)主程序流程圖系統(tǒng)主程序流程圖如圖示:E-1011圖3.6.1系統(tǒng)總程序流程圖系統(tǒng)測試為了確定系統(tǒng)與題目要求的復(fù)合程度,我們對系統(tǒng)中的要點部分進(jìn)行了實質(zhì)的測試。測試儀器測試使用的儀器如表所示。E-1112表測試使用的儀器設(shè)備序號名稱、型號、規(guī)格數(shù)量備注1雙蹤示波器:12秒表精度13UNI-T數(shù)字萬用表1成功公司410米卷尺1指標(biāo)測試和測試結(jié)果定點運動的測試我們最先實現(xiàn)的是物體在紙板上的定點運動,即把物體放在原點處,經(jīng)過鍵盤輸入物體將要到達(dá)的點的坐標(biāo)值,開啟電源,讓物體開始運動。記錄物體從原點到達(dá)目的點所經(jīng)歷的時間和誤差,記錄以下:第一次:輸入坐標(biāo)為(80,100)歷時時間為10s誤差為0.5cm第二次:輸入坐標(biāo)為(70,40)歷時時間為8s誤差為0.8cm第三次:輸入坐標(biāo)為(50,60)歷時時間為10s誤差為1.0cm在走定點運動時我們讓電機(jī)的轉(zhuǎn)速加快,所以速度比較快,時間上比起其他運動會短好多,而且正確率很高。圓周運動部分測試將物體用手放于圓心任意設(shè)定(可經(jīng)過按鍵輸入圓點坐標(biāo)),半徑為25cm的圓周上,開啟電源,讓物體作圓周運動,記錄全程時間,預(yù)期軌跡和運動軌跡的誤差。記錄以下:第一次:時間為50s誤差為第二次:時間為40s誤差為第三次:時間為45s誤差為系統(tǒng)單獨實現(xiàn)做圓周運動時,物體運動所需的時間比較短,且誤差比較小,但隨著多個模塊的累積,物體走圓周運動就不如以前好了,誤差比以前明顯大了好多,且圓看起來也不如以前那么圓滑了。光電檢測部分測試反射式光電傳感器的負(fù)載電壓是4.5V-5V,在使用時需要接上拉電阻,以能明顯看到傳感器的狀態(tài)變化為基準(zhǔn),其上拉電阻為小于10k為好,我們采用的是5k。在檢測時我們需要調(diào)整傳感器離紙板的高度,使其在黑線和白色紙板上反射時能明顯工作于高低電平之間。將傳感器對準(zhǔn)黑線時,傳感器輸出應(yīng)為高電平,當(dāng)將其走開黑線時,受白色坐標(biāo)紙反射,輸出變?yōu)榈碗娖?。用示波器來觀察其輸出波形的變化,調(diào)整其高度使其變化最敏感。沿黑線做連續(xù)曲線運動的測試在紙板上任意地址劃一條粗為1.5cm-1.8cm的黑線,將物體用手放在黑線的起點,啟動電源,讓物體做沿黑線的運動。記錄全過程所耗時間和預(yù)定軌跡和運行軌跡的誤差。記錄以下:第一次:曲線長度:30cm時間為1min誤差為第二次:曲線長度:30cm時間為55s誤差為E-1213第三次:曲線長度:30cm時間為1min15s誤差為由于技術(shù)不是很精,有時物體走的路線會誤差很大,一旦偏離黑線很大距離,物體就無法再回到原來的路線連續(xù)運動,而會素來偏下去。沿黑線做斷續(xù)曲線運動的測試在紙板上畫出三條粗為1.5cm-1.8cm的黑線,形成兩條中斷距離不大于1cm的中斷線段,物體從連續(xù)黑線運動到斷續(xù)處,遇到第一個斷點可斷點順利超出,連續(xù)向前運動,遇第二個斷點也順利超出。記錄其時間和誤差以下:第一次:曲線長度:20cm時間為50s誤差為:第一次:曲線長度:20cm時間為55s誤差為:第一次:曲線長度:20cm時間為1min誤差為:系統(tǒng)實現(xiàn)的功能系統(tǒng)實現(xiàn)的功能有:①鍵盤輸入坐標(biāo)值;②在紙板范圍內(nèi)作自行設(shè)定的運動;③做圓心任意設(shè)定的半徑為25cm的圓周運動;④從左下角原點出發(fā),到達(dá)任意設(shè)定的坐標(biāo)點;⑤顯示物體中畫筆地址;⑥沿黑線做斷續(xù)運動;結(jié)論經(jīng)過對系統(tǒng)的定點運動、圓周運動、光電檢測、沿黑線做連續(xù)曲線運動、沿黑線做斷續(xù)曲線運動等的測試,本設(shè)計很好地達(dá)到了設(shè)計和制作要求。結(jié)語本系統(tǒng)以單片機(jī)芯片為核心部件,能夠控制按鍵來設(shè)置物體的坐標(biāo)值,物體能夠做自行設(shè)定的運動,和圓心任意設(shè)定的圓周運動,基本功能完好實現(xiàn)。同時利用光電檢測技術(shù)并配合一套獨到的軟件算法實現(xiàn)了運動物體的追蹤黑線運動,電機(jī)的方向和速度控制,液晶顯示,最后完成了競賽題目中要求的各項任務(wù)。在設(shè)計過程中,力求硬件線路簡單,充分發(fā)揮軟件在編程方面靈便的特點,來滿足系統(tǒng)設(shè)計的要求。但由于時間有限,系統(tǒng)還存在一些誤差,存在好多有待改進(jìn)的地方。在競賽的過程中,我們遇到了好多突發(fā)性的不太好解決的問題,也曾有過對自己沒有信心的時候,但經(jīng)過仔細(xì)沉穩(wěn)地思慮此后,我們還是以最快的時間調(diào)整自我回歸參賽狀態(tài),連續(xù)進(jìn)行設(shè)計。經(jīng)過此次競賽,我們深深的領(lǐng)悟到了團(tuán)隊間的共同協(xié)作的重要性,提高了自己的著手能力和解決問題的能力。6、參照文件全國大學(xué)生電子設(shè)計競賽組委會.第六屆全國大學(xué)生電子設(shè)計競賽獲獎作品選編(2003).北京:北京理工大學(xué)初版社,2005年黃智偉,王彥,陳文光,朱衛(wèi)華.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程.北京:電子工業(yè)初版社,2005年王松武,于鑫,武思軍.電子創(chuàng)新設(shè)計與實踐.北京:國防工業(yè)初版社,2005薛鈞義,張彥斌,虞鶴松,樊波.凌陽十六位單片機(jī)原理及應(yīng)用.北京:北京航天航空大學(xué)初版,2003年E-1314//*//文件描述:SPLC501用戶接口驅(qū)動程序,////聲明:小丑20050519SunnorthMzDesign//////*//#include"SPLC501User.h"http://#include"ASII16X16OSD.h"externAsii8;externAsii16;externvoidF_SPLC501_Initial_IO(void);externvoidF_SPLC501_Write_Com(unsignedintCommand);externvoidF_SPLC501_Write_Data(unsignedintSendData);externunsignedintF_SPLC501_Read_Data(void);externunsignedintF_SPLC501_Read_Status(void);unsignedintCurPaintMode;unsignedintCurPowerMode;unsignedintCurLCDSet;unsignedintCurScroll;unsignedintCurScrMode;unsignedintCurASCIIFont;

//ShowModeCoverofXOR//ShowthePowerModeofLCD501//ShowtheLCDSet灰度//Showthescrolldotes顯示正相/反相(1/0)當(dāng)前ASCII碼的字號(8X16/6X8)//*////程序:F_LCD_ON_OFF(unsignedintSetCom)E-1415描述:液晶開關(guān)函數(shù)C語言調(diào)用//參數(shù):unsignedintSetComSetCom=0:LCDOffSetCom!=0:LCDOn//聲明:小丑20050519sunnorthMzDesign注意:破壞R1存放器,保護(hù)R1//*//voidF_LCD_ONOFF(unsignedintSetCom){if(SetCom)//ONLCDF_SPLC501_Write_Com(M_LCD_ON);else//OFFLCDF_SPLC501_Write_Com(M_LCD_OFF);}//*//程序:LCD501_Init(unsignedintInitialData)描述:液晶顯示初始化函數(shù)C語言調(diào)用//參數(shù):unsignedintInitialData初始化顯示的字//聲明:xinqiang20050519sunnorthMzDesign//注意:破壞R1存放器,保護(hù)R1//*//voidLCD501_Init(unsignedintInitialData){unsignedinti,j,d;F_SPLC501_Initial_IO();//InitialLCDIOF_SPLC501_Write_Com(M_LCD_ON);//LCDOnF_SPLC501_Write_Com(M_LCD_POWER_ALL);//設(shè)置上電控制模式F_SPLC501_Write_Com(M_LCD_ELE_VOL);//電量設(shè)置模式(顯示亮度)F_SPLC501_Write_Com(0x0006);//指令數(shù)據(jù)0x0000~0x003fF_SPLC501_Write_Com(M_LCD_VDD_SET);//V5內(nèi)部電壓調(diào)治電阻設(shè)置F_SPLC501_Write_Com(M_LCD_VDD);//LCD偏壓設(shè)置,V3時選F_SPLC501_Write_Com(M_LCD_COM_NOR);//Com掃描方式設(shè)置F_SPLC501_Write_Com(M_LCD_SEG_REV);//Segment方向選擇E-1516F_SPLC501_Write_Com(M_LCD_ALL_LOW);//全屏點亮/變暗指令F_SPLC501_Write_Com(M_LCD_ALL_NOR);//正向反向顯示控制指令F_SPLC501_Write_Com(M_LCD_STATIC_OFF);//關(guān)閉靜態(tài)指示器F_SPLC501_Write_Com(0x0000);//指令數(shù)據(jù)//F_SPLC501_Write_Com(0x00ee);//讀寫改模式結(jié)束指令F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+0);設(shè)//置顯示初步行對應(yīng)RAM/*for(i=0;i<8;i++)//往LCD中填充初始化的顯示數(shù)據(jù){F_SPLC501_Write_Com(M_LCD_COL_PAGE+i);F_SPLC501_Write_Com(M_LCD_COL_LINE_LOW);//從第4列開始F_SPLC501_Write_Com(M_LCD_COL_LINE_HIG);for(j=0;j<128;j++){F_SPLC501_Write_Data(InitialData);}}*/CurPaintMode=0;CurPowerMode=1;//nowisnormalmodeCurLCDSet=8;CurScroll=0;CurScrMode=1;CurASCIIFont=1;}//======================================================程序:voidLCD501_Power(unsignedModeCode)描述:SPLC501電源管理,進(jìn)入?yún)?shù)指定的模式,而當(dāng)LCD在SLEEP和STDBY模式下時,//調(diào)用該函數(shù)會使LCD喚醒//參數(shù):ModeCode-能夠是以下參數(shù)之一://1PWR_ON:正常工作模式//2PWR_SLEEP:睡眠模式,屏幕不顯示,但內(nèi)容在喚醒后仍保留//3PWR_STDBY:待機(jī)模式,比SLEEP省電,但顯示內(nèi)容會扔掉//0PWR_OFF:關(guān)閉電源E-1617//聲明:xinqiang20050624sunnorthMzDesign//注意:無//======================================================voidLCD501_Power(unsignedModeCode){if(CurPowerMode==PWR_SLEEP){F_SPLC501_Write_Com(M_LCD_ALL_LOW);F_SPLC501_Write_Com(M_LCD_STATIC_ON);F_SPLC501_Write_Com(0x0003);CurPowerMode=1;}elseif(CurPowerMode==PWR_STDBY){F_SPLC501_Write_Com(M_LCD_ON);F_SPLC501_Write_Com(M_LCD_ALL_LOW);CurPowerMode=1;}else{switch(ModeCode){casePWR_ON:F_SPLC501_Write_Com(M_LCD_ON);break;casePWR_SLEEP:F_SPLC501_Write_Com(M_LCD_STATIC_OFF);F_SPLC501_Write_Com(0x0000);F_SPLC501_Write_Com(M_LCD_OFF);F_SPLC501_Write_Com(M_LCD_ALL_LIGNT);break;casePWR_STDBY:F_SPLC501_Write_Com(M_LCD_STATIC_ON);F_SPLC501_Write_Com(0x0003);F_SPLC501_Write_Com(M_LCD_OFF);F_SPLC501_Write_Com(M_LCD_ALL_LIGNT);break;E-1718F_SPLC501_Write_Com(M_LCD_OFF);break;}//CurPowerMode=ModeCode;}}//*//程序:voidLCD501_SetContrast(unsignedContrast)//描述:設(shè)置顯示比較度C語言調(diào)用//參數(shù):Contrast-比較度值,范圍從0到31,數(shù)值越大比較度越高//返回:無//聲明:xinqiang20050624MzDesign//注意:無//*//voidLCD501_SetContrast(unsignedContrast){if(Contrast>0x003f)Contrast=0x003f;F_SPLC501_Write_Com(M_LCD_ELE_VOL);//電量設(shè)置模式(顯示亮度)F_SPLC501_Write_Com(Contrast);//電量設(shè)置模式(顯示亮度)CurLCDSet=Contrast;}//*//程序:unsignedLCD501_GetContrast(void)//描述:獲取顯示比較度C語言調(diào)用//參數(shù):無//返回:當(dāng)前顯示的比較度值//聲明:xinqiang20050624MzDesign//注意:無//*//unsignedLCD501_GetContrast(void){returnCurLCDSet;//}E-1819//*//程序:voidLCD501_ScrollUp(unsignedRows)//描述:屏幕向上轉(zhuǎn)動C語言調(diào)用//參數(shù):Rows屏幕向上轉(zhuǎn)動的像素數(shù),范圍從1到64//返回:null//聲明:xinqiang20050624MzDesign//注意:無//*//voidLCD501_ScrollUp(unsignedRows){CurScroll=CurScroll+Rows;while(CurScroll>=SCR_MAX_ROW)CurScroll-=SCR_MAX_ROW;F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+CurScroll);//設(shè)置顯示初步行對應(yīng)RAM}//*//程序:unsignedLCD501_GetScroll(void)//描述:獲取屏幕已經(jīng)向上轉(zhuǎn)動的值C語言調(diào)用//參數(shù):無//返回:屏幕已經(jīng)向上轉(zhuǎn)動的值//聲明:xinqiang20050624MzDesign//注意:無//*//unsignedLCD501_GetScroll(void){returnCurScroll;//}//*//程序:voidLCD501_ReverseColor(void)//描述:屏幕反色顯示。每執(zhí)行一次該函數(shù),屏幕顏色翻轉(zhuǎn)一次。C語言調(diào)用//參數(shù):無//返回:無E-1920//聲明:xinqiang20050624MzDesign//注意:無//*//voidLCD501_ReverseColor(void){if(CurScrMode)//{F_SPLC501_Write_Com(M_LCD_ALL_REV);//正向反向顯示控制指令CurScrMode=0;}else{F_SPLC501_Write_Com(M_LCD_ALL_NOR);//正向反向顯示控制指令CurScrMode=1;}}//*//程序:LCD501_ClrScreen(unsignedintMode)描述:液晶整屏清屏函數(shù)C語言調(diào)用參數(shù):unsignedintMode清屏種類Mode=1則全點亮,Mode=0內(nèi)全清零//聲明:小丑20050519sunnorthMzDesign注意:破壞R1存放器,保護(hù)R1//*//voidLCD501_ClrScreen(unsignedintMode){unsignedinti,j;if(Mode)Mode=0x00ff;elseMode=0x0000;for(i=0;i<8;i++){F_SPLC501_Write_Com(M_LCD_COL_PAGE+i);F_SPLC501_Write_Com(M_LCD_COL_LINE_LOW);E-2021F_SPLC501_Write_Com(M_LCD_COL_LINE_HIG);F_SPLC501_Write_Com(0xee);//讀改寫模式結(jié)束指令for(j=0;j<128;j++){F_SPLC501_Write_Data(Mode);}}}//*////程序:F_LCD_LineRun(unsignedintline)//描述:液晶顯示初步行設(shè)置函數(shù)C語言調(diào)用(滾屏功能用)//參數(shù):unsignedintline初步RAM行,0~63//聲明:小丑20050527sunnorthMzDesign注意:破壞R1存放器,保護(hù)R1//*//voidF_LCD_LineRun(unsignedintline){if(line>=64)line=0;F_SPLC501_Write_Com(M_LCD_BEGIN_LINE+line);//設(shè)置顯示初步行對應(yīng)RAM}//*////程序:voidF_LCD_WOSCASII(unsignedintx,unsignedintpage,unsignedintd)描述:OSD取的ASCII字符顯示函數(shù)C語言調(diào)用//參數(shù):x顯示字符的初步列(0~128)page顯示字符的初步頁(0~6)dASCII碼//聲明:小丑20050519sunnorthMzDesign注意:僅用于顯示用OSD取字模工具取的16X16、16X12字模的ASCII字符//*///*voidF_LCD_WOSCASII(unsignedintx,unsignedintpage,unsignedintd){unsignedintuntype;unsignedint*word;inti,j,m;E-2122unsignedintx_low,x_hight;d=d-33;word=(unsignedint)encoding_00+(d*17);untype=*(word++);i=untype>>8;j=(untype&0xff);x_low=(x&0x000f)+M_LCD_COL_LINE_LOW;//定位列地址設(shè)置的低位指令x_hight=((x>>4)&0x000f)+M_LCD_COL_LINE_HIG;//定位列地址設(shè)置的高位指令for(;i>0;){i=i-8;F_SPLC501_Write_Com(M_LCD_COL_PAGE+page);F_SPLC501_Write_Com(x_low);F_SPLC501_Write_Com(x_hight);for(m=0;m<j;m++){if(i)untype=*(word+m);elseuntype=(*(word+m)>>8);untype=untype&0x00ff;F_SPLC501_Write_Data(untype);}page++;}}*///*//程序:voidLCD501_SetPaintMode(unsignedModeCode)描述:設(shè)置圖形顯示模式//參數(shù):ModeCode-圖形顯示模式,能夠是以下數(shù)值之一://0PAINT_COVER:覆蓋顯示。圖形所在地址的原有顯示內(nèi)容將被覆蓋掉//1PAINT_SET:疊加顯示。圖形所在地址中原有的黑色點將被保留E-2223//2PAINT_CLR:擦除顯示。圖形反色顯示,但圖形所在地址中原有的白//色點將被保留//3PAINT_REV:異或顯示。圖形中每一個點與原有的點做異或,即若是//圖形中某點的顏色與其所在地址原有的顏色相同,則//該點顯示白色,若是新顏色與原來顏色不相同,則該點//顯示黑色//返回:無//聲明:xinqiang20050624MzDesign注意://*//voidLCD501_SetPaintMode(unsignedModeCode){if(ModeCode>3)ModeCode=PAINT_COVER;CurPaintMode=ModeCode;}//*//程序:unsignedintLCD501_GetPaintMode(void)描述:設(shè)置圖形顯示模式參數(shù):無//返回:ModeCode-圖形顯示模式,能夠是以下數(shù)值之一://0PAINT_COVER:覆蓋顯示。圖形所在地址的原有顯示內(nèi)容將被覆蓋掉//1PAINT_SET:疊加顯示。圖形所在地址中原有的黑色點將被保留//2PAINT_CLR:擦除顯示。圖形反色顯示,但圖形所在地址中原有的白//色點將被保留//3PAINT_REV:異或顯示。圖形中每一個點與原有的點做異或,即若是//圖形中某點的顏色與其所在地址原有的顏色相同,則//該點顯示白色,若是新顏色與原來顏色不相同,則該點//顯示黑色//聲明:xinqiang20050624MzDesign注意://*//unsignedintLCD501_GetPaintMode(void){returnCurPaintMode;E-2324}//*//程序:voidLCD501_PutPixel(unsignedintx,unsignedinty)描述:畫點子程序//參數(shù):x要畫點的x坐標(biāo)y要畫的點的y坐標(biāo)返回:無//聲明:xinqiang20050521sunnorthMzDesign注意:無//*//voidLCD501_PutPixel(unsignedintx,unsignedinty){unsignedintx_low,x_hight;//定義列地址的高低位指令unsignedintDot_Mask_Buf=0x0001;unsignedinty_Page,unTemp;//用于存放要畫點的地址所在的byte數(shù)據(jù)地址x=x+4;x_low=(x&0x000f);//定位列地址設(shè)置的低位指令x_hight=((x>>4)&0x000f)+0x10;//定位列地址設(shè)置的高位指令y_Page=y&0x07;//取低三位while(y_Page!=0){Dot_Mask_Buf=Dot_Mask_Buf<<1;y_;}y_Page=y>>3;//GetthepageofthebyteF_SPLC501_Write_Com(M_LCD_COL_PAGE+y_Page);F_SPLC501_Write_Com(x_low);F_SPLC501_Write_Com(x_hight);F_SPLC501_Write_Com(0xe0);//設(shè)置為讀寫改模式y(tǒng)_Page=F_SPLC501_Read_Data();//switch(CurPaintMode){casePAINT_CLR:y_Page=y_Page&(~Dot_Mask_Buf);break;casePAINT_SET:y_Page=y_Page|Dot_Mask_Buf;break;E-2425casePAINT_REV:x=y_Page^Dot_Mask_Buf;x=x&Dot_Mask_Buf;y_Page=(y_Page&(~Dot_Mask_Buf))|x;break;default:y_Page=y_Page|Dot_Mask_Buf;break;}F_SPLC501_Write_Data(y_Page);//F_SPLC501_Write_Com(0xee);//讀寫改模式結(jié)束}//*////程序:voidLCD501_Line(unsignedintx,unsignedinty,unsignedinte_x,//unsignedinte_y)描述:畫直線程序//參數(shù):x要畫線的x起點坐標(biāo)y要畫的線的y起點坐標(biāo)//e_x要畫線的x終點坐標(biāo)e_y要畫的線的y起點坐標(biāo)返回:無聲明:小丑200505121sunnorthMzDesign注意://*//voidLCD501_Line(unsignedintx,unsignedinty,unsignedinte_x,unsignedinte_y){intOffset_x,Offset_y,Offset_k=0;intErr_d=1;if(y>e_y){Offset_x=x;x=e_x;e_x=Offset_x;Offset_x=y;y=e_y;e_y=Offset_x;}Offset_x=e_x-x;Offset_y=e_y-y;LCD501_PutPixel(x,y);E-2526if(Offset_x<=0){Offset_x=x-e_x;Err_d=-1;}if(Offset_x>Offset_y){while(x!=e_x){if(Offset_k>0){y+=1;Offset_k+=(Offset_y-Offset_x);}elseOffset_k+=Offset_y;x+=Err_d;LCD501_PutPixel(x,y);}}else{while(y!=e_y){if(Offset_k>0){x+=Err_d;Offset_k+=(Offset_x-Offset_y);}elseOffset_k+=Offset_x;y+=1;LCD501_PutPixel(x,y);}}}//*////程序:voidLCD501_Circle(unsignedintx,unsignedinty,unsignedintr,E-2627//unsignedintMode)描述:畫圓程序//參數(shù):x要畫的圓心的x坐標(biāo)y要畫的圓心的y坐標(biāo)r半徑Mode:繪點模式//Mode=M_DOT_CLEAR畫0圓框Mode=M_DOT_SET1畫實心圓//聲明:小丑20050521sunnorthMzDesign注意:畫實心圓需要用較長時間,用戶需要做好清看門狗的操作//*//voidLCD_PaintRed_Dot(intx,inty,inta,intb,intmode){if(mode>0){LCD501_Line(x+a,y+b,x-a,y+b);LCD501_Line(x+a,y-b,x-a,y-b);}else{LCD501_PutPixel(x+a,y+b);LCD501_PutPixel(x-a,y+b);LCD501_PutPixel(x+a,y-b);LCD501_PutPixel(x-a,y-b);}}voidLCD501_Circle(unsignedintx,unsignedinty,unsignedintr,unsignedintMode){intarx1=0,ary1,arx2,ary2=0;unsignedintuiTemp;ary1=r;arx2=r;uiTemp=LCD501_GetPaintMode();LCD501_SetPaintMode(PAINT_COVER);while(1){Clear_Watchdog();LCD_PaintRed_Dot(x,y,arx1,ary1,Mode);W_Red_Err(&arx1,&ary1,&r);E-2728if(arx1==arx2){LCD_PaintRed_Dot(x,y,arx1,ary1,Mode);break;}LCD_PaintRed_Dot(x,y,arx2,ary2,Mode);W_Red_Err(&ary2,&arx2,&r);if(arx1==arx2){LCD_PaintRed_Dot(x,y,arx2,ary2,Mode);break;}}LCD501_SetPaintMode(uiTemp);}//*////程序:voidLCD501_Rectangle(unsignedleft,unsignedtop,//unsignedright,unsignedbottom,unsignedMode)描述:畫矩形程序//參數(shù):left-矩形的左上角橫坐標(biāo),范圍0到118//top-矩形的左上角縱坐標(biāo),范圍0到50//right-矩形的右下角橫坐標(biāo),范圍1到119//bottom-矩形的右下角縱坐標(biāo),范圍1到51Mode-繪制模式,能夠是以下數(shù)值之一://PAINT_HOLLOW:矩形框(空心矩形)//PAINT_SOLID:矩形面(實心矩形)//聲明:xinqiang20050521sunnorthMzDesign注意:無//*//voidLCD501_Rectangle(unsignedleft,unsignedtop,unsignedright,unsignedbottom,unsignedMode){unsigneduiTemp;if(left>right){uiTemp=left;E-2829left=right;right=left;}if(top>bottom){uiTemp=top;top=bottom;bottom=uiTemp;}if(Mode==PAINT_HOLLOW){LCD501_Line(left,top,left,bottom);LCD501_Line(left,top,right,top);LCD501_Line(right,bottom,left+1,bottom);LCD501_Line(right,bottom,right,top+1);}else{for(uiTemp=top;uiTemp<=bottom;uiTemp++){LCD501_Line(left,uiTemp,right,uiTemp);Clear_Watchdog();}}}//*////程序:voidLCD501_Bitmap(unsignedintx,unsignedinty,unsignedint*word)描述:OSD取的漢字字模顯示函數(shù)C語言調(diào)用//參數(shù):x顯示字符的初步列(0~128)y要顯示的字模的初步行(0~64-y_whide)*word要顯示的漢字字模的數(shù)據(jù)首地址//聲明:小丑20050519sunnorthMzDesign注意:只顯示用OSD取字模軟件所取的漢字字模數(shù)據(jù)//*//unsignedintShift_Buff[4];unsignedintShift_Data_buf[4];E-2930unsignedintCover_Data_buf[4];voidF_Cover_Initial(unsignedintNumber_Bit,unsignedintNumber_Shif);voidLCD501_Bitmap(unsignedintx,unsignedinty,unsignedint*word){unsignedintuntype,Shift_Num,Read_Back;inti,j,m,n;unsignedintx_low,x_hight;unsignedinty_whide,y_Number,y_Number_8;Shift_Num=y&0x07;//GettheShiftNumberuntype=*(word++);i=untype>>8;j=(untype&0xff);//Getthewhideif((x+j)>128||(y+i)>64||y>64)return;y=(y>>3)+M_LCD_COL_PAGE;x=x+4;y_whide=i>>4;//Gettheywhide(16bitoneword)if(i&0x000f)y_whide+=1;//testF_Cover_Initial(i,Shift_Num);//ModeltheMaskData//testy_Number=i+Shift_Num;y_Number_8=y_Number;i=y_Number&0x0f;y_Number=y_Number>>4;if(i)y_Number++;i=i&0x07;y_Number_8=y_Number_8>>3;if(i&&y_Number_8!=8)y_Number_8++;for(n=0;n<j;n++){x_low=(x&0x000f);//定位列地址設(shè)置的低位指令x_hight=((x>>4)&0x000f)+0x10;//定位列地址設(shè)置的高位指令x++;for(m=0;m<4;m++)Shift_Data_buf[m]=0;for(m=0;m<y_Number_8;m++)E-3031{F_SPLC501_Write_Com(y+m);F_SPLC501_Write_Com(x_low);//設(shè)置初始地址F_SPLC501_Write_Com(x_hight);Read_Back=F_SPLC501_Read_Data();untype=m>>1;if(m&0x01)Shift_Buff[3-untype]=Shift_Buff[3-untype]|(Read_Back<<8);elseShift_Buff[3-untype]=Read_Back;}F_Data_Cover(word,Shift_Num,y_Number,(y_whide<<4));for(m=0;m<y_Number_8;m++){F_SPLC501_Write_Com(y+m);F_SPLC501_Write_Com(x_low);//設(shè)置初始地址F_SPLC501_Write_Com(x_hight);untype=m>>1;if(m&0x01)Read_Back=Shift_Data_buf[3-untype]>>8;//=Shift_Buff[3-untype]|(Read_Back<<8);elseRead_Back=Shift_Data_buf[3-untype];//=Read_Back;F_SPLC501_Write_Data(Read_Back);}word=word+y_whide;}}//////程序:voidLCD501_FontSet(unsingedintFont)[8x16][6X8]描述:選擇顯示字符的大小種類參數(shù):Font字符的種類選擇18X1606X8//聲明:xinqiang20050519sunnorthMzDesign注意:只針對顯示驅(qū)動中包括的ASCII碼顯示//*//voidLCD501_FontSet(unsignedintFont)E-3132{if(Font)CurASCIIFont=1;elseCurASCIIFont=0;}//////程序:voidF_LCD_WASII(intx,intpage,unsignedinta)[8x16][6X8]描述:顯時8X16、6X8的自帶ASCII字符,定Page顯示,不能夠任意行定位//參數(shù):x顯示字符的初步列(0~128)page顯示字符的初步頁(0~6)//aASCII碼Font字符的種類選擇18X1606X8//聲明:xinqiang20050519sunnorthMzDesign注意://*//voidF_LCD_WASII(intx,intpage,unsignedinta){inti,j,X_Witch,Y_Witch,y_com;//數(shù)據(jù)暫存int*p_data;a-=32;x=x+4;if(CurASCIIFont){X_Witch=4;Y_Witch=2;p_data=&Asii16;//字符表首址a=a<<3;}else{p_data=&Asii8;//字符表首址X_Witch=a<<1;a+=X_Witch;X_Witch=3;Y_Witch=1;}p_data+=a;//要寫字符的首地址E-3233for(j=0;j<Y_Witch;j++){if((page+j)<8){y_com=page+0xb0;F_SPLC501_Write_Com(y_com+j);F_SPLC501_Write_Com(((x&0xf0)>>4)|0x10);//設(shè)置初始地址F_SPLC501_Write_Com(x&0x0f);for(i=0;i<X_Witch;i++,p_data++){if((x+(i<<1))<132){F_SPLC501_Write_Data(((*p_data)>>8)&0xff);F_SPLC501_Write_Data((*p_data)&0xff);}}}}}//////程序:voidLCD501_PutChar(intx,inty,unsignedinta)[8x16][6X8]描述:顯時8X16、6X8的自帶ASCII字符,任意行定位//參數(shù):x顯示字符的初步列(0~128)y顯示字符的初步行(0~63)aASCII碼//聲明:小丑20050519sunnorthMzDesign注意:////voidLCD501_PutChar(intx,inty,unsignedinta){inti,j,X_Witch,Y_Witch=0,y_com=0;//數(shù)據(jù)暫存unsignedintuiData1,uiData2;unsignedintuiMask_low=0x00ff,uiMask=0x00ff,uiMask_mid=0x00ff,uiMask_mid2=0x00ff;unsignedintRead_Back;//讀回的數(shù)據(jù)unsignedintShift_Num;//左移的個數(shù)int*p_data;E-3334a-=32;x=x+4;Shift_Num=y&0x07;//只取低三位y=y>>3;//&uiMask_low;if(Shift_Num){Y_Witch++;}if(CurPaintMode==PAINT_COVER)//||CurPaintMode==PAINT_SET){uiMask=uiMask>>Shift_Num;//獲取掩膜數(shù)uiMask_low=(uiMask_low<<(8-Shift_Num))&0x00ff;//獲取低位掩模數(shù)uiMask_mid2=uiMask_low>>(8-Shift_Num);uiMask_mid=uiMask<<Shift_Num;}if(CurASCIIFont){X_Witch=4;Y_Witch=Y_Witch+2;p_data=&Asii16;//字符表首址a=a<<3;}else{p_data=&Asii8;//字符表首址X_Witch=a<<1;a+=X_Witch;X_Witch=3;Y_Witch++;}p_data+=a;//要寫字符的首地址for(j=0;j<Y_Witch;j++){if((y+j)<8){y_com=y+0xb0;F_SPLC501_Write_Com(y_com+j);//設(shè)置初始頁地址F_SPLC501_Write_Com(((x&0xf0)>>4)|0x10);//設(shè)置初始列地址E-3435F_SPLC501_Write_Com(x&0x0f);F_SPLC501_Write_Com(0xe0);//設(shè)置為讀寫改模式for(i=0;i<X_Witch;i++,p_data++){if((x+(i<<1))<128){if(j==0){uiData2=F_SPLC501_Read_Data();uiData1=(*p_data)>>8;uiData1=(uiData1&uiMask)<<Shift_Num;uiData2=(uiData2&uiMask_mid2);//>>Shift_Num;}elseif(j==(Y_Witch-1)&&Shift_Num!=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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論