加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的多路温度采集控制系统的设计

07/11 09:00
3005
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

本设计是基于51单片机的多路温度采集控制系统的设计
(仿真+源码+原理图+视频讲解+硬件清单)
仿真:proteus8.9
程序编译器:keil 4
编程语言:C语言
编号C0008
下载地址

C0008 网盘链接

功能说明:
本设计是基于单片机的多路温度采集控制系统的设计,主要实现以下功能:
1.可实现通过三个DS18B20采集三个不同位置的温度值,并通过RS485传送给主机;
2.可实现通过继电器控制加热降温模块,进行异常温度处理;
3.可实现通过按键调整初始设定的最大最小温度阈值;
4.可实现通过主机的LCD1602显示温度值、继电器状态、上下限温度阈值等信息

仿真图(提供源文件):
在这里插入图片描述

原理图(提供源文件):
在这里插入图片描述
在这里插入图片描述

源程序(提供源文件):

在这里插入图片描述
在这里插入图片描述

从机main函数

/***
**函数名:main()
**功能:  主函数
****/
void main()
{
	int ans;
	int ans1; 	//读取的温度寄存器
	int ans2; 	//读取的温度寄存器
	int ans3; 	//读取的温度寄存器
	uchar flag;   //正负位标志
	UART_init();

	while(1)
	{  	
		key_scan();

		/************* 正常温度*********************/
		if(Uart_flag == 0)
		{
			DS18B20_start_change1();	 //开始读温度
			delay(100);
			ans1=DS18B20_read_date1();
			DS18B20_start_change2();	 //开始读温度
			delay(100);
			ans2=DS18B20_read_date2();					
			DS18B20_start_change3();
			delay(100);
			ans3=DS18B20_read_date3();
			delay(100);
			ans=(ans1+ans2+ans3)/3;

			if(ans < TL)
			{
				P0=0x3f;
				beep=0;
				RELAY1=0;
				RELAY2=1;

			}
			else if(ans > TH)
			{
				P0=0xcf;
				beep=0;
				RELAY1=1;
				RELAY2=0;

			}
			else
			{
				P0=0xff;
				beep=1;
				RELAY1=1;
				RELAY2=1;
			}

			UART_sent('1');
			_nop_();
			_nop_();
			UART_sent( ( uchar )ans);
		}

		/**********调节上限温度*****************/
		if(Uart_flag == 1)
		{
			UART_sent('2');		//调节上限温度标志
		  _nop_();
			_nop_();
		  UART_sent(TH);		//发送上限温度标志
		}
		/**********调节下限温度**************/
		if(Uart_flag == 2)
		{
			UART_sent('3');		//调节下限温度标志
		  _nop_();
			_nop_();
		  UART_sent(TL);		//发送下限温度标志
		}
	}
}

主机mian函数

/****
*******	主函数 
*****/
void main()
{
	Temp_H = 30;
	Temp_L = 10;

	uart_init();
	lcd_init();

	lcd_write_str(0x80, tab1);
	lcd_write_str(0x80+0x40, tab2);
	lcd_write_str(0x80+0x0d,"T_H:30C");
	lcd_write_str(0x80+0x4d,"T_L:10C");

	while(1)
	{
		if(Temp > Temp_H)
		{
			P1=0xf3;
			lcd_write_str(0x80+0x46, "Cool  ");
		}
		else if(Temp < Temp_L)
		{
			P1=0xfc;
			lcd_write_str(0x80+0x46, "Heat  ");
		}
		else
		{
			P1=0xff;
			lcd_write_str(0x80+0x40, tab2);
		}

		if(flag == 0)
		{
			lcd_wendu(0x85,Temp);
		}

		if(flag == 1)			  						//显示限温最高值
		{
			lcd_wendu(0x80 + 0x11,Temp_H);	
		}

		if(flag == 2)									//显示限温最低值
		{
			lcd_wendu(0x80 + 0x51,Temp_L);	
		}	
	}
}

软件设计介绍:
在这里插入图片描述

资料清单如下:
在这里插入图片描述

  • 设计资料获取联系方式.doc

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
STM32F205RCT6 1 STMicroelectronics High-performance Arm Cortex-M3 MCU with 256 Kbytes of Flash memory, 120 MHz CPU, ART Accelerator

ECAD模型

下载ECAD模型
$27.28 查看
AT32UC3A0512-ALUR 1 Atmel Corporation RISC Microcontroller, 32-Bit, FLASH, AVR RISC CPU, 66MHz, CMOS, PQFP144, MS-026, LQFP-144
$14.01 查看
AT89C51CC01UA-RLTUM 1 Atmel Corporation Microcontroller, 8-Bit, FLASH, 8051 CPU, 40MHz, CMOS, PQFP44, GREEN, VQFP-44

ECAD模型

下载ECAD模型
$7.76 查看

相关推荐

电子产业图谱