温度检测及报警系统

上传人:206****923 文档编号:91781780 上传时间:2019-07-01 格式:DOC 页数:19 大小:349.02KB
返回 下载 相关 举报
温度检测及报警系统_第1页
第1页 / 共19页
温度检测及报警系统_第2页
第2页 / 共19页
温度检测及报警系统_第3页
第3页 / 共19页
温度检测及报警系统_第4页
第4页 / 共19页
温度检测及报警系统_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《温度检测及报警系统》由会员分享,可在线阅读,更多相关《温度检测及报警系统(19页珍藏版)》请在金锄头文库上搜索。

1、目录一、选题背景及研究意义二、总体设计2.1控制部分2.2测量部分2.3显示部分2.4报警部分三、硬件设计四、软件设计五、总结与展望一、选题背景及研究意义温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。温度是一个十分重要的物理量,对它的测量与控制有十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度:如大气及空调房中温度的高低,直接影响着人们的身体健康;粮仓温度的检测,防止粮食发霉,最大限度地保持粮食原有新鲜品质,达到粮食保质保鲜

2、的目的;工业易燃品的存放。测温技术在生产过程中,在产品质量控制和监测以及节约能源等方面发挥了着重要作用。本实验设计实现了工业测温基本功能,同时,在设计实验过程中,运用到单片机、模电、数电、传感器和C+程序设计等知识,这既能加强我们的理论知识与实践的结合,也能够提高我们应用交叉学科知识进行综合设计的能力。二、总体设计总体设计框图:2.1控制部分控制部分是采用单片机STC89C52。2.1.1 STC89C52简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51

3、指令集和输出管脚相兼容。单片机总控制电路如下图41:2.1.2 复位操作复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4-2(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4-2(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图4-2(c)所示:(a)上电复位 (b)按键电平复位 (c)按键脉冲复位图4-2复位电路上述电路图中的电阻

4、、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。本系统的复位电路采用图4-2(b)上电复位方式。2.1.3 STC89C52具体介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的

5、内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.72.1.4 STC89C52主要功能,如下表所示。STC89C52主

6、要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.2测量部分测量部分我们采用美国DALLAS公司生产的DS18B20温度传感器。2.2.1 DS18B20简介DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测

7、温和控制领域。2.2.2封装及接线说明:DS18B20芯片封装结构:特点:独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0V至5.5V无需备用电源 测量温度范围为-55 C至+125 。华氏相当于是-67 F到257华氏度 -10 C至+85 C范围内精度为0.5 C2.2.3 DS18B20控制方法DS18B20有六条控制命令:温度转换 44H:启动DS18B20进行温度转换读暂存器 BEH:读暂存器9个字节内容写暂存器 4EH:将数据写入暂存器的TH、TL字节复制暂存器 48H:把暂存器的TH、TL字节写到E2RAM中

8、读电源供电方式 B4H:启动DS18B20发送电源供电方式的信号给主CPU2.2.4 DS18B20的初始化2.2.5 DS18B20的写操作2.2.6 DS18B20的读操作2.3显示部分显示部分是用LCD1602液晶显示2.3.1 LCD1602引脚说明2.4报警部分见下面报警流程图模块及程序。三、硬件设计电路原理图如下:DS18B20与单片机之间用单总线传输;DS18B20的数据口与单片机的P17相连;液晶LCD1602的RS、R/W和E分别于单片机的P4、P25、P26相连;四、软件设计系统软件程序基于Keil uvsion3开发平台,采用C51语言编写。本程序采用模块化程序方法,主要

9、分为以下三个模块: LCD初始化显示模块 DS18B20数据采集模块 温度报警上下限设置模块程序流程图: 源程序:#include#define uchar unsigned char#define uint unsigned intsbit DQ=P17; /ds18b20与单片机连接口sbit RS=P24;sbit RW=P25;sbit EN=P26;sbit K1=P20; sbit K2=P21;sbit K3=P22; sbit LED=P10;sbit beep=P15;unsigned char code str1=temperature is:;unsigned char

10、code str2= ;uchar code LCD1010=0123456789;uchar data disdata16=0x00,0x00,0x00,0x2E,0x00,0xDF,0x20, 0x48,0x3D,0x00,0x00,0x20,0x4C,0x3D,0x00,0x00;uint tvalue; /温度值uchar tflag; /温度正负标志uchar flat,upnum,downnum,temp;/*LCD显示模块*/void delay1ms(unsigned int ms)/延时1毫秒unsigned int i,j; for(i=0;ims;i+) for(j=0;

11、j0;x-)for(y=110;y0;y-);void wr_com(unsigned char com)/写指令/ delay1ms(1); RS=0; RW=0; EN=0; P0=com; /*-LCD数据传送口- */ delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(unsigned char dat)/写数据/ delay1ms(1); RS=1; RW=0; EN=0; P0=dat; /*-LCD数据传送口- */ delay1ms(1); EN=1; delay1ms(1); EN=0;void lcd_init()/初始化设置

12、/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 display(unsigned char *p)/显示/while(*p!=0)wr_dat(*p);p+;delay1ms(1);init_play()/初始化显示 lcd_init(); wr_com(0x80);display(str1);wr_com(0xC0); display(str2);

13、 /*DS18B20测温模块*/void delay_18B20(unsigned int i)/延时1微秒 while(i-);void ds1820rst() unsigned char x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd() unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ =

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号