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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC89C52單片機DS18B20程序調(diào)試問題求助

查看數(shù): 1867 | 評論數(shù): 4 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-10-24 21:04

正文摘要:

最近在學習DS18B20外設(shè)時,接觸到了單總線協(xié)議。按照DS18B20的DataSheet寫了一版程序后,發(fā)現(xiàn)一直無法正常顯示溫度,最后發(fā)現(xiàn)是延時的問題,但具體原理一直沒想明白。 單片機芯片為STC89C52,晶振為11.0592MHz。 ...

回復

ID:916650 發(fā)表于 2021-10-25 17:02
yzwzfyz 發(fā)表于 2021-10-25 16:23
這個不難解決,去研讀DS18B20手冊,特別是它的讀寫時序部分。再對比一下,你的程序?qū)λ牟僮鲿r序,能滿足 ...

嗯,您說的很對。最后發(fā)現(xiàn)是精確延時函數(shù)有問題,導致延時的時間并不是理想的定義的uint x的時間,超過了DataSheet要求的最大值120us,導致最后輸出數(shù)據(jù)紊亂。確實是時序沒對好導致的。
ID:123289 發(fā)表于 2021-10-25 16:23
這個不難解決,去研讀DS18B20手冊,特別是它的讀寫時序部分。再對比一下,你的程序?qū)λ牟僮鲿r序,能滿足手冊上的要求嗎?
ID:916650 發(fā)表于 2021-10-25 11:23

感謝大佬,驗證后發(fā)現(xiàn)原來的精確延時方法確實有問題
  1.                 void Delay_Us(uint x)//11.0592MHz,一個nop為1.085us
  2.                 {
  3.                         uint a;
  4.                         for(a=x;a>0;a--)
  5.                         {
  6.                                 _nop_();
  7.                         }
  8.                 }
復制代碼


之前做的實驗對時序的要求沒那么嚴格,導致沒發(fā)現(xiàn)這種精確延時方法有問題。
將10us的精確延時改成
  1.                 void Delay_Us_10()
  2.                 {
  3.                         _nop_();_nop_();_nop_();
  4.                         _nop_();_nop_();_nop_();
  5.                 }
復制代碼

就好了
ID:213173 發(fā)表于 2021-10-25 06:27
  1. //測試條件12.0MHz晶振/12T MCU,如采用11.0592MHz晶振延時時間*1.085倍
  2. #include "reg51.h"

  3. typedef unsigned char uchar;
  4. typedef unsigned int uint;

  5. /*------------------------------------------------
  6. uS延時函數(shù),含有輸入?yún)?shù) unsigned char t
  7. 大致延時長度如下 T=t*2+5us
  8. ------------------------------------------------*/
  9. void Delay_2xtus(uchar t)
  10. {   
  11.         while(--t);
  12. }
  13. /*------------------------------------------------
  14. uS延時函數(shù),含有輸入?yún)?shù) unsigned uint t
  15. 大致延時長度如下 T=t*8+6us
  16. ------------------------------------------------*/
  17. void Delay_8xtus(uint t)
  18. {   
  19.         while(--t);
  20. }
  21. /*------------------------------------------------
  22. uS延時函數(shù),含有輸入?yún)?shù) unsigned char t
  23. 大致延時長度如下 T=t*6+11us
  24. ------------------------------------------------*/
  25. void delay_6xtus(uchar t)
  26. {      
  27.         while(t--);
  28. }
  29. /*------------------------------------------------
  30. uS延時函數(shù),含有輸入?yún)?shù) unsigned int t
  31. 大致延時長度如下 T=t*9+16us
  32. ------------------------------------------------*/
  33. void delay_9xtus(uint t)
  34. {      
  35.         while(t--);
  36. }
  37. /*------------------------------------------------
  38. mS延時函數(shù),含有輸入?yún)?shù) unsigned char t
  39. 大致延時1mS
  40. ------------------------------------------------*/
  41. void Delay_ms(uchar t)
  42. {
  43.         while(t--)
  44.         {
  45.                 Delay_2xtus(243);
  46.                 Delay_2xtus(242);
  47.         }
  48. }

  49. void main()
  50. {
  51.         Delay_2xtus(100);
  52.         Delay_ms(100);
  53.         Delay_8xtus(100);
  54.         delay_9xtus(100);
  55.         delay_6xtus(100);

  56.         while(1);
  57. }
  58. //不同數(shù)據(jù)類型和寫法的延時時間區(qū)別
  59. /*
  60.         unsigned char i=10;//2um
  61.         while(--i);//i*2um

  62.         unsigned int i=10;//4um
  63.         while(--i);//i*8us

  64.         unsigned char i=10;//2um
  65.         while(i--);//i*2+2um

  66.         unsigned int i=10;//4um
  67.         while(i--);//i*8+8us
  68. */
復制代碼

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 超碰97干 | 四虎影院在线播放 | 国产在视频一区二区三区吞精 | 野狼在线社区2017入口 | 欧美激情久久久 | 特级毛片www | 亚洲狠狠| 日韩一区精品 | 美女高潮网站 | 91国在线 | 国产精品精品久久久 | 婷婷综合色 | 高清不卡毛片 | 国产在线一级片 | 操操日 | 国产sm主人调教女m视频 | 日本亚洲精品成人欧美一区 | 久久精品国产免费 | 日韩欧美在线不卡 | 蜜桃av人人夜夜澡人人爽 | av在线播放一区二区 | 日本免费在线观看视频 | 国产一区二区电影 | 久久看精品 | 97国产成人 | 激情综合五月天 | 亚洲国产成人精品女人久久久野战 | 国产欧美精品一区二区三区 | 亚洲一区二区三区在线 | 99精品一区二区 | 综合婷婷 | 国产精品欧美一区二区 | 精品网| 亚洲精品视频在线播放 | 黄色国产| 国产成人免费视频网站视频社区 | 久久精品com| 亚洲综合色视频在线观看 | 岛国av免费在线观看 | 日韩一二三区视频 | 欧美色综合网 |