畢業(yè)設(shè)計課題——數(shù)字集成電路測試儀_第1頁
畢業(yè)設(shè)計課題——數(shù)字集成電路測試儀_第2頁
畢業(yè)設(shè)計課題——數(shù)字集成電路測試儀_第3頁
畢業(yè)設(shè)計課題——數(shù)字集成電路測試儀_第4頁
畢業(yè)設(shè)計課題——數(shù)字集成電路測試儀_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、參賽組別小組成員2011年6月5日目錄一、任務(wù)2二、方案設(shè)計與論證比較2顯示模塊2輸入模塊3電源模塊3繼電器模塊3三、芯片檢測的基本原理3四、系統(tǒng)的整體設(shè)計3五、系統(tǒng)功能測試及結(jié)果4測試方法4測試結(jié)果4六、設(shè)計過程總結(jié)與體會4參考文獻(xiàn)5附件一系統(tǒng)電路圖:5附件二實(shí)物照片:6附件三:7摘要:在當(dāng)今社會中,電子技術(shù)發(fā)展迅速,數(shù)字集成電路的應(yīng)用廣泛,而74系列邏輯芯片在數(shù)字電路中又有著非常廣泛的應(yīng)用,因而數(shù)字電路設(shè)計中必須要求所用的數(shù)字電路芯片邏輯功能完整,但在數(shù)字電路芯片測試中又有很多不便,實(shí)際測試較繁瑣。針對上述需要,我們針對常用的74系列邏輯芯片設(shè)計了一種數(shù)字電路芯片測試儀,用來檢測常用74系

2、列芯片的型號和邏輯功能的好壞,從而給數(shù)字電路的設(shè)計、制作帶來方便。關(guān)鍵詞:74系列邏輯芯片 AT89C52 自動識別型號一、任務(wù)設(shè)計一套數(shù)字集成電路測試裝置,能夠?qū)崿F(xiàn)對指定幾種14腳常見的74系列數(shù)字電路測試。芯片有74LS00、74LS04、74LS20、74LS74、74LS86、74LS92?;疽螅?.設(shè)計數(shù)字集成電路測試儀器硬件:包含自制電源、MCU控制電路、鍵盤、顯示器等。2.能夠?qū)χ付ǖ?4系列門電路芯片進(jìn)行功能測試(完好/損壞)。74LS00、74LS04、74LS20、74LS86。發(fā)揮部分:1.能夠自動識別指定的幾種74系列門電路的型號:74LS00、74LS04、74L

3、S20、74LS86。2.能夠自動識別指定的74系列觸發(fā)器、計數(shù)器電路的型號。74LS86、74LS92。二、方案設(shè)計與論證比較顯示模塊顯示模塊主要實(shí)現(xiàn)對芯片檢測結(jié)果的顯示,包括芯片型號及芯片功能是否完好,同時也要給用戶提供必要的提示信息,提高系統(tǒng)界面的友好性。 方案一采用數(shù)碼管顯示由于所有芯片均為74系列,因而只顯示最后兩位編號即可實(shí)現(xiàn)對芯片型號的顯示,但由于數(shù)碼管顯示效果較差并且動態(tài)掃描時會占用很多CPU時間,因而舍棄該方案。 方案二采用點(diǎn)陣顯示采用有二極管構(gòu)成的16×16點(diǎn)陣,通過主控單元的控制可以實(shí)現(xiàn)漢字及英文字符的顯示,可以顯示芯片型號以及芯片功能完整性,采用點(diǎn)陣顯示的優(yōu)點(diǎn)

4、是顯示內(nèi)容可以隨意控制,顯示內(nèi)容豐富。但點(diǎn)陣顯示也存在占用I/O口較多并且會占用大量CPU時間的缺點(diǎn),另外,在使用點(diǎn)陣顯示是還要存儲大量的字模信息,而由于本系統(tǒng)需要掃描大量的邏輯芯片,為節(jié)約成本又未擴(kuò)展程序存儲區(qū),因而考慮到所用主控單元I/O口資源有限和對程序存儲區(qū)容量的限制,舍棄該方案。 方案三采用1602模塊顯示1602液晶為字符型液晶,可以顯示16×2共32個字符,不僅可以顯示芯片型號及判斷結(jié)果,并且還可以在程序運(yùn)行過程中為用戶提供必要的提示信息,提高了系統(tǒng)的交互性,并且1602液晶占用CPU時間較少,雖然顯示能力較弱,僅能顯示英文字符,但基本能滿足設(shè)計的要求,因而本設(shè)計采用1

5、602液晶作為顯示輸出設(shè)備。輸入模塊采用獨(dú)立按鍵的優(yōu)點(diǎn)是控制程序和硬件電路都很簡單,缺點(diǎn)是如果每個按鍵都要占用一個I/O口,當(dāng)按鍵較多時占用I/O口較多。但考慮到本次設(shè)計只需要三個按鍵:完好/損壞鍵、確認(rèn)鍵、自動識別鍵。因此在實(shí)際的測試中分別對應(yīng)P3.0P3.1P3.2通過按鍵查詢就可以簡單的起到控制輸入的目的。電源模塊本設(shè)計電路模擬部分較少,電源主要用于驅(qū)動單片機(jī)、液晶以及待檢測的74邏輯芯片,由于都是數(shù)字電路,對于電源的要求較低,故采用比較簡單的基于LM7805芯片的電源,電源的輸出為5V剛好滿足電路各部分的供電要求。繼電器模塊由于74LS92芯片的引腳中5腳為電源,10腳為地,而74LS

6、00、74LS04、74LS20、74LS74、74LS86芯片的引腳都是14腳為電源,7腳為地。因此在實(shí)際的測試過程中,我們需要對電源實(shí)現(xiàn)正確的切換,設(shè)計思路是:默認(rèn)芯片測試引腳中是14腳為電源,7腳為地,用戶按下自動識別的按鍵后,程序依次掃描前五個,掃到一個后就退出掃描程序后返回掃描結(jié)果,如果沒掃到單片機(jī)通過P3.6腳控制繼電器實(shí)現(xiàn)換擋后,使芯片測試引腳中5腳為電源,10腳為地。再繼續(xù)執(zhí)行掃描任務(wù)確定這特殊的74LS86。由于是實(shí)現(xiàn)5V控制,我們選擇ATQ209雙刀開關(guān)。三、芯片檢測的基本原理對于邏輯芯片的檢測,我們主要實(shí)現(xiàn)檢測芯片邏輯功能好壞亦或是確定芯片的型號,由于主控單元采用STC8

7、9c52單片機(jī),其I/O與TTL電平完全兼容,因而直接由單片機(jī)對芯片插座的引腳進(jìn)行掃描,由于是固定的14腳芯片,為了編程方便,使芯片測試引腳17分別為P1.0P1.6,引腳148分別為P2.0P2.6。實(shí)現(xiàn)了通過單片機(jī)輸出端口模擬芯片的各種輸入狀態(tài),并通過單片機(jī)讀回芯片的輸出結(jié)果,通過與芯片真值表的比較即可判斷芯片邏輯功能的好壞的目的。在進(jìn)行芯片掃描時,必須先將芯片的輸出引腳I/O置為高電平,然后對芯片的輸入引腳進(jìn)行各種狀態(tài)的掃描,通過單片機(jī)讀回芯片的輸出,再依據(jù)芯片的真值表對其輸出進(jìn)相比較,不一致則說明芯片的邏輯功能發(fā)生錯誤,斷定芯片為壞的,若芯片的輸出與真值表完全相符,則說明芯片的邏輯功能

8、正確,可以判斷為好芯片。 然后再依據(jù)所檢測的結(jié)果,通過單片機(jī)對芯片的邏輯功能加以詳細(xì)測試,并對結(jié)果加以顯示。在自動識別的時候,為了提高準(zhǔn)確度,我們編寫了程序,采用對同一端口兩次輸入再兩次讀回其狀態(tài)的比較方法,來對芯片好壞進(jìn)行準(zhǔn)確測試,繼而返回正確的芯片型號。四、系統(tǒng)的整體設(shè)計系統(tǒng)流程圖五、系統(tǒng)功能測試及結(jié)果對每一種芯片我們設(shè)計了唯一的輸入狀態(tài)并讀回P1P2口的數(shù)據(jù)與真值表比較,如果有查到一個表符合要求就記錄返回值后顯示。在測試的整個過程中,實(shí)現(xiàn)了對芯片完好/損壞功能的測試,用戶按完好/損壞鍵并按確認(rèn)鍵后可以看到測試顯示結(jié)果為“OK,GOOD CHIP!”或者“SORRY,BAD CHIP!”。

9、當(dāng)然如果用戶不知道芯片是何種型號,就可以按自動識別鍵自動識別上述74系列門電路的型號,T返回結(jié)果為“This is:74××.”。用戶操作的過程和顯示的結(jié)果實(shí)時動態(tài)顯示在液晶顯示器中,以告知用戶測試結(jié)果。對于74LS00/04/20/86芯片進(jìn)行實(shí)物測試,可以自動識別芯片型號及其好壞情況,測試結(jié)果滿足要求。對74LS74/92芯片進(jìn)行實(shí)物測試,可以自動識別其芯片型號。通過模擬芯片錯誤,均可完成正確測試。六、設(shè)計過程總結(jié)與體會通過這次電子設(shè)計競賽,我們小組成員齊心協(xié)力,自己動手設(shè)計制作完成了一個數(shù)字集成電路測試儀。這期間我們雖然也遇到了不少的困惑,但通過老師的指導(dǎo)和自己的思考

10、,這些問題一一得到解決,這次競賽中學(xué)到了很多解決實(shí)際問題的方法,而且動手能力又得到了很大的提升。對于這個設(shè)計來說,我們總結(jié)了以下幾點(diǎn)經(jīng)驗和教訓(xùn)。第一,電路板的總體布局十分重要。一個好的線路布局不僅會使電路板外觀整齊,而且在之后的電路調(diào)試和線路錯誤檢查中亦能有一個清晰的思路,可以提高工作效率;第二,C程序的調(diào)試工作在本次設(shè)計作品中非常重要。因為本次C代碼較長,所以整個程序的前后統(tǒng)籌調(diào)試中要很細(xì)心,乃至一個很小的標(biāo)量也要重視。在完成了該電子設(shè)計后,我們覺得這個設(shè)計還有可以改進(jìn)和完善之處。比如,可以通過修改代碼,使得在按下某按鍵后可以自動檢測所有芯片的型號以及其好壞情況。而且,可以加入LED指示燈或

11、者蜂鳴器,來更加直觀地顯示或提醒電路工作狀況和芯片檢測結(jié)果。參考文獻(xiàn)1康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版).北京:高等教育出版社,20062閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,19893 寧武,唐曉宇,閆曉金.全國大學(xué)生電子設(shè)計競賽基本技能指導(dǎo),2009附件一 系統(tǒng)電路圖:附件二 實(shí)物照片:附件三:/*-數(shù)字集成電路芯片測試儀C程序-清單-*/程序組:陳辰燦 王海 賀星辰-#include<reg52.h>#include <intrins.h>#include <stdio.h>/這是頭文件必須包含/*=宏定義=*/#define

12、LCD_data P0/數(shù)據(jù)口#define M 4/要測試的芯片好壞的個數(shù)#define N 8#define input1 P1/用于檢測的引腳#define input2 P2/*=液晶宏定義、初始化引腳=*/void delay(unsigned int z);*延時函數(shù)*/void charfill(unsigned char c); /整屏顯示A代表的ASCII字符子程序void putstrxy(unsigned char cx,unsigned char cy,unsigned char code *s);/在(cx,cy)字符位置寫字符串子程序void putstr(unsi

13、gned char code *s); /定位寫字符串子程序void putchars(unsigned char c); /在(CXPOS,CYPOS)字符位置寫字符子程序unsigned char getchars(void); /CXPOS,CYPOS)字符位置讀字符子程序void charlcdpos(void); /設(shè)置(CXPOS,CYPOS)字符位置的DDRAM地址void charcursornext(void); /置字符位置為下一個有效位置子程序void lcdreset(void); /SMC1602系列液晶顯示控制器初始化子程序void delay3ms(void);

14、/延時3MS子程序void lcdwc(unsigned char c); /送控制字到液晶顯示控制器子程序void lcdwd(unsigned char d); /送控制字到液晶顯示控制器子程序unsigned char lcdrd(void); /讀數(shù)據(jù)子程序void lcdwaitidle(void); /忙檢測子程序unsigned char data CXPOS; /列方向地址指針(用于CHARLCDPOS子程序)unsigned char data CYPOS; /行方向地址指針(用于CHARLCDPOS子程序)sbit RSPIN = P35; /RS對應(yīng)單片機(jī)引腳sbit R

15、WPIN = P34; /RW對應(yīng)單片機(jī)引腳sbit EPIN = P33; /E對應(yīng)單片機(jī)引腳/*=宏定義=*/unsigned char detect(); /自動檢測引腳/*=定義按鍵=*/sbit key1=P30; / 選擇檢測芯片sbit key2=P31; / 確定選擇的芯片sbit key3=P32; / 自動檢測sbit key4=P36; / 繼電器的切換unsigned char *name="7400","7404","7420","7486","7474","

16、7492","ERROR"/*=按鍵的標(biāo)志位=*/unsigned char flag=0;/要選擇的芯片型號在已定義字符數(shù)組中的序號unsigned char flag1=0;unsigned char flag2=0;/用來標(biāo)示某芯片各通道檢測均完好的標(biāo)志位unsigned char k=0; /返回自動檢測后芯片序號在已定義的數(shù)組中的序號unsigned char code LS0044= 0x3f,0x3f,0x1b,0x1b,/74ls000x24,0x24,0x24,0x24, 0x36,0x36,0x36,0x36,0x2d,0x2d,0x2d,0x

17、2d, ;unsigned char code LS0424=0x2a,0x2a,0x2a,0x2a,/74ls04 0x3f,0x3f,0x15,0x15,;unsigned char code LS20164= 0x24,0x24,0x24,0x24,/74ls20 0x25,0x25,0x25,0x25, 0x26,0x26,0x26,0x26, 0x27,0x27,0x27,0x27, 0x2c,0x2c,0x2c,0x2c, 0x2d,0x2d,0x2d,0x2d, 0x2e,0x2e,0x2e,0x2e, 0x2f,0x2f,0x2f,0x2f,0x34,0x34,0x34,0x3

18、4,0x35,0x35,0x35,0x35,0x36,0x36,0x36,0x36,0x37,0x37,0x37,0x37, 0x3c,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3d, 0x3e,0x3e,0x3e,0x3e, 0x3f,0x3f,0x1f,0x1f,;unsigned char code LS8644= 0x24,0x24,0x00,0x00,/74ls86 0x36,0x36,0x36,0x36,0x2d,0x2d,0x2d,0x2d,0x3f,0x3f,0x1b,0x1b,;unsigned char code ICMN= 0x24,0x24,0x2

19、4,0x24,0x3f,0x3f,0x1b,0x1b,/74000x3f,0x3f,0x15,0x15,0x3f,0x3f,0x15,0x15,/7404 0x3f,0x3f,0x1f,0x1f,0x3f,0x3f,0x1f,0x1f,/7420 0x3f,0x3f,0x1b,0x1b,0x3f,0x3f,0x1b,0x1b,/7486;void main() unsigned char i,output1,output2; lcdreset(); /液晶顯示控制器初始化 putstrxy(0,0,"PLEASE CHOOSE 74LS CHIP"); /顯示歡迎界面 wh

20、ile(1) if(key1=0) delay(100);if(key1=0) if(flag=4) flag=0; flag+; switch(flag) case 1:charfill(' '); putstrxy(0,0,"NOW '7400'");break;case 2:charfill(' '); putstrxy(0,0,"NOW '7404'");break; case 3:charfill(' '); putstrxy(0,0,"NOW '

21、7420'");break; case 4:charfill(' '); putstrxy(0,0,"NOW '7486'"); if(flag=1&&key2=0) for(i=0;i<4;i+) input1=LS00i0; input2=LS00i1; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1!=LS00i2|output2!=LS00i3) putstrxy(0,1,"SORRY,BAD

22、 CHIP!"); flag2=0; break; if(output1=LS00i2&&output2=LS00i3) flag2+; if(flag2=4) putstrxy(0,1,"OK,GOOD CHIP!"); flag2=0; if(flag=2&&key2=0) for(i=0;i<2;i+) input1=LS04i0; input2=LS04i1; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1!=LS04i2|o

23、utput2!=LS04i3) putstrxy(0,1,"SORRY,BAD CHIP!"); flag2=0; break; if(output1=LS04i2&&output2=LS04i3) flag2+; if(flag2=2) putstrxy(0,1,"OK,GOOD CHIP!"); flag2=0; if(flag=3&&key2=0) for(i=0;i<16;i+) input1=LS20i0; input2=LS20i1; delay(5); output1=input1&0x3f;

24、output2=input2&0x3f; if(output1!=LS20i2|output2!=LS20i3) putstrxy(0,1,"SORRY,BAD CHIP!"); flag2=0; break; if(output1=LS20i2&&output2=LS20i3) flag2+; if(flag2=16) putstrxy(0,1,"OK,GOOD CHIP!"); flag2=0; if(flag=4&&key2=0) for(i=0;i<4;i+) input1=LS86i0; input

25、2=LS86i1; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1!=LS86i2|output2!=LS86i3) putstrxy(0,1,"SORRY,BAD CHIP!"); flag2=0; break; if(output1=LS86i2&&output2=LS86i3) flag2+; if(flag2=4) putstrxy(0,1,"OK,GOOD CHIP!"); flag2=0; if(key3=0) k=detect();

26、 charfill(' '); putstrxy(0,0,"This is:"); putstrxy(2,5,namek); /延時函數(shù)void delay(unsigned int z)unsigned int x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*=14腳芯片識別函數(shù)=*/unsigned char detect() /14腳芯片識別函數(shù) unsigned char i,output1,output2;/7474的檢測 P1=0xff; /初始化測試端口 P2=0xff; input1=0x3b; in

27、put2=0x39; delay(5); input1=0x3f; /上升沿 input2=0x3d; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1=0x1f&&output2=0x2d) return (4); /7400/04/20/86的自動檢測 P1=0xff; /初始化測試端口 P2=0xff; for(i=0;i<M;i+) input1=ICi0; input2=ICi1; delay(5); output1=input1&0x3f; /將芯片邏輯結(jié)果in

28、put1通過&0x3f取出 output2=input2&0x3f; if(output1=ICi2&&output2=ICi3) input1=ICi4; input2=ICi5; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1=ICi6&&output2=ICi7) return i; key4=0;/檢測7492時,先用繼電器江電源供電引腳切換 P1=0xff; /初始化測試端口 P2=0xff; input1=0x3f; /7492的檢測 inp

29、ut2=0x3f; delay(5); output1=input1&0x3f; output2=input2&0x3f; if(output1=0x3f&&output2=0x01) delay(100);key4=1;return (5); delay(100); key4=1;/測試結(jié)束,將電源供電引腳切換回原狀態(tài) return (6);/-void charfill(unsigned char c) /整屏顯示A代表的ASCII字符子程序 for(CXPOS=CYPOS=0;1;) putchars(c); /定位寫字符 charcursornext()

30、; /置字符位置為下一個有效位置 if(CXPOS=0) && (CYPOS=0) break; /子程序名稱:void putstrxy(unsigned char cx,unsigned char cy,unsigned char *s)./功能:在(cx,cy)字符位置寫字符串./-void putstrxy(unsigned char cx,unsigned char cy,unsigned char code *s) /在(cx,cy)字符位置寫字符串子程序 CXPOS=cx; /置當(dāng)前X位置為cx CYPOS=cy; /置當(dāng)前Y位置為cy for(;*s!=0;s+

31、) /為零表示字符串結(jié)束,退出 putchars(*s); /寫1個字符 charcursornext(); /字符位置移到下一個 /-/子程序名稱:void putstr(unsigned char *s)./功能:在(CXPOS,CYPOS)字符位置寫字符串./-void putstr(unsigned char code *s) /定位寫字符串子程序 for(;*s!=0;s+) /為零表示字符串結(jié)束,退出 putchars(*s); /寫1個字符 charcursornext(); /字符位置移到下一個 /-/子程序名稱:void putchar(unsigned char c)./功

32、能:在(CXPOS,CYPOS)字符位置寫字符./-void putchars(unsigned char c) /在(CXPOS,CYPOS)字符位置寫字符子程序 charlcdpos(); /設(shè)置(CXPOS,CYPOS)字符位置的DDRAM地址 lcdwd(c); /寫字符/-/子程序名稱:unsigned char getchar(void)./功能:在(CXPOS,CYPOS)字符位置讀字符./-unsigned char getchars(void) /在(CXPOS,CYPOS)字符位置讀字符子程序 charlcdpos(); /設(shè)置(CXPOS,CYPOS)字符位置的DDRAM

33、地址return lcdrd(); /讀字符/-/以下charlcdpos,charcursornext,lcdreset為HD44780兼容芯片的液晶顯示控制器的/16字符X2行的SMC1602系列標(biāo)準(zhǔn)字符點(diǎn)陣型液晶顯示模塊的接口程序./-/子程序名稱:void charlcdpos(void)./功能:設(shè)置(CXPOS,CYPOS)字符位置的DDRAM地址./-void charlcdpos(void) /設(shè)置(CXPOS,CYPOS)字符位置的DDRAM地址 CXPOS&=0X0f; /X位置范圍(0到15) CYPOS&=0X01; /Y位置范圍(0到1) if(CYP

34、OS=0) /(第一行)X: 第0-15個字符 lcdwc(CXPOS|0x80); / DDRAM: 0-0FH else /(第二行)X: 第0-15個字符 lcdwc(CXPOS|0xC0); / DDRAM: 40-4FH/-/子程序名稱:void charcursornext(void)./功能:置字符位置為下一個有效位置./-void charcursornext(void) /置字符位置為下一個有效位置子程序 CXPOS+; /字符位置加1 if(CXPOS>15) /字符位置CXPOS>15表示要換行 CXPOS=0; /置列位置為最左邊 CYPOS+; /行位置加1 CYPOS&=0X1; /字符位置CYPOS的有效范圍為(0到1) /-/子程序名稱:void lcdreset(void)./功能:液晶顯示控制器初始化./-void lcdreset(void) /SMC1602系列液晶顯示控制器初始化子程序 /1602的顯示模式字為0x38 lcdwc(0x38); /顯示模式設(shè)置第一次 delay3ms(); /延時3MS lcdwc(0x38); /顯示模式設(shè)置第二次 delay3ms(); /延時3MS lcdwc(0x38); /顯示模式設(shè)置第三次 delay3ms(); /延時3MS lc

溫馨提示

  • 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

提交評論