色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機(jī)的水溫控制器的設(shè)計(jì)

multisim ? 來源:multisim ? 作者:multisim ? 2020-12-26 10:08 ? 次閱讀

摘要

本系統(tǒng)的設(shè)計(jì)可以用于熱水器溫度控制系統(tǒng)和飲水機(jī)等各種電器電路中。它以單片機(jī)AT89S52為核心,通過3個數(shù)碼管顯示溫度和4個按鍵實(shí)現(xiàn)人機(jī)對話,使用單總線溫度轉(zhuǎn)換芯片DS18B20實(shí)時采集溫度并通過數(shù)碼管顯示,并提供各種運(yùn)行指示燈用來指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設(shè)置、加熱、停止加熱等,整個系統(tǒng)通過四個按鍵來設(shè)置加熱溫度和控制運(yùn)行模式。

目錄

1緒論... - 1 -

2系統(tǒng)總體設(shè)計(jì)... - 2 -

2.1硬件總體設(shè)計(jì)... - 2 -

2.1.1硬件系統(tǒng)子模塊... - 2 -

2.2軟件總體設(shè)計(jì)... - 2 -

3硬件系統(tǒng)設(shè)計(jì)... - 4 -

3.1硬件電路分析和設(shè)計(jì)報告... - 4 -

3.1.1單片機(jī)最小系統(tǒng)電路... - 4 -

3.1.2鍵盤電路... - 5 -

3.1.3數(shù)碼管及指示燈顯示電路... - 5 -

3.1.4溫度采集電路... - 7 -

3.1.5電源電路... - 11 -

3.1.6報警電路設(shè)計(jì)... - 12 -

3.1.7加熱管控制電路設(shè)計(jì)... - 12 -

4系統(tǒng)軟件設(shè)計(jì)... - 14 -

4.1主程序流程圖... - 14 -

4.2各個模塊的流程圖... - 16 -

4.2.1讀取溫度DS18B20模塊的流程... - 16 -

4.2.2鍵盤掃描處理流程... - 18 -

4.2.3報警處理流程... - 18 -

5系統(tǒng)調(diào)試... - 20 -

5.1硬件電路調(diào)試... - 20 -

5.2軟件調(diào)試... - 20 -

5.3系統(tǒng)操作說明... - 21 -

5.4數(shù)據(jù)測試... - 21 -

總結(jié)... - 23 -

致謝... - 24 -

參考文獻(xiàn)... - 25 -

附錄一:系統(tǒng)源程序... - 26 -

附錄二:系統(tǒng)硬件總圖... - 35 -

基于單片機(jī)的水溫控制器的設(shè)計(jì)

1緒論

本系統(tǒng)的設(shè)計(jì)可以用于水溫控制系統(tǒng)和電飯煲等各種電器電路中。它以單片機(jī)AT89S52為核心,通過數(shù)碼管顯示溫度和語音提示實(shí)現(xiàn)人機(jī)對話,使用溫度轉(zhuǎn)換芯片DS18B20實(shí)時采集溫度并通過數(shù)碼管顯示,并提供各種運(yùn)行指示燈用來指示系統(tǒng)現(xiàn)在所處狀態(tài),如:溫度設(shè)置、加熱、停止加熱等,整個系統(tǒng)通過四個按鍵來設(shè)置加熱溫度和控制運(yùn)行模式。

溫度控制系統(tǒng)可以說是無所不在,熱水器系統(tǒng)、空調(diào)系統(tǒng)、冰箱、電飯煲、電風(fēng)扇等家電產(chǎn)品以至手持式高速高效的計(jì)算機(jī)和電子設(shè)備,均需要提供溫度控制功能。以計(jì)算機(jī)為例,當(dāng)中的中央處理器的運(yùn)行速度愈快,所耗散的熱量便愈多,為免計(jì)算機(jī)系統(tǒng)過熱而受損,有關(guān)系統(tǒng)必須加強(qiáng)溫度過高保護(hù)功能。

傳統(tǒng)的溫度采集電路相當(dāng)復(fù)雜,需要經(jīng)過溫度采集、信號放大、濾波、AD轉(zhuǎn)換等一系列工作才能得到溫度的數(shù)字量,并且這種方式不僅電路復(fù)雜,元器件個數(shù)多,而且線性度和準(zhǔn)確度都不理想,抗干擾能力弱。現(xiàn)在常用的溫度傳感器芯片不但功率消耗低、準(zhǔn)確率高,而且比傳統(tǒng)的溫度傳感器有更好的線性表現(xiàn),最重要的一點(diǎn)是使用起來方便。

自動控制儀器儀表總的發(fā)展趨勢是高性能、數(shù)字化、集成化、智能化和網(wǎng)絡(luò)化。智能溫度控制系統(tǒng)的設(shè)計(jì)是為了滿足市場對成本低、性能穩(wěn)定、可遠(yuǎn)程監(jiān)測、控制現(xiàn)場溫度的需求而做的課題,具有較為廣闊的市場前景。

本系統(tǒng)的核心控制芯片選用的是51系列單片機(jī)AT89S52,單片機(jī)在各個技術(shù)領(lǐng)域中的迅猛發(fā)展,與單片機(jī)所構(gòu)成的計(jì)算機(jī)應(yīng)用系統(tǒng)的特點(diǎn)有關(guān):

·單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。

·系統(tǒng)構(gòu)建簡潔、易行,能方便的實(shí)現(xiàn)系統(tǒng)功能。

·由于構(gòu)成的系統(tǒng)是一個計(jì)算機(jī)系統(tǒng),相當(dāng)多的功能由軟件實(shí)現(xiàn),故具有柔性特點(diǎn)。

·有優(yōu)異的性能價格比。

2系統(tǒng)總體設(shè)計(jì)

2.1硬件總體設(shè)計(jì)

設(shè)計(jì)并制作一個基于單片機(jī)的熱水器溫度控制系統(tǒng)的電路,其結(jié)構(gòu)框圖如圖2-1:

d7738412-46d6-11eb-8b86-12bb97331649.png

圖2-1系統(tǒng)結(jié)構(gòu)框圖

2.1.1硬件系統(tǒng)子模塊

(1)單片機(jī)最小系統(tǒng)電路部分

(2)鍵盤掃描電路部分

(3)數(shù)碼管溫度顯示和運(yùn)行指示燈電路部分

(4)溫度采集電路部分

(5)繼電器控制部分

(6)報警部分

2.2軟件總體設(shè)計(jì)

良好的設(shè)計(jì)方案可以減少軟件設(shè)計(jì)的工作量,提高軟件的通用性,擴(kuò)展性和可讀性。

本系統(tǒng)的設(shè)計(jì)方案和步驟如下:

(1)根據(jù)需求按照系統(tǒng)的功能要求,逐級劃分模塊。

(2)明確各模塊之間的數(shù)據(jù)流傳遞關(guān)系,力求數(shù)據(jù)傳遞少,以增強(qiáng)各模塊的獨(dú)立性,便于軟件編制和調(diào)試。

(3)確定軟件開發(fā)環(huán)境,選擇設(shè)計(jì)語言,完成模塊功能設(shè)計(jì),并分別調(diào)試通過。

(4)按照開發(fā)式軟件設(shè)計(jì)結(jié)構(gòu),將各模塊有機(jī)的結(jié)合起來,即成一個較完善的系統(tǒng)。

首先接通電源系統(tǒng)開始工作,系統(tǒng)開始工作后,通過按鍵設(shè)定溫度值的上限值和下限值,確定按鍵將設(shè)定的溫度值存儲到指定的地址空間,溫度傳感器開始實(shí)時檢測,調(diào)用顯示子程序顯示檢測結(jié)果,調(diào)用比較當(dāng)前顯示溫度值與開始設(shè)定的溫度值比較,如果當(dāng)前顯示值低于設(shè)定值就通過繼電器起動加熱裝置,直到達(dá)到設(shè)定值停止加熱,之后進(jìn)行保溫,如果溫度高于上限進(jìn)行報警。

3硬件系統(tǒng)設(shè)計(jì)

3.1硬件電路分析和設(shè)計(jì)報告

本次設(shè)計(jì)主要思路是通過對單片機(jī)編程將由溫度傳感器DS18B20采集的溫度外加驅(qū)動電路顯示出來,包括對繼電器的控制,進(jìn)行升溫,當(dāng)溫度達(dá)到上下限蜂鳴器進(jìn)行報警。P1.7開關(guān)按鈕是用于確認(rèn)設(shè)定溫度的,初始按下表示開始進(jìn)入溫度設(shè)定狀態(tài),然后通過P1.5和P1.6設(shè)置溫度的升降,再次按下P1.7時,表示確認(rèn)所設(shè)定的溫度,然后轉(zhuǎn)入升溫或降溫。P2.3所接的發(fā)光二極管用于表示加熱狀態(tài),P2.5所接的發(fā)光二極管用于表示保溫狀態(tài)。P2.3接繼電器。P3.1是溫度信號線。整個電路都是通過軟件控制實(shí)現(xiàn)設(shè)計(jì)要求。

3.1.1單片機(jī)最小系統(tǒng)電路

因?yàn)?9S52單片機(jī)內(nèi)部自帶8K的ROM和256字節(jié)的RAM,因此不必構(gòu)建單片機(jī)系統(tǒng)的擴(kuò)展電路。如圖3-1,單片機(jī)最小系統(tǒng)有復(fù)位電路和振蕩器電路。值得注意的一點(diǎn)是單片機(jī)的31腳必須接高電平,否則系統(tǒng)將不能運(yùn)行。因?yàn)樵撃_不接時為低電平,單片機(jī)將直接讀取外部程序存儲器,而系統(tǒng)沒有外部程序存儲器,所以必須接VCC。在按鍵兩端并聯(lián)一個電解電容,濾除交流干擾,增加系統(tǒng)抗干擾能力。

d791ea24-46d6-11eb-8b86-12bb97331649.png

圖3-1單片機(jī)最小系統(tǒng)圖

3.1.2鍵盤電路

鍵盤是單片機(jī)應(yīng)用系統(tǒng)中的主要輸入設(shè)備,單片機(jī)使用的鍵盤分為編碼鍵盤和非編碼鍵盤。編碼鍵盤采用硬件線路來實(shí)現(xiàn)鍵盤的編碼,每按下一個鍵,鍵盤能夠自動生成按鍵代碼,并有去抖功能。因此使用方便,但硬件較復(fù)雜。非編碼鍵盤僅僅提供鍵開關(guān)狀態(tài),由程序來識別閉合鍵,消除抖動,產(chǎn)生相應(yīng)的代碼,轉(zhuǎn)入執(zhí)行該鍵的功能程序。非編碼鍵盤中鍵的數(shù)量較少,硬件簡單,在單片機(jī)中應(yīng)用非常廣泛。

圖為按鍵和AT89S52的接線圖,檢測儀共設(shè)有4個按鍵,每個按鍵由軟件來決定其功能,4個按鍵功能分別為:

(1) SW1:設(shè)定按鍵(設(shè)定按鍵)

(2) SW2:加法按鍵(當(dāng)前位加5)

(3) SW3:減法按鍵(當(dāng)前位減5)

(4) SW4:退出設(shè)置鍵(系統(tǒng)初始化)

d7c1cf32-46d6-11eb-8b86-12bb97331649.jpg

圖3-2單片機(jī)最小系統(tǒng)

3.1.3數(shù)碼管及指示燈顯示電路

(1)數(shù)碼管顯示說明

各個數(shù)碼管的段碼都是單片機(jī)的數(shù)據(jù)口輸出,即各個數(shù)碼管輸入的段碼都是一樣的,為了使其分別顯示不同的數(shù)字,可采用動態(tài)顯示的方式,即先只讓最低位顯示0(含點(diǎn)),經(jīng)過一段延時,再只讓次低位顯示1,如此類推。由視覺暫留,只要我們的延時時間足夠短,就能夠使得數(shù)碼的顯示看起來非常的穩(wěn)定清楚,過程如表3-1。

表3-1數(shù)碼管編碼表

段碼 位碼 顯示器狀態(tài)
08H 01H □□□□□□□0
abH 02H □□□□□□1□
12H 04H □□□□□2□□
22H 08H □□□□3□□□
a1H 10H □□□4□□□□
24H 20H □□5□□□□□
04H 40H □6□□□□□□
aaH 80H 7□□□□□□□

本論文中使用了3個數(shù)碼管,其中前兩位使用動態(tài)掃描顯示實(shí)測溫度,在設(shè)置加熱溫度的時候,兩個數(shù)碼管是閃爍,以提示目前處在溫度設(shè)置狀態(tài)。第三位數(shù)碼管靜態(tài)顯示符號“℃”。

(2)運(yùn)行指示燈說明

本熱水器溫度控制系統(tǒng)中共使用到3個LED指示燈和3個數(shù)碼管。

右上角的紅色LED電源指示燈;

數(shù)碼管右邊的紅色LED是加熱指示燈,當(dāng)剛開機(jī)或溫度降到設(shè)定溫度5℃以下時,該燈會亮,表示目前處于加熱狀態(tài);當(dāng)溫度上升到設(shè)定溫度時,該LED滅,同時數(shù)碼管右邊的綠色LED亮,表示目前處于保溫狀態(tài),用戶可以使用熱水器;當(dāng)溫度再次下降到設(shè)定溫度5℃以下時,綠色LED滅,紅色加熱的LED燈亮,不斷循環(huán)。

d8088422-46d6-11eb-8b86-12bb97331649.png

圖3-3 LED數(shù)碼管顯示電路圖

3.1.4溫度采集電路

(1)DS18B20介紹

Dallas最新單線數(shù)字溫度傳感器DS18B20簡介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟(jì)。Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。DS18B20、DS1822“一線總線”數(shù)字化溫度傳感器同DS18B20一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。DS1822的精度較差為±2℃。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。其DS18B20的管腳配置和封裝結(jié)構(gòu)如圖3-4所示。

d84b8628-46d6-11eb-8b86-12bb97331649.png

圖3-4 DS18B20封裝

引腳定義:

①DQ為數(shù)字信號輸入/輸出端;

②GND為電源地;

③VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。

(2)DS18B20的單線(1-wire bus)系統(tǒng)

單線總線結(jié)構(gòu)是DS18B20的突出特點(diǎn),也是理解和編程的難點(diǎn)。從兩個角度來理解單線總線:第一,單線總線只定義了一個信號線,而且DS18B20智能程度較低(這點(diǎn)可以與微控制器和SPI器件間的通信做一個比較),所以DS18B20和處理器之間的通信必然要通過嚴(yán)格的時序控制來完成。第二,DS18B20的輸出口是漏級開路輸出,這里給出一個微控制器和DS18B20連接原理圖。這種設(shè)計(jì)使總線上的器件在合適的時間驅(qū)動它。顯然,總線上的器件與(wired AND)關(guān)系。這就決定:(1)微控制器不能單方面控制總線狀態(tài)。之所以提出這點(diǎn),是因?yàn)橄喈?dāng)多的文獻(xiàn)資料上認(rèn)為,微控制器在讀取總線上數(shù)據(jù)之前的I/O口的置1操作是為了給DS18B20一個發(fā)送數(shù)據(jù)的信號。這是一個錯誤的觀點(diǎn)。如果當(dāng)前DS18b20發(fā)送0,即使微控制器I/O口置1,總線狀態(tài)還是0;置1操作是為了是I/O口截止(cut off),以確保微控制器正確讀取數(shù)據(jù)。(2)除了DS18B20發(fā)送0的時間段,其他時間其輸出口自動截止。自動截止是為確保:1時,在總線操作的間隙總線處于空閑狀態(tài),即高態(tài)。2時,確保微控制器在寫1的時候DS18B20可以正確讀入。

由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S52單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。

①DS18B20的復(fù)位時序,如圖3-5

圖3-5 DS18B20的復(fù)位時序圖

②DS18B20的讀時序

對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。

對于DS18B20的讀時隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。DS18B20的讀時序圖如圖3-6所示。

圖3-6 DS18B20的讀時序

③DS18B20的寫時序

對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。

對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。如圖3-7所示。

圖3-7 DS18B20的寫時序圖

(3)DS18B20的供電方式

在圖3-8中示出了DS18B20的寄生電源電路。當(dāng)DQ或VDD引腳為高電平時,這個電路便“取”的電源。寄生電路的優(yōu)點(diǎn)是雙重的,遠(yuǎn)程溫度控制監(jiān)測無需本地電源,缺少正常電源條件下也可以讀ROM。為了使DS18B20能完成準(zhǔn)確的溫度變換,當(dāng)溫度變換發(fā)生時,DQ線上必須提供足夠的功率。

有兩種方法確保DS18B20在其有效變換期內(nèi)得到足夠的電源電流。第一種方法是發(fā)生溫度變換時,在DQ線上提供一強(qiáng)的上拉,這期間單總線上不能有其它的動作發(fā)生。如圖3-8所示,通過使用一個MOSFET把DQ線直接接到電源可實(shí)現(xiàn)這一點(diǎn),這時DS18B20工作在寄生電源工作方式,在該方式下VDD引腳必須連接到地。

圖3-8 DS18B20供電方式1

另一種方法是DS18B20工作在外部電源工作方式,如圖3-9所示。這種方法的優(yōu)點(diǎn)是在DQ線上不要求強(qiáng)的上拉,總線上主機(jī)不需要連接其它的外圍器件便在溫度變換期間使總線保持高電平,這樣也允許在變換期間其它數(shù)據(jù)在單總線上傳送。此外,在單總線上可以并聯(lián)多個DS18B20,而且如果它們?nèi)坎捎猛獠侩娫垂ぷ鞣绞剑敲赐ㄟ^發(fā)出相應(yīng)的命令便可以同時完成溫度變換。

圖3-9 DS18B20供電方式2

(4)DS18B20設(shè)計(jì)中應(yīng)注意的幾個問題

DS18B20具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用接口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送。因此,在對DS18B20進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在DS18B20有關(guān)資料中均未提及1Wire上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)1Wire上所掛DS18B20超過8個時,就需要考慮微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時要加以注意。連接DS18B20的總線電纜是有長度限制的。實(shí)際應(yīng)用中,測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點(diǎn)接地。

本文以廣泛應(yīng)用的數(shù)字溫度傳感器DS18B20為例,說明了1Wire總線的操作過程和基本原理。事實(shí)上,基于1Wire總線的產(chǎn)品還有很多種,如1Wire總線的E2PROM、實(shí)時時鐘、電子標(biāo)簽等。他們都具有節(jié)省I/O資源、結(jié)構(gòu)簡單、開發(fā)快捷、成本低廉、便于總線擴(kuò)展等優(yōu)點(diǎn),因此有廣闊的應(yīng)用空間,具有較大的推廣價值。

本設(shè)計(jì)將溫度傳感器DS18B20與單片機(jī)TXD引腳相連,讀取溫度傳感器的數(shù)值。DS18B20與單片機(jī)連接圖如圖所示3-10所示。

圖3-10 DS18B20與單片機(jī)連接圖

3.1.5電源電路

采用L7805穩(wěn)壓塊,輸出為5V。電子組件要正常運(yùn)作都需要電源電壓供電,一般常用的電源電壓為+5V或+12V,因?yàn)閿?shù)字IC(Ingegrated Circuit:集成電路)所供給的電壓為+5V,而CMOS IC所供給的電壓為+12V,7805是一個穩(wěn)壓塊。7805穩(wěn)壓管把高電壓轉(zhuǎn)換到低電壓,7805穩(wěn)壓管具有保護(hù)單片機(jī)的作用。L7805輸出端要并聯(lián)上一個電解電容,濾除交流電干擾,防止損壞單片機(jī)系統(tǒng)。本設(shè)計(jì)采用兩種供電方式,一種為DC7~18V直流穩(wěn)壓電源變換成5V的直流電;另一種為四節(jié)干電池共6V經(jīng)二極管加壓后得到將近5V的直流電源,電源配以開關(guān)和指示燈,以方便使用。黃色發(fā)光二極管表示保溫,紅色的表示加熱狀態(tài)。

圖3-11系統(tǒng)電源設(shè)計(jì)圖

3.1.6報警電路設(shè)計(jì)

同時可以在系統(tǒng)里設(shè)定溫度上限值,由于加熱停止后,加熱管還有余熱當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時,程序就會進(jìn)入報警子程序,觸發(fā)蜂鳴器進(jìn)行報警。報警電路原理圖如圖所示。

圖3-12報警電路圖

圖中的三極管8550的作用是增加驅(qū)動能力,比9012的驅(qū)動電流還大些,因此選用8550。當(dāng)程序進(jìn)入報警子程序時,把P2.7置0,就會觸發(fā)蜂鳴器,為了使報警聲音效果更好,對P2.7取反,發(fā)出報警嘟嚕聲音。

3.1.7加熱管控制電路設(shè)計(jì)

繼電器是常用的輸出控制接口,可以做交直流信號的輸出切換。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。繼電器控制接點(diǎn)操作說明如下:

●COM:Common,共同點(diǎn)。輸出控制接點(diǎn)的共同接點(diǎn)。

●NC:NormalClose常閉點(diǎn)。以Com為共同點(diǎn),NC與COM在平時是呈導(dǎo)通狀態(tài)的。

●NO:Normal Open常開點(diǎn)。NO與COM在平時是呈開路狀態(tài)的,當(dāng)繼電器動作時,NO與COM導(dǎo)通,NC與COM則呈開路狀態(tài)。

當(dāng)89S52的P2.5輸出高電平時,繼電器不導(dǎo)通,反之當(dāng)輸出低電平時,繼電器導(dǎo)通,這樣就激活了連接回路。

圖3-13單片機(jī)控制繼電器電路圖

4系統(tǒng)軟件設(shè)計(jì)

本系統(tǒng)采用的是循環(huán)查詢方式,來顯示和控制溫度的。主要包括四段程序的設(shè)計(jì):DS18B20讀溫度程序,數(shù)碼管的驅(qū)動程序,鍵盤掃描程序,以及抱經(jīng)處理程序。

4.1主程序流程圖

圖4-1主程序流程圖

4.2各個模塊的流程圖

4.2.1讀取溫度DS18B20模塊的流程

由于DS18B20采用的是一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S52單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。

DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念。因此系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),

DS18B20必須首先調(diào)用啟動溫度轉(zhuǎn)換函數(shù),根據(jù)數(shù)據(jù)手冊上對應(yīng)轉(zhuǎn)換時間來超作,如為12位轉(zhuǎn)換,則應(yīng)該是最大750mS,另外在對DS18B20超作時,時序要求非常嚴(yán)格,因此最好禁止系統(tǒng)中斷。

由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為主設(shè)備,而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。

DS18B20的讀時序:

(1)對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。

(2)對于DS18B20的讀時隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。

DS18B20的寫時序:

(1)對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。

(2)對于DS18B20寫0時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線。

系統(tǒng)程序設(shè)計(jì)主要包括三部分:讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示溫度子程序。

圖4-2讀取溫度DS18B20模塊的流程圖

程序代碼為:

GET_TEMPER: SETB DQ ;讀出轉(zhuǎn)換后的溫度值

LCALL INIT_1820 ;先復(fù)位DS18B20

JB FLAG1,TSS2

RET ;判斷DS1820是否存在?若DS18B20不存在則返回

TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測到!!!!!!!!!!!!!!!跳過ROM匹配

LCALL WRITE_1820

MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令

LCALL WRITE_1820

LCALL DISPLAY ;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒

LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位

MOV A,#0CCH ;跳過ROM匹配

LCALL WRITE_1820

MOV A,#0BEH ;發(fā)出讀溫度命令

LCALL WRITE_1820

LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36H

RET

4.2.2鍵盤掃描處理流程

此流程為鍵盤掃描處理,CPU通過檢測各數(shù)據(jù)線的狀態(tài)(0或1)就能知道是否有按鍵閉合以及哪個按鍵閉合。鍵盤管理程序的功能是檢測是否有按鍵閉合,如果有按鍵閉合,消除抖動,根據(jù)鍵號轉(zhuǎn)到相應(yīng)的鍵處理程序,按鍵流程圖如圖4-3所示。

圖4-3鍵盤掃描子程序流程圖

4.2.3報警處理流程

運(yùn)行程序后,溫度傳感器DS18B20即可對環(huán)境進(jìn)行溫度采集,并送LED數(shù)碼管顯示。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時,程序就會進(jìn)入報警子程序,觸發(fā)蜂鳴器進(jìn)行報警。其程序流程圖如圖4-4所示。

圖4-4報警子程序流程圖

5系統(tǒng)調(diào)試

5.1硬件電路調(diào)試

仔細(xì)檢查所接電路,按照硬件原理圖接線,理論上是能實(shí)現(xiàn)的,如果數(shù)碼管不顯示,則應(yīng)該檢查線路是否正確,或是因?yàn)閱纹瑱C(jī)沒有工作,還有集電極和發(fā)射極是否接對。如果只顯示兩個八,則可能是DS18B20沒有接正確,檢查上拉電路是否接好。另外要注意的是,由單片機(jī)輸出的控制信號比較小,需要進(jìn)行放大才能驅(qū)動繼電器工作,否則就不能實(shí)現(xiàn)升溫過程,通常選用8550三極管來進(jìn)行放大。還有220V交流電綠色接頭和加熱管黃色接頭必須接正確,否則導(dǎo)致電路燒壞。蜂鳴器是低電平有效。如果能注意這些問題,電路基本不會出錯。

5.2軟件調(diào)試

如果硬件電路檢查后,沒有問題卻實(shí)現(xiàn)不了設(shè)計(jì)要求,則可能是軟件編程的問題,首先應(yīng)檢查初始化程序,然后是讀溫度程序,顯示程序,以及繼電器控制程序,對這些分段程序,要注意邏輯順序,調(diào)用關(guān)系,以及涉及到了標(biāo)號,有時會因?yàn)橐粋€標(biāo)號而影響程序的執(zhí)行,除此之外,還要熟悉各指令的用法,以免出錯。還有一個容易忽略的問題就是,源程序生成的代碼是否燒入到單片機(jī)中,如果這一過程出錯,那不能實(shí)現(xiàn)設(shè)計(jì)要求也是情理之中的事。本人在設(shè)計(jì)的時候在偉福仿真軟件進(jìn)行調(diào)試,通過此軟件進(jìn)行調(diào)試可以很方便的觀察單片機(jī)內(nèi)部各個寄存器及內(nèi)部存儲器變化情況,以方便進(jìn)行調(diào)試。圖為單片機(jī)功能調(diào)試圖。

圖5-1單片機(jī)功能調(diào)試圖

硬件與軟件調(diào)試相結(jié)合,仔細(xì)檢查各個模塊的設(shè)計(jì),舊能順利完成任務(wù),實(shí)現(xiàn)設(shè)計(jì)要求,在調(diào)試過程中必須認(rèn)真耐心,不能有一點(diǎn)馬虎,否則遺漏一個小的問題就會導(dǎo)致整個設(shè)計(jì)的失敗。

5.3系統(tǒng)操作說明

本系統(tǒng)上電后數(shù)碼管顯示當(dāng)前測量溫度,此時加熱指示燈和保溫指示燈均不點(diǎn)亮;若此時按“自動加熱”鍵,則單片機(jī)自動將預(yù)加熱溫度設(shè)置為80℃并開始加熱,送出一個加熱信號,并點(diǎn)亮加熱指示燈;若按“溫度設(shè)置”鍵,則進(jìn)入預(yù)加熱溫度設(shè)置界面,此時數(shù)碼管閃爍顯示預(yù)設(shè)置溫度,此時通過按鍵“+”和“-”進(jìn)行設(shè)置溫度,預(yù)設(shè)置溫度按“5”遞增或遞減,設(shè)置好溫度后再按一次“溫度設(shè)置”鍵確定,單片機(jī)保存預(yù)設(shè)置溫度,并開始加熱。此時單片機(jī)通過數(shù)碼管顯示實(shí)時檢測的溫度并和預(yù)設(shè)置溫度進(jìn)行對比,如果實(shí)測溫度大于或等于預(yù)設(shè)置溫度,則單片機(jī)發(fā)出停止加熱信號并熄滅加熱指示燈,點(diǎn)亮保溫指示燈,且當(dāng)超過預(yù)設(shè)溫度時發(fā)出報警;當(dāng)溫度下降到預(yù)設(shè)置溫度以下5度時,單片機(jī)再次發(fā)出加熱信號,同時熄滅保溫指示燈,點(diǎn)亮加熱指示燈,依次循環(huán)控制。

5.4數(shù)據(jù)測試

1.靜態(tài)數(shù)據(jù)測試

取一桶凈水,改變它的溫度,觀察數(shù)碼管上顯示的溫度值,并用溫度計(jì)進(jìn)行測溫,記錄兩組數(shù)據(jù),比較差異。記錄表如下:

表5-1靜態(tài)溫度數(shù)據(jù)測試表

溫度℃ 1 2 3 4 5 6
顯示溫度 23 47 63 77 84 90
測量溫度 24 47 63 80 84 91

有測試數(shù)據(jù)可知,本系統(tǒng)測溫結(jié)果與溫度計(jì)測溫基本一致,能滿足設(shè)計(jì),證明了設(shè)計(jì)的合理性。

2.動態(tài)數(shù)據(jù)測試

進(jìn)行溫度設(shè)定,通過設(shè)定溫度值(75℃),觀察加熱管的加熱情況,以及數(shù)碼管的顯示值,再用溫度計(jì)測量水溫,每隔一段時間記錄一次數(shù)據(jù),將兩組值進(jìn)行比較。記錄表如下:(設(shè)定前溫度為25℃)

表5-2靜態(tài)溫度數(shù)據(jù)測試表

組數(shù)
分組
1 2 3 4 5 6 7 8 9 10 11 12 13
顯示溫度 25 29 34 39 42 48 53 58 62 67 70 73 75
測量溫度 25 28 34 38 42 49 53 59 63 67 71 74 75

通過上表可看出在加熱的過程中,顯示的溫度與實(shí)測的溫度近似一樣,說明系統(tǒng)的設(shè)計(jì)達(dá)到精度要求,但還是略有偏差,基本不影響設(shè)計(jì)結(jié)果。

整個測試過程表明設(shè)計(jì)達(dá)到了任務(wù)書的要求,證明了該方案是合理可行的,順利完成了設(shè)計(jì),達(dá)到了預(yù)想結(jié)果。

總結(jié)

通過本次的設(shè)計(jì),使我們不僅對單片機(jī)這門課程有了更深刻的認(rèn)識,懂得了如何運(yùn)用課本知識結(jié)合實(shí)際來完成定時器的顯示和編程方法以及數(shù)碼顯示電路的驅(qū)動方法,使我們能夠很快的適應(yīng)現(xiàn)代控制技術(shù)發(fā)展的需求,同時也提高了我們的思維能力和實(shí)際操作能力,為以后更好的走上工作崗位奠定了堅(jiān)實(shí)的基礎(chǔ)。

另外,這次的設(shè)計(jì)還讓我更進(jìn)一步的認(rèn)識了關(guān)于AT89S52等芯片的引腳功能以及使用方法,使我學(xué)會了應(yīng)用不同的芯片來配合完成整個設(shè)計(jì)的操作。

在做硬件電路的這段時間里,從思考設(shè)計(jì)到對電路的調(diào)試經(jīng)過了許多困難。同樣在對軟件進(jìn)行設(shè)計(jì)時,也可為一路坎坷。但是通過對軟硬件不斷撞墻,不斷思考解決問題的過程中,我學(xué)會了很多東西,同時對單片機(jī)也有了更深的認(rèn)識。在做設(shè)計(jì)的時候,很需要耐心和對事物的細(xì)心,很多時候一個簡單問題的一個簡單的疏忽就會導(dǎo)致整個電路的不工作,只有不斷的檢查不斷的調(diào)試,才能真正完成一個設(shè)計(jì)的制作。只有不斷的發(fā)現(xiàn)問題解決問題,才能從問題中改變自己,提升自己對單片機(jī)的能力。

此設(shè)計(jì)雖然能夠完成溫度的顯示和控制,但功能和精度有待于進(jìn)一步提高。以后可以通過加入PID算法優(yōu)化控制功能,并通過液晶顯示屏實(shí)時顯示溫度。

參考文獻(xiàn)

[l]樂建波編著《溫度控制系統(tǒng)》化學(xué)工業(yè)出版社

[2] [美]Ken C.Pohlmann《數(shù)字音頻原理及應(yīng)用》.蘇菲.第4版.北京:電子工業(yè)出版社,2005,2

[3]謝自美編著《電子線路設(shè)計(jì)·實(shí)驗(yàn)·測試(第二版)》華中科技大學(xué)出版社 2000

[4]陳東光編著《單片微型計(jì)算機(jī)原理及C語言程序設(shè)計(jì)》華中科技大學(xué)出版社 2004.4

[5]武慶生仇梅編著《單片機(jī)原理與應(yīng)用》電子科技大學(xué)出版社 1998.2

[6]譚浩強(qiáng)編著《C程序設(shè)計(jì)》.北京:清華大學(xué)出版社1999年

[7]華中理工大學(xué)電子學(xué)教研室編《電子技術(shù)基礎(chǔ)模擬部分(第四版)》高等教育出版社 1999.6

[8]華中理工大學(xué)電子學(xué)教研室編《電子技術(shù)基礎(chǔ)數(shù)字部分(第四版)》高等教育出版社 2000.6

[9]趙晶編著《電路設(shè)計(jì)與制版——Protel 99se的高級應(yīng)用》人民郵電出版社2000.1

[10]《電子制作》2004.10

[11]王彬任艷穎編著《Digital IC System Design》西安電子科技大學(xué)出版社2005.9

[12]趙麗娟邵欣編著《基于單片機(jī)的溫度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》機(jī)械制造

[13]郭炳坤簡單的恒溫箱溫控電路[J].儀器與未來,1991

[14]GuiyunTian《Foundationand Application of Microcontraller》高等教育出版社2004.11

[15](美)Bjarne Stroustrup《THE C++ PROGRAMMING LANGUAGE,SPECIAL EDITION》Addison Wesley 1997

附錄一:系統(tǒng)源程序

EMPER_L EQU 29H ;用于保存讀出溫度的低8位

TEMPER_H EQU 28H ;用于保存讀出溫度的高8位

FLAG1 EQU 38H ;是否檢測到DS18B20標(biāo)志位

A_BIT EQU 20H ;數(shù)碼管個位數(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 ;//蜂鳴報警

ORG 0000H ;單片機(jī)內(nèi)存分配申明!

AJMP MAIN0

;///////////////////////////////////前面的都是定義

MAIN: MOV R0,#10

M1: CPL P2.3

ACALL DELAY125

DJNZ R0,M1 ;//此段為燈閃5次,無實(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 ;//下面是表示沒達(dá)到溫度

SETB P2.5

AJMP MAIN2

;/////////////////////////////////////主要是檢測溫度是否小于設(shè)定的溫度,小于,則開發(fā)熱管CLR P2.3

MAIN1_2: SETB BELL ;//關(guān)閉蜂鳴器

CLR P2.5 ;//開發(fā)熱管

SETB P2.3

;///////////////////////////////上面的是大于,關(guān)發(fā)熱管

MAIN2: JB P1.0,MAIN1 ;//看P1.0有否按下

ACALL DELAY125 ;//延時防抖動,常用的手法,網(wǎng)上很多介紹的

JB P1.0,MAIN1 ;//再次查看

CLR P2.3

JNB P1.0,$ ;//等按鍵完全松手才進(jìn)入!

SETB P2.3

SETB P2.5

;///檢測到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_3

MAIN2_1_2: CLR C

MOV A,#99

MAIN2_1_3: MOV A1,A

MAIN2_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 ZY2

ZY1: MOV B,#5

ZY2: CLR C

MOV A,A1

SUBB A,B

MAIN2_2_1: JNC MAIN2_2_2

MOV A1,#0

AJMP MAIN2_3

;////////////////上面這一段是-5度按鍵,按下-5度

MAIN2_2_2: MOV A1,A

MAIN2_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,B1

MOV 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ā)出延時537微秒的復(fù)位低脈沖

MOV R1,#3

TSR1: MOV R0,#107

DJNZ R0,$

DJNZ R1,TSR1

SETB DQ ;然后拉高數(shù)據(jù)線

NOP

NOP

NOP

NOP

MOV R0,#25H

TSR2: JNB DQ,TSR3 ;等待DS18B20回應(yīng)

DJNZ R0,TSR2

LJMP TSR4 ;延時

TSR3: SETB FLAG1 ;置標(biāo)志位,表示DS1820存在

LJMP TSR5

TSR4: CLR FLAG1 ;清標(biāo)志位,表示DS1820不存在

LJMP TSR7

TSR5: MOV R0,#117

TSR6: DJNZ R0,TSR6 ;時序要求延時一段時間

TSR7: SETB DQ

RET

GET_TEMPER: SETB DQ ;讀出轉(zhuǎn)換后的溫度值

LCALL INIT_1820 ;先復(fù)位DS18B20

JB FLAG1,TSS2

RET ;判斷DS1820是否存在?若DS18B20不存在則返回

TSS2: MOV A,#0CCH ;DS18B20已經(jīng)被檢測到!!!!!!!!!!!!!!!跳過ROM匹配

LCALL WRITE_1820

MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令

LCALL WRITE_1820

LCALL DISPLAY ;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒

LCALL INIT_1820 ;準(zhǔn)備讀溫度前先復(fù)位

MOV A,#0CCH ;跳過ROM匹配

LCALL WRITE_1820

MOV A,#0BEH ;發(fā)出讀溫度命令

LCALL WRITE_1820

LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36H

RET

WRITE_1820: MOV R2,#8 ;一共8位數(shù)據(jù)

CLR C ;寫DS18B20的子程序(有具體的時序要求)

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

RET

READ_18200: MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出

MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00: MOV R2,#8 ;數(shù)據(jù)一共有8位

RE01: CLR C ;讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)

SETB DQ

NOP

NOP

CLR DQ

NOP

NOP

NOP

SETB DQ

MOV R3,#9

RE10: DJNZ R3,RE10

MOV C,DQ

MOV R3,#23

RE20: DJNZ R3,RE20

RRC A

DJNZ R2,RE01

MOV @R1,A

DEC R1

DJNZ R4,RE00

RET

;/////////////////////////////////////////上面的這些都是溫度采集的!

DISPLAY: MOV A,29H ;將29H中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制

MOV B,#10 ;10進(jìn)制/10=10進(jìn)制

DIV AB ;顯示子程序

MOV A_BIT,A ;十位在A

MOV B_BIT,B ;個位在B

MOV DPTR,#NUMTAB ;指定查表啟始地址

MOV R0,#1

DPL1: MOV R1,#25 ;顯示1000次

DPLOP: MOV A,B_BIT ;取個位數(shù)

MOVC A,@A+DPTR ;查個位數(shù)的7段代碼

MOV P0,A ;送出個位的7段代碼

CLR P2.2 ;開個位顯示

ACALL D1MS ;顯示1MS

SETB P2.2

MOV A,A_BIT ;取十位數(shù)

MOVC A,@A+DPTR ;查十位數(shù)的7段代碼

MOV P0,A ;送出十位的7段代碼

CLR P2.1 ;開十位顯示

ACALL D1MS ;顯示1MS

SETB P2.1

MOV P0,#0FFH

DJNZ R1,DPLOP ;100次沒完循環(huán)

DJNZ R0,DPL1 ;4個100次沒完循環(huán)

RET

;/////////////////////////////////////上面這段顯示實(shí)時溫度

;//////////////////////////////////////

DISPLAY1: MOV A,A1 ;將29H中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制

MOV B,#10 ;10進(jìn)制/10=10進(jìn)制

DIV AB ;顯示子程序

MOV A_BIT,A ;十位在A

MOV B_BIT,B ;個位在B

MOV DPTR,#NUMTAB ;指定查表啟始地址

MOV R0,#1

DPL11: MOV R1,#25 ;顯示1000次

DPLOP1: MOV A,B_BIT ;取個位數(shù)

MOVC A,@A+DPTR ;查個位數(shù)的7段代碼

MOV P0,A ;送出個位的7段代碼

CLR P2.2 ;開個位顯示

ACALL D1MS ;顯示1MS

SETB P2.2

MOV A,A_BIT ;取十位數(shù)

MOVC A,@A+DPTR ;查十位數(shù)的7段代碼

MOV P0,A ;送出十位的7段代碼

CLR P2.1 ;開十位顯示

ACALL D1MS ;顯示1MS

SETB P2.1

MOV P0,#0FFH

DJNZ R1,DPLOP1 ;100次沒完循環(huán)

DJNZ R0,DPL11 ;4個100次沒完循環(huán)

RET

;/////////////////////////////上面這段顯示設(shè)置溫度

D1MS: MOV R7,#50 ;1MS延時

DJNZ R7,$

RET

DELAY10: MOV R6,#20 ;10MS延時

D3: MOV R5,#255

DJNZ R5,$

DJNZ R6,D3

RET

DELAY125: MOV R6,#255 ;125MS延時

D1: MOV R5,#255

DJNZ R5,$

DJNZ R6,D1

RET

DELAY1S: MOV R7,#8 ;1S延時

D2: LCALL DELAY125

DJNZ R7,D2

RET

;///////////////////////這些都是延時,長短而已

NUMTAB: DB 0C0H,0F9H,0A4H,0B0H

DB 99H,92H,82H,0F8H

DB 80H,90H,88H,83H

DB 0C6H,0A1H,86H,8EH

;////////////////////數(shù)碼管的具體值

END

附錄二:系統(tǒng)硬件總圖

d882cc78-46d6-11eb-8b86-12bb97331649.jpg

原文標(biāo)題:基于單片機(jī)的水溫控制器的設(shè)計(jì)

文章出處:【微信公眾號:multisim】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電路
    +關(guān)注

    關(guān)注

    172

    文章

    5922

    瀏覽量

    172308
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635597
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16376

    瀏覽量

    178199

原文標(biāo)題:基于單片機(jī)的水溫控制器的設(shè)計(jì)

文章出處:【微信號:A1411464185,微信公眾號:multisim】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    智能馬桶水溫NTC溫度傳感

    隨著科技不斷進(jìn)步,智能家居產(chǎn)品逐漸走進(jìn)我們生活。其中,智能馬桶作為一款高科技產(chǎn)品,受到越來越多人青睞。水溫控制系統(tǒng)作為智能馬桶重要組成部分,其需安裝NTC溫度傳感來實(shí)現(xiàn)精準(zhǔn)水溫控制。 在智能馬桶
    發(fā)表于 12-20 11:55

    采用AT89C52單片機(jī)作為路燈控制系統(tǒng)的支路控制器

    本系統(tǒng)采用AT89C52單片機(jī)作為路燈控制系統(tǒng)的支路控制器,采用光敏二極管 檢測光強(qiáng)度、紅外對管檢測移動物體經(jīng)過的位置等方法控制路燈按預(yù)定要求自動開關(guān)。本 系統(tǒng)由支路
    發(fā)表于 11-24 14:37 ?0次下載

    基于51單片機(jī)的簡易無人公交控制器

    車輛開始啟動;(4)當(dāng)車上人數(shù)大于6人時,蜂鳴器響,表示超載。仿真演示視頻:設(shè)計(jì)介紹51單片機(jī)簡介51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51
    的頭像 發(fā)表于 10-22 14:10 ?132次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的簡易無人公交<b class='flag-5'>控制器</b>

    基于51單片機(jī)的LED彩燈控制器設(shè)計(jì)

    循環(huán)一遍;(3)系統(tǒng)復(fù)位清零開關(guān)。設(shè)計(jì)介紹51單片機(jī)簡介51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機(jī)為眾多嵌入式
    的頭像 發(fā)表于 10-22 14:10 ?197次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的LED彩燈<b class='flag-5'>控制器</b>設(shè)計(jì)

    stm32單片機(jī)用什么軟件編程

    STM32單片機(jī)是一種廣泛應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的微控制器,具有高性能、低功耗、豐富的外設(shè)接口等特點(diǎn)。要對STM32單片機(jī)進(jìn)行編程,需要選擇合適的軟件工具。 概述 STM32單片機(jī)
    的頭像 發(fā)表于 09-02 10:16 ?1420次閱讀

    國產(chǎn)單片機(jī)(MCU)崛起 —— 51系列

    一、51系列單片機(jī)的命名由來51系列單片機(jī)的命名由來與它的設(shè)計(jì)和開發(fā)歷史相關(guān)。這個系列的單片機(jī)主要由Intel的8051微控制器發(fā)展而來,后來被多個公司采用和改進(jìn),形成了一個廣泛使用的
    的頭像 發(fā)表于 08-14 08:39 ?2159次閱讀
    國產(chǎn)<b class='flag-5'>單片機(jī)</b>(MCU)崛起 —— 51系列

    基于51單片機(jī)DS18B20水箱水溫檢測控制設(shè)計(jì)

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)DS18B20水箱水溫檢測控制設(shè)計(jì)包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發(fā)表于 06-25 10:04 ?0次下載

    工業(yè)控制為什么用PLC而不用單片機(jī)

    在工業(yè)控制領(lǐng)域,控制器的選擇對于整個系統(tǒng)的穩(wěn)定性、可靠性以及運(yùn)行效率有著至關(guān)重要的影響。在眾多控制器中,PLC(可編程邏輯控制器)因其獨(dú)特的優(yōu)勢而被廣泛應(yīng)用于各種工業(yè)自動化場景,而
    的頭像 發(fā)表于 06-17 11:20 ?1264次閱讀

    TEC溫度控制器#溫控器

    溫度控制器溫控器
    深圳艾克思科技有限責(zé)任公司
    發(fā)布于 :2024年04月24日 14:15:39

    單片機(jī)是什么?單片機(jī)編程如何入門?

    單片機(jī)其實(shí)是一種很早的叫法了,最開始我們的前輩叫單板機(jī)或者叫單片機(jī),因?yàn)槟莻€時候單片機(jī)的處理能力還沒有很強(qiáng),現(xiàn)在我們所用的基本都是微型處理單元,也叫為控制器也稱之為MCU
    的頭像 發(fā)表于 03-28 08:03 ?1932次閱讀
    <b class='flag-5'>單片機(jī)</b>是什么?<b class='flag-5'>單片機(jī)</b>編程如何入門?

    FH8A1?8A是一種io型,完全靜態(tài),基于otp的控制器8位MCU單片機(jī)

    FH8A1?8A是一種io型,完全靜態(tài),基于otp的控制器8位MCU單片機(jī)
    的頭像 發(fā)表于 03-25 17:35 ?588次閱讀

    基于51單片機(jī)水溫(油溫)可測液體溫度的控制器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)水溫(油溫)可測液體溫度的控制器設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:18 ?0次下載

    STM32單片機(jī)的特點(diǎn)和功能是什么

    STM32單片機(jī)是一款基于ARM Cortex-M內(nèi)核的32位閃存微控制器,由STMicroelectronics公司(意法半導(dǎo)體)生產(chǎn)。STM32單片機(jī)具有高性能、低功耗、豐富的外設(shè)和易于開發(fā)
    的頭像 發(fā)表于 01-03 15:33 ?1.2w次閱讀

    基于51單片機(jī)的電機(jī)控制設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)控制設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-03 11:19 ?4次下載

    基于51單片機(jī)水溫(油溫)可測液體溫度的控制器設(shè)計(jì)

    基于51單片機(jī)水溫(油溫)可測液體溫度的控制器設(shè)計(jì)(實(shí)物)
    發(fā)表于 01-02 09:50 ?1次下載
    主站蜘蛛池模板: 日本久久黄色| 国产精品人妻在线观看| 成年人免费观看视频网站| 欧美特黄三级成人| 偷窥自拍性综合图区| 51久久成人国产精品麻豆| 芭乐草莓樱桃丝瓜18岁大全| 国产美女又黄又爽又色视频网站| 久久久久综合网| 亚洲免费在线| 国产精品亚洲精品日韩电影| 日美欧韩一区二去三区| 樱花之恋动漫免费观看| 狠狠狠色丁香婷婷综合久久| 性888xxxx入欧美| 综合伊人久久| 久久偷拍国2017的| 亚洲国产成人精品不卡青青草原| 国产精品免费大片| 亚洲、国产综合视频| 二级毛片免费观看全程| 精品午夜久久影视| 樱桃BT在线观看| 美女洗澡脱得一二干净| 亚洲精品色情婷婷在线播放 | 特级做A爰片毛片免费看108| 国产乱色伦影片在线观看| 亚洲国产第一| 老太婆性BBWBBW| jizzjizz3d动漫| 美女禁处受辱漫画| 9久久免费国产精品特黄| 日韩精品亚洲专区在线电影不卡| 国产成人无码免费精品果冻传媒| 全部免费特黄特色大片看片| 91avcom| 人妻夜夜爽99麻豆AV| 国产精品久久久久久久久久久| 亚洲欧洲日本天天堂在线观看| 国产对白精品刺激一区二区| 青青伊人影院|