C單片機課程設(shè)計報告_第1頁
C單片機課程設(shè)計報告_第2頁
C單片機課程設(shè)計報告_第3頁
C單片機課程設(shè)計報告_第4頁
C單片機課程設(shè)計報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、內(nèi)容提要單片微型計算機簡稱單片機,是典型的嵌入式微控制器,常用英文字母的縮寫MCU表示單片機,它最早是被用在工業(yè)控制領(lǐng)域。單片機由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當(dāng)于一個微型的計算機,和計算機相比,單片機只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質(zhì)量輕、價格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時,學(xué)習(xí)使用單片機是了解計算機原理與結(jié)構(gòu)的最

2、佳選擇。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結(jié)果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實

3、時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械以及各種智能機械了。所以說對于單片機課程的學(xué)習(xí)對于我們電子信息工程專業(yè)的學(xué)生來說至關(guān)重要,然而學(xué)習(xí)單片機課程設(shè)計是其一個極為重要的實踐環(huán)節(jié),無論是硬件擴展、接口應(yīng)用還是編程方法、程序調(diào)試,都離不開該環(huán)節(jié)。單片機課程設(shè)計過程中,學(xué)生通過查閱資料、接口設(shè)計、程序設(shè)計、安裝調(diào)試等環(huán)節(jié),完成一個涉及MCS-51單片機多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計與編程應(yīng)用。通過該環(huán)節(jié),學(xué)生不但能夠?qū)⒄n

4、堂上學(xué)到的理論知識與實際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐贰㈦娮釉骷确矫娴闹R進一步加深認(rèn)識,同時在軟件編程、排錯調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到全面的鍛煉和提高。目錄一、課程設(shè)計目的:5二、已知技術(shù)參數(shù)和條件5三、設(shè)計任務(wù)和要求5四、需求分析6五、硬件電路圖設(shè)計及描述7六、軟件設(shè)計思想及流程10七、實驗效果13八、源程序代碼16九、課程設(shè)計體會30十、參考文獻(xiàn)31一、課程設(shè)計目的:通過課程設(shè)計,使學(xué)生鞏固和加深對單片機基本知識的理解,能夠?qū)⒄n堂上學(xué)到的理論知識與實際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐?、電子元器件等方面的知識進一步加深認(rèn)識,同時在軟件編程、排錯調(diào)試、焊接技術(shù)、相

5、關(guān)儀器設(shè)備的使用技能等方面得到全面的鍛煉和提高。學(xué)會查尋資料、方案設(shè)計、方案比較,以及單元電路設(shè)計計算等環(huán)節(jié),進一步提高學(xué)生綜合運用所學(xué)知識的能力,提高分析解決實際問題的能力。鍛煉分析、解決電子電路問題的實際本領(lǐng),通過此綜合訓(xùn)練,為以后畢業(yè)設(shè)計打下一定的基礎(chǔ)。二、已知技術(shù)參數(shù)和條件(1)STC89C51單片機(2)LED七段數(shù)碼顯示器 及8個LED小彩燈(3)74HC595串口轉(zhuǎn)并口芯片(4)電位器(5)按鍵 (6) PCF8591 AD-DA數(shù)模轉(zhuǎn)換芯片(7)電阻箱,5V電源, 電阻若干 ,導(dǎo)線若干(8)KEIL 軟件(9)MCS-51單片機官方燒寫程序軟件 STC_ISP_V488.exe

6、三、設(shè)計任務(wù)和要求1 通過單片機的I/O口直接控制8盞LED小燈,實現(xiàn) 7 種彩燈燈光效果(左移、右移、中間向兩邊展開、兩邊向中間合攏等,不含全部點亮,全部熄滅);2.用按鍵來切換控制器的燈光模式,能顯示當(dāng)前的運行模式號;3彩燈效果的移動速度基于AD輸入量的大小(控制器通過 PCF8591 對05V信號進行采樣,根據(jù)模擬信號的大小而改變彩燈移動速度);彩燈控制器還要顯示當(dāng)前模擬輸入信號的大小(數(shù)碼管顯示);4彩燈效果中的延時采用定時中斷實現(xiàn)。按鍵、數(shù)碼管直接用C51的I/O驅(qū)動擴展:可以通過串口通訊芯片595來控制彩燈效果的切換,將AD采樣結(jié)果顯示的數(shù)碼管上。四、需求分析 根據(jù)本次課程設(shè)計題目

7、分析及其題目簡化,需要做的是通過電位器來控制8盞彩燈的掃描顯示速度,并且顯示此時AD芯片的采樣值,并且通過一個按鍵來切換不同的彩燈的7種顯示模式。于是乎,可以將系統(tǒng)分為兩個部分:其一,模擬采樣部分;其二,彩燈顯示部分。單片機按鍵輸入電路時鐘電路復(fù)位電路數(shù)碼管顯示電路LED顯示電路模擬采樣轉(zhuǎn)換輸入最后得到以下的設(shè)計方案: 通過一個電位器來得到一個可以改變的模擬值; 采用 PCF8591 采樣電位器所產(chǎn)生的模擬值,并將其轉(zhuǎn)化為數(shù)字信號; MCU 通過I2C總線讀取 PCF8951 內(nèi)部ROM 中所緩存的數(shù)值; 編寫數(shù)碼管顯示函數(shù),通過單片機的I/O口驅(qū)動數(shù)碼管顯示 PCF8591 所采樣的值。(數(shù)

8、碼管高四位顯示PCF8591所采樣的數(shù)值,低四位顯示當(dāng)前PCF8591所采取的精確電壓值,精確到小數(shù)點后三位); 編寫LED彩燈的顯示,利用定時器0 來控制每一盞小燈的顯示延遲時間,利用定時器1和 pcf8591所采樣的數(shù)字信號來共同確定LED彩燈的掃描速度,即通過調(diào)節(jié)電位器可以改變LED燈的掃描速度(通過的I/O驅(qū)動74HC595芯片實現(xiàn)串口轉(zhuǎn)并口來驅(qū)動8個LED小彩燈的顯示); 采用外部中斷0 來切換LED彩燈的顯示模式。五、硬件電路圖設(shè)計及描述注:電路圖原圖另有PDF文件1、數(shù)碼管顯示電路設(shè)計課程設(shè)計中所用的數(shù)碼管為共陰極數(shù)碼管,當(dāng)給其引腳加入高電平時,數(shù)碼管中對應(yīng)的那一段就亮。下圖為外

9、部顯示圖,其內(nèi)部結(jié)構(gòu)如下:共陰極數(shù)碼管內(nèi)部結(jié)構(gòu)2、LED顯示電路設(shè)計本次課程設(shè)計中要用發(fā)光二極管顯示狀態(tài)。由下圖知發(fā)光二極管陽極經(jīng)過電阻接高電平,當(dāng)其陰極為低電平時,二極管就發(fā)光顯示所處狀態(tài)。通過串口轉(zhuǎn)并口芯片74HC595的并口輸出來改變LED燈的顯示狀態(tài)。3、AD轉(zhuǎn)換電路設(shè)計 此次課程設(shè)計的AD轉(zhuǎn)換芯片采用的是PCF8591芯片,芯片的9、10 管腳是I2C串口協(xié)議傳輸引腳,其與MCU的P20、P21接口連接。A0、A1、A2為地址線,此處接地,地址為I2C傳輸數(shù)據(jù)的地址為000。四路模擬輸入接口為AIN0、AIN1、AIN2、AIN3,此處只選擇一路模擬輸入-AIN0。模擬輸入信號通過一

10、個電位器的改變而提供。4、時鐘電路設(shè)計時鐘電路對單片機是不可缺的,單片機的每個功能都要以時鐘電路為基礎(chǔ)工作。單片機內(nèi)部自帶一個時鐘電路,外部接入定時控制元件即可構(gòu)成一個穩(wěn)定的自激振蕩器。其中機器周期共有12個振蕩脈沖周期,因此,機器周期是時鐘周期的12倍。本課程設(shè)計中時鐘電路中使用的晶體是12MHz,則時鐘周期為(1/12)us,機器周期為1us。實驗圖如下:5、外部中斷信號電路設(shè)計 外部中斷信號的是由一個簡單的不帶鎖的按鍵開關(guān)提供的一個脈沖信號。六、軟件設(shè)計思想及流程(1)使用單片機資源的情況:設(shè)計時使用單片機資源的情況如下:AT89S51單片機的P0、P1口作為數(shù)碼管數(shù)據(jù)線接口,其中,P0

11、口接是段選,P1接位選,P20、P21接AD轉(zhuǎn)換芯片PCF8591的I2C串口接口,P34、P35、P36 口接74HC595的串口輸入接口,P32外接外部中斷按鍵。單片機定時器0、定時器1均勻方式1來控制定時器運行。(2)軟件系統(tǒng)的各個模塊功能:本設(shè)計的軟件系統(tǒng)主要采用以下基本模塊來實現(xiàn):主程序、中斷服務(wù)程序、串口傳輸程序。主程序用于對于各個程序模塊的運行及控制,以及各個模式程序的初始化。特別是定時中斷的初始值。在主程序中還主要的對pcf8591進行了操作,采樣,量化,顯示。有三個中斷服務(wù)程序,分別是定時器0中斷、定時器1中斷、外部中斷,通過外部中斷來實現(xiàn)各個LED燈的顯示模式的切換。定時器

12、中斷0用于控制LED燈的顯示延時。定時器1用于操作LED燈的不同模式的顯示。串口傳輸程序只要有兩種串口傳輸函數(shù),分別I2C串口傳輸函數(shù)和595串口轉(zhuǎn)并口的串口傳輸函數(shù)。在串口函數(shù)里面詳細(xì)的對串口進行了操作,里面有I2C串口的初始化,終止,數(shù)據(jù)傳輸,應(yīng)答,595串口的傳輸。(3)設(shè)計的軟件流程框圖:開始LED燈顯示調(diào)整LED掃描速度數(shù)碼管顯示外部 中斷改變LED燈的顯示模式T1T0結(jié)束LED燈顯示延時改變8個LED燈的顯示狀態(tài)定時器 中斷進入主程序定時器0、1開始計時AD芯片采樣、量化無中斷While(1)(4)軟件調(diào)試過程使用keil軟件在做寫程序之前選擇create HEX Fi:表示生成可

13、燒寫進單片機的HEX文件。在編寫程序結(jié)束之后點擊編譯,生成HEX文件。再生成HEX文件之后打開STC單片機官方燒寫軟件進行程序燒寫:選擇單片機型號;選擇生成的HEX文件;選擇單片機連接的COM口;選擇傳輸?shù)牟ㄌ芈?;斷電燒寫。七、實驗效果在完成燒寫程序完成之后單片機即可正常執(zhí)行程序。執(zhí)行效果如下:電位器1即模擬信號的輸入,通過旋轉(zhuǎn)電位器1 可改變數(shù)碼管的顯示電位器1的采樣值,與調(diào)節(jié)LED的掃描顯示速度。通過按鍵2可改變LED燈的顯示模式。不同的實驗效果圖還有如下:八、源程序代碼/* main.c */#include<reg52.h>#include <I2C.H>#in

14、clude <intrins.H>#define PCF8591 0x90 /PCF8591 地址unsigned char LED9=0x01,0x01,0x01,0x01,0x7F,0x81,0x81,0x01,0xAA;/LED的顯示模式unsigned char LED_kind=1,a=0x80,b=0x01;unsigned int j,mun;/此表為 LED 的字模, 共陰數(shù)碼管 0-9 - unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; unsigne

15、d long xdata LedOut8;unsigned int D3,n=1;/*DAC 變換, 轉(zhuǎn)化函數(shù) */bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送控制字節(jié) if(ack=0)return(0); SendByte(Val); /發(fā)送DAC的數(shù)值 if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 retu

16、rn(1);/*ADC發(fā)送字節(jié)命令數(shù)據(jù)函數(shù)*/bit ISendByte(unsigned char sla,unsigned char c) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送數(shù)據(jù) if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 return(1);/*ADC讀字節(jié)數(shù)據(jù)函數(shù)*/unsigned char IRcvByte(unsigned char sla) unsigned char c; Start_I2c(); /啟動總線 SendByt

17、e(sla+1); /發(fā)送器件地址+1使寫入地址為0x91 為讀地址1001 0001 if(ack=0)return(0); c=RcvByte(); /讀取數(shù)據(jù)0 Ack_I2c(1); /發(fā)送非就答位 Stop_I2c(); /結(jié)束總線 return(c);/*/main() char i; TMOD= 0x11; /設(shè)置計數(shù)模式為方式2 TH0=(65536-500)/256; TL0=(65536-500)%256;TH1=(65536-50)/256; TL1=(65536-50)%256; IE =0x8B; /開定時器0、定時器1 TR0= 1;TR1=1;IT0=1; whi

18、le(1) ISendByte(PCF8591,0x40);/使用通道0進行采樣 D0=IRcvByte(PCF8591); /從pcf8591讀取模數(shù)轉(zhuǎn)換的數(shù)值 D1=D0*5/0.255; /將模數(shù)轉(zhuǎn)換的數(shù)值轉(zhuǎn)換成電壓值 D2=D0*2/25.5; /用于控制LED的速度 /*將AD的值送到LED數(shù)碼管顯示*/ LedOut0=Disp_TabD0%10000/1000; LedOut1=Disp_TabD0%1000/100; LedOut2=Disp_TabD0%100/10; LedOut3=Disp_TabD0%10; /*轉(zhuǎn)換后的電壓值送到LED數(shù)碼管顯示*/ LedOut4=D

19、isp_TabD1%10000/1000|0x80; LedOut5=Disp_TabD1%1000/100; LedOut6=Disp_TabD1%100/10; LedOut7=Disp_TabD1%10; for( i=0; i<8; i+) P0 = LedOuti; /段選擇 switch(i) /使用switch 位選擇 case 0:P1=0xFE;break; case 1:P1=0xFD;break; case 2:P1=0xFB;break; case 3:P1=0xF7;break; case 4:P1=0xEF;break;case 5:P1=0xDF;break

20、;case 6:P1=0xBF;break;case 7:P1=0x7F;break; / for (j = 0 ; j<90 ;j+) ; /掃描間隔時間 n=1; while(n); P1=0xFF; /清除余輝相映 void Timer0(void) interrupt 1 /3定時器1的中斷號 1定時器0的中斷號 0外部中斷1 2外部中斷2 4串口中斷 TH0=(65536-1000)/256; TL0=(65536-1000)%256; n=0;void Timer2(void) interrupt 0 if(LED_kind<=7) LED_kind+; else LE

21、D_kind=1; void Timer1(void) interrupt 3 /3定時器1的中斷號 1定時器0的中斷號 0外部中斷1 2外部中斷2 4串口中斷 unsigned char c=1,d=0; j+; TH1=(65536-40000)/256; TL1=(65536-40000)%256;if(j>D2) switch(LED_kind) case 1: HC595SendData(LED0+);break; case 2: LED1=_cror_(LED1, 1);mun=LED1;HC595SendData(mun);break; case 3: LED2=_crol

22、_(LED2, 1); mun=LED2; HC595SendData(mun);break; case 4: mun=LED3; if(LED3<=0x80) HC595SendData(mun); LED3=LED3<<1; LED3=LED3|0x01; else LED3=0x01; HC595SendData(mun); break; case 5: HC595SendData(LED4); LED4=LED4>>1;if(LED4=0) HC595SendData(LED4); LED4=0x7F; break; case 6: if(a!=0) d=

23、aLED7; HC595SendData(d); a=a>>1; LED7=LED7<<1; else a=0x80; LED7=0x01; d=a|LED7; HC595SendData(d); break; case 7: LED8=LED8; HC595SendData(LED8); break; j=0;/* I2C.c */#include<reg52.h>#include <intrins.h>#include <I2C.H>#define uchar unsigned char#define uint unsigned

24、int#define NOP() _nop_() /* 定義空指令 */#define _Nop() _nop_() /*定義空指令*/sbit SCL=P21; /I2C 時鐘 sbit SDA=P20; /I2C 數(shù)據(jù) bit ack; /*應(yīng)答標(biāo)志位*/sbit MOSIO =P34; /HC595數(shù)據(jù)線sbit R_CLK =P35; /輸出時鐘sbit S_CLK =P36; /輸入時鐘/* 起動總線函數(shù) 函數(shù)原型: void Start_I2c(); 功能: 啟動I2C總線,即發(fā)送I2C起始條件. */void Start_I2c() SDA=1; /*發(fā)送起始條件的數(shù)據(jù)信號*/

25、_Nop(); SCL=1; _Nop(); /*起始條件建立時間大于4.7us,延時*/ _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /*發(fā)送起始信號*/ _Nop(); /* 起始條件鎖定時間大于4s*/ _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /*鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */ _Nop(); _Nop();/* 結(jié)束總線函數(shù) 函數(shù)原型: void Stop_I2c(); 功能: 結(jié)束I2C總線,即發(fā)送I2C結(jié)束條件. */void Stop_I2c() SDA=0; /*發(fā)送結(jié)束條件的數(shù)據(jù)信號*/ _No

26、p(); /*發(fā)送結(jié)束條件的時鐘信號*/ SCL=1; /*結(jié)束條件建立時間大于4s*/ _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /*發(fā)送I2C總線結(jié)束信號*/ _Nop(); _Nop(); _Nop(); _Nop();/* 字節(jié)數(shù)據(jù)發(fā)送函數(shù) 函數(shù)原型: void SendByte(UCHAR c);功能: 將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對 此狀態(tài)位進行操作.(不應(yīng)答或非應(yīng)答都使ack=0) 發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無應(yīng)答或損壞。*/void SendByte(unsigned c

27、har c) unsigned char BitCnt; for(BitCnt=0;BitCnt<8;BitCnt+) /*要傳送的數(shù)據(jù)長度為8位*/ if(c<<BitCnt)&0x80)SDA=1; /*判斷發(fā)送位*/ else SDA=0; _Nop(); SCL=1; /*置時鐘線為高,通知被控器開始接收數(shù)據(jù)位*/ _Nop(); _Nop(); /*保證時鐘高電平周期大于4s*/ _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); SDA=1; /*8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位*/ _Nop(); _Nop

28、(); SCL=1; _Nop(); _Nop(); _Nop(); if(SDA=1)ack=0; else ack=1; /*判斷是否接收到應(yīng)答信號*/ SCL=0; _Nop(); _Nop();/* 字節(jié)數(shù)據(jù)接收函數(shù) 函數(shù)原型: UCHAR RcvByte();功能: 用來接收從器件傳來的數(shù)據(jù),并判斷總線錯誤(不發(fā)應(yīng)答信號), 發(fā)完后請用應(yīng)答函數(shù)應(yīng)答從機。 */ unsigned char RcvByte() unsigned char retc; unsigned char BitCnt; retc=0; SDA=1; /*置數(shù)據(jù)線為輸入方式*/ for(BitCnt=0;BitCn

29、t<8;BitCnt+) _Nop(); SCL=0; /*置時鐘線為低,準(zhǔn)備接收數(shù)據(jù)位*/ _Nop(); _Nop(); /*時鐘低電平周期大于4.7s*/ _Nop(); _Nop(); _Nop(); SCL=1; /*置時鐘線為高使數(shù)據(jù)線上數(shù)據(jù)有效*/ _Nop(); _Nop(); retc=retc<<1; if(SDA=1)retc=retc+1; /*讀數(shù)據(jù)位,接收的數(shù)據(jù)位放入retc中 */ _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); return(retc);/* 應(yīng)答子函數(shù)函數(shù)原型: void Ack_I2c(bit

30、a);功能: 主控器進行應(yīng)答信號(可以是應(yīng)答或非應(yīng)答信號,由位參數(shù)a決定)*/void Ack_I2c(bit a) if(a=0)SDA=0; /*在此發(fā)出應(yīng)答或非應(yīng)答信號 */ else SDA=1; _Nop(); _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); /*時鐘低電平周期大于4s*/ _Nop(); _Nop(); _Nop(); SCL=0; /*清時鐘線,鉗住I2C總線以便繼續(xù)接收*/ _Nop(); _Nop(); /* 74HC595串口傳輸函數(shù)函數(shù)原型: void HC595SendData(unsigned char SendVal);功能: 將串行信號轉(zhuǎn)換成并行信號 */void HC595SendData(unsigned char SendVal) unsigned char i; for(i=0;i<8;i+) if(SendVal<<i)&0x80) MO

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論