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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機課程設計課題:電子萬年歷設計系 別: 電氣與電子工程系專 業(yè): 電子信息工程姓 名: 學 號: 河南城建學院2011年 12 月 28 日成績評定一、指導教師評語(根據學生設計報告質量、答辯情況及其平時表現(xiàn)綜合評定)。二、評分評分項目設計報告評分答辯評分平時表現(xiàn)評分合 計 (100分)任務完成情 況(20分)課程設計報告質量(40分)表達情況(10分)回答問題情 況(10分)工作態(tài)度與紀律(10分)獨立工作能力(10分)得分課程設計成績評定班級 姓名 學號成績: 分(折合等級 )指導教師簽字 年 月 日目 錄摘要abstract.1緒論(課題背景、概述、目的).12 設計要求與方案論述.

2、32.1設計要求.32.2創(chuàng)新要求 .32.3系統(tǒng)的方案選擇.32.4 電路設計最終方案 .53 系統(tǒng)的硬件設計與實現(xiàn).63.1電路設計框圖.63.2 硬件設計原理概述.63.3 主要模塊的設計.64系統(tǒng)的軟件設計與實現(xiàn).104.1程序流程框圖.104.2程序的設計.105總結 .14參考文獻 .15附錄1硬件電路全圖16附錄2程序17摘 要本設計基于at89s51單片機,結合ds1302時鐘芯片設計了一個數字萬年歷,顯示部分用數碼管動態(tài)顯示,初始時間可由按鍵設置,此外還具有溫度顯示功能,掉電保護功能。萬年歷還具有節(jié)能模式,具有很強的實用性。關鍵詞:單片機 萬年歷 數碼管顯示 溫度abstra

3、ctthis paper is designed based on the at89s52 scm, combining ds1302 clock chip. display section is using digital tube dynamic display ; initial time can be set by the button ; in addition , it has the temperature display function and the power-off protected function. besides, it has energy saving mo

4、de;this calendar has strong digital tube display practicability.keywords:scm;calendar; digital tube display; temperature display1緒論1.1設計背景電子萬年歷是實現(xiàn)對年,月,日,時,分,秒數字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭,辦公室,銀行大廳等場所,成為人們日常生活中的必需品。數字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數字鐘的精度遠遠超過老式鐘表。鐘表的數字化給人們生產生活帶來了極大的方便,在此基礎上完成的萬年歷精度高,功能易于擴展??蓴U展成為諸

5、如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等電路。所有這些,都是以鐘表數字化為基礎的。因此,研究數字時鐘及擴大其應用有著非常現(xiàn)實的意義。本設計就是數字時鐘簡單的擴展應用。萬年歷的設計過程在硬件與軟件方面進行同步設計。1.2硬件部分硬件部分主要由at89s52單片機,led顯示電路,以及調時按鍵電路等組成。在單片機的選擇上使用at89s52單片機,該單片機適合于許多較為復雜控制應用場合。采用4-16譯碼器作為選擇端,控制共陰數碼管動態(tài)顯示,結合時鐘芯片ds1302和溫度傳感器18b20顯示時間和溫度。制作前在pr

6、oteus軟件中嵌入單片機內進行仿真可以更好的進行硬件布局。1.3軟件部分軟件方面主要包括日歷程序、時間調整程序,顯示程序等。程序采用c語言編寫,以便更簡單地實現(xiàn)調整時間及陰歷顯示功能。所有程序編寫完成后,在keil軟件中進行調試,確定沒有問題后,在proteus軟件中嵌入單片機內進行仿真。2設計要求與方案論證2.1設計要求:2.1.1具有年、月、日、星期、時、分、秒等功能;2.1.2萬年歷具有閏月識別顯示功能;2.1.3具備年、月、日、星期、時、分、秒校準功能;2.2 創(chuàng)新要求2.2.1萬年歷具有陰歷顯示功能;2.2.2 具有測量室內溫度功能;2.3 系統(tǒng)基本方案選擇和論證2.3.1單片機芯

7、片的選擇方案和論證:方案一: 采用89c51芯片作為硬件核心,采用flash rom,內部具有4kb rom 存儲空間,能于3v的超低壓工作,而且與mcs-51系列單片機完全兼容,但是運用于電路設計中時由于不具備isp在線編程技術, 當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。方案二: 采用at89s52,片內rom全都采用flash rom;能以3v的超底壓工作;同時也與mcs-51系列單片機完全該芯片內部存儲器為8kb rom 存儲空間,同樣具有89c51的功能,且具有在線編程可擦除技術,當在對電路進行調試時,由于程序的

8、錯誤修改或對程序的新增功能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。所以選擇采用at89s52作為主控制系統(tǒng).2.3.2 顯示模塊選擇方案和論證:方案一: 采用led液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用led液晶顯示屏.方案二: 采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示.方案三:采用led數碼管動態(tài)掃描,led數碼管價格適中,對于顯示數字最合適,而且采用動態(tài)掃描法與單片

9、機連接時,占用的單片機口線少。所以采用了led數碼管作為顯示。2.3.3時鐘芯片的選擇方案和論證:方案一: 直接采用單片機定時計數器提供秒信號,使用程序實現(xiàn)年、月、日、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。方案二: 采用ds1302時鐘芯片實現(xiàn)時鐘,ds1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償的年進行計數,而且精度高,位的ram做為數據暫存區(qū),工作電壓2.5v5.5v范圍內,2.5v時耗電小于300na.2.4 電路設計最終方案綜上各方案所述,對此次作品的方案選定: 采用at89s5

10、2作為主控制系統(tǒng); ds1302提供時鐘;數字式溫度傳感器;led數碼管動態(tài)掃描作為顯示。3.系統(tǒng)的硬件設計與實現(xiàn)3.1 電路設計框圖圖2.1 電路設計框圖3.2 系統(tǒng)硬件概述本電路是由at89s52單片機為控制核心,具有在線編程功能,低功耗,能在3v超低壓工作;時鐘電路由ds1302提供,它是一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數據。溫度的采集由ds18b20構成;顯示部份由17個數碼管,74ls154譯碼器構

11、成。使用動態(tài)掃描顯示方式對數字的顯示。3.3 主要模塊的設計3.3.1單片機主控制模塊的設計 at89s52單片機為40引腳雙列直插芯片,有四個i/o口p0,p1,p2,p3, mcs-51單片機共有4個8位的i/o口(p0、p1、p2、p3),每一條i/o線都能獨立地作輸出或輸入。單片機的最小系統(tǒng)如下圖所示,18引腳和19引腳接時鐘電路,xtal1接外部晶振和微調電容的一端,在片內它是振蕩器倒相放大器的輸入,xtal2接外部晶振和微調電容的另一端,在片內它是振蕩器倒相放大器的輸出.第9引腳為復位輸入端,接上電容,電阻及開關后夠上電復位電路,20引腳為接地端,40引腳為電源端. 如圖3.3.1

12、 所示圖3.3.1 主控制系統(tǒng)3.3.2時鐘電路模塊的設計圖3.3.2示出ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當vcc2大于vcc1+0.2v時,vcc2給ds1302供電。當vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.khz晶振。rst是復位/片選線,通過把rst輸入驅動置高電平來啟動所有的數據傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數據的傳送手段

13、。當rst為高電平時,所有的數據傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rsts置為低電平,則會終止此次數據傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電動行時,在vcc大于等于2.5v之前,rst必須保持低電平。中有在sclk 為低電平時,才能將rst置為高電平,i/o為串行數據輸入端(雙向)。sclk始終是輸入端。圖3.3.2 ds1302的引腳圖3.3.3溫度傳感器模塊圖3.3.318b20的引腳圖3.3.4顯示模塊的設計如圖3.3.4所示,采用動態(tài)掃描顯示,由17個數碼管,4-16譯碼器74ls154接1k限流電阻接到共陰數碼管的com端作為選通位碼,每位選擇相應的列,p0口輸出數

14、據再接9013三極管送達數碼管。圖3.3.4顯示模塊4.系統(tǒng)的軟件設計4.1程序流程框圖圖4.1程序流程框圖4.2 子程序的設計4.2.1 讀、寫ds1302子程序unsigned char ds1302outputbyte(void) /實時時鐘讀取一字節(jié)(內部函數)void ds1302inputbyte(unsigned char d) /實時時鐘寫入一字節(jié)(內部函數)unsigned char read1302(unsigned char ucaddr)/讀取ds1302某地址的數據void write1302(unsigned char ucaddr, unsigned char u

15、cda)/ucaddr: ds1302地址, ucdata: 要寫的數據void write1302(unsigned char ucaddr, unsigned char ucda)write1302(0x8e,0x00) ;/允許寫入write1302(0x8c,num) ;/寫入yearwrite1302(0x8e,0x80) ;/禁止寫操作4.2.2 讀18b20子程序/讀取溫度unsigned char readtemperature(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;init_ds18b20();w

16、riteonechar(0xcc); / 跳過讀序號列號的操作writeonechar(0x44); / 啟動溫度轉換delay_18b20(200);init_ds18b20();writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0xbe); /讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度a=readonechar();b=readonechar();b4;t=b;return(t);4.2.3 顯示模塊子程序void display()/年 p2=0xf0; p0=seg2; delay(1);4.2.4按鍵子程序圖4.2.4按鍵子程序流程圖

17、5 總結在整個設計過程中,發(fā)揮團隊精神,分工合作,充分發(fā)揮人的主觀能動性,自主學習,學到了許多沒學到的知識。較好的完成了作品。達到了預期的目的,在最初的設計中,相互學習、相互討論、研究,完了最初的設想。在電路焊接時雖然沒什么大問題,但從中也知道了焊接在整個作品中的重要性,電路工程量大,不能心急,一個個慢慢來不能急于求成。對電路的設計、布局要先有一個好的構思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經過靜下心來思考,和同組員的討論,理清了思路。在此次設計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。致謝:

18、 感謝學院給我們提供了一個展現(xiàn)自己的舞臺,給我們一次難得煅煉的機會,使得我們的動手能力和專業(yè)技能都有了很大的提高。感謝給我?guī)椭睦蠋熀屯瑢W,在你們的幫助下我才能完成這次設計。參考文獻1.張齊,朱寧西 單片機系統(tǒng)設計與開發(fā) 華南理工大學 電子機械出版社.20082.陳正振 電子電路設計與制作 廣西交通職業(yè)技術學院信息工程系.20073.張友德,趙志英,涂時亮 單片微型機 復旦大學復旦大學出版社.2006 4.譚浩強. c程序設計(第三版).北京:清華大學出版社.20055.譚浩強. c程序設計題解與上機指導(第三版).北京:清華大學出版社.20056.徐慧 林銳 c語言實例解析精粹 .武漢:華中

19、理工大學出版社.19967.戴建鵬譯 c語言大全(第三版) .北京:電子工業(yè)大學出版社.19948.楊恢先,黃輝先 單片機原理及應用 人民郵電出版社.2006附錄1硬件電路全圖附錄2程序#include#define uchar unsigned char#define uint unsigned intsbit ds1302_clk = p11; /實時時鐘時鐘線引腳 sbit ds1302_io = p10; /實時時鐘數據線引腳 sbit ds1302_rst = p12; /實時時鐘復位線引腳sbit dq = p14 ; /18b20接口sbit mode=p34;sbit inc=

20、p35;sbit dec=p36;sbit power=p37;sbit week_wei=p15; /星期位選sbit encode=p16; /譯碼器使能sbit acc0 = acc0;/累加器位定義sbit acc7 = acc7;uchar code seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar temp,year,month,date,hour,minute,second,week,position;bit flag;/開關顯示標志/*延時ms*/ void delay(uint z)uint x,y;for

21、(x=z;x0;x-)for(y=112;y0;y-);/* *ds1302驅動程序*/void ds1302inputbyte(unsigned char d) /實時時鐘寫入一字節(jié)(內部函數) unsigned char i; acc = d; for(i=8; i0; i-) ds1302_io = acc0; /相當于匯編中的 rrc ds1302_clk = 1; ds1302_clk = 0; acc = acc 1; unsigned char ds1302outputbyte(void) /實時時鐘讀取一字節(jié)(內部函數) unsigned char i; for(i=8; i0

22、; i-) acc = acc 1; /相當于匯編中的 rrc acc7 = ds1302_io; ds1302_clk = 1; ds1302_clk = 0; return(acc); void write1302(unsigned char ucaddr, unsigned char ucda)/ucaddr: ds1302地址, ucdata: 要寫的數據 ds1302_rst = 0; ds1302_clk = 0; ds1302_rst = 1; ds1302inputbyte(ucaddr); / 地址,命令 ds1302inputbyte(ucda); / 寫1byte數據 d

23、s1302_clk = 1; ds1302_rst = 0; unsigned char read1302(unsigned char ucaddr)/讀取ds1302某地址的數據 unsigned char ucdata; ds1302_rst = 0; ds1302_clk = 0; ds1302_rst = 1; ds1302inputbyte(ucaddr|0x01); / 地址,命令 ucdata = ds1302outputbyte(); / 讀1byte數據 ds1302_clk = 1; ds1302_rst = 0; return(ucdata); void ds1302_i

24、nit()if(read1302(0xc1) != 0xf0) write1302(0x8e,0x00) ;/允許寫操作write1302(0xc0,0xf0) ; /寫入初始化標志,系統(tǒng)上電后檢測此標志,即此子函數只會在第一次初始化一次。/*時間初始值*/write1302(0x8c,0x10) ;/年write1302(0x88,0x04) ;/月write1302(0x86,0x06) ;/日write1302(0x84,0x22) ;/時write1302(0x82,0x59) ;/分write1302(0x80,0x55) ;/秒write1302(0x90,0xa4) ;/充電wr

25、ite1302(0x8e,0x80) ;/禁止寫操作 /* *ds18b20驅動程序*/*/void delay_18b20(unsigned int i)/延時函數 while(i-);/*/18b20初始化函數void init_ds18b20(void) unsigned char x=0; dq = 1; /dq復位 delay_18b20(8); /稍做延時 dq = 0; /單片機將dq拉低 delay_18b20(80); /精確延時 大于 480us dq = 1; /拉高總線 delay_18b20(10); x=dq; /稍做延時后 如果x=0則初始化成功 x=1則初始化失

26、敗 delay_18b20(5);/讀一個字節(jié)unsigned char readonechar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) dq = 0; / 給脈沖信號 dat=1; dq = 1; / 給脈沖信號 if(dq) dat|=0x80; delay_18b20(5); return(dat);/寫一個字節(jié)void writeonechar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) dq = 0; dq = dat&0x01; de

27、lay_18b20(5); dq = 1; dat=1; delay_18b20(5);/讀取溫度unsigned char readtemperature(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;init_ds18b20();writeonechar(0xcc); / 跳過讀序號列號的操作writeonechar(0x44); / 啟動溫度轉換delay_18b20(200);init_ds18b20();writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0xbe); /讀取

28、溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度a=readonechar();b=readonechar();b4;t=b;return(t);/*/void display()/年 p2=0xf0; p0=seg2; delay(1); p2=0xf1; p0=seg0; delay(1); p2=0xf2; p0=segyear/16; delay(1); p2=0xf3; p0=segyear%16; delay(1);/month p2=0xf4; p0=segmonth/16; delay(1); p2=0xf5; p0=segmonth%16; delay(1); /date p

29、2=0xf6; p0=segdate/16; delay(1); p2=0xf7; p0=segdate%16; delay(1); /hour p2=0xf8; p0=seghour/16; delay(1); p2=0xf9; p0=seghour%16; delay(1); /minute p2=0xfa; p0=segminute/16; delay(1); p2=0xfb; p0=segminute%16; delay(1); /second p2=0xfc; p0=segsecond/16; delay(1); p2=0xfd; p0=segsecond%16; delay(1);

30、 /temp p2=0xfe; p0=segtemp/10; delay(1); p2=0xff; p0=segtemp%10; delay(1); /week encode=1; week_wei=0; p0=segweek; delay(1); encode=0; week_wei=1; p0=0;void set() if(mode=0) delay(5); if(mode=0) position+; if(position=7) position=0; while(!mode); /再次確認是否松開,松開就跳出while語句 / if(position=1) /year int num

31、; if(inc=0) delay(5); if(inc=0) num=read1302(0x8d); num=(num/16)*10+num%16; num+; if(num=99) num=0; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x8c,num) ;/寫入year write1302(0x8e,0x80) ;/禁止寫操作 while(!inc); /再次確認是否松開,松開就跳出while語句 / else if(dec=0) delay(5); if(dec=0) num=read1302(0x8d

32、); num=(num/16)*10+num%16; num-; if(num=-1) num=99; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x8c,num) ;/寫入year write1302(0x8e,0x80) ;/禁止寫操作 while(!dec); /再次確認是否松開,松開就跳出while語句 /year=read1302(0x8d); /年 p2=0xf0;p0=seg2;delay(4);p2=0xf1;p0=seg0;delay(4);p2=0xf2;p0=segyear/16;delay

33、(4);p2=0xf3;p0=segyear%16;delay(4); / /*/else if(position=2) /month int num; if(inc=0) delay(5); if(inc=0) num=read1302(0x89); num=(num/16)*10+num%16; num+; if(num=13) num=1; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x88,num) ;/寫入month write1302(0x8e,0x80) ;/禁止寫操作 while(!inc); /

34、再次確認是否松開,松開就跳出while語句 / else if(dec=0) delay(5); if(dec=0) num=read1302(0x89); num=(num/16)*10+num%16; num-; if(num=0) num=12; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x88,num) ;/寫入month write1302(0x8e,0x80) ;/禁止寫操作 while(!dec); /再次確認是否松開,松開就跳出while語句 /month=read1302(0x89); /mo

35、nth p2=0xf4; p0=segmonth/16; delay(8); p2=0xf5; p0=segmonth%16; delay(8); / /*/else if(position=3) /date int num; if(inc=0) delay(5); if(inc=0) num=read1302(0x87); num=(num/16)*10+num%16; num+; if(num=32) num=1; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x86,num) ;/寫入date write13

36、02(0x8e,0x80) ;/禁止寫操作 while(!inc); /再次確認是否松開,松開就跳出while語句 / else if(dec=0) delay(5); if(dec=0) num=read1302(0x87); num=(num/16)*10+num%16; num-; if(num=0) num=31; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x86,num) ;/寫入date write1302(0x8e,0x80) ;/禁止寫操作 while(!dec); /再次確認是否松開,松開就跳

37、出while語句 /date=read1302(0x87); /date p2=0xf6; p0=segdate/16; delay(8); p2=0xf7; p0=segdate%16; delay(8); / /*/else if(position=4) /hour int num; if(inc=0) delay(5); if(inc=0) num=read1302(0x85); num=(num/16)*10+num%16; num+; if(num=24) num=0; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write

38、1302(0x84,num) ;/寫入hour write1302(0x8e,0x80) ;/禁止寫操作 while(!inc); /再次確認是否松開,松開就跳出while語句 / else if(dec=0) delay(5); if(dec=0) num=read1302(0x85); num=(num/16)*10+num%16; num-; if(num=-1) num=23; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x84,num) ;/寫入hour write1302(0x8e,0x80) ;/禁

39、止寫操作 while(!dec); /再次確認是否松開,松開就跳出while語句 /hour=read1302(0x85); p2=0xf8; p0=seghour/16; delay(8); p2=0xf9; p0=seghour%16; delay(8); / /*/else if(position=5) /minute int num; if(inc=0) delay(5); if(inc=0) num=read1302(0x83); num=(num/16)*10+num%16; num+; if(num=60) num=0; num=(num/10)*16+num%10; write1302(0x8e,0x00) ;/允許寫入 write1302(0x82,num) ;/寫入minute write1302(0x8e,0x80) ;/禁止寫操作 while(!inc);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論