衡阳派盒市场营销有限公司

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子元器件>傳感器>

ds18b20測溫程序,ds18b20溫度測量c51單片機程序

2017年11月06日 16:42 網絡整理 作者: 用戶評論(0

  DS18B20是常用的數字溫度傳感器,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。主要根據應用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環測溫,鍋爐測溫,機房測溫,農業大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。

  51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,后來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一,其代表型號是ATMEL公司的AT89系列,它廣泛應用于工業測控系統之中。很多公司都有51系列的兼容機型推出,今后很長的一段時間內將占有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。接下來我們一起來了解一下ds18b20溫度測量c51單片機程序。

  

  ds18b20溫度測量c51單片機程序

  #include《reg51.h》

  #define uchar unsigned char

  #define uint unsigned int

  sbit wela=P2^7;

  sbit dula=P2^6;

  sbit DS=P2^2;

  uchar A;

  uint dian;

  uchar smg_change[6]={10,10,10,10,10,10};

  unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

  unsigned char code weima[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

  void delay(unsigned int a)

  {

  while(a--);

  }

  void init_tempr()

  {

  uchar n;

  DS=1;

  delay(8);

  DS=0;

  delay(80); //500us

  DS=1;

  delay(8);

  n=DS;

  delay(4);

  }

  void write_byte(uchar dat)

  {

  uchar i;

  for(i=0;i《8;i++)

  {

  DS=0;

  DS=dat&0x01;

  delay(4);

  DS=1;

  dat》》=1;

  }

  delay(4);

  }

  uchar read_byte(void)

  {

  uchar i,value;

  for(i=0;i《8;i++)

  {

  DS=0;

  value》》=1;

  DS=1;

  if(DS)

  value|=0x80;

  delay(4);

  }

  return value;

  }

  uchar readtempr(void)

  {

  uint temp, a,b;

  init_tempr();

  write_byte(0xcc);

  write_byte(0x44);

  delay(300);

  init_tempr();

  write_byte(0xcc);

  write_byte(0xbe);

  a=read_byte();

  b=read_byte();

  temp=b;

  temp《《=4;

  temp+=(a&0xf0)》》4;

  dian=(a&0x0f)*10*6/10;

  return temp;

  }

  void display()

  {

  uchar i;

  for(i=0;i《6;i++)

  {

  P0=0X00;

  dula=1;

  dula=0;

  P0=weima[i];

  wela=1;

  wela=0;

  P0=duanma[smg_change[i]];

  dula=1;

  dula=0;

  delay(200);

  }

  P0=weima[1];

  wela=1;

  wela=0;

  P0=duanma[smg_change[1]]|0x80;

  dula=1;

  dula=0;

  delay(200);

  P0=0X00;

  dula=1;

  dula=0;

  }

  void dis_deal()

  {

  smg_change[0]=A/10;

  smg_change[1]= A%10;

  smg_change[2]=dian/10 ;

  smg_change[3]=dian%10 ;

  }

  void main()

  {

  while(1)

  {

  A=readtempr();

  dis_deal();

  display();

  }

  }

非常好我支持^.^

(1) 25%

不好我反對

(3) 75%

( 發表人:陳翠 )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      王牌百家乐的玩法技巧和规则 | 澳门百家乐怎么| 535棋牌游戏| 网上百家乐有没有假| 新葡京线上娱乐| 乐天堂百家乐娱乐网| 百家乐官网破解版下载| 澳门百家乐加盟| 百家乐官网双面数字筹码| 风水24山向| 百家乐官网有多少种游戏| 代理百家乐试玩| 试玩百家乐的玩法技巧和规则| 百家乐官网下注所有组合| 聚龍社百家乐的玩法技巧和规则| 百家乐官网赌博故事| 新皇冠现金网怎么样| 百家乐庄闲必胜手段| 豪杰百家乐官网游戏| 精通百家乐的玩法技巧和规则| 百家乐官网牌具公司| 大发888游戏代充值100| A8百家乐游戏| 百家乐官网高手怎么下注| 真钱梭哈| 大发888游戏平台寒怕| 富易堂百家乐娱乐城| 百家乐官网天上人间| 青岛棋牌室| 狮威百家乐的玩法技巧和规则 | 赣榆县| bet365存| 大发888提款怎么提| 使用的百家乐软件| 新2百家乐现金网百家乐现金网| 现金百家乐官网下载| 百家乐官网de概率| 鑫鑫百家乐官网的玩法技巧和规则 | 阳宅24山流年吉凶方位| 百家乐官网小型抽水泵| 百家乐公式|