多路温度检测及报警系统(DS18B20)

整体布图

此温度报警系统具体为3路检测及报警,二路显示。
温度上下限自由设置,但被传感器(ds18b20)限制。报警则为由3盏led灯分别对应各自传感器,一旦超过上下限,则灯长亮。
主要有四个部分构成单片机部分,显示部分,led报警部分,传感器部分
三路温度报警,二路温度显示

单片机及LED报警部分

采用80c51 时钟频率为12MHz

以下为具体配置

传感器ds18b20 部分


以下为具体配置


显示器LCD1602部分


以下为具体配置

代码部分

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^4;
sbit RW=P2^1;
sbit EN=P2^2;
sbit DQ=P3^2; 

sbit LED1=P1^0;
sbit LED2=P1^3;
sbit LED3=P1^7;

uchar code str1[]={
   0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e};
uchar code str2[]={
   0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9};
uchar code str3[]={
   0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0};
uchar code table[8]={
   0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};        
uchar data disdata[5];

uint tvalue;//温度数据储存
uchar tflag;//温度符号位
uint high=600;//最高温
uint low=100;//最低温

/*************************lcd1602初始化**************************/
void delay1ms(uint ms)//1ms延时
{
     uint i,j;
   for(i=0;i<ms;i++)
    for(j=0;j<100;j++);
}

void wr_com(uchar com)  //向LCD1602写入指令
{
    delay1ms(1);
   RS=0;//指令
   RW=0;//写入
   EN=0;//
   P0=com;
   delay1ms(1);
   EN=1;//允许
   delay1ms(1);
   EN=0;
  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值