導航:首頁 > 操作系統 > 基於單片機的溫度檢測系統設計

基於單片機的溫度檢測系統設計

發布時間:2022-06-18 20:57:37

A. 基於單片機的溫度控制系統的設計

利用溫度感測器DS18B20檢測環境溫度並直接輸出數字溫度信號給單片機AT89C52進行處理。

在LCD液晶上顯示當前環境溫度值、預設溫度值、使用者設定的溫度差以及目前風扇所處的檔位。其中預設溫度值只能為整數形式,檢測到的當前環境溫度可精確到小數點後一位。

同時採用PWM脈寬調制方式來改變直流風扇電機的轉速。

並通過兩個按鍵改變預設溫度值,一個提高預設溫度,另一個降低預設溫度值。通過另一個按鍵控制溫度差的大小。

設有紅外熱釋感測器檢測環境范圍內是否有人,如果有人確定出風方向,如果無人,降低轉速或一定時間內自動關閉。

回答

正如你所說的,一共用了DS18B20模塊,LCD模塊,紅外感測模塊,按鍵,直流電機模塊,程序方面只有一個PWM。現在一一為你分析:

DS18B20模塊:

下圖是它的原理圖,採用單匯流排來進行開發,不像電賽的哪個溫度感測器需要AD轉換,它是可以直接傳出數字信號的。

B. 基於單片機的溫度控制系統

加熱部件可以在淘寶上買個
usb
5v
加熱片,usb供電的電流不會超過
500ma,
控制可以用單片機腳控制一個
c8050三極體控制加熱片的通斷電。

C. 基於單片機的溫度數據採集系統設計

單片機課程設計任務書

題目:基於單片機的溫度數據採集系統設計
一.設計要求
1.被測量溫度范圍:0~500℃,溫度解析度為0.5℃。
2.被測溫度點:4個,每2秒測量一次。
3.顯示器要求:通道號1位,溫度4位(精度到小數點後一位)。
顯示方式為定點顯示和輪流顯示。
4.鍵盤要求:
(1)定點顯示設定;(2)輪流顯示設定;(3)其他功能鍵。
二.設計內容
1.單片機及電源管理模塊設計。
單片機可選用AT89S51及其兼容系列,電源管理模塊要實
現高精密穩壓輸出,為單片機及A/D轉換器供電。
2.感測器及放大器設計。
感測器可以選用鎳鉻—鎳硅熱電偶(分度號K),放大器要實現熱電偶輸出的mV級信號到A/D輸入V級信號放大。
3.多路轉換開關及A/D轉換器設計。
多路開關可以選用CD4052,A/D可選用MC14433等。
4.顯示器設計。
可以選用LED顯示或LCD顯示。
5.鍵盤電路設計。
實現定點顯示按鍵;輪流顯示按鍵;其他功能鍵。
6.系統軟體設計。
系統初始化模塊,鍵盤掃描模塊,顯示模塊,數據採集模塊,標度變換模塊等。

引言:
在生產和日常生活中,溫度的測量及控制十分重要,實時溫度檢測系統在各個方面應用十分廣泛。消防電氣的非破壞性溫度檢測,大型電力、通訊設備過熱故障預知檢測,各類機械組件的過熱預警,醫療相關設備的溫度測試等等都離不開溫度數據採集控制系統。
隨著科學技術的發展,電子學技術也隨之迅猛發展,同時帶動了大批相關產業的發展,其應用范圍也越來越廣泛。近年來單片機發展也同樣十分迅速,單片機已經滲透到工業、農業、國防等各個領域,單片機以其體積小,可靠性高,造價低,開發周期短的特點被廣泛推廣與應用。傳統的溫度採集不僅耗時而且精度低,遠不能滿足各行業對溫度數據高精度,高可靠性的要求。溫度的控制及測量對保證產品質量、提高生產效率、節約能源、生產安全、促進國民經濟的發展起到重要作用。在單片機溫度測量系統中關鍵是測量溫度,控制溫度和保持溫度。溫度測量是工業對象的主要被控參數之一。本此題目的總體功能就是利用單片機和熱敏原件實現溫度的採集與讀數,利用五位LED顯示溫度讀數和所選通道號,實現熱電轉化,實現溫度的精確測量。本設計是以Atmel公司的AT89S51單片機為控制核心,通過MC14433模數轉換對所測的溫度進行數字量變化,且通過數碼管進行相應的溫度顯示。採用微機進行溫度檢測,數字顯示,信息存儲及實時控制,對於提高生產效率和產品質量、節約能源等都有重要作用。
目錄:
一、系統總體功能及技術指標的描述........................................ 5
二、各模塊電路原理描述............................................................. 5
2.1單片機及電源模塊設計...................................................... 5
2.2、AT89S51引腳說明.......................................................... 7
2.3、數據採集模塊設計........................................................ 11
2.4、多路開關......................................................................... 12
2.5、放大器............................................................................. 15
2.6、A/D轉換器..................................................................... 16
2.7、顯示器設計..................................................................... 21
2.8、鍵盤電路設計................................................................. 22
2.9、電路總體設計圖........................................................... 22
三、軟體流程圖 ...................................................................... 24
四、程序清單.............................................................................. 25
五、設計總結及體會.................................................................... 31
六、參考資料................................................................................ 32

一、系統總體功能及技術指標的描述
1. 系統的總體功能:
溫度數據採集系統,實現溫度的採集與讀書,利用五位LED顯示溫度讀數和所選通道號,實現熱電轉化的原理過程。
被測量溫度范圍:0~500℃,溫度解析度為0.5℃。被測溫度點4個,每2秒測量一次。顯示器要求:通道號1位,溫度4位(精度到小數點後一位)。顯示方式為定點顯示和輪流顯示,可以通過按鍵改變顯示方式。
2. 技術指標要求:
1.被測量溫度范圍:0~500℃,溫度解析度為0.5℃。
2.被測溫度點:4個,每2秒測量一次。
3.顯示器要求:通道號1位,溫度4位(精度到小數點後一位)。
顯示方式為定點顯示和輪流顯示。
4.鍵盤要求:
(1)定點顯示設定;(2)輪流顯示設定;(3)其他功能鍵。
二、各模塊電路原理描述
2.1單片機及電源模塊設計
如圖所示為AT89S51晶元的引腳圖。兼容標准MCS-51指令系統的AT89S51單片機是一個低功耗、高性能CHMOS的單片機,片內含4KB在線可編程Flash存儲器的單片機。它與通用80C51系列單片機的指令系統和引腳兼容。
AT89S51單片機片內的Flash可允許在線重新編程,也可用通用非易失性存儲編程器編程;片內數據存儲器內含128位元組的RAM;有40個引腳,32個外部雙向輸入/輸出(I/O)埠;具有兩個16位可編程定時器;中斷系統是具有6個中斷源、5個中斷矢量、2級中斷優先順序的中斷結構;震盪器頻率0到33MHZ,因此我們在此選用12MHZ的晶振是比較合理的;具有片內看門狗定時器;具有斷電標志POF等等。AT89S51具有PDIP、TQFP和PLCC三種封裝形式[8]。

圖5.1-1 AT89S51引腳圖

上圖就是PDIP封裝的引腳排列,下面介紹各引腳的功能。
2.2、AT89S51引腳說明
P0口:8位、開漏級、雙向I/O口。P0口可作為通用I/O口,但須外接上拉電阻;作為輸出口,每各引腳可吸收8各TTL的灌電流。作為輸入時,首先應將引腳置1。P0也可用做訪問外部程序存儲器和數據存儲器時的低8位地址/數據匯流排的復用線。在該模式下,P0口含有內部上拉電阻。在FLASH編程時,P0口接收代碼位元組數據;在編程效驗時,P0口輸出代碼位元組數據(需要外接上拉電阻)。
P1口:8位、雙向I/0口,內部含有上拉電阻。P1口可作普通I/O口。輸出緩沖器可驅動四個TTL負載;用作輸入時,先將引腳置1,由片內上拉電阻將其抬到高電平。P1口的引腳可由外部負載拉到低電平,通過上拉電阻提供電流。在FLASH並行編程和校驗時,P1口可輸入低位元組地址。在串列編程和效驗時,P1.5/MO-SI,P1.6/MISO和P1.7/SCK分別是串列數據輸入、輸出和移位脈沖引腳。
P2口:具有內部上拉電阻的8位雙向I/O口。P2口用做輸出口時,可驅動4各TTL負載;用做輸入口時,先將引腳置1,由內部上拉電阻將其提高到高電平。若負載為低電平,則通過內部上拉電阻向外部輸出電流。CPU訪問外部16位地址的存儲器時,P2口提供高8位地址。當CPU用8位地址定址外部存儲時,P2口為P2特殊功能寄存器的內容。在FLASH並行編程和校驗時,P2口可輸入高位元組地址和某些控制信號。
P3口:具有內部上拉電阻的8位雙向口。P3口用做輸出口時,輸出緩沖器可吸收4各TTL的灌電流;用做輸入口時,首先將引腳置1,由內部上拉電阻抬位高電平。若外部的負載是低電平,則通過內部上拉電阻向輸出電流。在與FLASH並行編程和校驗時,P3口可輸入某些控制信號。P3口除了通用I/O口功能外,還有替代功能,如表5.3-1所示。

表5.3-1 P3口的替代功能

引腳

符號

說明

P3.0

RXD

串列口輸入

P3.1

TXD

串列口輸出

P3.2

/INT0

外部中斷0

P3.3

/INT1

外部中斷1

P3.4

T0

T0定時器的外部的計數輸入

P3.5

T1

T1定時器的外部的計數輸入

P3.6

/WR

外部數據存儲器的寫選通

P3.7

/RD

外部數據存儲器的讀選通

RST:復位端。當振盪器工作時,此引腳上出現兩個機器周期的高電平將系統復位。
ALE/ :當訪問外部存儲器時,ALE(允許地址鎖存)是一個用於鎖存地址的低8位位元組的書粗脈沖。在Flash 編程期間,此引腳也可用於輸入編程脈沖()。在正常操作情況下,ALE以振盪器頻率的1/6的固定速率發出脈沖,它是用作對外輸出的時鍾,需要注意的是,每當訪問外部數據存儲器時,將跳過一個ALE脈沖。如果希望禁止ALE操作,可通過將特殊功能寄存器中位地址為8EH那位置的「0」來實現。該位置的「1」後。ALE僅在MOVE或MOVC指令期間激活,否則ALE引腳將被略微拉高。若微控制器在外部執行方式,ALE禁止位無效。
:外部程序存儲器讀選取通信號。當AT89S51在讀取外部程序時, 每個機器周期 將PSEN激活兩次。在此期間內,每當訪問外部數據存儲器時,將跳過兩個信號。
/Vpp:訪問外部程序存儲器允許端。為了能夠從外部程序存儲器的0000H至FFFFH單元中取指令,必須接地,然而要注意的是,若對加密位1進行編程,則在復位時,的狀態在內部被鎖存。
執行內部程序應接VCC。不當選擇12V編程電源時,在Flash編程期間,這個引腳可接12V編程電壓。
XTAL1:振盪器反向放大器輸入端和內部時鍾發生器的輸入端。
XTAL2:振盪器反相放大器輸出端[9]。

電源模塊設計
在影響單片機系統可靠性的諸多因素中,電源干擾可謂首屈一指,據統計,計算機應用系統的運行故障有90%以上是由電源雜訊引起的。為了提高系統供電可靠性,交流供電應採用交流穩壓器,防止電源的過壓和欠壓,直流電源抗干擾措施有採用高質量集成穩壓電路單獨供電,採用直流開關電源,採用DC-DC變換器。本次設計決定採用MAXim公司的高電壓低功耗線性變換器MAX 1616作為電壓變換,採用該器件將輸入的24V電壓變換為5V電壓,給外圍5V的器件供電。MAX1616具有如下特點:
1.4~28V電壓輸入范圍。
2.最大80uA的靜態工作電流。
3.3V/5V電壓可選輸出。
4.30mA輸出電流。
5.2%的電壓輸出精度。
電源管理模塊電路圖如下:

本電路採用該器件將輸入的24V電壓變成5V電壓,給外圍5V的器件供電,其中二極體D1是保護二極體,防止輸入電壓接反可能帶來的對電路的影響和破壞。

D. 基於單片機的溫度監測系統設計的總體大概的講一下測溫和無線傳輸顯示的過程

感測器DS18B20具有體積更小、精度更高、適用電壓更寬、採用一線匯流排、可組網等優點,在實際應用中取得了良好的測溫效果[7]。
美國Dallas半導體公司的數字化溫度感測器DS1820是世界上第一片支持 「一線匯流排」介面的溫度感測器,在其內部使用了在板(ON-B0ARD)專利技術。全部感測元件及轉換電路集成在形如一隻三極體的集成電路內。「一線匯流排」獨特而且經濟的特點,使用戶可輕松地組建感測器網路,為測量系統的構建引入全新概念。現在,新一代的DS18B20體積更小、更經濟、更靈活。使你可以充分發揮「一線匯流排」的優點。 同DS1820一樣,DS18B20也支持「一線匯流排」介面,測量溫度范圍為-55°C~+125°C,在-10~+85°C范圍內,精度為±0.5°C。現場溫度直接以「一線匯流排」的數字方式傳輸,大大提高了系統的抗干擾性。適合於惡劣環境的現場溫度測量,如:環境控制、設備或過程式控制制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3V~5.5V的電壓范圍,使系統設計更靈活、方便。而且新一代產品更便宜,體積更小[8]。
1. DS18B20的特性 [9]
(1)適應電壓范圍更寬,電壓范圍:3.0~5.5V,寄生電源方式下可由數據線供。
(2)獨特的單線介面方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。
(3)DS18B20支持多點組網功能,多個DS18B20可以並聯在唯一的三線上,實現組網多點測溫。
(4)DS18B20在使用中不需要任何外圍元件,全部感測元件及轉換電路集成在形如一隻三極體的集成電路內。
(5)溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃。
(6)可編程的解析度為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現高精度測溫。
(7)在9位解析度時最多在93.75ms內把溫度轉換為數字,12位解析度時最多在750ms內把溫度值轉換為數字,速度更快。
(8)測量結果直接輸出數字溫度信號,以「一線匯流排」串列傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。
(9)負壓特性:電源極性接反時,晶元不會因發熱而燒毀,但不能正常工作。
2.DS18B20內部結構及DS18B20的管腳排列
64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。不同的器件地址序列號不同。DS18B20內部結構主要由四部分組成:64位光刻ROM,溫度感測器,非揮發的溫度報警觸發器TH和TL,高速暫存器。
DS18B20的引腳定義:
(1)DQ為數字信號輸入/輸出端
(2)GND為電源地
(3)VDD為外接供電電源輸入端(在寄生電源接線方式時接地)
另外,站長團上有產品團購,便宜有保證

E. 基於51單片機,溫濕度無線檢測系統設計

單片機溫度控制系統的設計

http://www.tabobo.cn/soft/20/233/2007/233428910074.html

摘 要
隨著電子技術的發展,特別是隨著大規模集成電路的產生,給人們的生活帶來了根本性的變化,如果說微型計算機的出現使現代的科學研究得到了質的飛躍,那麼可編程式控制制器的出現則是給現代工業控制測控領域帶來了一次新的革命。在現代社會中,溫度控制不僅應用在工廠生產方面,其作用也體現到了各個方面。
隨著人們生活質量的提高,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務於社會目前,單片機控制器在從生活工具到工業應用的各個領域,例如生活工具的電梯、工業生產中的現場控制儀表、數控機床等。尤其是用單片機控制器改造落後的設備具有性價比高、提高設備的使用壽命、提高設備的自動化程度的特點。
現代工業設計、工程建設及日常生活中常常需要用到溫度控制,早期溫度控制主要應用於工廠中,例如鋼鐵的水溶溫度,不同等級的鋼鐵要通過不同溫度的鐵水來實現,這樣就可能有效的利用溫度控制來掌握所需要的產品了。
隨著社會的發展,人們對食品溫度的控制要求也越來越高,對於低溫冷藏車的溫度控制也就相應的不斷提高,而我設計的低溫冷藏車就是為了達到這樣的溫度控制要求而進行設計的。我所採用的控制晶元為AT89C51,此晶元功能強大,能夠滿足設計要求。通過對電路的設計,對晶元的外圍擴展,來達到對冷藏車溫度的控制和調節功能。

關鍵字:AT89C51單片機、溫度 、軟體設計

目 錄
摘 要………………………………………………………………………………6
目 錄………………………………………………………………………………7
第一章 緒 論
1-1概述………………………………………………………………………………9
1-2溫度控制的總體設計和思路……………………………………………………9
1-3溫度控制方框圖…………………………………………………………………10
1-4溫度巡迴測量控制儀基本要求…………………………………………………10
1-5發揮部分…………………………………………………………………………10
第二章 單片機AT89C51的結構和原理
2-1 AT89C51單片機的結構…………………………………………………………11
2-2 AT89C51單片機主要特性………………………………………………………11
2-3 AT89C51單片機引腳功能說明…………………………………………………11
2-4復位電路…………………………………………………………………………12
2-5時鍾電路…………………………………………………………………………13
第三章 溫度控制的硬體設備
3-1采樣系統及溫度感測器的選擇
3-1-1采樣系統…………………………………………………………………15
3-1-2溫度感測器的選擇………………………………………………………15
3-2集成運放的選擇
3-2-1放大系統. ………………………………………………………………16
3-2-2集成運放的選擇…………………………………………………………16
3-3控制系統及光電耦合器的選擇
3-3-1控制系統…………………………………………………………………17
3-3-2光電耦合器的選擇………………………………………………………17
3-4 A/D轉換器的選擇及介紹………………………………………………………18
3-5 顯示系統及顯示器的選擇
3-5-1顯示系統…………………………………………………………………18
3-5-2顯示器的選擇……………………………………………………………19
3-6電源電路…………………………………………………………………………20
第四章 溫度控制的軟體設計
4-1程序模塊化處理………………………………………………………………22
4-2內RAM資源配置………………………………………………………………22
4-3程序清單
4-3-1程序入口地址……………………………………………………………22
4-3-2主程序……………………………………………………………………22
4-3-3顯示程序…………………………………………………………………23
4-3-4定時器中斷子程序………………………………………………………26
4-3-5溫度檢測子程序…………………………………………………………27
4-3-6溫度控制子程序…………………………………………………………28
4-3-7報警子程序………………………………………………………………29
4-3-8鍵盤子程序用於調節設定值……………………………………………29
第五章 調試及小結
5-1單片機溫度控制系統的工作原理……………………………………………32
5-2溫度檢測和A/D轉換電路圖……………………………………………………32
5-3測試報告………………………………………………………………………32
小 結………………………………………………………………………………34
致 謝………………………………………………………………………………35
參考文獻……………………………………………………………………………36
是否可以解決您的問題?

F. 用單片機做溫度檢測系統 論文,

用DS18B20做的電子溫度計,非常簡單。

#include <reg51.h>
#include\"AscLed.h\"
#include <intrins.h>
#include <stdio.h>
//********************************************************
#define Seck (500/TK) //1秒中的主程序的系數
#define OffLed (Seck*5*60) //自動關機的時間5分鍾!
//********************************************************
#if (FHz==0)
#define NOP_2uS_nop_()
#else
#define NOP_2uS_nop_();_nop_()
#endif
//**************************************
#define SkipK 0xcc //跳過命令
#define ConvertK 0x44 //轉化命令
#define RdDs18b20K 0xbe //讀溫度命令
//*******************************************
extern LedOut(void);
//*************************************************
sbit PNP1=P3^4;
sbit PNP2=P3^5;
sbit BEEP=P3^2;
//***********************************
#defineDQ PNP2 //原來的PNP2 BEEP
//***********************************
static unsigned char Power=0;
//************************************
union{
unsigned char Temp[2]; //單位元組溫度
unsigned int Tt; //2位元組溫度
}T;
//***********************************************
typedef struct{
unsigned char Flag; //正數標志 0;1==》負數
unsigned char WenDu; //溫度整數
unsigned int WenDuDot; //溫度小數放大了10000

}WENDU;
//***********************************************
WENDU WenDu;
unsigned char LedBuf[3];
//----------------------------------
//功能:10us 級別延時
// n=1===> 6Mhz=14uS 12MHz=7uS
//----------------------------------
void Delay10us(unsigned char n){

do{
#if (FHz==1)
NOP_2uS;NOP_2uS;
#endif
}while(--n);
}
//-----------------------------------
//功能:寫18B20
//-----------------------------------
void Write_18B20(unsigned char n){
unsigned char i;
for(i=0;i<8;i++){
DQ=0;
Delay10us(1);//延時13us 左右
DQ=n & 0x01;
n=n>>1;
Delay10us(5);//延時50us 以上
DQ=1;
}
}
//------------------------------------
//功能:讀取18B20
//------------------------------------
unsigned char Read_18B20(void){
unsigned char i;
unsigned char temp;
for(i=0;i<8;i++){
temp=temp>>1;
DQ=0;
NOP_2uS;//延時1us
DQ=1;
NOP_2uS;NOP_2uS;//延時5us
if(DQ==0){
temp=temp&0x7F;
}else{
temp=temp|0x80;
}
Delay10us(5);//延時40us
DQ=1;
}
return temp;
}
//-----------------------------------
void Init (void){
DQ=0;
Delay10us(45);//延時500us
DQ=1;
Delay10us(9);//延時90us
if(DQ){ //0001 1111b=1f
Power =0; //失敗0
}else{
Power++;
DQ=1;
}
}
//----------------------------------
void Skip(void){
Write_18B20(SkipK);
Power++;
}
//----------------------------------
void Convert (void){
Write_18B20(ConvertK);
Power++;
}
//______________________________________
void Get_Ds18b20L (void){
T.Temp[1]=Read_18B20(); //讀低位
Power++;
}
//______________________________________
void Get_Ds18b20H (void){
T.Temp[0]=Read_18B20(); //讀高位
Power++;
}
//------------------------------------
//規范化成浮點數
// sssss111;11110000
// sssss111;1111(0.5,0.25,0.125,0.0625)
//------------------------------------
void ReadTemp (void){
unsigned char i;
unsigned intF1=0;
char j=1;
code int Code_F[]={6250,1250,2500,5000};

WenDu.Flag=0;

if (T.Temp[0] >0x80){ //負溫度
T.Tt =~T.Tt+1; //取反+1=源嗎 +符號S
WenDu.Flag=-1;
}
T.Tt <<= 4; //左移4位
WenDu.WenDu=T.Temp[0]; // 溫度整數
//**************************************************
T.Temp[1]>>=4;
//---------------------------
for (i=0;i<4;i++){ //計算小數位
F1 +=(T.Temp[1] & 0x01)*Code_F;
T.Temp[1]>>=1;
}
WenDu.WenDuDot=F1; //溫度的小數
Power=0;
}
//----------------------------------
void Delay1S (void){
static unsigned int i=0;

if (++i==Seck) {i=0ower++;}
}
//----------------------------------
void ReadDo (void){
Write_18B20(RdDs18b20K);
Power++;
}
/**********************************
函數指針定義
***********************************/
code void (code *SubTemp[])()={
Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L,
Get_Ds18b20H,ReadTemp
};
//**************************************
void GetTemp(void){
(*SubTemp[Power])();
}
//---------------------------------------------------
//將溫度顯示,小數點放大了10000.
void GetBcd(void){
LedBuf[0]=WenDu.WenDu / 10;
LedBuf[1]=WenDu.WenDu % 10 +DotK;
LedBuf[2]=(WenDu.WenDuDot/1000)%10;

if(LedBuf[0]==0)LedBuf[0]=Black;

if(WenDu.Flag==0) return;
if(LedBuf[0] !=Black){
LedBuf[2]=LedBuf[1];
LedBuf[1]=LedBuf[0];
LedBuf[0]=Led_Pol; //'-'
}else{
LedBuf[0]=Led_Pol; //'-'
}
}
/*
//---------------------------------------------------
void JbDelay (void){
static long i;
if (++i>=OffLed){
P1=0xff;
P2=0xff;
PCON=0x02;
}
}
*/
/*****************************************************
主程序開始
1:2002_10_1 設計,採用DS18B20測量
2:採用函數數組讀取DS18B20.LED數碼管顯示正常!
3:改變FHz可以用6,12MHz工作!
******************************************************/
code unsigned char Stop[3] _at_ 0x3b;
void main (void){
P1=0xff;
WenDu.WenDu=0;
while (1){
GetTemp();
GetBcd();
// JbDelay();
LedOut();
}
}
復制代碼
20091012_[1].jpg (12 KB)

2009-10-21 23:21 上傳
下載次數:0

G. 基於單片機AT89S51的【溫度檢測與顯示系統的設計】 求大神幫助,不要代做的 謝謝。。

這是一個測溫並用12864顯示溫度曲線的一個主程序,時間我沒顯示,但寫了,我是一秒轉化一次溫度,如果你要顯示時間,自己在定時器服務函數里加上去就好了

#include<reg52.h>
#include"12864.h"
#include"18b20.h"
#include"display.h"
#define uchar unsigned char
#define uint unsigned int

bit flag_time;
uchar miao,fen;
uchar temper,T_x_start=16,T_x_end=16,T_y_start=31,T_y_end=31;
uchar code num[]="0123456789";

void dis_init()
{
temper=read_tempr();
delayms(500);
Set_address(6,1);
Lcd_12864_char(num[temper/10]); //顯示單個字元
Lcd_12864_char(num[temper%10]);
Lcd_12864_char('.');
Lcd_12864_char(num[dian/10]);
Lcd_12864_char(num[dian%10]);
}

void display_()
{
dis_init() ;
if(flag_time==1)
{
flag_time=0;
T_y_start=55-(temper-21)*10-dian/10;
T_x_start+=2;
if(T_x_start==127)
{
T_x_start=16;
}

Lcd_12864_drawLine(T_x_start,T_y_start,T_x_end,T_y_end,1); //任意畫線函數

T_x_end=T_x_start;
T_y_end=T_y_start;
}
}

void timer0_init()
{
TMOD=0X01;
TR0=1;
ET0=1;
EA=1;
}

void main()
{
timer0_init();

delayms(10); //延時
wela=0;
la=0;
Lcd_12864_init(); //12864初始化
delayms(1);
clearGDRAM(); //清除GDRAM
dis_grid();

while(1)
{
display_();
}
}

void timer0() interrupt 1
{
uchar i;
TH0=0X4C;
TL0=0X00;
i++;
if(i==20)
{
i=0;
miao++;
if(miao>=1)
{
miao=0;
fen++;
if(fen>=1)
{
fen=0;
flag_time=1;
}
}
}
}

H. 基於單片機的多點溫度測量系統的設計如何實現溫度的採集

DS18B20是單匯流排數字溫度感測器,可以直接採集溫度,並把採集到的數據通過單匯流排的方式,送入單片機,單片機處理數據,送入4路數碼管顯示就行了,測量的精度,可以通過軟體控制。一條線上是可以掛多個DS18B20了,所以可以實現多點溫度採集,但是一條線上最多能連接8個18B20。18B20內部光刻ROM中的有64位序列號,可以看作是該DS18B20的地址序列碼,通過這個地址序列碼區分單匯流排上的不同器件。這個系統最主要的就是編寫單匯流排的介面函數,這部分要參考18B20的datasheet編寫。

閱讀全文

與基於單片機的溫度檢測系統設計相關的資料

熱點內容
南詔pdf 瀏覽:745
windows如何代碼bat啟動伺服器 瀏覽:454
軟體太卡與伺服器有什麼關系 瀏覽:402
給心理治療師pdf 瀏覽:218
robinhood加密交易條件 瀏覽:310
衛生間解壓方法 瀏覽:450
u盤如何做加密文件放照片 瀏覽:329
文件夾自己加了exe 瀏覽:259
小豬cms直播系統源碼 瀏覽:878
山東廣電雲伺服器 瀏覽:354
javadate與mysqldate 瀏覽:244
javalong比較 瀏覽:12
加密大師看不見加密文件 瀏覽:307
想做一個業余程序員 瀏覽:793
python選出行 瀏覽:249
cat命令windows 瀏覽:910
python算術游戲 瀏覽:532
常微分方程第二版pdf 瀏覽:25
phpJava學多久 瀏覽:724
php博客畢業設計 瀏覽:796