單片機課程設計萬年歷_第1頁
單片機課程設計萬年歷_第2頁
單片機課程設計萬年歷_第3頁
單片機課程設計萬年歷_第4頁
單片機課程設計萬年歷_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

年4月19日單片機課程設計萬年歷文檔僅供參考,不當之處,請聯(lián)系改正。鄭州輕工業(yè)學院軟件學院單片機與接口技術(shù)課程設計總結(jié)報告設計題目:電子萬年歷學生姓名:系別:專業(yè):班級:學號:指導教師:12月16日

設計題目:電子萬年歷設計任務與要求:1、顯示年月日時分秒及星期信息2、具有可調(diào)整日期和時間功能3、增加閏年計算功能方案比較:方案一:系統(tǒng)分為主控制器模塊、顯示模塊、按鍵開關(guān)模塊,主控制模塊采用AT89C52單片機為控制中心,顯示模塊采用普通的共陰LED數(shù)碼管,鍵輸入采用中斷實現(xiàn)功能調(diào)整,計時使用AT89C52單片機自帶的定時器功能,實現(xiàn)對時間、日期的操作,經(jīng)過按鍵盤開關(guān)實現(xiàn)對時間、日期的調(diào)整。方案二:系統(tǒng)分為主控模塊、時鐘電路模塊、按鍵掃描模塊,LCD顯示模塊,電源電路、復位電路、晶振電路等模塊。主控模塊采用AT89C52單片機,按鍵模塊用四個按鍵,用于調(diào)整時間,顯示模塊采用LCD1602,時鐘電路模塊采用DS1302時鐘芯片實現(xiàn)對時間、日期的操作。兩個方案工作原理大致相同,只有顯示模塊和時鐘電路不同。LED數(shù)碼管價格適中,對于數(shù)字顯示效果較好,而且使用單片機的端口也較少;LCD1602液晶顯示屏,顯示功能強大,能夠顯示大量文字、圖形,顯示多樣性,清晰可見,價格相對LED數(shù)碼管來說要昂貴些,可是基于本設計顯示的東西較多,若采用LED數(shù)碼管的話,所需數(shù)碼管較多,而且不利于控制,因此選擇LCD1602作為顯示模塊。DS1302是一款高性能的實時時鐘芯片,以計時準確、接口簡單、使用方便、工作電壓范圍寬和低功耗等優(yōu)點,得到廣泛的應用,實時時鐘有秒、分、時、星期、日、月和年,月小于31天時能夠自動調(diào)整,并具有閏年補償功能,而且在掉電時能夠在外部紐扣電池的供電下繼續(xù)工作。單片機有定時器的功能,但時間誤差較大,且需要編寫時鐘程序,因此采用DS1302作為時鐘電路。對比以上方案,結(jié)合設計技術(shù)指標與要求我們選擇了方案二進行設計。邏輯總框圖:該電子萬年歷的總體設計框圖如圖(1)所示。設計所需的元件:元件名稱 型號 數(shù)量/個單片機 AT89C52 1時鐘芯片 DS1302 1晶振 12MHz 1晶振 32.768kHz 1電容 30pF 2電容 22uF 1按鍵開關(guān) 4電阻 10K 9滑動變阻器 1K 1電池 1.5V 4LCD LCD1602 1電源Vcc +5V 1導線 若干單元電路設計:1、主控制系統(tǒng)單片機中央處理系統(tǒng)的方案設計,選用AT89C52單片機作為中央處理器,如圖(2)所示。該單片機除了擁有MCS-51系列單片機的所有優(yōu)點外,內(nèi)部還具有8K的在系統(tǒng)可編程FLASH存儲器,低功耗的空閑和掉電模式,極大的降低了電路的功耗,還包含了定時器、程序存儲器、數(shù)據(jù)存儲器等硬件,其硬件能符合整個控制系統(tǒng)的要求,不需要外接其它存儲器芯片和定時器件,方便地構(gòu)成一個最小系統(tǒng)。整個系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強,性價比高。2、時鐘振蕩電路時鐘振蕩電路圖(3)所示,時鐘振蕩電路用于產(chǎn)生單片機正常工作時所需要的時鐘信號,電路由兩個30pF的瓷片電容和一個12MHz的晶振組成,并接入到單片機的XTAL1和XTAL2引腳處,使單片機工作于內(nèi)部振蕩模式。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率決定。電路中兩個電容C1、C2的作用使電路快速起振,提高電路的運行速度。圖(3)時鐘振蕩電路圖圖(4)復位電路3、復位電路復位電路由電阻和極性電容組成,如圖(4)所示,經(jīng)過高電平使單片機復位,在時鐘電路開始工作后,當高電平的時間超過大約2us時,即可實現(xiàn)復位。此復位電路為上電復位,較為簡單。若改進能夠添加手動復位的功能,上電復位發(fā)生在開機加電時,由系統(tǒng)自動完成,手動復位經(jīng)過一個按鍵來實現(xiàn),在程序運行時,若遇到死機,死循環(huán)或程序“跑飛”等情況,經(jīng)過手動復位就能夠?qū)崿F(xiàn)重新啟動的操作。手動按鈕復位需要人為在復位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕和一個電阻。4、DS1302時鐘電路時鐘電路主要由時鐘芯片DS1302、備用電池、晶振等幾部分組成,如圖(6)所示。DS1302采用3線串行接口,占用引腳少,內(nèi)部集成了可編程日歷時鐘,用戶能夠根據(jù)需要經(jīng)過單片機的控制來自行設置,支持雙電源供電,能夠使用外部主電源和備用電源,備份電源能夠使時鐘芯片繼續(xù)工作。圖(5)DS1302管腳圖圖(6)DS1302時鐘電路DS1302各引腳的功能為:8:Vcc1:備用電池端;1:Vcc2:5V電源。當Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電,當Vcc2<Vcc1時,由Vcc1向DS1302供電;7:SCLK:串行時鐘,輸入;

6:I/O:數(shù)據(jù)輸入輸出口;5:CE/RST:復位腳;2、3:X1、X2是外接晶振腳(32.768KHZ的晶振);4:地(GND)。DS1302有關(guān)日歷、時間的寄存器:圖(7)DS1302有關(guān)日歷、時間的寄存器1、秒寄存器(81h、80h)的位7定義為時鐘暫停標志(CH)。當初始上電時該位置為1,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);只有將秒寄器的該位置改寫為0時,時鐘才能開始運行。2、小時寄存器(85h、84h)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當為高時,選擇12小時模式。在12小時模式時,位5是,當為1時,表示PM。在24小時模式時,位5是第二個10小時位3、控制寄存器(8Fh、8Eh)的位7是寫保護位(WP),其它7位均置為0。在對任何的時鐘和RAM的寫操作之前,WP位必須為0。當WP位為1時,寫保護位防止對任一寄存器的寫操作。也就是說在電路上電的初始態(tài)WP是1,這時是不能改寫上面任何一個時間寄存器的,只有首先將WP改寫為0,才能進行其它寄存器的寫操作。DS1302讀寫時序DS1302是SPI總線驅(qū)動方式。它不但要向寄存器寫入控制字,還需要讀取相應寄存器的數(shù)據(jù)。DS1302的控制字如圖(8):圖(8)DS1302的控制字圖控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4~A0):指示操作單元的地址;位0(最低有效位):如為0,表示要進行寫操作,為1表示進行讀操作。讀數(shù)據(jù):讀數(shù)據(jù)時在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)是從最低位到最高位。寫數(shù)據(jù):控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。5、按鍵電路按鍵電路由四個輕觸開關(guān)組成,如圖(9)所示。按鍵用來調(diào)整時間,其一端直接接到單片機的端口,另一端接地,當按下按鍵時,相應的端口變?yōu)榈碗娖?,?jīng)過一個與門只要這四個按鍵有一個按下就會在P3.2檢測到一低電平就觸發(fā)外部中斷0進入按鍵調(diào)節(jié)程序中,經(jīng)過與個各鍵相連的端口P3.4_P3.7能夠判斷是哪個鍵按下,從而作相應的操作。圖(9)按鍵電路6、顯示電路1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都能夠顯示一個字符。顯示電路采用LCD1602液晶顯示,如圖(10)所示,圖中只畫出了其相應的接口,3腳用于調(diào)節(jié)LCD1602的背光,4、5、6為LCD1602的控制口,用于控制其寫入或是讀出指令,7至14腳為LCD1602的數(shù)據(jù)口,將數(shù)傳送到LCD1602中。圖(10)LCD1602顯示電路LCD1602的特性+5V電壓,對比度可調(diào);內(nèi)含復位電路;提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM;內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM;基本操作時序:讀狀態(tài):輸入:RS=L,RW=H,E=H;輸出:DB0~DB7=狀態(tài)字;寫指令:輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼;輸出:無。讀數(shù)據(jù):輸入:RS=H,RW=H,E=H;輸出:DB0~DB7=數(shù)據(jù);寫數(shù)據(jù):輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù);輸出:無。LCD1602的各種指令不再一一說明。流程圖與軟件設計:1、程序流程圖主程序首先初始化定時器、LCD1602及DS1302,然后就開始查詢按鍵,有鍵按下則開始調(diào)整時間和日期,若沒有按下,則執(zhí)行下面的時間、日期的顯示,最后依次循環(huán)這些相同的操作,相應流程圖如圖(11)所示:圖(12)程序流程圖按鍵的檢測是經(jīng)過中斷的辦法來實現(xiàn),利用按鍵進行間調(diào)整。K1按下則開始設置時間及日期,同時在第一行最右端顯示被選擇的對象,第一次按下K1時,設置年份,若按下K3,則是減1操作,按下K2是加1操作,設置好年后,第二次按下K1時,則是設置月份,按K3減,按K2則加1,依次循環(huán)下去,則能夠?qū)r間和日期設置完畢,K4是確定鍵,設置好按下即可保存設置了。2、軟件設計軟件總設計:主程序首先對系統(tǒng)環(huán)境初始化,設置定時器T0工作模式為16位定時/計數(shù)器模式,置位總中斷允許位EA,并對鍵盤端口置位,再對LCD1602初始化,DS1302初始化。接著掃描鍵盤,在鍵盤程序里面是對時間、日期及鬧鐘的調(diào)整,最下面是時間的顯示。軟件程序編寫:軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。因本程序涉及的模塊較多,因此程序編寫也采用模塊化設計,C語言具有編寫靈活、移植方便、便于模塊化設計的特點,因此本系統(tǒng)的軟件采用C51編寫。具體程序見附件一:程序3、軟件調(diào)試在軟件調(diào)試過程中,當調(diào)節(jié)時間和日期后,單片機上電后更新的是PC的時間,后來查找資料發(fā)現(xiàn),是設置ds1302的問題,對于開發(fā)板上的液晶一般RW都接的地,故不需要讀液晶狀態(tài),也不需要讀忙,但在仿真中還是加上了這一部分。還有一個問題,在按鍵操作時有時會出現(xiàn)功能不穩(wěn)定,這是由于按鍵存在抖動,因此后來加個去抖動的延時后在判斷,基本就能夠解決問題,整體電路與仿真結(jié)果分析:電子萬年歷硬件電路圖及仿真如圖(13)所示,系統(tǒng)由AT89C52單片機,按鍵掃描電路、顯示電路、時鐘電路、晶振電路、復位電路及電源指示電路。仿真正確顯示了時間,在LCD1602中正確顯示了當前日期、時間,經(jīng)過按按鍵K1,就能夠開始設置時間,依次按K1依次在年、月、日、時、分之間切換,,按K2鍵用于加1操作,K3鍵用于減1操作,K4是確定按鈕。仿真正確顯示了時間和日期,符合設計的要求。圖(13)電子萬年歷硬件電路圖結(jié)論與心得:在這學期的課程序設計中,收獲知識的同時,還收獲了閱歷,收獲了成熟,經(jīng)過查找大量資料,請教老師,以及不懈的努力,不但培養(yǎng)了獨立思考、動手制作的能力,在各種其它能力上也都有了提高。更重要的是,在課程序設計里,我們學會了很多學習的方法,知道了理論和實踐的巨大差別。而這是以后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。同時在與老師和同學的交流過程中,互動學習,將知識融會貫通。經(jīng)過自己的努力,做出了一個萬年歷,對以后的學習是一個莫大的鼓舞,激起了我的學習興趣和開發(fā)創(chuàng)新思維。參考文獻圖書類:[1]張毅坤陳善久,單片微型計算機原理及應用西安電子科技大學出版社[2]張毅剛,,彭喜元,單片機原理與應用設計電子工業(yè)出版社[3]趙建領(lǐng)薛園園,零基礎(chǔ)學單片機C語言程序設計機械工業(yè)出版社[4]周向紅51單片機課程設計華中科技大學出版社,[5]郭天祥51單片機C語言教程-入門,提高,開發(fā),拓展全攻略,電子工業(yè)出版社[6]趙亮侯國銳.單片機C語言編程與實例人民郵電出版社附實驗源程序:#include<reg51.h>#include<intrins.h>#include<string.h>#defineuintunsignedint#defineucharunsignedcharsbitIO=P1^0; //DS1302數(shù)據(jù)線sbitSCLK=P1^1; //DS130時鐘線sbitRST=P1^2; //DS1302復位線sbitRS=P2^0; //LCD數(shù)據(jù)/命令選擇端sbitRW=P2^1; //LCD讀/寫控制sbitEN=P2^2; //LCD使能端sbitK1=P3^4; //選擇sbitK2=P3^5; //加sbitK3=P3^6; //減sbitK4=P3^7; //確定uchartCount=0;ucharMonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31};uchar*WEEK[]={"SUN","MON","TUS","WEN","THU","FRI","SAT"};ucharLCD_DSY_BUFFER1[]={"DATE00-00-00"};//顯示格式ucharLCD_DSY_BUFFER2[]={"TIME00:00:00"};ucharDateTime[7]; //所讀取的日期時間charAdjust_Index=-1;//當前調(diào)節(jié)的時間對象:,,分,是,日,月,年(1,2,3,4,6)ucharChange_Flag[]="-MHDM-Y"; //(分,時,日,月,年)(不調(diào)節(jié)秒與周)/*延時程序*/voidDelayMS(uintms){ uchari; while(ms--){for(i=0;i<120;i++);}}//向DS1302寫入一字節(jié)//voidWrite_A_Byte_TO_DS1302(ucharx){ uchari; for(i=0;i<8;i++){ IO=x&0x01; //每一位與1與存入IO中 SCLK=1;SCLK=0; //一個高脈沖將數(shù)據(jù)送入液晶控制器 x>>=1; //右移 }}//從DS1302讀取一字節(jié)//ucharGet_A_Byte_FROM_DS1302(){ uchari,b=0x00; for(i=0;i<8;i++){ b|=_crol_((uchar)IO,i); SCLK=1;SCLK=0; //每一個高脈沖讀取一位數(shù)據(jù) } returnb/16*10+b%16;//返回BCD碼}//從DS1302指定位置讀數(shù)據(jù)//ucharRead_Data(ucharaddr){ uchardat; RST=0;SCLK=0;RST=1; //RST高電平時讀/寫 Write_A_Byte_TO_DS1302(addr); //先寫入地址 dat=Get_A_Byte_FROM_DS1302(); SCLK=1;RST=0; returndat;}//向DS1302某地址寫入數(shù)據(jù)//voidWrite_DS1302(ucharaddr,uchardat){ SCLK=0;RST=1; Write_A_Byte_TO_DS1302(addr); Write_A_Byte_TO_DS1302(dat); SCLK=0;RST=0; //高脈沖寫入數(shù)據(jù)}//設置時間//voidSET_DS1302(){ uchari; //寫控制字,取消寫保護 Write_DS1302(0x8E,0x00); //分時日月年依次寫入 for(i=1;i<7;i++) {//分的起始地址10000010(0x82),后面依次是時,日,月,周,年,寫入地址每次遞增2 Write_DS1302(0x80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10)); } Write_DS1302(0x8E,0x80);//加保護}//讀取當前日期時間//voidGetTime(){uchari; for(i=0;i<7;i++){ DateTime[i]=Read_Data(0X81+2*i);}}//讀LCD狀態(tài)//ucharRead_LCD_State(){ ucharstate; RS=0;RW=1;EN=1; //輸出:D0~D7=狀態(tài)字 DelayMS(1); state=P0; //從P0口讀LCD狀態(tài) EN=0;DelayMS(1); returnstate;}//忙等待//voidLCD_Busy_Wait(){ while((Read_LCD_State()&0x80)==0x80); DelayMS(5);} //向LCD寫數(shù)據(jù)//voidWrite_LCD_Data(uchardat){ LCD_Busy_Wait(); RS=1;EN=0;RW=0; //寫數(shù)據(jù),EN為高脈沖, P0=dat;EN=1;DelayMS(1);EN=0; }//寫LCD指令//voidWrite_LCD_Command(ucharcmd){ LCD_Busy_Wait(); RS=0;EN=0; RW=0;//寫指令,EN高脈沖,輸出:D0~D7=數(shù)據(jù) P0=cmd;EN=1;DelayMS(1);EN=0; }//LCD初始化//voidInit_LCD(){ Write_LCD_Command(0x38);//設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口 DelayMS(1); Write_LCD_Command(0x01);//顯示清零,數(shù)據(jù)指針清零 DelayMS(1); Write_LCD_Command(0x06);//寫一個字符后地址指針自動加1 DelayMS(1); Write_LCD_Command(0x0c);//設置開顯示,不顯示光標 DelayMS(1); }////設置液晶顯示位置//voidSet_LCD_POS(ucharp){ Write_LCD_Command(p|0x80);//相當于在0x80基礎(chǔ)上加入位置量 }//在LCD上顯示字符串//voidDisplay_LCD_String(ucharp,uchar*s){ uchari; Set_LCD_POS(p); for(i=0;i<16;i++) { Write_LCD_Data(s[i]);//在固定位置顯示時間日期 DelayMS(1); }}//日期與時間值轉(zhuǎn)換為數(shù)字字符//voidFormat_DateTime(uchard,uchar*a){ a[0]=d/10+'0'; a[1]=d%10+'0';}//判斷是否為閏年ucharisLeapYear(uinty){ return(y%4==0&&y%100!=0)||(y%400==0);}//求自.1.1開始的任何一天是星期幾//函數(shù)沒有經(jīng)過,求出總天數(shù)后再求星期幾//因為求總天數(shù)可能會超出uint的范圍voidRefreshWeekDay(){ uinti,d,w=5; //已知1999.12.31是周五 for(i=;i<+DateTime[6];i++) { d=isLeapYear(i)?366:365; w=(w+d)%7; } d=0; for(i=1;i<DateTime[4];i++) { d+=MonthsDays[i]; } d+=DateTime[3]; //保存星期,0~6表示星期日,星期一,二,...,六,為了與DS1302的星期格式匹配,返回值需要加1 DateTime[5]=(w+d)%7+1;}//*****年月日時分++/--********//voidDateTime_Adjust(charx){ switch(Adjust_Index) { case6: //年00-99 if(x==1&&DateTime[6]<99)DateTime[6]++; if(x==-1&&DateTime[6]>0)DateTime[6]--; //獲取2月天數(shù) MonthsDays[2]=isLeapYear(+DateTime[6])?29:28; //如果年份變化后當前月份的天數(shù)大于上限則設為上限 if(DateTime[3]>MonthsDays[DateTime[4]]) { DateTime[3]=MonthsDays[DateTime[4]];} RefreshWeekDay();//刷新星期 break; case4: //月01-12 if(x==1&&DateTime[4]<12)DateTime[4]++; if(x==-1&&DateTime[4]>1)DateTime[4]--; MonthsDays[2]=isLeapYear(+DateTime[6])?29:28; if(DateTime[3]>MonthsDays[DateTime[4]]) { DateTime[3]=MonthsDays[DateTime[4]];} RefreshWeekDay(); break; case3: //日00-28、29、30、31,調(diào)節(jié)之前首先根據(jù)年份得出該年中斷二月天數(shù) MonthsDays[2]=isLeapYear(+DateTime[6])?29:28; //根據(jù)當前月份決定調(diào)節(jié)日期的上限 if(x==1&&DateTime[3]<MonthsDays[DateTime[4]])DateTime[3]++; if(x==-1&&DateTime[3]>0)DateTime[3]--; RefreshWeekDay(); break; case2: //時 if(x==1&&DateTime[2]<23)DateTime[2]++; if(x==-1&&DateTime[2]>0)DateTime[2]--; break; case1: //分 if(x==1&&DateTime[1]<59)DateTime[1]++; if(x==-1&&DateTime[1]>0)DateTime[1]--; break; }}//定時器0每秒刷新LCD顯示//voidT0_INT()interrupt1{ TH0=-50000/256; TL0=-50000%256; if(++tCount!=2) return; tCount=0; //按指定格式生成待顯示的日期時間串 Format_DateTime(DateTime[6],LCD_DSY_BUFFER1+5); Format_DateTime(DateTime[4],LCD_DSY_BUFFER1+8); Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+11); //星期 strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTime[5]-1]); //時分秒 Format_DateTime(DateTime[2],LCD_DSY_BUFFER2+5); Format_DateTime(DateTime[1],LCD_DSY_BUFFER2+8); Format_DateTime(DateTime[0],LCD_DSY_BUFFER2+11); //顯示年月日,星期

溫馨提示

  • 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

提交評論