温度采集报警系统C语言程序

温度采集报警系统C语言程序
温度采集报警系统C语言程序

#include

#include

#define uchar unsigned char

#define uint unsigned int

uint temp4; // variable of temperature

sbit DS4=P1^3; //define interface

void delay4(uchar count)

{

while(count>0) count--;

}

void reset4(void) //send reset and initialization command {

DS4=0;

delay4(100); DS4=1;

delay4(4);

delay4(200);

}

bit read_bit4(void) //read a bit

bit temp;

DS4=0;

_nop_();

DS4=1;

_nop_();

temp=DS4;

delay4(200);

return temp;

}

uchar read_byte4(void) //read a byte date

{

uchar i,byte=0;

bit j;

for(i=0;i<8;i++)

{

byte=_cror_(byte ,1);

j=read_bit4();

if(j==0) byte=byte|0x00;

else byte=byte|0x80;

}

return byte;

}

void write_byte4(uchar command) //write a byte to ds18b20 {

uchar i;

for(i=0;i<8;i++) {

if((command & 0x01)==0)

{ DS4=0;

delay4(8);

DS4=1;

_nop_();

}

Else

DS4=0;

_nop_();

DS4=1;

delay4(8);

}

command=_cror_(command,1);

}

}

void tmpchange4(void) //DS18B20 begin change

{

reset4();

write_byte4(0xcc); //直接向18b20发送温度变换命令

write_byte4(0x44); //启动18b20进行温度转换

}

uint tmp4() //get the temperature

{

float tt;

uchar a,b;

reset4();

write_byte4(0xcc); //直接向18b20发送温度变换命令

write_byte4(0xbe); //读取温度寄存器的温度值

a=read_byte4();//读低八位

b=read_byte4();//读高八位

temp4=b;

temp4<<=8; //two byte compose a int variable

temp4=temp4|a;

tt=temp4*0.0625;

temp4=tt*10+0.5;

return temp4

}

#define uchar unsigned char

#define uint unsigned int

sbit rs=P2^0;

sbit lcden=P2^2;

#define lcd_mode 0x38

#define display_cursor 0x0f

#define undisplay_cursor 0x0c

char code int_to_char[]="0123456789";

//******************************************************** void delay(uint x)

{

uint a,b; for(a=x;a>0;a--) for(b=10;b>0;b--);

}

//******************************************************** void write_com(uchar com) //写命令

{

P0=com;

rs=0;

lcden=0;

delay(10);

lcden=1;

lcden=0;

}

//******************************************************** void write_date(uchar date) //写数据

{

P0=date;

rs=1;

lcden=0;

delay(10);

lcden=1;

delay(10);

lcden=0;

}

//******************************************************** void init_lcd(void) //初始化lcd1602

{

delay(15);

write_com(lcd_mode);

delay(20);

write_com(undisplay_cursor);

delay(20);

write_com(0x06); //let cursor move

delay(20);

write_com(0x01); //clear lcd

delay(20);

}

//******************************************************** void display_string(char *p) //写字符串 { while(*p)

{

write_date(*p);

delay(20);

p++;

}

}

//******************************************************** void gotoxy(uchar x,uchar y)

{

if(x==1)

write_com(0x80+y);

else

write_com(0xc0+y);

}

//******************************************************** void display_data(char number)

{

uchar x,y;

x=number/10;

y=number%10;//y=number-10*x;

write_date(int_to_char[x]);

write_date(int_to_char[y]);

}

#include

#include

#define uchar unsigned char

#define uint unsigned int

uint temp; // variable of temperature

sbit DS=P1^0; //define interface

void delay1(uchar count)

{

while(count>0) count--;

}

void reset(void) //send reset and initialization command {

DS=0;

delay1(100);

DS=1;

delay1(4);

delay1(200);

}

bit read_bit(void) //read a bit

{

bit temp;

DS=0;

_nop_();

DS=1;

_nop_();

temp=DS;

delay1(200);

return temp;

}

uchar read_byte(void) //read a byte date

{

uchar i,byte=0;

bit j;

for(i=0;i<8;i++)

{

byte=_cror_(byte ,1);

j=read_bit();

if(j==0) byte=byte|0x00;

else byte=byte|0x80;

}

return byte;

}

void write_byte(uchar command) //write a byte to ds18b20 {

uchar i;

for(i=0;i<8;i++)

{

if((command & 0x01)==0)

{

DS=0;

delay1(8);

DS=1;

}

else

{

DS=0;

_nop_();

DS=1;

delay1(8);

}

command=_cror_(command,1);

}

}

void tmpchange(void) //DS18B20 begin change

{

reset();

write_byte(0xcc); //直接向18b20发送温度变换命令write_byte(0x44); //启动18b20进行温度转换

}

uint tmp() //get the temperature

{

float tt;

uchar a,b;

reset();

write_byte(0xcc); //直接向18b20发送温度变换命令

write_byte(0xbe); //读取温度寄存器的温度值

a=read_byte();//读低八位

b=read_byte();//读高八位

temp=b;

temp<<=8; //two byte compose a int variable

temp=temp|a;

tt=temp*0.0625;

temp=tt*10+0.5;

return temp;

}

#include #include

#define uchar unsigned char #define uint unsigned int

uint temp2; // variable of temperature

sbit DS2=P1^1; //define interface

void delay2(uchar count)

{

while(count>0) count--;

}

void reset2(void) //send reset and initialization command {

DS2=0;

delay2(100);

DS2=1;

delay2(4);

delay2(200);

}

bit read_bit2(void) //read a bit

{

DS2=0;

_nop_();

DS2=1;

_nop_();

temp=DS2;

delay2(200);

return temp;

}

uchar read_byte2(void) //read a byte date

{

uchar i,byte=0;

bit j;

for(i=0;i<8;i++)

{

byte=_cror_(byte ,1);

j=read_bit2();

if(j==0) byte=byte|0x00;

else byte=byte|0x80;

}

return byte;

}

void write_byte2(uchar command) //write a byte to ds18b20 {

uchar i;

for(i=0;i<8;i++)

{

if((command & 0x01)==0)

{

DS2=0;

delay2(8);

DS2=1;

_nop_(); }

else

{

DS2=0;

_nop_();

DS2=1;

delay2(8);

}

command=_cror_(command,1);

}

}

void tmpchange2(void) //DS18B20 begin change

{

reset2();

write_byte2(0xcc); //直接向18b20发送温度变换命令

write_byte2(0x44); //启动18b20进行温度转换 } uint tmp2() //get the temperature

{

float tt;

uchar a,b;

reset2();

write_byte2(0xcc); //直接向18b20发送温度变换命令write_byte2(0xbe); //读取温度寄存器的温度值

a=read_byte2();//读低八位

b=read_byte2();//读高八位

temp2=b;

temp2<<=8; //two byte compose a int variable

temp2=temp2|a;

tt=temp2*0.0625;

temp2=tt*10+0.5;

return temp2

}

#include

#include

#define uchar unsigned char

#define uint unsigned int

uint temp3; // variable of temperature

sbit DS3=P1^2; //define interface

void delay3(uchar count)

{

while(count>0) count--;

}

void reset3(void) //send reset and initialization command {

DS3=0;

delay3(100);

DS3=1;

delay3(4);

delay3(200); }

bit read_bit3(void) //read a bit

{

bit temp;

DS3=0;

_nop_();

DS3=1;

_nop_();

temp=DS3;

delay3(200);

return temp;

}

uchar read_byte3(void) //read a byte date

{

uchar i,byte=0;

bit j;

for(i=0;i<8;i++)

{

byte=_cror_(byte ,1);

j=read_bit3();

if(j==0) byte=byte|0x00;

else byte=byte|0x80;

}

return byte;

}

void write_byte3(uchar command) //write a byte to ds18b20

uchar i;

for(i=0;i<8;i++)

{

if((command & 0x01)==0)

{

DS3=0;

delay3(8);

DS3=1;

_nop_();

}

else

{

DS3=0;

_nop_();

DS3=1;

delay3(8);

}

command=_cror_(command,1);

}

}

void tmpchange3(void) //DS18B20 begin change {

reset3();

write_byte3(0xcc); //直接向18b20发送温度变换命令 write_byte3(0x44); //启动18b20进行温度转换

}

uint tmp3() //get the temperature

{

float tt;

uchar a,b;

reset3();

write_byte3(0xcc); //直接向18b20发送温度变换命令write_byte3(0xbe); //读取温度寄存器的温度值

a=read_byte3();//读低八位

b=read_byte3();//读高八位

emp3=b;

temp3<<=8; //two byte compose a int variable temp3=temp3|a;

tt=temp3*0.0625;

temp3=tt*10+0.5;

return temp3

}

#include

#include

#define uchar unsigned char

#define uint unsigned int

uint temp4; // variable of temperature

sbit DS4=P1^3; //define interface

void delay4(uchar count)

{

while(count>0) count--;

void reset4(void) //send reset and initialization command {

DS4=0;

delay4(100);

DS4=1;

delay4(4);

delay4(200); }

bit read_bit4(void) //read a bit

{

bit temp;

DS4=0;

_nop_();

DS4=1;

_nop_();

temp=DS4;

delay4(200);

return temp;

}

uchar read_byte4(void) //read a byte date

{

uchar i,byte=0;

bit j;

for(i=0;i<8;i++)

{

byte=_cror_(byte ,1);

j=read_bit4();

if(j==0) byte=byte|0x00;

else byte=byte|0x80;

}

return byte;

}

void write_byte4(uchar command) //write a byte to ds18b20 {

uchar i;

for(i=0;i<8;i++)

{

if((command & 0x01)==0)

{

DS4=0;

delay4(8);

DS4=1;

_nop_();

}

else

{

DS4=0;

_nop_();

DS4=1;

delay4(8);

}

command=_cror_(command,1);

}

void tmpchange4(void) //DS18B20 begin change

{

reset4();

write_byte4(0xcc); //直接向18b20发送温度变换命令write_byte4(0x44); //启动18b20进行温度转换

}

uint tmp4() //get the temperature

{

float tt;

uchar a,b;

reset4();

write_byte4(0xcc); //直接向18b20发送温度变换命令write_byte4(0xbe); //读取温度寄存器的温度值

a=read_byte4();//读低八位

b=read_byte4();//读高八位

temp4=b;

temp4<<=8; //two byte compose a int variable

temp4=temp4|a;

tt=temp4*0.0625;

temp4=tt*10+0.5;

return temp4

}

b多路温度采集程序

本程序为ds18b20 的多路温度采集程序,是我自己参考其他程序后改写而成,可显示 4 路正负温度值,并有上下限温度报警(声音、灯光报警) 亲测,更改端口即可使用。(主要器件:51单片机,ds18b20,lcd 显示器) 附有proteus 仿真图,及序列号采集程序 /**** 上限62 度下限-20 度****/ #include<> #define uchar unsigned char #define uint unsigned int sbit ds=P1A1; sbit rs=P1A4; sbit e=P1A6; sbit sp=P1A0; sbit d1=P1A2; sbit d2=P1A3; uchar lcdrom[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e}, {0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9}, {0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},

{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}}; unsigned char code table0[]={"TEMPERARTURE:U "}; int f[4]; int tvalue; float ftvalue; uint warnl=320; uint warnh=992; /****lcd 程序****/ void delayms(uint ms)// 延时 { uint i,j; for(i=ms;i>0;i--) for(j=110;j>0;j--); } void wrcom(uchar com)// 写指令 { delayms(1); rs=0; P3=com; delayms(1); e=1; delayms(1); e=0; } void wrdat(uchar dat)// 写数据 { rs=1; e=0; P3=dat; delayms(5);

温度采集报警系统的设计。

温度采集报警系统的设计院系电子信息工程学院专业电子信息工程班级 1 姓名孙黄超

摘要 温度采集广泛应用于人民的生产和生活中,使用温度计来采集温度,这样不仅采集精度低、实时性差,而且操作人员的劳动强度大。为了解决这一问题,本文介绍了一种采用集成温度传感器DS18B20作为检测元件,AT89C51作为CPU的温度监控系统。利用数字温度传感器DS18B20与AT89C51单片机结合来测量温度,利用相应的显示器显示温度值。利用仿真工具Proteus进行单片机应用系统的虚拟设计与仿真调试。在Keil μVision3开发环境下进行C51语言程序开发。本课题主要有键盘输入模块、传感器采集模块、显示模块、报警模块、CPU处理模块、电源供电及复位模块组成。本文介绍了该温度采集报警系统的硬件和软件设计。 关键字:数据采集、传感器、AT89S51单片机、仿真调试

目录 摘要 ............................................................................................................... I 目录 ............................................................................................................. II 1 引言 .. (1) 1.1 研究背景及意义 (1) 1.2 国内外研究现状 (1) 2 温度采集报警系统原理说明 (1) 3 硬件设计 (3) 3.1 总体方案设计 (3) 3.2 主要模块设计 (3) 3.2.1 晶振电路 (3) 3.2.2 复位电路 (4) 3.2.3 按键操作电路 (4) 3.2.4 显示电路 (5) 3.2.5 报警电路 (5) 3.2.6 温度传感器选择........................................... (5) 3.2.7 实现温度采集报警系统的整体流程图 (6) 4 软件设计 (7) 4.1 温度采集传感系统的任务 (7) 4.2 Proteus的界面实现 (7) 4.3 在KeilμVision4平台下进行编程 (8) 5 系统调试与实验 (9) 6 总结 (11) 7 参考文献 (12) 8 附录 (13)

虚拟仪器温度采集系统

内蒙古科技大学虚拟仪器期末大作业 题目:虚拟仪器温度采集系统 姓名:王伍波 专业:测控技术与仪器 学号:1067112240 班级:测控10-2班 教师:肖俊生 时间:2013年6月18日

一、设计题目:虚拟仪器温度采集系统 二、设计要求: 1.连续采集温度信号,并存储 2.温度上下限报警功能,上下限可调 3.华氏、摄氏可转换显示 三、设计思路: 该设计是以计算机和单片机数据采集系统为核心,单片机数据采集系统主要完成对温度信号进行数据采集,计算机主要完成温度信号的分析、显示和控制等功能。设计中采用Intel 公司的89C51 单片机完成数据采集,采用A D 5 7 4 完成数据的A/D 转换。图2 为AD574 与89C51 单片机的接口电路。 1.设计虚拟前面板 温度监测软件设计本系统以labview8.5 作为开发工具。现以仿真数据为例来讲述系统软件对温度的监测、报警及显示功能。利用labview8.5编程使温度可以在华氏和摄氏之间随时进行切换,同时对温度实时监测。当温度超过上限要求时会及时点亮报警灯进行报警并显示每次采集过程中累加的报警次数,报警的上限值可以通过前面板的输入控件改变其值。采集进度定义为每次采集100 点。为了防止程序陷入死循环每次采集之间的时间间隔为1000ms。开始采集后在整个采集过程中可以暂停采集以便随时对温度进行观察。 2、编辑流程图 每一个程序前面板都对应着一段框图程序框图程序用

LabVIEW 图形编程语言编写.可以把它理解成传统程序的源代码。框 图程序由端口、节点、.图框和连线构成。其中端口被用来同程序前 面板的控制和显示传递数据.节点被用来实现函数和功能调用.图框 被用来实现结构化程序控制命令.而连线代表程序执行过程中的数据流.定义了框图内的数据流动方向 3、运行检验 检验是否能够完成系统的功能.改变相应参数进行进一步验证.以方便根据实际情况修改设计.从而方便实际器件的设计、调试。4、功能描述 创建一个VI程序模拟温度测量:把创建的温度计程、序 T(hermometerVI1作为一个子程序用在当前新建程序里.先前的温 度计子程序用于采集数据.而当前的程序用于显示温度曲线.并在前 面板上设定测量次数和每次测量间隔的延时;再创建一个新VI程序,进行温度测量,并把结果在波形图表上显示:利用新创建的VI程序.再输入新的字符串;据采集过程中。实时地显示数据;当采集 过程结束后,在图表上画出数据波形.并算出最大值、最小值和平 均值(此处只使用摄氏温度单位):修改TemperatureAnalysis.VI DemoReadVohageVI程序以检测温度是否超出范围.当温度超出上限(High Limit)时,前面板上的LED点亮,并且有一个蜂鸣器发声。5、设计过程 创建一个VI程序模拟温度测量假设传感器输出电压与温度成 正比。例如.当温度为70时,传感器输出电压为0.7V。本程序也

温湿度监控系统

温湿度监控系统 目录 行业需求 系统概况 行业需求 系统概况 展开 随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度监测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。 温湿度采集系统 在这种模式下,不仅效率低下不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。 石家庄恒必达科技基于这种对温湿度测控的需求而设计开发了温湿度监控系统。 环境温湿度的监控包括以下步骤:感应环境温湿度;判断感应到的温湿度是否异常;若感应到的温湿度异常,判断异常是否超过预设时间;若异常超过预设时间,则输出异常信号至主控机;异常报警;判断异常是否处理完毕;以及若异常处理完毕,解除报警。并可以利用控制器和主控机来达到机房温湿度的远程控制,从而实现环境温湿度管理的实时性和有效性。 编辑本段 行业需求

食品行业:温湿度对于食品储存来说至关重要,温湿度的变化会带来食物变质,引发食品安全问题。 档案管理:纸制品对于温湿度极为敏感,不当的保存会严重降低档案保存年限。 温室大棚:植物的生长对于温湿度要求极为严格,不当的温湿度下,植物会停止生长、甚至死亡。 动物养殖:各种动物在不同的温度下会表现出不同的生长状态,高质高产的目标要依靠适宜的环境来保障。 药品储存:根据国家相关要求,药品保存必须按照相应的温湿度进行控制。 石家庄恒必达科技有限公司设计开发的HBD-300温湿度监控系统: 系统功能 1、如实采集和记录各空间温度/温湿度情况。 2、所有的温度/温湿度数据采集和记录到一台主机计算机上,数据可以按照使用人员的要求定时自动记录并长期保存。 3、授权用户可查询历史数据,进行数据分析、打印等操作。 4、在出现异常数据的时候,可进行多种方式的报警,如:电脑图文报警、声光报警、短信报警等。 5、使用网络版软件,局域网内的远程计算机在经过授权后,可以共享温湿度数据。 6、可连接控制模块,在温湿度超出设定值后报警同时自动启动控制模块来进行降温除湿等工作。 系统组成 系统由温湿度传感器、数据通讯转换部分、上位机管理软件和控制模块(可选)组成。 1、温湿度传感器:负责检测并采集各控制点温湿度数据。 2、数据通讯转换器:负责温湿度数据采集数据的信号转换。 3、软件部分:软件部分负责对所有数据进行读取分析,并执行各项管理功能。 4、控制部分:执行远程控制指令。 系统特点

8路温度采集监控系统

目录 一、课程设计目的.................................................................................................................... - 1 - 二、课程设计题目及任务要求................................................................................................ - 1 - 1. 题目.............................................................................................................................. - 1 - 2. 任务要求...................................................................................................................... - 1 - 3. 设计流程图.................................................................................................................. - 1 - 三、电路分析............................................................................................................................ - 2 - 1.运用Proteus软件画出电路图如下.......................................................................... - 2 - 2.发送端电路设计分析.................................................................................................. - 3 - 3.接收端电路分析.......................................................................................................... - 4 - 4.键盘电路设计.............................................................................................................. - 5 - 四、程序分析............................................................................................................................ - 6 - 1.发送端程序.................................................................................................................. - 6 - 2.接收端程序................................................................................................................ - 19 - 五、硬件电路介绍.................................................................................................................. - 22 - 1. RS-232串口通信总线及其接口............................................................................... - 22 - 2. MAX232芯片............................................................................................................... - 23 - 3. 74LS245芯片............................................................................................................. - 24 - 4. DS18B20温度传感器................................................................................................. - 25 - 六、在课程设计过程中遇到的问题........................................................... 错误!未定义书签。 1.使用Protues软件画图时问题................................................. 错误!未定义书签。 2.程序编写遇到问题..................................................................... 错误!未定义书签。 七、总结....................................................................................................... 错误!未定义书签。

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

毕业设计论文 远程温度采集测量系统 系电子信息工程系 专业电子信息工程技术姓名张一浩班级电信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℃,系统设有语音报温和温度上限报警功能,所有指标均满足题目的基本要求和发挥部分要求。 关键词:温度传感器;接收电路;温度的测量

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

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

简易数字温度采集系统设计

电子技术课程设计 题目: 简易数字温度采集系统设计 学生姓名 专业 班级 指导教师 成绩 工程技术学院 2015 年12 月

*1、前言 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,电子技术得到了的迅猛发展,数字电路应用广泛,电子技术深入各个领域。通过这一电子技术课程设计来让我们熟悉理论知识与实践相结合的综合训练,从而达到对我们运用能力进行检查和综合素质的培养。 *1.1课程设计要求与目的 1.1.1基本设计要求与原则 本次课程设计的所选题目是简易温度数字采集系统设计。该系统的电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此温度采集系统可以测量得温度范围—55~+125℃并通过一个四位一体的7段数码管显示出来。 整个课程设计以先设计,再仿真,最后进行实物焊接与调试的步骤进行。 基本要求: 1、能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。 2、根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研课程设计中所遇到的问题,培养自己分析、解决问题的能力。 3、进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。 4、学会电子电路的安装与调试技能,掌握常用仪器设备的正确使用方法。利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。 基本原则: 1,小组团队设计不能从网上下载,自己动手编排电路,流程图,编写程序。 2,电路图必须采用PROTEL软件绘制,用multisim或者proteus软件仿真,并提交程序及结果、课程论文电子版。 1.1.2设计的基本目的

温度采集解决方案

目 录 第一部分:产品介绍.............................................- 3 - 一、适用行业...............................................- 3 - 二、产品结构...............................................- 3 - 三、用户需求...............................................- 3 - 四、产品特点...............................................- 5 - 第二部分:解决方案.............................................- 8 - 一、系统简介...............................................- 8 - 二、远端部分设计...........................................- 9 - 三、网络部分设计..........................................- 12 - 四、中控部分设计..........................................- 13 - 第三部分:系统基本配置........................................- 20 -第四部分:常见问题的解答......................................- 21 -第五部分:设备技术指标........................................- 23 -第六部分:成功案例............................................- 26 -

基于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功能。若要修改常数值,用标签工具双点数值,再写入新的数值。

温度监测报警系统设计报告

目录 一、设计任务与设计要求 (1) 二、设计原理 (1) 2.1 主要硬件介绍 (1) 2.1.1 DS18B20数字温度传感器 (1) 2.1.2 AT89C51单片机芯片 (3) 2.2 系统原理结构 (3) 三、设计方案 (4) 3.1 硬件部分 (4) 3.1.1 温度测量模块 (4) 3.1.2 LED数码管显示模块 (4) 3.1.3 按键模块 (5) 3.1.4 系统整体结构仿真图 (5) 3.2 软件部分 (5) 3.2.1DS18B20传感器程序 (5) 3.2.2键盘读取及确认程序 (7) 3.2.3DS18B20操作流程图 (8) 四、调试与性能分析 (9) 4.1 proteus仿真结果 (9) 4.2实物测试 (9) 4.2.1正常情况 (9) 4.2.2报警状态 (10) 五、心得体会 (10) 六、成品展示 (11) 七、附录部分 (12) 附件一、电路设计原理图 (12) 附件二、系统设计原始代码程序 (13)

一、设计任务与设计要求 本设计主要利用单片机AT89C51 芯片和以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20相结合来实现装置周围温度的采集,其中以单片机AT89C51 芯片为核心,辅以温度传感器DS18B20和LED数码管及必要的外围电路,构成一个结构简单、测温准确、具有一定控制功能的温度监视警报装系统。 功能要求: 添加温度报警功能,通过4个按键来设置温度的上下限值,当用DS18B20 测得的温度不在所设置的温度范围内,蜂鸣器开始鸣报。 二、设计原理 2.1 主要硬件介绍 2.1.1 DS18B20数字温度传感器 DS18B20 数字温度传感器提供9~12 位摄氏温度的测量,拥有非易失性用户可编程最高与最低触发点告警功能。DS18B20 通过单总线实现通信,单总线通常是DS18B20连接到中央微控制器的一条数据线(和地)。它能够感应温度的范围为-55℃~+125℃,在-10℃~+85℃的测量的精度是±0.5℃,而且DS18B20 可以直接从数据线上获取供电(寄生电源)而不需要一个额外的外部电源。 DS18B20 使用DALLAS 独有的单总线(1—wire)协议使得总线通信只需要一根控制线,控制线需要一个较小的上拉电阻,因为所有的期间都是通过三态或开路端口连接在总线上的(DS18B20 是这种情况)。在这种总线系统中,微控制器(主器件)识别和寻址挂接在总线上具有独特64 位序列号的器件。因为每个器件拥有独特的序列号,因此挂接到总线上的器件在理论上是不受限制的,单总线(1-wire)协议包括指令的详细解释和“时隙”。这个数据表包含在单总线系统(1-WIRE BUS SYSTEM)部分。DS18B20 的另外一个特征是能够在没有外部供电的情况下工作。当总线为高的时候,电源有上拉电阻通过DQ 引脚提供,高总线信号给内部电容(Cpp)充电,这就使得总线为的时候给器件提供电源,这种从单总线上移除电源的方法跟寄生电源有关,作为一种选择,DS8B20 也可以采用引脚VDD 通过外部电源给器件供电。 DS18B20 引脚定义: (1) GND为电源地; (2) DQ为数字信号输入/输出端; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 图2.1.1 DS18B20 引脚排列图

8路温度采集系统

实习报告 课题:八路温度采集仪 日期:2015.8.3

目录: 一、实验目的 (3) 二、实验内容 (3) 三、实验步骤与结果 (3) 四、实验存在的问题 (14) 五、总结 (14) 六、附录(上位机、下位机) (14)

一、实验目的: 1、DXP与Labview软件的运用; 2、单片机编程的掌握; 3硬件的焊接与调试; 4、熟练运用和掌握原理图设计、PCB板的制作、元器件焊接与调试、虚拟仪器的使用。 二、实验内容: 运用单片机搭建一个小系统。此系统可以同时采集8路温度信息(由于硬件条件的限制,没人只有4个温度传感器,所以最后只能为四路温度采集),而此信息来自与8个DS18B20,同时循环显示于数码管。然后后期运用虚拟仪器Labview采集单片机所发送的温度信息进行处理,并形成完整的虚拟仪器。 三、实验步骤与结果: 1、原理图的设计 采集系统主要元器件介绍: STC89C52RC: STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选. 其I/O口、中断的运用可以参照89C51的任何类型。 DS18B20: DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有

四路温度采集系统系统

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

基于51的温度报警器设计..

目录 1 概述 (2) 1.1 研究背景 (2) 1.2 设计思想及基本功能 (2) 2 总体方案设计 (3) 2.1 方案选取 (3) 2.2 系统框图 (5) 2.3 总体方案设计 (6) 3 硬件电路设计 (6) 3.1 电源电路设计 (6) 3.2 晶振电路 (7) 3.3 复位电路 (7) 3.4 矩阵键盘电路 (8) 3.5 温度检测电路 (9) 3.6 液晶显示电路 (10) 3.7 蜂鸣器报警电路 (11) 4 系统软件设计 (12) 4.1 主程序软件设计 (12) 4.2 键盘扫描程序设计 (14) 4.3 温度上下限设定程序设计 (15) 4.4 延时程序设计 (16) 5系统调试 (16) 6总结 (18) 参考文献 (18) 附录1 系统原理图 (19) 附录2 程序清单 (20)

1 概述 1.1 研究背景 温度作为一种最基本的环境参数,和人们的安全、生活,工农业生产有着紧密的联系,因此在某些场合对温度进行检测,并且在温度超过期待范围后进行报警便显得尤为重要,对能实现温度检测并报警的装置的设计和研发也就有了特别的意义。 单片机作为一种微控制器,由于具有体积小,质量轻,功耗低,价格便宜,可靠性高,功能强大等特点,已经进入人们生活,工业生产的各个领域,现在很难在某个领域看不到单片机的痕迹。在智能仪表领域,由于单片机的上述优点,用单片机作为控制平台,结合不同类型的传感器,可以很容易地对温度,湿度,流量等物理量进行检测。 针对在日常生活和工业生产中对温度进行检测和监控的需求,本课题以AT89C51单片机为核心设计了一种温度报警器,它可以通过键盘对温度进行上下限设置,用液晶进行温度显示,并且在超出温度设定范围后发声报警。本设计也具有一定的扩展性,例如可以再加一个烟尘传感器和光电传感器,扩展为火灾报警器。 1.2 设计思想及基本功能 本课题对温度报警器进行设计时,在满足温度检测和报警功能的基础上,为了增加其应用的灵活性,采用了矩阵键盘电路,从而可以对温度报警范围进行设定,以适应对温度有检测需求的不同应用场合。为了增加人机交互性,采用了功耗低的字符型液晶显示汉字和温度。 该温度报警器具有以下基本功能: (1)手动设定温度范围:该功能使用户可以根据不同场合设定温度报警范围,增强了该设计的应用性。 (2)温度采集:采用了数字温度传感器对现场温度在-55℃到+125℃范围内的应用场合进行温度采集。 (3)液晶显示:通过常用的液晶模块对当前温度传感器采集的温度进行显示。 (4)蜂鸣器报警:当温度传感器采集的温度不在设定范围内时,使蜂鸣器发

温湿度采集系统设计

目录 第1章设计意义及要求 (1) 1.1 设计意义 (1) 1.2 设计要求 (1) 第2章硬件设计 (2) 2.1 AT89S52芯片介绍 (2) 2.2 液晶显示器LCD1602 (3) 2.2.1 液晶显示原理 (3) 2.2.2 液晶显示器分类 (3) 2.2.3 显示原理 (3) 2.2.4 LCD1602的基本参数及引脚功能 (4) 2.3 温湿度模块DHT11介绍 (6) 2.3.1 DHT11概述 (6) 2.3.2 DHT11传感特性说明 (7) 2.3.3 DHT11封装信息 (8) 2.3.4 串行接口(单线双向) (8) 第3章设计实现 (11) 3.1 设计框图及流程 (11) 3.2 设计结果及分析 (11) 第4章设计总结 (13) 参考文献 (14) 附录 (15)

第1章设计意义及要求 1.1 设计意义 最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。 现代社会越来越多的场所会涉及到温度与湿度并将其显示。由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18℃,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。如何高效、稳定地对数据(包括温度、湿度光线、压力等项目)进行实时采集对于现代的企业、工厂、研究所等对数据精度要求较高的单位具有非常重要的意义。 1.2 设计要求 本系统设计采用温度和湿度作为采集对象,是以单片机为核心的温度、湿度采集、数字显示系统,用液晶显示出当前温度、湿度的信息。以此了解AT89S52芯片为核心外接温度传感器和湿度传感器模块在液晶显示屏上显示当前的温度和湿度的过程。

温度监控系统使用说明修订稿

温度监控系统使用说明 WEIHUA system office room 【WEIHUA 16H-WEIHUA WEIHUA8Q8-

精英血液资源平台温度管理系统贵州精英企业科技发展有限公司

一、概述。 随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显着的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。 面对如此巨大的发展空间,精英公司针对于各地方血站,医院等相关医疗部门设计开发了温度监控系统,一套系统可达到32路温度检测对象(如冰箱)的同时监控,很好的解决了由人工抄写温度数据带来的繁琐以及不准确的问题。 1、系统总体功能 ●32路温度检测对象的同时监控。 ●24小时实时温度采集。 ●温度超标预警。 ●温度统计查询,报表。 ●温度数据的共享。(卫生厅等上级部门能实时监控各单 位的温度情况)

●温度超标短信通知。 2、运行环境 (1) 软件环境 Windows 操作系统: ●Windows 9X/ME。 ●Windows 2000/XP(推荐)。 (2) 硬件环境 建议配置: CPU:奔腾III 800 以上 内存:128 MB以上 显卡:标准 VGA,24 位真彩色 其它:光驱、鼠标

3、接线说明 注意:上图中的红线和黑线分别接485转换器的D+/A,D-/B,具体接法在传感器的线上贴的有标签。。按照标签提示连接即可。可以在该线和485接口间接延长线。 二、具体模块介绍 1、参数配置: 打开温度程序,在主菜单系统配置---参数配置 如下图: 红线 温度表 传感 485转换 主机 黑线 COM 口 电源

基于labView的温度采集系统设计

基于LabVIEW的温度采集系统设计 摘要:设计了基于LabV IEW的温度采集系统。它利用DS18B20数字温度传感器和STC公司生产的STC89C52单片机采集被测环境温度,将测得的数据经串口传给计算机。计算机利用LabV IEW的V ISA读取串口数据并进行处理和显示,实现基于V ISA的串口温度采集。 关键词:温度传感器;单片机;LabV IEW;温度采集 1引言 虚拟仪器(Virtual Instrument)是基于计算机的软硬件测试平台,它可代替传统的测量仪器。LabVIEW是由美国国家仪器公司(National Instruments Co.)推出的、主要面向计算机测控领域的虚拟仪器软件开发平台,是一种基于图形开发、调试和运行的集成化环境[1]。 利用LabVIEW设计的数据采集系统,可模拟采集各种信号,但是配备NI 公司的数据采集板卡比较贵,因此,可以选择单片机小系统作为前端数据采集系统,进行采集数据,然后通过RS-232串口通讯将数据送给计算机,在LabVIEW 开发平台下,对数据进行各种处理、分析并对信号进行存储、显示和打印,从而实现了一种在LabVIEW环境下的单片机数据采集系统。 2 温度采集系统设计 本系统采用STC公司生产STC89C52单片机作为温度数据采集和传输的主控芯片,温度传感器采用单总线方式的集成数字温度传感器DS18B20。采集得到的数据利用单片机经串口通信的方式传输至计算机的串口。计算机上位机软件采用数据处理能力超强的LabV IEW软件编写,利用其所带的V ISA驱动进行串口的数据采集和处理,实现了基于V ISA的串口温度采集。 2.1温度采集系统的硬件设计 本系统以AT89C51为中央处理单元,利用DS18B20数字温度传感器对温度信号进行采集,采集到的信号被送到AT89C51中, 将采集到的温度值在LCD上显示并通过串口发送到上位机,其原理图如1所示(见附录1)。 2.1.1 中央处理单元——STC89C51 本设计选用的中央处理单元是STC89C52单片机,STC89C52是一种带8K 字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Eras-able Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除。该器件采用ATMEL高密度非易失存储器制

相关文档
最新文档