• 方案介紹
    • 1.主要功能:
    • 2.仿真
    • 3. 程序代碼
    • 4. 原理圖
    • 5. 設(shè)計報告
    • 6. 設(shè)計資料內(nèi)容清單 &&下載鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

51單片機熱水器溫度控制系統(tǒng)仿真設(shè)計( proteus仿真+程序+原理圖+報告+講解視頻)

2024/09/14
3514
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

共1個文件

仿真圖proteus7.8及以上

程序編譯器:keil 4/keil 5

編程語言:C語言

設(shè)計編號:S0045

1.主要功能:

本設(shè)計旨在實現(xiàn)一個基于51單片機的簡易熱水壺?zé)崴骺刂品抡?a class="article-link" target="_blank" href="/tag/proteus%E4%BB%BF%E7%9C%9F/">proteus仿真設(shè)計,具備以下功能:

1、使用溫度傳感器DS18B20監(jiān)測水溫 ,用lcd1602顯示水溫,水溫報警閾值,設(shè)置的加熱溫度值;

2、可以通過按鍵調(diào)整加熱溫度和過溫報警閥值;

3、按鍵控制加熱過程啟停,溫度超過設(shè)定值停止加熱;

4、超過報警值啟動蜂鳴器報警。

需注意仿真中51單片機芯片是通用的,AT89C51,AT89C52都是51單片機的具體型號,內(nèi)核是兼容的。原理圖一樣的情況下。無論stc還是at都一樣,引腳功能都是一樣的,程序也是一樣的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機芯片。

以下為本設(shè)計資料展示圖:

2.仿真

開始仿真

打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。開始仿真后LCD1602顯示當(dāng)前溫度值,加熱狀態(tài),設(shè)置的目標(biāo)溫度值,溫度報警值。

img

仿真中通過按鍵調(diào)整DS18B20溫濕度模塊的值改變顯示數(shù)值。

img上下箭頭用于改變溫度的值。下箭頭調(diào)低數(shù)值,上箭頭調(diào)高數(shù)值。img改圖標(biāo)顯示的是溫度的值

開始仿真后,默認報警溫度是100℃,當(dāng)溫度超過后蜂鳴器報警。

img

開始仿真后,點擊按鍵開始加熱,LCD1602顯示start,加熱引腳輸出PWM信號,當(dāng)前溫度和設(shè)置的溫度相差越大,輸出占空比越大。

img

調(diào)整溫度超過設(shè)置溫度后,系統(tǒng)自動停止加熱,LCD1602顯示stop。

img

3. 程序代碼

使用keil4或者keil5編譯,代碼有注釋,可以結(jié)合報告理解代碼含義。

img

main函數(shù)代碼:

#include "reg51.h"
#include"Ds18b20.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^7;//蜂鳴器
sbit out=P2^6;//加熱器
sbit k1=P1^0;//按鈕
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;

uchar time=0,mode=0;//系統(tǒng)變量
uchar wendu=0;//溫度
uchar lim1=90,lim2=100;//閥值
uchar disp1[]="Temp:000C";
uchar disp2[]="Set:000 Lim:000";
uchar start=0;

void main()//主函數(shù)
{
	uchar i=0;
	init_1602();	//初始化LCD
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打開定時器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時器
	while(1)
	{
		if(!k1)//啟動
			start=1;
		if(!k2)//停止
			start=0;
		if(!k3)//設(shè)置加
		{
			if(lim1<130)
				lim1++;
			while(!k3);
		}
		if(!k4)//設(shè)置減
		{
			if(lim1>0)
				lim1--;
			while(!k4);
		} 
		if(!k5)//閥值加
		{
			if(lim2<130)
				lim2++;
			while(!k5);
		}
		if(!k6)//閥值減
		{
			if(lim2>0)
				lim2--;
			while(!k6);
		}
		//輸出占空比,加熱控制
		if(start)
		{
			if(wendu<lim1)
			{
			if(i<99)
				i++;
			else
				i=0;
			if(i<(lim1-wendu)*2)//設(shè)置溫度和當(dāng)前溫度相差50以內(nèi),溫差越小,PWM占空比越小
				out=0;
			else
				out=1; 
			}
			else
				out=1;
		}
		else
			out=1;
		
	}
}
//定時器中斷
void Timer0() interrupt 1
{
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		Ds18b20ReadTemp();//讀取溫度
		wendu=ds18b20_temp;
		//顯示
		disp1[5]=wendu/100+0x30;
		disp1[6]=wendu%100/10+0x30;
		disp1[7]=wendu%10+0x30;
		disp2[4]=lim1/100+0x30;
		disp2[5]=lim1%100/10+0x30;
		disp2[6]=lim1%10+0x30;
		disp2[12]=lim2/100+0x30;
		disp2[13]=lim2%100/10+0x30;
		disp2[14]=lim2%10+0x30;
		write_string(1,0,disp1);
		write_string(2,0,disp2);
		
		//報警控制
		if(wendu>lim2)
		{
			start=0;
			beep=0;
		}
		else
			beep=1;
		if(start)
			write_string(1,10,"start");
		else
			write_string(1,10,"stop ");
	}
	TH0=0X3C;
	TL0=0XB0;
}

4. 原理圖

原理圖使用AD繪制,可供實物參考,仿真不同于實物,經(jīng)驗不足不要輕易搞實物。

img

Proteus仿真和實物作品的區(qū)別:

1.運行環(huán)境:Proteus仿真是在計算機上運行的,而實物則是在硬件電路板上運行。

2.調(diào)試方式:在Proteus仿真中,可以方便地進行單步調(diào)試和觀察變量值的變化,而在實物中則需要通過調(diào)試器或者串口輸出等方式進行調(diào)試。

電路連接方式:在Proteus仿真中,可以通過軟件設(shè)置進行電路連接的修改,而在實物中則需要通過硬件電路板和連接線進行修改。

3.運行速度:Proteus仿真通常比實物運行速度快,因為仿真是基于計算機運行的,而實物則需要考慮電路板上的物理限制和器件的響應(yīng)時間等因素。

4.功能實現(xiàn):在Proteus仿真中,可以通過軟件設(shè)置實現(xiàn)不同的功能,而在實物中則需要根據(jù)電路設(shè)計和器件的性能進行實現(xiàn)。

5. 設(shè)計報告

6605字設(shè)計報告,內(nèi)容包含設(shè)計框圖,引言,硬件設(shè)計介紹,軟件設(shè)計介紹,仿真調(diào)試,總結(jié)和參考文獻。

img

6. 設(shè)計資料內(nèi)容清單 &&下載鏈接

資料設(shè)計資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計報告、軟硬件設(shè)計框圖等。

0、常見使用問題及解決方法–必讀!?。?!

1、仿真圖

2、程序源碼

3、開題報告

4、原理圖

5、功能要求

6、元器件清單

7、設(shè)計報告

8、軟硬件流程框圖

9、講解視頻

Altium Designer 軟件資料

KEIL軟件資料

Proteus軟件資料

單片機學(xué)習(xí)資料

答辯技巧

設(shè)計報告常用描述

鼠標(biāo)雙擊打開查找更多51 STM32單片機課程畢業(yè)設(shè)計.url

img

網(wǎng)盤下載鏈接

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

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應(yīng)!