实验报告:单总线温度采集

一、使用DS18B20采集环境温度

1.代码

#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int 
#define out P0
sbit smg1=out^4;
sbit smg2=out^5;
sbit DQ=P3^7;
void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);
void main(void)			       //主函数
{
	uchar i,temp;
	delay5(1000);
	while(1)
	{
	 	temp=retemp();	
	 	for(i=0;i<10;i++)			//连续扫描数码管10次
	 	{
	 		out=(temp/10)&0x0f;
	 		smg1=0;
	 		smg2=1;
	 		delay5(1000);			//延时5ms
	 		out=(temp%10)&0x0f;
	 		smg1=1;
	 		smg2=0;
	 		delay5(1000);			//延时5ms
	 	}
	}
}
void delay5(uchar n)			//函数功能:延时5µs	
{
	 do
	 {
	 	_nop_();
	 	_nop_();
	 	_nop_();
	 	n--;
	 }
	 while(n);
}
 
void init_ds18b20(void)		//函数功能:18B20初始化
{
	 uchar x=0; 
	 DQ =0;    
	 delay5(120); 
	 DQ =1;    
	 delay5(16);
	 delay5(80);
}
uchar readbyte(void) 			//函数功能:读取1字节数据
{
	uchar i=0;
	uchar date=0;
	for (i=8;i>0;i--)
	{
		  DQ =0;
		  delay5(1);
		  DQ =1;			//15µs内拉释放总线
		  date>>=1;
		  if(DQ)
		  date|=0x80;
		  delay5(11);
	 }
 	return(date);
}
void writebyte(uchar dat) 			//函数功能:写1字节
{
 uchar i=0;
 for(i=8;i>0;i--)
 {
	  DQ =0;
	  DQ =dat&0x01;				//写"1" 在15µs内拉低
	  delay5(12);	   			//写"0" 拉低60µs
	  DQ = 1;	   
	  dat>>=1;
	  delay5(5);
	  }
}
uchar retemp(void)			//函数功能:读取温度
{
	uchar a,b,tt;
	uint t;
	init_ds18b20();
	writebyte(0xCC); 
	writebyte(0x44);
	init_ds18b20();
	writebyte(0xCC); 
	writebyte(0xBE); 
	a=readbyte();
	b=readbyte();
	t=b;
	t<<=8;
	t=t|a;
	tt=t*0.0625;
	return(tt);
}

2.结果

二、总结

学习DS18B20单总线温度采集加深了我对51单片机理解。本博客仅为学习任务实验报告。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于CAN总线与Modbus总线的温度采集系统是一种用于获取温度数据的装置。CAN总线和Modbus总线是常见的工业通信协议,能够实现多个设备之间的通信和数据传输。 这个温度采集系统由以下组件构成:温度传感器、信号调理与转换模块、CAN总线或Modbus总线适配器和上位机软件。 首先,温度传感器负责将实时的温度数据转换为电信号形式。传感器可以是数字式或模拟式,根据需求选择合适的传感器。 信号调理与转换模块接收来自传感器的电信号,并将其处理为适合CAN总线或Modbus总线传输的数字信号。该模块通常包括模数转换器(ADC)和信号放大器。 接下来,CAN总线或Modbus总线适配器将数字信号转换为相应协议格式的数据包,并通过总线发送给其他设备。CAN总线适配器通过CAN通信协议实现设备之间的高速数据传输,而Modbus总线适配器则使用Modbus通信协议进行数据交互。 最后,上位机软件用于接收和处理从总线传输而来的温度数据。该软件可以进行数据分析、报表生成、图像显示等操作,提供实时监控和历史数据记录功能。 总的来说,基于CAN总线与Modbus总线的温度采集系统具有高效、可靠的数据传输能力,广泛应用于工业控制、环境监测等领域。通过使用这种系统,用户可以方便地实时获取和处理温度数据,实现对温度变化的监测和控制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值