標(biāo)題: 單線掛載多路ds18b20的單片機(jī)源程序 [打印本頁]

作者: xiuyueyuan2013    時間: 2018-1-13 16:01
標(biāo)題: 單線掛載多路ds18b20的單片機(jī)源程序
單線掛載多個ds18b20源碼,一份讀取單個ds18b20 rom,一份掛載多個ds18b20的,程序里只掛載了兩個,修改一下可以掛載多個,lcd1602顯示讀取的溫度

單片機(jī)源程序如下:
  1. #include"ds18b20.h"
  2. uchar rom[2][8]={
  3. {0x28,0x6e,0xe4,0x4d,0x06,0x00,0x00,0xa7},
  4. {0x28,0xff,0xa3,0xfd,0xa4,0x16,0x05,0xc8}};
  5. int temp[2];
  6. void dsinit()
  7. {
  8.    uchar i;
  9.    dsport=0;
  10.    i=90;
  11.    while(i--);
  12.    dsport=1;
  13.    i++;
  14.    i++;
  15.    while(dsport);
  16.    while(!dsport);
  17.    i++;
  18.    i++;
  19. }
  20. void dssendbit(bit x)
  21. {
  22.    uchar i;
  23.    dsport=0;
  24.    i++;
  25.    i++;
  26.    dsport=x;
  27.    i=9;
  28.    while(i--);
  29.    dsport=1;
  30.    i++;
  31.    i++;
  32. }
  33. bit dsreadbit()
  34. {
  35.    uchar i;
  36.    bit x=0;
  37.    dsport=0;
  38.    i++;
  39.    i++;
  40.    dsport=1;
  41.    i++;
  42.    i++;
  43.    if(dsport)
  44.    {
  45.       x=1;
  46.    }
  47.    i=9;
  48.    while(i--);
  49.    return x;
  50. }
  51. void dssendbyte(uchar byte)
  52. {
  53.    uchar n;
  54.    for(n=0;n<8;n++)
  55.    {
  56.       dssendbit(byte&0x01);
  57.           byte>>=1;
  58.    }
  59. }
  60. uchar dsreadbyte()
  61. {
  62.    uchar n,dat;
  63.    for(n=0;n<8;n++)
  64.    {
  65.       dat>>=1;
  66.           if(dsreadbit())
  67.           {
  68.              dat|=0x80;
  69.           }
  70.    }
  71.    return dat;
  72. }
  73. /*void dsconvert()
  74. {
  75.    uchar i;
  76.    dsinit();
  77.    dssendbyte(0xcc);
  78.    dssendbyte(0x44);
  79.    i++;
  80.    i++;
  81.    while(!dsport);
  82.    i++;
  83.    i++;
  84. }
  85. void dsreadtempcom()
  86. {
  87.    dsinit();
  88.    dssendbyte(0xcc);
  89.    dssendbyte(0xbe);
  90. }*/
  91. void dsreadtemp()
  92. {
  93.    uchar tml,tmh,n,v,i;
  94.    for(n=0;n<2;n++)
  95.    {
  96.    dsinit();
  97.    dssendbyte(0x55);
  98.    for(v=0;v<8;v++)
  99.    {
  100.       dssendbyte(rom[n][v]);
  101.    }
  102.    dssendbyte(0x44);
  103.    i++;
  104.    i++;
  105. ……………………

  106. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
單線掛載多路ds18b20.zip (75.52 KB, 下載次數(shù): 70)



作者: rrqxx    時間: 2018-1-13 20:02
這個可以有,下載來看看。
作者: xiuyueyuan2013    時間: 2018-1-14 02:57
本帖最后由 xiuyueyuan2013 于 2018-1-14 13:23 編輯

那個搜索警報的命令0xec怎么用,高手指導(dǎo)下哈,自己沒看懂pdf說明
作者: 2633664670    時間: 2018-11-16 20:53
改了端口,但為什么沒法顯示序列號啊 rom
作者: 雨潔    時間: 2019-9-9 08:57
感謝樓主




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1