基于單片機(jī)溫度監(jiān)測(cè)報(bào)警系統(tǒng)設(shè)計(jì)的資料???
#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延時(shí),當(dāng)delay=1時(shí)延時(shí)為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) ;
? }
}?
??
?這是我以前寫的,沒加報(bào)警系統(tǒng),你可以在這里面加上if()判斷語句來判斷溫度是否高于或低于某溫度值,然后再實(shí)現(xiàn)報(bào)警,很簡(jiǎn)單的。不懂還可以問我,我也是一個(gè)初學(xué)者,咱們共同學(xué)習(xí),共同進(jìn)步。
本網(wǎng)站文章僅供交流學(xué)習(xí) ,不作為商用, 版權(quán)歸屬原作者,部分文章推送時(shí)未能及時(shí)與原作者取得聯(lián)系,若來源標(biāo)注錯(cuò)誤或侵犯到您的權(quán)益煩請(qǐng)告知,我們將立即刪除.