畢業(yè)設(shè)計(jì)基于A(yíng)T89S51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)基于A(yíng)T89S51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)基于A(yíng)T89S51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)基于A(yíng)T89S51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)基于A(yíng)T89S51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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、基于at89s51單片機(jī)控制的帶有溫度顯示的電子鐘設(shè)計(jì)摘 要本文介紹了一款基于at89s51單片機(jī)控制的帶有溫度顯示的電子鐘的設(shè)計(jì),通過(guò)多功能數(shù)字鐘帶有溫度的設(shè)計(jì)思路,詳細(xì)敘述了系統(tǒng)硬件、軟件的具體實(shí)現(xiàn)過(guò)程。論文重點(diǎn)闡述了數(shù)字鐘硬件中mcu模塊、溫度模塊、時(shí)鐘模塊、顯示模塊和相關(guān)控制模塊等的模塊化設(shè)計(jì)與制作;軟件同樣采用模塊化的設(shè)計(jì),包括中斷模塊、溫度模塊、時(shí)間調(diào)整模塊設(shè)計(jì),并采用簡(jiǎn)單流通性強(qiáng)的c語(yǔ)言編寫(xiě)實(shí)現(xiàn)。本設(shè)計(jì)實(shí)現(xiàn)了時(shí)間的修改功能和年、月、日和星期的顯示和溫度顯示功能。關(guān)鍵詞:at89s51 單片機(jī) 數(shù)字鐘 溫度顯示 abstract this paper introduced the

2、design of digital clock based on scm of at89s51, the specific process of how the system hardware and software achieved were detailed description through the design of multifunction digital clock. the modular design and production, which consisted of mcu module, voice module,clock module and the asso

3、ciated control module, were mainly recounted;as well as hardware designing,software design use the same method, consists suspension module,alarm clock module, voice module, time adjust module, and that use the c language to achieve because of its simple and strong negotiability. in this design the f

4、unctions of time and alarm clock run and change, voice broadcast,functions of the year, month, day and week display have been achieved. and by comparing the actual clock. key words :at89s51 microcontroller digital clock the display of temperature 目 錄前 言.1第一章 系統(tǒng)實(shí)現(xiàn)功能、設(shè)計(jì)方案論證及芯片介紹.2第一節(jié) 系統(tǒng)要求實(shí)現(xiàn)功能.2第二節(jié) 設(shè)計(jì)方

5、案論證.2第三節(jié) 芯片介紹.4 一、ds18b20芯片介紹.4 二、ds1302芯片介紹.9第二章 電路硬件設(shè)計(jì)及分析.13 第一節(jié) 時(shí)鐘電路. .13第二節(jié) 復(fù)位電路.13第三節(jié)ds1302時(shí)鐘電路.14第四節(jié) ds18b20溫度計(jì)電路.14第五節(jié) 鍵盤(pán)電路.15第六節(jié) 顯示電路.16第七節(jié) 按鍵提示電路.17第三章 軟件設(shè)計(jì).18第一節(jié) 主函數(shù)流程圖.18第二節(jié) 18b20溫度計(jì)流程圖.18第三節(jié) 鍵盤(pán)電路流程圖.20第四節(jié) 定時(shí)器t0中斷服務(wù)程序流程圖.21第四章 結(jié)束語(yǔ).22附錄1 電路原理圖.23附錄2 主程序清單 .24參考文獻(xiàn) .36致 謝 .37前 言單片微型計(jì)算機(jī)是隨著超大規(guī)

6、模集成電路技術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強(qiáng)、性?xún)r(jià)比高等特點(diǎn),所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機(jī)器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡(jiǎn)化了設(shè)計(jì)。本文主要介紹由單片機(jī)控制的帶有溫度顯示的電子鐘的設(shè)計(jì)。隨著人們生活水平的日益提高,人們對(duì)生活的要求越來(lái)越高,原有的事物已經(jīng)不能滿(mǎn)足人們的生活需求了,一些帶有新功能的事物已經(jīng)在慢慢的取代舊事物。就像電子鐘一樣,人們用電子鐘不僅僅只是看時(shí)間了,人們還需要看溫度了。越來(lái)越多的新功能更貼近人們的生活了,所以也越來(lái)越受人們所喜歡。帶有溫度的的電子鐘可以使人們隨時(shí)都可以了解溫度的變

7、化。第一章 系統(tǒng)實(shí)現(xiàn)功能、設(shè)計(jì)方案論證及芯片介紹第一節(jié) 系統(tǒng)要求實(shí)現(xiàn)功能(1) 萬(wàn)年歷 (2) 溫度顯示(3) 三鍵調(diào)時(shí)(設(shè)置鍵,上調(diào)鍵,下調(diào)鍵)(4) 按鍵蜂鳴器提示第二節(jié) 設(shè)計(jì)方案論證方案一 用主芯片為at89c51的單片機(jī)控制實(shí)現(xiàn),使用單片機(jī)內(nèi)部的定時(shí)計(jì)數(shù)器實(shí)現(xiàn)時(shí)間的設(shè)定,使用按鍵進(jìn)行時(shí)間的調(diào)整和定時(shí),按鍵有蜂鳴器提示,溫度傳感器使用dallas公司生產(chǎn)的單總線(xiàn)式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配處理器等優(yōu)點(diǎn),特別適用于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)(提供9位二進(jìn)制數(shù)字)給單片機(jī)處理,且在同一總線(xiàn)上可以?huà)旖佣鄠€(gè)傳感器芯片。顯示時(shí)間和溫度

8、使用數(shù)碼管顯示。方案1系統(tǒng)結(jié)構(gòu)框圖如圖1-1所示。圖1-1 方案1系統(tǒng)結(jié)構(gòu)框圖方案二 用主芯片為at89c51的單片機(jī)控制實(shí)現(xiàn),為了滿(mǎn)足單片機(jī)系統(tǒng)的實(shí)時(shí)控制的需求,采用實(shí)時(shí)鐘芯片ds1302,使用按鍵進(jìn)行時(shí)間的調(diào)整和定時(shí),按鍵蜂鳴器提示,溫度傳感器使用普通的溫度傳感器,由于溫度傳感器采集的數(shù)據(jù)為模擬量,又因?yàn)閱纹瑱C(jī)at89c51內(nèi)部沒(méi)有集成模數(shù)轉(zhuǎn)換器,需要在控制系統(tǒng)的外部使用a/d轉(zhuǎn)換裝置,另外系統(tǒng)還應(yīng)該把采集來(lái)的數(shù)據(jù)進(jìn)行信號(hào)處理,顯示溫度和時(shí)間使用lcd1602顯示。方案2系統(tǒng)結(jié)構(gòu)框圖如圖1-2所示。圖1-2 方案2系統(tǒng)結(jié)構(gòu)框圖方案三 用主芯片為at89c51的單片機(jī)控制實(shí)現(xiàn),為了滿(mǎn)足單片機(jī)

9、系統(tǒng)的實(shí)時(shí)控制的需求,采用實(shí)時(shí)鐘芯片ds1302,使用按鍵進(jìn)行時(shí)間的調(diào)整和定時(shí),按鍵有蜂鳴器提示,溫度傳感器使用dallas公司生產(chǎn)的單總線(xiàn)式數(shù)字溫度傳感器。顯示時(shí)間和溫度使用lcd1602顯示。方案3系統(tǒng)結(jié)構(gòu)框圖如圖1-3所示。 圖1-3 方案3系統(tǒng)結(jié)構(gòu)框圖方案選擇 方案一直接使用單片機(jī)內(nèi)集成的定時(shí)器,產(chǎn)生定時(shí)節(jié)拍,編制軟件計(jì)數(shù)器,進(jìn)行節(jié)拍技術(shù),理論上講,不但能夠完成秒表設(shè)計(jì),還能夠?qū)崿F(xiàn)分鐘、刻鐘、小時(shí)的實(shí)時(shí)計(jì)時(shí)功能,在此基礎(chǔ)上,如果加上足夠精確的誤差時(shí)間補(bǔ)償處理,甚至可以實(shí)現(xiàn)日、星期、月、年等日歷功能。但使用片內(nèi)定時(shí)器有以下幾個(gè)問(wèn)題:1、時(shí)間補(bǔ)償片內(nèi)定時(shí)器采用中斷方式提供計(jì)時(shí)節(jié)拍,中斷的實(shí)

10、質(zhì)是隨機(jī)程序切換,那么,中斷響應(yīng)時(shí)間是不可精確預(yù)測(cè)的。這樣,必然會(huì)導(dǎo)致計(jì)時(shí)節(jié)拍的時(shí)間誤差,在計(jì)時(shí)時(shí)間較短的情況下,比如199s計(jì)時(shí),可以采用一些軟件措施進(jìn)行誤差補(bǔ)償,但當(dāng)系統(tǒng)所需要的計(jì)時(shí)時(shí)間較長(zhǎng)時(shí),比如進(jìn)行年、月、日的日歷計(jì)時(shí),定時(shí)中斷誤差扥積累就會(huì)很大,無(wú)法滿(mǎn)足時(shí)間精度的要求。因此,在需要日歷、時(shí)鐘的場(chǎng)合,片內(nèi)定時(shí)器的作用有限。片內(nèi)定時(shí)器只適合于單片機(jī)短時(shí)間計(jì)時(shí)的要求。 2、時(shí)鐘維持使用片內(nèi)定時(shí)器進(jìn)行計(jì)時(shí)的時(shí)候,單片機(jī)始終要處于工作狀態(tài)。才能維持計(jì)時(shí)時(shí)間,一旦停機(jī)或進(jìn)入待機(jī)狀態(tài),開(kāi)機(jī)后,計(jì)時(shí)時(shí)間就需要重新設(shè)定。在單片機(jī)系統(tǒng)中,有時(shí),需要維持一個(gè)時(shí)鐘,對(duì)控制工作進(jìn)行時(shí)間標(biāo)定。不管單片機(jī)系統(tǒng)開(kāi)機(jī)

11、、關(guān)機(jī)還是待機(jī),系統(tǒng)時(shí)鐘要始終維持。為了滿(mǎn)足單片機(jī)系統(tǒng)的實(shí)時(shí)鐘需求,最可靠的方法是采用實(shí)時(shí)鐘芯片ds1302。溫度的數(shù)據(jù)采集如果是一般的溫度傳感器,需要對(duì)信號(hào)進(jìn)行處理,另外還需要模數(shù)轉(zhuǎn)換裝置,如果采用的是數(shù)字溫度傳感器18b20,可以直接將采集的信號(hào)轉(zhuǎn)化為數(shù)字信息供單片機(jī)控制,這樣不僅節(jié)約了成本,還提高了系統(tǒng)的可靠性和穩(wěn)定性。所以本設(shè)計(jì)采用的是方案三。第三節(jié) 芯片介紹一、ds18b20芯片介紹 ds18b20是dallas公司生產(chǎn)的單總線(xiàn)式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、搞干擾能力強(qiáng)、易配處理器等優(yōu)點(diǎn),特別適用于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)(提供9位二進(jìn)制

12、數(shù)字)給單片機(jī)處理,且在同一總線(xiàn)上可以?huà)旖佣鄠€(gè)傳感器芯片。它具有3引腳to92小體積封裝形式,溫度測(cè)量范圍為55125,可編程為9位12位a/d轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,多個(gè)ds18b20可以并聯(lián)到3根或2根線(xiàn)上,cpu只需一根端口線(xiàn)就能與多個(gè)ds18b20通信,占用微處理器的端口較少,可節(jié)省大量的引線(xiàn)和邏輯電路。以上特點(diǎn)使ds18b20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。1、ds18b20外形及引腳說(shuō)明ds18b20外形及引腳如圖1-4所示。 圖1-4 ds18b20外形及引腳圖在to

13、-92和so-8的封裝中引腳有所不同,具體差別請(qǐng)查閱pdf手冊(cè),在to-92封裝中引腳分配如下:(1)gnd:地;(2)dq:?jiǎn)尉€(xiàn)運(yùn)用的數(shù)據(jù)輸入輸出引腳;(3)vdd:可選的電源引腳。2、ds18b20工作過(guò)程及時(shí)序ds18b20內(nèi)部的低溫度系數(shù)振蕩器是一個(gè)振蕩頻率隨溫度變化很小的振蕩器,為計(jì)數(shù)器1提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)振蕩器是一個(gè)振蕩頻率對(duì)溫度很敏感的振蕩器,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。初始時(shí),溫度寄存器被預(yù)置成-55,每當(dāng)計(jì)數(shù)器1從預(yù)置數(shù)開(kāi)始減計(jì)數(shù)到0時(shí),溫度寄存器中寄存的溫度值就增加1,這個(gè)過(guò)程重復(fù)進(jìn)行,直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí)便停止。初始時(shí),計(jì)數(shù)器1預(yù)置的是

14、與-55相對(duì)應(yīng)的一個(gè)預(yù)置值。以后計(jì)數(shù)器1每一個(gè)循環(huán)的預(yù)置數(shù)都由斜率累加器提供。為了補(bǔ)償振蕩器溫度特性的非線(xiàn)性性,斜率累加器提供的預(yù)置數(shù)也隨溫度相應(yīng)變化。計(jì)數(shù)器1的預(yù)置數(shù)也就是在給定溫度處使溫度寄存器寄存值增加1計(jì)數(shù)器所需要的計(jì)數(shù)個(gè)數(shù)。ds18b20內(nèi)部的比較器以四舍五入的量化方式確定溫度寄存器的最低有效位。在計(jì)數(shù)器2停止計(jì)數(shù)后,比較器將計(jì)數(shù)器1中的計(jì)數(shù)剩余值轉(zhuǎn)換為溫度值后與0.25進(jìn)行比較,若低于0.25,溫度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于0.75時(shí),溫度寄存器的最低位就進(jìn)位然后置0。這樣,經(jīng)過(guò)比較后所得的溫度寄存器的值就是最終讀取的溫度值了,其最后位代表0.5,四

15、舍五入最大量化誤差為1/2lsb,即0.25。溫度寄存器中的溫度值以9位數(shù)據(jù)格式表示,最高位為符號(hào)位,其余8位以二進(jìn)制補(bǔ)碼形式表示溫度值。測(cè)溫結(jié)束時(shí),這9位數(shù)據(jù)轉(zhuǎn)存到暫存存儲(chǔ)器的前兩個(gè)字節(jié)中,符號(hào)位占用第一字節(jié),8位溫度數(shù)據(jù)占據(jù)第二字節(jié)。ds18b20測(cè)量溫度時(shí)使用特有的溫度測(cè)量技術(shù)。ds18b20內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號(hào);同樣的,高溫度系數(shù)振蕩器則將被測(cè)溫度轉(zhuǎn)換成頻率信號(hào)。當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),ds18b20進(jìn)行計(jì)數(shù),計(jì)數(shù)門(mén)開(kāi)通時(shí)間由高溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對(duì)頻率的非線(xiàn)性度加以補(bǔ)償。測(cè)量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)該為9位,但因符號(hào)位擴(kuò)展成高

16、8位,所以最后以16位補(bǔ)碼形式讀出。ds18b20工作過(guò)程一般遵循以下協(xié)議:初始化rom操作命令存儲(chǔ)器操作命令處理數(shù)據(jù)。(1)初始化 單總線(xiàn)上的所有處理均從初始化序列開(kāi)始。初始化序列包括總線(xiàn)主機(jī)發(fā)出一復(fù)位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線(xiàn)控制器知道ds1820 在總線(xiàn)上且已準(zhǔn)備好操作。(2) rom操作命令 一旦總線(xiàn)主機(jī)檢測(cè)到從屬器件的存在,它便可以發(fā)出器件rom操作命令之一。所有rom操作命令均為8位長(zhǎng)。這些命令介紹如下:read rom(讀rom)33h 此命令允許總線(xiàn)主機(jī)讀ds18b20的8位產(chǎn)品系列編碼,唯一的48位序列號(hào),以及8位的crc。此命令只能在總線(xiàn)上僅有一個(gè)ds

17、18b20的情況下可以使用。如果總線(xiàn)上存在多于一個(gè)的從屬器件,那么當(dāng)所有從片企圖同時(shí)發(fā)送時(shí)將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開(kāi)路會(huì)產(chǎn)生線(xiàn)與的結(jié)果)。 match rom( 符合rom)55h 此命令后繼以64位的rom數(shù)據(jù)序列,允許總線(xiàn)主機(jī)對(duì)多點(diǎn)總線(xiàn)上特定的ds18b20尋址。只有與64位rom序列嚴(yán)格相符的ds18b20才能對(duì)后繼的存貯器操作命令作出響應(yīng)。所有與64位rom序列不符的從片將等待復(fù)位脈沖。此命令在總線(xiàn)上有單個(gè)或多個(gè)器件的情況下均可使用。skip rom( 跳過(guò)rom )cch 在單點(diǎn)總線(xiàn)系統(tǒng)中,此命令通過(guò)允許總線(xiàn)主機(jī)不提供64位rom編碼而訪(fǎng)問(wèn)存儲(chǔ)器操作來(lái)節(jié)省時(shí)間。如果在總線(xiàn)上存在多于

18、一個(gè)的從屬器件而且在skip rom命令之后發(fā)出讀命令,那么由于多個(gè)從片同時(shí)發(fā)送數(shù)據(jù),會(huì)在總線(xiàn)上發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路下拉會(huì)產(chǎn)生線(xiàn)與的效果)。search rom( 搜索rom)f0h 當(dāng)系統(tǒng)開(kāi)始工作時(shí),總線(xiàn)主機(jī)可能不知道單線(xiàn)總線(xiàn)上的器件個(gè)數(shù)或者不知道其64位rom編碼。搜索rom命令允許總線(xiàn)控制器用排除法識(shí)別總線(xiàn)上的所有從機(jī)的64位編碼。alarm search(告警搜索)ech 此命令的流程與搜索rom命令相同。但是,僅在最近一次溫度測(cè)量出現(xiàn)告警的情況下,ds18b20才對(duì)此命令作出響應(yīng)。告警的條件定義為溫度高于th 或低于tl。只要ds18b20一上電,告警條件就保持在設(shè)置狀態(tài),直到另一

19、次溫度測(cè)量顯示出非告警值或者改變th或tl的設(shè)置,使得測(cè)量值再一次位于允許的范圍之內(nèi)。貯存在eeprom內(nèi)的觸發(fā)器值用于告警。(3) 存儲(chǔ)器操作命令write scratchpad(寫(xiě)暫存存儲(chǔ)器)4eh 這個(gè)命令向ds18b20的暫存器中寫(xiě)入數(shù)據(jù),開(kāi)始位置在地址2。接下來(lái)寫(xiě)入的兩個(gè)字節(jié)將被存到暫存器中的地址位置2和3??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。read scratchpad(讀暫存存儲(chǔ)器)beh 這個(gè)命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開(kāi)始,一直進(jìn)行下去,直到第9(字節(jié)8,crc)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。copy scratchp

20、ad(復(fù)制暫存存儲(chǔ)器)48h 這條命令把暫存器的內(nèi)容拷貝到ds18b20的e2存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線(xiàn)控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20又正在忙于把暫存器拷貝到e2存儲(chǔ)器,ds18b20就會(huì)輸出一個(gè)“0”,如果拷貝結(jié)束的話(huà),ds18b20 則輸出“1”。如果使用寄生電源,總線(xiàn)控制器必須在這條命令發(fā)出后立即起動(dòng)強(qiáng)上拉并最少保持10ms。convert t(溫度變換)44h 這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后ds18b20保持等待狀態(tài)。如果總線(xiàn)控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20又忙于做時(shí)間轉(zhuǎn)換

21、的話(huà),ds18b20將在總線(xiàn)上輸出“0”,若溫度轉(zhuǎn)換完成,則輸出“1”。如果使用寄生電源,總線(xiàn)控制器必須在發(fā)出這條命令后立即起動(dòng)強(qiáng)上拉,并保持500ms。recall e2(重新調(diào)整e2)b8h 這條命令把貯存在e2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯?chǔ)器。這種重新調(diào)出的操作在對(duì)ds18b20上電時(shí)也自動(dòng)發(fā)生,因此只要器件一上電,暫存存儲(chǔ)器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后,對(duì)于所發(fā)出的第一個(gè)讀數(shù)據(jù)時(shí)間片,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):“0”=忙,“1”=準(zhǔn)備就緒。read power supply(讀電源)b4h 對(duì)于在此命令發(fā)送至ds18b20之后所發(fā)出的第一讀數(shù)據(jù)的時(shí)間片,器件都會(huì)給出其電源

22、方式的信號(hào):“0”=寄生電源供電,“1”=外部電源供電。(4)處理數(shù)據(jù)ds18b20的高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如圖1-5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線(xiàn)接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。圖1-5 高速暫存存儲(chǔ)器分配圖表1-1是ds18b20溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在ds18b20的兩個(gè)8比特的ram中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于或等于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.

23、0625即可得到實(shí)際溫度。溫度轉(zhuǎn)換計(jì)算方法舉例:例如,當(dāng)ds18b20采集到+125的實(shí)際溫度后,輸出為07d0h,則:實(shí)際溫度=07d0h0.0625=20000.0625=1250c。例如當(dāng)ds18b20采集到-55的實(shí)際溫度后,輸出為fc90h,則應(yīng)先將11位據(jù)位取反加1得370h(符號(hào)位不變,也不作為計(jì)算),則:實(shí)際溫度=370h0.0625=8800.0625=550c。表1-1 ds18b20溫度數(shù)據(jù)表 溫度/0c二進(jìn)制表示十六進(jìn)制表示符號(hào)位(5位)數(shù)據(jù)位(11位)+1250 0 0 0 01111101000007d0h+25.06250 0 0 0 00011001000101

24、91h+10.1250 0 0 0 00001010001000a2h+0.50 0 0 0 0000000010000008h00 0 0 0 0000000000000000h-0.51 1 1 1 111111111000fff8h-10.1251 1 1 1 111101011110ff5eh-25.6251 1 1 1 111001101111fe6fh-551 1 1 1 110010010000fc90h二、ds1302芯片介紹ds1302是dallas公司推出的涓流充電時(shí)鐘芯片,內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)ram,可以通過(guò)串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供

25、秒、分、時(shí)、日、星期、月、年的信息,每個(gè)月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)am/pm標(biāo)志位決定采用24或12小時(shí)時(shí)間格式。ds1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需三根i/o線(xiàn):復(fù)位(rst)、i/o數(shù)據(jù)線(xiàn)、串行時(shí)鐘(sclk)。時(shí)鐘/ram的讀/寫(xiě)數(shù)據(jù)以一字節(jié)或多達(dá)31字節(jié)的字符組方式通信。ds1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí),功耗小于1mw。1、ds1302的內(nèi)部結(jié)構(gòu)ds1302的外部引腳功能說(shuō)明如圖1-6所示。 ds1302封裝圖x1,x232.768khz晶振引腳gnd地rst復(fù)位i/o數(shù)據(jù)輸入/輸出sclk串行時(shí)鐘vcc1電池引腳vcc2

26、主電源引腳 圖1-6 ds1302的外部引腳功能說(shuō)明圖ds1302的內(nèi)部結(jié)構(gòu)如圖1-7所示,主要組成部分為:移位寄存器、控制邏輯、振蕩器、實(shí)時(shí)時(shí)鐘以及ram。雖然數(shù)據(jù)分成兩種,但是對(duì)單片機(jī)的程序而言,其實(shí)是一樣的,就是對(duì)特定的地址進(jìn)行讀寫(xiě)操作。 圖1-7 ds1302的內(nèi)部結(jié)構(gòu)圖 ds1302含充電電路,可以對(duì)作為后備電源的可充電電池充電,并可選擇充電使能和串入的二極管數(shù)目,以調(diào)節(jié)電池充電電壓。不過(guò)對(duì)我們目前而言,最需要熟悉的是和時(shí)鐘相關(guān)部分的功能,對(duì)于其它參數(shù)請(qǐng)參閱數(shù)據(jù)手冊(cè)。2、ds1302的工作原理ds1302工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(rst)置為高電平且將8位地址

27、和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(sclk)的上升沿串行輸入,前8位指定訪(fǎng)問(wèn)地址,命令字裝入移位寄存器后,在之后的時(shí)鐘周期,讀操作時(shí)輸出數(shù)據(jù),寫(xiě)操作時(shí)輸出數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8+8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達(dá)248的數(shù)據(jù)。3、ds1302的寄存器和控制命令對(duì)ds1302的操作就是對(duì)其內(nèi)部寄存器的操作,ds1302內(nèi)部共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式。此外,ds1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器以外的寄存器。日歷

28、、時(shí)間寄存器及控制字如表1-2所示。表1-2 日歷、時(shí)鐘寄存器與控制字對(duì)照表寄存器名稱(chēng)765432101ram/cka4a3a2a1a0rd/w秒寄存器1000000分寄存器1000001小時(shí)寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110寫(xiě)保護(hù)寄存器1000111慢充電寄存器1001000時(shí)鐘突發(fā)寄存器1011111最后一位rd/w為“0”時(shí)表示進(jìn)行寫(xiě)操作,為“1”時(shí)表示讀操作。ds1302內(nèi)部寄存器列表如表1-3所示。表1-3 ds14302內(nèi)部主要寄存器分布表寄存器名稱(chēng)命令字取值范圍各位內(nèi)容寫(xiě)讀76543210秒寄存器80h8

29、1h00-59ch10secsec分寄存器82h83h00-59010minmin小時(shí)寄存器84h85h01-12或00-2312/240ahrhr日期寄存器86h87h01-28,29,30,310010datedate月份寄存器88h89h01-1200010mmonth周寄存器8ah8bh01-0700000day年份寄存器8ch8dh00-9910yearyeards1302內(nèi)部的ram分為兩類(lèi),一類(lèi)是單個(gè)ram單元,共31個(gè),每個(gè)單元為一個(gè)8位的字節(jié),其命令控制字為cohfdh,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類(lèi)為突發(fā)方式下的ram,此方式下可一次性讀寫(xiě)所有的ram的31個(gè)字節(jié),

30、命令控制字為feh(寫(xiě))、ffh(讀)。我們現(xiàn)在已經(jīng)知道了控制寄存器和ram的邏輯地址,接著就需要知道如何通過(guò)外部接口來(lái)訪(fǎng)問(wèn)這些資源。單片機(jī)是通過(guò)簡(jiǎn)單的同步串行通訊與ds1302通訊的,每次通訊都必須由單片機(jī)發(fā)起,無(wú)論是讀還是寫(xiě)操作,單片機(jī)都必須先向ds1302寫(xiě)入一個(gè)命令幀,這個(gè)幀的格式如表1所示,最高位bit7固定為1,bit6決定操作是針對(duì)ram還是時(shí)鐘寄存器,接著的5個(gè)bit是ram或時(shí)鐘寄存器在ds1302的內(nèi)部地址,最后一個(gè)bit表示這次操作是讀操作抑或是寫(xiě)操作。物理上,ds1302的通訊接口由3個(gè)口線(xiàn)組成,即rst,sclk,i/o。其中rst從低電平變成高電平啟動(dòng)一次數(shù)據(jù)傳輸過(guò)

31、程,sclk是時(shí)鐘線(xiàn),i/o是數(shù)據(jù)線(xiàn)。具體的讀寫(xiě)時(shí)序如圖1-8,但是請(qǐng)注意,無(wú)論是哪種同步通訊類(lèi)型的串行接口,都是對(duì)時(shí)鐘信號(hào)敏感的,而且一般數(shù)據(jù)寫(xiě)入有效是在上升沿,讀出有效是在下降沿(ds1302正是如此的,但是在芯片手冊(cè)里沒(méi)有明確說(shuō)明),如果不是特別確定,則把程序設(shè)計(jì)成這樣:平時(shí)sclk保持低電平,在時(shí)鐘變動(dòng)前設(shè)置數(shù)據(jù),在時(shí)鐘變動(dòng)后讀取數(shù)據(jù),即數(shù)據(jù)操作總是在sclk保持為低電平的時(shí)候,相鄰的操作之間間隔有一個(gè)上升沿和一個(gè)下降沿。 圖1-8 ds1302的命令字結(jié)構(gòu)第二章 電路硬件設(shè)計(jì)及分析第一節(jié) 時(shí)鐘電路 系統(tǒng)的時(shí)鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。51單片機(jī)內(nèi)部有一個(gè)用于

32、構(gòu)成振蕩器的高增益反相放大器。引腳xtal1和xtal2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體諧振器以及電容c1和c2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對(duì)外接電容的值雖然沒(méi)有嚴(yán)格的要求,但電容的大小會(huì)影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12mhz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22f。在焊接刷電路板時(shí),晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。時(shí)鐘電路如圖2-1所示。圖2-1 時(shí)鐘電路圖第二節(jié)

33、復(fù)位電路復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳rst通常采用上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式,此電路系統(tǒng)采用的是按鍵手動(dòng)復(fù)位電路,高電平時(shí)復(fù)位,如圖所示。當(dāng)時(shí)鐘頻率選用12mhz時(shí),c取22f,r約為1k。復(fù)位電路如圖2-2所示 圖2-2 復(fù)位電路圖第三節(jié) ds1302時(shí)鐘電路ds1302內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)ram,可以通過(guò)串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、星期、月、年的信息,每個(gè)月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)am/pm標(biāo)志位決定采用24或12小時(shí)時(shí)間格式。ds1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信

34、,僅需三根i/o線(xiàn):復(fù)位(rst)、i/o數(shù)據(jù)線(xiàn)、串行時(shí)鐘(sclk)。ds1302時(shí)鐘電路如圖2-3所示。 圖2-3 ds1302時(shí)鐘電路圖 第四節(jié) ds18b20溫度計(jì)電路ds18b20它具有3引腳to92小體積封裝形式,溫度測(cè)量范圍為55125,可編程為9位12位a/d轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,多個(gè)ds18b20可以并聯(lián)到3根或2根線(xiàn)上,cpu只需一根端口線(xiàn)就能與多個(gè)ds18b20通信,占用微處理器的端口較少,可節(jié)省大量的引線(xiàn)和邏輯電路。以上特點(diǎn)使ds18b20非常適用于遠(yuǎn)距離多

35、點(diǎn)溫度檢測(cè)系統(tǒng)。電路圖如圖2-4所示。 圖2-4 ds18b20溫度計(jì)電路第五節(jié) 鍵盤(pán)電路鍵盤(pán)接口是單片機(jī)應(yīng)用系統(tǒng)中最常用的接口之一,鍵盤(pán)的類(lèi)型很多,常用的有獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán),因?yàn)楸驹O(shè)計(jì)需要的鍵盤(pán)比較少,所以采用獨(dú)立式鍵盤(pán)。 在鍵盤(pán)的應(yīng)用中,需要解決鍵盤(pán)消抖的問(wèn)題,一般使用的是軟件消抖的方法。鍵盤(pán)的電路圖如圖2-5所示。 圖2-5 鍵盤(pán)電路圖第六節(jié) 顯示電路顯示器是單片機(jī)常用的功能單元之一,顯示器的主要功能是為單片機(jī)系統(tǒng)使用者提供必要的單片機(jī)工作信息,或者提供工作狀態(tài)的提示信息,顯示器的工作是由單片機(jī)通過(guò)顯示接口驅(qū)動(dòng)的。本設(shè)計(jì)采用的是lcd1602顯示電路圖如圖2-6所示。 圖2-6 l

36、cd1602顯示電路圖第七節(jié) 按鍵提示電路本設(shè)計(jì)具有按鍵蜂鳴器響的功能,使得按鍵可靠工作。按鍵提示電路如圖2-7所示。 圖2-7 按鍵提示電路如圖 第三章 軟件設(shè)計(jì)第一節(jié) 主函數(shù)流程圖主函數(shù)流程圖如圖3-1所示。 圖3-1 主函數(shù)流程圖第二節(jié) ds18b20溫度計(jì)程序流程圖ds1820溫度計(jì)程序流程圖如圖3-2所示。 圖3-2 ds1820溫度計(jì)程序流程圖第三節(jié) 按鍵程序流程圖按鍵程序流程圖如圖3-3所示。 圖3-3 按鍵程序流程圖 第四節(jié) 定時(shí)器t0中斷服務(wù)程序流程圖定時(shí)器t0中斷服務(wù)程序流程圖如圖3-4所示。 圖3-4 定時(shí)器t0中斷服務(wù)程序流程圖第四章 結(jié)束語(yǔ) 帶時(shí)鐘顯示的溫度計(jì)prot

37、eus仿真效果圖如圖4-1所示。圖4-1 帶時(shí)鐘顯示的溫度計(jì)proteus仿真效果圖附錄1 電路圖 附錄2 主程序清單#include#includeds18b20_3.h#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;#define yh 0x80 /lcd第一行的初始位置,因?yàn)閘cd1602字符地址首位d7恒定為1(100000000=80)#define er 0x80+0x40 /lcd第二行初始位置(因?yàn)榈诙械谝粋€(gè)字符位

38、置地址是0x40)sbit rs=p20;sbit en=p22;sbit rw=p21; /如果硬件上rw接地,就不用寫(xiě)這句和后面的rw=0了sbit led=p26; /lcd背光開(kāi)關(guān)sbit io=p11;sbit sclk=p10;sbit rst=p12;sbit acc0=acc0;sbit acc7=acc7;sbit key1=p15; /設(shè)置鍵sbit key2=p16; /加鍵sbit key3=p17; /減鍵sbit buzzer=p13;/蜂鳴器,通過(guò)三極管9012驅(qū)動(dòng),端口低電平響uchar code tab1=20 - - ; /年顯示的固定字符uchar cod

39、e tab2= : : ;/時(shí)間顯示的固定字符void delay(uint xms)/延時(shí)函數(shù),有參函數(shù)uint x,y;for(x=xms;x0;x-) for(y=110;y0;y-);write_1602com(uchar com)/*液晶寫(xiě)入指令函數(shù)*rs=0;/數(shù)據(jù)/指令選擇置為指令rw=0; /讀寫(xiě)選擇置為寫(xiě)p0=com;/送入數(shù)據(jù)delay(1);en=1;/拉高使能端,為制造有效的下降沿做準(zhǔn)備delay(1);en=0;/en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令write_1602dat(uchar dat)/*液晶寫(xiě)入數(shù)據(jù)函數(shù)*rs=1;/數(shù)據(jù)/指令選擇置為數(shù)據(jù)rw=0; /

40、讀寫(xiě)選擇置為寫(xiě)p0=dat;/送入數(shù)據(jù)delay(1);en=1; /en置高電平,為制造下降沿做準(zhǔn)備delay(1);en=0; /en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令lcd_init()/*液晶初始化函數(shù)*write_1602com(0x38);/設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)write_1602com(0x0c);/開(kāi)顯示不顯示光標(biāo)write_1602com(0x06);/整屏不移動(dòng),光標(biāo)自動(dòng)右移write_1602com(0x01);/清顯示write_1602com(yh+1);/日歷顯示固定符號(hào)從第一行第1個(gè)位置之后開(kāi)始顯示for(a=0;a14;a

41、+)write_1602dat(tab1a);/向液晶屏寫(xiě)日歷顯示的固定符號(hào)部分/delay(3);write_1602com(er+2);/時(shí)間顯示固定符號(hào)寫(xiě)入位置,從第2個(gè)位置后開(kāi)始顯示for(a=0;a0;a-)io=acc0;sclk=0;sclk=1;acc=acc1;uchar read_byte()/讀一個(gè)字節(jié)rst=1;for(a=8;a0;a-)acc7=io;sclk=1;sclk=0;acc=acc1;return (acc);void write_1302(uchar add,uchar dat)/向1302芯片寫(xiě)函數(shù),指定寫(xiě)入地址,數(shù)據(jù)rst=0;sclk=0;rst

42、=1;write_byte(add);write_byte(dat);sclk=1;rst=0;uchar read_1302(uchar add)/從1302讀數(shù)據(jù)函數(shù),指定讀取數(shù)據(jù)來(lái)源地址uchar temp;rst=0;sclk=0;rst=1;write_byte(add);temp=read_byte();sclk=1;rst=0;return(temp);uchar bcd_decimal(uchar bcd)/bcd碼轉(zhuǎn)十進(jìn)制函數(shù),輸入bcd,返回十進(jìn)制 uchar decimal; decimal=bcd4; return(decimal=decimal*10+(bcd&=0x

43、0f);void ds1302_init() /1302芯片初始化子函數(shù)(2010-01-07,12:00:00,week4)rst=0;sclk=0;write_1302(0x8e,0x00); /允許寫(xiě),禁止寫(xiě)保護(hù) write_1302(0x8e,0x80); /打開(kāi)寫(xiě)保護(hù)void write_temp(uchar add,uchar dat)/向lcd寫(xiě)溫度數(shù)據(jù),并指定顯示位置uchar gw,sw;gw=dat%10;/取得個(gè)位數(shù)字sw=dat/10;/取得十位數(shù)字write_1602com(er+add);/er是頭文件規(guī)定的值0x80+0x40write_1602dat(0x30+

44、sw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼write_1602dat(0x30+gw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼 write_1602dat(0xdf);/顯示溫度的小圓圈符號(hào),0xdf是液晶屏字符庫(kù)的該符號(hào)地址碼 write_1602dat(0x43);/顯示c符號(hào),0x43是液晶屏字符庫(kù)里大寫(xiě)c的地址碼void write_sfm(uchar add,uchar dat)/向lcd寫(xiě)時(shí)分秒,有顯示位置加、現(xiàn)示數(shù)據(jù),兩個(gè)參數(shù)uchar gw,sw;gw=dat%10;/取得個(gè)位數(shù)字sw=dat/10;/取得十位數(shù)字write_1602com(er+add);/e

45、r是頭文件規(guī)定的值0x80+0x40write_1602dat(0x30+sw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼write_1602dat(0x30+gw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼void write_nyr(uchar add,uchar dat)/向lcd寫(xiě)年月日,有顯示位置加數(shù)、顯示數(shù)據(jù),兩個(gè)參數(shù)uchar gw,sw;gw=dat%10;/取得個(gè)位數(shù)字sw=dat/10;/取得十位數(shù)字write_1602com(yh+add);/設(shè)定顯示位置為第一個(gè)位置+addwrite_1602dat(0x30+sw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼

46、write_1602dat(0x30+gw);/數(shù)字+30得到該數(shù)字的lcd1602顯示碼void write_week(uchar week)/寫(xiě)星期函數(shù)write_1602com(yh+0x0c);/星期字符的顯示位置switch(week)case 1:write_1602dat(m);/星期數(shù)為1時(shí),顯示 write_1602dat(o); write_1602dat(n); break; case 2:write_1602dat(t);/星期數(shù)據(jù)為2時(shí)顯示 write_1602dat(u); write_1602dat(e); break;case 3:write_1602dat(w);/星期數(shù)據(jù)為3時(shí)顯示 write_1602dat(e); write_1602dat(d); break;case 4:write_1602dat(t);/星期數(shù)據(jù)為4是顯示 write_1602dat(h); write_1602dat(u); break;case 5:write_1602dat(f);/星期數(shù)據(jù)為5時(shí)顯示 write_1602dat(r); write_1602dat(i); break;case 6:write_1602dat(s);/星期數(shù)據(jù)為6時(shí)顯示 write_1602dat(t); write

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論