找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4803|回复: 10
打印 上一主题 下一主题
收起左侧

求 温度报警 程序??

[复制链接]
跳转到指定楼层
楼主
ID:34935 发表于 2012-2-25 21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我对此一点也不懂,希望指点一下。谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:27916 发表于 2012-2-26 16:52 | 只看该作者
对这个一点不懂,那还真不太好说哦
回复

使用道具 举报

板凳
ID:27916 发表于 2012-2-26 16:53 | 只看该作者
温度报警简单的,用个热敏电阻,通过单片机检测电阻的变化,来判断外界温度,是可以做到报警的
回复

使用道具 举报

地板
ID:34935 发表于 2012-2-29 20:32 | 只看该作者
可以给个程序吗? 我自己捉摸一下.
回复

使用道具 举报

5#
ID:34935 发表于 2012-2-29 20:34 | 只看该作者
怎么检测?单片机只区分"1""0".求解~
回复

使用道具 举报

6#
ID:35585 发表于 2012-3-5 16:08 | 只看该作者

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[10]  = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  //表
uchar code table2[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};  //带DP点
uchar code weiM[4]    = {0xf7,0xfb,0xfd,0xfe};
uchar data duanM[4]   = {0x00,0x00,0x00,0x00};
sbit   DQ  = P3^4;              //数据口
sbit  P12  = P1^2;    //时间、日期、温度显示转换
sbit  P14  = P1^4;    //显示暂停
sbit  P11  = P1^1;    //选择想要改变的数码管的位选
sbit  P13  = P1^3;    //码值加1
void delay(uchar i)
{
while(--i);
}
void delay2(uint i)
{
   while(--i);
}
void Init_Ds18b20(void)    
{
DQ = 1;                   
delay(1);                
DQ = 0;              
delay(250);              
DQ = 1;                  
delay(100);               
}

uchar Read_One_Byte()      
                          
{
uchar i   = 0;
uchar dat = 0;
for(i=8;i>0;i--)
{
   DQ = 0;                 
                         
   _nop_();               
   dat >>= 1;            
   DQ = 1;                 
   delay(1);               
   if(DQ)                  
   {
    dat |= 0x80;           
   }       
   delay(10);             
}
return (dat);
}

void Write_One_Byte(uchar dat)
{
uchar i = 0;
for(i=8;i>0;i--)
   {
       DQ = 0;                      
       _nop_();                      
       DQ = dat&0x01;             
                               
                            
        delay(10);                   
       DQ = 1;                       
       dat >>= 1;
        delay(1);
   }
}


uint Get_Tmp(void)                 
{
double tt;
uint temp;
uchar a,b;
Init_Ds18b20();              
Write_One_Byte(0xcc);        
Write_One_Byte(0x44);        
Init_Ds18b20();              
Write_One_Byte(0xcc);       
Write_One_Byte(0xbe);         
a = Read_One_Byte();       
b = Read_One_Byte();         
temp = b;                    
temp <<= 8;                  
temp = temp|a;             
tt = temp*0.0625;                                    
temp = tt*100+5;                                            
return temp;
}

void TDisp(uint temp)  
{
uint A1,A2,A3,A4;
uint i;
A1 = temp/1000;    //百位 
duanM[3] = A1;
A2 = temp%1000/100;   //十位
duanM[2] = A2;
A3 = temp%1000%100/10;    //个位
duanM[1] = A3;
A4 = temp%10;
duanM[0] = A4;

   for(i=0;i<4;i++)
  {
     if(i==2)
  {
      P2 = 0xff;
   P0 = 0xff;
       P0 = table2[duanM];
      P2 = weiM;
      delay2(250);  
  }
  else
  {
      P2 = 0xff;
   P0 = 0xff;
       P0 = table[duanM];
      P2 = weiM;
      delay2(250);
  }
  }
}
void main(void)
{
   uint tt;
   while(1) 
  {
   tt=Get_Tmp();
   TDisp(tt);
  }      
}

回复

使用道具 举报

7#
ID:86621 发表于 2015-8-7 19:13 | 只看该作者
希望怎么做啊  我也弄
回复

使用道具 举报

8#
ID:87089 发表于 2015-8-9 10:45 | 只看该作者
要没有用1864显示的程序?
回复

使用道具 举报

9#
ID:87089 发表于 2015-8-9 10:46 | 只看该作者
用1286显示的程序
回复

使用道具 举报

10#
ID:80594 发表于 2015-8-10 10:58 | 只看该作者
用Ds18B20做温度传感器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表