電子鐘溫度計(jì)課程設(shè)計(jì)--電子鐘溫度計(jì)的設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課 題 :電子鐘溫度計(jì)的設(shè)計(jì) </p><p><b>  摘要:</b></p><p>  該設(shè)計(jì)實(shí)現(xiàn)了24小時(shí)制的時(shí)間顯示及設(shè)定、年、月、日、星期的顯示及設(shè)定、溫度的檢測(cè)及顯示等功能。設(shè)計(jì)共分為四大部分,分別是控制部分、時(shí)鐘部分、溫度檢測(cè)部分和人機(jī)交互部分。</p><p>  本設(shè)計(jì)采用的

2、是STC89C51RC單片機(jī),內(nèi)部帶有8KB的ROM,能夠存儲(chǔ)大量的程序,最突出特點(diǎn)是具有ISP在系統(tǒng)燒寫(xiě)功能,使得燒寫(xiě)程序更加方便。</p><p>  計(jì)時(shí)采用DS1302時(shí)鐘芯片實(shí)現(xiàn),該芯片通過(guò)簡(jiǎn)單的串行通信與單片機(jī)進(jìn)行通信,時(shí)鐘/日歷電路能夠?qū)崟r(shí)提供年、月、星期、日、時(shí)分、秒信息,采用雙電源供電,當(dāng)外部電源掉電時(shí)能夠利用后備電池準(zhǔn)確計(jì)時(shí)。</p><p>  溫度檢測(cè)采用DALLA

3、S公司的數(shù)字化溫度傳感器DS18B20,該芯片采用的是獨(dú)特的“一線總線”的方式與單片機(jī)進(jìn)行通信,一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),是用戶(hù)可以輕松的組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新的概念。實(shí)時(shí)溫度采用一線總線的方式傳輸大大的提高了信號(hào)的抗干擾性,分辨率可通過(guò)軟件設(shè)置,其小巧的體積為各種環(huán)境下測(cè)量溫度提供了方便。</p><p>  顯示器件采用通用型1602液晶,可顯示32個(gè)字符,如果使用數(shù)碼管來(lái)做顯示器件需消耗

4、大量的系統(tǒng)資源,因此采用低功耗的1602液晶,該液晶顯示方便,功能強(qiáng)大,完全能滿(mǎn)足數(shù)字萬(wàn)年歷的顯示要求。</p><p><b>  關(guān)鍵詞:</b></p><p>  單片機(jī)AT89C51 溫度傳感器DS18B20 時(shí)鐘芯DS1302 液晶1602</p><p><b>  目錄</b></p>&l

5、t;p>  第一章 設(shè)計(jì)任務(wù)—————————————————————-4</p><p><b>  第二章 電路設(shè)計(jì)</b></p><p>  2.1設(shè)計(jì)方案比較 ———————————————————4</p><p>  2.1.1 時(shí)鐘電路的設(shè)計(jì)————————————————4</p><p>  2

6、.1.2 溫度電路的設(shè)計(jì)————————————————5 </p><p>  2.2根據(jù)設(shè)計(jì)繪制整體方框圖及硬件圖——————————6</p><p>  2.2.1整體方框圖——————————————————6 </p><p>  2.2.2總體硬件圖——————————————————6</p><p><b>  

7、程序流程圖</b></p><p>  3.1主程序流程圖———————————————————7</p><p>  3.2 鍵盤(pán)服務(wù)程序流程圖————————————————7</p><p>  3.3 溫度采集與顯示程序流程圖————————————--8</p><p>  第四章 模塊設(shè)計(jì)及說(shuō)明</p>

8、<p>  4.1 液晶顯示模塊 </p><p>  4.1.1 DS1602簡(jiǎn)介———————————————-——8</p><p>  4.1.2 DS1602相應(yīng)功能特性介紹—————————-——8</p><p>  4.1.3 DS1602液晶與單片機(jī)接口電路——————————9</p><p><

9、b>  4.2計(jì)數(shù)模塊</b></p><p>  4.2.1 DS1302特性介紹————————————————9</p><p>  4.2.2 DS1302引腳介紹————————————————9</p><p>  4.2.3 DS1302與單片機(jī)接口電路————————————10</p><p>  4

10、.3實(shí)時(shí)環(huán)境溫度采集模塊</p><p>  4.3.1 DS18B2O簡(jiǎn)介—————————————————10</p><p>  4.3.2 單總線介紹——————————————————10</p><p>  4.3.3 DS18B20管腳介紹———————————————10</p><p>  4.3.4 DS18B20時(shí)

11、序介紹————————————————10</p><p>  4.3.5 DS18B20與單片機(jī)的接口電路——-————————-11</p><p>  4.4 設(shè)置模塊——————————————————————11</p><p>  第五章 調(diào)試與驗(yàn)證————————————————————11</p><p><b> 

12、 第一章 設(shè)計(jì)任務(wù)</b></p><p>  (1)能夠?qū)崿F(xiàn)時(shí)間的正確顯示,并且可以對(duì)表進(jìn)行調(diào)整。</p><p>  (2)能夠?qū)崿F(xiàn)年月日及星期的顯示,并且可以對(duì)日期進(jìn)行調(diào)整。</p><p> ?。?)能夠?qū)崿F(xiàn)對(duì)溫度的及時(shí)檢測(cè),并且可以正確顯示。</p><p>  (4)用protues實(shí)現(xiàn)對(duì)設(shè)計(jì)的仿真。</p&g

13、t;<p><b>  第二章 電路設(shè)計(jì)</b></p><p>  2.1電路方案的比較</p><p>  2.1.1時(shí)鐘電路的設(shè)計(jì)</p><p>  方案一:時(shí)鐘電路可由555定時(shí)器組成,通過(guò)555定時(shí)器構(gòu)成1Hz脈沖發(fā)生電路(如圖2-1),然后將脈沖機(jī)輸入單片機(jī),經(jīng)單片機(jī)計(jì)算生成時(shí)鐘。脈沖信號(hào)從555的3號(hào)引腳輸出,通

14、過(guò)電阻和電容可以得到不同頻率的脈沖。其計(jì)算方法為tpl=R2C2ln2;tph=(R1+R2)C2ln2。</p><p>  圖2-1 555秒脈沖發(fā)生電路</p><p>  方案二:用單片機(jī)控制專(zhuān)用時(shí)鐘芯片DS1302(如圖2-2),通過(guò)對(duì)時(shí)鐘芯片的初始化設(shè)置、寫(xiě)數(shù)據(jù)、讀數(shù)據(jù)等操作,實(shí)現(xiàn)對(duì)時(shí)鐘信息的獲取。</p><p>  圖2-3 DS1302與單片機(jī)連接

15、圖</p><p>  比較:兩個(gè)方案雖然都能實(shí)現(xiàn)時(shí)鐘的功能,但是方案一由于電阻電容 及其自身的精度影響,其生成的秒脈沖精度相對(duì)差一些,且將秒脈沖信號(hào)換算成時(shí)鐘的編程也相對(duì)復(fù)雜,而方案二能夠較好地彌補(bǔ)方案一的不足。所以本設(shè)計(jì)中的時(shí)鐘電路采用方案二的設(shè)計(jì)。</p><p>  2.1.2溫度檢測(cè)電路的設(shè)計(jì)</p><p>  方案一:利用熱敏電阻對(duì)溫度特殊的溫度效

16、應(yīng),可以通過(guò)一個(gè)比較簡(jiǎn)單的電路將溫度信號(hào)轉(zhuǎn)換成相應(yīng)的電壓信號(hào),為了使電壓信號(hào)更便于精確測(cè)量,可以利用運(yùn)放將電壓信號(hào)放大,再經(jīng)模數(shù)轉(zhuǎn)換將電壓信號(hào)送入單片機(jī),最后通過(guò)單片機(jī)的計(jì)算得出溫度值,送入數(shù)碼管顯示。</p><p>  方案二:利用單片機(jī)對(duì)溫度傳感器DS18B20的控制,獲取溫度傳感器所采集的溫度信號(hào)(如圖2-3)。</p><p>  圖2-3 DS18B20與單片機(jī)連接圖</

17、p><p>  比較:方案一原理容易理解,但實(shí)際操作很有難度。不僅自己設(shè)計(jì)電路精度不能保證,而且外圍電路復(fù)雜,成本也較高。而由圖2-3可以直觀看出方案二簡(jiǎn)單方便,且精度較高,所以本設(shè)計(jì)中的溫度檢測(cè)電路采用方案二。</p><p>  2.2根據(jù)設(shè)計(jì)繪制整體方框圖及硬件圖</p><p>  2.2.1整體方框圖</p><p>  2.2.2總體

18、硬件圖</p><p><b>  第三章 程序流程圖</b></p><p><b>  3.1主程序流程圖</b></p><p>  3.2 鍵盤(pán)服務(wù)程序流程圖</p><p>  3.3 溫度采集與顯示程序流程圖</p><p>  第四章 模塊設(shè)計(jì)及說(shuō)明</

19、p><p>  4.1 液晶顯示模塊</p><p>  4.1.1 DS1602簡(jiǎn)介</p><p>  1602液晶也叫1602字符型液晶 它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊 它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有也有間隔,起到了字符間距和行間距的作用。1602的驅(qū)

20、動(dòng)電路帶有11條指令,可以很方便的控制液晶的現(xiàn)實(shí)效果如:清屏、左移右移、光標(biāo)顯示。而且1602顯示的字符在下一條指令為到來(lái)之前不會(huì)改變,也就是能夠維持顯示的字符,1602液晶占用的系統(tǒng)資源也少。</p><p>  在編程時(shí)必須注意1602的初始化和三個(gè)控制口的編寫(xiě),確保從DS1302和18B20中讀出的數(shù)據(jù)正確輸入。</p><p>  4.1.2 DS1602相應(yīng)功能特性介紹<

21、/p><p>  +5V電壓,對(duì)比度可調(diào)</p><p><b>  內(nèi)含復(fù)位電路</b></p><p>  提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能</p><p>  有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM</p><p>  內(nèi)建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CG

22、ROM</p><p>  8個(gè)可由用戶(hù)自定義的5X7的字符發(fā)生器CGRAM</p><p>  4.1.3 DS1602液晶與單片機(jī)接口電路 </p><p><b>  4.2計(jì)數(shù)模塊</b></p><p>  4.2.1 DS1302特性介紹</p><p>  DS1302是美國(guó)D

23、ALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小與31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。</p><p> 

24、 4.2.2 DS1302引腳介紹</p><p><b>  各引腳的功能為:</b></p><p>  Vcc2:5V電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< </p><p>  Vcc1時(shí),由Vcc1向DS1302供電。 </p><p>  2、3、X

25、1、X2 是外接晶振腳 (32.768KHZ的晶振)</p><p><b>  4、地(GND)</b></p><p>  5、CE/RST:復(fù)位腳</p><p>  6、I/O:數(shù)據(jù)輸入輸出口;</p><p>  7、SCLK:串行時(shí)鐘,輸入;  </p><p>  8、Vc

26、c1:備用電池端;</p><p>  DS1302通過(guò)三根口線實(shí)現(xiàn)與單片機(jī)的通信,因DS1302功耗很小,即使電源掉電后通過(guò)3V的紐扣電池仍能維持DS1302精確走時(shí)。</p><p>  4.2.3 DS1302與單片機(jī)接口電路</p><p>  4.3實(shí)時(shí)環(huán)境溫度采集模塊</p><p>  4.3.1 DS18B2O簡(jiǎn)介<

27、/p><p>  DS18B20是美國(guó)DALLAS公司生產(chǎn)的數(shù)字溫度傳感器,采用單總線的接口方式與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶(hù)可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。測(cè)量溫度范圍寬,測(cè)量精度高 ,在使用中不需要任何外圍元件,支持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)

28、在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫,供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿(mǎn)足一定的要求時(shí),可以不接外部電源,從而使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。因此非常適合本系統(tǒng)使用。</p><p>  4.3.2 單總線介紹</p><p>  單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成。</p><p> 

29、 單總線通常要求外接一個(gè)約為 4.7K—10K 的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。</p><p>  4.3.3 DS18B20管腳介紹</p><p>  1 GND為電源 地;</p><p>  2 DQ為數(shù)字信號(hào)輸入/輸出端</p><p>  3 VDD為外接供電電源輸入端,在寄生電源</p>

30、<p>  4.3.4 DS18B20時(shí)序介紹</p><p>  DS18B20的一線工作協(xié)議流程是:</p><p>  初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。</p><p><b>  其工作時(shí)序包括:</b></p><p><b>  初始化時(shí)序</b><

31、/p><p><b>  寫(xiě)時(shí)序</b></p><p><b>  讀時(shí)序</b></p><p>  4.3.5 DS18B20與單片機(jī)的接口電路 </p><p><b>  4.4 設(shè)置模塊</b></p><p>  采用4個(gè)獨(dú)立按鍵,接口電路如下

32、;</p><p>  第五章 調(diào)試與驗(yàn)證</p><p>  本設(shè)計(jì)采用protues軟件進(jìn)行仿真,經(jīng)過(guò)反復(fù)的調(diào)試最終仿真通過(guò)??梢詫?shí)現(xiàn)預(yù)期的功能。部分功能演示如圖5-1所示</p><p><b>  附錄一:程序</b></p><p>  #include<reg51.h></p>&

33、lt;p>  #include"DS18B20_3.H"</p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  uchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;<

34、/p><p>  //flag用于讀取頭文件中的溫度值,和顯示溫度值</p><p>  #define yh 0x80 //LCD第一行的初始位置,因?yàn)長(zhǎng)CD1602字符地址首位D7恒定為1(100000000=80)</p><p>  #define er 0x80+0x40 //LCD第二行初始位置(因?yàn)榈诙械谝粋€(gè)字符位置地址是0x40)</p>

35、<p>  //液晶屏的與C51之間的引腳連接定義(顯示數(shù)據(jù)線接C51的P0口)</p><p>  sbit rs=P2^5;</p><p>  sbit rw=P2^6; //如果硬件上rw接地,就不用寫(xiě)這句和后面的rw=0了</p><p>  sbit en=P2^7;</p><p>  sbit SCLK = P1^

36、6; /*實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳 */</p><p>  sbit IO = P3^5; /*實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳 */</p><p>  sbit RST = P1^7; /*實(shí)時(shí)時(shí)鐘復(fù)位線引腳 */</p><p>  sbit ACC0=ACC^0;</p><p>  sbit ACC7=ACC^7;</p><p&

37、gt;  //校時(shí)按鍵與C51的引腳連接定義</p><p>  sbit key1=P3^2; //設(shè)置鍵</p><p>  sbit key2=P3^3; //加鍵</p><p>  sbit key3=P3^4; //減鍵</p><p>  uchar code tab1[]={"20 - - "

38、}; //年顯示的固定字符</p><p>  uchar code tab2[]={" : : "};//時(shí)間顯示的固定字符</p><p>  //延時(shí)函數(shù),后面經(jīng)常調(diào)用</p><p>  void delay(uint xms)//延時(shí)函數(shù),有參函數(shù)</p><p><b>  {</b>

39、;</p><p><b>  uint x,y;</b></p><p>  for(x=xms;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  /********液晶寫(xiě)入

40、指令函數(shù)與寫(xiě)入數(shù)據(jù)函數(shù),以后可調(diào)用**************/</p><p>  write_1602com(uchar com)//****液晶寫(xiě)入指令函數(shù)****</p><p><b>  {</b></p><p>  rs=0;//數(shù)據(jù)/指令選擇置為指令</p><p>  rw=0; //讀寫(xiě)選擇置為寫(xiě)&

41、lt;/p><p>  P0=com;//送入數(shù)據(jù)</p><p><b>  delay(1);</b></p><p>  en=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備</p><p><b>  delay(1);</b></p><p>  en=0;//en由高變

42、低,產(chǎn)生下降沿,液晶執(zhí)行命令</p><p><b>  }</b></p><p>  write_1602dat(uchar dat)//***液晶寫(xiě)入數(shù)據(jù)函數(shù)****</p><p><b>  {</b></p><p>  rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)</p><

43、;p>  rw=0; //讀寫(xiě)選擇置為寫(xiě)</p><p>  P0=dat;//送入數(shù)據(jù)</p><p><b>  delay(1);</b></p><p>  en=1; //en置高電平,為制造下降沿做準(zhǔn)備</p><p><b>  delay(1);</b></p>

44、<p>  en=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令</p><p><b>  }</b></p><p>  lcd_init()//***液晶初始化函數(shù)****</p><p><b>  {</b></p><p>  write_1602com(0x38);//設(shè)置

45、液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)</p><p>  write_1602com(0x0c);//開(kāi)顯示不顯示光標(biāo)</p><p>  write_1602com(0x06);//整屏不移動(dòng),光標(biāo)自動(dòng)右移</p><p>  write_1602com(0x01);//清顯示</p><p>  write_1602c

46、om(yh+1);//日歷顯示固定符號(hào)從第一行第1個(gè)位置之后開(kāi)始顯示</p><p>  for(a=0;a<14;a++)</p><p><b>  {</b></p><p>  write_1602dat(tab1[a]);//向液晶屏寫(xiě)日歷顯示的固定符號(hào)部分</p><p>  //delay(3);&l

47、t;/p><p><b>  }</b></p><p>  write_1602com(er+2);//時(shí)間顯示固定符號(hào)寫(xiě)入位置,從第2個(gè)位置后開(kāi)始顯示</p><p>  for(a=0;a<8;a++)</p><p><b>  {</b></p><p>  wr

48、ite_1602dat(tab2[a]);//寫(xiě)顯示時(shí)間固定符號(hào),兩個(gè)冒號(hào)</p><p>  //delay(3);</p><p><b>  }</b></p><p><b>  }</b></p><p>  /***************DS1302有關(guān)子函數(shù)*************

49、*******/</p><p>  void write_byte(uchar dat)//寫(xiě)一個(gè)字節(jié)</p><p><b>  {</b></p><p><b>  ACC=dat;</b></p><p><b>  RST=1;</b></p><

50、;p>  for(a=8;a>0;a--)</p><p><b>  {</b></p><p><b>  IO=ACC0;</b></p><p><b>  SCLK=0;</b></p><p><b>  SCLK=1;</b>&l

51、t;/p><p>  ACC=ACC>>1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  uchar read_byte()//讀一個(gè)字節(jié)</p><p><b>  {</b></p

52、><p><b>  RST=1;</b></p><p>  for(a=8;a>0;a--)</p><p><b>  {</b></p><p><b>  ACC7=IO;</b></p><p><b>  SCLK=1;<

53、/b></p><p><b>  SCLK=0;</b></p><p>  ACC=ACC>>1;</p><p><b>  }</b></p><p>  return (ACC);</p><p><b>  }</b><

54、;/p><p>  void write_1302(uchar add,uchar dat)//向1302芯片寫(xiě)函數(shù),指定寫(xiě)入地址,數(shù)據(jù)</p><p><b>  {</b></p><p><b>  RST=0;</b></p><p><b>  SCLK=0;</b>&l

55、t;/p><p><b>  RST=1;</b></p><p>  write_byte(add);</p><p>  write_byte(dat);</p><p><b>  SCLK=1;</b></p><p><b>  RST=0;</b>

56、;</p><p><b>  }</b></p><p>  uchar read_1302(uchar add)//從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來(lái)源地址</p><p><b>  {</b></p><p>  uchar temp;</p><p><b&

57、gt;  RST=0;</b></p><p><b>  SCLK=0;</b></p><p><b>  RST=1;</b></p><p>  write_byte(add);</p><p>  temp=read_byte();</p><p>&l

58、t;b>  SCLK=1;</b></p><p><b>  RST=0;</b></p><p>  return(temp);</p><p><b>  }</b></p><p>  uchar BCD_Decimal(uchar bcd)//BCD碼轉(zhuǎn)十進(jìn)制函數(shù),輸入B

59、CD,返回十進(jìn)制</p><p><b>  {</b></p><p>  uchar Decimal;</p><p>  Decimal=bcd>>4;</p><p>  return(Decimal=Decimal*10+(bcd&=0x0F));</p><p>&

60、lt;b>  }</b></p><p>  //--------------------------------------</p><p>  void ds1302_init() //1302芯片初始化子函數(shù)(2010-01-07,12:00:00,week4)</p><p><b>  {</b></p>

61、<p><b>  RST=0;</b></p><p><b>  SCLK=0;</b></p><p>  write_1302(0x8e,0x00); //允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  //write_1302(0x80,0x00); //向DS1302內(nèi)寫(xiě)秒寄存器80H寫(xiě)入初始秒數(shù)據(jù)00

62、</p><p>  //write_1302(0x82,0x00);//向DS1302內(nèi)寫(xiě)分寄存器82H寫(xiě)入初始分?jǐn)?shù)據(jù)00</p><p>  //write_1302(0x84,0x12);//向DS1302內(nèi)寫(xiě)小時(shí)寄存器84H寫(xiě)入初始小時(shí)數(shù)據(jù)12</p><p>  //write_1302(0x8a,0x04);//向DS1302內(nèi)寫(xiě)周寄存器8aH寫(xiě)入初始周

63、數(shù)據(jù)4</p><p>  //write_1302(0x86,0x07);//向DS1302內(nèi)寫(xiě)日期寄存器86H寫(xiě)入初始日期數(shù)據(jù)07</p><p>  //write_1302(0x88,0x01);//向DS1302內(nèi)寫(xiě)月份寄存器88H寫(xiě)入初始月份數(shù)據(jù)01</p><p>  //write_1302(0x8c,0x10);//向DS1302內(nèi)寫(xiě)年份寄存器8c

64、H寫(xiě)入初始年份數(shù)據(jù)10</p><p>  write_1302(0x8e,0x80); //打開(kāi)寫(xiě)保護(hù)</p><p><b>  }</b></p><p><b>  //溫度顯示子函數(shù)</b></p><p>  void write_temp(uchar add,uchar dat)//向

65、LCD寫(xiě)溫度數(shù)據(jù),并指定顯示位置</p><p><b>  {</b></p><p>  uchar gw,sw;</p><p>  gw=dat%10;//取得個(gè)位數(shù)字</p><p>  sw=dat/10;//取得十位數(shù)字</p><p>  write_1602com(er+add)

66、;//er是頭文件規(guī)定的值0x80+0x40</p><p>  write_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p>  write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p>  write_1602dat(0xdf);//顯示溫度的小圓圈符號(hào),0xdf

67、是液晶屏字符庫(kù)的該符號(hào)地址碼</p><p>  write_1602dat(0x43);//顯示"C"符號(hào),0x43是液晶屏字符庫(kù)里大寫(xiě)C的地址碼</p><p><b>  }</b></p><p>  //時(shí)分秒顯示子函數(shù)</p><p>  void write_sfm(uchar a

68、dd,uchar dat)//向LCD寫(xiě)時(shí)分秒,有顯示位置加、現(xiàn)示數(shù)據(jù),兩個(gè)參數(shù)</p><p><b>  {</b></p><p>  uchar gw,sw;</p><p>  gw=dat%10;//取得個(gè)位數(shù)字</p><p>  sw=dat/10;//取得十位數(shù)字</p><p>

69、;  write_1602com(er+add);//er是頭文件規(guī)定的值0x80+0x40</p><p>  write_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p>  write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p><b>  }<

70、;/b></p><p>  //年月日顯示子函數(shù)</p><p>  void write_nyr(uchar add,uchar dat)//向LCD寫(xiě)年月日,有顯示位置加數(shù)、顯示數(shù)據(jù),兩個(gè)參數(shù)</p><p><b>  {</b></p><p>  uchar gw,sw;</p><

71、p>  gw=dat%10;//取得個(gè)位數(shù)字</p><p>  sw=dat/10;//取得十位數(shù)字</p><p>  write_1602com(yh+add);//設(shè)定顯示位置為第一個(gè)位置+add</p><p>  write_1602dat(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p> 

72、 write_1602dat(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼</p><p><b>  }</b></p><p>  void write_week(uchar week)//寫(xiě)星期函數(shù)</p><p><b>  {</b></p><p>  write_

73、1602com(yh+0x0c);//星期字符的顯示位置</p><p>  switch(week)</p><p><b>  {</b></p><p>  case 1:write_1602dat('M');//星期數(shù)為1時(shí),顯示</p><p>  write_1602dat('O

74、9;);</p><p>  write_1602dat('N');</p><p><b>  break;</b></p><p>  case 2:write_1602dat('T');//星期數(shù)據(jù)為2時(shí)顯示</p><p>  write_1602dat('U');

75、</p><p>  write_1602dat('E');</p><p><b>  break;</b></p><p>  case 3:write_1602dat('W');//星期數(shù)據(jù)為3時(shí)顯示</p><p>  write_1602dat('E');<

76、/p><p>  write_1602dat('D');</p><p><b>  break;</b></p><p>  case 4:write_1602dat('T');//星期數(shù)據(jù)為4是顯示</p><p>  write_1602dat('H');</p&g

77、t;<p>  write_1602dat('U');</p><p><b>  break;</b></p><p>  case 5:write_1602dat('F');//星期數(shù)據(jù)為5時(shí)顯示</p><p>  write_1602dat('R');</p>

78、<p>  write_1602dat('I');</p><p><b>  break;</b></p><p>  case 6:write_1602dat('S');//星期數(shù)據(jù)為6時(shí)顯示</p><p>  write_1602dat('T');</p><

79、p>  write_1602dat('A');</p><p><b>  break;</b></p><p>  case 7:write_1602dat('S');//星期數(shù)據(jù)為7時(shí)顯示</p><p>  write_1602dat('U');</p><p>

80、;  write_1602dat('N');</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //****************鍵盤(pán)掃描有關(guān)函數(shù)*******

81、***************</p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==0)//---------------key1為功能鍵(設(shè)置鍵)--------------------</p><p><b>  {</b&g

82、t;</p><p>  delay(9);//延時(shí),用于消抖動(dòng)</p><p>  if(key1==0)//延時(shí)后再次確認(rèn)按鍵按下</p><p><b>  {</b></p><p>  while(!key1);</p><p><b>  key1n++;</b>

83、</p><p>  if(key1n==9)</p><p>  key1n=1;//設(shè)置按鍵共有秒、分、時(shí)、星期、日、月、年、返回,8個(gè)功能循環(huán)</p><p>  switch(key1n)</p><p><b>  {</b></p><p>  case 1: TR0=0;//關(guān)閉定時(shí)

84、器</p><p><b>  //TR1=0;</b></p><p>  write_1602com(er+0x09);//設(shè)置按鍵按動(dòng)一次,秒位置顯示光標(biāo)</p><p>  write_1602com(0x0f);//設(shè)置光標(biāo)為閃爍</p><p>  temp=(miao)/10*16+(miao)%10;//

85、秒數(shù)據(jù)寫(xiě)入DS1302</p><p>  write_1302(0x8e,0x00);</p><p>  write_1302(0x80,0x80|temp);//miao</p><p>  write_1302(0x8e,0x80);</p><p><b>  break;</b></p><

86、;p>  case 2: write_1602com(er+6);//按2次fen位置顯示光標(biāo)</p><p>  //write_1602com(0x0f);</p><p><b>  break;</b></p><p>  case 3: write_1602com(er+3);//按動(dòng)3次,shi</p><

87、;p>  //write_1602com(0x0f);</p><p><b>  break;</b></p><p>  case 4: write_1602com(yh+0x0e);//按動(dòng)4次,week</p><p>  //write_1602com(0x0f);</p><p><b>  

88、break;</b></p><p>  case 5: write_1602com(yh+0x0a);//按動(dòng)5次,ri</p><p>  //write_1602com(0x0f);</p><p><b>  break;</b></p><p>  case 6: write_1602com(yh+

89、0x07);//按動(dòng)6次,yue</p><p>  //write_1602com(0x0f);</p><p><b>  break;</b></p><p>  case 7: write_1602com(yh+0x04);//按動(dòng)7次,nian</p><p>  //write_1602com(0x0f);&

90、lt;/p><p><b>  break;</b></p><p><b>  case 8:</b></p><p>  write_1602com(0x0c);//按動(dòng)到第8次,設(shè)置光標(biāo)不閃爍</p><p>  TR0=1;//打開(kāi)定時(shí)器</p><p>  temp=(

91、miao)/10*16+(miao)%10;</p><p>  write_1302(0x8e,0x00);</p><p>  write_1302(0x80,0x00|temp);//miao數(shù)據(jù)寫(xiě)入DS1302</p><p>  write_1302(0x8e,0x80);</p><p>  break;}</p

92、><p><b>  }</b></p><p><b>  }</b></p><p>  //------------------------------加鍵key2----------------------------</p><p>  if(key1n!=0)//當(dāng)key1按下以下。再按

93、以下鍵才有效(按鍵次數(shù)不等于零)</p><p><b>  {</b></p><p>  if(key2==0) //上調(diào)鍵</p><p><b>  {</b></p><p>  delay(10);</p><p>  if(key2==0)</p>

94、<p><b>  {</b></p><p>  while(!key2);</p><p>  switch(key1n)</p><p><b>  {</b></p><p>  case 1:miao++;//設(shè)置鍵按動(dòng)1次,調(diào)秒</p><p>  

95、if(miao==60)</p><p>  miao=0;//秒超過(guò)59,再加1,就歸零</p><p>  write_sfm(0x08,miao);//令LCD在正確位置顯示"加"設(shè)定好的秒數(shù)</p><p>  temp=(miao)/10*16+(miao)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><

96、;p>  write_1302(0x8e,0x00); //允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x80,temp); //向DS1302內(nèi)寫(xiě)秒寄存器80H寫(xiě)入調(diào)整后的秒數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80); //打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(er+0x09);/

97、/因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,光標(biāo)自動(dòng)右移,所以要指定返回</p><p>  //write_1602com(0x0b);</p><p><b>  break;</b></p><p>  case 2:fen++;</p><p>  if(fen==60)</p><p><b

98、>  fen=0;</b></p><p>  write_sfm(0x05,fen);//令LCD在正確位置顯示"加"設(shè)定好的分?jǐn)?shù)據(jù)</p><p>  temp=(fen)/10*16+(fen)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁

99、止寫(xiě)保護(hù) </p><p>  write_1302(0x82,temp);//向DS1302內(nèi)寫(xiě)分寄存器82H寫(xiě)入調(diào)整后的分?jǐn)?shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(er+6);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,在這里是寫(xiě)回原來(lái)的位置</p&g

100、t;<p><b>  break;</b></p><p>  case 3:shi++;</p><p>  if(shi==24)</p><p><b>  shi=0;</b></p><p>  write_sfm(2,shi);//令LCD在正確的位置顯示"加&

101、quot;設(shè)定好的小時(shí)數(shù)據(jù)</p><p>  temp=(shi)/10*16+(shi)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x84,temp);//向DS1302內(nèi)寫(xiě)小時(shí)寄存器84H寫(xiě)入調(diào)整后的小時(shí)數(shù)據(jù)BCD碼&l

102、t;/p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(er+3);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 4:week++;</p>

103、;<p>  if(week==8)</p><p><b>  week=1;</b></p><p>  write_1602com(yh+0x0C);//指定'加'后的周數(shù)據(jù)顯示位置</p><p>  write_week(week);//指定周數(shù)據(jù)顯示內(nèi)容</p><p>  te

104、mp=(week)/10*16+(week)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x8a,temp);//向DS1302內(nèi)寫(xiě)周寄存器8aH寫(xiě)入調(diào)整后的周數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0

105、x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(yh+0x0e);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 5:ri++;</p><p>  if(ri==32)</p>&

106、lt;p><b>  ri=1;</b></p><p>  write_nyr(9,ri);//令LCD在正確的位置顯示"加"設(shè)定好的日期數(shù)據(jù)</p><p>  temp=(ri)/10*16+(ri)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00)

107、;//允許寫(xiě),禁止寫(xiě)保護(hù)</p><p>  write_1302(0x86,temp);//向DS1302內(nèi)寫(xiě)日期寄存器86H寫(xiě)入調(diào)整后的日期數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(yh+10);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位&

108、lt;/p><p><b>  break;</b></p><p>  case 6:yue++;</p><p>  if(yue==13)</p><p><b>  yue=1;</b></p><p>  write_nyr(6,yue);//令LCD在正確的位置顯示&

109、quot;加"設(shè)定好的月份數(shù)據(jù)</p><p>  temp=(yue)/10*16+(yue)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù)</p><p>  write_1302(0x88,temp);//向DS1302內(nèi)寫(xiě)月份寄存器88H寫(xiě)入調(diào)整后的月份數(shù)據(jù)

110、BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(yh+7);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 7:nian++;<

111、;/p><p>  if(nian==100)</p><p><b>  nian=0;</b></p><p>  write_nyr(3,nian);//令LCD在正確的位置顯示"加"設(shè)定好的年份數(shù)據(jù)</p><p>  temp=(nian)/10*16+(nian)%10;//十進(jìn)制轉(zhuǎn)換成DS1

112、302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù)</p><p>  write_1302(0x8c,temp);//向DS1302內(nèi)寫(xiě)年份寄存器8cH寫(xiě)入調(diào)整后的年份數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  w

113、rite_1602com(yh+4);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&

114、lt;/b></p><p>  //------------------減鍵key3,各句功能參照'加鍵'注釋---------------</p><p>  if(key3==0)</p><p><b>  {</b></p><p>  delay(10);//調(diào)延時(shí),消抖動(dòng)</p&

115、gt;<p>  if(key3==0)</p><p><b>  {</b></p><p>  while(!key3);</p><p>  switch(key1n)</p><p><b>  {</b></p><p>  case 1:miao-

116、-;</p><p>  if(miao==-1)</p><p>  miao=59;//秒數(shù)據(jù)減到-1時(shí)自動(dòng)變成59</p><p>  write_sfm(0x08,miao);//在LCD的正確位置顯示改變后新的秒數(shù)</p><p>  temp=(miao)/10*16+(miao)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼

117、</p><p>  write_1302(0x8e,0x00); //允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x80,temp); //向DS1302內(nèi)寫(xiě)秒寄存器80H寫(xiě)入調(diào)整后的秒數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80); //打開(kāi)寫(xiě)保護(hù)</p><p>  write_160

118、2com(er+0x09);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,在這里是寫(xiě)回原來(lái)的位置</p><p>  //write_1602com(0x0b);</p><p><b>  break;</b></p><p>  case 2:fen--;</p><p>  if(fen==-1)</p&

119、gt;<p><b>  fen=59;</b></p><p>  write_sfm(5,fen);</p><p>  temp=(fen)/10*16+(fen)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù) </p>

120、<p>  write_1302(0x82,temp);//向DS1302內(nèi)寫(xiě)分寄存器82H寫(xiě)入調(diào)整后的分?jǐn)?shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(er+6);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,在這里是寫(xiě)回原來(lái)的位置</p><p><

121、;b>  break;</b></p><p>  case 3:shi--;</p><p>  if(shi==-1)</p><p><b>  shi=23;</b></p><p>  write_sfm(2,shi);</p><p>  temp=(shi)/10*

122、16+(shi)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x84,temp);//向DS1302內(nèi)寫(xiě)小時(shí)寄存器84H寫(xiě)入調(diào)整后的小時(shí)數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)

123、</p><p>  write_1602com(er+3);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 4:week--;</p><p>  if(week==0)</p><p><

124、b>  week=7;</b></p><p>  write_1602com(yh+0x0C);//指定'加'后的周數(shù)據(jù)顯示位置</p><p>  write_week(week);//指定周數(shù)據(jù)顯示內(nèi)容</p><p>  temp=(week)/10*16+(week)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼<

125、;/p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù) </p><p>  write_1302(0x8a,temp);//向DS1302內(nèi)寫(xiě)周寄存器8aH寫(xiě)入調(diào)整后的周數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(y

126、h+0x0e);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 5:ri--;</p><p><b>  if(ri==0)</b></p><p><b>  ri=31;</b&

127、gt;</p><p>  write_nyr(9,ri);</p><p>  temp=(ri)/10*16+(ri)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p><p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù)</p><p>  write_1302(0x86,temp);//向DS1302

128、內(nèi)寫(xiě)日期寄存器86H寫(xiě)入調(diào)整后的日期數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(yh+10);//因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p&g

129、t;  case 6:yue--;</p><p>  if(yue==0)</p><p><b>  yue=12;</b></p><p>  write_nyr(6,yue);</p><p>  temp=(yue)/10*16+(yue)%10;//十進(jìn)制轉(zhuǎn)換成DS1302要求的DCB碼</p>

130、<p>  write_1302(0x8e,0x00);//允許寫(xiě),禁止寫(xiě)保護(hù)</p><p>  write_1302(0x88,temp);//向DS1302內(nèi)寫(xiě)月份寄存器88H寫(xiě)入調(diào)整后的月份數(shù)據(jù)BCD碼</p><p>  write_1302(0x8e,0x80);//打開(kāi)寫(xiě)保護(hù)</p><p>  write_1602com(yh+7);//

131、因?yàn)樵O(shè)置液晶的模式是寫(xiě)入數(shù)據(jù)后,指針自動(dòng)加一,所以需要光標(biāo)回位</p><p><b>  break;</b></p><p>  case 7:nian--;</p><p>  if(nian==-1)</p><p><b>  nian=99;</b></p><p&

溫馨提示

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

評(píng)論

0/150

提交評(píng)論