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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

1T單片機(jī)的DS18B20源程序(c語(yǔ)言和匯編語(yǔ)言的都有)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:326484 發(fā)表于 2018-5-10 02:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1T單片機(jī)驅(qū)動(dòng)ds18b20和傳統(tǒng)的12t在延時(shí)方面有些區(qū)別
1T單片機(jī)源程序如下:
  1. /**************************************
  2. 溫度傳感器DS18B20測(cè)試程序
  3. 主芯片  : STC12C5A60S2 (1T)
  4. 工作頻率: 12.000MHz
  5. **************************************/

  6. #include "REG51.H"
  7. #include "INTRINS.H"

  8. typedef unsigned char BYTE;

  9. sbit DQ = P3^3;                     //DS18B20的數(shù)據(jù)口位P3.3
  10. BYTE TPH;                           //存放溫度值的高字節(jié)
  11. BYTE TPL;                           //存放溫度值的低字節(jié)

  12. void DelayXus(BYTE n);
  13. void DS18B20_Reset();
  14. void DS18B20_WriteByte(BYTE dat);
  15. BYTE DS18B20_ReadByte();

  16. void main()
  17. {
  18.     DS18B20_Reset();                //設(shè)備復(fù)位
  19.     DS18B20_WriteByte(0xCC);        //跳過(guò)ROM命令
  20.     DS18B20_WriteByte(0x44);        //開(kāi)始轉(zhuǎn)換命令
  21.     while (!DQ);                    //等待轉(zhuǎn)換完成

  22.     DS18B20_Reset();                //設(shè)備復(fù)位
  23.     DS18B20_WriteByte(0xCC);        //跳過(guò)ROM命令
  24.     DS18B20_WriteByte(0xBE);        //讀暫存存儲(chǔ)器命令
  25.     TPL = DS18B20_ReadByte();       //讀溫度低字節(jié)
  26.     TPH = DS18B20_ReadByte();       //讀溫度高字節(jié)

  27.     while (1);
  28. }

  29. /**************************************
  30. 延時(shí)X微秒(STC12C5A60S2@12M)
  31. 不同的工作環(huán)境,需要調(diào)整此函數(shù)
  32. 此延時(shí)函數(shù)是使用1T的指令周期進(jìn)行計(jì)算,與傳統(tǒng)的12T的MCU不同
  33. **************************************/
  34. void DelayXus(BYTE n)
  35. {
  36.     while (n--)
  37.     {
  38.         _nop_();
  39.         _nop_();
  40.     }
  41. }

  42. /**************************************
  43. 復(fù)位DS18B20,并檢測(cè)設(shè)備是否存在
  44. **************************************/
  45. void DS18B20_Reset()
  46. {
  47.     CY = 1;
  48.     while (CY)
  49.     {
  50.         DQ = 0;                     //送出低電平復(fù)位信號(hào)
  51.         DelayXus(240);              //延時(shí)至少480us
  52.         DelayXus(240);
  53.         DQ = 1;                     //釋放數(shù)據(jù)線
  54.         DelayXus(60);               //等待60us
  55.         CY = DQ;                    //檢測(cè)存在脈沖
  56.         DelayXus(240);              //等待設(shè)備釋放數(shù)據(jù)線
  57.         DelayXus(180);
  58.     }
  59. }

  60. /**************************************
  61. 從DS18B20讀1字節(jié)數(shù)據(jù)
  62. **************************************/
  63. BYTE DS18B20_ReadByte()
  64. {
  65.     BYTE i;
  66.     BYTE dat = 0;

  67.     for (i=0; i<8; i++)             //8位計(jì)數(shù)器
  68.     {
  69.         dat >>= 1;
  70.         DQ = 0;                     //開(kāi)始時(shí)間片
  71.         DelayXus(1);                //延時(shí)等待
  72.         DQ = 1;                     //準(zhǔn)備接收
  73.         DelayXus(1);                //接收延時(shí)
  74.         if (DQ) dat |= 0x80;        //讀取數(shù)據(jù)
  75.         DelayXus(60);               //等待時(shí)間片結(jié)束
  76.     }

  77.     return dat;
  78. }

  79. /**************************************
  80. 向DS18B20寫(xiě)1字節(jié)數(shù)據(jù)
  81. **************************************/
  82. void DS18B20_WriteByte(BYTE dat)
  83. {
  84.     char i;

  85.     for (i=0; i<8; i++)             //8位計(jì)數(shù)器
  86.     {
  87.         DQ = 0;                     //開(kāi)始時(shí)間片
  88.         DelayXus(1);                //延時(shí)等待
  89.         dat >>= 1;                  //送出數(shù)據(jù)
  90.         DQ = CY;
  91.         DelayXus(60);               //等待時(shí)間片結(jié)束
  92.         DQ = 1;                     //恢復(fù)數(shù)據(jù)線
  93.         DelayXus(1);                //恢復(fù)延時(shí)
  94.     }
  95. }
復(fù)制代碼

所有資料51hei提供下載:
http://www.zg4o1577.cn/bbs/dpj-116703-1.html


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

使用道具 舉報(bào)

沙發(fā)
ID:61140 發(fā)表于 2022-3-31 08:04 | 只看該作者
說(shuō)好的C與匯編的都有呢,匯編在哪我沒(méi)看到....
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91av视频在线观看 | 美女一级毛片 | 精品国产一区二区在线 | 日韩欧美在 | 男女网站免费观看 | 毛片免费观看 | 91视频进入 | 国产精品视频偷伦精品视频 | 人人干免费 | 成人免费小视频 | 中文字幕亚洲精品在线观看 | 久久男人 | 美女天天操 | 久久大陆| 天天夜碰日日摸日日澡 | 欧美国产日本一区 | 亚洲精品福利在线 | 国产黄色在线观看 | 精品二三区 | 国产精品欧美一区二区三区 | 91欧美精品成人综合在线观看 | 91大神在线资源观看无广告 | 艹逼网 | 久久av一区 | 亚洲最新网址 | 特一级黄色毛片 | 欧美一区二区三区一在线观看 | 日韩欧美二区 | 99av成人精品国语自产拍 | 浴室洗澡偷拍一区二区 | 国产一级视频在线播放 | 成人欧美一区二区三区色青冈 | 热99在线| 狠狠色香婷婷久久亚洲精品 | 99这里只有精品视频 | 日韩欧美视频 | 国产精品久久久久久久久久免费看 | 久久久久久亚洲精品 | 国产精品激情 | 亚洲情综合五月天 | 超碰国产在线 |