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

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

【開發(fā)板】基于51單片機(jī)的溫度報(bào)警器LCD1602_可調(diào)上下限( proteus仿真+程序+設(shè)計(jì)報(bào)告

11/08 08:44
2410
服務(wù)支持:
技術(shù)交流群

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

虛擬商品不可退

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

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 1.主要功能:
    • 普中開發(fā)板實(shí)物演示圖:
    • 2.仿真
    • 3. 程序代碼
    • 4. 設(shè)計(jì)報(bào)告
    • 5. 設(shè)計(jì)資料內(nèi)容清單
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

仿真圖proteus8.16(有低版本)

程序編譯器:keil 4/keil 5

編程語言:C語言

設(shè)計(jì)編號(hào):P11

1.主要功能:

基于51單片機(jī)AT89C51/52(與AT89S51/52、AT89C51/52、STC89C51/52等51內(nèi)核單片機(jī)通用)

基于51單片機(jī)的溫度報(bào)警系統(tǒng)

1、實(shí)時(shí)檢測(cè)DS18B20溫度測(cè)量及顯示,超出溫度范圍蜂鳴器報(bào)警,溫度報(bào)警值可通過按鍵設(shè)定功能;

2、溫度測(cè)量范圍-55到128攝氏度;

3、對(duì)上下限報(bào)警值進(jìn)行設(shè)定,通過按鍵設(shè)置,設(shè)置范圍是0-128;

4、溫度高于上限或低于下限LCD1602顯示屏有相應(yīng)提示,蜂鳴器響;

5、普中開發(fā)板上可以實(shí)現(xiàn)效果,仿真和開發(fā)板都可以。

(目前僅完全適配普中開發(fā)板A234,其他普中開發(fā)板型號(hào)可能需要做代碼修改或接線)

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

普中開發(fā)板實(shí)物演示圖:

仿真講解+實(shí)物演示+代碼講解
在這里插入圖片描述

img

2.仿真

開始仿真

打開仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開始仿真。

img

共4個(gè)按鍵:上限閾值加、上限閾值減、下限閾值加、下限閾值減。按下對(duì)應(yīng)按鍵閾值加減并更新閾值在LCD1602液晶屏上。溫度高于高溫報(bào)警值,蜂鳴器響,LCD1602顯示High。

img

溫度低于低溫報(bào)警值,蜂鳴器響,LCD1602顯示LOW。

3. 程序代碼

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

完整代碼見文章下載鏈接壓縮包。有償
#include "reg51.h"
#include"Ds18b20.h"
#include "lcd1602.h"
#define uchar unsigned char	//重定義
#define uint unsigned int
sbit k1=P3^0;//按鈕
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit beep=P2^5;//蜂鳴器

uchar time=0,num1=0;//定時(shí)
int wendu=0;//溫度
uchar Ds_0_flag=0;//0度以上標(biāo)志位
float tp; 

uint down=30,up=80;//閥值
uchar disp1[]="wendu:000 C";
uchar disp2[]="L:000 C  H:000 C";
uchar flag=0,beep_flag=0;

void delay(uint i)//延時(shí)
{
	while(i--)
	{
		delay_uint(50000);
	}
}
void main()
{
	disp1[9]=0xdf;
	disp2[5]=0xdf;
	disp2[14]=0xdf;
	init_1602();//初始化液晶
	TMOD|=0X11;//選擇為定時(shí)器0模式,工作方式1,僅用TR0打開啟動(dòng)。
	TH1=(65536-50000)/256;	//給定時(shí)器賦初值,定時(shí)50ms
	TL1=(65536-50000)%256;	
	TH0=(65536-5000)/256;	//給定時(shí)器賦初值,定時(shí)5ms
	TL0=(65536-5000)%256;	
	ET1=1;//打開定時(shí)器1中斷允許
	ET0=1;//打開定時(shí)器0中斷允許
	EA=1;//打開總中斷
	TR1=1;//打開定時(shí)器1
	TR0=1;//打開定時(shí)器0
	delay(4);
	beep_flag = 0;
	while(1)
	{
		//按鍵檢測(cè)
		if(!k1)
		{
			if(down<up-5) //下限閾值要比上限低5℃
				down++;	//下限閾值+1
			while(!k1);
		}
		if(!k2)
		{
			if(down>0)
				down--;	 	//下限閾值-1
			while(!k2);
		}
		if(!k3)
		{
			if(up<200)
				up++;  //上限閾值+1
			while(!k3);
		}
		if(!k4)
		{
			if(up>down)
				up--;	 //上限閾值-1
			while(!k4);
		}
	}
}

void Timer0() interrupt 1			//定時(shí)器0的中斷函數(shù)
 {
 	TH0=(65536-5000)/256;			//重裝初值5ms	
	TL0=(65536-5000)%256;
	num1++;
	if(num1==1&&beep_flag)					//中斷1次為5ms
	{
		num1=0;
	   beep=~beep;				//蜂鳴器報(bào)警
	}
}
void Timer1() interrupt 3//定時(shí)器中斷
{
	TH1=(65536-50000)/256;	//給定時(shí)器賦初值,定時(shí)50ms
	TL1=(65536-50000)%256;	
	if(time<10)
		time++;
	else
	{
		time=0;
		wendu=Ds18b20ReadTemp();//測(cè)量溫度
		if(wendu<0){
			Ds_0_flag=0;
			wendu=wendu-1;
			wendu=~wendu;
			tp=wendu;
			wendu=tp*0.0625+0.5;	
			disp1[6]='-';//計(jì)算溫度
	  		disp1[7]=wendu%100/10+0x30;
			disp1[8]=wendu%10+0x30;
		}else{
			Ds_0_flag=1;
			tp=wendu;
			wendu=tp*0.0625+0.5;	
			//溫度在寄存器中12位,分辨率:0.0625
			//加0.5是四舍五入
			disp1[6]=wendu/100+0x30;//計(jì)算溫度
			disp1[7]=wendu%100/10+0x30;
			disp1[8]=wendu%10+0x30;
		}


		disp2[2]=down/100+0x30;//計(jì)算低閥值
		disp2[3]=down%100/10+0x30;
		disp2[4]=down%10+0x30;
		disp2[11]=up/100+0x30;//計(jì)算高閥值
		disp2[12]=up%100/10+0x30;
		disp2[13]=up%10+0x30;
		write_string(1,0,disp1);//顯示
		write_string(2,0,disp2);
	}
	if(wendu<down||Ds_0_flag==0){
		write_string(1,12,"Low ");
		beep_flag = 1;//低溫報(bào)警
	}else if(wendu>up){
		write_string(1,12,"High");
		beep_flag = 1;//高溫報(bào)警
	}else if((wendu>down)&&(wendu<up)){
		write_string(1,12,"    ");
		beep_flag=0;//取消溫報(bào)警
	}
		
}


4. 設(shè)計(jì)報(bào)告

7080字設(shè)計(jì)報(bào)告,內(nèi)容包括目錄,硬件設(shè)計(jì)軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等

img
本次課程設(shè)計(jì)是基于51單片機(jī)的溫度監(jiān)控報(bào)警系統(tǒng)Proteus仿真設(shè)計(jì)。在設(shè)計(jì)中,我們采用了STC89C51/52單片機(jī)作為核心控制器,通過溫度傳感器對(duì)環(huán)境溫度進(jìn)行實(shí)時(shí)采集。采集到的溫度數(shù)據(jù)經(jīng)過單片機(jī)處理后,通過數(shù)碼管顯示模塊進(jìn)行實(shí)時(shí)顯示。同時(shí),我們還設(shè)置了按鍵輸入模塊,可以通過按鍵進(jìn)行溫度閾值的設(shè)定。一旦環(huán)境溫度超過設(shè)定的閾值,系統(tǒng)就會(huì)通過蜂鳴器報(bào)警模塊發(fā)出報(bào)警聲,以提醒用戶注意。

51單片機(jī)控制LCD1602顯示。讀取按鍵控制電平和DS18B20的數(shù)據(jù),處理數(shù)據(jù)并做顯示處理和按鍵操作等。

5. 設(shè)計(jì)資料內(nèi)容清單

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

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

1、仿真圖

2、程序源碼注釋

3、功能要求

4、開題報(bào)告

5、設(shè)計(jì)報(bào)告

6、軟硬件流程框圖

7、燒錄工具

8、講解視頻

Altium Designer 安裝破解

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡(jiǎn)易使用教程

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

普中-2&普中-3&普中-4開發(fā)板原理圖.pdf

相關(guān)數(shù)據(jù)手冊(cè)

答辯技巧

設(shè)計(jì)報(bào)告常用描述

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

網(wǎng)盤下載鏈接:

P系列單片機(jī)設(shè)計(jì)下載鏈接(復(fù)制到瀏覽器打開)

https://docs.qq.com/doc/DS2pPenNRaHB6SlR1
  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc

相關(guān)推薦

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