吴忠躺衫网络科技有限公司

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

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

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%

( 發表人:陳翠 )

      發表評論

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

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

      ?
      YY百家乐的玩法技巧和规则| 真人百家乐官网策略| 有关百家乐官网玩家论坛| 百家乐牌桌订做| 屏南县| 9人百家乐桌布| 百家乐官网出千技巧| 百家乐投注网址| 中国百家乐官网软件| 大发888娱乐城游戏下载| 广州百家乐官网牌具公司| 新利国际娱乐网| 户型风水不好害死人 24种破财户| 博彩百家乐画谜网| 二八杠 | 澳门百家乐官网| 安图县| 六合彩资料| 视频百家乐破解| 百家乐官网具体怎么收费的| 丰镇市| 百家乐园| 高手百家乐赢钱法| 百家乐官网小路单图解| 百家乐官网庄家提成| 澳门百家乐注册| 伟博百家乐现金网| 足球百家乐官网投注网出租 | 百家乐机器昀程序| 金沙百家乐官网娱乐城场| 做生意房子选哪个方位| 百家乐官网怎么骗人| 888真人娱乐城| 盈丰| 网上娱乐城注册送现金| 亿酷棋牌世界 完整版官方免费下载| 百家乐视频二人麻将| 阴宅风水24山分房| 百家乐官网庄牌| 风水24山子怎么读| 百家乐官网缩水软件|