温度检测及报警系统_第1页
温度检测及报警系统_第2页
温度检测及报警系统_第3页
温度检测及报警系统_第4页
温度检测及报警系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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:将数据写入暂存器的T

8、H、TL字节复制暂存器 48H:把暂存器的TH、TL字节写到E2RAM中读电源供电方式 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 u

9、vsion3开发平台,采用C51语言编写。本程序采用模块化程序方法,主要分为以下三个模块: LCD初始化显示模块 DS18B20数据采集模块 温度报警上下限设置模块程序流程图: 源程序:#include<reg51.h>#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;uns

10、igned char code str1="temperature is:"unsigned char 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

11、显示模块*/void delay1ms(unsigned int ms)/延时1毫秒unsigned int i,j; for(i=0;i<ms;i+) for(j=0;j<100;j+);void delay1(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;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

12、 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()/初始化设置/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

13、(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); /*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拉低

14、delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd() unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;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; i>0; i-) DQ = 0

15、; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; read_temp()uchar a,b;ds1820rst(); ds1820wr(0xcc);/ds1820wr(0x44);/ds1820rst(); ds1820wr(0xcc);/ ds1820wr(0xbe);/ a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a; if(tvalue<0x0fff) tflag=0; else tvalue=tvalue+1;tf

16、lag=1; tvalue=tvalue*(0.625);/真实温度return(tvalue);void ds1820disp()/温度值显示 uchar i; disdata1=tvalue%1000/100+0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata4=tvalue%10+0x30;/小数位 disdata9=LCD10upnum/10; disdata10=LCD10upnum%10; disdata14=LCD10downnum/10; disdata15=LCD10downnum%10; if(tflag=0) /+ dis

17、data0=tvalue/1000+0x30;/正温度显示百位数 else /- disdata0=0x2d;/负温度显示负号 wr_com(0xC0);for(i=0;i<16;i+) wr_dat(disdatai);temp=tvalue/10; /报警温度还原 /*上下限设及报警模块*/void key(void)if(K1=0) /模式选择delay1(5);if(K1=0)flat+;while(!K1);if(flat=1) /上限调节wr_com(0x80+0x40+9);wr_com(0x0c);/光标显示,闪烁if(flat=2) /下限wr_com(0x80+0x4

18、0+14);if(flat=3) /退出模式flat=0;wr_com(0x0c);if(flat!=0)if(K2=0) /+delay1(5);if(K2=0)while(!K2);if(flat=1)upnum+;if(upnum=65) /最高温度值+upnum=35;wr_com(0x80+0x40+9);if(flat=2)downnum+;if(downnum=20) /最底温度值-downnum=3;wr_com(0x80+0x40+14);if(K3=0) /-delay1(5);if(K3=0)while(!K3);if(flat=1)upnum-;if(upnum=35)

19、 /最高温度值upnum=65;wr_com(0x80+0x40+9);if(flat=2)downnum-;if(downnum=3) /最底温度值-downnum=20;wr_com(0x80+0x40+14);void compare(void) if(temp>=upnum|temp<=downnum)beep=0;LED=0; else beep=1;LED=1; /*main函数*/void main()init_play();/初始化显示 flat=0; upnum=30; downnum=9; while(1) read_temp();/读取温度 ds1820disp();/显示key();compare(); 五、总结与展望单片机是一门应用性与实践性很强的学科,如何学习单片机?学单片机不仅要学习理论知识,实践操作同样重要。学过单片机的人都有这样的经历。就是把自己写的程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论