久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1036|回復: 4
打印 上一主題 下一主題
收起左側

請問這個18B20溫度采集程序,報警怎么實現?

[復制鏈接]
跳轉到指定樓層
樓主
ID:634601 發表于 2020-3-8 22:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教大神:以下程序可以實現18B20進行溫度采集和數碼管溫度顯示,
但是溫度報警有問題,
請幫忙看一下那里的問題,怎么修改?

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit dx=P2^6;
sbit wx=P2^7;
sbit ds=P2^2;
sbit beep=P2^3;
bit flag;
uint bai,shi,ge,temp,num;

void delay(uint t)
{
while(t--);
}

void reset()
{
ds=1;
delay(5);
ds=0;
delay(80);
ds=1;
delay(14);
if(ds==0)
  flag=1;
else
  flag=0;
delay(20);
}

bit dubit()//讀一位
{
bit dat;
ds=0;
_nop_();
_nop_();
ds=1;
_nop_();
dat=ds;
delay(10);
return dat;
}

uchar dsdubyte()//讀一個字節
{
uchar i,j,k;
for(i=0;i<8;i++)
{
j=dubit();
k=(j<<7)|(k>>1);
}
return k;
  
}
void xiebyte(uchar dat)//寫一個字節
{
uchar i;
for(i=0;i<8;i++)
{
ds=0;
_nop_();
ds=dat&0x01;
delay(6);
ds=1;
dat=dat>>1;
}
delay(6);
}
uint duwendu()//讀取溫度
{
uchar a,b;
reset();
xiebyte(0xCC);
xiebyte(0xBE);
a=dsdubyte();
b=dsdubyte();
temp=b;
temp=temp<<8;
temp=temp|a;
temp=temp*0.0625*10+0.5;
return temp;
}

void delay1(uint z)
{
int m,n;
for(m=z;m>0;m--)
  for(n=110;n>0;n--);
}
  void xianshi (uint temp)
{

P0=table[temp/100];
dx=1;
dx=0;
P0=0xfe;
wx=1;
wx=0;
delay1(2);
P0=table[temp%100/10]|0x80; //加小數點
dx=1;
dx=0;
P0=0xfd;
wx=1;
wx=0;
delay1(2);

P0=table[temp%10];
dx=1;
dx=0;
P0=0xfb;
wx=1;
wx=0;
delay1(2);
}  
void main()
{
while(1)
{
reset();
xiebyte(0xCC);
xiebyte(0x44);
xianshi(duwendu());
if(temp>300)//想實現溫度值大于30度,讓蜂鳴器響,但是下載后,溫度不管啥時候,蜂鳴器一直叫。
beep=0;
   
}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:584814 發表于 2020-3-8 23:28 | 只看該作者
xianshi(duwendu());
temp=duwendu();//加這句試試
if(temp>300)//想實現溫度值大于30度,讓蜂鳴器響,但是下載后,溫度不管啥時候,蜂鳴器一直叫。
回復

使用道具 舉報

板凳
ID:213173 發表于 2020-3-9 07:04 | 只看該作者
void main()
{
        uchar i;
        while(1)
        {
                reset();
                xiebyte(0xCC);
                xiebyte(0x44);
                num=duwendu();
                xianshi(num);
                i++;
                if(i>250)//少許延時避免初始85度誤報警
                {
                        i=250;
                        if(num>300)
                                beep=0;   
                        else beep=1;
                }
        }
}
回復

使用道具 舉報

地板
ID:634601 發表于 2020-3-9 11:51 | 只看該作者
man1234567 發表于 2020-3-8 23:28
xianshi(duwendu());
temp=duwendu();//加這句試試
if(temp>300)//想實現溫度值大于30度,讓蜂鳴器響,但 ...

試了下,這樣還是不行啊,二樓說的方法可以的,應該是問題所在
回復

使用道具 舉報

5#
ID:634601 發表于 2020-3-9 12:20 | 只看該作者
wulin 發表于 2020-3-9 07:04
void main()
{
        uchar i;

謝謝大俠,這個方法很好的解決了問題,感謝感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九七午夜剧场福利写真 | 午夜伦理影院 | 国产精品一码二码三码在线 | 久久99深爱久久99精品 | 久久成人高清视频 | 久久免费高清视频 | 欧美国产一区二区 | 国产精品免费一区二区三区四区 | 免费看欧美一级片 | 韩三级在线观看 | 亚洲a视频| 亚洲成人午夜在线 | 亚洲 欧美 精品 | 很黄很污的网站 | 亚洲电影一区二区三区 | 精品婷婷 | 中文字幕高清免费日韩视频在线 | 精品国产一区二区三区久久 | 国产一区二区三区在线免费 | 久久专区 | 久久精品91久久久久久再现 | 日韩欧美一区二区三区在线播放 | 日韩精品一区二区三区免费视频 | 99r在线 | 久久精品99国产精品 | 亚洲最大看片网站 | 成在线人视频免费视频 | 日韩精品一区二区三区高清免费 | 欧洲毛片| v亚洲| 天天干亚洲 | 欧美一区成人 | 欧美日韩综合 | 亚洲天堂成人在线视频 | 久久精品久久综合 | 九九热最新视频 | 国产在线精品一区 | 免费午夜视频在线观看 | 91原创视频在线观看 | 天堂久久久久久久 | 国产精品一区二区av |