基于AT89C2051單片機(jī)的溫度測(cè)控器_第1頁(yè)
基于AT89C2051單片機(jī)的溫度測(cè)控器_第2頁(yè)
基于AT89C2051單片機(jī)的溫度測(cè)控器_第3頁(yè)
基于AT89C2051單片機(jī)的溫度測(cè)控器_第4頁(yè)
基于AT89C2051單片機(jī)的溫度測(cè)控器_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE64鄭州科技學(xué)院《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)摘要 3引言 31.方案論證 51.1系統(tǒng)功能定義 51.2總體方案 52.系統(tǒng)硬件電路設(shè)計(jì) 62.1系統(tǒng)硬件框圖 62.2測(cè)溫模塊 72.2.1DS18B20的主要特征有以下幾點(diǎn) 72.2.2DS18B20的工作原理 92.3主控模塊 122.3.1主控模塊功能分析 122.3.2AT89C2051芯片的功能特性 122.4顯示模塊 142.5報(bào)警模塊 152.6電路原理圖的繪制和電路的焊接 172.6.1PROTEL簡(jiǎn)介 172.6.2電路的焊接 183.系統(tǒng)軟件設(shè)計(jì) 183.1主控程序設(shè)計(jì) 183.2溫度信息的采集 193.3溫度的顯示操作 204.調(diào)試與總結(jié) 21致謝 22參考文獻(xiàn) 24附錄 24附錄一電路原理圖 24附錄二實(shí)物圖 26附錄三系統(tǒng)主程序 27

摘要:本次實(shí)習(xí)中選擇了單片機(jī)89C2051并和DS18B20傳感器搭建硬件電路,最終實(shí)現(xiàn)了基于89C2051的單片機(jī)溫度控制器的設(shè)計(jì)。DS18B20是新型數(shù)字溫度傳感器,采用它與單片機(jī)連接測(cè)量溫度可簡(jiǎn)化溫度控制器的電路,提高可靠性。關(guān)鍵詞:89C2051單片機(jī);DS18B20溫度控制器引言計(jì)算機(jī)的發(fā)展日新月異,其技術(shù)也突飛猛進(jìn),而嵌入式計(jì)算機(jī)這種專(zhuān)用計(jì)算機(jī)在當(dāng)今科學(xué)的發(fā)展過(guò)程中更是不可或缺的。嵌入式系統(tǒng)是近年來(lái)發(fā)展很快的計(jì)算機(jī)方面的學(xué)科方向,并迅速滲透到控制、自動(dòng)化、儀器儀表等學(xué)科。嵌入式方向包括了軟硬件協(xié)同設(shè)計(jì)、嵌入式體系結(jié)構(gòu)、實(shí)時(shí)操作系統(tǒng)、嵌入式產(chǎn)品設(shè)計(jì)等方面的知識(shí),需要掌握嵌入式系統(tǒng)設(shè)計(jì)的典型開(kāi)發(fā)工具,培訓(xùn)學(xué)生具備嵌入式系統(tǒng)軟、硬件的開(kāi)發(fā)能力,對(duì)于特定行業(yè)領(lǐng)域(如移動(dòng)終端、數(shù)字家庭、信息家電以及對(duì)傳統(tǒng)產(chǎn)業(yè)信息化改造)已經(jīng)逐步形成了特定的嵌入式開(kāi)發(fā)方法與手段。隨著現(xiàn)代化信息技術(shù)的飛速發(fā)展,能獨(dú)立工作的溫度檢測(cè)系統(tǒng)已廣泛應(yīng)用與諸多的領(lǐng)域。傳統(tǒng)的溫度檢測(cè)大多以熱敏電阻為傳感器,但熱敏電阻可靠性差、測(cè)量溫度準(zhǔn)確率低,且必須經(jīng)過(guò)專(zhuān)門(mén)的接口電路轉(zhuǎn)換成數(shù)字信號(hào)后才能進(jìn)行處理。它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等優(yōu)點(diǎn),特別適合于構(gòu)成溫度檢測(cè)系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)進(jìn)行處理。DS18B20的單片機(jī)溫度控制器具有電路簡(jiǎn)單、可靠性高的優(yōu)點(diǎn)。本溫度控制器對(duì)溫度進(jìn)行實(shí)時(shí)測(cè)量并顯示,用戶可設(shè)定最高限報(bào)警溫度值和最低限報(bào)警溫度值,有一定的溫度控制功能。溫度是農(nóng)業(yè)生產(chǎn)中常見(jiàn)的工藝參數(shù)之一,任何物理變化和化學(xué)反應(yīng)過(guò)程都與溫度密切相關(guān),因此溫度控制是工業(yè)現(xiàn)代化的重要任務(wù)。對(duì)于不同生產(chǎn)情況和工藝要求下的溫度控制,所采用的加熱方式、燃料、控制方案也有所不同。單片機(jī)又稱(chēng)單片微控制器,是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上,它的體積小、質(zhì)量輕、價(jià)格便宜,應(yīng)用和開(kāi)發(fā)十分便利。本文選用AT89C2051芯片做為控制器,并采用ds18b20數(shù)碼管顯示及12M晶振產(chǎn)生時(shí)鐘信號(hào),分析了系統(tǒng)硬件各組成之間的通訊協(xié)議。1.方案論證1.1系統(tǒng)功能定義根據(jù)設(shè)計(jì)要求,可以先大致勾勒出要完成設(shè)計(jì),需要幾個(gè)模塊具有如下圖所示的的功能,圖1.1功能模塊框圖1.2總體方案通過(guò)對(duì)系統(tǒng)功能的定義,可以將基于單片機(jī)的數(shù)字溫度計(jì)采用溫度傳感器DS18B20作為測(cè)溫元件用來(lái)滿足溫度測(cè)量,并將溫度信號(hào)經(jīng)由其本身所具有的A/D轉(zhuǎn)換功能,轉(zhuǎn)換成數(shù)字信號(hào)經(jīng)單片機(jī)處理顯示于數(shù)碼管顯示器,從而完成溫度的測(cè)量和顯示。整個(gè)系統(tǒng)控制將由AT89C2051單片機(jī)芯片為核心構(gòu)成。選用DS18B20作為測(cè)溫元件,數(shù)碼管作為顯示器件,各個(gè)檢測(cè)信號(hào)、顯示信號(hào)可由單片機(jī)的I/O口進(jìn)行。設(shè)計(jì)任務(wù):用單片機(jī)設(shè)計(jì)一個(gè)測(cè)溫范圍在—55~125℃的數(shù)字溫度計(jì)。設(shè)計(jì)要求:完成該系統(tǒng)的軟硬件設(shè)計(jì),學(xué)習(xí)掌握單片機(jī)采集溫度的設(shè)計(jì)方法提高學(xué)習(xí)新知識(shí)、新技能的能力,培養(yǎng)獨(dú)立設(shè)計(jì)的能力2.系統(tǒng)硬件電路設(shè)計(jì)2.1系統(tǒng)硬件框圖根據(jù)系統(tǒng)功能要求,可以先大致勾勒出完成任務(wù)所需的系統(tǒng)硬件框圖如下:圖2.1硬件結(jié)構(gòu)框圖主控模塊采用性價(jià)比較高的單片機(jī)芯片,在其內(nèi)部將預(yù)設(shè)好的程序儲(chǔ)存,可通過(guò)程序的運(yùn)行控制測(cè)溫模塊進(jìn)行測(cè)溫,測(cè)溫模塊主要是由DS18B20構(gòu)成,將其與所測(cè)對(duì)象進(jìn)行接觸即可獲取被測(cè)對(duì)象的溫度數(shù)據(jù),報(bào)警模塊只有當(dāng)溫度超出預(yù)定值時(shí)才會(huì)工作,而所測(cè)得的溫度將通過(guò)顯示模塊的液晶顯示器以數(shù)字形式顯示。2.2測(cè)溫模塊本設(shè)計(jì)的測(cè)溫元件采用的是DS18B20測(cè)溫元件,DS18B20是由DALLAS(達(dá)拉斯)公司生產(chǎn)的一種溫度傳感器。超小的體積,超低的硬件開(kāi)消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20很受歡迎。這是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過(guò)單線接口送入DS18B20或從DS18B20送出,因此從單片機(jī)到DS18B20僅需一條線連接即可。它可在1秒鐘(典型值)內(nèi)把溫度變換成數(shù)字。2.2.1DS18B20的主要特征有以下幾點(diǎn)全數(shù)字溫度轉(zhuǎn)換及輸出;先進(jìn)的單總線數(shù)據(jù)通信;最高12位分辨率,精度可達(dá)土0.5℃;12位分辨率時(shí)的最大工作周期為750毫秒;可選擇寄生工作方式;檢測(cè)溫度范圍為–55℃——+125℃;內(nèi)置EEPROM,限溫報(bào)警功能;64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接;多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。圖2.2DS18B20管腳排列及封裝結(jié)構(gòu)圖圖2.3DS18B20實(shí)物圖由其引腳可看出,其3個(gè)引腳:GND為電壓地直接接地;DQ為單數(shù)據(jù)總線用來(lái)與單片機(jī)相連接,本系統(tǒng)中DQ與單片機(jī)P3.5接口連接,僅此一個(gè)連接就能保證DS18B20與單片機(jī)之間的數(shù)據(jù)交換;VDD引腳接電源電壓[12]。圖2.4DS18B20寄生電源工作方式圖2.5DS18B20外接電源工作方式2.2.2DS18B20的工作原理DS18B20的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)和數(shù)據(jù)處理。18B20共有三種形態(tài)的存儲(chǔ)器資源,分別是:ROM只讀存儲(chǔ)器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號(hào),最后8位是以上56的位的CRC碼(冗余校驗(yàn))。數(shù)據(jù)在出產(chǎn)時(shí)設(shè)置不由用戶更改。DS18B20共64位ROM,RAM數(shù)據(jù)暫存器,用于內(nèi)部計(jì)算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20共9個(gè)字節(jié)RAM,每個(gè)字節(jié)為8位。第1、2個(gè)字節(jié)是溫度轉(zhuǎn)換后的數(shù)據(jù)值信息,第3、4個(gè)字節(jié)是用戶EEPROM(常用于溫度報(bào)警值儲(chǔ)存)的鏡像。在上電復(fù)位時(shí)其值將被刷新。第5個(gè)字節(jié)則是用戶第3個(gè)EEPROM的鏡像。第6、7、8個(gè)字節(jié)為計(jì)數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計(jì)的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計(jì)算的暫存單元。第9個(gè)字節(jié)為前8個(gè)字節(jié)的CRC碼。EEPROM非易失性記憶體,用于存放長(zhǎng)期需要保存的數(shù)據(jù),上下限溫度報(bào)警值和校驗(yàn)數(shù)據(jù),DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。我們?cè)诿恳淮巫x溫度之前都必須進(jìn)行復(fù)雜的且精準(zhǔn)時(shí)序的處理,因?yàn)镈S18B20的硬件簡(jiǎn)單結(jié)果就會(huì)導(dǎo)致軟件的巨大開(kāi)消。圖2.6DS18B20的內(nèi)部結(jié)構(gòu)框圖低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,為計(jì)數(shù)器提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值。圖2.7DS18B20的內(nèi)部測(cè)溫電路框圖2.3主控模塊2.3.1主控模塊功能分析在本系統(tǒng)中,主控模塊居于非常重要的地位。它是整個(gè)系統(tǒng)的中樞,系統(tǒng)運(yùn)行所需的每個(gè)操作指令都要由其發(fā)出。它一方面控制著測(cè)溫模塊進(jìn)行溫度信息的采集,另一方面也控制著顯示模塊的工作。最重要的是,由測(cè)溫模塊所采集到的溫度信息必須經(jīng)由主控模塊的處理才能在顯示模塊上顯示,從而使整個(gè)系統(tǒng)進(jìn)行正常的運(yùn)轉(zhuǎn)和工作。針對(duì)以上分析本系統(tǒng)主控模塊中的單片機(jī)芯片采用了AT89C2051芯片,此芯片功能強(qiáng)大,能夠完全滿足系統(tǒng)運(yùn)行的需求。2.3.2AT89C2051芯片的功能特性AT89C2051是美國(guó)Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī)[6-7],片內(nèi)含有2KB的反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器和128B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能傳感器。數(shù)字溫度計(jì)是以DS18B20為檢測(cè)元件,由AT89C2051作為主控制器的溫度計(jì),具有功耗低、結(jié)構(gòu)簡(jiǎn)單、讀數(shù)方便、測(cè)溫范圍廣、測(cè)溫準(zhǔn)確的特點(diǎn)。AT89C2051是MCS-51產(chǎn)品的兼容型,它具有2k的FLASHROM、128字ROM,15根I/O引線、兩個(gè)16位定時(shí)/計(jì)數(shù)器、一個(gè)五向量?jī)杉?jí)中斷結(jié)構(gòu)、一個(gè)全雙工串行口、一個(gè)精密模擬比較器以及片內(nèi)振蕩電路和時(shí)鐘電路。它的P1口和P3口是雙向I/O口,其中P1.2~P1.7、P3.0~P3.5和P3.7帶有內(nèi)部上拉電阻。在AT89C2051用作輸入端時(shí),將首先向引腳寫(xiě)“1”而使內(nèi)部MOS管截止以便引腳處于懸浮狀態(tài),從而可獲得高阻抗輸入。

其主要性能如下:與MCS-51單片機(jī)產(chǎn)品兼容2K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器1000次擦寫(xiě)周期全靜態(tài)操作:0Hz~24Hz兩級(jí)加密程序存儲(chǔ)器15個(gè)可編程I/O口線兩個(gè)16位定時(shí)器/計(jì)數(shù)器六個(gè)中斷源可編串行UART通道128×8位內(nèi)部RAM直接LED驅(qū)動(dòng)輸出低功耗空載和掉電方式片內(nèi)模擬比較器2.7V~6V的操作范圍圖2.8AT89C2051的引腳結(jié)構(gòu)2.4顯示模塊本系統(tǒng)最突出的特點(diǎn)就是能方便直觀地對(duì)所測(cè)溫度進(jìn)行讀取,因此顯示模塊的選取極為重要,由三位共陽(yáng)數(shù)碼管(溫度值顯示)作為顯示模塊。采用動(dòng)態(tài)掃描的方法,其中P3.0,P3.1,P3.2,P3.3控制位選,P1控制段選。由P3.0,P3.1,P3.2,P3.3向各位輪流輸出掃描信號(hào),使每一瞬間只有一個(gè)數(shù)碼管被選通,然后由P1送入該位所要顯示的字形碼,點(diǎn)亮該位字形段顯示的字形。在P1送出的碼段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各個(gè)數(shù)碼管輪流點(diǎn)亮顯示各自的字形。注:下為三位共陽(yáng)數(shù)碼管圖,顯示攝氏度符號(hào)的一位共陽(yáng)數(shù)碼管倒置焊接即可。圖2.9三位共陽(yáng)數(shù)碼管圖圖2.10七段數(shù)碼管引腳圖2.5報(bào)警模塊本系統(tǒng)采用3mm的發(fā)光二極管作為報(bào)警裝置,發(fā)光二極管簡(jiǎn)稱(chēng)為L(zhǎng)ED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當(dāng)電子與空穴復(fù)合時(shí)能輻射出可見(jiàn)光,因而可以用來(lái)制成發(fā)光二極管。在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。磷砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光。發(fā)光二極管的核心部分是由P型半導(dǎo)體和N型半導(dǎo)體組成的晶片,在P型半導(dǎo)體和N型半導(dǎo)體之間有一個(gè)過(guò)渡層,稱(chēng)為PN結(jié)。在某些半導(dǎo)體材料的PN結(jié)中,注入的少數(shù)載流子與多數(shù)載流子復(fù)合時(shí)會(huì)把多余的能量以光的形式釋放出來(lái),從而把電能直接轉(zhuǎn)換為光能。PN結(jié)加反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種利用注入式電致發(fā)光原理制作的二極管叫發(fā)光二極管,通稱(chēng)LED。當(dāng)它處于正向工作狀態(tài)時(shí)(即兩端加上正向電壓),電流從LED陽(yáng)極流向陰極時(shí),半導(dǎo)體晶體就發(fā)出從紫外到紅外不同顏色的光線,光的強(qiáng)弱與電流有關(guān)。圖2.11發(fā)光二極管的構(gòu)造圖選用發(fā)光二極管的好處:1.效能:消耗能量較同光效的白熾燈減少80%2.適用性:體積很小,每個(gè)單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環(huán)境3.穩(wěn)定性:10萬(wàn)小時(shí),光衰為初始的50%4.響應(yīng)時(shí)間:其白熾燈的響應(yīng)時(shí)間為毫秒級(jí),LED燈的響應(yīng)時(shí)間為納秒級(jí)對(duì)環(huán)境污染無(wú)有害金屬汞2.6電路原理圖的繪制和電路的焊接在硬件的設(shè)計(jì)前期,根據(jù)框圖對(duì)電路中可能出現(xiàn)的電路,進(jìn)行了模擬實(shí)驗(yàn),并根據(jù)實(shí)驗(yàn)結(jié)果對(duì)后期的硬件設(shè)計(jì)進(jìn)行了合理化的修改完善。在第一章中已分析了系統(tǒng)并繪制了框圖,并根據(jù)框圖分別設(shè)計(jì)了各部分電路。由于溫度傳感器DS18B20集成度較高,所以在硬件電路設(shè)計(jì)時(shí)不需要太多其他元件即可實(shí)現(xiàn)預(yù)期功能。因此在PROTEL上對(duì)原理圖進(jìn)行了繪制,從而得出了最終的完整電路原理圖[附錄一]。2.6.1PROTEL簡(jiǎn)介PROTEL是PORTEL公司在80年代末推出的EDA軟件,在電子行業(yè)的CAD軟件中,它當(dāng)之無(wú)愧地排在眾多EDA軟件的前面,是電子設(shè)計(jì)者的首選軟件,它包含了電原理圖繪制、模擬電路與數(shù)字電路混合信號(hào)仿真、多層印制電路板設(shè)計(jì)(包含印制電路板自動(dòng)布線)、可編程邏輯器件設(shè)計(jì)、圖表生成、電子表格生成、支持宏操作等功能,并具有Client/Server(客戶/服務(wù)器)體系結(jié)構(gòu),同時(shí)還兼容一些其它設(shè)計(jì)軟件的文件格式,如ORCAD,PSPICE,EXCEL等,其多層印制線路板的自動(dòng)布線可實(shí)現(xiàn)高密度PCB的100%布通率。Protel99SE采用數(shù)據(jù)庫(kù)的管理方式。該軟件沿襲了Protel以前版本方便易學(xué)的特點(diǎn),內(nèi)部界面與Protel99大體相同,新增加了一些功能模塊,功能更加強(qiáng)大。新增的層堆棧管理功能,可以設(shè)計(jì)32個(gè)信號(hào)層,16個(gè)地電層,16個(gè)機(jī)械層。新增的3D功能在加工印制版之前可以看到板的三維效果。其具有的打印功能,可以輕松修改打印設(shè)置控制打印結(jié)果。Protel99SE容易使用的特性還體現(xiàn)在其幫助功能,按下右上角的小問(wèn)號(hào),然后輸入你所要的信息,可以很快地看到特性的功能,然后用到設(shè)計(jì)中,按下?tīng)顟B(tài)欄末端的按鈕,使用幫助顧問(wèn)。2.6.2電路的焊接當(dāng)通過(guò)PROTEL繪制出完整的電路原理圖后,就可以按照繪制好的原理圖進(jìn)行電路的焊接,焊接時(shí)要注意虛焊和短路情況出現(xiàn)。焊接是要先焊單片機(jī)的主電路,以便于對(duì)各部分電路的測(cè)試。當(dāng)焊完一部分子電路后,要先輸入子程序進(jìn)行檢測(cè),看是否有輸入或輸出。焊完后,就可以進(jìn)行電路總體性能測(cè)試了。在測(cè)試之前,一定要先對(duì)電路檢測(cè),看是否有短路情況出現(xiàn),以免芯片損壞。電源輸入電壓也是關(guān)鍵因素,在供電之前先量量。3.系統(tǒng)軟件設(shè)計(jì)3.1主控程序設(shè)計(jì)通過(guò)對(duì)系統(tǒng)工作原理的了解,我們可以大致知道系統(tǒng)軟件運(yùn)行工作的流程圖如下:圖3.1系統(tǒng)運(yùn)行流程圖當(dāng)接通電源開(kāi)始工作后,單片機(jī)中的程序開(kāi)始運(yùn)行,將對(duì)DS18B20進(jìn)行初始化,以便單片機(jī)芯片和DS18B20達(dá)成通信協(xié)議。完成初始化后,由于本系統(tǒng)只有一個(gè)測(cè)溫元件,單片機(jī)會(huì)向其發(fā)出跳過(guò)ROM指令,接下來(lái)便可向其發(fā)送操作指令,設(shè)定溫度上下限,啟動(dòng)測(cè)溫程序。測(cè)溫過(guò)程完成后,發(fā)出溫度轉(zhuǎn)換指令,從而便可將溫度轉(zhuǎn)化成數(shù)字模式進(jìn)行顯示讀取。3.2溫度信息的采集通過(guò)DS18B20單線總線的所有執(zhí)行處理都從一個(gè)初始化序列開(kāi)始。初始化序列包括一個(gè)由總線控制器發(fā)出的復(fù)位脈沖和隨后由從機(jī)發(fā)出的存在脈沖:1、復(fù)位:首先我們必須對(duì)DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給DS18B20單總線至少480uS的低電平信號(hào)。當(dāng)18B20接到此復(fù)位信號(hào)后則會(huì)在15~60uS后回發(fā)一個(gè)芯片的存在脈沖。2、存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個(gè)60~240uS的低電平信號(hào)。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來(lái)將會(huì)是控制器與18B20間的數(shù)據(jù)通信。3、控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM指令共有5條,每一個(gè)工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報(bào)警芯片搜索。4、控制器發(fā)送存儲(chǔ)器操作指令:在ROM指令發(fā)送給18B20之后,緊接著(不間斷)就是發(fā)送存儲(chǔ)器操作指令了。操作指令同樣為8位,共6條,存儲(chǔ)器操作指令分別是寫(xiě)RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報(bào)警值復(fù)制到RAM、工作方式切換。5、執(zhí)行或數(shù)據(jù)讀寫(xiě):一個(gè)存儲(chǔ)器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù)的讀寫(xiě),這個(gè)操作要視存儲(chǔ)器操作指令而定。3.3溫度的顯示操作①如電路正常,接通電源后,只顯示“oC”符號(hào),無(wú)溫度值;②按下AN3,先顯示上次存貯下來(lái)的設(shè)定溫度(報(bào)警控制)值,然后再顯示環(huán)境溫度值,并隨環(huán)境溫度的變化而變化;③再按一下AN3,溫度數(shù)字閃爍,待調(diào)節(jié);④接著按AN1或AN2:按AN1為報(bào)警溫度值變大,最大為125oC;按AN2為報(bào)警溫度值變小,最小為-55oC;⑤調(diào)好后再按一下AN3,調(diào)好的報(bào)警溫度值被存貯,數(shù)碼管又顯示環(huán)境溫度。當(dāng)溫度達(dá)到存貯的報(bào)警值時(shí),電路發(fā)出報(bào)警信號(hào)和動(dòng)作。4.調(diào)試與總結(jié)在硬件電路焊接和軟件程序設(shè)計(jì)分別完成的基礎(chǔ)之上,進(jìn)行軟硬件的結(jié)合與調(diào)試。通過(guò)下載將在電腦上已完成的程序下載到單片機(jī)芯片中。在調(diào)試中發(fā)現(xiàn)軟件中存在的問(wèn)題,及時(shí)解決問(wèn)題,確保系統(tǒng)能正常工作并達(dá)到設(shè)計(jì)要求。通過(guò)反復(fù)的調(diào)試與實(shí)驗(yàn),可以證明該系統(tǒng)能夠較好地完成設(shè)計(jì)所需的基本要求。即能夠方便準(zhǔn)確的對(duì)被測(cè)對(duì)象進(jìn)行溫度測(cè)量。同時(shí)在完成設(shè)計(jì)要求的前提下,充分考慮到了外觀,成本等問(wèn)題,在性能和價(jià)格之間作了比較好的平衡。雖然整體性能良好,但尚存在些許不足,系統(tǒng)穩(wěn)定性不夠,需要增強(qiáng)自己的焊接水平以便以后避免出現(xiàn)類(lèi)似問(wèn)題。本溫度采集系統(tǒng)實(shí)用性強(qiáng),結(jié)構(gòu)較為簡(jiǎn)單,成本低,外接元件少。在實(shí)際應(yīng)用中工作性能穩(wěn)定,測(cè)量溫度準(zhǔn)確,精度較高。系統(tǒng)在硬件設(shè)計(jì)上充分考慮到了可擴(kuò)展性,經(jīng)過(guò)一定的添加或改造,很容易增加功能。本系統(tǒng)適用范圍廣泛,可以單獨(dú)使用作為監(jiān)控儀,應(yīng)用于農(nóng)業(yè)溫室大棚監(jiān)測(cè)植物生長(zhǎng)的環(huán)境變化,工業(yè)廠房測(cè)量各部分的工作溫度等等。也可以作為智能控制系統(tǒng)的一部分,與其它設(shè)備協(xié)同工作。系統(tǒng)移植性強(qiáng),只需改變前端測(cè)量用的傳感器類(lèi)型,可在此基礎(chǔ)上修改為其他非電量參數(shù)的測(cè)量系統(tǒng)。致謝通過(guò)此次畢業(yè)設(shè)計(jì),我學(xué)到了很多知識(shí)。在實(shí)物的設(shè)計(jì)和論文的寫(xiě)作過(guò)程中,通過(guò)查資料和搜集有關(guān)的文獻(xiàn),培養(yǎng)了自學(xué)能力。通過(guò)對(duì)硬件電路的設(shè)計(jì)和焊接,增強(qiáng)了自己的動(dòng)手能力。并且由原來(lái)的被動(dòng)接受知識(shí)轉(zhuǎn)換為主動(dòng)的尋求知識(shí),學(xué)會(huì)了更好地讓所學(xué)知識(shí)與實(shí)踐相結(jié)合,讓書(shū)本上的知識(shí)與實(shí)際生活中的具體應(yīng)用相結(jié)合。讓自己切實(shí)感覺(jué)到了學(xué)有所用。并在此期間鞏固復(fù)習(xí)了在大學(xué)4年內(nèi)學(xué)過(guò)的知識(shí),尤其是單片機(jī)和模電,數(shù)電方面的知識(shí)。同時(shí)通過(guò)這次畢業(yè)設(shè)計(jì)提高了自己的單片機(jī)編程的能力,尤其是獲得的軟件調(diào)試經(jīng)驗(yàn),同時(shí)也讓自己知道了自己不足和缺陷,從而為自己能更好的改進(jìn)提供了幫助。在此,首先感謝我的老師,感謝各位老師這四年中在學(xué)習(xí)中、生活上的關(guān)心和照顧;其次感謝各位同學(xué),同學(xué)們?cè)谏钪薪o予很大的幫助,在學(xué)習(xí)上也給極大的鼓舞。指導(dǎo)老師項(xiàng)仕標(biāo)教授和葛明濤講師治學(xué)嚴(yán)謹(jǐn),學(xué)識(shí)淵博,平易近人,在我做設(shè)計(jì)和論文期間對(duì)我的教誨和指導(dǎo)將使我終生受益。無(wú)論是在平時(shí)的階段,還是在論文的選題、資料查詢、開(kāi)題、研究、設(shè)計(jì)和撰寫(xiě)的每一個(gè)環(huán)節(jié),都得到導(dǎo)師的悉心指導(dǎo)和幫助。借此機(jī)會(huì)向項(xiàng)仕標(biāo)教授和葛明濤講師表示衷心的感謝!在畢業(yè)設(shè)計(jì)的這段時(shí)間里,其他老師們也都言傳身教,以他們廣博的知識(shí),敏銳的洞察力,多年的教學(xué)和實(shí)際工作經(jīng)驗(yàn),在畢業(yè)設(shè)計(jì)上給予我很大的幫助。在本次設(shè)計(jì)中我學(xué)到的不僅是科學(xué)知識(shí)和工作方法,更學(xué)到了作為一個(gè)研究人員應(yīng)有的治學(xué)態(tài)度以及為人處世的道理,這一切都將使我終身受益。謹(jǐn)在此向各位老師致以崇高的敬意和衷心的感謝!感謝幾年來(lái)傳授我知識(shí)的老師們,更要感謝我的家人對(duì)我學(xué)業(yè)上的支持和鼓勵(lì),感謝所有關(guān)心幫助過(guò)我的人。參考文獻(xiàn)[1]譚浩強(qiáng)《C程序設(shè)計(jì)》清華大學(xué)出版社1999.12[2]李群芳肖看《單片機(jī)原理,接口及應(yīng)用》清華大學(xué)出版社2005.3[3]張義和王敏男《例說(shuō)51單片機(jī)》人民郵電出版社2008.4[4]蔡美琴?gòu)垶槊瘛禡CS-51系列單片機(jī)系統(tǒng)及其應(yīng)用》高等教育出版社1992[5]高峰《單片微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及實(shí)用技術(shù)》機(jī)械工程出版社2004[6]楊全勝《現(xiàn)代微機(jī)原理與接口技術(shù)》電子工業(yè)出版社2004[7]全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì)《全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品精選(1994——1999)》北京理工大學(xué)出版社2003.[8]謝淑如鄭光欽楊渝生《ProtelPCB99SE電路版設(shè)計(jì)》清華大學(xué)出版社[9]何立民《單片機(jī)應(yīng)用技術(shù)選編》北京航空航天大學(xué)出版社,1993.2[10]段九洲《放大電路實(shí)用設(shè)計(jì)手冊(cè)》遼寧科學(xué)技術(shù)出版社,2002.5[11]李炎清《畢業(yè)論文寫(xiě)作與范例》廈門(mén)大學(xué)出版社2006.10附錄附錄一電路原理圖附錄二實(shí)物圖附錄三系統(tǒng)主程序/*溫度控制器V1.5顯示為三個(gè)共陽(yáng)極LED溫度傳感器用單總線DS18B20CPU為2051,三個(gè)按鍵,分別為UP,DOWN,SET溫度調(diào)節(jié)上限為125度,下限為-55度只能用于單只18B20*/#include<AT89X051.H>#include<intrins.h>#defineKey_UPP3_0//上調(diào)溫度#defineKey_DOWNP3_1//下調(diào)溫度#defineKey_SETP1_7//設(shè)定鍵(溫度設(shè)定,長(zhǎng)按開(kāi)電源)#defineRelayOutPortP3_5//繼電器輸出#defineLEDPortP1//LED控制口#defineLEDOneCP3_2//LEDDS1控制(百位)#defineLEDTwoCP3_3//LEDDS2控制(十位)#defineLEDThreeCP3_4//LEDDS3控制(個(gè)位)#defineTMPort P3_7 //DS1820DataPortunsignedcharcodeLEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};//0-9的LED筆劃,0xFF為空,0xF7為負(fù)號(hào)staticunsignedcharbdataStateREG; //可位尋址的狀態(tài)寄存器sbitDS1820ON=StateREG^0; //DS1820是否存在sbitSetTF=StateREG^1;//是否是在溫度設(shè)置狀態(tài)sbitKeySETDown=StateREG^2;//是否已按過(guò)SET鍵標(biāo)識(shí)sbitPowTF=StateREG^3;//電源電源標(biāo)識(shí)sbitKeyTF=StateREG^4; //鍵盤(pán)是否允許//sbitKeySETDowning=StateREG^5; //SET是否正在按下staticunsignedcharbdataTLV_at_0x0029;//溫度變量高低位staticunsignedcharbdataTHV_at_0x0028;staticsignedcharTMV;//轉(zhuǎn)換后的溫度值staticunsignedcharKeyV,TempKeyV;//鍵值staticsignedcharTMRomV_at_0x0027;//高溫限制staticsignedcharTMSetV_at_0x0026;//溫度設(shè)定值staticunsignedcharKSDNum;//SET鍵連按時(shí)的采集次數(shù)staticunsignedcharIntNum,IntNum2,IntNum3;//中斷發(fā)生次數(shù),IntNum用于SET長(zhǎng)按檢測(cè),IntNum2用于設(shè)定狀態(tài)時(shí)LED閃爍staticsignedcharLED_One,LED_Two,LED_Three;//LED的顯示位LED_One為十位,LED_Two為個(gè)位staticunsignedcharSign;//負(fù)號(hào)標(biāo)識(shí)voidmain(void){ voidInitDS1820(void);//定義函數(shù) voidROMDS1820(void); voidTMVDS1820(void); voidTMRDS1820(void); voidTMWDS1820(void); voidTMREDS1820(void); voidTMERDS1820(void); voidReadDS1820(void); voidWriteDS1820(void); voidDelay_510(void); voidDelay_110(void); voidDelay_10ms(void); voidDelay_4s(void); voidV2ToV(void); StateREG=0;//初始化變量 SetTF=1; PowTF=1; //關(guān)電源 THV=0; TLV=0; TMV=0; KeyV=0; TempKeyV=0; KSDNum=0; IntNum=0; IntNum2=0; IntNum3=0; LED_One=0; LED_Two =0; InitDS1820();//初始化 ROMDS1820(); //跳過(guò)ROM TMERDS1820();//E2PRAM中溫度上限值調(diào)入RAM InitDS1820();//初始化 ROMDS1820(); //跳過(guò)ROM TMRDS1820(); //讀出溫度指令 ReadDS1820();//讀出溫度值和上限值 TMSetV=TMRomV;//拷貝保存在DS18B20ROM里的上限值到TMSetV EA=1; //允許CPU中斷 ET0=1; //定時(shí)器0中斷打開(kāi) TMOD=0x1; //設(shè)定時(shí)器0為模式1,16位模式 TH0=0xB1; TL0=0xDF; //設(shè)定時(shí)值為20000us(20ms) TR0=1; //開(kāi)始定時(shí) while(1);}//定時(shí)器0中斷外理中鍵掃描和顯示voidKeyAndDis_Time0(void)interrupt1using2{TH0=0xB1; TL0=0xDF; //設(shè)定時(shí)值為20000us(20ms) LEDPort=0xFF;if(!Key_UP)KeyV=1;if(!Key_DOWN)KeyV=2;if(!Key_SET)KeyV=3; //KeySETDowning=0;//清除if(KeyV!=0)//有鍵按下{Delay_10ms();//延時(shí)防抖按下10ms再測(cè)if(!Key_UP)TempKeyV=1;if(!Key_DOWN)TempKeyV=2;if(!Key_SET)TempKeyV=3;if(KeyV==TempKeyV)//兩次值相等為確定接下了鍵{if(KeyV==3)//按下SET鍵,如在SET狀態(tài)就退出,否則進(jìn)入{ //KeySETDowning=1;//表明SET正在按下PowTF=0;//電源標(biāo)識(shí)開(kāi) if(!KeyTF) if(SetTF) { SetTF=0;//標(biāo)識(shí)位標(biāo)識(shí)退出設(shè)定 InitDS1820();//初始化 ROMDS1820(); //跳過(guò)ROM TMWDS1820(); //寫(xiě)溫度上限指令 WriteDS1820(); //寫(xiě)溫度上限到DS18B20ROM WriteDS1820(); //寫(xiě)溫度上限到DS18B20ROM WriteDS1820(); //寫(xiě)溫度上限到DS18B20ROM InitDS1820();//初始化 ROMDS1820(); //跳過(guò)ROM TMREDS1820(); //溫度上限值COPY回E2PRAM } else SetTF=1;if(!KeySETDown)//沒(méi)有第一次按下SET時(shí),KeySETDown標(biāo)識(shí)置1KeySETDown=1;elseKSDNum=KSDNum+1;//前一秒內(nèi)有按過(guò)SET則開(kāi)始計(jì)數(shù)}if(SetTF)//在SET狀態(tài)下{if((KeyV==1)&&(!KeyTF))TMSetV=TMSetV+1;//上調(diào)溫度if((KeyV==2)&&(!KeyTF))TMSetV=TMSetV-1;//下調(diào)溫度if(TMSetV<=-55)//限制溫度上下限TMSetV=-55;if(TMSetV>=125)TMSetV=125;} if((!KeyTF)&&(IntNum3==0))KeyTF=1;//當(dāng)鍵盤(pán)處于可用時(shí),鎖定}if(KeySETDown)//在2秒內(nèi)按下了SET則計(jì)中斷發(fā)生次數(shù)用于長(zhǎng)按SET時(shí)計(jì)時(shí)用IntNum=IntNum+1;if(IntNum>55)//中斷發(fā)生了55次時(shí)(大約1.2秒)75為1.5秒左右{IntNum=0; KeySETDown=0;if(KSDNum==55)//如一直長(zhǎng)按了SET1.2秒左右{RelayOutPort=1;//關(guān)閉繼電器輸出PowTF=1;//電源標(biāo)識(shí)關(guān)LEDOneC=0;LEDTwoC=0;LEDThreeC=0;LEDPort=0xBF;//顯示"--"Delay_4s();//延時(shí)LEDOneC=1;LEDTwoC=1;//關(guān)顯示LEDThreeC=1;Delay_4s(); IntNum=0; IntNum2=0; IntNum3=0;}KSDNum=0;}}KeyV=0;TempKeyV=0;//清空變量準(zhǔn)備下次鍵掃描if(!PowTF){InitDS1820(); //初始化ROMDS1820(); //跳過(guò)ROMTMVDS1820();//溫度轉(zhuǎn)換指令Delay_510();Delay_510();//延時(shí)等待轉(zhuǎn)換完成InitDS1820();//初始化ROMDS1820(); //跳過(guò)ROMTMRDS1820(); //讀出溫度指令ReadDS1820();//讀出溫度值V2ToV();//轉(zhuǎn)換顯示值if(TMV>TMSetV)//根據(jù)采集到的溫度值控制繼電器{RelayOutPort=0; }else {RelayOutPort=1; }if(SetTF)IntNum2=IntNum2+1;//用于閃爍計(jì)數(shù)if(IntNum2>50)IntNum2=0; if(KeyTF)IntNum3=IntNum3+1;//用于防止按鍵連按 if(IntNum3>25) { IntNum3=0; KeyTF=0; }if((SetTF)&&(IntNum2<25))gotoInitEnd;//計(jì)數(shù)在后半段時(shí)顯示LEDPort=LED_One;LEDOneC=0;Delay_510();LEDOneC=1;//顯示百位數(shù)LEDPort=LED_Two;LEDTwoC=0;Delay_510();LEDTwoC=1;//顯示十位數(shù)LEDPort=LED_Three;LEDThreeC=0;Delay_510();LEDThreeC=1;//顯示個(gè)位數(shù)}InitEnd:;}voidV2ToV(void) //數(shù)值轉(zhuǎn)換{TLV=TLV>>4; THV=THV<<4; //讀出的高低位數(shù)值移位TMV=TLV|THV; //合并高低位放入TM為實(shí)際溫度值 Sign=0;if(SetTF||!Key_SET)Sign=TMSetV>>7;//取符號(hào)elseSign=TMV>>7; if(Sign) { if(SetTF||!Key_SET) { LED_One=(~(TMSetV-1))/100;//SET狀態(tài)下顯示設(shè)定值 LED_Two=((~(TMSetV-1))-LED_One*100)/10; LED_Three=(~(TMSetV-1))-LED_One*100-LED_Two*10; } else { LED_One=(~TMV)/100; //轉(zhuǎn)換百位值 LED_Two=((~TMV)-LED_One*100)/10; LED_Three=(~TMV)-LED_One*100-LED_Two*10; } } else { if(SetTF||!Key_SET) { LED_One=(TMSetV)/100;//SET狀態(tài)下顯示設(shè)定值 LED_Two=(TMSetV-LED_One*100)/10; LED_Three=TMSetV-LED_One*100-LED_Two*10; } else { LED_One=(TMV)/100; //轉(zhuǎn)換百位值 LED_Two=(TMV-LED_One*100)/10; LED_Three=TMV-LED_One*100-LED_Two*10; } }//轉(zhuǎn)LED字段 if(LED_One)//超過(guò)百時(shí)十位的處理 LED_Two=LEDDis[LED_Two]; else { if(LED_Two==0) LED_Two=LEDDis[10]; else LED_Two=LEDDis[LED_Two]; } if(Sign) LED_One=LEDDis[11]; else { if(LED_One==0) LED_One=LEDDis[10]; else LED_One=LEDDis[LED_One]; } LED_Three=LEDDis[LED_Three];}voidInitDS1820(void) //初始化DS1820{ TMPort=1; //拉高TMPort _nop_();//保持一個(gè)周期 TMPort=0; //拉低TMPortDelay_510();//延時(shí)DS1820復(fù)位時(shí)間要500us的低電平TMPort=1;//拉高TMPort _nop_();//保持 _nop_(); _nop_();Delay_110();//延時(shí)110us等待DS1820回應(yīng)if(!TMPort)//回應(yīng)信號(hào)為低電平DS1820ON=1;elseDS1820ON=0;Delay_110();//延時(shí)Delay_110();TMPort=1;//拉高TMPort}voidROMDS1820(void)//跳過(guò)ROM匹配{#pragmaasmMOVA,#0CCHMOVR2,#8CLRCWR1:CLRP3_7MOVR3,#6DJNZR3,$RRCAMOVP3_7,CMOVR3,#23DJNZR3,$SETBP3_7NOPDJNZR

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論