51单片机多路测温报警系统(AT89C51、多个DS18B20、LCD1602)

发布者:SereneSerenity最新更新时间:2022-08-22 来源: csdn关键字:51单片机  测温报警系统  AT89C51  DS18B20  LCD1602 手机看文章 扫描二维码
随时随地手机看文章

一、简介

此系统主要由AT89C51、多个DS18B20温度模块和LCD1602组成。

大致的原理是多个DS18B20按顺序采集温度到的数据传送给AT89C51的P2.7,最后通过LCD1602显示当前的实时温度,按键可以设置上下限温度,根据温度判断是否需要报警。


二、运行效果图

模拟仿真运行

在这里插入图片描述
在这里插入图片描述

三、部分代码

/*想要更多项目私wo!!!*/

#include

#include


unsigned int iTempDataH;

unsigned int SetTemp = 30;

int SetTemp1 = 1;

int num = 0;


//ÅжÏæָÁî

void Busy()

{

DATA = 0xff;

RS = 0;

RW = 1;

    while(DATA & 0x80)

    {

E = 0;

    E = 1;

    }

    E = 0;

}


//дָÁî³ÌÐò

void WriteCommand(unsigned char btCommand)

{

Busy();

RS = 0;

RW = 0;

E = 1;

DATA = btCommand;

E = 0;

}


//дÊý¾Ý³ÌÐò

void WriteData(unsigned char btData)

{

Busy();

RS = 1;

RW = 0;

E = 1;

DATA = btData;

E = 0;

}


//ÇåÆÁÏÔʾ

void Clear()

{

WriteCommand(1);

}


//³õʼ»¯

void Init()

{

WriteCommand(0x0c); //¿ªÏÔʾ,ÎÞ¹â±êÏÔʾ

WriteCommand(0x06); //ÎÄ×Ö²»¶¯£¬¹â±ê×Ô¶¯ÓÒÒÆ

WriteCommand(0x38); //ÉèÖÃÏÔʾģʽ:8λ2ÐÐ5x7µãÕó

}


//ÏÔʾµ¥¸ö×Ö·û

void DisplayOne(bit bRow, unsigned char btColumn, unsigned char btData, bit bIsNumber)

{

if (bRow) WriteCommand(0xc0 + btColumn);

else      WriteCommand(0x80 + btColumn);


if (bIsNumber) WriteData(btData + 0x30);

else            WriteData(btData);

}


//ÏÔʾ×Ö·û´®º¯Êý

void DisplayString(bit bRow, unsigned char btColumn, unsigned char *pData)

{

while (*pData != '')

    {

    if (bRow) WriteCommand(0xc0 + btColumn); //ÏÔʾÔÚµÚ1ÐÐ

    else    WriteCommand(0x80 + btColumn); //ÏÔʾÔÚµÚ0ÐÐ

WriteData(*(pData++)); //ÒªÏÔʾµÄÊý¾Ý

btColumn++; //ÁÐÊý¼ÓÒ»

    }

}


//ÑÓʱ1ms×Óº¯Êý

void Delayms(unsigned int x)

{

  unsigned char i;

while(x--)

{

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

}

}


//ÑÓʱ16us×Óº¯Êý

void Delay16us()

{

unsigned char a;


for (a = 0; a < 4; a++);

}


//ÑÓʱ60us×Óº¯Êý

void Delay60us()

{

unsigned char a;


for (a = 0; a < 18; a++);

}


//ÑÓʱ480us×Óº¯Êý

void Delay480us()

{

unsigned char a;


for (a = 0; a < 158; a++);

}


//ÑÓʱ240us×Óº¯Êý

void Delay240us()

{

unsigned char a;


for (a = 0; a < 78; a++);

}


//ÑÓʱ500ms×Óº¯Êý

void Delay500ms()

{

unsigned char a, b, c;


for (a = 0; a < 250; a++)

for (b = 0; b < 3; b++)

for (c = 0; c < 220; c++);

}


//оƬ³õʼ»¯

void Initialization()

{

while(1)

{

DQ = 0;

Delay480us(); //ÑÓʱ480us

DQ = 1;

Delay60us(); //ÑÓʱ60us

if(!DQ)  //ÊÕµ½ds18b20µÄÓ¦´ðÐźÅ

{

DQ = 1;

Delay240us(); //ÑÓʱ240us

break;

}

}

}


//дһ¸ö×Ö½Ú(´ÓµÍλ¿ªÊ¼Ð´)

void WriteByte(unsigned char btData)

{

unsigned char i, btBuffer;


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

{

btBuffer = btData >> i;

if (btBuffer & 1)

{

DQ = 0;

_nop_();

_nop_();

DQ = 1;

Delay60us();

}

else

{

DQ = 0;

Delay60us();

DQ = 1;

}

}

}


//¶ÁÒ»¸ö×Ö½Ú(´ÓµÍλ¿ªÊ¼¶Á)

unsigned char ReadByte()

{

unsigned char i, btDest;


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

{

btDest >>= 1;

DQ = 0;

_nop_();

_nop_();

DQ = 1;

Delay16us();

if (DQ) btDest |= 0x80; 

Delay60us();

}


return btDest;

}


//ÐòÁкÅÆ¥Åä

void MatchROM(const unsigned char *pMatchData)

{

unsigned char i;


Initialization();

WriteByte(MATCH_ROM);

for (i = 0; i < 8; i++) WriteByte(*(pMatchData + i));


}


//Êý¾Ý´¦Àí×Ó³ÌÐò

void DataProcess()

{

m_TempData = ReadTemperature();

if (m_TempData.btNegative) DisplayOne(1, 6, '-', 0);

else DisplayOne(1, 6, m_TempData.btThird, 1);

DisplayOne(1, 7, m_TempData.btSecond, 1);

DisplayOne(1, 8, m_TempData.btFirst, 1);

DisplayOne(1, 10, m_TempData.btDecimal, 1);

}


int main(void)

{

Clear();

Init();

DisplayString(0, 0, "T1:    T2:    ");

DisplayString(1, 0, "CurT:");

DisplayOne(1, 9, '.', 0);

while (1) 

DataProcess();

}

关键字:51单片机  测温报警系统  AT89C51  DS18B20  LCD1602 引用地址:51单片机多路测温报警系统(AT89C51、多个DS18B20、LCD1602)

上一篇:单片机设计 电子琴音乐盒(AT89C51)
下一篇:51单片机游戏(俄罗斯方块)

推荐阅读最新更新时间:2024-10-24 11:08

51单片机多路测温报警系统AT89C51、多个DS18B20LCD1602
一、简介 此系统主要由AT89C51、多个DS18B20温度模块和LCD1602组成。 大致的原理是多个DS18B20按顺序采集温度到的数据传送给AT89C51的P2.7,最后通过LCD1602显示当前的实时温度,按键可以设置上下限温度,根据温度判断是否需要报警。 二、运行效果图 模拟仿真运行 三、部分代码 /*想要更多项目私wo!!!*/ #include reg52.h #include intrins.h unsigned int iTempDataH; unsigned int SetTemp = 30; int SetTemp1 = 1; int num = 0; //ÅжÏæָÁî void
[单片机]
<font color='red'>51单片机</font>多路<font color='red'>测温</font><font color='red'>报警系统</font>(<font color='red'>AT89C51</font>、多个<font color='red'>DS18B20</font>、<font color='red'>LCD1602</font>)
单片机测温系统(AT89C51DS18B20温度传感器、LCD1602
一、简介 此系统主要由AT89C51、DS18B20温度模块和LCD1602组成。 大致的原理是DS18B20温度采集到的数据传送给AT89C51的P3.3/INT1(外部中断1),最后通过LCD1602显示当前的实时温度。 二、效果图 模拟仿真图 三、源代码 /*想要更多项目私wo!!!*/ /*************** writer:shopping.w ******************/ #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char #define delayNOP()
[单片机]
单片机<font color='red'>测温</font>系统(<font color='red'>AT89C51</font>、<font color='red'>DS18B20</font>温度传感器、<font color='red'>LCD1602</font>)
基于51单片机+DS18B20温度测温器+LCD1602显示
DS18B20特性 1.独特的单总线接口,就需一条线则可实现双向通信(测温) 2.测温范围:-55℃~+125℃,可通过编程设定9—12位分辨率,对应分辨温度分别为0.5、0.25、0.125、0.0625℃。 3.支持多点组网(可连接多个DS18B20温度传感器),多个DS18B20可以并联(3或2线)实现多个组网测温,但注意超过8个要解决好供电问题,否则电压过低会导致传输不稳定,从而数据不准确。 4.工作电压:3.0~5.5V (寄生电源方式下可由数据线供电) 5.在使用过程中不需要外围电路,全部传感元件及转换电路都在芯片内了。(上拉电阻) 6.测温结果直接是数字量输出,单总线串行传送方式,同时可传送CRC校验码(校验数据采集
[单片机]
基于<font color='red'>51单片机</font>+<font color='red'>DS18B20</font>温度<font color='red'>测温</font>器+<font color='red'>LCD1602</font>显示
利用DS18B20测温,并通过LCD1602 显示 proteus仿真 +DS1302时钟模块
main.c #include reg52.h #include onewire.h #include LCD.h #include ds1302.h #define uchar unsigned char #define uint unsigned int uchar code Write_addr ={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//写地址 uchar code Read_addr = {0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//读地址 uchar Time = {0x50,0x59,0x23,0x07,0x06,0x02,
[单片机]
利用<font color='red'>DS18B20</font><font color='red'>测温</font>,并通过<font color='red'>LCD1602</font> 显示 proteus仿真 +DS1302时钟模块
基于AT89C51单片机和传感器实现家庭安全报警系统的设计
家庭安全报警系统家庭安防报警功能是智能家居系统的重要功能,同家庭的各种传感器、功能键、探测器及执行器共同构成家庭的安防体系,是家庭安防体系的“大脑”。报警功能包括防火、防盗、煤气泄露报警及紧急求助等功能,报警系统采用先进智能型控制网络技术、由微机管理控制,实现对匪情、盗窃、火灾、煤气、紧急求助等意外事故的自动报警。然而市场上出现的各类家庭安全报警系统功能虽较齐全,但并不完善,明显的不足之处就是报警号码都是预先存入,而且没有提供人机交互功能,用户如因特殊情况需更换报警电话号码时往往无能为力,其设计显然不够人性化,也给用户带来了诸多不便。明显的不足之处就是报警号码都是预先存入,而且没有提供人机交互功能,用户如因特殊情况需更换报警电话号
[单片机]
基于<font color='red'>AT89C51单片机</font>和传感器实现家庭安全<font color='red'>报警系统</font>的设计
AT89C51单片机对智能语音拨号报警系统的设计
随着人们生活水平的提高和安防意识的增强, 急需开发面向大众、价格低廉、运行可靠的自动报警系统。鉴于住宅电话和移动通信设备的普及, 以及电话语音报警的快捷、有效及价格低廉等优点, 公共通信网成了报警系统的最佳传输媒介。本文介绍的报警系统就是在此基础上发展起来的一种智能语音拨号报警系统, 该系统可广泛用于各种对安防要求较高的场合, 如智能楼宇、商场、银行和工厂等。 电话自动报警的主要功能为: 用户根据需要把自己的手机号码、办公室电话或报警监控中心的电话预存入报警主机。报警主机不断地对所监控的设备( 门禁、烟雾探测器、窗磁、摄像头等) 状况进行巡检, 当有不安全情况( 如火灾、非法入室、视频丢失等) 发生时, 报警主机拨通预先存入的
[单片机]
<font color='red'>AT89C51单片机</font>对智能语音拨号<font color='red'>报警系统</font>的设计
51单片机基于DS18B20的温度检测并显示在lcd1602
单片机源程序如下: #include reg52.h #include stdio.h sbit DQ =P1^3; sbit RS = P1^5; sbit RW = P1^6; sbit EN = P1^7; void delay(unsigned int i); void init_DS18B20(void); unsigned char read_DS18B20(void); void write_DS18B20(unsigned char dat); double read_temperature(void); void init_lcd(void); void lcd_write_dat(unsigned cha
[单片机]
<font color='red'>51单片机</font>基于<font color='red'>DS18B20</font>的温度检测并显示在<font color='red'>lcd1602</font>上
基于AT89C51单片机DS18B20农业环境温度监测系统的设计
现代设施农业是集生物技术、工程技术、环境技术为一体的一种高技术、高效益的现代化农业生产方式。是农业产业调整,适应市场经济发展、提高土地资源利用率的有效途径。目前,一些发达国家在设施农业设备和配套技术方面均已形成了完整的体系,其现代化温室能根据作物对环境的不同需要,由微型计算机对设施内的温度、光照、湿度、空气成分等环境因子进行自动监测和调控,可实现温室作物全天候、周期性的高效生产,并逐步向温室管理的数字化、智能化发展。 我国特别是西北地区虽然地广物丰,但由于土地的沙漠化比较严重,导致可利用的土地资源越来越少,因此土地资源的高效利用问题也越来越突出,加快发展设施农业是解决问题的最有效途径。对设施农业环境中的各项环境因素进行检测和控
[单片机]
基于<font color='red'>AT89C51单片机</font>和<font color='red'>DS18B20</font>农业环境温度监测系统的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved