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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1543|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

我的DS18B20序列號讀取 單片機(jī)代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:790949 發(fā)表于 2020-6-27 14:40 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned  char
  4. #define uint unsigned  int

  5. sbit   DQ=P3^7;
  6. bdata  uchar dat;   
  7. sbit   dat0=dat^0;               
  8. sbit   dat7=dat^7;               
  9. sbit   RS = P2^6;
  10. sbit   RW = P2^5;
  11. sbit   E = P2^7;

  12. sfr  LCD=0x80;
  13. sbit  BF=LCD^7;
  14. void  delay15(uchar n)
  15. { do {
  16.         _nop_();
  17.         _nop_();
  18.         _nop_();
  19.         _nop_();
  20.         _nop_();
  21.         _nop_();
  22.         _nop_();
  23.         _nop_();
  24.         _nop_();
  25.         _nop_();
  26.         _nop_();
  27.         _nop_();        
  28.                     n--;
  29.         }while(n);
  30. }


  31. bit reset(void)         
  32. {
  33.          bit err;
  34.    DQ=0;                        
  35.    delay15(40);               
  36.    DQ=1;                        
  37.    delay15(4);        
  38.    err=DQ;                        
  39.    delay15(18);        
  40.    return(err);
  41. }

  42. void wrbyte(uchar d)        
  43. {
  44.          uchar i;
  45.    dat=d;         
  46.    for(i=8;i>0;i--)           
  47.    {
  48.                  DQ=0;                           
  49.      delay15(1);
  50.            DQ=dat0;                        
  51.            dat=dat>>1;               
  52.            delay15(1);               
  53.      DQ=1;                           
  54.     }
  55. }

  56. uchar  rdbyte(void)        
  57. {  
  58.                 uchar i;
  59.     dat=0;                                 
  60.     for(i=8;i>0;i--)         
  61.     {  
  62.                           dat=dat>>1;   
  63.                                 DQ=0;         
  64.                                 _nop_();
  65.         DQ=1;                           
  66.         delay15(1);     
  67.         dat7=DQ;            
  68.         delay15(4);  
  69.       }
  70.      return(dat);  
  71. }   

  72. void readid(uchar id[])
  73. {
  74.         uchar n;
  75.         reset();
  76.         wrbyte(0x33);
  77.         for(n=0;n<=8;n++)
  78.         {
  79.                 id[n]=rdbyte();
  80.         }
  81. }

  82. void lcd_cmd(uchar cmd)
  83. {
  84.         LCD=cmd;
  85.         RS=0;
  86.         RW=0;
  87.         E=1;
  88.         _nop_();
  89.         E=0;
  90.         while(1)
  91.         {
  92.                 LCD=0xff;
  93.                 RS=0;
  94.                 RW=1;
  95.                 E=0;
  96.                 _nop_();
  97.                 E = 1;
  98.                 if(BF==0)break;
  99.         }
  100.         
  101. }
  102. void lcd_dat(uchar dat)
  103. {
  104.         LCD =dat;
  105.         RS = 1;
  106.         RW = 0;
  107.         E = 1;
  108.         _nop_();
  109.         E = 0;
  110.         while(1)
  111.         {
  112.                 LCD = 0xff;
  113.                 RS = 0;
  114.                 RW = 1;
  115.                 E = 0;
  116.                 _nop_();
  117.                 E = 1;
  118.                 if(BF==0)break;
  119.                 dat=LCD;
  120.         }
  121.         
  122. }
  123. void main()
  124. {
  125.         uchar *p;
  126.         uint i;
  127.         uchar str[8];
  128.         uchar id1[8]={0,0,0,0,0,0,0,0};
  129.         readid(id1);
  130.         
  131.         lcd_cmd(0x01);
  132.   lcd_cmd(0x3c);
  133.         lcd_cmd(0x0c);
  134.         for(i=0;i<8;i++)
  135.          {
  136.                 if((id1[i]>>4)>=10)
  137.                 str[2*i]=(id1[i]>>4)+0x37;
  138.                 else
  139.                         str[2*i]=(id1[i]>>4)+0x30;
  140.                 if((id1[i]&0x0f)>=10)
  141.                 str[2*i+1]=(id1[i]&0x0f)+0x37;
  142.            else
  143.                          str[2*i+1]=(id1[i]&0x0f)+0x30;
  144.          }
  145.         
  146.           lcd_cmd(0x82);        
  147.            p=str;
  148.                 for(i=1;i<9;i++)
  149.     {
  150.                         lcd_dat(*p++);
  151.                    if (i%2==0)
  152.                          { lcd_dat(0x20);}
  153.                  }

  154.            lcd_cmd(0xc2);
  155.                  p=str+8;
  156.                 for(i=1;i<9;i++)
  157.                 {
  158.                         lcd_dat(*p++);
  159.                         if (i%2==0)
  160.                   lcd_dat(0x20);
  161.                            
  162.                 }
  163.                 while(1);
  164. }
復(fù)制代碼

DS18B20序列號讀取.zip

47.14 KB, 下載次數(shù): 16, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日韩一区二区 | 久久久久久久久久久高潮一区二区 | 中文字幕韩在线第一页 | 午夜三级在线观看 | 成人看片在线观看 | 午夜精品久久久久久久99黑人 | 欧美日韩一本 | 欧美综合在线观看 | 欧美亚洲另类在线 | 国产区视频在线观看 | 草草视频在线免费观看 | 国产精品久久久久久久久久久久久 | 亚洲欧美网 | 久久日韩粉嫩一区二区三区 | 久久夜视频 | 中文字幕高清 | 久久综合一区 | 一级黄色日本片 | 99久久久国产精品 | 国产高清视频在线观看 | 精品久久久久国产免费第一页 | 国产精品资源在线 | 在线观看视频一区二区三区 | 99国产精品视频免费观看一公开 | 国产九九精品 | 国产精品亚洲精品 | 日本成人中文字幕在线观看 | 久久久久久久久久久蜜桃 | 久久久久1 | 亚洲欧美中文字幕在线观看 | 久久蜜桃av一区二区天堂 | 欧美一区二区三区久久精品 | 欧美日韩国产在线观看 | 羞羞视频在线观看免费观看 | 精品视频www | 国产激情视频在线观看 | 青青操91| 青青草原精品99久久精品66 | 亚洲国产二区 | 欧美精品一区三区 | 毛片一区二区三区 |