51单片机DS18B20温度报警器proteus仿真设计_可调上下限(proteus仿真+源码+原理图+报告+讲解视频)

51单片机DS18B20温度报警器proteus仿真设计_可调上下限

(仿真+源码+原理图+报告+讲解视频)

原理图:Altium Designer

仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0008

主要功能

本设计系统是18b20温度报警系统数码管显示,可设置温度上限高温报警和下限低温报警,报警温度可精确到0.1度,并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在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. 第三次按下“确定键”进入正常温度显示。

讲解视频

包含仿真讲解和代码讲解

51单片机DS18B20温度报警器proteus仿真设计

仿真图

image-20220902232800201

硬件设计:

img

主控制模块

主控制最系统电路如图4所示。

img

图4 单片主控电路

显示模块电路

显示采用四位数码管显示,当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5

img

图5 数码管显示

数码管显示驱动电路

三极管8550来驱动4位数码管,不仅简单,而且价格便宜。

img

程序设计

img

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程见图9所示。

通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。

image-20220902233650289

程序代码

/****************主函数***************/
void main()
{
	beep = 0;		                //开机叫一声   
	delay_1ms(150);
	P0 = P1 = P2 = P3 = 0xff;
	temperature = read_temp();		//先读出温度的值	
	init_eeprom();  //开始初始化保存的数据
	delay_1ms(650);				
	temperature = read_temp();		         //先读出温度的值
	dis_smg[0] = smg_du[temperature % 10];	 //取温度的小数显示
	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();        //报警函数
			if(menu_1 == 0)
			{	
				smg_i = 3;
				dis_smg[0] = smg_du[temperature % 10];	 //取温度的小数显示
				dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取温度的个位显示
				dis_smg[2] = smg_du[temperature / 100 % 10] ;	   //取温度的十位显示
			}
		}
	}
}

DS18B20初始化程序流程图

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

image-20220902233709197


/*************读取温度的值 读出来的是小数***************/
uint read_temp()
{
	uint value;
	uchar low;			   //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序
	init_18b20();		   //初始化18b20
	write_18b20(0xcc);	   //跳过64位ROM
	write_18b20(0x44);	   //启动一次温度转换命令
	delay_uint(50);		   //500us

	init_18b20();		   //初始化18b20
	
	write_18b20(0xcc);	   //跳过64位ROM
	write_18b20(0xbe);	   //发出读取暂存器命令
	
	EA = 0;
	low = read_18b20();	   //读温度低字节
	value = read_18b20();  //读温度高字节
	EA = 1;
	value <<= 8;		   //把温度的高位左移8位
	value |= low;		   //把读出的温度低位放到value的低八位中
	value *= 0.625;	       //转换到温度值 小数
	return value;		   //返回读出的温度 带小数
}

设计报告

摘要

随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的温度报警系统,详细描述了利用温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度控制,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度控制系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度的控制,有广泛的应用前景。

**关键词:**单片机;温度控制;STC89C52;DS18B20;

image-20220902232904330

资料清单&&下载链接

img

资料下载链接(可点击)

  • 7
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Proteus 8086是一款用于模拟和仿真电子电路和嵌入式系统的软件。温度报警是其中一个常见的应用场景之一。 Proteus 8086温度报警微机的原理是通过使用温度传感器获取环境温度,并通过微控制器(如8051或Arduino)来对温度值进行监测和判断。当温度超过预设的阈值时,微控制器会触发报警器或发出警报信号。 具体实现步骤如下: 1. 连接温度传感器:将温度传感器与微控制器进行连接,通过引脚或通信接口来读取温度数值。常见的温度传感器有热敏电阻(如NTC)、热敏电偶(如LM35)等。 2. 编程设置阈值:在微控制器上编写程序,设定温度的阈值。当温度值超过或低于设定值时,触发相应的报警动作。 3. 温度监测和判断:在程序中实时读取温度传感器的数值,并与设定的阈值进行比较。如果温度超过设定的阈值,就会执行相应的报警操作。 4. 报警器和警报信号:根据需求,可以选择不同的报警器来进行警示,如蜂鸣器或LED灯。当温度超过设定的阈值时,报警器会发出声音或灯光,并提醒用户或操作者注意。 总结来说,Proteus 8086温度报警微机通过外部温度传感器和内部微控制器的组合,能够实时监测环境温度,并在温度超过设定的阈值时,触发相应的报警动作,从而实现对温度的准确监测和警示。这项技术在实际生活中具有重要的应用,比如恒温控制、温室监测等领域。 ### 回答2: Proteus 8086温度报警微机是一种基于8086微处理器的温度监测与报警系统。该系统的原理是利用温度传感器将实时的温度数据转换为模拟信号输入到微处理器内部的模拟-数字转换器(ADC)中进行数字化处理。 首先,温度传感器感知温度信号,并将其转换为与温度成比例的模拟电压信号。然后,模拟电压信号经过ADC转换为数字信号,由8086微处理器进行采集和处理。 8086微处理器通过编程实现对温度数据的监测和报警功能。它根据预设的温度阈值与实时温度数据进行比较,一旦温度超过阈值,系统将触发报警机制。报警机制可以通过触发蜂鸣器发声或者通过显示屏上的警告信息来警示用户。同时,系统还可以通过串口或以太网等方式发送警告信息给远程设备或者服务器。 此外,Proteus 8086温度报警微机还具备其他功能,如数据记录和像显示。8086微处理器可以将温度数据存储在存储器中,以便后续分析和监测。而像显示功能可以将温度信息以可视化的方式呈现在液晶显示屏上,用户可以直观地观察温度变化。 总结来说,Proteus 8086温度报警微机利用温度传感器将实时温度转换为模拟电压信号,并通过ADC转换为数字信号,由8086微处理器进行温度监测和报警。该系统可实时监测温度,并在温度超过设定阈值时触发警报机制。此外,还具备数据记录和像显示等功能,使用户可以更直观地了解温度变化情况。 ### 回答3: Proteus 8086温度报警微机原理是指利用Proteus 8086微控制器来监测和报警温度的原理。 Proteus 8086是一种微控制器,具有强大的计算和控制能力。温度监测和报警是现代生活中非常常见的需求,因此在Proteus 8086中加入了温度传感器和报警功能。其工作原理如下: 首先,Proteus 8086系统通过连接温度传感器来获取环境温度。温度传感器通常是电阻型传感器,其输出电压与环境温度成正比。Proteus 8086通过ADC(模拟到数字转换器)将这个电压信号转换为数字信号,方便处理和计算。 接下来,Proteus 8086在内部程序中设置了一个温度阈值。一旦检测到的温度超过了设定的阈值,微控制器将触发报警功能。 当温度超过阈值时,Proteus 8086将通过输出引脚控制声音模块或报警器,发出警报信号,提醒用户注意温度异常。此外,也可以通过LCD显示模块输出温度信息和报警状态,方便用户实时了解系统工作状态。 同时,Proteus 8086还可以通过串口或网络接口,将温度数据和报警信息发送到远程监控终端或服务器,实现远程监控和管理。 总之,Proteus 8086温度报警微机原理是通过温度传感器获取环境温度,并通过内部程序和报警功能,在温度超过阈值时触发报警信号。通过声音、显示模块和远程通信接口,实现温度监测和报警功能。这种微机原理在很多领域都有广泛的应用,如工业自动化、家庭温控等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BT-BOX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值