温度检测报警系统Word文件下载.docx
- 文档编号:16032287
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:20
- 大小:137.67KB
温度检测报警系统Word文件下载.docx
《温度检测报警系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《温度检测报警系统Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4-2(a)所示。
这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4-2(b)所示;
而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,
其电路如图4-2(c)所示:
(a)上电复位(b)按键电平复位(c)按键脉冲复位
图4-2复位电路
上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。
本系统的复位电路采用图4-2(b)上电复位方式。
2.1.3STC89C52具体介绍如下:
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
2.1.4STC89C52主要功能,如下表所示。
STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
测量部分我们采用美国DALLAS公司生产的DS18B20温度传感器。
2.2.1DS18B20简介
DS18B20数字温度传感器,该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
2.2.2封装及接线说明:
DS18B20芯片封装结构:
特点:
独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度范围为-55°
C至+125℃。
华氏相当于是-67°
F到257华氏度-10°
C至+85°
C范围内精度为±
0.5°
C
2.2.3DS18B20控制方法
DS18B20有六条控制命令:
温度转换44H:
启动DS18B20进行温度转换
读暂存器BEH:
读暂存器9个字节内容
写暂存器4EH:
将数据写入暂存器的TH、TL字节
复制暂存器48H:
把暂存器的TH、TL字节写到E2RAM中
读电源供电方式B4H:
启动DS18B20发送电源供电方式的信号给主CPU
2.2.4DS18B20的初始化
2.2.5DS18B20的写操作
2.2.6DS18B20的读操作
显示部分是用LCD1602液晶显示
2.3.1LCD1602引脚说明
见下面报警流程图模块及程序。
电路原理图如下:
DS18B20与单片机之间用单总线传输;
DS18B20的数据口与单片机的P1^7相连;
液晶LCD1602的RS、R/W和E分别于单片机的P^4、P2^5、P2^6相连;
系统软件程序基于Keiluvsion3开发平台,采用C51语言编写。
本程序采用模块化程序方法,主要分为以下三个模块:
◆LCD初始化显示模块
◆DS18B20数据采集模块
◆温度报警上下限设置模块
程序流程图:
源程序:
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitDQ=P1^7;
//ds18b20与单片机连接口
sbitRS=P2^4;
sbitRW=P2^5;
sbitEN=P2^6;
sbitK1=P2^0;
sbitK2=P2^1;
sbitK3=P2^2;
sbitLED=P1^0;
sbitbeep=P1^5;
unsignedcharcodestr1[]={"
temperatureis:
"
};
unsignedcharcodestr2[]={"
"
ucharcodeLCD10[10]={"
0123456789"
uchardatadisdata[16]={0x00,0x00,0x00,0x2E,0x00,0xDF,0x20,0x48,0x3D,0x00,0x00,0x20,0x4C,0x3D,0x00,0x00};
uinttvalue;
//温度值
uchartflag;
//温度正负标志
ucharflat,upnum,downnum,temp;
/**********************LCD显示模块***********************/
voiddelay1ms(unsignedintms)//延时1毫秒
{unsignedinti,j;
for(i=0;
i<
ms;
i++)
for(j=0;
j<
100;
j++);
}
voiddelay1(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
voidwr_com(unsignedcharcom)//写指令//
{delay1ms
(1);
RS=0;
RW=0;
EN=0;
P0=com;
/*-----------LCD数据传送口----------*/
delay1ms
(1);
EN=1;
voidwr_dat(unsignedchardat)//写数据//
;
RS=1;
P0=dat;
voidlcd_init()//初始化设置//
{delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x08);
wr_com(0x01);
wr_com(0x06);
wr_com(0x0c);
voiddisplay(unsignedchar*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测温模块**********************/
voiddelay_18B20(unsignedinti)//延时1微秒
while(i--);
voidds1820rst()
{unsignedcharx=0;
DQ=1;
//DQ复位
delay_18B20(4);
//延时
DQ=0;
//DQ拉低
delay_18B20(100);
//精确延时大于480us
//拉高
delay_18B20(40);
}
uchards1820rd()
{unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
i--)
{DQ=0;
//给脉冲信号
dat>
>
=1;
DQ=1;
if(DQ)
dat|=0x80;
delay_18B20(10);
return(dat);
voidds1820wr(ucharwdata)
{unsignedchari=0;
for(i=8;
i>
i--)
{DQ=0;
DQ=wdata&
0x01;
wdata>
read_temp()
{uchara,b;
ds1820rst();
ds1820wr(0xcc);
//
ds1820wr(0x44);
//
ds1820wr(0xb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 检测 报警 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)