多功能電子鐘設(shè)計_第1頁
多功能電子鐘設(shè)計_第2頁
多功能電子鐘設(shè)計_第3頁
多功能電子鐘設(shè)計_第4頁
多功能電子鐘設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本論文設(shè)計一個基于單片機的集電子鐘、流水燈多種功能于一體的多功能電子鐘。單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89C52單片機為核心控制元件,設(shè)計一個電子鐘。以單片機作為主控核心,與鍵盤、開關(guān)、揚聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有3個按鍵,四個開關(guān),數(shù)碼管和揚聲器。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。 關(guān)鍵詞:AT89C52單片機 電子鐘 流水燈 目錄1.引 言22. 總體設(shè)計32.1基本原理32.2系統(tǒng)總體框圖及設(shè)計

2、思路43.詳細設(shè)計53.1 硬件設(shè)計53.2軟件設(shè)計.10程序設(shè)計思路113.2.2 程序流程圖123.2.3 程序代碼134. 系統(tǒng)調(diào)試及分析265.心得體會29參考文獻301 引 言單片微型計算機是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。 1957年,Ventura發(fā)明了世界上第一個電子表,從而奠定了電子時鐘的基礎(chǔ),電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間

3、中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分小時進一,滿二十四小時小時清零。從而達到計時的功能,是人民日常生活補課缺少的工具?,F(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。 2 總體設(shè)計2.1基本原理數(shù)字時鐘是本設(shè)計的最主要的部分。根據(jù)需要,可利用兩種方案實現(xiàn)。方案一:本方案采用Dallas公司的

4、專用時鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設(shè)置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當電網(wǎng)電壓不足或突然掉電時,系統(tǒng)自動轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。方案二:本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設(shè)三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達到60,

5、則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現(xiàn),當單片機不上電,程序不執(zhí)行時,時鐘將不工作?;谟布娐返目紤],本設(shè)計采用方案二完成數(shù)字時鐘的功能。數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數(shù)較多時,靜態(tài)顯示所需的I/O口太多,造成了資源的浪費

6、。方案二:動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮時間與間隔時間的比例有關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省I/O口和降低能耗出發(fā),本設(shè)計采用方案二。2.2系統(tǒng)總體框圖及設(shè)計思路 3 詳細設(shè)計3.1 硬件設(shè)計3.1.1電源部分 圖3-2如圖3-2所示,從外部引入5.0V的直流電,為單片機、復(fù)位電路提供電源。3.1.2復(fù)位電路圖3-3如圖3-3所示,復(fù)位電路主要由型號為1N4148

7、的二極管,型號為10UF/16V的電解電容,型號為104的瓷片電容,10K的電阻以及按鍵S1構(gòu)成,S1接芯片的相應(yīng)引腳RST,當開關(guān)按下時引腳RST為高電平1,斷開時引腳為低電平0。3.1.3位選部分圖3-5圖3-5為位選電路,三極管的集電極接數(shù)碼管的公共端,當P2口對應(yīng)的引腳輸出高電平時三極管導(dǎo)通,對應(yīng)的數(shù)碼管顯示數(shù)據(jù)。這樣,在同一時刻,6位LED中只有選通的那1位顯示出字符,而其他5位則是熄滅的。同樣,在下一時刻,只讓下一位的位選線處于選通狀態(tài),而其他個位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時刻,只有選通位顯示出相應(yīng)的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可

8、以使各位顯示出將要顯示的字符。雖然這些字符是在不同時刻出現(xiàn)的,而在同一時刻,只有一位顯示,其他各位熄滅,但由于LED的余輝和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時亮的假象,達到同時顯示的效果。3.1.4數(shù)碼管的連接電路圖3-6圖3-6為數(shù)碼管的引腳圖,每位的段碼線(a,b,c,d,e,f,g,dp)分別與1個8位的鎖存器輸出相連,由AT89S51控制組合09十個數(shù)據(jù),如令其顯示1則b,c引腳(即2,3引腳)送高電平,此時數(shù)碼管顯示1。由于各位的段碼線并聯(lián),8位I/O口輸出段碼對各個顯示位來說都是相同的。AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位

9、單片機,片內(nèi)含4K bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術(shù)生產(chǎn),兼容標準8051指令系統(tǒng)及引腳。AT89S51提供以下標準功能:4K字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32I/O口線,看門狗(WDT),兩個數(shù)據(jù)指針,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。如圖3-7所示,AT89S51有40引腳,雙列直插(DIP)封裝,所用引腳功能如下:1. VCC 運行時加4.5V2. GND 接地3. XTAL1 振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端4. XTAL2 振蕩器反相放

10、大器的輸出端5. RST 復(fù)位輸入,高電平有效,在晶振工作時,在RST引腳上作用2個機器周期以上的高電平,將使單片機復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFT AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。6. EA/VPP 片外程序存儲器訪問允許信號。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地),如果EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。7. P1口,P2口P1,P2是一組帶內(nèi)部上拉電阻的8位雙向I/O口。運行時通過P1口控制驅(qū)動電路的工作,將數(shù)據(jù)送

11、到數(shù)碼管,顯示相應(yīng)的段碼,為了達到減少功耗或滿足端口對最大電流的限制,應(yīng)加上一限流電阻。P2.0P2.5口控制數(shù)碼管的位選,使六個數(shù)碼管輪流顯示數(shù)據(jù),等于1時位選三極管導(dǎo)通,等于0 時位選三極管截止。8. 無自鎖開關(guān)(S2P3.7)開關(guān)接相應(yīng)引腳P3.7,當開關(guān)按下時,相應(yīng)引腳為低電平0,斷開時引腳為高電平1。9. PCB圖:流水燈硬件原理圖32軟件設(shè)計. 程序設(shè)計思路流水燈部分為由八個燈分時點亮,并由一個開關(guān)控制其變換方式。從硬件原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的

12、電平變?yōu)楦唠娖剑煌?,接在P1.1P1.7口的其他7個LED的點亮和熄滅的方法同LED1。因此,要實現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1LED8依次點亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應(yīng)注意一點,由于人眼的視覺暫留效應(yīng)以及單片機執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否則我們就看不到“流水”效果了。單片機的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點亮的現(xiàn)象,我們還需要告訴單片機怎么來進行工作,即編寫程序控制單片機管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應(yīng)用系統(tǒng)中的一個重要

13、的組成部分,是單片機學(xué)習的重點和難點。下面我們以最簡單的流水燈控制功能即實現(xiàn)8個LED燈的循環(huán)點亮,來介紹實現(xiàn)流水燈控制的幾種軟件編程方法。在主程序的開始定義了一組固定單元用來存儲計數(shù)的分、秒、時的存儲單元。在主程序中,對不同的按鍵進行掃描,實現(xiàn)秒表,時間調(diào)整。系統(tǒng)總體流程圖如圖3所示。 程序流程圖 程序代碼1、預(yù)定義部分 #include<reg52.h>#define char unsigned char code char tmpled90=0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,0X81,0X82,0X84,0X88,0X90,0XA

14、0,0XC0,0XC1,0XC2,0XC4,0XC8,0XD0,0XE0,0XE1,0XE2,0XE4,0XE8,0XF0,0XF1,0XF2,0XF4,0XF8,0XF9,0XFA,0XFC,0XFD,0XFE,0XFF,0XFF,0X00,0XFF,0X00,0X00,0XFF,0XFF,0X00,0X00,0X80,0X40,0X20,0X10,0X08,0X04,0X02,0X01,0X81,0X41,0X21,0X11,0X09,0X05,0X03,0X83,0X43,0X23,0X13,0X0B,0X07,0X87,0X47,0X27,0X17,0X0F,0X8F,0X4F,0X2

15、F,0X1F,0X9F,0X5F,0X3F,0XBF,0X7F,0XFF,0XFF,0X00,0XFF,0X00;/定義數(shù)組常量,表示流水燈的變換方式,前面加"code"表示常量在程序代碼中存放,不占用RAM。該數(shù)組為發(fā)光二極管的輸出數(shù)據(jù)Code char li33=0X81,0X42,0X24,0X18,0X99,0X5A,0X3C,0XBD,0X7E,0XFF,0XFF,0XE7,0XC3,0X81,0X00, 0X18,0X00,0X18,0X24,0X42,0X81, 0X99,0XA5,0XC3,0XDB,0XE7,0XFF,0XFF,0X00,0XFF,0X00

16、;/此數(shù)組表示流水燈的另一種變換方式 char code dis_711=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff; char code scan_con8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; char data timedata6=0x00,0x00,0x00,0x00,0x00,0x00; char data dis8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; char data conls=0x00,con04s=0x00,con=0X

17、00; sbit key0=P10; sbit key1=P11; sbit key2=P12; sbit been=P13; sbit key3=P14; sbit key4=P15; sbit key5=P16;2、功能控制通過開關(guān)控制鬧鈴部分void wen(void) if (timedata0>=5&&timedata1<=4&&timedata2=0&&timedata3=0&&timedata4=0&&timedata5=0&&key3=0) been=been; else

18、 been=1; 3、數(shù)碼管顯示部分本段采用的是共陰極LED數(shù)碼管:scan() char k; for(k=0;k<6;k+) if(key5=0) P0=dis_7disk;P2=scan_conk;delay1ms(1);P2=0xff;elseP0=0xff;break; 4、按鍵部分:、利用3個按鍵調(diào)節(jié)時鐘 keyscan() EA=0; if(key0=0) delay1ms(10); while(key0=0); if(discon=10) dis7=discon;discon=dis6;dis6=dis7; con+;TR0=0;ET0=0;TR1=1;ET1=1; if

19、(con>=6) con=0;TR1=0;ET1=0;TR0=1;ET0=1; if(con!=0) if(key1=0) delay1ms(10); while(key1=0); timedatacon+; if(timedatacon>=10) timedatacon=0; discon=timedatacon;dis6=0x0a; if(con!=0) if(key2=0) delay1ms(10); while(key2=0); if(timedatacon=0) timedatacon=0x09; elsetimedatacon-; discon=timedatacon;

20、dis6=0x0a; EA=1;5、產(chǎn)生時鐘部分: 對晶振周期計數(shù),記滿一秒產(chǎn)生中斷,計數(shù)顯示秒位加一void time_intt0(void) interrupt 1 ET0=0;TR0=0;TH0=0x3C;TL0=0XB0;TR0=1; conls+; if(conls=20) conls=0x00; timedata0+ ; if(timedata0>=10) timedata0=0;timedata1+; if(timedata1>=6) timedata1=0;timedata2+; if(timedata2>=10) timedata2=0;timedata3+

21、; if(timedata3>=6) timedata3=0;timedata4+; if(timedata4>=10) timedata4=0;timedata5+; if(timedata5=2) if(timedata4=4) timedata4=0;timedata5=0; dis0=timedata0;dis1=timedata1;dis2=timedata2; dis3=timedata3;dis4=timedata4;dis5=timedata5; ET0=1; void time_intt1(void) interrupt 3 EA=0;TR1=0;TH1=0x3C

22、;TL1=0xB0;TR1=1; con04s+; if(con04s=8) con04s=0x00; dis7=discon;discon=dis6;dis6=dis7; EA=1; 6、流水燈控制部分:共兩個開關(guān),一個切換數(shù)碼管與流水燈的亮滅,一個用來切換流水燈自身的點亮方式void lsd(void) char n; char i; iii: for(n=0;n<100;n+) if(key5=1)/循環(huán)輸出40個數(shù)據(jù) if(key4=1) P3=tmpledn;/""這個符號是取反,因發(fā)光二極管采用共陽極,所以將數(shù)據(jù)取反再輸出 delay1ms(110);/調(diào)

23、用延時子函數(shù),改變參數(shù)大小,調(diào)整變化速度 else P3=0XFF; delay1ms(30); goto www; else P3=0xff; break; www: for(i=0;i<40;i+) if(key5=1) if(key4=0) P3=lii;/""這個符號是取反,因發(fā)光二極管采用共陽極,所以將數(shù)據(jù)取反再輸出 delay1ms(200);/調(diào)用延時子函數(shù),改變參數(shù)大小,調(diào)整變化速度 else P3=0XFF; delay1ms(30); goto iii; else P3=0XFF; break; 整體程序部分: #include<reg52.

24、h>#define char unsigned char code char tmpled90=0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,0X81,0X82,0X84,0X88,0X90,0XA0,0XC0,0XC1,0XC2,0XC4,0XC8,0XD0,0XE0,0XE1,0XE2,0XE4,0XE8,0XF0,0XF1,0XF2,0XF4,0XF8,0XF9,0XFA,0XFC,0XFD,0XFE,0XFF,0XFF,0X00,0XFF,0X00,0X00,0XFF,0XFF,0X00,0X00,0X80,0X40,0X20,0X10,0X08

25、,0X04,0X02,0X01,0X81,0X41,0X21,0X11,0X09,0X05,0X03,0X83,0X43,0X23,0X13,0X0B,0X07,0X87,0X47,0X27,0X17,0X0F,0X8F,0X4F,0X2F,0X1F,0X9F,0X5F,0X3F,0XBF,0X7F,0XFF,0XFF,0X00,0XFF,0X00;/定義數(shù)組常量,前面加"code"表示常量在程序代碼中存放, /不占用RAM。該數(shù)組為發(fā)光二極管的輸出數(shù)據(jù)Code char li33=0X81,0X42,0X24,0X18,0X99,0X5A,0X3C,0XBD,0X7E,0

26、XFF,0XFF,0XE7,0XC3,0X81,0X00, 0X18,0X00,0X18,0X24,0X42,0X81, 0X99,0XA5,0XC3,0XDB,0XE7,0XFF,0XFF,0X00,0XFF,0X00;char code dis_711=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff; char code scan_con8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; char data timedata6=0x00,0x00,0x00,0x00,0x00,0x00; cha

27、r data dis8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; char data conls=0x00,con04s=0x00,con=0X00; sbit key0=P10; sbit key1=P11; sbit key2=P12; sbit been=P13; sbit key3=P14; sbit key4=P15; sbit key5=P16; void wen(void) if (timedata0>=5&&timedata1<=4&&timedata2=0&&timedata3

28、=0&&timedata4=0&&timedata5=0&&key3=0) been=been; else been=1; delay1ms(int t) int i,j; for(i=0;i<t;i+) for(j=0;j<120;j+); keyscan() EA=0; if(key0=0) delay1ms(10); while(key0=0); if(discon=10) dis7=discon;discon=dis6;dis6=dis7; con+;TR0=0;ET0=0;TR1=1;ET1=1; if(con>=6)

29、 con=0;TR1=0;ET1=0;TR0=1;ET0=1; if(con!=0) if(key1=0) delay1ms(10); while(key1=0); timedatacon+; if(timedatacon>=10) timedatacon=0; discon=timedatacon;dis6=0x0a; if(con!=0) if(key2=0) delay1ms(10); while(key2=0); if(timedatacon=0) timedatacon=0x09; elsetimedatacon-; discon=timedatacon;dis6=0x0a;

30、EA=1; scan() char k; for(k=0;k<6;k+) if(key5=0) P0=dis_7disk;P2=scan_conk;delay1ms(1);P2=0xff;elseP0=0xff;break; clearmen() int i; for(i=0;i<6;i+) disi=timedatai; TH0=0x3C;TL0=0xB0; TH1=0x3C;TL1=0xB0; TMOD=0X11;ET0=1;ET1=1;TR1=0;TR0=1;EA=1; void lsd(void) char n; char i; iii: for(n=0;n<100;

31、n+) if(key5=1)/循環(huán)輸出40個數(shù)據(jù) if(key4=1) P3=tmpledn;/""這個符號是取反,因發(fā)光二極管采用共陽極,所以將數(shù)據(jù)取反再輸出 delay1ms(110);/調(diào)用延時子函數(shù),改變參數(shù)大小,調(diào)整變化速度 else P3=0XFF; delay1ms(30); goto www; else P3=0xff; break; www: for(i=0;i<40;i+) if(key5=1) if(key4=0) P3=lii;/""這個符號是取反,因發(fā)光二極管采用共陽極,所以將數(shù)據(jù)取反再輸出 delay1ms(200);/

32、調(diào)用延時子函數(shù),改變參數(shù)大小,調(diào)整變化速度 else P3=0XFF; delay1ms(30); goto iii; else P3=0XFF; break; main() clearmen(); while(1) scan(); keyscan(); wen();lsd() ; void time_intt0(void) interrupt 1 ET0=0;TR0=0;TH0=0x3C;TL0=0XB0;TR0=1; conls+; if(conls=20) conls=0x00; timedata0+ ; if(timedata0>=10) timedata0=0;timedata

33、1+; if(timedata1>=6) timedata1=0;timedata2+; if(timedata2>=10) timedata2=0;timedata3+; if(timedata3>=6) timedata3=0;timedata4+; if(timedata4>=10) timedata4=0;timedata5+; if(timedata5=2) if(timedata4=4) timedata4=0;timedata5=0; dis0=timedata0;dis1=timedata1;dis2=timedata2; dis3=timedata3;dis4=timedata4;dis5=timedata5; ET0=1; void t

溫馨提示

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

評論

0/150

提交評論