畢業(yè)論文(燒水恒溫系統(tǒng))_第1頁(yè)
畢業(yè)論文(燒水恒溫系統(tǒng))_第2頁(yè)
畢業(yè)論文(燒水恒溫系統(tǒng))_第3頁(yè)
畢業(yè)論文(燒水恒溫系統(tǒng))_第4頁(yè)
畢業(yè)論文(燒水恒溫系統(tǒng))_第5頁(yè)
已閱讀5頁(yè),還剩80頁(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)介

畢業(yè)論文(燒水恒溫系統(tǒng))畢業(yè)論文(燒水恒溫系統(tǒng))/畢業(yè)論文(燒水恒溫系統(tǒng))湖南長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院changshaaeronauticalvocational&technicalcollege(畢業(yè)實(shí)踐)類(lèi)別設(shè)計(jì)類(lèi)題目基于MCS-51單片機(jī)技術(shù)燒水恒溫系統(tǒng)系名稱(chēng)電子電氣工程系專(zhuān)業(yè)與班級(jí)聲像0901學(xué)生姓名學(xué)號(hào)指導(dǎo)教師完成日期2012年04月28日目錄前言 7第一章緒論 91.1微處理器的發(fā)展趨勢(shì) 91.2溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史與意義 91.3系統(tǒng)的設(shè)計(jì)原則 10(1)安全可靠 10(2)操作維護(hù)方便 10(3)實(shí)時(shí)性強(qiáng) 10(4)通用性好 11(5)經(jīng)濟(jì)效益高 111.3.1系統(tǒng)的設(shè)計(jì)步驟 111.3.2系體的總體方案設(shè)計(jì)和框圖設(shè)計(jì) 111.4設(shè)計(jì)方案 12第二章硬件設(shè)計(jì) 142.1主要器件說(shuō)明 142.1.1主控制器 142.1.2顯示器(1602液晶的簡(jiǎn)介) 162.1.3溫度傳感器 192.1.4穩(wěn)壓電源7805 272.2各部分電路說(shuō)明 272.2.1單片機(jī)控制部分 272.2.2傳感器數(shù)據(jù)采集電路 292.2.3顯示電路 302.2.4輸入電路 302.2.5報(bào)警電路 312.2.6指示燈電路 32第三章軟件設(shè)計(jì) 333.1主程序 333.2讀出溫度子程序 343.3溫度轉(zhuǎn)換命令子程序 353.4溫度控制子程序 353.5鍵盤(pán)掃描子函數(shù) 36 36第四章實(shí)物制作與調(diào)試說(shuō)明 374.1原材料的選擇與采購(gòu) 374.2印刷電路板的設(shè)計(jì)與制作 374.3單片機(jī)測(cè)試 384.4硬件與軟件調(diào)試 384.5整機(jī)的調(diào)試與測(cè)試 38使用說(shuō)明書(shū) 40致謝 41參考文獻(xiàn) 42附件1:電路原理圖 43附件2:程序清單 44前言溫度是日常生活中無(wú)時(shí)不在的物理量,溫度的控制在各個(gè)領(lǐng)域都有積極的意義。很多行業(yè)中都有大量的用電加熱設(shè)備,如用于熱處理的加熱爐,用于融化金屬的坩鍋電阻爐與各種不同用途的溫度箱等,采用單片機(jī)對(duì)它們進(jìn)行控制不僅具有控制方便、簡(jiǎn)單、靈活性大等特點(diǎn),而且還可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量。因此,智能化溫度控制技術(shù)正被廣泛地采用。本溫度設(shè)計(jì)采用現(xiàn)在流行的AT89S52單片機(jī),配以DS18B20數(shù)字溫度傳感器,該溫度傳感器可自行設(shè)置溫度上下限。單片機(jī)將檢測(cè)到的溫度信號(hào)與輸入的溫度上、下限進(jìn)行比較,由于溫度隨時(shí)在變化,為了讓恒溫系統(tǒng)更加穩(wěn)定的工作,引入了PID算法,PID算法是一種閉環(huán)結(jié)構(gòu)的算法,根據(jù)外來(lái)采取的數(shù)據(jù)的變化來(lái)做相應(yīng)的計(jì)算。關(guān)鍵詞:單片機(jī)應(yīng)用;溫度采集控制;DS18B20應(yīng)用,PID算法;ABSTRACTThetemperatureisindailylifetheever-presentphysicalquantities,thecontrolofthetemperatureinvariousfieldshavepositivesignificance.Manyindustrytherearealargenumberofelectricheatingequipment,suchastobeusedinheattreatmentfurnace,usedtomeltmetalcrucibleresistancefurnace,andallkindsofdifferentUSESoftemperatureboxandsoon,USESthemonolithictheycontrolhasnotonlyconvenientcontrol,simple,flexibleandothercharacteristics,butalsocouldincreasethetemperaturewaschargedwiththetechnicalindex,whichcangreatlyimprovethequalityoftheproducts.Therefore,intelligenttemperaturecontroltechnologyisbeingwidelyadopted.ThistemperaturedesignUSESpopularnowAT89S52SCM,matchwithDS18B20digitaltemperaturesensor,thetemperaturesensorcanbesetonthetemperaturelimit.Thetemperatureofthesinglechipmicrocomputerdetectthetemperatureoftheinputsignalandtheupperandlowerlimitcarriesonthecomparison,duetotemperaturechangesinatanytime,inordertomakethesystemmorestableworkofconstanttemperature,theintroductionofthePIDalgorithm,PIDalgorithmisaclosedloopstructurealgorithm,accordingtothechangeoftheforeigntakedatatomakecorrespondingcalculation.Keywords:SCM;Temperaturegatheringcontrol;DS18B20application,PID;基于MCS-51單片機(jī)恒溫系統(tǒng)第一章緒論1.1微處理器的發(fā)展趨勢(shì)在后經(jīng)濟(jì)危機(jī)時(shí)代,消費(fèi)者更趨于理智,希望可以用更低的價(jià)格獲得更高性能更好用戶體驗(yàn)的便攜電子產(chǎn)品,對(duì)低成本差異化產(chǎn)品要求提升了。這就要求半導(dǎo)體行業(yè)開(kāi)發(fā)先進(jìn)的片上芯片(SoC)平臺(tái),推動(dòng)創(chuàng)新,從而為新一輪移動(dòng)互聯(lián)應(yīng)用和服務(wù)提供更出色的用戶體驗(yàn)。這符合ARM一貫遵循的商業(yè)模式和市場(chǎng)策略,鼓勵(lì)技術(shù)創(chuàng)新并降低成本。ARM已經(jīng)與國(guó)內(nèi)許多芯片廠商展開(kāi)合作,降低設(shè)計(jì)門(mén)檻,授權(quán)更多先進(jìn)的技術(shù)給國(guó)內(nèi)公司,滿足以中國(guó)為中心的發(fā)展中國(guó)家市場(chǎng)和新興市場(chǎng)對(duì)高性能低成本產(chǎn)品的需求。ARM始終堅(jiān)持一貫的市場(chǎng)戰(zhàn)略,并沒(méi)有因?yàn)榻鹑谖C(jī)而改變。我們現(xiàn)在的重點(diǎn)加大了軟件方面的投入,與合作伙伴的關(guān)系也變得更加緊密,這是為了擴(kuò)大并加強(qiáng)ARM的生態(tài)環(huán)境,生產(chǎn)出更多符合市場(chǎng)需求的產(chǎn)品。平板電腦叩開(kāi)移動(dòng)互聯(lián)大門(mén)以平板電腦叩開(kāi)移動(dòng)互聯(lián)大門(mén)2011年,移動(dòng)互聯(lián)和云計(jì)算將繼續(xù)成為推動(dòng)支持互聯(lián)網(wǎng)功能的消費(fèi)電子產(chǎn)品需求增長(zhǎng)的主要因素。由此我們相信諸如智能手機(jī)、平板電腦、數(shù)字家庭等互聯(lián)消費(fèi)設(shè)備將在2011年得到迅猛發(fā)展。1.2溫度控制系統(tǒng)設(shè)計(jì)的背景、發(fā)展歷史與意義隨著社會(huì)的發(fā)展,科技的進(jìn)步,以與測(cè)溫儀器在各個(gè)領(lǐng)域的應(yīng)用,智能化已是現(xiàn)代溫度控制系統(tǒng)發(fā)展的主流方向。特別是近年來(lái),溫度控制系統(tǒng)已應(yīng)用到人們生活的各個(gè)方面,但溫度控制一直是一個(gè)未開(kāi)發(fā)的領(lǐng)域,卻又是與人們息息相關(guān)的一個(gè)實(shí)際問(wèn)題。針對(duì)這種實(shí)際情況,設(shè)計(jì)一個(gè)溫度控制系統(tǒng),具有廣泛的應(yīng)用前景與實(shí)際意義。溫度是科學(xué)技術(shù)中最基本的物理量之一,物理、化學(xué)、生物等學(xué)科都離不開(kāi)溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,像電力、化工、石油、冶金、航空航天、機(jī)械制造、糧食存儲(chǔ)、酒類(lèi)生產(chǎn)等領(lǐng)域內(nèi),溫度常常是表征對(duì)象和過(guò)程狀態(tài)的最重要的參數(shù)之一。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過(guò)程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行;煉油過(guò)程中,原油必須在不同的溫度和壓力條件下進(jìn)行分餾才能得到汽油、柴油、煤油等產(chǎn)品。沒(méi)有合適的溫度環(huán)境,許多電子設(shè)備就不能正常工作,糧倉(cāng)的儲(chǔ)糧就會(huì)變質(zhì)霉?fàn)€,酒類(lèi)的品質(zhì)就沒(méi)有保障。因此,各行各業(yè)對(duì)溫度控制的要求都越來(lái)越高??梢?jiàn),溫度的測(cè)量和控制是非常重要的。單片機(jī)在電子產(chǎn)品中的應(yīng)用已經(jīng)越來(lái)越廣泛,在很多的電子產(chǎn)品中也用到了溫度檢測(cè)和溫度控制。隨著溫度控制器應(yīng)用范圍的日益廣泛和多樣,各種適用于不同場(chǎng)合的智能溫度控制器應(yīng)運(yùn)而生。1.3系統(tǒng)的設(shè)計(jì)原則一般系統(tǒng)的設(shè)計(jì)原則包含安全性(穩(wěn)定抗干擾性),操作的便利性(人性化),實(shí)時(shí)性,通用性和經(jīng)濟(jì)性。(1)安全可靠首先要選用高性能的AT89C52單片機(jī),保證在惡劣的工業(yè)環(huán)境下能正常運(yùn)行。其次是設(shè)計(jì)可靠的控制方案,并具有各種安全保護(hù)措施,如報(bào)警、事故預(yù)測(cè)、事故處理和不間斷電源等。(2)操作維護(hù)方便操作方便表現(xiàn)在操作簡(jiǎn)單、直觀形象和便于掌握且不強(qiáng)求操作工要掌握計(jì)算機(jī)知識(shí)才能操作。(3)實(shí)時(shí)性強(qiáng)選用高性能的AT89C52單片機(jī)的實(shí)時(shí)性,表現(xiàn)在內(nèi)部和外部事件能與時(shí)地響應(yīng),并做出相應(yīng)的處理。(4)通用性好系統(tǒng)設(shè)計(jì)時(shí)應(yīng)考慮能適應(yīng)不同的設(shè)備和各種不同設(shè)備和各種不同控制對(duì)象,并采用積木式結(jié)構(gòu),按照控制要求靈活構(gòu)成系統(tǒng)。主要表現(xiàn)在兩個(gè)方面:一是硬件板設(shè)計(jì)采用標(biāo)準(zhǔn)總線結(jié)構(gòu)(如PC總線),配置各種通用的模板,以便擴(kuò)充功能時(shí),只需增加功能模板就能實(shí)現(xiàn);二是軟件功能模塊或控制算法采用標(biāo)準(zhǔn)模塊結(jié)構(gòu),用戶使用時(shí)不需要二次開(kāi)發(fā),只需各種功能模塊,靈活地進(jìn)行控制系統(tǒng)組態(tài)。(5)經(jīng)濟(jì)效益高1.3.1系統(tǒng)的設(shè)計(jì)步驟(1)系統(tǒng)總體方案設(shè)計(jì)、(2)方案論證評(píng)審硬件和軟件的分別細(xì)化設(shè)計(jì)硬件和軟件的分別調(diào)試系統(tǒng)的組裝(3)離線仿真和調(diào)試階段1.3.2系體的總體方案設(shè)計(jì)和框圖設(shè)計(jì)(1)系統(tǒng)的主要功能、技術(shù)指標(biāo)、原理性方框與文字說(shuō)明。(2)系統(tǒng)的硬件結(jié)構(gòu)幾配置,主要軟件的功能、結(jié)構(gòu)幾框圖。(3)保證性能指標(biāo)要求的技術(shù)措施。(4)抗干擾性和可靠性設(shè)計(jì)。(5)工藝要求實(shí)現(xiàn)溫度閉環(huán)控制,控制溫度誤差范圍≤±0.1℃。溫度范圍:-50℃~125℃。供電電壓:交流220V和直流電5V。1.4設(shè)計(jì)方案方案一:考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以使用熱敏電阻之類(lèi)的器件利用其感溫效應(yīng),感溫電路比較麻煩,進(jìn)行A/D轉(zhuǎn)換,才可以滿足設(shè)計(jì)要求。優(yōu)點(diǎn):便宜。缺點(diǎn):準(zhǔn)確度不高。熱敏電阻M熱敏電阻MCUAD轉(zhuǎn)換器圖1.1采用熱敏電阻的框圖方案二:由于本設(shè)計(jì)是測(cè)溫電路,首先要選用高性能的AT89C52單片機(jī),保證在惡劣的工業(yè)環(huán)境下能正常運(yùn)行。單片機(jī)AT89C52具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。測(cè)溫傳感器使用二極管結(jié)電壓變化的數(shù)值來(lái)轉(zhuǎn)化成溫度的變化,在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái)。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二??紤]到方案中制作數(shù)字溫度計(jì),在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖1所示,控制器采用單片機(jī)AT89C51,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。MMCULCD顯示單片機(jī)復(fù)位LCD顯示單片機(jī)復(fù)位報(bào)警點(diǎn)按鍵調(diào)整報(bào)警點(diǎn)按鍵調(diào)整時(shí)鐘振蕩溫度傳感器時(shí)鐘振蕩溫度傳感器Led和蜂鳴器外設(shè)Led和蜂鳴器外設(shè)圖1.2采用18B20傳感器的框圖第二章硬件設(shè)計(jì)2.1主要器件說(shuō)明2.1.1主控制器單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。如圖2.1所示。圖2.1AT89C52主要特性:圖2.1AT89C52·與MCS-51兼容·4K字節(jié)可編程閃爍存儲(chǔ)器

壽命:1000寫(xiě)/擦循環(huán)

數(shù)據(jù)保留時(shí)間:10年

·全靜態(tài)工作:0Hz-24Hz

·三級(jí)程序存儲(chǔ)器鎖定

·128*8位內(nèi)部RAM

·32可編程I/O線

·兩個(gè)16位定時(shí)器/計(jì)數(shù)器

·5個(gè)中斷源

·可編程串行通道

·低功耗的閑置和掉電模式

·片內(nèi)振蕩器和時(shí)鐘電路管腳說(shuō)明:VCC:供電電壓。

GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入與內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。2.1.2顯示器(1602液晶的簡(jiǎn)介)字符型液晶1602主要技術(shù)參數(shù)如表2.1所示:表2.1字符型液晶1602主要技術(shù)參數(shù)顯示容量:16*2個(gè)字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95*4.35(W*H)mm接口信號(hào)說(shuō)明如表2.2所示:表2.21602接口信號(hào)說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1Vss電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號(hào)11D4DataI/O4Rs數(shù)據(jù)/命令選擇端(H/L)12D5DataI/O5R/W讀/寫(xiě)選擇端(H/L)13D6DataI/O6E使能信號(hào)14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負(fù)極控制器接口說(shuō)明(HD44780與兼容芯片)基本操作時(shí)序a讀狀態(tài):輸入:Rs=L,Rw=H,E=H輸出:D0—D7=狀態(tài)字b寫(xiě)指令:輸入:Rs=L,Rw=L,D0—D7=指令碼輸出:無(wú)E=高脈沖C讀數(shù)據(jù):輸入:Rs=H,Rw=L,E=H輸出:D0—D7=數(shù)據(jù)d寫(xiě)數(shù)據(jù):輸入:Rs=H,Rw=L,D0—D7=數(shù)據(jù)輸出:無(wú)E=高脈沖狀態(tài)字說(shuō)明如表2.3所示:表2.3狀態(tài)字說(shuō)明(a)STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0表2.4狀態(tài)字說(shuō)明(b)STA0--6當(dāng)前數(shù)據(jù)地址指針的數(shù)值STA7讀寫(xiě)操作使能1:禁止0:允許注:對(duì)控制器進(jìn)行讀寫(xiě)操作之前,都必須進(jìn)行讀寫(xiě)檢測(cè),確保STA7為0RAM地址映射圖控制器內(nèi)部帶有80*8位(80字節(jié))的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系如下圖2.5所示:表2.5RAM地址映射圖LCD16字*2行000102030405060708090A0B0C0D0E0F10…27404142434445464748494A4B4C4D4E4F50…67指令說(shuō)明初始化設(shè)置顯示模式設(shè)置如表2.6所示:表2.6顯示模式設(shè)置指令碼功能00111000設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口顯示開(kāi)關(guān)與光標(biāo)設(shè)置如表2.7所示:表2.7顯示開(kāi)關(guān)與光標(biāo)設(shè)置指令碼功能00001DCBD=1開(kāi)顯示;D=0關(guān)顯示C=1顯示光標(biāo);C=0不顯示光標(biāo)B=1光標(biāo)閃爍;B=0光標(biāo)不顯示000001NSN=1當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一,且光標(biāo)加一N=0當(dāng)讀或?qū)懸粋€(gè)字后地址指針減一,且光標(biāo)減一S=1當(dāng)寫(xiě)一個(gè)字符后,整屏顯示左移(N=1)或右移(N=0),以得到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果S=0當(dāng)寫(xiě)一個(gè)字符,整屏顯示不移動(dòng)數(shù)據(jù)控制控制器內(nèi)部沒(méi)有一個(gè)數(shù)據(jù)地址指針,用戶可通過(guò)它們來(lái)訪問(wèn)內(nèi)部的全部80字節(jié)RAM。數(shù)據(jù)指針設(shè)置如表2.8所示表2.8數(shù)據(jù)指針設(shè)置(a)指令碼功能80H+地址碼(0—27H,40—67H)設(shè)置數(shù)據(jù)地址指針讀數(shù)據(jù):見(jiàn)c寫(xiě)數(shù)據(jù):見(jiàn)d其它設(shè)置如表2.9所示表2.9數(shù)據(jù)指針設(shè)置(b)指令碼功能01H顯示清屏:1.數(shù)據(jù)指針清零2.所有顯示清零02H顯示回車(chē):1.數(shù)據(jù)指針清零2.1.3溫度傳感器DS18B20溫度傳感器是采用美國(guó)DALLAS公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片,經(jīng)焊接,外加不銹鋼保護(hù)管封裝而成,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。①::技術(shù)性能描述

*獨(dú)特的單線接口方式,DS1820在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS1820的雙向通訊,在使用中不需要任何外圍元件。

*測(cè)溫范圍-55℃~+125℃,固有測(cè)溫分辨率0.5℃。

-

*支持多點(diǎn)組網(wǎng)功能,多個(gè)DS1820可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。

*工作電源:

3~5V/DC

*測(cè)量結(jié)果以9位數(shù)字量方式串行傳送。

*不銹鋼保護(hù)管直徑

Φ6

*適用于1/2”,3/4”,1”,DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測(cè)溫

②:應(yīng)用范圍

*

該產(chǎn)品適用于冷凍庫(kù),糧倉(cāng),儲(chǔ)罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測(cè)溫和控制領(lǐng)域

*

軸瓦,缸體,紡機(jī),空調(diào),等狹小空間工業(yè)設(shè)備測(cè)溫和控制。

*

汽車(chē)空調(diào)、冰箱、冷柜、以與中低溫干燥箱等。

*

供熱/制冷管道熱量計(jì)量,中央空調(diào)分戶熱能計(jì)量和工業(yè)領(lǐng)域測(cè)溫和控制

③.DS18B20的性能特點(diǎn)如下:*獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;*多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;*無(wú)須外部器件;*可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;*零待機(jī)功耗;*溫度以9或12位數(shù)字;*用戶可定義報(bào)警設(shè)置;*報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;*負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;I/OC64I/OC64位ROM單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd圖2.2DS18B20內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖2.3所示:圖2.3DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖2.6所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖2.7所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。由表2.10可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。表2.10DS18B20溫度轉(zhuǎn)換時(shí)間表R1R0分辨率/位溫度最大轉(zhuǎn)換時(shí)間/MS00993.750110187.510113751112750高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB式表示。當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令做出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。分別說(shuō)明如下:初始化單總線的所有處理均從初始化開(kāi)始。初始化過(guò)程是主機(jī)通過(guò)向作為從機(jī)的DS18B20芯片發(fā)一個(gè)有時(shí)間寬度要求的初始化脈沖實(shí)現(xiàn)的。初始化后,才可進(jìn)行讀寫(xiě)操作。(2)ROM操作命令總線主機(jī)檢測(cè)到DS18B20的存在便可以發(fā)出ROM操作命令之一這些命令表2.11:表2.11ROM操作命令指令代碼ReadROM(讀ROM)[33H]MatchROM(匹配ROM)[55H]SkipROM(跳過(guò)ROM][CCH]SearchROM(搜索ROM)[F0H]Alarmsearch(告警搜索)[ECH](3)存儲(chǔ)器操作命令如表2.3:表2.12存儲(chǔ)器操作命令指令代碼WriteScratchpad(寫(xiě)暫存存儲(chǔ)器)[4EH]ReadScratchpad(讀暫存存儲(chǔ)器)[BEH]CopyScratchpad(復(fù)制暫存存儲(chǔ)器)[48H]ConvertTemperature(溫度變換)[44H]RecallEPROM(重新調(diào)出)[B8H]ReadPowersupply(讀電源)[B4H](4)時(shí)序主機(jī)使用時(shí)間隙(timeslots)來(lái)讀寫(xiě)DS18B20的數(shù)據(jù)位和寫(xiě)命令字的位①初始化圖2.4初始化時(shí)序時(shí)序見(jiàn)圖2.7,主機(jī)總線to時(shí)刻發(fā)送一復(fù)位脈沖(最短為480us的低電平信號(hào)),接著在tl時(shí)刻釋放總線并進(jìn)入接收狀態(tài)。DS18B20在檢測(cè)到總線的上升沿之后等待15-60us,接著DS18B20在t2時(shí)刻發(fā)出存在脈沖(低電平持續(xù)60-240us)。如圖中虛線所示:②寫(xiě)時(shí)間隙圖2.5寫(xiě)0時(shí)序圖2.6寫(xiě)1時(shí)序當(dāng)主機(jī)總線to時(shí)刻從高拉至低電平時(shí),就產(chǎn)生寫(xiě)時(shí)間隙見(jiàn)圖2.8.1和圖2.8.2。從to時(shí)刻開(kāi)始15us之內(nèi)應(yīng)將所需寫(xiě)的位送到總線上,DSl820在to后15-60us間對(duì)總線采樣。若低電平,寫(xiě)入的位是0。見(jiàn)圖2.5.1。若高電平寫(xiě)入的位是1見(jiàn)圖2.5.2。連續(xù)寫(xiě)2位間的間隙應(yīng)大于1us。③讀時(shí)間隙見(jiàn)圖2.9,主機(jī)總線to時(shí)刻從高拉至低電平時(shí),總線只須保持低電平lus。之后在t1時(shí)刻將總線拉高,產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在t1時(shí)刻后t2時(shí)刻前有效,t2距to為15us。也就是說(shuō)t2時(shí)刻前主機(jī)必須完成讀位,并在to后的60us一120us內(nèi)釋放總線,讀位子程序(讀得的位到C中)。圖2.7讀時(shí)序DSl820多路測(cè)量簡(jiǎn)介初始化初始化跳過(guò)ROM變換溫度等待1S初始化設(shè)置1820個(gè)數(shù)匹配ROM讀存儲(chǔ)器存放在緩沖區(qū)指針增1初始化b-1=0?否是圖2.8DSl820原理框圖每一片DSl820在其ROM中都存有其唯一的48位序列號(hào),出廠前已寫(xiě)入片內(nèi)ROM中,主機(jī)在進(jìn)入操作程序前必須逐一接入DS18B20用讀ROM(33H)命令將該DS18B20的序列號(hào)讀出并登錄。當(dāng)主機(jī)需要對(duì)眾多在線DS18B20的某一個(gè)進(jìn)行操作時(shí),首先要發(fā)出匹配ROM命令(55H),緊接著主機(jī)提供64位序列(包括該DS18B20的48位序列號(hào))。之后的操作就是針對(duì)該DS18B20的。而所謂跳過(guò)ROM命令即:MOVA,#0CCH。圖2.10中先有跳過(guò)ROM,即是啟動(dòng)所有DS18B20進(jìn)行溫度變換,之后通過(guò)匹配ROM再逐一地讀回每個(gè)DS18B20的溫度數(shù)據(jù)。在DS18B20組成的測(cè)溫系統(tǒng)中,主機(jī)在發(fā)出跳過(guò)ROM命令之后,再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動(dòng)碼44H,就可以實(shí)現(xiàn)所有DS18B20的統(tǒng)一轉(zhuǎn)換,再經(jīng)過(guò)1s后,就可以用很少的時(shí)間去逐一讀取。這種方式使其T值往往小于傳統(tǒng)方式。(由于采取公用的放大電路和A/D轉(zhuǎn)換器只能逐一轉(zhuǎn)換)。顯然通道數(shù)越多,這種省時(shí)效應(yīng)就越明顯。DS1820使用中注意事項(xiàng)DS1820雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:(1)較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。(2)在DS1820的有關(guān)資料中均未提與單總線上所掛DS1820數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS1820,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過(guò)8個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。(3)連接DS1820的總線電纜是有長(zhǎng)度限制的。試驗(yàn)中,當(dāng)采用普通信號(hào)電纜傳輸長(zhǎng)度超過(guò)50m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時(shí),正常通訊距離進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因?在用DS1820進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。(4)在DS1820測(cè)溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號(hào),一旦某個(gè)DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。2.1.4穩(wěn)壓電源78057805管腳圖如圖2.11所示:圖2.9圖2.92.2各部分電路說(shuō)明2.2.1單片機(jī)控制部分在本設(shè)計(jì)中,采用了AT89C51單片機(jī)作為本電路的核心電路的設(shè)計(jì)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。(1)振蕩器特性:XTAL1和XTAL2的反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。(2)單片機(jī)芯片的擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。AT89C52的穩(wěn)態(tài)邏輯可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。(3)單片機(jī)的時(shí)鐘電路圖2.10片內(nèi)振蕩電路的時(shí)鐘電路AT89C1單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反向放大器,引線XTAL1和XTAL2分別是放大器的輸入端和輸出端。單片機(jī)內(nèi)部雖然有振蕩電路,但要形成時(shí)鐘,外部還需附加電路。AT89C51的時(shí)鐘產(chǎn)生方式有兩種:內(nèi)部時(shí)鐘電方式和外部時(shí)鐘方式。由于外部時(shí)鐘方式用于多片單片機(jī)組成的系統(tǒng)中,所以此處選用內(nèi)部時(shí)鐘方式。即利用其內(nèi)部的振蕩電路在XTAL1和XTAL2引線上外接定時(shí)元件,內(nèi)部振蕩電路產(chǎn)生自激振蕩。最常用的是在XTAL1和XTAL2之間接晶體振蕩器與電路構(gòu)成穩(wěn)定的自激振蕩器,如圖2.13電路所示為單片機(jī)最常用的時(shí)鐘振蕩電路的接法,其中晶振可選用振蕩頻率為6MHz的石英晶體,電容器一般選擇30PF左右。(4)單片機(jī)的復(fù)位電路圖2.11AT89C51的復(fù)位電路圖2.11AT89C51的復(fù)位電路本設(shè)計(jì)中AT89C51是采用上電自動(dòng)復(fù)位和按鍵復(fù)位兩種方式。最簡(jiǎn)單的復(fù)位電路如圖2.13所示。上電瞬間,RC電路充電,RST引線端出現(xiàn)正脈沖,只要RST端保持10ms以上的高電平,就能使單片機(jī)有效地復(fù)位。其中R1和R2分別選擇200Ω和1KΩ的電阻,電容器一般選擇22μF。(5)AT89C51的最小應(yīng)用系統(tǒng)AT89C51是片內(nèi)有程序存儲(chǔ)器的單片機(jī),要構(gòu)成最小應(yīng)用系統(tǒng)時(shí)只要將單片機(jī)接上外部的晶體或時(shí)鐘電路和復(fù)位電路即可,如圖2.14所示。這樣構(gòu)成的最小系統(tǒng)簡(jiǎn)單可靠,其特點(diǎn)是沒(méi)有外部擴(kuò)展,有可供用戶使用的大量的I∕O線。圖2.12AT89C51單片機(jī)構(gòu)成的最小系2.2.2傳感器數(shù)據(jù)采集電路傳感器數(shù)據(jù)采集電路主要指DS18B20溫度傳感器與單片機(jī)的接口電路。DS18B20可以采用兩種方式供電,一種是采用電源供電方式,如圖2.15所示,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖2.15所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來(lái)完成對(duì)總線的上拉。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的??紤]到實(shí)際應(yīng)用中寄生電源供電方式適應(yīng)能力差且易損壞,此處采用電源供電方式,I/O口接單片機(jī)的P2.0口。圖2.13電源供電方式2.2.3顯示電路顯示電路是采用P0口輸出LCD的數(shù)據(jù)口,P2.0、P2.1、P2.2分別是液晶的使能端、讀寫(xiě)控制端、指令和數(shù)據(jù)選擇端如圖2.16所示:還帶有背光控制電路,當(dāng)持續(xù)很久沒(méi)有操做時(shí),液晶就會(huì)自動(dòng)關(guān)閉背光。達(dá)到節(jié)能的目的。圖2.14顯示電路2.2.4輸入電路 可以設(shè)置需要恒溫的溫度,和需要設(shè)定的溫度進(jìn)行加溫。圖2.15按鍵輸入2.2.5報(bào)警電路當(dāng)溫度加熱到所設(shè)定的溫度時(shí),蜂鳴器就提醒。圖2.16蜂鳴器2.2.6指示燈電路 用3盞燈(黃、紅、綠),分別表示正在加熱、加熱已完成、正在保溫。圖2.17指示燈第三章軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序,設(shè)置溫度等。3.1主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,其程序流程見(jiàn)圖3.1所示。開(kāi)始開(kāi)始設(shè)置恒溫溫度紅燈指示燈亮蜂鳴器提示調(diào)用存儲(chǔ)器中上次使用的溫度黃燈指示燈亮顯示當(dāng)前溫度系統(tǒng)初始化判斷是否有按鍵按下判斷溫度是否達(dá)到設(shè)定溫度程序結(jié)束否是否是圖3.1系統(tǒng)總流程圖當(dāng)系統(tǒng)上電之后,系統(tǒng)會(huì)初始化,在2分之內(nèi)還沒(méi)有設(shè)置恒溫溫度,系統(tǒng)會(huì)自動(dòng)從存儲(chǔ)器里調(diào)用上次設(shè)置的溫度。這樣就不會(huì)每次在燒水的時(shí)候要設(shè)置溫度了,燒水啟動(dòng)后在通過(guò)閉環(huán)的方式進(jìn)行控制(PID算法),當(dāng)水溫到達(dá)所設(shè)定的溫度時(shí),指示燈和蜂鳴器都有提示告訴用戶水以燒好,在一分鐘之后,用戶還沒(méi)有用水,系統(tǒng)就會(huì)進(jìn)入恒溫狀態(tài)。3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖3.2所示發(fā)DS18B20復(fù)位命令發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束NNYY圖3.2讀出溫度子程序流程3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖,如圖3.3所示發(fā)DS18B20復(fù)位命令發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束圖3.3溫度轉(zhuǎn)換流程圖3.4溫度控制子程序處理器根據(jù)設(shè)定的溫度進(jìn)行控制,其程序流程圖如圖3.4所示。是否小于設(shè)定溫度是否小于設(shè)定溫度開(kāi)始結(jié)束全速加溫恒溫LED指示否PID算法控制顯示溫度是圖3.4計(jì)算溫度流程圖3.5鍵盤(pán)掃描子函數(shù)設(shè)置需要恒溫的溫度,設(shè)置溫度之后需要按下“#”來(lái)確定,支持退格和清除功能。開(kāi)始判斷是否有按鍵按下按鍵編碼處理任務(wù)結(jié)束開(kāi)始判斷是否有按鍵按下按鍵編碼處理任務(wù)結(jié)束不做任何處理否是圖3.5按鍵程序流程圖第四章實(shí)物制作與調(diào)試說(shuō)明4.1原材料的選擇與采購(gòu)本次設(shè)計(jì)在原材料的選擇與采購(gòu)上做到了設(shè)計(jì)最優(yōu)化,即用最小的開(kāi)支,獲得性價(jià)比較高的元器件和材料。設(shè)計(jì)中,印刷電路板采用單面板,給人看起來(lái)沒(méi)有太復(fù)雜的感覺(jué)。選元器件時(shí),盡量選擇能使電路簡(jiǎn)化的器件。例如,為了不增大電路板的體積與減小功耗,本設(shè)計(jì)采用ATMEL公司的89S52單片機(jī),體積小,工作電壓低。4.2印刷電路板的設(shè)計(jì)與制作電路板的設(shè)計(jì)與制作是整個(gè)電路制作過(guò)程中比較重要的一步,如果電路板做不好,再好的電路設(shè)計(jì)也不行。下面就對(duì)簡(jiǎn)單電路板的設(shè)計(jì)與制作過(guò)程做一個(gè)簡(jiǎn)單的介紹。1、利用DXP2004畫(huà)原理圖。在畫(huà)原理圖的時(shí)候?yàn)榱穗娐钒灞容^好看,要注意布局,同時(shí)還得注意元件封裝,命名等。畫(huà)好原理圖后要對(duì)其進(jìn)行電氣檢測(cè),檢查原理圖是否有錯(cuò),同時(shí)還要?jiǎng)?chuàng)建網(wǎng)絡(luò)表為下一步的工作做好準(zhǔn)備。2、PCB版圖的設(shè)計(jì)。在對(duì)PCB圖設(shè)計(jì)時(shí)首先要添加封裝庫(kù),這樣原理圖中給予的封裝才能有效,然后調(diào)入網(wǎng)絡(luò)表看原理圖的封裝,命名等是否有錯(cuò),如果沒(méi)錯(cuò)便可進(jìn)行下一步操作。對(duì)其進(jìn)行布線,首先先對(duì)布線規(guī)則作一些必要的設(shè)置,如焊盤(pán)的大小,導(dǎo)線的粗細(xì)等。做好這些設(shè)置后便可進(jìn)行自動(dòng)布線,自動(dòng)布線后如果布線不是很理想還可用手動(dòng)布線進(jìn)行手動(dòng)修改,這樣PCB圖就畫(huà)好了。3、電路板的制作。把設(shè)計(jì)布局好的PCB圖打印出來(lái)之后,然后進(jìn)行壓板、腐蝕、鉆孔。注意,腐蝕之前要檢查是否有斷線與焊盤(pán)的脫落等。4、元件的焊接。元件焊接的時(shí)候要先查看跳線,首先焊接所有的跳線,其次再焊接分離元件,最后焊接集成塊和外接的引線。當(dāng)然為了美觀在布線中最好不要出現(xiàn)跳線。5、整體檢查。查看是否有斷線和虛焊等。6、燒錄程序4.3單片機(jī)測(cè)試判斷單片機(jī)芯片與時(shí)鐘系統(tǒng)是否正常工作有一個(gè)簡(jiǎn)單的辦法,就是用萬(wàn)用表測(cè)量單片機(jī)晶振引腳(18、19腳)的對(duì)地電壓,以正常工作的單片機(jī)用數(shù)字萬(wàn)用表測(cè)量為例:18腳對(duì)地約2.24V,19腳對(duì)地約2.09V。對(duì)于懷疑是復(fù)位電路故障而不能正常工作的單片機(jī)也可以采用模擬復(fù)位的方法來(lái)判斷,單片機(jī)正常工作時(shí)第9腳對(duì)地電壓為零,可以用導(dǎo)線短時(shí)間和+5V連接一下,模擬一下上電復(fù)位,如果單片機(jī)能正常工作了,說(shuō)明這個(gè)復(fù)位電路有問(wèn)題。4.4硬件與軟件調(diào)試硬件調(diào)試,第一步是目測(cè),在印好電路板之后,先檢查印制線是否有斷線、是否有毛刺、是否與其它線或焊盤(pán)粘連、焊盤(pán)是否有脫落、過(guò)孔是否有未金屬化現(xiàn)象。而在目測(cè)的過(guò)程中,我們發(fā)現(xiàn)有一條印制線斷開(kāi),因此我們用焊錫使這條斷線連在一起。第二步是用萬(wàn)用表測(cè)量。在目測(cè)完之后,利用萬(wàn)用表來(lái)測(cè)量連線和接點(diǎn),檢查它們的通斷狀態(tài)是否和設(shè)計(jì)一樣。再檢查各種電源線和地線是否有短路現(xiàn)象,在檢查的過(guò)程中,發(fā)現(xiàn)不管是連線還是接點(diǎn)都符合設(shè)計(jì)規(guī)定,電源和地線也沒(méi)有短路現(xiàn)象。第三步是加電檢查。給印制板加電時(shí),我們檢查到的器件的電源端符合要求的電壓值+5V,同時(shí)接地端的電壓為0。第四步是聯(lián)機(jī)檢查。利用系統(tǒng)和單片機(jī)開(kāi)發(fā)系統(tǒng)用仿真電纜連接起來(lái),發(fā)現(xiàn)聯(lián)機(jī)檢查完后以上是連接都正確、暢通、可靠。軟件調(diào)試,第一步是在具有匯編軟件的主機(jī)上和用戶系統(tǒng)連接起來(lái),進(jìn)行調(diào)試準(zhǔn)備。第二步是單步運(yùn)行。第三步是系統(tǒng)連調(diào),即進(jìn)行軟件和硬件聯(lián)合調(diào)試。經(jīng)調(diào)試,軟件運(yùn)行良好。4.5整機(jī)的調(diào)試與測(cè)試首先是測(cè)試顯示電路的正確性,根據(jù)硬件寫(xiě)好一段顯示程序,寫(xiě)入單片機(jī)中。安裝好硬件,上電,顯示正常,達(dá)到預(yù)期效果。證明顯示電路正常。按下復(fù)位按鍵,LCD無(wú)顯示,松開(kāi),顯示正常,證明復(fù)位電路正常。然后測(cè)試得到溫度程序,將初始化程序,DS18B20正常工作的初始化程序、寫(xiě)DS18B20程序、讀DS18B20程序,得到溫度子程序,溫度轉(zhuǎn)換子程序,數(shù)據(jù)轉(zhuǎn)換子程序,顯示子程序正確編排后寫(xiě)入單片機(jī)中,上電,顯示不正常。重新讀取源程序,經(jīng)檢查后發(fā)現(xiàn)問(wèn)題在于DS18B20初始化程序有錯(cuò),修改后重新編譯并寫(xiě)入單片機(jī)。上電后,顯示當(dāng)前溫度。證明溫度傳感器DS18B20工作正常,各部分子程序運(yùn)行正常。最后是按鍵子程序與報(bào)警子程序的調(diào)試,將按鍵子程序與報(bào)警子程序與上述程序正確編排后,寫(xiě)入單片機(jī)中,上電后,各個(gè)部分工作正常,在測(cè)得當(dāng)前溫度超出設(shè)定溫度上下限后,蜂鳴器發(fā)出報(bào)警聲,調(diào)試基本成功。但后來(lái)發(fā)現(xiàn),按鍵要在按下1S后才反應(yīng),再次研讀程序發(fā)現(xiàn)原因在于按鍵程序采用掃描方式,程序每執(zhí)行一遍才掃描按鍵一次。進(jìn)而到考慮采用中斷方式解決此問(wèn)題,但因?yàn)镈S18B20正常工作有嚴(yán)格的時(shí)序限制,否則不能正常工作,而中斷則在很大可能上會(huì)影響到DS18B20正常工作。在嘗試并采用中斷方式卻失敗后,決定仍采用掃描方式。后來(lái)仔細(xì)排查發(fā)現(xiàn)按鍵反應(yīng)遲緩是由于顯示程序占用時(shí)間過(guò)長(zhǎng)造成的,修改顯示程序并且在主程序和按鍵子程序中增加調(diào)用顯示程序的次數(shù),問(wèn)題得以解決。至此,此次設(shè)計(jì)的調(diào)試部分完成。設(shè)計(jì)的所有功能全部得以實(shí)現(xiàn)。使用說(shuō)明書(shū)本電路額定工作直流電壓為+5V,有極性判別保護(hù)功能,采用7805集成穩(wěn)壓芯片以保證電路的供電穩(wěn)定,用戶輸入電源在7-25V均可正常工作。系統(tǒng)初始化之后,用戶可以通過(guò)輸入“*”鍵之后3盞LED閃爍表示要重新設(shè)置溫度,然用戶就可以通過(guò)數(shù)字鍵盤(pán)輸入想要恒溫的溫度,當(dāng)輸入的時(shí)候入錯(cuò)了,則可以通過(guò)“-”鍵來(lái)刪除,溫度設(shè)置完之后按“#”來(lái)確認(rèn),同時(shí)將這個(gè)數(shù)存入到存儲(chǔ)器中。LED只是燈分別指示不同的含義綠燈:表示處于保溫狀態(tài)。紅燈:加熱完成。黃燈:正在加熱。致謝大學(xué)三年的學(xué)習(xí)和生活就要隨著這篇論文的答辯而結(jié)束了。有許許多多的舍不得,也有許許多多的感謝要說(shuō)。首先要衷心感謝的是我的指導(dǎo)教師程老師!在我學(xué)習(xí)期間不僅指導(dǎo)了我當(dāng)論文設(shè)計(jì),還傳授了做學(xué)問(wèn)的秘訣。這些都將使我終生受益。無(wú)論是在理論學(xué)習(xí)階段,還是在論文的選題、資料查詢、開(kāi)題、研究和撰寫(xiě)的每一個(gè)環(huán)節(jié),無(wú)不得到導(dǎo)師的悉心指導(dǎo)和幫助。我想借此機(jī)會(huì)向?qū)煴硎局孕牡母兄x!其次要感謝所有教育過(guò)我的老師!你們傳授給我的專(zhuān)業(yè)知識(shí)是我不斷成長(zhǎng)的源泉,也是完成本論文的基礎(chǔ)。我還要向關(guān)心和支持我學(xué)習(xí)的朋友們表示真摯的謝意!感謝他們對(duì)我的關(guān)心、關(guān)注和支持!大學(xué)的生活讓我有了堅(jiān)強(qiáng)的性格,冷靜的頭腦和永遠(yuǎn)樂(lè)觀的態(tài)度。最重要的是讓我有了責(zé)任感,對(duì)自己、對(duì)家人和對(duì)社會(huì)。我愿在未來(lái)的學(xué)習(xí)過(guò)程中,以更加豐厚的成果來(lái)答謝曾經(jīng)關(guān)心、幫助和支持過(guò)我的所有領(lǐng)導(dǎo)、老師、同學(xué)和朋友。永遠(yuǎn)以一顆為人民服務(wù)的心來(lái)回報(bào)。參考文獻(xiàn)[1]陳權(quán)昌,李興富·單片機(jī)原理與應(yīng)用·華南理工大學(xué)出版社,2007年[2]陳明.DXP2004原理圖與PCB設(shè)計(jì)教程.北京:機(jī)械工業(yè)出版社,2006[3]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版).北京:高等教育出版社,1997[4]王恩榮.MCS-51單片機(jī)應(yīng)用技術(shù).北京:化學(xué)工業(yè)出版社,2001[5]黃河.郭紀(jì)林.單片機(jī)原理與應(yīng)用.大連:大連理工大學(xué)出版社,2006[6]周貴連.電子技術(shù)基礎(chǔ).機(jī)械工業(yè)出版社,2005[7]孫萍·電子技術(shù)專(zhuān)業(yè)英語(yǔ)·機(jī)械工業(yè)出版社,2001年6月[8]李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1994[9]閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,1989[10]欒桂冬·傳感器與其應(yīng)用·西安電子科技大學(xué)出版社,2003[11]周荷琴,吳秀清,微型計(jì)算機(jī)原理與接口技術(shù)。合肥,中國(guó)科學(xué)技術(shù)大學(xué)出版社,2004.[12]范立南,謝子殿.單片機(jī)原理與應(yīng)用教程.北京大學(xué)出版社,2006.[13]沈德金.MCS-51系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗?:北京航空航天大學(xué).2005.[14]潘松,趙敏笑·EDA技術(shù)與其應(yīng)用·科學(xué)出版社,2007年[15]丁元杰,單片機(jī)原理與應(yīng)用,機(jī)械工業(yè)出版社,1999年附件1:電路原理圖附件2:程序清單程序分.h和.c文件/****************************************************************@@文件名:main.c@@時(shí)間:2012年2月22日@@作者:@@敘述:****************************************************************///**************************include*******************************#include<intrins.h>#include"main.h"#include"delay.h"#include"lcd1602.h"#include"ds18b20.h"#include"iic.h"#include"key.h" #defineCOMFRIM88 //#鍵#defineWENTIAO44 //*鍵#defineCLEAR 22#defineERROR111//***************************變量定義**************************charbai,shi,ge,qian,KK=0;//定義變量ucharwenshi,wenge;inttemp=80,HIGT;ucharnum;/******************************port****************************/sbitled1=P2^2;sbitled2=P2^3;sbitled3=P2^4;sbitctrl=P3^0;/*************************************************************--函數(shù)名:timerinit--函數(shù)功能:定時(shí)器初始化--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidtimeinit(){ EA=1;//開(kāi)總中斷 ET0=1;//開(kāi)定時(shí)中斷 TR0=1;//啟動(dòng)定時(shí)器 TH0=(65535-50000)/256; TL0=(65535-50000)%256;}/*************************************************************--函數(shù)名:wen_init--函數(shù)功能:初始化溫度--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwen_init(){ ucharshi,ge; write(0,9); delay1(100); write(1,0); delay1(100); shi=read(0); delay1(100); ge=read(1); HIGT=shi*10+ge;iic_xs(5,HIGT); //顯示設(shè)置溫度} /*************************************************************--函數(shù)名:wendu_set--函數(shù)功能:設(shè)置溫度控制--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwendu_set(ucharhh,ucharorder){ switch(order) { case2: write(0,hh); iic_xs(5,hh);wenshi=hh*10; delay1(100); break; case3: write(1,hh); wenge=hh; delay1(100); break; } if(order==3) { led1=0; HIGT=wenshi+wenge; iic_xs(5,HIGT); //顯示設(shè)置溫度 }}/*************************************************************--函數(shù)名:main--函數(shù)功能:主函數(shù)--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidmain(){ bitqq=0; ucharhh=0,order=0; lcd1602_init(); initiic(); timeinit(); //定時(shí)器初始化wen_init(); //系統(tǒng)上電時(shí)設(shè)置的初始溫度 while(1) { temp=ReadTemperature(); //讀溫度 qian=temp/1000; bai=temp%1000/100; //顯示百位 shi=temp%100/10; //顯示十位 ge=temp%10; //顯示個(gè)位 write_sx(qian,bai,shi,ge); //顯示函數(shù) hh=bianma(); if(hh==88) //按下確認(rèn)鍵 { KK=0; write_com(0x80+0x40); write_dat(0x20); //清楚指定位置的顯示 } if(hh==CLEAR) { order=0; iic_xs(5,0); } if(hh==WENTIAO) { num++; KK=1; if(num==2) { KK =0; order=0; write_com(0x80+0x40); write_dat(0x20); } }/****************************開(kāi)始溫度設(shè)置***************************/ if(KK==1) { qq=~qq; if(qq==0) { write_com(0x80+0x40); write_dat(0xf8); //顯示設(shè)置字符 } else { write_com(0x80+0x40); write_dat(0x20); //清楚指定位置的顯示 } if(hh!=ERROR) { order++; wendu_set(hh,order); } } /*****************************************************************/ } }/*****************************定時(shí)器中斷*****************************/voidtimer0()interrupt1{ TH0=(65535-5000)/256; TL0=(65535-5000)%256; if(temp>HIGT) { led1=0; //指示燈報(bào)警溫度過(guò)高 led2=1; led3=1; ctrl=0; //停止加熱 } if(temp<HIGT) { led1=1; led2=0; //溫度過(guò)低 led3=1; ctrl=1; //啟動(dòng)加熱 } if((temp<=99)&&(temp>50))led3=0;//正常}//********************************endflie*****************************/****************************************************************@@文件名:ds18b20.c@@時(shí)間:2012年2月22日@@作者:@@敘述:****************************************************************//**************************文件包含*****************************/#include"main.h"#include"ds18b20.h"#include"delay.h"/*************************************************************--函數(shù)名:Init_DS18B20--函數(shù)功能:ds18b20初始化--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidInit_DS18B20(void) //傳感器初始化{ ucharx=0; DATA=1;//DQ復(fù)位 delay(1);//稍做延時(shí) DATA=0;//單片機(jī)將DQ拉低 delay(80);//精確延時(shí)大于480us//450 DATA=1;//拉高總線 delay(10); x=DATA;//稍做延時(shí)后如果x=0則初始化成功x=1則初始化失敗 delay(30);}/*************************************************************--函數(shù)名:ReadOneChar--函數(shù)功能:ds18b20讀函數(shù)--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/intReadOneChar(void){ uchari=0; uchardat=0; for(i=8;i>0;i--) { DATA=0;//給脈沖信號(hào) dat>>=1; DATA=1;//給脈沖信號(hào) if(DATA) dat|=0x80; delay(10); } return(dat);}/*************************************************************--函數(shù)名:WriteOneChar--函數(shù)功能:ds18b20寫(xiě)函數(shù)--入口參數(shù):dat--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidWriteOneChar(unsignedchardat){ uchari=0; for(i=8;i>0;i--) { DATA=0; DATA=dat&0x01; delay(10); DATA=1; dat>>=1; } delay(8);}/*************************************************************--函數(shù)名:ReadTemperature--函數(shù)功能:ds18b20讀取溫度--入口參數(shù):無(wú)--出口參數(shù):t--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/intReadTemperature(void){ uchara=0; ucharb=0; intt=0; floattt=0; Init_DS18B20(); WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44);//啟動(dòng)溫度轉(zhuǎn)換 Init_DS18B20(); WriteOneChar(0xCC);//跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE);//讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度 a=ReadOneChar();//低位 b=ReadOneChar();//高位 t=b; t<<=8; t=t|a; tt=t*0.0625; t=tt*10+0.5; return(t);}/****************************************************************@@文件名:lcd1602.c@@時(shí)間:2012年2月22日@@作者:@@敘述:****************************************************************/#include"main.h"#include"lcd1602.h"#include"delay.h"voidwendu();/*************************************************************--函數(shù)名:write_com--函數(shù)功能:lcd1602寫(xiě)入--入口參數(shù):com--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwrite_com(ucharcom){ rs=0; e=0; P0=com; e=1; delay1(5); e=0; delay1(2);}/*************************************************************--函數(shù)名:write_dat--函數(shù)功能:lcd1602讀--入口參數(shù):com--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwrite_dat(uchardate){ rs=1; e=0; P0=date; e=1; delay1(5); e=0; delay1(2);}/*************************************************************--函數(shù)名:write_dat--函數(shù)功能:lcd1602初始化--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidlcd1602_init(void){write_com(0x38);write_com(0x0c);write_com(0x04);write_com(0x01); wendu();}/*************************************************************--函數(shù)名:write_sx--函數(shù)功能:液晶顯示--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwrite_sx(ucharqian,ucharbai,ucharshi,ucharge){ write_com(0x80+0x45); write_dat(0x30+qian); write_dat(0x30+bai); write_dat(0x30+shi); write_dat(0x2e); write_dat(0x30+ge); write_dat(0xdf); write_dat(0x43); }/*************************************************************--函數(shù)名:iic_xs--函數(shù)功能:--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidiic_xs(ucharadress,uchardate){ write_com(0x80+adress); write_dat(0x30+date/10); write_dat(0x30+date%10); write_dat(0xdf); write_dat('C'); }/*************************************************************--函數(shù)名:wendu--函數(shù)功能:上限溫度和下限溫度--入口參數(shù):無(wú)--出口參數(shù):無(wú)--全局變量:無(wú)--局部變量:無(wú)--調(diào)用情況:--備注:**************************************************************/voidwendu(){write_com(0x81);write_dat('-');write_c

溫馨提示

  • 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)論