版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于單片機(jī)的水溫控制系統(tǒng)設(shè)計(jì)摘要溫度控制系統(tǒng)可以說(shuō)是無(wú)所不在,熱水器系統(tǒng)、空調(diào)系統(tǒng)、冰箱、電飯煲、電風(fēng)扇等家電產(chǎn)品以至手持式高速高效的計(jì)算機(jī)和電子設(shè)備,均需要提供溫度控制功能。本系統(tǒng)的設(shè)計(jì)可以用于熱水器溫度控制系統(tǒng)和飲水機(jī)等各種電器電路中。它以單片機(jī)AT80C51為核心,通過(guò)3個(gè)數(shù)碼管顯示溫度和4個(gè)按鍵實(shí)現(xiàn)人機(jī)對(duì)話,使用單總線溫度轉(zhuǎn)換芯片DS18B20實(shí)時(shí)采集溫度并通過(guò)數(shù)碼管顯示,并提供各種運(yùn)行指示燈用來(lái)指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設(shè)置、加熱、停止加熱等,整個(gè)系統(tǒng)通過(guò)四個(gè)按鍵來(lái)設(shè)置加熱溫度和控制運(yùn)行模式。關(guān)鍵詞:?jiǎn)纹瑱C(jī)、數(shù)碼管顯示、單總線、DS18B20.BasedTemperatureControlSystemAbstractTemperaturecontrolsystemcanbesaidtobeubiquitous,waterheaters,airconditioningsystems,refrigerators,ricecookers,electricfansandotherhomeappliancesaswellashigh-speedandefficienthand-heldcomputersandelectronicequipmentarerequiredtoprovidetemperaturecontrol.Thesystemdesigncanbeusedfordrinkingwaterheatertemperaturecontrolsystemsandotherelectricalcircuits.AT80C51microcontrollerasthecoreofit,throughthethreetemperaturedigitaldisplayand4keystoachieveman-machinedialogue,theuseofsingle-chipbustemperatureconversiontemperatureDS18B20real-timeacquisitionandthroughthedigitaldisplayandoffersavarietyofoperatinglighttoindicatesystemnowliveinthestate,suchas:temperaturesetting,heating,andstopheating,theentiresystemthroughthefourbuttonstosettheheatingtemperatureandcontroltheoperatingmode.KEYWORDS:Microcontroller,digitaldisplay,singlebus,DS18B20緒論及時(shí)準(zhǔn)確地得到溫度信息并對(duì)其進(jìn)行適時(shí)的控制,在許多工業(yè)場(chǎng)合中都是重要的環(huán)節(jié).水溫的變化影響各種系統(tǒng)的自動(dòng)運(yùn)作,例如冶金、機(jī)械、食品、化工各類(lèi)工業(yè)中,廣泛使用的各種加熱爐、熱處理爐、反響爐等,對(duì)工件的水處理溫度要求嚴(yán)格控制。對(duì)于不同控制系統(tǒng),其適宜的水質(zhì)溫度總是在一個(gè)范圍。超過(guò)這個(gè)范圍,系統(tǒng)或許會(huì)停止運(yùn)行或遭受破壞,所以我們必須能實(shí)時(shí)獲取水溫變化。對(duì)于,超過(guò)適宜范圍的溫度能夠報(bào)警。同時(shí),我們也希望在適宜溫度范圍內(nèi)可以由檢測(cè)人員根據(jù)實(shí)際情況加以改變。單片機(jī)對(duì)對(duì)溫度的控制是工業(yè)生產(chǎn)中經(jīng)常使用的控制方法.自從1976年Intel公司推出第一批單片機(jī)以來(lái),80年代單片機(jī)技術(shù)進(jìn)入快速開(kāi)展時(shí)期,近年來(lái),隨著大規(guī)模集成電路的開(kāi)展,單片機(jī)繼續(xù)朝快速、高性能方向開(kāi)展。單片機(jī)主要用于控制,它的應(yīng)用領(lǐng)域普及各行各業(yè),大到航天飛機(jī),小至日常生活中的冰箱、彩電,單片機(jī)都可以大顯其能。單片機(jī)將微處理器、存儲(chǔ)器、定時(shí)/計(jì)數(shù)器、I/O接口電路等集成在一個(gè)芯片上的大規(guī)模集成電路,本身即是一個(gè)小型化的微機(jī)系統(tǒng)。單片機(jī)技術(shù)與傳感與測(cè)量技術(shù)、信號(hào)與系統(tǒng)分析技術(shù)、電路設(shè)計(jì)技術(shù)、可編程邏輯應(yīng)用技術(shù)、微機(jī)接口技術(shù)、數(shù)據(jù)庫(kù)技術(shù)以及數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)操作系統(tǒng)、匯編語(yǔ)言程序設(shè)計(jì)、高級(jí)語(yǔ)言程序設(shè)計(jì)、軟件工程、數(shù)據(jù)網(wǎng)絡(luò)通信、數(shù)字信號(hào)處理、自動(dòng)控制、誤差分析、儀器儀表結(jié)構(gòu)設(shè)計(jì)和制造工藝等的結(jié)合,使得單片機(jī)的應(yīng)用非常廣泛。同時(shí),單片機(jī)具有較強(qiáng)的管理功能。采用單片機(jī)對(duì)整個(gè)測(cè)量電路進(jìn)行管理和控制,使得整個(gè)系統(tǒng)智能化、功耗低、使用電子元件較少、內(nèi)部配線少、本錢(qián)低,制造、安裝、調(diào)試及維修方便。傳統(tǒng)的溫度采集電路相當(dāng)復(fù)雜,需要經(jīng)過(guò)溫度采集、信號(hào)放大、濾波、AD轉(zhuǎn)換等一系列工作才能得到溫度的數(shù)字量,并且這種方式不僅電路復(fù)雜,元器件個(gè)數(shù)多,而且線性度和準(zhǔn)確度都不理想,抗干擾能力弱?,F(xiàn)在常用的溫度傳感器芯片不但功率消耗低、準(zhǔn)確率高,而且比傳統(tǒng)的溫度傳感器有更好的線性表現(xiàn),最重要的一點(diǎn)是使用起來(lái)方便。目錄中文摘要.......................................................Ⅰ英文摘要.......................................................Ⅱ緒論.......................................................Ⅲ1系統(tǒng)總體設(shè)計(jì)..................................................11.1硬件總體設(shè)計(jì)............................................11.2軟件總體設(shè)計(jì).............................................12硬件系統(tǒng)設(shè)計(jì).................................................22.1硬件電路分析和設(shè)計(jì)報(bào)告...................................23系統(tǒng)軟件設(shè)計(jì)................................................133.1主程序流程圖...........................................133.2各個(gè)模塊的流程圖.......................................154系統(tǒng)調(diào)試.............................................................194.1硬件電路調(diào)試............................................194.2軟件調(diào)試................................................194.3系統(tǒng)操作說(shuō)明書(shū)..........................................214.4數(shù)據(jù)測(cè)試................................................21總結(jié)...........................................................23致謝...........................................................24參考文獻(xiàn).......................................................25附錄一:系統(tǒng)源程序..............................................26附錄二系統(tǒng)硬件總圖.............................................361系統(tǒng)總體設(shè)計(jì)1.1硬件總體設(shè)計(jì)設(shè)計(jì)并制作一個(gè)基于單片機(jī)的熱水器溫度控制系統(tǒng)的電路,其結(jié)構(gòu)框圖如圖1-1:電源電源單片機(jī)AT8051數(shù)碼管顯示繼電器溫度傳感器DS18B20報(bào)警鍵盤(pán)指示燈圖1-1系統(tǒng)結(jié)構(gòu)框圖1.1.1硬件系統(tǒng)子模塊(1)單片機(jī)最小系統(tǒng)電路局部(2)鍵盤(pán)掃描電路局部(3)數(shù)碼管溫度顯示和運(yùn)行指示燈電路局部(4)溫度采集電路局部(5)繼電器控制局部(6)報(bào)警局部1.2軟件總體設(shè)計(jì)良好的設(shè)計(jì)方案可以減少軟件設(shè)計(jì)的工作量,提高軟件的通用性,擴(kuò)展性和可讀性。本系統(tǒng)的設(shè)計(jì)方案和步驟如下:(1)根據(jù)需求按照系統(tǒng)的功能要求,逐級(jí)劃分模塊。(2)明確各模塊之間的數(shù)據(jù)流傳遞關(guān)系,力求數(shù)據(jù)傳遞少,以增強(qiáng)各模塊的獨(dú)立性,便于軟件編制和調(diào)試。(3)確定軟件開(kāi)發(fā)環(huán)境,選擇設(shè)計(jì)語(yǔ)言,完成模塊功能設(shè)計(jì),并分別調(diào)試通過(guò)。(4)按照開(kāi)發(fā)式軟件設(shè)計(jì)結(jié)構(gòu),將各模塊有機(jī)的結(jié)合起來(lái),即成一個(gè)較完善的系統(tǒng)。首先接通電源系統(tǒng)開(kāi)始工作,系統(tǒng)開(kāi)始工作后,通過(guò)按鍵設(shè)定溫度值的上限值和下限值,確定按鍵將設(shè)定的溫度值存儲(chǔ)到指定的地址空間,溫度傳感器開(kāi)始實(shí)時(shí)檢測(cè),調(diào)用顯示子程序顯示檢測(cè)結(jié)果,調(diào)用比擬當(dāng)前顯示溫度值與開(kāi)始設(shè)定的溫度值比擬,如果當(dāng)前顯示值低于設(shè)定值就通過(guò)繼電器起動(dòng)加熱裝置,直到到達(dá)設(shè)定值停止加熱,之后進(jìn)行保溫,如果溫度高于上限進(jìn)行報(bào)警。2硬件系統(tǒng)設(shè)計(jì)2.1硬件電路分析和設(shè)計(jì)報(bào)告本次設(shè)計(jì)主要思路是通過(guò)對(duì)單片機(jī)編程將由溫度傳感器DS18B20采集的溫度外加驅(qū)動(dòng)電路顯示出來(lái),包括對(duì)繼電器的控制,進(jìn)行升溫,當(dāng)溫度到達(dá)上下限蜂鳴器進(jìn)行報(bào)警。P1.7開(kāi)關(guān)按鈕是用于確認(rèn)設(shè)定溫度的,初始按下表示開(kāi)始進(jìn)入溫度設(shè)定狀態(tài),然后通過(guò)P1.5和P1.6設(shè)置溫度的升降,再次按下P1.7時(shí),表示確認(rèn)所設(shè)定的溫度,然后轉(zhuǎn)入升溫或降溫。P2.3所接的發(fā)光二極管用于表示加熱狀態(tài),P2.5所接的發(fā)光二極管用于表示保溫狀態(tài)。P2.3接繼電器。P3.1是溫度信號(hào)線。整個(gè)電路都是通過(guò)軟件控制實(shí)現(xiàn)設(shè)計(jì)要求。2.1.1單片機(jī)最小系統(tǒng)電路因?yàn)?0C51單片機(jī)內(nèi)部自帶8K的ROM和256字節(jié)的RAM,因此不必構(gòu)建單片機(jī)系統(tǒng)的擴(kuò)展電路。如圖2-1,單片機(jī)最小系統(tǒng)有復(fù)位電路和振蕩器電路。值得注意的一點(diǎn)是單片機(jī)的31腳必須接高電平,否那么系統(tǒng)將不能運(yùn)行。因?yàn)樵撃_不接時(shí)為低電平,單片機(jī)將直接讀取外部程序存儲(chǔ)器,而系統(tǒng)沒(méi)有外部程序存儲(chǔ)器,所以必須接VCC。在按鍵兩端并聯(lián)一個(gè)電解電容,濾除交流干擾,增加系統(tǒng)抗干擾能力。C2C230PFC330PF?§??112MEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2+C410UFVCCR310KVCCAT80C51VCC112234SW5SW-PB(??)圖2-1單片機(jī)最小系統(tǒng)圖2.1.2鍵盤(pán)電路鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)中的主要輸入設(shè)備,單片機(jī)使用的鍵盤(pán)分為編碼鍵盤(pán)和非編碼鍵盤(pán)。編碼鍵盤(pán)采用硬件線路來(lái)實(shí)現(xiàn)鍵盤(pán)的編碼,每按下一個(gè)鍵,鍵盤(pán)能夠自動(dòng)生成按鍵代碼,并有去抖功能。因此使用方便,但硬件較復(fù)雜。非編碼鍵盤(pán)僅僅提供鍵開(kāi)關(guān)狀態(tài),由程序來(lái)識(shí)別閉合鍵,消除抖動(dòng),產(chǎn)生相應(yīng)的代碼,轉(zhuǎn)入執(zhí)行該鍵的功能程序。非編碼鍵盤(pán)中鍵的數(shù)量較少,硬件簡(jiǎn)單,在單片機(jī)中應(yīng)用非常廣泛。圖為按鍵和AT80C51的接線圖,檢測(cè)儀共設(shè)有4個(gè)按鍵,每個(gè)按鍵由軟件來(lái)決定其功能,4個(gè)按鍵功能分別為:(1)SW1:設(shè)定按鍵(設(shè)定按鍵)(2)SW2:加法按鍵(當(dāng)前位加5)(3)SW3:減法按鍵(當(dāng)前位減5)(4)SW4:退出設(shè)置鍵(系統(tǒng)初始化)EA/VP31EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2AT80C51112234SW3SW-PB(??)112234SW4SW-PB(??)112234SW2SW-PB(??)112234SW1SW-PB(??)P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7圖2-2單片機(jī)按鍵和AT80C51的接線圖2.1.3數(shù)碼管及指示燈顯示電路〔1〕數(shù)碼管顯示說(shuō)明各個(gè)數(shù)碼管的段碼都是單片機(jī)的數(shù)據(jù)口輸出,即各個(gè)數(shù)碼管輸入的段碼都是一樣的,為了使其分別顯示不同的數(shù)字,可采用動(dòng)態(tài)顯示的方式,即先只讓最低位顯示0(含點(diǎn)),經(jīng)過(guò)一段延時(shí),再只讓次低位顯示1,如此類(lèi)推。由視覺(jué)暫留,只要我們的延時(shí)時(shí)間足夠短,就能夠使得數(shù)碼的顯示看起來(lái)非常的穩(wěn)定清楚,過(guò)程如表3-1。表2-1數(shù)碼管編碼表段碼位碼顯示器狀態(tài)08H01H□□□□□□□0abH02H□□□□□□1□12H04H□□□□□2□□22H08H□□□□3□□□a1H10H□□□4□□□□24H20H□□5□□□□□04H40H□6□□□□□□aaH80H7□□□□□□□本論文中使用了3個(gè)數(shù)碼管,其中前兩位使用動(dòng)態(tài)掃描顯示實(shí)測(cè)溫度,在設(shè)置加熱溫度的時(shí)候,兩個(gè)數(shù)碼管是閃爍,以提示目前處在溫度設(shè)置狀態(tài)。第三位數(shù)碼管靜態(tài)顯示符號(hào)“℃〞?!?〕運(yùn)行指示燈說(shuō)明本熱水器溫度控制系統(tǒng)中共使用到3個(gè)LED指示燈和3個(gè)數(shù)碼管。右上角的紅色LED是電源指示燈;數(shù)碼管右邊的紅色LED是加熱指示燈,當(dāng)剛開(kāi)機(jī)或溫度降到設(shè)定溫度5℃以下時(shí),該燈會(huì)亮,表示目前處于加熱狀態(tài);當(dāng)溫度上升到設(shè)定溫度時(shí),該LED滅,同時(shí)數(shù)碼管右邊的綠色LED亮,表示目前處于保溫狀態(tài),用戶可以使用熱水器;當(dāng)溫度再次下降到設(shè)定溫度5℃以下時(shí),綠色LED滅,紅色加熱的LED燈亮,不斷循環(huán)。 圖2-3LED數(shù)碼管顯示電路圖2.1.4溫度采集電路〔1〕DS18B20介紹Dallas最新單線數(shù)字溫度傳感器DS18B20簡(jiǎn)介新的“一線器件〞體積更小、適用電壓更寬、更經(jīng)濟(jì)。Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持“一線總線〞接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。DS18B20、DS1822“一線總線〞數(shù)字化溫度傳感器同DS18B20一樣,DS18B20也支持“一線總線〞接口,測(cè)量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。DS1822的精度較差為±2℃。現(xiàn)場(chǎng)溫度直接以“一線總線〞的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其DS18B20的管腳配置和封裝結(jié)構(gòu)如圖2-4所示。圖2-4DS18B20封裝引腳定義:①DQ為數(shù)字信號(hào)輸入/輸出端;②GND為電源地;③VDD為外接供電電源輸入端〔在寄生電源接線方式時(shí)接地〕。〔2〕DS18B20的單線〔1-wirebus〕系統(tǒng)單線總線結(jié)構(gòu)是DS18B20的突出特點(diǎn),也是理解和編程的難點(diǎn)。從兩個(gè)角度來(lái)理解單線總線:第一,單線總線只定義了一個(gè)信號(hào)線,而且DS18B20智能程度較低〔這點(diǎn)可以與微控制器和SPI器件間的通信做一個(gè)比擬〕,所以DS18B20和處理器之間的通信必然要通過(guò)嚴(yán)格的時(shí)序控制來(lái)完成。第二,DS18B20的輸出口是漏級(jí)開(kāi)路輸出,這里給出一個(gè)微控制器和DS18B20連接原理圖。這種設(shè)計(jì)使總線上的器件在適宜的時(shí)間驅(qū)動(dòng)它。顯然,總線上的器件與〔wiredAND〕關(guān)系。這就決定:〔1〕微控制器不能單方面控制總線狀態(tài)。之所以提出這點(diǎn),是因?yàn)橄喈?dāng)多的文獻(xiàn)資料上認(rèn)為,微控制器在讀取總線上數(shù)據(jù)之前的I/O口的置1操作是為了給DS18B20一個(gè)發(fā)送數(shù)據(jù)的信號(hào)。這是一個(gè)錯(cuò)誤的觀點(diǎn)。如果當(dāng)前DS18b20發(fā)送0,即使微控制器I/O口置1,總線狀態(tài)還是0;置1操作是為了是I/O口截止〔cutoff〕,以確保微控制器正確讀取數(shù)據(jù)?!?〕除了DS18B20發(fā)送0的時(shí)間段,其他時(shí)間其輸出口自動(dòng)截止。自動(dòng)截止是為確保:1時(shí),在總線操作的間隙總線處于空閑狀態(tài),即高態(tài)。2時(shí),確保微控制器在寫(xiě)1的時(shí)候DS18B20可以正確讀入。由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。①DS18B20的復(fù)位時(shí)序,如圖2-5圖2-5DS18B20的復(fù)位時(shí)序圖②DS18B20的讀時(shí)序?qū)τ贒S18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。DS18B20的讀時(shí)序圖如圖2-6所示。圖2-6DS18B20的讀時(shí)序③DS18B20的寫(xiě)時(shí)序?qū)τ贒S18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0〞電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。如圖2-7所示。圖2-7DS18B20的寫(xiě)時(shí)序圖〔3〕DS18B20的供電方式在圖2-8中示出了DS18B20的寄生電源電路。當(dāng)DQ或VDD引腳為高電平時(shí),這個(gè)電路便“取〞的電源。寄生電路的優(yōu)點(diǎn)是雙重的,遠(yuǎn)程溫度控制監(jiān)測(cè)無(wú)需本地電源,缺少正常電源條件下也可以讀ROM。為了使DS18B20能完成準(zhǔn)確的溫度變換,當(dāng)溫度變換發(fā)生時(shí),DQ線上必須提供足夠的功率。有兩種方法確保DS18B20在其有效變換期內(nèi)得到足夠的電源電流。第一種方法是發(fā)生溫度變換時(shí),在DQ線上提供一強(qiáng)的上拉,這期間單總線上不能有其它的動(dòng)作發(fā)生。如圖2-8所示,通過(guò)使用一個(gè)MOSFET把DQ線直接接到電源可實(shí)現(xiàn)這一點(diǎn),這時(shí)DS18B20工作在寄生電源工作方式,在該方式下VDD引腳必須連接到地。圖2-8DS18B20供電方式1另一種方法是DS18B20工作在外部電源工作方式,如圖2-9所示。這種方法的優(yōu)點(diǎn)是在DQ線上不要求強(qiáng)的上拉,總線上主機(jī)不需要連接其它的外圍器件便在溫度變換期間使總線保持高電平,這樣也允許在變換期間其它數(shù)據(jù)在單總線上傳送。此外,在單總線上可以并聯(lián)多個(gè)DS18B20,而且如果它們?nèi)坎捎猛獠侩娫垂ぷ鞣绞?,那么通過(guò)發(fā)出相應(yīng)的命令便可以同時(shí)完成溫度變換。圖2-9DS18B20供電方式2〔4〕DS18B20設(shè)計(jì)中應(yīng)注意的幾個(gè)問(wèn)題DS18B20具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用接口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送。因此,在對(duì)DS18B20進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否那么將無(wú)法讀取測(cè)溫結(jié)果。在DS18B20有關(guān)資料中均未提及1Wire上所掛DS18B20數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)1Wire上所掛DS18B20超過(guò)8個(gè)時(shí),就需要考慮微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。連接DS18B20的總線電纜是有長(zhǎng)度限制的。實(shí)際應(yīng)用中,測(cè)溫電纜線建議采用屏蔽4芯雙絞線,其中一對(duì)線接地線與信號(hào)線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。本文以廣泛應(yīng)用的數(shù)字溫度傳感器DS18B20為例,說(shuō)明了1Wire總線的操作過(guò)程和根本原理。事實(shí)上,基于1Wire總線的產(chǎn)品還有很多種,如1Wire總線的E2PROM、實(shí)時(shí)時(shí)鐘、電子標(biāo)簽等。他們都具有節(jié)省I/O資源、結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)快捷、本錢(qián)低廉、便于總線擴(kuò)展等優(yōu)點(diǎn),因此有廣闊的應(yīng)用空間,具有較大的推廣價(jià)值。本設(shè)計(jì)將溫度傳感器DS18B20與單片機(jī)TXD引腳相連,讀取溫度傳感器的數(shù)值。DS18B20與單片機(jī)連接圖如下圖2-10所示。VCCVCCEA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U2AT80C51DQ2GND1VCC3U3DS1820VCCR154.7K圖2-10DS18B20與單片機(jī)連接圖2.1.5電源電路采用L7805穩(wěn)壓塊,輸出為5V。電子組件要正常運(yùn)作都需要電源電壓供電,一般常用的電源電壓為+5V或+12V,因?yàn)閿?shù)字IC〔IngegratedCircuit:集成電路〕所供應(yīng)的電壓為+5V,而CMOSIC所供應(yīng)的電壓為+12V,7805是一個(gè)穩(wěn)壓塊。7805穩(wěn)壓管把高電壓轉(zhuǎn)換到低電壓,7805穩(wěn)壓管具有保護(hù)單片機(jī)的作用。L7805輸出端要并聯(lián)上一個(gè)電解電容,濾除交流電干擾,防止損壞單片機(jī)系統(tǒng)。本設(shè)計(jì)采用兩種供電方式,一種為DC7~18V直流穩(wěn)壓電源變換成5V的直流電;另一種為四節(jié)干電池共6V經(jīng)二極管加壓后得到將近5V的直流電源,電源配以開(kāi)關(guān)和指示燈,以方便使用。黃色發(fā)光二極管表示保溫,紅色的表示加熱狀態(tài)。圖2-11系統(tǒng)電源設(shè)計(jì)圖2.1.6報(bào)警電路設(shè)計(jì)同時(shí)可以在系統(tǒng)里設(shè)定溫度上限值,由于加熱停止后,加熱管還有余熱當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。報(bào)警電路原理圖如下圖。圖2-12報(bào)警電路圖圖中的三極管8550的作用是增加驅(qū)動(dòng)能力,比9012的驅(qū)動(dòng)電流還大些,因此選用8550。當(dāng)程序進(jìn)入報(bào)警子程序時(shí),把P2.7置0,就會(huì)觸發(fā)蜂鳴器,為了使報(bào)警聲音效果更好,對(duì)P2.7取反,發(fā)出報(bào)警嘟嚕聲音。2.1.7加熱管控制電路設(shè)計(jì)繼電器是常用的輸出控制接口,可以做交直流信號(hào)的輸出切換。它具有控制系統(tǒng)〔又稱(chēng)輸入回路〕和被控制系統(tǒng)〔又稱(chēng)輸出回路〕,通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)〞。故在電路中起著自動(dòng)調(diào)節(jié)、平安保護(hù)、轉(zhuǎn)換電路等作用。繼電器控制接點(diǎn)操作說(shuō)明如下:●COM:Common,共同點(diǎn)。輸出控制接點(diǎn)的共同接點(diǎn)。●NC:NormalClose常閉點(diǎn)。以Com為共同點(diǎn),NC與COM在平時(shí)是呈導(dǎo)通狀態(tài)的。●NO:NormalOpen常開(kāi)點(diǎn)。NO與COM在平時(shí)是呈開(kāi)路狀態(tài)的,當(dāng)繼電器動(dòng)作時(shí),NO與COM導(dǎo)通,NC與COM那么呈開(kāi)路狀態(tài)。當(dāng)89S52的P2.5輸出高電平時(shí),繼電器不導(dǎo)通,反之當(dāng)輸出低電平時(shí),繼電器導(dǎo)通,這樣就激活了連接回路。3系統(tǒng)總設(shè)計(jì)本系統(tǒng)采用的是循環(huán)查詢方式,來(lái)顯示和控制溫度的。主要包括四段程序的設(shè)計(jì):DS18B20讀溫度程序,數(shù)碼管的驅(qū)動(dòng)程序,鍵盤(pán)掃描程序,以及抱經(jīng)處理程序。3.1主程序流程圖圖3-1主程序流程圖3.2各個(gè)模塊的流程圖3.2.1讀取溫度DS18B20模塊的流程由于DS18B20采用的是一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S52單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念。因此系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20〔發(fā)復(fù)位脈沖〕→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)DS18B20雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),DS18B20必須首先調(diào)用啟動(dòng)溫度轉(zhuǎn)換函數(shù),根據(jù)數(shù)據(jù)手冊(cè)上對(duì)應(yīng)轉(zhuǎn)換時(shí)間來(lái)超作,如為12位轉(zhuǎn)換,那么應(yīng)該是最大750mS,另外在對(duì)DS18B20超作時(shí),時(shí)序要求非常嚴(yán)格,因此最好禁止系統(tǒng)中斷。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。DS18B20的讀時(shí)序:〔1〕對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程?!?〕對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。DS18B20的寫(xiě)時(shí)序:〔1〕對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程?!?〕對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0〞電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。系統(tǒng)程序設(shè)計(jì)主要包括三局部:讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示溫度子程序。圖3-2讀取溫度DS18B20模塊的流程圖程序代碼為:GET_TEMPER: SETB DQ ;讀出轉(zhuǎn)換后的溫度值 LCALL INIT_1820 ;先復(fù)位DS18B20 JB FLAG1,TSS2 RET ;判斷DS1820是否存在?假設(shè)DS18B20不存在那么返回TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測(cè)到!!!!!!!!!!!!!!!跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820LCALLDISPLAY ;這里通過(guò)調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒 LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位 MOV A,#0CCH ;跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36H RET3.2.2鍵盤(pán)掃描處理流程此流程為鍵盤(pán)掃描處理,CPU通過(guò)檢測(cè)各數(shù)據(jù)線的狀態(tài)(0或1)就能知道是否有按鍵閉合以及哪個(gè)按鍵閉合。鍵盤(pán)管理程序的功能是檢測(cè)是否有按鍵閉合,如果有按鍵閉合,消除抖動(dòng),根據(jù)鍵號(hào)轉(zhuǎn)到相應(yīng)的鍵處理程序,按鍵流程圖如圖3-3所示。圖3-3鍵盤(pán)掃描子程序流程圖3.2.3報(bào)警處理流程運(yùn)行程序后,溫度傳感器DS18B20即可對(duì)環(huán)境進(jìn)行溫度采集,并送LED數(shù)碼管顯示。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時(shí),程序就會(huì)進(jìn)入報(bào)警子程序,觸發(fā)蜂鳴器進(jìn)行報(bào)警。其程序流程圖如圖3-4所示。圖3-4報(bào)警子程序流程圖4系統(tǒng)調(diào)試4.1硬件電路調(diào)試仔細(xì)檢查所接電路,按照硬件原理圖接線,理論上是能實(shí)現(xiàn)的,如果數(shù)碼管不顯示,那么應(yīng)該檢查線路是否正確,或是因?yàn)閱纹瑱C(jī)沒(méi)有工作,還有集電極和發(fā)射極是否接對(duì)。如果只顯示兩個(gè)八,那么可能是DS18B20沒(méi)有接正確,檢查上拉電路是否接好。另外要注意的是,由單片機(jī)輸出的控制信號(hào)比擬小,需要進(jìn)行放大才能驅(qū)動(dòng)繼電器工作,否那么就不能實(shí)現(xiàn)升溫過(guò)程,通常選用8550三極管來(lái)進(jìn)行放大。還有220V交流電綠色接頭和加熱管黃色接頭必須接正確,否那么導(dǎo)致電路燒壞。蜂鳴器是低電平有效。如果能注意這些問(wèn)題,電路根本不會(huì)出錯(cuò)。4.2軟件調(diào)試如果硬件電路檢查后,沒(méi)有問(wèn)題卻實(shí)現(xiàn)不了設(shè)計(jì)要求,那么可能是軟件編程的問(wèn)題,首先應(yīng)檢查初始化程序,然后是讀溫度程序,顯示程序,以及繼電器控制程序,對(duì)這些分段程序,要注意邏輯順序,調(diào)用關(guān)系,以及涉及到了標(biāo)號(hào),有時(shí)會(huì)因?yàn)橐粋€(gè)標(biāo)號(hào)而影響程序的執(zhí)行,除此之外,還要熟悉各指令的用法,以免出錯(cuò)。還有一個(gè)容易忽略的問(wèn)題就是,源程序生成的代碼是否燒入到單片機(jī)中,如果這一過(guò)程出錯(cuò),那不能實(shí)現(xiàn)設(shè)計(jì)要求也是情理之中的事。本人在設(shè)計(jì)的時(shí)候在偉福仿真軟件進(jìn)行調(diào)試,通過(guò)此軟件進(jìn)行調(diào)試可以很方便的觀察單片機(jī)內(nèi)部各個(gè)存放器及內(nèi)部存儲(chǔ)器變化情況,以方便進(jìn)行調(diào)試。圖為單片機(jī)功能調(diào)試圖:硬件與軟件調(diào)試相結(jié)合,仔細(xì)檢查各個(gè)模塊的設(shè)計(jì),舊能順利完成任務(wù),實(shí)現(xiàn)設(shè)計(jì)要求,在調(diào)試過(guò)程中必須認(rèn)真耐心,不能有一點(diǎn)馬虎,否那么遺漏一個(gè)小的問(wèn)題就會(huì)導(dǎo)致整個(gè)設(shè)計(jì)的失敗。4.3系統(tǒng)操作說(shuō)明本系統(tǒng)上電后數(shù)碼管顯示當(dāng)前測(cè)量溫度,此時(shí)加熱指示燈和保溫指示燈均不點(diǎn)亮;假設(shè)此時(shí)按“自動(dòng)加熱〞鍵,那么單片機(jī)自動(dòng)將預(yù)加熱溫度設(shè)置為80℃并開(kāi)始加熱,送出一個(gè)加熱信號(hào),并點(diǎn)亮加熱指示燈;假設(shè)按“溫度設(shè)置〞鍵,那么進(jìn)入預(yù)加熱溫度設(shè)置界面,此時(shí)數(shù)碼管閃爍顯示預(yù)設(shè)置溫度,此時(shí)通過(guò)按鍵“+〞和“-〞進(jìn)行設(shè)置溫度,預(yù)設(shè)置溫度按“5〞遞增或遞減,設(shè)置好溫度后再按一次“溫度設(shè)置〞鍵確定,單片機(jī)保存預(yù)設(shè)置溫度,并開(kāi)始加熱。此時(shí)單片機(jī)通過(guò)數(shù)碼管顯示實(shí)時(shí)檢測(cè)的溫度并和預(yù)設(shè)置溫度進(jìn)行比照,如果實(shí)測(cè)溫度大于或等于預(yù)設(shè)置溫度,那么單片機(jī)發(fā)出停止加熱信號(hào)并熄滅加熱指示燈,點(diǎn)亮保溫指示燈,且當(dāng)超過(guò)預(yù)設(shè)溫度時(shí)發(fā)出報(bào)警;當(dāng)溫度下降到預(yù)設(shè)置溫度以下5度時(shí),單片機(jī)再次發(fā)出加熱信號(hào),同時(shí)熄滅保溫指示燈,點(diǎn)亮加熱指示燈,依次循環(huán)控制。4.4數(shù)據(jù)測(cè)試1.靜態(tài)數(shù)據(jù)測(cè)試取一桶凈水,改變它的溫度,觀察數(shù)碼管上顯示的溫度值,并用溫度計(jì)進(jìn)行測(cè)溫,記錄兩組數(shù)據(jù),比擬差異。記錄表如下:表4-1靜態(tài)溫度數(shù)據(jù)測(cè)試表溫度℃123456顯示溫度234763778490測(cè)量溫度244763808491有測(cè)試數(shù)據(jù)可知,本系統(tǒng)測(cè)溫結(jié)果與溫度計(jì)測(cè)溫根本一致,能滿足設(shè)計(jì),證明了設(shè)計(jì)的合理性。2.動(dòng)態(tài)數(shù)據(jù)測(cè)試進(jìn)行溫度設(shè)定,通過(guò)設(shè)定溫度值〔75℃〕,觀察加熱管的加熱情況,以及數(shù)碼管的顯示值,再用溫度計(jì)測(cè)量水溫,每隔一段時(shí)間記錄一次數(shù)據(jù),將兩組值進(jìn)行比擬。記錄表如下:〔設(shè)定前溫度為25℃〕表4-2靜態(tài)溫度數(shù)據(jù)測(cè)試表組數(shù)分組12345678910111213顯示溫度25293439424853586267707375測(cè)量溫度25283438424953596367717475通過(guò)上表可看出在加熱的過(guò)程中,顯示的溫度與實(shí)測(cè)的溫度近似一樣,說(shuō)明系統(tǒng)的設(shè)計(jì)到達(dá)精度要求,但還是略有偏差,根本不影響設(shè)計(jì)結(jié)果。整個(gè)測(cè)試過(guò)程說(shuō)明設(shè)計(jì)到達(dá)了任務(wù)書(shū)的要求,證明了該方案是合理可行的,順利完成了設(shè)計(jì),到達(dá)了預(yù)想結(jié)果??偨Y(jié)通過(guò)本次的設(shè)計(jì),使我們不僅對(duì)單片機(jī)這門(mén)課程有了更深刻的認(rèn)識(shí),懂得了如何運(yùn)用課本知識(shí)結(jié)合實(shí)際來(lái)完成定時(shí)器的顯示和編程方法以及數(shù)碼顯示電路的驅(qū)動(dòng)方法,使我們能夠很快的適應(yīng)現(xiàn)代控制技術(shù)開(kāi)展的需求,同時(shí)也提高了我們的思維能力和實(shí)際操作能力,為以后更好的走上工作崗位奠定了堅(jiān)實(shí)的根底。另外,這次的設(shè)計(jì)還讓我更進(jìn)一步的認(rèn)識(shí)了關(guān)于AT80C51等芯片的引腳功能以及使用方法,使我學(xué)會(huì)了應(yīng)用不同的芯片來(lái)配合完成整個(gè)設(shè)計(jì)的操作。在做硬件電路的這段時(shí)間里,從思考設(shè)計(jì)到對(duì)電路的調(diào)試經(jīng)過(guò)了許多困難。同樣在對(duì)軟件進(jìn)行設(shè)計(jì)時(shí),也可為一路坎坷。但是通過(guò)對(duì)軟硬件不斷撞墻,不斷思考解決問(wèn)題的過(guò)程中,我學(xué)會(huì)了很多東西,同時(shí)對(duì)單片機(jī)也有了更深的認(rèn)識(shí)。在做設(shè)計(jì)的時(shí)候,很需要耐心和對(duì)事物的細(xì)心,很多時(shí)候一個(gè)簡(jiǎn)單問(wèn)題的一個(gè)簡(jiǎn)單的疏忽就會(huì)導(dǎo)致整個(gè)電路的不工作,只有不斷的檢查不斷的調(diào)試,才能真正完成一個(gè)設(shè)計(jì)的制作。只有不斷的發(fā)現(xiàn)問(wèn)題解決問(wèn)題,才能從問(wèn)題中改變自己,提升自己對(duì)單片機(jī)的能力。此設(shè)計(jì)雖然能夠完成溫度的顯示和控制,但功能和精度有待于進(jìn)一步提高。以后可以通過(guò)參加PID算法優(yōu)化控制功能,并通過(guò)液晶顯示屏實(shí)時(shí)顯示溫度。致謝經(jīng)過(guò)半年的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)專(zhuān)科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒(méi)有導(dǎo)師的催促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。首先感謝李月英老師出的這些論文選題,給了我這么一個(gè)展現(xiàn)自己能力的平臺(tái)。在這一個(gè)論文設(shè)計(jì)之中,涉及到了方方面面的知識(shí),沒(méi)有大學(xué)期間各個(gè)學(xué)科老師的辛勤栽培,也不會(huì)有我見(jiàn)天的成果。所以要感謝所有的任課老師。在這里也要感謝我的室友們,是他們?cè)谄綍r(shí)無(wú)微不至的照顧,才有了我更棒的身體,和更多的學(xué)習(xí)時(shí)間。三年的時(shí)間里,我們沒(méi)有紅過(guò)臉,我們一直保持著那份純真的友誼,是我們的互相幫助,才有了今天的這份德業(yè)雙修。所以在這里也要感謝我們的鄭州科技學(xué)院,是學(xué)院給了我們這么寬廣的一個(gè)交流平臺(tái),能夠在獲得知識(shí)的同時(shí),也能得到同樣珍貴的友誼。在論文即將完成之際,我的心情很是沖動(dòng),那些埋頭苦干和終日坐在電腦跟前的場(chǎng)景還是歷歷在目,辛勤勞動(dòng)的付出,相信也能夠給我?guī)?lái)同樣分量的收獲。從開(kāi)始進(jìn)入課題到論文的順利完成,有太多太多的要感謝的朋友和老師,在這里請(qǐng)接受我真摯的感謝!參考文獻(xiàn)[l]樂(lè)建波編著《溫度控制系統(tǒng)》化學(xué)工業(yè)出版社[2]謝自美編著《電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試〔第二版〕》華中科技大學(xué)出版社2000[3]武慶生仇梅編著《單片機(jī)原理與應(yīng)用》電子科技大學(xué)出版社1998.2[4]譚浩強(qiáng)編著《C程序設(shè)計(jì)》.北京:清華大學(xué)出版社1999年[5]華中理工大學(xué)電子學(xué)教研室編《電子技術(shù)根底數(shù)字局部〔第四版〕》高等教育出版社2000.6[6]《電子制作》2004.10[7]王彬任艷穎編著《DigitalICSystemDesign》西安電子科技大學(xué)出版社2005.9[8]趙麗娟邵欣編著《基于單片機(jī)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》機(jī)械制造[9]郭炳坤簡(jiǎn)單的恒溫箱溫控電路[J].儀器與未來(lái),1991附錄1:系統(tǒng)源程序EMPER_L EQU 29H ;用于保存讀出溫度的低8位 TEMPER_H EQU 28H ;用于保存讀出溫度的高8位 FLAG1 EQU 38H ;是否檢測(cè)到DS18B20標(biāo)志位 A_BIT EQU 20H ;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置 B_BIT EQU 21H ;數(shù)碼管十位數(shù)存放內(nèi)存位置 B1 EQU 70H ;溫度小數(shù)點(diǎn)位 A1 EQU 71H ;設(shè)定溫度值 DQ EQU P3.1 ;DQ為DS18B20數(shù)據(jù)位 BELL EQU P2.7 ;//蜂鳴報(bào)警 ORG 0000H ;單片機(jī)內(nèi)存分配申明! AJMP MAIN0 ;///////////////////////////////////前面的都是定義MAIN: MOV R0,#10M1: CPL P2.3 ACALL DELAY125 DJNZ R0,M1 ;//此段為燈閃5次,無(wú)實(shí)際意義 ;///////////////////////////////////////////////MAIN0: MOV A1,#80 ;默認(rèn)加熱為80度MAIN1: LCALL D1820 ;調(diào)用讀溫度子程序 LCALL DISPLAY ;調(diào)用數(shù)碼管顯示子程序 MOV A,29H CLR C CJNE A,A1,MAIN1_1 SETB BELL ;//溫度相等,關(guān)閉蜂鳴器 AJMP MAIN1_1_A ;//下等不用叫蜂鳴器MAIN1_1: JC MAIN1_2 ;為1轉(zhuǎn)移,表示小于設(shè)定溫度 CPL BELL ;蜂鳴器斷續(xù)鳴叫MAIN1_1_A: CLR P2.3 ;//下面是表示沒(méi)到達(dá)溫度 SETB P2.5 AJMP MAIN2 ;/////////////////////////////////////主要是檢測(cè)溫度是否小于設(shè)定的溫度,小于,那么開(kāi)發(fā)熱管CLR P2.3MAIN1_2: SETB BELL ;//關(guān)閉蜂鳴器 CLR P2.5 ;//開(kāi)發(fā)熱管 SETB P2.3 ;///////////////////////////////上面的是大于,關(guān)發(fā)熱管MAIN2: JB P1.0,MAIN1 ;//看P1.0有否按下 ACALL DELAY125 ;//延時(shí)防抖動(dòng),常用的手法,網(wǎng)上很多介紹的 JB P1.0,MAIN1 ;//再次查看 CLR P2.3 JNB P1.0,$ ;//等按鍵完全松手才進(jìn)入! SETB P2.3 SETB P2.5 ;///檢測(cè)到P1.0按鍵后后進(jìn)入設(shè)定溫度MAIN2_1: ACALL DISPLAY1 JB P1.2,MAIN2_2 ACALL DELAY125 JB P1.2,MAIN2_2 JNB P1.2,$ MOV A,#5 ADD A,A1 CLR C CJNE A,#100,MAIN2_1_1 MOV A,#99 AJMP MAIN2_1_3 ;////////////////上面這一段是+5度按鍵,按下+5度MAIN2_1_1: JC MAIN2_1_3MAIN2_1_2: CLR C MOV A,#99MAIN2_1_3: MOV A1,AMAIN2_2: JB P1.4,MAIN2_3 ACALL DELAY125 JB P1.4,MAIN2_3 JNB P1.4,$ MOV A,A1 CJNE A,#99,ZY1 MOV B,#4 AJMP ZY2ZY1: MOV B,#5ZY2: CLR C MOV A,A1 SUBB A,BMAIN2_2_1: JNC MAIN2_2_2 MOV A1,#0 AJMP MAIN2_3 ;////////////////上面這一段是-5度按鍵,按下-5度MAIN2_2_2: MOV A1,AMAIN2_3: JB P1.6,MAIN2_1 ACALL DELAY125 JB P1.6,MAIN2_1 CLR P2.3 JNB P1.6,$ SETB P2.3 AJMP MAIN1 ;/////////////上面這一段是退出的意思的!D1820: LCALL GET_TEMPER ;調(diào)用讀溫度子程序 MOV B1,29H MOV A,29H MOV C,40H ;將28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A MOV A,B1MOV B,#10H MUL AB MOV B,#10H DIV AB MOV B,#10 MUL AB MOV B,#10H DIV AB MOV B1,A RET ;//////////上面這一段是讀取溫度后進(jìn)行轉(zhuǎn)換的意思! ;///////////////////////////////// ;//////////////////////////////// ;///////////////////////////////INIT_1820: SETB DQ ;這是DS18B20復(fù)位初始化子程序 NOP CLR DQ ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖 MOV R1,#3TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB DQ ;然后拉高數(shù)據(jù)線 NOP NOP NOP NOP MOV R0,#25HTSR2: JNB DQ,TSR3 ;等待DS18B20回應(yīng) DJNZ R0,TSR2 LJMP TSR4 ;延時(shí)TSR3: SETB FLAG1 ;置標(biāo)志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1 ;清標(biāo)志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ;時(shí)序要求延時(shí)一段時(shí)間TSR7: SETB DQ RETGET_TEMPER: SETB DQ ;讀出轉(zhuǎn)換后的溫度值 LCALL INIT_1820 ;先復(fù)位DS18B20 JB FLAG1,TSS2 RET ;判斷DS1820是否存在?假設(shè)DS18B20不存在那么返回TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測(cè)到!!!!!!!!!!!!!!!跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL DISPLAY ;這里通過(guò)調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒 LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位 MOV A,#0CCH ;跳過(guò)ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36H RETWRITE_1820: MOV R2,#8 ;一共8位數(shù)據(jù) CLR C ;寫(xiě)DS18B20的子程序(有具體的時(shí)序要求)WR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標(biāo)準(zhǔn)蔬菜買(mǎi)賣(mài)合同范本
- 2025施工現(xiàn)場(chǎng)環(huán)境職業(yè)健康安全管理合同書(shū)
- 2025年度教育機(jī)構(gòu)辦學(xué)許可證轉(zhuǎn)讓及人才培養(yǎng)合作合同3篇
- 2025年度農(nóng)村小型水庫(kù)防洪減災(zāi)能力提升承包合同
- 2025年度國(guó)土綠化行動(dòng)-鄉(xiāng)土樹(shù)苗采購(gòu)與生態(tài)修復(fù)合同
- 二零二五年度排水溝清理與排水設(shè)施智能化改造協(xié)議3篇
- 二零二五年度創(chuàng)意辦公場(chǎng)地租賃與設(shè)計(jì)合同3篇
- 二零二五年度農(nóng)機(jī)租賃與農(nóng)業(yè)廢棄物綜合利用合作合同2篇
- 2025工廠生產(chǎn)承包合同樣本
- 2025年度公廁節(jié)能照明系統(tǒng)承包施工合同范本3篇
- 安恒可信數(shù)據(jù)空間建設(shè)方案 2024
- 2024年學(xué)校與家長(zhǎng)共同促進(jìn)家校合作發(fā)展協(xié)議3篇
- C預(yù)應(yīng)力錨索框架梁施工方案(完整版)
- 參加團(tuán)干部培訓(xùn)心得體會(huì)
- 中華民族共同體概論專(zhuān)家講座第一講中華民族共同體基礎(chǔ)理論
- 湖北省襄陽(yáng)市2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題(含答案)
- 浙江省金華市十校2023-2024學(xué)年高一上學(xué)期1月期末考試物理試題 含解析
- 物業(yè)管理師考試題庫(kù)單選題100道及答案解析
- 校園智能安防系統(tǒng)安裝合同
- 2024年專(zhuān)利代理人專(zhuān)利法律知識(shí)考試試卷及參考答案
- 2024-2025學(xué)年九年級(jí)上學(xué)期化學(xué)期中模擬試卷(人教版2024+含答案解析)
評(píng)論
0/150
提交評(píng)論