基于ARM的多片ds18b20 温度采集系统

基于ARM的多片ds18b20 温度采集系统
基于ARM的多片ds18b20 温度采集系统

基于ARM的多片ds18b20 温度采集系统

/******************************************************************************

实验五多片ds18b20 温度采集 2005.1.13

*******************************************************************************/

#include

#include "..\inc\option.h"

#include "..\inc\44b.h"

#include "..\inc\44blib.h"

#include "..\inc\def.h"

#include "..\inc\timer.h"

/***************************************************************************

Timer5 初始化

入口参数:Timing_count=定时时间常数,定时时间=定时时间常数*0.02ms

T5_int_Enable=1,T5 中断方式,T5_int_Enable=0,T5 查询方式

****************************************************************************/

Timer_Init(U16 timing_count,U8 T5_int_Enable)

{

rINTMSK=BIT_GLOBAL|BIT_TIMER5;

rTCFG0=0X0c70101;//prescaler=199 rTCFG0=0X010101;prescaler=1

rTCFG1=0X0100000; // DIV=4

rTCNTB5=timing_count;

//rTCMPB5=(timing_count/2); havn't rTCMPB5!!! but T0--T4 have.

rTCON=0X2000000;

rTCON=0X1000000;

if(T5_int_Enable)

{

rINTCON=0X05;

rINTMOD=0X0;

rINTMSK=~(BIT_GLOBAL|BIT_TIMER5);

}

}

/********************************************************************************** 匹配ROM(命令55H),发8字节ROM代码

入口参数:*ROM_addr 为DS18B20-ID首地址

**********************************************************************************/ Match_Rom(U8 *ROM_addr)

{

U8 count;

U8 *p;

U8 temp=0x55; //匹配ROM 命令55H

Write_Byte(temp);

p=ROM_addr; //发8字节ROM代码

count=8;

while(count)

{

Write_Byte(*p);

p++;

count--;

}

}

/*********************************************************************************** 读ROM(命令33H),读回8字节ROM代码

入口参数:Read_Addr=ROM代码首地址

出口参数:Read_Addr 地址开始的8个单元= 读回8字节ROM代码

***********************************************************************************/ Read_Rom(U8 *Read_Addr)

{

U8 count;

U8 *p;

U8 temp=0x33; //读ROM 命令33H

Write_Byte(temp);

p=Read_Addr; //从18b20 读回8字节ROM代码

count=8;

while(count)

{

*p=Read_Byte();

p++;

count--;

}

}

/********************************************************************************** 发启动温度转换命令(44h)

***********************************************************************************/ void Convert_Start(void)

{

Write_Byte(0x44);

// Write_Byte(0X01); //主机发'1',释放总线,非窃电方式时可不用

}

/********************************************************************************** 发Skip ROM 命令(CCh)

***********************************************************************************/ void Skip_Rom(void)

{

Write_Byte(0xCC);

/********************************************************************************** 发Read_Ram 命令,读回2字节12位转换结果

**********************************************************************************/ U16 Read_Ram()

{

U8 Temperature_L;

U8 Temperature_H;

U16 Temperature; //12位转换结果Temperature

float Celsius; //分辨度为0.0625 度

Write_Byte(0xBE); //发Read_Ram 命令,

Temperature_L= Read_Byte(); //读回2字节12位转换结果

Temperature_H= Read_Byte();

Temperature=Temperature_H;

Temperature=(Temperature_H<<8)+Temperature_L;

Celsius=Temperature*0.0625;

return Temperature;

}

/*********************************************************************************** 复位ds18b20

入口参数:无

返回参数:=1:总线上有18B20应答; =0:总线上无应答;

***********************************************************************************/ U8 Reset_18B20(void)

{

U8 temp;

rPCONG |= 0X0100; //PCONG[15:0]16位, G口配置寄存器.

rPCONG &= 0x0fdff; //PCONG[9:8]=01, 定义PG4 output。

rPUPG &=0xef; //PUPG[7:0]8位,PUPG[4]=0,pull up enabled

rPDA TG |=0x0100; //置"1"总线,3.8us.

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

rPDA TG &=0x0ef; //主机发复位脉冲"0",500 us.

temp=150; //500us

while(temp)

{

asm("nop");

temp--;

}

rPDA TG |=0x10; //主机发"1",17 us.(ds18b20等候15--60us,实测25us) temp=4;

while(temp)

{

asm("nop");

temp--;

}

rPCONG &=0xfcff; //PG4[9:8]=00,input

Timer_Init(12,0); //12*0.02ms=240 us

while(1)

{

temp=rPDA TG;

temp &=0x10;

if(temp==0x0) //有应答?

{

rTCON=0x0; //停止T5计时

while(temp==0x0)

{

temp=rPDA TG;//等应答结束

temp &=0x10;

}

temp=80; //250us

while(temp)

{

asm("nop");

temp--;

}

return 1; //有应答,返回1.

}

else

{

if(~(rTCNTO5))

return 0; //无应答,返回0.

}

}

/*********************************************************************************** 主机读 1 Byte

入口参数:无

返回参数:读入的 1 Byte数据, 低位在先!!

***********************************************************************************/ U8 Read_Byte()

{

U8 count;

U8 temp_Byte=0;

U8 temp;

count=8; //读入1 Byte数据(=8bit)

temp_Byte;

while(count)

{

temp=Read_Bit(); //读入1 Bit

temp_Byte=(temp_Byte>>1)|(temp&0x80);

count--;

}

return temp_Byte;

}

/********************************************************************************** 主机读 1 Bit

入口参数:无

返回参数:读入的 1 Bit数据(U8 temp的Bit[0] )

***********************************************************************************/ U8 Read_Bit()

{

U8 temp;

U8 read_bit;

rPDA TG &=0x0ef; //主机发"0",2.2us

asm("nop");

asm("nop");

rPDA TG |=0x010; //主机发"1",3.8us.

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

rPCONG &=0xfcff; //PG4[9:8]=00,input.

asm("nop");

while(1)

{

read_bit=(rPDA TG<<3)&0x80; //读总线PG4

asm("nop");

if(read_bit==(rPDA TG>>4)&0X01);//再读总线PG4

break; //两次读相等?

}

temp=8; //30us

while(temp)

{

asm("nop");

temp--;

}

rPCONG |=0x0100; //PG4[9:8]=01,output

asm("nop");

rPDA TG |=0x10; //发"1",2us.

asm("nop");

asm("nop");

return read_bit;

}

/********************************************************************************** 主机写 1 Byte

入口参数:欲写的 1 Byte数据

返回参数:无

***********************************************************************************/ void Write_Byte(U8 write_Byte)

{

U8 count;

U8 temp_bit;

count=0x08;

while(count)

{

temp_bit=write_Byte&0x01;

Write_Bit(temp_bit);

write_Byte=write_Byte>>1;

count--;

}

}

/***********************************************************************************

主机写 1 Bit

入口参数:欲写的 1 Bit数据(U8 temp的Bit[0] )

返回参数:无

************************************************************************************/ U8 Write_Bit(U8 write_Bit)

{

U8 temp;

rPCONG |=0x100; //PG4[9:8]=01,output

asm("nop");

rPDA TG &=0x0ef; //发"0",3us.

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

asm("nop");

if((write_Bit &0x01)==0x01)

rPDA TG |=0x10;

else

rPDA TG &=0x0ef;

temp=8; //30us

while(temp)

{

asm("nop");

temp--;

}

rPDA TG |=0x10; //发"1",2us.

asm("nop");

asm("nop");

}

void Main(void)

{

U8 temp;

U16 temperature[6];

float Celsius[6];

U8 count;

U8 ds18b20_Rom_1[8]={0x28,0x47,0x30,0x05f,0x0,0x0,0x0,0x28};

U8 ds18b20_Rom_2[8]={0x28,0x8f,0x44,0x05f,0x0,0x0,0x0,0x64};

U8 ds18b20_Rom_3[8]={0x28,0x00,0x45,0x05f,0x0,0x0,0x0,0x67};

U8 ds18b20_Rom_4[8]={0x28,0x35,0x3b,0x05f,0x0,0x0,0x0,0xae};

U8 ds18b20_Rom_5[8]={0x28,0x38,0x2d,0x05f,0x0,0x0,0x0,0x04};

while(1)

{

temp=Reset_18B20(); //复位

if(temp==1)

Skip_Rom(); //发skip_Rom 命令

Convert_Start(); //发启动温度转换命令(44h)

Timer_Init(50000,0); //延时1s

asm("nop");

while(rTCNTO5);

count=5;

while(count)

{

temp=Reset_18B20(); //复位

if(temp==1)

switch(count)

{

case 1:

Match_Rom(ds18b20_Rom_1);//发匹配ROM_ID 命令(55h),及ds18b20_1 Rom地址break;

case 2:

Match_Rom(ds18b20_Rom_2);

break;

case 3:

Match_Rom(ds18b20_Rom_3);

break;

case 4:

Match_Rom(ds18b20_Rom_4);

break;

case 5:

Match_Rom(ds18b20_Rom_5);

default:

break;

}

temperature[count]=Read_Ram(); // 发Read_Ram命令,读回温度值12位

Celsius[count]=temperature[count]*0.0625;

count--;

}

/* rPCONG |= 0X0400; // PCONG[15:0]16位, G口配置寄存器.

rPCONG &= 0x0f7ff; // PCONG[11:10]=01, 定义PG5 output。

rPDA TG |=0x020; // 断开加热棒

asm("nop");

rPDA TG &=0x0df; //接通加热棒*/

asm("nop");

} }

嵌入式系统课程设计(基于ARM的温度采集系统设计) 精品

基于ARM的温度采集系统 1.1设计目的 1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。 2、了解所选择的ARM芯片各个引脚功能,工作方式,计数/定时,I/O口,中断等的相关原理,并巩固学习嵌入式的相关内容知识。 3、通过软硬件设计实现利用ARM芯片对周围环境温度信号的采集及显示。 1.2设计意义 嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统。嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合才会具有生命力、才更具有优势。因此嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的裁减利用。嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,如果能建立相对通用的软硬件基础,然后在其上开发出适应各种需要的系统,是一个比较好的发展模式。目前的嵌入式系统的核心往往是一个只有几K到几十K微内核,需要根据实际的使用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。 数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测

基于DS18B20的温度采集显示系统的设计

《单片机技术》课程设计任务书(三) 题目:基于DS18B20的温度采集显示系统的设计 一、课程设计任务 传统的温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点。但由于其输出的是模拟量,而现在的智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂。硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵。新兴的IC温度传感器如DS18B20,由于可以直接输出温度转换后的数字量,可以在保证测量精度的情况下,大大简化系统软硬件设计。这种传感器的测温范围有一定限制(大多在-50℃~120℃),多适用于环境温度的测量。DS18B20可以在一根数据线上挂接多个传感器,只需要三根线就可以实现远距离多点温度测量。 本课题要求设计一基于DS18B20的温度采集显示系统,该系统要求包含温度采集模块、温度显示模块(可用数码管或液晶显示)和键盘输入模块及报警模块。所设计的系统可以从键盘输入设定温度值,当所采集的温度高于设定温度时,进行报警,同时能实时显示温度值。 二、课程设计目的 通过本次课程设计使学生掌握:1)单总线温度传感器DS18B20与单片机的接口及DS18B20的编程;2)矩阵式键盘的设计与编程;3)经单片机为核心的系统的实际调试技巧。从而提高学生对微机实时控制系统的设计和调试能力。 三、课程设计要求 1、要求可以从键盘上接收温度设定值,当所采集的温度高于设定值时,进行报警(可以是声音报警,也可是光报警) 2、能实时显示温度值,若用Proteus做要求保留一位小数; 四、课程设计内容 1、人机“界面”设计; 2、单片机端口及外设的设计; 3、硬件电路原理图、软件清单。 五、课程设计报告要求 报告中提供如下内容:

智能手机终端的数据采集及分析系统

智能手机终端的数据采集及分析系统 主要功能如下: 采集使用数据采集程序手机的手机号码:数据采集程序必须开通GPRS,实时传输采集数据及监听服务端指令;所以会有一定的数据量。为解决用户因GPRS传输采集数据产生的费用,所以记录用户的手机号码。 采集GPS信息:经纬度,时间,速度; 采集无线网络状况信息:GSM,GPRS网络情况; 获取的无线网络信息并附加GPS信息,帮助数据分析专家系统分析处理; 数据采集终端的主要功能如下: 实时诊断网络信息; 诊断分为空闲时诊断与使用时诊断; 空闲时诊断:根据运营商的相关规定设定网络异常指标;当手机处于空闲状态时,指定频率(秒)获取无线网络的基本参数,如CID,LAC,BSIC,BCCH,RxQuality,RxLevel,C/I,C/A,TxPower,TA,TS等;根据设定的异常指标来判断是否出现异常;如果出现异常则保存本次信息,并获取此时此地的GPS信息、本手机的手机号码一并发送至指定服务器,由“数据分析专家系统”分析处理。 发送数据内容:本手机的手机号码+无线网络基本参数+GPS信息; 数据格式:XML文件格式; 传输方式:使用GPRS进行数据传输; 使用时诊断:用户使用手机时,检测用户使用过程中无线网络的状况;如手机数据下载过程中,检测总的下载量,下载时间,是否下载成功,如果不正常则记录本次使用过程; 诊断项: 2通话:未接通、掉话、呼叫时延; 2短信(SMS),彩信(MMS):是否发送或接受成功、发送或接受时间; 2GPRS Attach:Attach是否成功、Attach成功的时长PDP激活,PDP激活是否成功、激活成功的时长; 2WAP数据传输:WAP登陆测试;WAP登陆是否成功;WAP登陆成功时长; 2WAP刷新测试:WAP刷新是否成功;WAP刷新成功时长;

双通道同步数据采集系统的设计与实现

双通道同步数据采集系统的设计与实现 作者:徐灵飞, 李健, Xu Lingfei, Li Jian 作者单位:成都理工大学工程技术学院,四川,乐山,614007 刊名: 自动化仪表 英文刊名:PROCESS AUTOMATION INSTRUMENTATION 年,卷(期):2011,32(1) 参考文献(14条) 1.周立功ARM嵌入式系统基础教程 2005 2.项志遴.俞昌旋高温等离子体诊断技术 1982 3.渠海青;孙艳萍;朱正伟数字示波表中超高速数据采集系统的设计[期刊论文]-自动化仪表 2009(11) 4.李亚磊.邓新绿.俆军.丁万昱高信噪比Langmuir探针系统 2006(4) 5.曹军军;陈小勤;吴超基于USB2.0的数据采集卡的设计与实现[期刊论文]-仪器仪表用户 2006(01) 6.黄新财.佃松宜.汪道辉基于FPGA的高速连续数据采集系统的设计 2005(2) 7.张健;刘光斌多通道测试数据采集处理系统的设计与实现[期刊论文]-计算机测量与控制 2005(10) 8.张健.刘光斌多通道测试数据采集处理系统的设计与实现 2005(10) 9.黄新财;佃松宜;汪道辉基于FPGA的高速连续数据采集系统的设计[期刊论文]-微计算机信息 2005(02) 10.曹军军.陈小勤.吴超.何正友基于USB2.0的数据采集卡的设计与实现 2006(1) 11.李亚磊;邓新绿;徐军高信噪比Langmuir探针系统[期刊论文]-核聚变与等离子体物理 2006(04) 12.渠海青.孙艳萍.朱正伟数字示波表中超高速数据采集系统的设计 2009(11) 13.项志遴;俞昌旋高温等离子体诊断技术 1982 14.周立功ARM嵌入式系统基础教程 2005 本文链接:https://www.360docs.net/doc/2318779213.html,/Periodical_zdhyb201101021.aspx

基于arm的实时温度采集系统

目录 摘要 (2) 一、设计目的 (2) 二、设计要求 (2) 三、题目分析 (3) 四、设计方法及步骤 (4) 1、开发平台介绍 (4) 2、ds18b20的工作原理 (6) 3、ds18b20的驱动程序 (9) 4、QT界面设计 (13) 5、驱动的挂载和运行 (16) 五、设计总结 (17) 六、参考文档 (18)

摘要 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。 实时温度采集系统是是将环境温度实时的进行采集并显示的系统,在现在的许多家用电器、工业控制、甚至是高科技领域都有应用,它已经普遍的融入了社会生活和生产之中,并且作为基础的系统,在今后的生活生产中并不会被淘汰,应用范围还会继续扩大,因此,掌握此系统是必要的。 关键词:arm Linux ds18b20 一、设计目的 1、熟悉嵌入式系统的整个开发流程,具备独立进行开发的能力; 2、熟悉Linux C,可以用Linux C编写驱动程序; 3、熟悉C++,具备初步人机界面编程的能力; 4、学习和掌握驱动的下载和烧写。 二、设计要求 在Samsung公司S3C2410处理器的开发板上,嵌入式linux系统环境下,设计温度实时采集系统,并设计显示界面。 1、设计温度实时采集系统,要求基于ARM9开发板,温度传感器可

以用ds18b20; 2、要求温度值精确到个位; 3、要求自己设计QT界面,并在界面上显示温度值。 三、题目分析 在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案。 美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持"一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。 DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

远程温度采集与显示系统设计

毕业设计论文 远程温度采集测量系统 系电子信息工程系 专业电子信息工程技术姓名张一浩班级电信091 学号0901043118 指导教师张少华职称讲师 设计时间2011.11.20-2012.1.8

目录 第一章测量方案 (4) 1.1 系统功能 (4) 1.1.1 功能介绍 (4) 1.2方案论证与确定 (4) 1.2.1温度测量方案的确定 (4) 1.2.2 远程无线数据传送方案的确定 (5) 第二章电路原理及主要功能模块 (6) 2.1工作原理 (6) 2.1.1 系统框图 (6) 2.1.2现场温度采集电路 (6) 2.2 通信模块 (7) 2.2.1 信号发送电路 (7) 2.2.2 接收解调电路 (8) 2.3微机硬件原理图 (9) 2.3.1主机控制原理图 (9) 2.3.2从机控制原理图 (10) 第三章软件系统设计 (11) 3.1软件主要功能 (11) 3.2 软件设计框图 (11) 3.2.1设计框图 (11) 3.3测试方法及所用仪表 (13) 第四章数据分析 (14) 4.1 测试数据及测试结果分析 (15) 4.1.1 温度数据 (15) 第五章结束语 (16) 参考文献 (17) 致谢 (18)

远程温度采集测量系统 摘要 本文给出了远程温度采集测量系统的设计,它由温度数据采集测量与远程无线数字调频传送两部分构成,分为现场温度采集、远程数据传送和温度数据显示三个模块。设计采用单片微型计算机系统,数字频率调制(FSK)芯片和相关接口电路,实现现场温度信号的调理、模数转换、处理和远程传送。测温范围可达-50℃~+150℃,误差小于1℃。远程无线传送距离有障碍物时大于20m,传送的误码率小于1‰。利用LCD和LED分别可在现场模块和终端模块显示当前温度值,显示分辨率为0.1℃,系统设有语音报温和温度上限报警功能,所有指标均满足题目的基本要求和发挥部分要求。 关键词:温度传感器;接收电路;温度的测量

关于数据采集技术的内容

关键词:声卡数据采集MATLAB 信号处理 论文摘要:利用数据采集卡构建的数据采集系统一般价格昂贵且难以与实际需求完全匹配。声卡作为数据采集卡具有价格低廉、开发容易和系统灵活等优点。本文详细介绍了系统的开发背景,软件结构和特点,系统地分析了数据采集硬件和软件设计技术,在此基础上以声卡为数据采集卡,以MATLAB为开发平台设计了数据采集与分析系统。 本文介绍了MATLAB及其数据采集工具箱, 利用声卡的A/ D、D/ A 技术和MATLAB 的方便编程及可视化功能,提出了一种基于声卡的数据采集与分析方案,该方案具有实现简单、性价比和灵活度高的优点。用MATLAB 语言编制了相应软件,实现了该系统。该软件有着简洁的人机交互工作界面,操作方便,并且可以根据用户的需求进行功能扩充。最后给出了应用该系统采集数据的应用实例。 1绪论 1.1 课题背景 数据也称观测值,是实验、测量、观察、调查等的结果,常以数量的形式给出。数据采集,又称数据获取,就是将系统需要管理的所有对象的原始数据收集、归类、整理、录入到系统当中去。数据采集是机管理系统使用前的一个数据初始化过程。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具。 数据采集(Data Acquisition)是将被测对象(外部世界、现场)的各种参量(可以是物理量,也可以是化学量、生物量等)通过各种传感元件作

适当转换后,再经信号调理、采样、量化、编码、传输等步骤,最后送到控制器进行数据处理或存储记录的过程。 被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据测量是数据采集的基础。数据测量方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,都以不影响被测对象状态和测量环境为前提,以保证数据的正确性。数据采集含义很广,包括对连续物理量的采集。在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量数据。 在智能仪器、信号处理以及自动控制等领域,都存在着数据的测量与控制问题,常常需要对外部的温度、压力、流量、位移等模拟量进行采集。数据采集技术是一种流行且实用的技术。它广泛应用于信号检测、信号处理、仪器仪表等领域。近年来,随着数字化技术的不断,数据采集技术也呈现出速度更高、通道更多、数据量更大的发展态势。 数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

基于51单片机的温度采集系统

天津工业大学 电子与信息工程学院《计算机控制技术》专题实践报告题目:温度采集系统设计 专业:电子信息工程 班级:电子1601 姓名:江育武 学号:1610910113

目录 1.研究现状 ................................................................................................. 错误!未定义书签。 2.设计目的 ................................................................................................. 错误!未定义书签。 3.功能描述 ................................................................................................. 错误!未定义书签。 4.技术指标 ................................................................................................. 错误!未定义书签。 5.硬件设计 ................................................................................................. 错误!未定义书签。 5.1 结构................................................................................................. 错误!未定义书签。 5.2 最小系统......................................................................................... 错误!未定义书签。 5.2.1 主芯片...................................................................................... 错误!未定义书签。 5.2.2 复位电路 (1) 5.2.3 时钟电路 .................................................................................. 错误!未定义书签。 5.2.4 电源电路 .................................................................................. 错误!未定义书签。 5.2.5 下载电路 .................................................................................. 错误!未定义书签。 5.2.6 LED电路 .................................................................................... 错误!未定义书签。 5.3 相关硬件模块 ................................................................................. 错误!未定义书签。 5.3.1 LED模块 .................................................................................... 错误!未定义书签。 5.3.2 按键模块 .................................................................................. 错误!未定义书签。 5.3.3 蜂鸣器模块 .............................................................................. 错误!未定义书签。 5.3.4 USB串口模块 ........................................................................... 错误!未定义书签。 6.软件设计 ................................................................................................. 错误!未定义书签。 6.1 IAP设计............................................................................................ 错误!未定义书签。 6.1.1 Bootloader程序........................................................................ 错误!未定义书签。 6.2 APP程序........................................................................................... 错误!未定义书签。 6.2.1 跑马灯程序 .............................................................................. 错误!未定义书签。 6.2.2 蜂鸣器程序 .............................................................................. 错误!未定义书签。 6.3 APP实现与配置............................................................................... 错误!未定义书签。 6.3.1 APP程序起始地址设置............................................................ 错误!未定义书签。 6.3.2 中断向量表偏移量设置 .......................................................... 错误!未定义书签。 6.3.3 xxx.bin文件生成....................................................................... 错误!未定义书签。 6.4 uC/OS III ............................................................................................ 错误!未定义书签。 6.5 任务划分......................................................................................... 错误!未定义书签。

基于Labview的温度采集系统

基于Labview 的温度采集系统 摘要:随着工业的不断发展,对温度测量的要求越来越高,而且测量范围也越来越广。本设计用LabView 软件在PC 机上编程实现了多点温度采集、动态图形显示、数据存储、报警、数据分析等功能,并重点对基于LabVIEW 的虚拟温度采集系统的设计进行了讨论。 关键词:LabVIEW; 温度采集 0 引言 进入21世纪以来,作为测试技术的一个分支,虚拟仪器的开发和研制在国内得到了飞速的发展。它可以利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达输出检测结果。目前,常用的温度采集系统绝大部分是由集成温度传感器和单片机构成的,设计过程繁琐、调试期长、修改不方便。本文借助LabVlEW 图形化软件开发系统,用软件代替DAQ 数据采集卡设计的这种虚拟温度采集系统,比以前的更易修改且成本低、周期短。 1 设计思想 该系统的功能框图如图所示。 本温度采集系统的设计采用软件代替了DAQ 数据采集卡,使用Demo read voltage 子程序来仿真电压测量,然后把所测得的电压值转换成摄氏或华氏温度读数。 在数据采集过程中,实时地显示数据。当采集的温度值大于设定的高限报警数值时,就会点亮高报警红色灯,同时触发条件结构里的事件发生,使系统发出蜂呜温度采集系统 实 时 温 度 显 示 保存数据 报警设定 数值计算 显示转换

声。当采集过程结束后,在图表上画出数据波形,并算出最大值、最小值和平均值,并自动产生数据文件的头文件,它包括操作者名字和文件名,将采集的数据附在头文件后面,以供查询。 2 子程序设计 2.1 温度计子程序 温度计界面程序如下图所示。在框图程序中设定温度计的标尺范围为0.0到100.0,在前面板窗口中放入竖直开关控制用下选择“温度值单位”,即选择以华氏还是摄氏显示。 2.2 实现步骤 1、点击框图程序窗口的空白处,弹出功能模板,从弹出的菜单中选择所需的对象。本程序用到下面的对象: Multiply(乘法)功能,将读取电压值乘以100.00,以获得华氏温度。 Subtract(减法)功能,从华氏温度中减去32.0,以便转换成摄氏温度。 Divide(除法)功能,把相减的结果除以1.8以转换成摄氏温度。 Select(选择)功能(Comparison子模板)。取决于温标选择开关的值,该功能输出华氏温度(当选择开关为false)或者摄氏温度(选择开关为True)数值。 Demo Read Voltage VI程序(Tutorial子模板)。该程序模拟从DAQ卡的0通道读取电压值,并把所测得的电压值转换成华氏或摄氏读数。 随机数产生功能(Numeric子模板),用于产生随机温度值。 数值常数。用连线工具,点击要连接一个数值常数的对象,并选择Create Constant功能。若要修改常数值,用标签工具双点数值,再写入新的数值。

DS18B20温度采集程序代码

/******************************************************************** * 文件名:温度采集DS18B20.c * 描述: 该文件实现了用温度传感器件DS18B20对温度的采集,并在数码管上显示出来。 * 创建人:东流,2012年2月10日 * 版本号:2.0 ***********************************************************************/ #include #define uchar unsigned char #define uint unsigned int #define jump_ROM 0xCC #define start 0x44 #define read_EEROM 0xBE sbit DQ = P2^3; //DS18B20数据口 unsigned char TMPH,TMPL; uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /******************************************************************** * 名称: delay() * 功能: 延时函数 * 输入: 无 * 输出: 无 ***********************************************************************/ void delay(uint N) { int i; for(i=0; i

工业4.0智能数据采集解决方案

工业4.0智能数据采集解决方案 近些年在“工业4.0”,“智能制造”,“工业互联网”的大背景下,工业现场设备层的数据采集逐渐成为一个热门话题,实现工业4.0,需要高度的工业化、自动化基础,是漫长的征程。 工业大数据是未来工业在全球市场竞争中发挥优势的关键。无论是德国工业4.0、美国工业互联网还是《中国制造2025》,各国制造业创新战略的实施基础都是工业大数据的搜集和特征分析,及以此为未来制造系统搭建的无忧环境。 华辰智通工业互联网-工业数据采集方案: 大家都认识到实时获取设备层数据、消除自动化孤岛现象是实现智能制造、工业互联网的重要基础环节。但是,工业现场的设备种类繁多,各种工业总线协议并存,这也就导致了数据采集这项工作是一件非常个性化的事情,很难总结出一套放之四海而皆准的方案来。 数据采集一直是困扰着所有制造工厂的传统痛点,自动化设备品牌类型繁多,厂家和数据接口各异,国外厂家本地支持有限,不同采购年代。即便产量停机数据自动采集了,也不等于整个制造过程数据都获得了,只要还有其他人工参与环节,这些数据就不完整,所以不论智能制造发展到何种程度,工业数据采集都是生产中最实际最高频的需求,也是工业4.0的先决条件。

1.工业数据采集工具: 工业数据网关称为工业采集网关,也可以称为工业数据采集网关;它通过以太网接口:RJ45 接口;串行接口:RS485/RS232/RS422接口可以连接西门子、三菱、欧姆龙、施耐德、台达、汇川、和利时、松下、永宏、海为和MODBUS 系列等。PLC、制器、输入/输出等设备,安全准确传输数据。 HINET 系列数据网关由湖南华辰智通科技有限公司自主研发生产,该网关采用高性能工业级32 位处理器和工业级无线模块,以嵌入式实时操作系统为软件支撑平台,是一款高性能、高性价比、适用于工业互联网便于大规模部署的工业数采终端。HINET 系列数据网关自带PLC 等工业控制器协议,一次性解决工业设备联网、工业设备数据采集及传输等难题。 HINET 系列数据网关是一款单协议单接口的工业数采终端,根据不同的型号HINET 数据网关支持的PLC 品牌包含西门子、三菱、欧姆龙、施耐德、台达、汇川、和利时、松下、永宏、海为和MODBUS 系列等。 2.对工业生产设备数据采集:

嵌入式温度采集系统

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2014年春季学期 嵌入式系统开发技术课程设计 题目:嵌入式温度采集系统设计 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 本设计是基于嵌入式技术作为主处理器的温度采集系统,辅以单独的数据采集模块采集数据,实现了智能化的温度数据采集、传输、处理与显示等功能,并讨论了如何提高系统的速度、可靠性和可扩展性。 温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。在整个宇宙当中,温度无处不存在。湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法。总之,环境温湿度的检测与调节仪器的设计和开发具有非常大的市场前景和实用价值。 嵌入式系统是一般由嵌入式微处理器,外围硬件设备,嵌入式操作系统,用户应用程序四个部分组成。用于实现对其他设备的控制,监视或管理等功能。嵌入式系统已经广泛已经广泛应用于科学研究,工业控制,军事技术,交通通信,医疗卫生,消费娱乐等领域,人们常用的手机,PDA,汽车,智能家电,GPS等均是嵌入式系统的典型代表。本设计将其中对温湿度的读取是利用CC2530的I/O (P1.0和P1.1)模拟一个类IIC的过程。对光照的采集使用内部的AIN0通道。 关键词: 温度,湿度,嵌入式,CC2530,SHT10

目录 一、前言 (1) 二、基本原理 (2) 2.1 CC2530 结构及实现原理 (2) 2.2 SHT10结构及实现原理 (4) 三、系统分析 (7) 3.1程序流程图 (7) 3.2 软件子系统设计 (8) 四、实验结果及分析 (11) 4.1 湿度采集 (11) 4.1.1 湿度采集试验结果 (11) 4.1.2 结果分析 (11) 4.2 温度采集 (12) 4.2.1 湿度采集实验结果 (12) 4.2.2 结果分析 (12) 五、结论 (13) 六、参考文献 (14) 致谢 (15)

四路温度采集系统系统

四路温度采集系统的设计 【内容摘要】本文主要研究的是基于AT89S51单片机作为系统的温度显示以及设定双路温度报警系统的设计。此系统硬件电路主要包括5部分:AT89S51单片机最小系统电路部分和复位电路部分,LCD1602液晶显示电路部分,4个DS18B20作为温度检测部分,以及电源电路部分。 本系统采用C语言进行编写程序,为了便于阅读和修改,软件采用模块化结构设计,使程序间的逻辑层次更加简明。 【关键词】四路温度采集系统系统;DS18B20;LCD1602液晶显示;AT89S51单片机 1 引言 四路温度采集系统系统不仅是工业上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。所以,双路温度报警系统无论作为比赛题目还是练习题目都是很有价值。 本文介绍一种基于 AT89C2051 单片机的一种温度测量,该电路DS18B20 作为温度监测元件,测量范围-55℃-~+125℃,使用LCD1602液晶显示模块显示,能通过键盘设置温度报警上下限.正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器 DS18B20 的原理,AT89C2051 单片机功能和应用.该电路设计新颖,功能强大,结构简单。 2双路温度报警系统系统简介及其作用综述 首先,由DS18B20温度传感器芯片测量当前温度,并将结果送入单片机。然后,通过AT89C51单片机芯片对送入的测量温度读数进行计算和转换,并将此结果送入液晶显示模块。最后,LCD 1602模块将送来的四路温度值值显示于显示屏上。

智能采集系统实现原理说明v1.0

采集系统实现原理说明 1.采集系统概览 审计工作的第一步是数据采集,从采集的原始数据中抽取所需要的部分并转化格式,再导入后台审计系统处理;其中,数据采集和数据抽取、转换占据三分之二的工作流程和大量的时间。如何将该部分的工作简单化、智能化和自动化,是本采集系统的主要功能。 众多被审计单位的IT系统建设模式、规模存在重大的差异,基于不同的标准而设计,采用不同的架构和应用软件构建而成。该采集系统需要与这些种类繁多的系统协同工作,其开放性、统一性和兼容性是非常重要的衡量指标。 2.财务系统采集、转换实现原理说明 2.1财务系统现状 现阶段的审计任务主要是经济审计,主要涉及被审计单位的财务系统。财务系统与其他系统相比,存在很大的差异,体现在几个方面: ●财务软件种类繁多,标准不统一 ●后端数据库类型多种多样 ●不同单位的财务管理方式差异很大 ●财务数据内在格式保密

被审计单位采用的财务系统主要分成两大类,国内财务软件和国外财务软件。财务软件的简单汇总信息如下: 其中,用友、金蝶和SAP公司的财务软件,使用率最高。 参考信息来源于“中国财政部“的官方网站,具体链接如下:https://www.360docs.net/doc/2318779213.html,/lanmudaohang/tongzhitonggao/201303/t2013031 9_782244.html 2.2财务系统数据采集 财务系统经过长时间的发展,其架构基本上趋于统一,即两层架构:财务处理应用接口和后台数据存储。

简单描述如下: 由于所有的财务数据均存放在后台的数据库中,原则上,采集系统直接从数据库抽取数据即可;因此,采集系统不会与财务系统,特别是不会与“财务处理应用接口“发生直接的互操作。 采集系统的数据库抽取功能特点: 采集系统支持的数据库类型众多,包括Access、SQL、MySQL、Oracle、Sybase、DB2和Informix等,涉及不多的版本和操作系统平台。

嵌入式 电压采集系统

摘要 针对传统的有线方式检测、采集、传输中节点分散需要大量布线等问题,本文介绍了一种基于CC2530和数字压力传感器的电压数据采集系统。 首先介绍了CC2530 结构及实现原理以及所使用电压传感器模块结构和原理,然后在了解它们的基础上找出相应的采集数据以及传输数据的所需的软件,串口通信及AD转换的原理和其实现方法,最后通过给出总的电压采集的程序流程图以及软件子系统设计系统框图和以上实验设备完成基于CC2530和数字压力传感器的电压数据采集系统。 关键词: 电压采集,嵌入式,CC2530,AD转换,串口通信

目录 一、前言 (1) 二、基本原理 (2) 2.1 CC2530 结构及实现原理 (2) 2.2 电压传感器结构及实现原理 (4) 2.3 软件方面 (5) (1)串口通信 (5) (2)AD转换 (6) 三、系统分析 (9) 3.1 程序流程图 (9) 3.2 软件子系统设计 (9) 四、代码清单 (10) 4.1 核心代码 (10) 4.2 AD转换代码 (11) 总结............................................... 错误!未定义书签。参考文献.. (14)

一、前言 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统[1]。随着生活水平的提高和科学技术发展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;随着嵌入式技术的发展,为环境检测提供了更进一步的保障。 基于嵌入式的环境信息采集系统包含感知层、传输层、应用层三个层面;传输层常见的有温湿度、烟感、电压、压力等嵌入式传感器模块,传输层包括有线通信和无线通信两部分,应用层包括各种终端。 电压是推动电荷定向移动形成电流的原因。电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差别。这种差别叫电势差,也叫电压。换句话说,在电路中,任意两点之间的电位差称为这两点的电压。在很多应用场合,电压是一个很重要的一个参数。电压的自动监测已经成为各行业进行安全生产和减少损失的重要措施之一。本课程设计就对嵌入式电压数据采集系统进行详细分析和设计。

基于STM及的通道同步数据采集系统设计

基于S T M及的通道同步数据采集系统设计 文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

基于STM32及AD7606的16通道同步数据采集系统设计 摘要: 介绍了基于STM32及AD7606的同步数据采集系统的软硬件设计。主控芯片采用基于ARMCortex-M4内核的STM32F407IGT6,实现对AD采集数据的实时计算并通过以太网络进行数据传输。A7606为16位、8通道同步采样模数数据采集系统[],利用两片AD7606,可以实现对16路通道的实时同步采样。经过测试,该系统可以实现较高精度的实时数据采集。 0引言 [此处找书介绍STM32],该芯片主频可达168MHz,具有丰富的片内外设,并且与前代相比增加了浮点运算单元(FloatingPointUnit,FPU),使其可以满足数据采集系统中的 [介绍AD7606] 1系统总体方案设计 整个系统由传感器模块、信号调理模块、数据采集模块、处理器STM32、及通信模块及上位机系统组成。系统整体结构框图如图1所示。本系统是为液态金属电池性能测试设计,需要测量电池的充放电电压、电流以及交流加热系统的电压、电流,并以此计算出整个液态金属电池储能系统的效率。因此两片AD7606的16个通道分为两组,每组8个通道,这两组分别测量4路直流、交流的电压和电流信号。AD7606通过并行接口与STM32连接,STM32读取AD采样数据后进行计算,并将数据通过网络芯片DP83848通过UDP协议发送给上位机。上位机负责显示各通道采集信息、绘制波形以及保存数据等。 图1系统整体结构框图 2系统硬件设计 2.1模拟信号采集电路设计

温度采集系统原理

1.现有16路温度信号,16路压力信号,48路流量信号和10路物位信号,用单片机构成一个数据采集系统。

答:系统的原理框图如上图所示,图中的T1表示第一路温度信号,同理,P16表示第16路压力信号,F48表示第48路流量信号,H10表示第10路物位信号。 (1)由于温度信号的温度范围是0~100度,系统要求的精度为0.5%,所以对于温度信号采用8位的A/D即可满足要求(100/255=0.4度)。系统使用的是ADC0809,由于ADC0809内部含有多路开关,所以系统设计时,在外部没有添加多路开关,16路温度信号运用两片ADC0809,正好能采集16路温度信号。 (2)16路压力信号的精度要求是精确到0.1%,8位的AD已不能满足要求,假如所测的最大压力为1个大气压, 如果用8位AD,则其分辨率为100000/255=392,而使用16位AD其分辨率为100000/65535=1.5,所以选 用16路AD较为精确。系统使用的是AD7701(相关资料请见本次作业第二题),AD7701内部不含多路开关,所以要外接多路开关,系统中使用的多路开关是CD4067B,CD4067B是16通道双向多路模拟开关,它具有两种电源输入端,VDD和VSS,可以在-0.5~18V之间进行选择。 (3)48路流量信号的精度要求是精确到0.1%,同压力信号一样,8位AD不能满足精度要求,故采用16位AD,系统中采用的还是AD7701。由于流量信号对采集的速度要求不是很高,所以采用多通道共用放大器,采样保持器和AD转换器。48路流量信号可以用3片CD4067B进行切换,由多路开关轮流采集流量信号,经放大器,采样保持器和AD转换进入单片机。 (4)10物位信号的精度要求同温度信号,其精度要求是精确到0.5%,所以采用8位的AD7574, 与ADC0809不同的是其内部不含多路开关,10信号如使用两片多路开关,则增加了系统的复杂度,所以采用一片CD4067B 即可。AD7574采用CMOS工艺,单片行,含有内部时钟振荡器,+5V供电,芯片内部设有比较器和控制逻辑,以及功耗低,转换速度快的逐次逼近型A/D转换器。 2.选一串行的16位ADC。 答:所选的AD7701可变串行接口、16位模/数转换器,以下是相关资料。 AD7701是美国AD公司推出的16位电荷平衡式A/D转换器它具有分辨率高、线性度好、功耗低等特点,并且由于该芯片采用了采样技术和线性兼容CMOS工艺集成技术,且片内含有自校准控制电路,可以有效地消除内部电路、外部电路的失调误差和增益误差G,AD7701具有灵活的串行输出模式,其转换结果通过串行接口输出,数据输出速率达4kbps。串行接口有异步方式、内时钟同步方式和外时钟同步方式三种::异步方式可以直接与通用异步接收/发送器(UART)接口;内时钟同步方式可将串行转换结果经移位寄存器转换为并行输出;外时钟同步方式可以连接与单片机接口。所以它具有精度高、成本低、工作温度范围宽、抗干扰能力强等特点。因此适用于遥控检测、过程 (1)主要性能: .AD7701芯片内含有自校准电路 .片内有可编程低通滤波器; .拐点频率;0.1Hz一10HZ .可变串行接口:分辨率16位; .线性误差:0.0015%: ·功耗低。正常状态:40mW;睡眠状态:10uW。 (2)芯片引肿图和引脚说明: AD770I的核心部分是二阶调制器和6阶高斯低通数字滤波器 构成的16位ADC,另外有校准控制器、校准SRAM、时钟发 生器和串行接口电路。AD7701芯片的引脚名称和说明如下。 MODE:串行接口方式选择。AD7701 方式。 当MODE接十5v时,串行接口工作在内时钟同步方式。AD7701可以通过外部移位寄存器将串行数据转换为并行数据输出。 当引脚MODE接DGND时,AD7701串行接口工作于外时钟同步方式。在这种方式下,AD7701能直接与具有同步串行接口的单片机连接,也可以利用普通I/O端口,通过软件编程产生SCLK时钟以读取AD770I的转换数据。 当引脚MODE接一5V时,AD7701串行接口工作于异步方式。在这种工作方式下, AD7701可以直接与通用异步接收发送器(UART)相连接,适用于AD7701与单片机(或微控制器)之间的距离比较远的应

相关文档
最新文档