多点温度检测系统数据传输??

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-07
高分求单片机多点温度检测系统的程序设计

只有一个例子,鉴于参考而已,希望对你帮助
//安装目录下的EXE文件打开后可在电脑上显示当前温度值
#include
#include
unsigned char code displaybit[]={0xf7,0xfb,0xfd,0xfe};
unsigned char code displaycode[]={ 0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/};
unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,
25,28,31,34,38,41,44,48,
50,53,56,59,63,66,69,72,
75,78,81,84,88,91,94,97};
unsigned char displaycount;
unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};
unsigned char timecount;
unsigned char readdata[8];

sbit DQ=P1^0;
bit sflag;

bit resetpulse(void)
{
unsigned char i;

DQ=0;
for(i=255;i>0;i--);
DQ=1;
for(i=60;i>0;i--);
return(DQ);
for(i=200;i>0;i--);
}

void writecommandtods18b20(unsigned char command)
{
unsigned char i;
unsigned char j;

for(i=0;i<8;i++)
{
if((command & 0x01)==0)
{
DQ=0;
for(j=35;j>0;j--);
DQ=1;
}
else
{
DQ=0;
for(j=2;j>0;j--);
DQ=1;
for(j=33;j>0;j--);
}
command=_cror_(command,1);
}
}

unsigned char readdatafromds18b20(void)
{
unsigned char i;
unsigned char j;
unsigned char temp;

temp=0;
for(i=0;i<8;i++)
{
temp=_cror_(temp,1);
DQ=0;
_nop_();
_nop_();
DQ=1;
for(j=10;j>0;j--);
if(DQ==1)
{
temp=temp | 0x80;
}
else
{
temp=temp | 0x00;
}
for(j=200;j>0;j--);
}
return(temp);
}

void main(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
ET0=1;
EA=1;

while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
TR0=1;
while(1)
{
;
}
}

void t0(void) interrupt 1 using 0
{
unsigned char x;
unsigned int result;

TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
if(displaycount==2)
{
P0=displaycode[displaybuf[displaycount]] | 0x80;
}
else
{
P0=displaycode[displaybuf[displaycount]];
}
P2=displaybit[displaycount];
displaycount++;
if(displaycount==8)
{
displaycount=0;
}

timecount++;
if(timecount==150)
{
timecount=0;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0xbe);
readdata[0]=readdatafromds18b20();
readdata[1]=readdatafromds18b20();
for(x=0;x<8;x++)
{
displaybuf[x]=16;
}
sflag=0;
if((readdata[1] & 0xf8)!=0x00)
{
sflag=1;
readdata[1]=~readdata[1];
readdata[0]=~readdata[0];
result=readdata[0]+1;
readdata[0]=result;
if(result>255)
{
readdata[1]++;
}
}
readdata[1]=readdata[1]<<4;
readdata[1]=readdata[1] & 0x70;
x=readdata[0];
x=x>>4;
x=x & 0x0f;
readdata[1]=readdata[1] | x;
x=2;
result=readdata[1];
while(result/10)
{
displaybuf[x]=result%10;
result=result/10;
x++;
}
displaybuf[x]=result;
if(sflag==1)
{
displaybuf[x+1]=17;
}
x=readdata[0] & 0x0f;
x=x<<1;
displaybuf[0]=(dotcode[x])%10;
displaybuf[1]=(dotcode[x])/10;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
}
}
这是汇编
unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00,0x40};
unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,
25,28,31,34,38,41,44,48,
50,53,56,59,63,66,69,72,
75,78,81,84,88,91,94,97};
unsigned char displaycount;
unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};
unsigned char timecount;
unsigned char readdata[8];

sbit DQ=P3^7;
bit sflag;

bit resetpulse(void)
{
unsigned char i;

DQ=0;
for(i=255;i>0;i--);
DQ=1;
for(i=60;i>0;i--);
return(DQ);
for(i=200;i>0;i--);
}

void writecommandtods18b20(unsigned char command)
{
unsigned char i;
unsigned char j;

for(i=0;i<8;i++)
{
if((command & 0x01)==0)
{
DQ=0;
for(j=35;j>0;j--);
DQ=1;
}
else
{
DQ=0;
for(j=2;j>0;j--);
DQ=1;
for(j=33;j>0;j--);
}
command=_cror_(command,1);
}
}

unsigned char readdatafromds18b20(void)
{
unsigned char i;
unsigned char j;
unsigned char temp;

temp=0;
for(i=0;i<8;i++)
{
temp=_cror_(temp,1);
DQ=0;
_nop_();
_nop_();
DQ=1;
for(j=10;j>0;j--);
if(DQ==1)
{
temp=temp | 0x80;
}
else
{
temp=temp | 0x00;
}
for(j=200;j>0;j--);
}
return(temp);
}

void main(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
ET0=1;
EA=1;

while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
TR0=1;
while(1)
{
;
}
}

void t0(void) interrupt 1 using 0
{
unsigned char x;
unsigned int result;

TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
if(displaycount==2)
{
P0=displaycode[displaybuf[displaycount]] | 0x80;
}
else
{
P0=displaycode[displaybuf[displaycount]];
}
P2=displaybit[displaycount];
displaycount++;
if(displaycount==8)
{
displaycount=0;
}

timecount++;
if(timecount==150)
{
timecount=0;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0xbe);
readdata[0]=readdatafromds18b20();
readdata[1]=readdatafromds18b20();
for(x=0;x<8;x++)
{
displaybuf[x]=16;
}
sflag=0;
if((readdata[1] & 0xf8)!=0x00)
{
sflag=1;
readdata[1]=~readdata[1];
readdata[0]=~readdata[0];
result=readdata[0]+1;
readdata[0]=result;
if(result>255)
{
readdata[1]++;
}
}
readdata[1]=readdata[1]<<4;
readdata[1]=readdata[1] & 0x70;
x=readdata[0];
x=x>>4;
x=x & 0x0f;
readdata[1]=readdata[1] | x;
x=2;
result=readdata[1];
while(result/10)
{
displaybuf[x]=result%10;
result=result/10;
x++;
}
displaybuf[x]=result;
if(sflag==1)
{
displaybuf[x+1]=17;
}
x=readdata[0] & 0x0f;
x=x<<1;
displaybuf[0]=(dotcode[x])%10;
displaybuf[1]=(dotcode[x])/10;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
}
}

单片机+温度传感器, 最好在加上无线通信模块。 可供选择的是ZIGBEE或者RFID等。

该系统现场仪表JCJ500B将煤窑排风口风机各重要部件的温度参数及风机启停情况信息采集并上传到现场值班室计算机中,显示每点温度实时测量值,实时曲线,历史曲线,及保存历史纪录,自动生成数据报表供存储打印,用户也可随时导出以前所有历史温度数据以供参考。当采集温度超过限值后会发出报警。计算机可自由设定每点温度报警值。

各煤窑排风口现场值班室计算机通过GPRS-DTU无线传输方式或光纤传输方式,传送各现场数据至中心监测机房计算机。中心监测机房计算机可显示每点温度实时测量值,实时曲线,历史曲线,及保存历史纪录,自动生成数据报表供存储打印,用户也可随时导出以前所有历史温度数据以供参考。当采集温度超过限值后会发出报警。计算机可自由设定每点温度报警值。同时可显示到LCD大屏液晶电视墙上。

系统组成介绍:

☆ JCJ100Z温度传感器采用不锈钢金属外壳及防爆接线盒封装,内部填充绝缘导热材料密封而成。产品具有反应灵敏、种类丰富、防水抗震等特点,可广泛用于环境温度、气体温度、液体温度、物体表面温度、冷冻冷藏温度等各种类型的温度测量。

技术参数

铂热电阻:Pt100、Pt500、Pt1000 最大测温范围:(-50~100)℃

精度等级:A级±(0.15+0.002|t|)℃ B级±(0.30+0.005|t|)℃

☆ JCJ500B智能温度巡检仪采用先进的软硬件设计,一般可巡检1~16路温度测量信号,

接收电压或电流或其它信号,仪表通过内部参数设定来实现输入信号、测量范围、报

警值、报警回差、误差校准、通讯、打印等各种功能设定。仪表可实现对多路温度、

湿度、压力、液位、流量等各种物理量的巡回检测。

JCJ500B智能温度巡检仪可以作为数据采集设备使用,最大可实现100台仪表联机工作,通过配套的软件或用户根据通讯协议开发功能丰富的数据监测系统。

基本参数:

工作电源:90~265VAC(开关电源)或24VDC±10%

输入信号:标准电流 0~10mA、4~20mA、0~20Ma

标准电压 0~5V、1~5V、0~10V

热 电 偶 K、S、B、T、E、J、N 、WRE

热 电 阻 Pt100、Pt1000、Cu50、Cu100

测量精度:0.2%F.S±1个字

显示范围:-1999~9999

显示方式:双排4位LED显示

上排显示测量值(0.8英寸),下排显示通道号(0.56英寸)

发光二极管显示每个通道报警状态(灯亮表示处于报警状态)

温度补偿:0~50℃冷端温度自动补偿

仪表量程超限或输入信号断路仪表报警提示

通讯波特率:300~9600bps内部自由设定

通讯地址:0~99

GPRS-DTU无线数传模块:

GPRS是通用分组无线业务(General Packet Radio Service)的英文简称,是在现有GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。GPRS采用与GSM同样的无线调制标准、同样的频带、同样的突发结构、同样的跳频规则以及同样的TDMA帧结构,这种新的分组数据信道与当前的电路交换的话音业务信道极其相似。因此,现有的基站子系统(BSS)从一开始就可提供全面的GPRS覆盖。GPRS允许用户在端到端分组转移模式下发送和接收数据,而不需要利用电路交换模式的网络资源。从而提供了一种高效、低成本的无线分组数据业务。特别适用于间断的、突发性的和频繁的、少量的数据传输,也适用于偶尔的大数据量传输。

GPRS理论带宽可达171.2Kbit/s,实际应用带宽大约在40~100Kbit/s,在此信道上提供TCP/IP连接,可以用于INTERNET连接、数据传输等应用。

GPRS是一种新的移动数据通信业务,在移动用户和数据网络之间提供一种连接,给移动用户提供高速无线IP或X.25服务。GPRS采用分组交换技术,每个用户可同时占用多个无线信道,同一无线信道又可以由多个用户共享,资源被有效的利用,数据传输速率高达160Kbps。使用GPRS技术实现数据分组发送和接收,用户永远在线且按流量计费,迅速降低了服务成本。主要针对电力系统自动化、工业监控、交通管理、金融、证券等部门的应用,利用GPRS网络平台实现数据信息的透明传输,同时考虑到各应用部门组网方面的需要,在网络结构上实现虚拟数据专用网。

远程数据采集系统拓扑结构示意图:

现场值班室与中心机房采用光纤方式通讯系统结构:

http://www.jucsan.com/pic/tongmei1.jpg

计算机软件说明:

温度监测软件以世纪星\组态王等标准版组态软件软件为运行平台,这为软件长期稳定

的运行提供了保证,是一款功能丰富、性能稳定的温湿度监测软件。软件主要功能如下:

安装方便:软件安装方便,直接点击“Setup.exe”运行完成安装,通过简单设置,即可使用。

多种界面:具有实时数显、实时曲线、历史曲线、数据报表、组态报表等多种数据显示方式。

组态灵活:画面、文字及曲线根据测量需要,灵活组态,画面具体生动。

数据存储:数据自动存储、数据导出(另存)Excel、TXT等文件格式。

数据打印:支持报表打印、历史曲线打印及在Excel里打印。

数据查询:通过输入查询时间,即可查询所需被测点对应时间内的数据记录和曲线记录。

监测报警:当监测数值达到报警条件时,以改变相应数据颜色方式发出警报。

稳定准确:软件运行稳定,抗干扰能力强,数据采集准确度高,满足高标准数据监测要求。

自行开发:系统采用Modbus_RTU协议,可以采用种组态软件进行组态,用户可以根据需要选择其它组态软件进行组态,根据需要可以加入各种功能,系统功能完全由用户需要而定。

结语:该系统已成功应用同煤集团某矿多个煤窑种,使用情况良好。

  • 多点温度检测系统数据传输??
    答:该系统现场仪表JCJ500B将煤窑排风口风机各重要部件的温度参数及风机启停情况信息采集并上传到现场值班室计算机中,显示每点温度实时测量值,实时曲线,历史曲线,及保存历史纪录,自动生成数据报表供存储打印,用户也可随时导出以前所有历史温度数据以供参考。当采集温度超过限值后会发出报警。计算机可自由设定...
  • 多点温度检测中DS18B20怎么通过RS485传输数据?详细点哦
    答:一般用DS18B20采集模块LCT2662M来完成,最多可以接64个DS18B20,485总线输出,也可以选择网口输出。
  • 谁做过多点无线温湿度测量的问题。。。就是多个ds18b20链接在一起...
    答:额,你对这个理解太狭隘了。如果你要用一个总线接多个传感器的话,传感器之间的距离可以有间隔。但是这样存在很多的问题,1布线不方便。2,传输上会信号减弱,以致影响数据传输。3.这个是有线的方式,不是无线的方式。无线的温湿度测量,有以下几种给予考虑:(我们用的是一个单片机+一个传感器,而不是...
  • 基于单片机的多点温度采集系统
    答:温度釆集用18b20等器件吧。不知你的实际通信距离和有无线通信模式。如果有线远距建议釆用485,无线近距可用24l01,无线超远距可用gsm等。通信最好釆用协议,命令字可按照命令+地址+操作码+参数方式。如果是有线的话就没问题,无线gsm也没问题,但24l01的话还要加入无线中继协议,要不远了你的数据就...
  • 基于nRF2401的多点温湿度采集系统设计毕业论文
    答:而且,当数据采集点处于运动状态、所处的环境不允许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进行数据采集。在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都是采取分区取样的人工方法,工作量大,可靠性差。而且大棚和粮仓占地面积大,检测目标分散,测点较多,...
  • ...基于VB6.0的温度采集系统设计(数据传输采用无线或者485/232均可...
    答:如果用无线传输,需要你在本地计算机上做一个无线收发模块和温度采集系统连接,自定义个无线协议也可,采用蓝牙类的也可(距离有限)。485的需要一个485转232的模块,如果用232就比较简单,一根通讯线就解决问题。VB程序的话,可以采用VB自带串口控件,具体方法参考VB书。如有需要,我给你段程序 ...
  • 基于单片机的温度监测系统设计的总体大概的讲一下测温和无线传输显示...
    答:现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小[8]。1. DS18B20的特性 [9...
  • 求多点温度控制系统的开题报告
    答:采用温度芯片DS18B20测量温度。该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。本制作的最大特点之一就是直接采用温度芯片对温度进行测量,使数据传输和处理简单化。采用温度芯片...
  • 温湿度传感器数据输出的时候,有几种信号可以选择?
    答:不同的传感器元件不同,所以数据输出信号应该也是有所差别的。我们现在用的卓悦智能温湿度传感器输出信号是有4-20mA、RS485、DC 0-10V这几个选择项,你可以参考下。
  • 温度传感器系统的组成是怎么样的?
    答:温度传感器是温度监控中的神经末梢,用于温度数据的采集,温度传感器采集到的温度数据需要通过显示表或者采集器显示、传输,因此温度传感器必须配套相应的温度监控系统使用。单点温度控制柜 温度监控系统的组成通常根据使用要求构建,单点采集温度监控系统组成为温度传感器加温控表,可以实现现场温度显示、上下限报警...