国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

這篇具有很好參考價值的文章主要介紹了基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 開發(fā)環(huán)境

仿真圖:proteus8.9以上

程序代碼:KEIL4/KEIL5

原理圖:AD

設計編號:A0007

2 功能說明介紹

結(jié)合實際情況,基于51單片機設計一個排隊叫號系統(tǒng)設計。該系統(tǒng)應滿足的功能要求為:

系統(tǒng)由51單片機、DS18B20溫度傳感器、LCD1602液晶顯示屏、繼電器、風扇、加熱膜、按鍵、蜂鳴器組成。

可實現(xiàn)以下基本功能:

1、可進行溫度值的實時顯示,精度為0.1攝氏度;

2、使用數(shù)碼管作為顯示設備;

3、檢測范圍是-55~125攝氏度;

4、可通過按鍵設置溫度的報警范圍;

5、一旦溫度過低,綠色指示燈亮,蜂鳴器響,加熱膜加熱,模擬升溫裝置;

6、一旦溫度過高,紅色指示燈亮,蜂鳴器響,小風扇轉(zhuǎn)動,模擬降溫裝置;

本資料下載鏈接(可點擊)

https://docs.qq.com/doc/DTk5xUXRZdHFqem5O文章來源地址http://www.zghlxwxcb.cn/news/detail-407458.html

3 仿真圖

AT89C51可以替換為AT89C52,實物可以換做STC89C51,STC89C52

AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS16位單片機,片內(nèi)含4k bytes的可反復擦寫的只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器,期間采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用16位中央處理器和Flash存儲單元,功能強大的AT89C51單片機可靈活應用于各種控制領(lǐng)域。

AT89C51提供以下標準功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個1 6位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。

本系統(tǒng)中央控制器采用的AT89C51單片機,復位電路采用上電復位電路。外接的晶振為12MHz晶振。

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

4 程序

工程文件使用Keil4/keil5打開。編譯產(chǎn)生hex加載到對應的單片機中。

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

代碼

#include <reg52.h>			// 包含頭文件
#include <intrins.h>

#define uchar unsigned char		// 以后unsigned char就可以用uchar代替
#define uint  unsigned int		// 以后unsigned int 就可以用uint 代替

sbit DQ = P1^1;						// DS18B20傳感器的引腳定義
sbit w1 = P2^4; 					// 數(shù)碼管第1位的控制引腳
sbit w2 = P2^5;						// 數(shù)碼管第2位的控制引腳
sbit w3 = P2^6;						// 數(shù)碼管第3位的控制引腳
sbit w4 = P2^7;			 			// 數(shù)碼管第4位的控制引腳
sbit Buzzer  = P1^0;			// 蜂鳴器引腳
sbit JdqLow  = P2^0;			// 溫度過低繼電器控制(加熱)
sbit JdqHig  = P2^1;			// 溫度過高繼電器控制(降溫)
sbit LedLow  = P2^2;			// 溫度低指示燈
sbit LedHig  = P2^3;			// 溫度高指示燈
sbit KeySet  = P3^2;			// 設置按鍵
sbit KeyDown = P3^3;			// 減按鍵
sbit KeyUp   = P3^4;			// 加按鍵



/*   數(shù)碼管的顯示值:  0    1    2    3    4    5     6   7    8    9    -   */
uchar code Array1[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 };

/*                     0.   1.   2.   3.   4.   5.    6.  7.   8.   9.  */
uchar code Array2[]={ 0xBf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef };


uchar Buff[4];					// 顯示緩沖區(qū)
uchar ShowID=1;					// 當前顯示的是哪一個數(shù)碼管

int AlarmLow=150;				// 默認報警的溫度下限值是15度
int AlarmHig=300;				// 默認報警的溫度上限值是30度


/*********************************************************/
// 毫秒級的延時函數(shù),time是要延時的毫秒數(shù)
/*********************************************************/
void DelayMs(uint time)
{
	uint i,j;
	for(i=0;i<time;i++)
		for(j=0;j<112;j++);
}


/*********************************************************/
// 延時15微秒
/*********************************************************/
void Delay15us(void)
{
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
}


/*********************************************************/
// 復位DS18B20(初始化)
/*********************************************************/
void DS18B20_ReSet(void)
{
	uchar i;
	DQ=0;

	i=240;
	while(--i);

	DQ=1;

	i=30;
	while(--i);

	while(~DQ);

	i=4;
	while(--i);
}


/*********************************************************/
// 向DS18B20寫入一個字節(jié)
/*********************************************************/
void DS18B20_WriteByte(uchar dat)
{
	uchar j;
	uchar btmp;
	
	for(j=0;j<8;j++)
	{
		btmp=0x01;
		btmp=btmp<<j;
		btmp=btmp&dat;
		
		if(btmp>0)		// 寫1
		{
			DQ=0;
			Delay15us();
			DQ=1;
			Delay15us();
			Delay15us();
			Delay15us();
			Delay15us();
		}
		else			// 寫0
		{
			DQ=0;
			Delay15us();
			Delay15us();
			Delay15us();
			Delay15us();
			DQ=1;
			Delay15us();
		}
	}
}


/*********************************************************/
// 讀取溫度值
/*********************************************************/
int DS18B20_ReadTemp(void)
{
	uchar j;
	int b,temp=0;	

	DS18B20_ReSet();							// 產(chǎn)生復位脈
	DS18B20_WriteByte(0xcc);			// 忽略ROM指令
	DS18B20_WriteByte(0x44);			// 啟動溫度轉(zhuǎn)換指令

	DS18B20_ReSet();							// 產(chǎn)生復位脈
	DS18B20_WriteByte(0xcc);			// 忽略ROM指令
	DS18B20_WriteByte(0xbe);			// 讀取溫度指令

	for(j=0;j<16;j++)							// 讀取溫度數(shù)量
	{						
		DQ=0;
		_nop_();
		_nop_();
		DQ=1;	
		Delay15us();
		b=DQ;
		Delay15us();
		Delay15us();
		Delay15us();
		b=b<<j;
		temp=temp|b;
	}
	
	temp=temp*0.0625*10;					// 合成溫度值并放大10倍					
	
	return (temp);								// 返回檢測到的溫度值
}


/*********************************************************/
// 定時器初始化
/*********************************************************/
void TimerInit()
{
	TMOD = 0x01;					// 使用定時器0,工作方式1	 
	TH0  = 248;						// 給定時器0的TH0裝初值
	TL0  = 48;						// 給定時器0的TL0裝初值
	ET0  = 1;							// 定時器0中斷使能
	EA   = 1;							// 打開總中斷
	TR0	 = 1;							// 啟動定時器0
}


/*********************************************************/
// 顯示溫度值
/*********************************************************/
void ShowTemp(int dat)
{
	if(dat<0)												// 負號
	{
		Buff[0]=Array1[10];
		dat=0-dat;
	}
	else														// 百位
	{
		Buff[0]=Array1[dat/1000];
	}
	
	Buff[1]=Array1[dat%1000/100];		// 十位
	Buff[2]=Array2[dat%100/10];			// 個位
	Buff[3]=Array1[dat%10];					// 小數(shù)后一位
}


/*********************************************************/
// 報警判斷
/*********************************************************/
void AlarmJudge(int dat)
{
	if(dat<AlarmLow)				// 判斷溫度是否過低
	{
		LedLow=0;							// 溫度低指示燈亮
		LedHig=1;							// 溫度高指示燈滅
		JdqLow=0;							// 溫度過低的繼電器閉合(開始加熱)
		JdqHig=1;							// 溫度過高的繼電器斷開(停止降溫)
		Buzzer=0;							// 蜂鳴器報警
	}
	else if(dat>AlarmHig)		// 判斷溫度是否過高
	{
		LedLow=1;							// 溫度低指示燈滅
		LedHig=0;							// 溫度高指示燈亮
		JdqLow=1;							// 溫度過低的繼電器斷開(停止加熱)
		JdqHig=0;							// 溫度過高的繼電器閉合(開始降溫)
		Buzzer=0;							// 蜂鳴器報警
	}
	else										// 溫度正常
	{
		LedLow=1;							// 溫度低指示燈滅
		LedHig=1;							// 溫度高指示燈滅
		JdqLow=1;							// 溫度過低的繼電器斷開(停止加熱)
		JdqHig=1;							// 溫度過高的繼電器斷開(停止降溫)
		Buzzer=1;							// 蜂鳴器停止報警
	}
}


/*********************************************************/
// 按鍵掃描
/*********************************************************/
void KeyScanf()
{
	if(KeySet==0)									// 如果設置按鍵被按下
	{
		/* 設置溫度下限 */
		LedLow=0;										// 點亮綠色燈(代表當前正在設置溫度下限)
		LedHig=1;										// 熄滅紅色燈
		Buzzer=1;										// 關(guān)閉蜂鳴器
		ShowTemp(AlarmLow);					// 顯示溫度下限值
		DelayMs(10);								// 延時去抖
		while(!KeySet);							// 等待按鍵釋放
		DelayMs(10);								// 延時去抖
		
		while(1)
		{
			if(KeyDown==0)								// 如果“減”按鍵被按下
			{
				if(AlarmLow>-550)						// 判斷當前溫度下限是否大于-55度
				{
					AlarmLow--;								// 溫度下限值減去0.1度
					ShowTemp(AlarmLow);				// 刷新顯示改變后的溫度下限值
					DelayMs(200);							// 延時
				}
			}
			
			if(KeyUp==0)									// 如果“加”按鍵被按下					
			{
				if(AlarmLow<1250)						// 判斷當前溫度下限是否小于125度
				{
					AlarmLow++;								// 溫度下限值加上0.1度
					ShowTemp(AlarmLow);				// 刷新顯示改變后的溫度下限值
					DelayMs(200);							// 延時
				}
			}
			
			if(KeySet==0)									// 如果“設置”按鍵被按下
			{
				break;											// 退出溫度下限值的設置,準備進入上限值的設置
			}
		}
		
		/* 設置溫度上限 */
		LedLow=1;										// 熄滅綠色燈
		LedHig=0;										// 點亮紅色燈(代表當前正在設置溫度上限)
		ShowTemp(AlarmHig);					// 顯示溫度上限值
		DelayMs(10);								// 延時去抖
		while(!KeySet);							// 等待按鍵釋放
		DelayMs(10);								// 延時去抖
		
		while(1)
		{
			if(KeyDown==0)							// 如果“減”按鍵被按下							
			{
				if(AlarmHig>-550)					// 判斷當前溫度上限是否大于-55度
				{
					AlarmHig--;							// 溫度上限值減去0.1度
					ShowTemp(AlarmHig);			// 刷新顯示改變后的溫度上限值
					DelayMs(200);						// 延時
				}
			}
			
			if(KeyUp==0)								// 如果“加”按鍵被按下					
			{
				if(AlarmHig<1250)					// 判斷當前溫度上限是否小于125度
				{
					AlarmHig++;							// 溫度上限值加上0.1度
					ShowTemp(AlarmHig);			// 刷新顯示改變后的溫度上限值
					DelayMs(200);
				}
			}
			
			if(KeySet==0)								// 如果“設置”按鍵被按下
			{
				break;										// 準備退出設置模式
			}
		}
		
		/* 退出設置模式 */
		LedLow=1;									// 熄滅綠燈
		LedHig=1;									// 熄滅紅燈
		DelayMs(10);							// 延時去抖
		while(!KeySet);						// 等待按鍵釋放
		DelayMs(10);							// 延時去抖
	}
}


/*********************************************************/
// 主函數(shù)
/*********************************************************/
void main()
{
	int temp;
	uchar i;
	
	TimerInit();										// 定時器0的初始化(數(shù)碼管的動態(tài)掃描)
	
	Buff[0]=Array1[0];							// 剛上電顯示4個0
	Buff[1]=Array1[0];
	Buff[2]=Array1[0];
	Buff[3]=Array1[0];
	
	for(i=0;i<8;i++)								// 由于傳感器剛上電讀出的溫度不穩(wěn)定,因此先進行幾次溫度的讀取并丟棄
	{
		DS18B20_ReadTemp();
		DelayMs(120);
	}
	
	while(1)
	{
		EA=0;													// 屏蔽中斷
		temp=DS18B20_ReadTemp();			// 讀取溫度值
		EA=1;													// 恢復中斷
		
		ShowTemp(temp);								// 顯示溫度值
		
		AlarmJudge(temp);							// 判斷是否需要報警
		
		for(i=0;i<100;i++)						// 延時并進行按鍵掃描
		{
			KeyScanf();					
			DelayMs(10);								
		}
	}
}


/*********************************************************/
// 定時器0服務程序
/*********************************************************/
void Timer0(void) interrupt 1
{
	TH0  = 248;				// 給定時器0的TH0裝初值
	TL0  = 48;				// 給定時器0的TL0裝初值

	P0=0x00;					// 先關(guān)閉所有顯示
	w1=1;
	w2=1;
	w3=1;
	w4=1;

	if(ShowID==1)  			// 判斷是否顯示第1位數(shù)碼管
	{
		w1=0;		   				// 打開第1位數(shù)碼管的控制開關(guān)
		P0=Buff[0];	   		// 第1位數(shù)碼管顯示內(nèi)容	
	}
	
	if(ShowID==2)  			// 判斷是否顯示第2位數(shù)碼管
	{
		w2=0;		   				// 打開第2位數(shù)碼管的控制開關(guān)
		P0=Buff[1];	   		// 第2位數(shù)碼管顯示內(nèi)容	
	}
	
	if(ShowID==3)  			// 判斷是否顯示第3位數(shù)碼管
	{
		w3=0;		   				// 打開第3位數(shù)碼管的控制開關(guān)
		P0=Buff[2];	   		// 第3位數(shù)碼管顯示內(nèi)容	
	}
	
	if(ShowID==4)  			// 判斷是否顯示第4位數(shù)碼管
	{
		w4=0;		   				// 打開第4位數(shù)碼管的控制開關(guān)
		P0=Buff[3];	   		// 第4位數(shù)碼管顯示內(nèi)容	
	}	
	
	ShowID++;	  				// 切換到下一個數(shù)碼管的顯示
	if(ShowID==5)
		ShowID=1;
}

流程圖如下圖所示。

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

5 原理圖

原理圖由AD繪制,原理圖和仿真圖有出入,原理圖需要電源,電源開關(guān)模塊。此設計資料詳細,硬件手冊資料圖片詳細,不對硬件調(diào)試負責,做實物需要一定的基本功。主控芯片可以換為STC89C51/STC89C52

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

整個系統(tǒng)以AT89C51單片機為核心器件,配合電阻電容晶振等器件,構(gòu)成單片機的最小系統(tǒng)。其它個模塊圍繞著單片機最小系統(tǒng)展開。其中包括,傳感器采用DS18B20,負責采集溫度數(shù)據(jù)后發(fā)給單片機。顯示設備采用4位共陰數(shù)碼管,顯示檢測到的溫度值。按鍵模塊,主要是進行報警值的設置。報警模塊采用蜂鳴器+LED的模式,超出報警范圍則進行聲光報警,同時還有升溫和降溫裝置工作,使得溫度恒定在一個范圍之內(nèi)。

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

6 視頻講解

代碼講解+仿真講解+仿真演示+原理圖講解

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

7 設計報告

排隊論(又稱隨機服務系統(tǒng))是研究系統(tǒng)由于隨機因素的干擾而出現(xiàn)排隊(或擁塞)現(xiàn)象的規(guī)律的一門學科,它適用于一切服務系統(tǒng),包括公共服務系統(tǒng)、通信系統(tǒng)、計算機系統(tǒng)等??梢哉f,凡是出現(xiàn)擁塞現(xiàn)象的系統(tǒng),都屬于隨機服務系統(tǒng)。一個對象通過擁塞系統(tǒng)接受服務必須經(jīng)過三個環(huán)節(jié),即到達、排隊等候處理、接受服務和離去。例如在醫(yī)院中,排隊流程如下:患者在掛號的同時領(lǐng)取排隊號碼,然后到候診區(qū)候診;當為前一患者完成診斷后,醫(yī)生通過本系統(tǒng)呼叫隊列中下一位患者,患者就可直接到空閑診室行排隊等候服務。

另一個方面,伴隨著服務行業(yè)業(yè)務量不斷增長,業(yè)務種類日益增多,排隊等候已成為人們經(jīng)常面臨的實際問題。在銀行,醫(yī)院,電信,稅務,工商等營業(yè)大廳里,前擁后擠,雜亂無章的排隊等候,已是司空見慣的現(xiàn)象,影響了服務質(zhì)量。因此,改善服務質(zhì)量,樹立良好的企業(yè)形象,解決客戶勞累的排隊現(xiàn)象,創(chuàng)造人性化服務環(huán)境已成為急需解決的問題。設計一套排隊抽號的服務系統(tǒng),可以很好的解決因排隊引起的種種問題。

本系統(tǒng)通過AT89C51單片機直接擴展獨立鍵盤,完成排隊取號流程,單片機控制LCD1602顯示排隊等待情況,控制蜂鳴器發(fā)聲完成叫號功能。該系統(tǒng)有良好的人機交互界面,模擬排隊管理,科學地處理各種排隊情況,操作簡便,控制靈活,顯示清晰,制作成本低,性價比較高。

7.1 設計目的

(1)鞏固和加深對單片機原理和接口技術(shù)知識的理解;

(2)培養(yǎng)根據(jù)課題需要選學參考書籍、查閱手冊和文獻資料的能力;

(3)學會方案論證的比較方法,拓寬知識,初步掌握工程設計的基本方法;

(4)掌握常用儀器、儀表的正確使用方法,學會軟、硬件的設計和調(diào)試方法;

(5) 能按課程設計的要求編寫課程設計報告,能正確反映設計和實驗成果,能用計算機繪制電路圖、仿真圖和流程圖。

7.2 概述

二十一世紀是科技高速發(fā)展的信息時代,電子技術(shù)、微型單片機技術(shù)的應用更是空前廣泛,伴隨著科學技術(shù)和生產(chǎn)的不斷發(fā)展,需要對各種參數(shù)進行溫度測量。因此溫度一詞在生產(chǎn)生活之中出現(xiàn)的頻率日益增多,與之相對應的,溫度測量和控制也成為了生活生產(chǎn)中頻繁使用的詞語,同時它們在各行各業(yè)中也發(fā)揮著重要的作用。如在日趨發(fā)達的工業(yè)之中,利用測量與控制溫度來保證生產(chǎn)的正常運行。在農(nóng)業(yè)中,用于保證蔬菜大棚的恒溫保產(chǎn)等。

溫度是表征物體冷熱程度的物理量,溫度測量則是工農(nóng)業(yè)生產(chǎn)過程中一個很重要而普遍的參數(shù)。溫度的測量及控制對保證產(chǎn)品質(zhì)量、提高生產(chǎn)效率、節(jié)約能源、生產(chǎn)安全、促進國民經(jīng)濟的發(fā)展起到非常重要的作用。由于溫度測量的普遍性,溫度傳感器的數(shù)量在各種傳感器中居首位。而且隨著科學技術(shù)和生產(chǎn)的不斷發(fā)展,溫度傳感器的種類還是在不斷增加豐富來滿足生產(chǎn)生活中的需要。

單片機溫度測量則是對溫度進行有效的測量,并且能夠在工業(yè)生產(chǎn)中得到了廣泛的應用,尤其在電力工程、化工生產(chǎn)、機械制造、冶金工業(yè)、農(nóng)業(yè)等重要領(lǐng)域中擔負著重要的測量任務。在日常生活中,也可廣泛實用于地熱、空調(diào)器、電加熱器等各種家庭室溫測量及工業(yè)設備溫度測量場合。

7.3 國內(nèi)外研究現(xiàn)狀

國外對溫度控制技術(shù)研究較早,始于20世紀70年代。先是采用模擬式的組合儀表,采集現(xiàn)場信息并進行指示、記錄和控制。80年代末出現(xiàn)了分布式控制系統(tǒng)。目前正開發(fā)和研制計算機數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。90年代中期,智能溫控儀問世,它是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)的結(jié)晶。目前,國際上已開發(fā)出多種智能溫控產(chǎn)品系列,智能溫控器內(nèi)部包含溫度傳感器、AD轉(zhuǎn)換器、信號處理器和接口電路,有的產(chǎn)品還有多路選擇器、中央控制器、隨機存儲器和只讀存儲器等?,F(xiàn)在世界各國的溫度測控技術(shù)發(fā)展很快,一些國家在實現(xiàn)自動化的基礎(chǔ)上正向著完全自動化、無人化的方向發(fā)展。

我國對于溫度測控技術(shù)的研究較晚,始于20世紀80年代。我國工程技術(shù)人員在吸收發(fā)達國家溫度測控技術(shù)的基礎(chǔ)上,才掌握了溫度室內(nèi)微機控制技術(shù),該技術(shù)僅限于對溫度的單項環(huán)境因子的控制。我國溫度測控設施計算機應用,在總體上正從消化吸收、簡單應用階段向?qū)嵱没?、綜合性應用階段過渡和發(fā)展。在技術(shù)上,以單片機控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng),與發(fā)達國家相比,存在較大差距。我國溫度測量控制現(xiàn)狀還遠遠沒有達到工廠化的程度,生產(chǎn)實際中仍然有許多問題困擾著我們,存在著裝備配套能力差,產(chǎn)業(yè)化程度低,環(huán)境控制水平落后,軟硬件資源不能共享和可靠性差等缺點。

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

8 資料清單下載鏈接

見文章開頭視頻

基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計

本資料下載鏈接:

https://docs.qq.com/doc/DTk5xUXRZdHFqem5O

到了這里,關(guān)于基于51單片機的DS18B20溫度控制加熱降溫系統(tǒng)設計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 51單片機(十三)DS18B20溫度傳感器

    51單片機(十三)DS18B20溫度傳感器

    ?? 專欄簡介:本專欄記錄了從零學習單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學習51單片機,其是STM32等高級單片機的基礎(chǔ);這樣再學習STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學習入門單片機,且有一定C語言基礎(chǔ)的的童鞋

    2024年02月11日
    瀏覽(28)
  • 51單片機DS18B20測溫LCD1602顯示

    51單片機DS18B20測溫LCD1602顯示

    主函數(shù) 自定義頭文件 LCD1602函數(shù) DS18B20 共用函數(shù)

    2024年02月11日
    瀏覽(16)
  • MCU-51:單片機DS18B20溫度報警器

    MCU-51:單片機DS18B20溫度報警器

    DS18B20是一種常見的數(shù)字溫度傳感器,其控制命令和數(shù)據(jù)都是以數(shù)字信號的方式輸入輸出,相比較于模擬溫度傳感器,具有功能強大、硬件簡單、易擴展、抗干擾性強等特點 測溫范圍:-55°C 到 +125°C 通信接口:1-Wire(單總線) 其它特征:可形成總線結(jié)構(gòu)、內(nèi)置溫度報警功能、

    2024年02月02日
    瀏覽(22)
  • 【小實驗】C51單片機 DS18B20溫度顯示實驗

    【小實驗】C51單片機 DS18B20溫度顯示實驗

    ? ? ?利用單總線技術(shù)和數(shù)碼管動態(tài)顯示的原理,要求實現(xiàn)DS18B20溫度采集并顯示,能夠設定溫度值上限值27.5度,當超出上限值LED燈閃爍。? ? 實驗前可先用protues繪制出原理圖: ? 代碼僅供參考,希望大家能夠在此基礎(chǔ)上優(yōu)化代碼,而不是ctrl+c,ctrl+v。 謝謝!?。?? ? ? ?

    2024年02月12日
    瀏覽(23)
  • 51單片機DS18B20測溫數(shù)碼管顯示例程(Proteus仿真+程序)

    51單片機DS18B20測溫數(shù)碼管顯示例程(Proteus仿真+程序)

    ? ? ? 本設計由STM32單片機+DS18B20溫度傳感器+四段數(shù)碼管顯示模塊組成。 1、主控制器是51單片機 2、DS18B20溫度傳感器采集溫度,精度0.1攝氏度 3、數(shù)碼管顯示溫度,由三極管驅(qū)動。 4、測溫范圍-55~110攝氏度,誤差±0.1℃ 注意:Proteus7.8以上版本打開 19、51單片機DS18B20測溫數(shù)碼管

    2023年04月08日
    瀏覽(86)
  • 51單片機DS18B20溫度報警器proteus仿真設計_可調(diào)上下限

    51單片機DS18B20溫度報警器proteus仿真設計_可調(diào)上下限

    (仿真+源碼+原理圖+報告+講解視頻) 原理圖:Altium Designer 仿真版本:proteus 7.8 程序編譯器:keil 4/keil 5 編程語言:C語言 設計編號:S0008 本設計系統(tǒng)是18b20溫度報警系統(tǒng)數(shù)碼管顯示,可設置溫度上限高溫報警和下限低溫報警,報警溫度可精確到0.1度,并具有掉電保存功能,數(shù)

    2024年02月11日
    瀏覽(19)
  • 51單片機DS18B20溫度傳感器使用及數(shù)碼管溫度計、LCD1602溫度顯示代碼詳解

    51單片機DS18B20溫度傳感器使用及數(shù)碼管溫度計、LCD1602溫度顯示代碼詳解

    溫馨提示:讀者若要徹底理解并會靈活使用DS18B20溫度傳感器,請詳細閱讀中文手冊,并且對照代碼注釋充分分析代碼。請不要覺得中文手冊內(nèi)容繁多!如能靜心分析,定能深有體會,獲益匪淺! 主函數(shù)操作順序(執(zhí)行序列) 功能指令 最后希望我的分享對你有所幫助!敬請關(guān)

    2024年02月12日
    瀏覽(29)
  • DS18B20與單片機的通信、DS18B20采集溫度、MODBUS協(xié)議、練習框架

    DS18B20與單片機的通信、DS18B20采集溫度、MODBUS協(xié)議、練習框架

    單總線數(shù)字溫度計 異步的半雙工的串行通信 測量范圍從-55℃ ~ +125℃,增量值為0.5℃ 要用DS18B20采集溫度,就要實現(xiàn)與單片機之間的通信,因此有兩個問題 Bus master active low:主機執(zhí)行低電平 DS1820 active low:DS18B20執(zhí)行低電平 Both bus master and DS1820 active low:全都釋放低電平 Resis

    2024年04月16日
    瀏覽(26)
  • 單片機驅(qū)動多個ds18b20

    單片機驅(qū)動多個ds18b20

    目錄 1設計內(nèi)容 2ds18b20介紹 2.1傳感器引腳及原理圖 2.2寄存器配置 3程序?qū)崿F(xiàn) 3.1配置初始化 3.2配置寄存器 3.3ROM讀取 3.4溫度讀取 通過51單片機,讀取總線上掛載的多個ds18b20的溫度信息。 如下圖,成功讀取到3路溫度數(shù)據(jù)。 DS18B20傳感器的引腳及封裝圖如下: DS18B20一共有三個引腳

    2024年02月21日
    瀏覽(20)
  • 53、基于STC15W單片機的溫度計(DS18B20)(Proteus仿真+程序)

    53、基于STC15W單片機的溫度計(DS18B20)(Proteus仿真+程序)

    ? ? ? 本設計由STC15W4K32S4單片機+DS18B20溫度傳感器+1602液晶顯示模塊+串口模塊組成。 1、主控制器是STC15W4K32S4單片機 2、DS18B20溫度傳感器采集溫度,精度0.1攝氏度 3、1602液晶顯示溫度。 4、測溫范圍-55~110攝氏度,誤差±0.1℃ 5、溫度值發(fā)送至串口助手顯示。 Proteus軟件: Proteus

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包