当前位置:首页 > 环境监测 > 正文内容

基于单片机温度监测报警系统设计的资料???

2022-04-06 13:31:18环境监测1


#includereg51.h
#define uchar unsigned char
#define uint unsigned int
#define led P1
#define ledw P2 
uchar ledtab[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit dq=P3^7 ;
uchar delay,f;       void dela(uchar i)   //5us   t=5+i*2
{
 while(--i);
}
void ds18b20_reset()
{
 while(1)
 {
 dq=1;
 dq=0;
 delay=250;    //540us延时,当delay=1时延时为2us ,T=2*x
 while(--delay);
 dq=1;
 delay=25;
 while(--delay);
 while(dq==0)
 {
  delay=220;
  while(--delay);
  if(dq==1)
  break;  
 }
 delay=150;
 while(--delay);
 break; 
   }
}
void ds18b20_write(uchar dat)
{
 uchar i=0;
 for(i=0;i<8;i++)
 {
  dq=1;
  dq=0;
  delay=3;
  while(--delay);
  dq=dat&0x01;
  delay=35;
  while(--delay);
  dq=1;
  dat=dat>>1;
 }
}
uchar ds18b20_read()
{
 uchar i=0,m=0;
 for(i=0;i<8;i++)
   {
    //m>>=1
    dq=1;
  dq=0;
  delay=4;
  while(--delay);
  dq=1;
  delay=4;
  while(--delay);
  if(dq==1)
  m|=0x01<<i;
  //m=m|0x80;
   delay=25;
   while(--delay);
   dq=1;
   delay=1;
   while(--delay);  
   } 
   return m;
}    uchar ds18b20_temp()
{
 uchar temp=0,temph=0,templ=0,k=0;
 ds18b20_reset();
 ds18b20_write(0xcc);
 ds18b20_write(0x44);
 ds18b20_reset();
 ds18b20_write(0xcc);
 ds18b20_write(0xbe);
 templ=ds18b20_read();
 temph=ds18b20_read();
 if((temph&0xf80)!=0)
 {
  f=1;
  templ=~templ;
  temph=~temph;
  k=templ+1;
  templ=k;
  if(templ>0xff)
  {
  temph++;
  }
 }
 else
 f=0;
 templ=templ>>4;
 temph=temph<<4;
 temp=templ|temph;
 return temp;
}
void main()
{
 uchar a=0,b=0,c=0,temp=0;
 while(1)
 {  
 temp=ds18b20_temp();
 a=temp/100;
 b=temp0/10;
 c=temp;
 
 if(f==1)
 {
  led=0xbf;
  ledw=1;
  dela(5000);
  ledw=0;
  dela(600);
 }
 led=ledtab[c];
 ledw=8;
 dela(5000);
 ledw=0;
 dela(600) ;
  
  led=ledtab[b];
  ledw=4;
    dela(5000);
  ledw=0;
  dela(600) ;
 
 
  led=ledtab[a];
  ledw=2;
  dela(5000);
  ledw=0;
  dela(600) ;
  }

  
 这是我以前写的,没加报警系统,你可以在这里面加上if()判断语句来判断温度是否高于或低于某温度值,然后再实现报警,很简单的。不懂还可以问我,我也是一个初学者,咱们共同学习,共同进步。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:http://www.shgreenbox.com/hjjc/9506.html