您好,欢迎来到锐游网。
搜索
您的当前位置:首页温度检测及报警系统

温度检测及报警系统

来源:锐游网


一、选题背景及研究意义 二、总体设计

2.1 控制部分

2.2 测量部分 2.3 显示部分

2.4 报警部分

三、硬件设计 四、软件设计 五、总结与展望

精品文库

一、选题背景及研究意义

温度是一种最基本的环境参数,人民的生活与环境的温度息息相 关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度 的测量,因此研究温度的测量方法和装置具有重要的意义。

温度是一个十分重要的物理量, 对它的测量与控制有十分重要的意 义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也 迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着 人们的身体健康;粮仓温度的检测,防止粮食发霉,最大限度地保持粮 食原有新鲜品质,达到粮食保质保鲜的目的;工业易燃品的存放。 测温技术在生产过程中,在产品质量控制和监测以及节约能源等方面发 挥了着重要作用。本实验设计实现了工业测温基本功能,同时,在设计 实验过程中,运用到单片机、模电、数电、传感器和

知识进行综合设计的能力。

C++程序设计等知

识,这既能加强我们的理论知识与实践的结合,也能够提高我们应用交 叉学科

二、总体设计

总体设计框图:

显示部分

控制部分温度米集

欢迎下载 报警部分

2

精品文库

2.1控制部分

控制部分是采用单片机STC89C52

2.1.1 STC89C52 简介

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电 压,高性能COMOS的微处理器,俗称单片机。该器件采用 ATMEL高密 度非易失存储器制造技

术制造,与工业标准的 脚相兼容。

单片机总控制电路如下图4— 1:

DB9

O Q

5Q 'n

MCS-51指令集和输出管

39

PP pppppp 11 11 11 di di tT 3 3 4 5 6 3s

37

2 7 4

WHPPFPPP p T ? 7 12

7 r— 1i vcc 二

---- VCC

21 PP PPPP PP 22

l.OuF C1+ 15

T1 OuF

2 3 4 Il 0ul4-ni 5 v+ Cl- C3+ Cl Vcc GHD Tlaut Rlui Rlout Tlin T2in R2out 16 15 14

77

RESET

l.OuF

±nJI 7 g v- TT 10

9

12

11

INTI

RXD

TXD

RD

WR FSEN

ALSP

MAX232 2.1.2 复位操作

复位操作有上电自动复位相按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的, 其电 路如图4-2 (a)所示。这佯,只要电源 Vcc的上升时间不超过 1ms, 就可以实现自动上电复位,即接通电源就成了系统的复位初始化。

按键手动复位有电平方式和脉冲方式两种。其中,按键电平复 位是通过使复位端经电阻与 Vcc电源接通而实现的,其电路如图 4-2 (b)所示;而按键脉冲复位则是利用 RC微分电路产生的正脉 冲来实现的,

其电路如图4-2 (c)所示:

欢迎下载 3

精品文库

sosVtE

Vfcjc

i

MEET

SCSI

RESET 帥JL 5”

C

■_4 0—1 Eoon Cj 4

T

RST*

RSTZVhj

2纸 RST/Vpr

L ikA Va

I

o (b)按键电平复位(c)按键脉冲复位

的电阻、电容参数适用于上电复位

图4-2复位电路 上述电路图中(a) 位信号高电平持续时间大于 2个机器周期

6MHz晶振,能保证复

本系统的复位电路采用图 4-2 ( b) 上电复位方式。 2.1.3 STC89C52具体介绍如下:

① 主电源引脚(2根)

VCC(Pin40):电源输入,接+ 5V电源 GND(Pin20):接地线

② 外接晶振引脚(2根)

XTAL1(Pin 19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 ③ 控制引脚(4根)

RST/VPP(Pin9):复位引脚,弓I脚上出现 2个机器周期的高电 平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部 程序存储器读指令,如果接高电平则从内部程序存储器读指令。

④ 可编程输入/输出引脚(32根)

STC89C52单片机有4组8位的可编程I/O 口,分别位 P0、P1、 P2、P3 口,每个口有 8位(8根引脚),共 32根。

POD ( Pin39 〜Pin32 ) : 8 位双向 I/O 口线,名称为P0.0〜P0.7 口P1 □(Pird 〜Pin8 ) : 8 位准双向 I/O 线,名称为P 1.0〜P1.7 I/O 口P2D(Pin21 〜Pin28 ) : 8 位准双向 线,名称为 P2.0〜

P 2.7

P3 口(Pin 10 〜Pin17 ) : 8 位准双向 I/O 口线,名称为P3.0

P 3.7

2.1.4 STC89C52主要功能,如下表所示。

欢迎下载 4

精品文库

STC89C52主要功能

主要功能特性

兼容MCS51指令系统 32个双向I/O 口 3个16位可编程定时/计数 器中8K可反复擦写Flash ROM 256x8bit 内部 RAM 时钟频率0-24MHZ 可编程UART串行通道 共6个中断源 3级加密位 软件设置睡眠和唤醒功能 断 2个串行中断 2个外部中断源 2个读写中断口线 低功耗空闲和掉电模式 22测量部分

测量部分我们采用美国 DALLAS公司生产的 DS18B20温度传感 器。

2.2.1 DS18B20 简介

DS18B20数字温度传感器,该产品采用美国 DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体 积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测 温和控制领域。 2.2.2封装及接线说明:

DS18B20芯片封装结构:

DO—— 1 2 3 S __ Vcc 7 GND NC 6 HC NC 一 一 一

一 一 NC 4 so同封

特点:独特的一线接口,只需要一条口线通信 化了分布式温度传感应用 范围为3.0V至5.5V无需备用电源

+ 125 C。华氏相当于是-67

多点能力,简

无需外部元件可用数据总线供电,电压

C至

C至+85 ° C

测量温度范围为-55

F到 257华氏度-10

欢迎下载 5

精品文库

范围内精度为士 0.5 °C

2.2.3 DS18B20控制方法 DS18B20有六条控制命令: 温度转换44H:启动DS18B20进行温度转换 读暂存器BEH:读暂存器9个字节内容 写暂存器4EH :将数据写入暂存器的 TH、TL字节

复制暂存器48H :把暂存器的TH、TL字节写到E2RAM中 读电源供电方式

CPU

B4H :启动DS18B20发送电源供电方式的信号给主

2.2.4 DS18B20 的初始化 2.2.5 DS18B20 的写操作 2.2.6 DS18B20 的读操作

2.3显示部分 显

示部分是用

LCD1602液晶显示 引

2.3.1 LCD1602

脚说明

引脚号 引脚名 电平 输入#输出 作用 1 Uss 电源地 UCC 电源t+suj 3 U\" 对比调整电压 4 K5 H/1 输入 鼻 K/U H/1 输入 0 E 1 , 1 — 0 输入 Ifw使能信号,■■甲诱取信息,下降沿)晞扌旨令 T [>Ba 0/1 输入#输岀 数据总线最低位》 S I>B1 0/1 输入#输出 数据总钱15\" 9 0G2 0/1 输入/输出 数扼总銭1心吕£ 10 0/1 输入/输Lii 数据总我15£3 11 DD4 0/1 输入/輸出 数ffi 12 DQ5 0/1 输入/输出 藪ffi总线ISM -la DBA 0/-I 输入/输出 数据总 DQ7 0/-I 输入/输出 数据总^111107 (>高位> 侶 A + Ucc \"D背光电源正极 K

接地 5D背光电源负极 欢迎下载 6

精品文库

2.4报警部分

见下面报警流程图模块及程序。

三、硬件」 电路原理图如下:

ST:

K

罩4\"

iiTW

四“ J •-■二二

J

♦二*:耳

U

huT nn hj hJ h* fJA Pl? tvb 屜JVJ 上『M4 同

mt

WE

>

N f#咖 FJI J-J3 rjb. KTJ KW 7J FJl fJJ P2< TV XI 5G Rrso nr 枠 RVD Tvn TXll VkL C I

0- iL>r

Cl- Vr VCT L«

rr 苗•旷 工

AluTf Fsrv 畀 <2- *AXJ3J XI

th V- TJtAl KJ X on T7 Ti a-f fiL K R l OVT TL K T2K lUUUT nsiw

J

H

Iti

t^J

DS18B20与单片机之间用单总线传输;DS18B20的数据口与单片机的 P1^7相连;液晶LCD1602的RS、R/W和E分别于单片机的P八4、P2八5、 P2八6相

连;

四、软件设计

系统软件程序基于Keil uvsion3开发平台,采用C51语言编写。本程序 采用模块化程序方法,主要分为以下三个模块: ♦ LCD初始化显示模块

欢迎下载 7

精品文库

♦ DS18B20数据采集模块 ♦温度报警上下限设置模块 程序流程图:

欢迎下载 主程序流程图

8

欢迎下载 DS18B2 0数据采集流程

精品文库

9

报警模块流程图

源程序:

#in clude

#defi ne uchar un sig ned char #defi ne uint un sig ned int sbit DQ=P1A7; //ds18b20 与单片机连接口

sbit RS二P 2八4; sbit RW= P2A5;

欢迎下载 精品文库

10

sbit EN=P 2八6;

欢迎下载 精品文库

11

精品文库

sbit K1= P\"。; sbit K2二P 2八1; sbit K3二P 2八2; sbit LED 二P1八0; sbit beep=P 1八5;

un sig ned char code str1[]={\"te mp erature is:\un sig ned char code str2[]={\" \

uchar code LCD10[10]={\"0123456789\

uchar data disdata[16]={0x00,0x00,0x00,0x2E,0x00,0xDF,0x20, 0x48,0x3D,0x00,0x00,0x20,0x4C,0x3D,0x00,0x00}; uint tvalue; // 温度值 uchar tflag; //温度正负标志 uchar flat, upnu m,dow nnu m,te mp;

/**********************LCD

显示模^块 ***********************

void delay1ms( un sig ned int ms)/延时 1 毫秒

{un sig ned int i,j; for(i=0;iuint x,y;

for(x二z;x>0;x--)

for(y=110;y>0;y--);

}

void wr_com (un sig ned char com)// 写 指令 //

{ delay1ms(1);

RS=0; RW=0;

EN=0; P0 二

com; /* LCD数据传送口

*/

delay1ms(1); EN=1;

delay1ms(1); EN=0;

}

void wr_dat( un sig ned char dat)/写 数据 //

欢迎下载 12

精品文库

{ delay1ms(1);;

RS=1; RW=0; EN=0; P 0二dat; /*

LCD数据传送口

*/

delay1ms(1); EN=1; delay1ms(1); EN=0; }

void lcd_init()// 初始化设置 II {delay1ms(15);

wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5);

wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5);

}\" 一 void dis play (un sig ned char *p)//显示 // while(* p!='\\0') {

wr_dat(* p); p++; delay1ms(1); } }

ini t_play()//初始化显示 lcd_in it(); wr_com(0x80); dis play(strl); wr_com(0xC0); dis play(str2); }

/*******************DSI8B20

测]温模^块

**********************

void delay_18B20(u nsig ned int i)//延 时 1 微秒 {

while(i--);

欢迎下载 13

}

void ds1820rst() { un sig ned char x=0; DQ = 1;

//DQ 复位

delay_18B20(4); 〃延时 DQ = 0;

//DQ 拉低

delay_18B20(100); //精确延时大于 480us DQ = 1;

// 拉高

delay_18B20(40);

uchar ds1820rd() { un sig ned char i=0; un sig ned char dat = 0; for (i=8;i>0;i--) {

DQ = 0; //给脉冲信号DQ = 1; //给脉冲信号dat|=0x80; delay_18B20(10); retur n(dat);

}

void ds1820wr(uchar wdata) {un sig ned char i=0;

for (i=8; i>0; i--) { DQ = 0;

DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; } }

read_te mp()

{uchar a,b; ds1820rst(); ds1820wr(0xcc);// ds1820wr(0x44);//

欢迎下载 dat>>=1; if(DQ)

精品文库

14

「ds1820so fva-ueAAH8- dsl820w□sagHI- va-ueHfva_ueHfva_ue*(0.625)w宀 「efu3(fva-ue)uchadisda1Hva_uef1000/100+0X30W-K4選鱼二

disdafaifaf-aguHO) e_se

wr_com(oxcoxHLCD10

〔一)一十 sdag9FLCD1supnum/s宀

10+0x30y/sdafaUfomHO「

sdagi

50」hlcd1天〒 LCD10 〔三)oaownnumfupnum%10\"八 116=++) ok

宀sdafau4」 disdafa=〔,o 」HOX2a//mM£ 和引

m 加 disdafa〔0Hva-ue/1000+0x30y/iEM®和引珊应選

2Hva_uef

選100应、

d d d10+0x30yM\"^4^

d disdafa〔4Hva-uef

void

dsl820disp()//M®血和引 测丹

MS fva-ue+n fva-ueHfva-ue-B ifava-uecoxoffo

ff_agHO 八

e_se 「(0xcc)y/ 「ds1820w(0xbe)w 「aHds1820d()- 「bHds1820d()- fva-ueHb-

精品文库

temp二tvalue/10; 〃报警温度还原 }

******************

void key(void) {

if(K1==O) {

//模式选择

下限设及报警模^块 *******************

欢迎下载

delay1(5); if(K1==O) {

flat++; while(!K1); if(flat==1) {

wr_com(0x80+0x40+9); //上限调节 wr_com(0x0c);

//光标显示闪烁

}\"

if(flat==2) // 下限

{

wr_com(0x80+0x40+14); }\"

if(flat==3) 〃退出模式

{

flat=0; wr_com(0x0c); }\" } if(K2==0) ////+++++++++++++++++++++

{ delay1(5);

if(K2==0) {

while(!K2); if(flat==1) {

upnu m++;

16} if(flat!=0) {

精品文库

if(upnu m==65)

// 最高温度值 +

upnum=35; wr_com(0x80+0x40+9);

if(flat==2) {

dow nnu m++; if(dow nnum==20)

dow nnum=3;

〃最底温度值-

wr_com(0x80+0x40+14);

} } } if(K3==0) {

////

delay1(5); if(K3==0)

while(!K3); if(flat==1) {

upnu m--; if(upnu m==35)

//最高温度值

upnum=65; wr_com(0x80+0x40+9);

if(flat==2) {

dow nnu m--; if(downnum==3)

//最底温度值-

dow nnum=20;

wr_com(0x80+0x40+14);

欢迎下载

17

精品文库

void comp are(void) {

if(te mp>=upnu m||te mp< 二dow nnum) {

bee p=0; LED=0; } else {

beep=1; LED=1;

} }

/************************ main void mai n() {

ini t_play();//初始化显示

flat=0; upnum=30; dow nnum=9;

while(1)

{

read_te mp ();/读取温度 ds1820dis p();/湿示 key(); comp are();

欢迎下载 *************************/

18函

精品文库

五、总结与展望

单片机是一门应用性与实践性很强的学科,如何学习单片机?

学单片机不仅要学习理论知识,实践操作同样重要。学过单片机的 人都有这样的经历。就是把自己写的程序烧录到单片机里面的时候会发 现与自己想要的结果又很大的不同。这就是因为缺少实践操作的原因。

设计本系统的过程中我们遇到了两大问题:

一是软件问题。在编写 DS18B20的测量程序的过程中遇到了很多 问题,刚开始总是得不到测量数据,后来仔细读 发现写时序的DS18B20说明资料, 时候出了点问题,然后我们又按照着 序和接收时序将DS18B20的通讯时 程序一条条重写,经过调试后,用 P roteus仿真软件可 以仿真出正确的结果。但软件仿真与硬件还是有点区

别,等我们把电路 板做出来的时候,把程序烧录进去,发现出错!经过再三检查,不断的 思考,最后我发现软件仿真是在硬件理想状态下运行的。因此,我对应 的将软件程序进行了一些最后可以在我们做的硬件电路板中 细节修改。 进行正确的测量与显示。

二是硬件问题。刚开始画 PCB 做第时,没有联系到做实际板的问题。 一块板的时候遇到了如下问题: 一致;画封装与元器件的实际封装大小不 过孔的设置太小;导线设置太小;封装

画反了等。因为第一块板 子的功能还不能顺利的实现,所以我们很认真的检查了电路板,通过电 路检测,发现板子的电路有些封装画反了。通过检查和检查板子出现的 情况,我们PCB的错误一点点的改正。后来,我们就是这样一点点的 检查板子的来完成我们的作品。

本系统具有较强的实用性,我对 DS18B20及一些测量温度的传感 器进行了比较,DS18B20不仅测量精度高,稳定性好,体积小巧,而且 价格也比较便宜。另外,本系统还具有较高的扩展性,可以制作时钟, 计算器,温度测量于一体,具有较强的实用价值。

欢迎下载 19

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ryyc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务