加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

51單片機DS18B20溫度報警器proteus仿真設計_可調(diào)上下限(源碼+原理圖+報告+講解視頻)

08/09 17:04
2425
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
相關方案
  • 方案介紹
  • 相關文件
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

原理圖Altium Designer

仿真版本:proteus 7.8

程序編譯器:keil 4/keil 5

編程語言:C語言

設計編號:S0008

主要功能

本設計系統(tǒng)是18b20溫度報警系統(tǒng)數(shù)碼管顯示,可設置溫度上限高溫報警和下限低溫報警,報警溫度可精確到0.1度,并具有掉電保存功能,數(shù)據(jù)保存在單片機內(nèi)部EEPOM中,進入設置界面后如果沒有鍵按下系統(tǒng)會在15秒后自動退出設置界面,人性化的按鍵設置,按鍵還具有連加、減功能。

  1. 按“確定鍵” :有兩種操作方式

1)按下就松開,高溫設置、低溫設置、正常顯示溫度,三個界面按一下就切換一次。

2)按下不松開,進入自動切換,每500ms自動切換一次,

  1. 按“加鍵” :有兩種操作方式

1)按下就松開,設定的溫度值就加0.1度。

2)按下不松開,進入按鍵連加功能,每500ms自動加一次,前三次自動加0.1度,之后就是自動加1度。

  1. 按“減鍵” :有兩種操作方式

1)按下就松開,設定的溫度值就減0.1度。

2)按下不松開,進入按鍵連減功能,每500ms自動減一次,前三次自動減0.1度,之后就是自動減1度。

  1. 第一次按下“確定鍵”進入高溫報警設置:

按下“加、減”鍵可設置高溫報警,最高設置成99.0度,最低可設置成比低溫報警高0.1度。

  1. 第二次按下“確定鍵”進入低溫報警設置:

按下“加、減”鍵可設置低溫報警,最低設置成1度,最高可設置成比高溫報警低0.1度。

  1. 第三次按下“確定鍵”進入正常溫度顯示。

講解視頻

包含仿真講解和代碼講解

仿真圖

image-20220902232800201

硬件設計:

img

主控制模塊

主控制最系統(tǒng)電路如圖4所示。

img

圖4 單片主控電路

顯示模塊電路

顯示采用四位數(shù)碼管顯示,當位選打開時,送入相應的段碼,則相應的數(shù)碼管打開,關掉位選,打開另一個位選,送入相應的段碼,則數(shù)碼管打開,而每次打開關掉相應的位選時,時間間隔低于20ms,從人類視覺的角度上看,就仿佛是全部數(shù)碼管同時顯示的一樣。顯示電路如圖5

img

圖5 數(shù)碼管顯示

數(shù)碼管顯示驅(qū)動電路

三極管8550來驅(qū)動4位數(shù)碼管,不僅簡單,而且價格便宜。

img

程序設計

img

主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,主程序的主要功能是負責溫度的實時顯示,讀出并處理DS18B20的當前溫度值,與設定的報警溫度比較,其程序流程見圖9所示。

通過調(diào)用讀溫度子程序把存入內(nèi)存儲中的整數(shù)部分與小數(shù)部分開分存放在不的的兩個單元中,然后通過調(diào)用顯示子程序顯示出來。

image-20220902233650289

程序代碼

/****************主函數(shù)***************/
void main()
{
	beep = 0;		                //開機叫一聲   
	delay_1ms(150);
	P0 = P1 = P2 = P3 = 0xff;
	temperature = read_temp();		//先讀出溫度的值	
	init_eeprom();  //開始初始化保存的數(shù)據(jù)
	delay_1ms(650);				
	temperature = read_temp();		         //先讀出溫度的值
	dis_smg[0] = smg_du[temperature % 10];	 //取溫度的小數(shù)顯示
	dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取溫度的個位顯示
	dis_smg[2] = smg_du[temperature / 100 % 10] ;	   //取溫度的十位顯示
	time_init();                    //初始化定時器 
	while(1)
	{		
		key();					//按鍵程序
		if(key_can < 10)
		{
			key_with();			//設置報警溫度	
		}
		if(flag_300ms == 1)	    //300ms 處理一次溫度程序
		{	   
			flag_300ms = 0;	
			temperature = read_temp();	//先讀出溫度的值
			clock_h_l();        //報警函數(shù)
			if(menu_1 == 0)
			{	
				smg_i = 3;
				dis_smg[0] = smg_du[temperature % 10];	 //取溫度的小數(shù)顯示
				dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取溫度的個位顯示
				dis_smg[2] = smg_du[temperature / 100 % 10] ;	   //取溫度的十位顯示
			}
		}
	}
}

DS18B20初始化程序流程圖

在DS18B20工作之前需要進行初始化,流程圖如下:

image-20220902233709197


/*************讀取溫度的值 讀出來的是小數(shù)***************/
uint read_temp()
{
	uint value;
	uchar low;			   //在讀取溫度的時候如果中斷的太頻繁了,就應該把中斷給關了,否則會影響到18b20的時序
	init_18b20();		   //初始化18b20
	write_18b20(0xcc);	   //跳過64位ROM
	write_18b20(0x44);	   //啟動一次溫度轉(zhuǎn)換命令
	delay_uint(50);		   //500us

	init_18b20();		   //初始化18b20
	
	write_18b20(0xcc);	   //跳過64位ROM
	write_18b20(0xbe);	   //發(fā)出讀取暫存器命令
	
	EA = 0;
	low = read_18b20();	   //讀溫度低字節(jié)
	value = read_18b20();  //讀溫度高字節(jié)
	EA = 1;
	value <<= 8;		   //把溫度的高位左移8位
	value |= low;		   //把讀出的溫度低位放到value的低八位中
	value *= 0.625;	       //轉(zhuǎn)換到溫度值 小數(shù)
	return value;		   //返回讀出的溫度 帶小數(shù)
}

設計報告

摘要

隨著時代的進步和發(fā)展,單片機技術已經(jīng)普及到我們生活、工作、科研、各個領域,已經(jīng)成為一種比較成熟的技術, 本文主要介紹了一個基于STC89C52單片機的溫度報警系統(tǒng),詳細描述了利用溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進行了詳盡分析,對各部分的電路也一一進行了介紹,該系統(tǒng)可以方便的實現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設定報警溫度,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點,適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度控制,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。DS18B20與STC89C52結(jié)合實現(xiàn)最簡溫度控制系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強,適合于惡劣環(huán)境下進行現(xiàn)場溫度的控制,有廣泛的應用前景。

**關鍵詞:**單片機;溫度控制;STC89C52;DS18B20;

image-20220902232904330

資料清單&&下載鏈接

img

資料下載鏈接

  • 設計資料獲取聯(lián)系方式.doc

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ATXMEGA16D4-AU 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, PQFP44, 10 X 10 MM, 1 MM HEIGHT, 0.80 MM PITCH, GREEN, PLASTIC, MS-026ACB, TQFP-44

ECAD模型

下載ECAD模型
$3.06 查看
ATXMEGA128A1U-AUR 1 Atmel Corporation RISC Microcontroller, 16-Bit, FLASH, AVR RISC CPU, 32MHz, CMOS, PQFP100, TQFP-100
$73.57 查看
MKL25Z128VLH4 1 Freescale Semiconductor RISC MICROCONTROLLER

ECAD模型

下載ECAD模型
$6.94 查看

相關推薦

電子產(chǎn)業(yè)圖譜