亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標題: ds18b20溫度顯示程序+Proteus仿真 [打印本頁]

作者: xiaoyao    時間: 2014-12-17 17:08
標題: ds18b20溫度顯示程序+Proteus仿真



源程序和仿真文件下載: 溫度顯示.rar (156.57 KB, 下載次數: 627)

作者: xiaoyao    時間: 2014-12-17 17:09
  1. #include "typedef.h"
  2. #include "device_init.h"
  3. #include "delay.h"

  4. /************************************************
  5. * 函數名稱:ds18b20_reset
  6. * 輸    入:
  7. * 輸    出:
  8. * 功能描述:
  9. *************************************************/
  10. u8 ds18b20_reset(void)
  11. {
  12.         DQ_PIN = HIGH;
  13.         delay_16us(1);
  14.         DQ_PIN = LOW;
  15.         delay_16us(30);                //延時600us
  16.         DQ_PIN = HIGH;
  17.         delay_16us(5);                //延時80us
  18.         if(!DQ_PIN)
  19.         {
  20.                 delay_16us(30);        //延時420us
  21.                 return 1;
  22.         }
  23.         else
  24.                 return 0;
  25. }
  26. /************************************************
  27. * 函數名稱:ds18b20_write_byte
  28. * 輸    入:
  29. * 輸    出:
  30. * 功能描述:
  31. *************************************************/
  32. void ds18b20_write_byte(u8 wByte)
  33. {
  34.         u8 i;

  35.         for(i=0; i<8; i++)
  36.         {
  37.                 DQ_PIN = LOW;
  38.                 NOP();
  39.                 NOP();
  40.                 NOP();
  41.                 NOP();
  42.                 NOP();
  43.                 NOP();
  44.                 NOP();
  45.                 DQ_PIN = wByte & 0x01;
  46.                 NOP();
  47.                 NOP();
  48.                 NOP();
  49.                 NOP();
  50.                 NOP();
  51.                 DQ_PIN = HIGH;
  52.                 NOP();
  53.                 NOP();
  54.                 NOP();
  55.                 wByte >>= 1;
  56.         }
  57. }
  58. /************************************************
  59. * 函數名稱:ds18b20_read_byte
  60. * 輸    入:
  61. * 輸    出:
  62. * 功能描述:
  63. *************************************************/
  64. u8 ds18b20_read_byte(void)
  65. {
  66.         u8 rByte;
  67.         u8 i;

  68.         for(i=0; i<8; i++)
  69.         {
  70.                 DQ_PIN = LOW;
  71.                 NOP();
  72.                 NOP();
  73.                 rByte >>= 1;
  74.                 NOP();
  75.                 NOP();
  76.                 NOP();
  77.                 NOP();
  78.                 NOP();
  79.                 NOP();
  80.                 DQ_PIN = HIGH;
  81.                 NOP();
  82.                 NOP();
  83.                 NOP();
  84.                 NOP();
  85.                 NOP();
  86.                 NOP();
  87.                 NOP();
  88.                 if(DQ_PIN)
  89.                         rByte |= 0x80;
  90.                 NOP();
  91.                 NOP();
  92.                 NOP();
  93.                 NOP();
  94.                 NOP();
  95.                 NOP();
  96.                 NOP();
  97.         }
  98.         DQ_PIN = HIGH;
  99.         return rByte;
  100. }
  101. /************************************************
  102. * 函數名稱:ds18b20_get_temp
  103. * 輸    入:
  104. * 輸    出:
  105. * 功能描述:
  106. *************************************************/
  107. u16 ds18b20_get_temp(void)
  108. {
  109.         u16 Temp;

  110.         if(ds18b20_reset() == 0)                        //復位
  111.                 return 0;
  112.         ds18b20_write_byte(0xcc);                        //忽略ROM
  113.         ds18b20_write_byte(0x44);                        //發送溫度轉化命令
  114.         delay_16us(30);
  115.         if(ds18b20_reset() == 0)                        //再次復位
  116.                 return 0;
  117.         ds18b20_write_byte(0xcc);                        //忽略ROM
  118.         ds18b20_write_byte(0xbe);

  119.         Temp = ds18b20_read_byte();
  120.         Temp |= ds18b20_read_byte() << 8;

  121.         return Temp;
  122. }
復制代碼

作者: hq51hei    時間: 2015-4-24 16:18
謝謝分享,太好了正好需要。
作者: KIJW    時間: 2015-10-20 00:51
頂一個,做得很好。
作者: steven33jan    時間: 2015-12-27 23:59
可以用2個2位數碼管做嗎?

QQ圖片20151228000023.png (1.59 KB, 下載次數: 276)

QQ圖片20151228000023.png

作者: admin    時間: 2015-12-28 00:29
steven33jan 發表于 2015-12-27 23:59
可以用2個2位數碼管做嗎?

當然可以,不過為什么會有這樣的需求呢?
作者: steven33jan    時間: 2015-12-29 20:03
admin 發表于 2015-12-28 00:29
當然可以,不過為什么會有這樣的需求呢?

那個程序要怎么改?
作者: steven33jan    時間: 2015-12-29 20:04
那么程序要怎么改?
作者: 1179720524    時間: 2016-1-9 22:12
大神大神  太需要你幫忙了  我們老師安排任務 利用PRUTUES實習單片機對DS18B20控制,測溫。仿真。  跟您發的是一回事么  后天下午驗收 能給點指導性意見不  非常感謝啊
作者: nba52411    時間: 2016-4-22 09:15
感謝樓主 最近搞畢設正需要這個
作者: 萌萌喵    時間: 2016-5-24 18:37
請問這里的u8 ds18b20_reset(void)里的u8是指unsigned char形式的嗎
作者: qazssd    時間: 2016-6-17 11:44
正好這周設計做這個,先學習學習
作者: lemonack    時間: 2016-10-26 17:56
為什么我仿真之后顯示 -0.5°?
作者: lemonack    時間: 2016-10-26 17:58
噢哦,突然弄懂了,謝謝樓主
作者: keepstudying    時間: 2016-11-2 22:44
謝謝分享
作者: lele5211314    時間: 2017-2-11 11:52
大愛無疆
作者: lucifer1995    時間: 2017-3-1 15:00
nice    666
作者: 享爾    時間: 2017-5-2 18:43
贊贊贊
作者: 張東qaq    時間: 2017-5-2 19:01
怎么查看溫度電阻的是好的還是壞的
作者: dfsdfsd    時間: 2017-5-10 00:52
頂一個
作者: glenshu    時間: 2017-5-24 18:40
不能下載好可惜啊
作者: glenshu    時間: 2017-5-24 18:40
怎么獲得黑幣,下載不了啊
作者: han123456    時間: 2017-6-15 00:42
很好,剛好需要的仿真文件
作者: sxc677    時間: 2018-11-19 10:18
用的什么軟件編程的?版本是多少?

作者: 噗噗噗p    時間: 2019-3-28 00:27
看一看學習一下
作者: zhengfu    時間: 2020-4-22 21:48
非常好的資料,學習下。
作者: 悠悠風鈴鳴    時間: 2020-5-17 22:58
太及時了,急死我了,感謝感謝
作者: xtiwxk    時間: 2020-10-23 15:17
謝謝分享,太好了正好需要。




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