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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3050|回復(fù): 0
收起左側(cè)

基于stc8a8k單片機(jī)的DS1302+18b20串口輸出程序

[復(fù)制鏈接]
ID:168165 發(fā)表于 2021-1-31 12:41 | 顯示全部樓層 |閱讀模式
//部分程序
  1.                                                  /*

  2.      DS18B20溫度采集
  3.      說明  DS18B20  是由DALLAS  半導(dǎo)體公司推出的一種的“一線總線”接口的溫度傳感器。測量溫度范圍為-55~+125 ℃
  4.                將單總線接到了P1.3口上  也就是一個(gè)IO就可以完成讀取DS溫度的功能

  5.                    但當(dāng)然 時(shí)序是很重要的如果用來移植 請仔細(xì)計(jì)算好時(shí)序  如delay2us  是2us的延時(shí)  
  6.                    delay1ms 是1ms的延時(shí) 這個(gè)延時(shí)都是在單片機(jī)內(nèi)部晶振在27MHz 下 測出的程序累加延時(shí)
  7.                    雖然有偏差 但是已經(jīng)比較接近了

  8.           DS18B20時(shí)序
  9.                   復(fù)位脈沖和應(yīng)答脈沖 單總線上的所有通信都是以初始化序列開始        主機(jī)輸出低電平,
  10.                                      保持低電平時(shí)間至少 480us,,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,10K 的上拉電阻
  11.                                      將單總線拉高,延時(shí)15~60 us, 并進(jìn)入接收模式(Rx)。接著DS18B20 拉低總線60~240 us,
  12.                                      以產(chǎn)生低電平應(yīng)答脈沖, 若為低電平,再延時(shí)480 us 。
  13.                   寫時(shí)序  寫時(shí)序包括寫0 時(shí)序和寫1 時(shí)序。所有寫時(shí)序至少需要60us,且在2 次獨(dú)立的
  14.                           寫時(shí)序之間至少需要 1us 的恢復(fù)時(shí)間,兩種寫時(shí)序均起始于主機(jī)拉低總線。
  15.                                   寫 1 時(shí)序:主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us 。
  16.                                   寫0 時(shí)序:主機(jī)輸出低電平,延時(shí)60us,然后釋放總線, 延時(shí)2us 。                                          
  17.                   
  18.                   讀時(shí)序  單總線器件僅在主機(jī)發(fā)出讀時(shí)序時(shí),才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀
  19.                           數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時(shí)序至少
  20.                                   需要60us,且在2 次獨(dú)立的讀時(shí)序之間至少需要 1us  的恢復(fù)時(shí)間。每個(gè)讀時(shí)
  21.                                   序都由主機(jī)發(fā)起,至少拉低總線 1us 。主機(jī)在讀時(shí)序期間必須釋放總線,并且
  22.                                   在時(shí)序起始后的 15us 之內(nèi)采樣總線狀態(tài)。典型的讀時(shí)序過程為:主機(jī)輸出低
  23.                                   電平延時(shí) 2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí) 12us,然后讀取單總線當(dāng)前的電平,
  24.                                   然后延時(shí)50us。 ,                                         
  25.           DS就介紹到這里 如果想了解更多 請參考DS18B20的手冊                       
  26.           
  27.           
  28.           DS18B20 IO為P13
  29.           串口跟蹤顯示

  30.       主頻為11.0592MHz
  31.       串口波特率為9600                                                      
  32.                     
  33. */





  34. #include  "stc8.h"                  //STC15頭文件
  35. #include  "def.h"                              //宏定義 常用函數(shù)
  36. #include  "DELAY.H"                                  //延時(shí)函數(shù)
  37. //#include  "spi.h"
  38. #include  "ds18b20.h"
  39. #include  "uart.h"
  40. #include  "ds1302.h"


  41. int Send_Time = 0;
  42. int kk = 0;



  43. void main()
  44. {         
  45.     short temperature;                        //溫度變量
  46.         delay1ms(250);//等待系統(tǒng)穩(wěn)定
  47.         ds1302_init(); //DS1302初始化
  48.         UartInit(); //串口的初始化

  49.     delay1ms(200);
  50.         DS1302_WriteTime(); //寫入初始值
  51.     delay1ms(20);
  52.         Timer2Init();
  53.                         //串口初始化
  54.         delay1ms(200);
  55.         EA = 1;
  56.         UartSendStr("Uart temperature:\r\n");
  57.         while(1)
  58.         {
  59.          if(Send_Time >= 1500)
  60.          {
  61.          UartSendStr("TIME:\t");
  62.          DS1302_send();
  63.          UartSendStr("temperature:\t");
  64.          temperature=read_temp();                                                                                   //讀取溫度值
  65.      if(temperature<0)                   //是負(fù)溫度
  66.          UartSendByte('-');
  67.            UartSendByte(temperature/100%10+'0');                 //串口溫度顯示
  68.            UartSendByte(temperature/10%10+'0');
  69.            UartSendByte('.');
  70.            UartSendByte(temperature%10+'0');
  71.            UartSendStr("\r\n");
  72.            Send_Time = 0;
  73.           }
  74.           // delay1ms(1500);


  75.         }
  76.           
  77. }

  78. void TM2_Isr(void) interrupt 12  using 2
  79. {        kk++;
  80.     Send_Time++;
  81.         if(Send_Time>2500){Send_Time=0;}
  82.     if(kk>1000){P55 = !P55;kk=0;}                                 //測試端口
  83.     AUXINTIF &= ~T2IF;                          //清中斷標(biāo)志                      //清中斷標(biāo)志
  84. }
復(fù)制代碼




全部程序51hei下載地址:
程序2021_1_31串口打印1302 18b20定時(shí).rar (150.17 KB, 下載次數(shù): 85)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区久久久久久久久 | 91视频在线看 | 国产九九精品视频 | 一区二区三区日韩精品 | 亚洲另类视频 | 久久手机在线视频 | 国产一级在线视频 | 亚洲一区二区三区四区五区午夜 | 日本一区二区高清视频 | 日本一道本视频 | 黄片毛片在线观看 | 精品国产一区二区三区久久 | 国产欧美久久精品 | 国产精品久久亚洲7777 | 黄色网址大全在线观看 | 欧美高清视频 | 日韩www| 欧美日韩在线国产 | 国产一区二区不卡 | 一呦二呦三呦国产精品 | 久热久热 | 99re超碰| 中文字幕二区 | 欧美精品一区二区三区在线播放 | 91一区二区| 亚洲 中文 欧美 日韩 在线观看 | 国产视频中文字幕在线观看 | 国产精品久久久久久久午夜 | 伊人免费视频二 | 成人在线国产 | 天天射天天操天天干 | 亚洲一区二区三区视频 | 中文字幕在线免费观看 | 国内精品一区二区三区 | 中国一级特黄毛片大片 | 亚洲成在线观看 | 国产成人精品久久二区二区 | 国产乱码精品一区二区三区中文 | 爱草视频| 国产在线精品免费 | 一区二区三区精品视频 |