a级片免费网站_成人黄色一区_日本无遮挡在线观看_在线视频免费观看国产_日韩视频中文字幕视频一区_日韩免费视频一区

儀器網(yiqi.com)歡迎您!

| 注冊 登錄
網站首頁-資訊-專題- 微頭條-話題-產品- 品牌庫-搜索-供應商- 展會-招標-采購- 社區-知識-技術-資料庫-方案-產品庫- 視頻

問答社區

請教高手,基于單片機的人體溫度測量

宇翔1 2016-11-30 12:40:14 339  瀏覽
  •  

參與評論

全部評論(1條)

  • 僬耐呵撬爻 2016-11-30 14:33:17
      /********************************************************   * DS18B20溫度傳感器 *   * C51 *   * yajou 2008-06-28 無CRC *   ********************************************************/   #include "reg51.h"   #include "intrins.h"   #include "DS18B20.h"   /********************************************************   * us延時程序 *   ********************************************************/   void Delayus(uchar us)   {   while(us--); //12M,一次6us,加進入退出14us(8M晶振,一次9us)   }   /********************************************************   * DS18B20初始化 *   ********************************************************/   bit Ds18b20_Init(void) //存在返0,否則返1   {   bit temp = 1;   uchar outtime = ReDetectTime; //超時時間   while(outtime-- && temp)   {   Delayus(10); //(250)1514us時間可以減小嗎   ReleaseDQ();   Delay2us();   PullDownDQ();   Delayus(100); //614us(480-960)   ReleaseDQ();   Delayus(10); //73us(>60)   temp = dq;   Delayus(70); //us   }   return temp;   }   /********************************************************   * 寫bit2DS18B20 *   ********************************************************/   void Ds18b20_WriteBit(bit bitdata)   {   if(bitdata)   {   PullDownDQ();   Delay2us(); //2us(>1us)   ReleaseDQ(); //(上述1-15)   Delayus(12); //86us(45- x,總時間>60)   }else   {   PullDownDQ();   Delayus(12); //86us(60-120)   }   ReleaseDQ();   Delay2us(); //2us(>1us)   }   /********************************************************   * 寫Byte DS18B20 *   ********************************************************/   void Ds18b20_WriteByte(uchar chrdata)   {   uchar ii;   for(ii = 0; ii < 8; ii++)   {   Ds18b20_WriteBit(chrdata & 0x01);   chrdata >>= 1;   }   }   /********************************************************   * 寫 DS18B20 *   ********************************************************/   //void Ds18b20_Write(uchar *p_readdata, uchar bytes)   //{   // while(bytes--)   // {   // Ds18b20_WriteByte(*p_readdata);   // p_readdata++;   // }   //}   /********************************************************   * 讀bit From DS18B20 *   ********************************************************/   bit Ds18b20_ReadBit(void)   {   bit bitdata;   PullDownDQ();   Delay2us(); //2us( >1us)   ReleaseDQ();   Delay8us(); //8us( <15us)   bitdata = dq;   Delayus(7); //86us(上述總時間要>60us)   return bitdata;   }   /********************************************************   * 讀Byte DS18B20 *   ********************************************************/   uchar Ds18b20_ReadByte(void)   {   uchar ii,chardata;   for(ii = 0; ii < 8; ii++)   {   chardata >>= 1;   if(Ds18b20_ReadBit()) chardata |= 0x80;   }   return chardata;   }   /********************************************************   * 讀 DS18B20 ROM *   ********************************************************/   bit Ds18b20_ReadRom(uchar *p_readdata) //成功返0,失敗返1   {   uchar ii = 8;   if(Ds18b20_Init()) return 1;   Ds18b20_WriteByte(ReadROM);   while(ii--)   {   *p_readdata = Ds18b20_ReadByte();   p_readdata++;   }   return 0;   }   /********************************************************   * 讀 DS18B20 EE *   ********************************************************/   bit Ds18b20_ReadEE(uchar *p_readdata) //成功返0,失敗返1   {   uchar ii = 2;   if(Ds18b20_Init()) return 1;   Ds18b20_WriteByte(SkipROM);   Ds18b20_WriteByte(ReadScr);   while(ii--)   {   *p_readdata = Ds18b20_ReadByte();   p_readdata++;   }   return 0;   }   /********************************************************   * 溫度采集計算 *   ********************************************************/   bit TempCal(float *p_wendu) //成功返0,失敗返1 (溫度范圍-55 --- +128)   {   uchar temp[9],ii;   uint tmp;   float tmpwendu;   TR1 = 0;   TR0 = 0;   //讀暫存器和CRC值-----------------------   if(Ds18b20_ReadEE(temp))   {   TR1 = 1;   TR0 = 1;   return 1;   }   //-------------------------------------   //CRC校驗------------------------------   //   //此處應加入CRC校驗等   //   //   //-------------------------------------   //使溫度值寫入相應的wendu[i]數組中-----   for(ii = i; ii > 0; ii--)   {   p_wendu++;   }   i++;   if(i > 4) i = 0;   //-------------------------------------   //溫度正負數處理-----------------------   //   //-------------------------------------   //溫度計算-----------------------------   tmp = temp[1]; //   tmp <<= 8; //   tmp |= temp[0]; //組成溫度的兩字節合并   tmpwendu = tmp;   *p_wendu = tmpwendu / 16;   //-------------------------------------   //開始溫度轉換-------------------------   if(Ds18b20_Init())   {   TR1 = 1;   TR0 = 1;   return 1;   }   Ds18b20_WriteByte(SkipROM);   Ds18b20_WriteByte(Convert);   ReleaseDQ(); //寄生電源時要拉高DQ   //------------------------------------   TR1 = 1;   TR0 = 1;   return 0;   }   //////////DS18B20.h/////////////////////////   /********************************************************   * I/O口定義 *   ********************************************************/   sbit dq = P1^3;   sbit dv = P1^4; //DS18B20強上拉電源   /********************************************************   * 命令字定義 *   ********************************************************/   #define uchar unsigned char   #define uint unsigned int   #define ReleaseDQ() dq = 1; //上拉/釋放總線   #define PullDownDQ() dq = 0; //下拉總線   #define Delay2us() _nop_();_nop_(); //延時2us,每nop 1us   #define Delay8us() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();   //設置重復檢測次次數,超出次數則超時   #define ReDetectTime 20   //ds18b20命令   #define SkipROM 0xCC   #define MatchROM 0x55   #define ReadROM 0x33   #define SearchROM 0xF0   #define AlarmSearch 0xEC   #define Convert 0x44   #define WriteScr 0x4E   #define ReadScr 0xBE   #define CopyScr 0x48   #define RecallEE 0xB8   #define ReadPower 0xB4   /********************************************************   * 函數 *   ********************************************************/   void Delayus(uchar us);   //void Dog(void);   bit Ds18b20_Init(void); //DS18B20初始化,存在返0,否則返1   void Ds18b20_WriteBit(bit bitdata); //寫bit2DS18B20   void Ds18b20_WriteByte(uchar chrdata); //寫Byte DS18B20   void Ds18b20_Write(uchar *p_readdata, uchar bytes); //寫 DS18B20   bit Ds18b20_ReadBit(void); //讀bit From DS18B20   uchar Ds18b20_ReadByte(void); //讀Byte DS18B20   bit Ds18b20_ReadRom(uchar *p_readdata); //讀 DS18B20 ROM:成功返0,失敗返1   bit Ds18b20_ReadEE(uchar *p_readdata); //讀 DS18B20 EE :成功返0,失敗返1   bit TempCal(float *p_wendu); //成功返0,失敗返1 (溫度范圍-55 --- +128)

    贊(5)

    回復(0)

    評論

獲取驗證碼
我已經閱讀并接受《儀器網服務協議》

熱門問答

請教高手,基于單片機的人體溫度測量
 
2016-11-30 12:40:14 339 1
基于單片機的頻率計
哪位大俠有基于單片機頻率計的設計,范圍1HZ到100MHZ,希望能不吝賜教啊。自己做的頻率計仿真達不到要求。只能達到10M,卡在哪了,做不下去了。O(∩_∩)O謝謝了。
2012-05-08 03:40:25 230 3
基于單片機的信號發生器
請問有哪位知道這個圖里面的這些元器件在哪個ISIS7里面的名稱是啥,有些我找不到啊... 請問有哪位知道這個圖里面的這些元器件在哪個ISIS7里面的名稱是啥,有些我找不到啊 展開
2017-09-11 15:37:20 379 4
基于單片機的頻率計設計
設計要求設計一個以單片機為核心的頻率測量裝置。使用AT89C51單片機的定時器/計數器的定時和計數功能,外部擴展6位LED數碼管,要求累計每秒進入單片機的外部脈沖個數,用LED數碼管顯示出來。(1)被測頻率fx<110Hz,采用測周法,顯示頻率×××. ×××;fx>1... 設計要求設計一個以單片機為核心的頻率測量裝置。使用AT89C51單片機的定時器/計數器的定時和計數功能,外部擴展6位LED數碼管,要求累計每秒進入單片機的外部脈沖個數,用LED數碼管顯示出來。(1)被測頻率fx<110Hz,采用測周法,顯示頻率×××. ×××;fx>110Hz,采用測頻法,顯示頻率××××××。(2)利用鍵盤分段測量和自動分段測量。(3)完成單脈沖測量,輸入脈沖寬度范圍是100ms~0.1s。(4)顯示脈沖寬度要求如下。Tx<1000ms,顯示脈沖寬度×××。Tx>1000ms,顯示脈沖寬度××××。 求大神給個程序,給個設計方,您之前給的失效了,謝謝大神 展開
2016-07-07 19:24:28 303 1
基于51單片機的溫度控制器
 
2012-04-13 16:49:36 321 2
基于單片機的微波爐控制系統
基于單片機的微波爐控制系統單片機課程設計-基于微波爐控制系統設計(1)可設置三種Z高溫度值,如低溫(20°),中溫(30°),高溫(50°);(2)可設置Z長10分鐘定時;(3)用DS... 基于單片機的微波爐控制系統單片機課程設計-基于微波爐控制系統設計 (1)可設置三種Z高溫度值,如低溫(20°),中溫(30°),高溫(50°); (2)可設置Z長10分鐘定時; (3)用DS18B20感知溫度,當溫度達到設置溫度值,并持續設定時間長度時,蜂鳴器報警提示,LED燈閃爍,同時時間歸零; (4)設計控制電路總體方案; 求大神幫助 展開
2017-12-24 14:21:01 337 1
基于C51單片機的信號發生器
求各位前輩和同學指點下該怎么開始各個部分有什么作用怎么組成總之就是整體的設計思路謝謝... 求各位前輩和同學指點下該怎么開始 各個部分有什么作用 怎么組成 總之就是整體的設計思路 謝謝 展開
2016-10-28 15:46:50 380 1
基于單片機的數字頻率計的研究
利用AT89C51單片機設計一個測量頻率范圍為1Hz-10KHz的正弦波、方波、三角波信號的數字頻率計,要求用單片機實現自動測量功能。設計基于AT89C51單片機控制的數字頻率計的硬件電路;完成相關的系統軟件設計,并通過試驗儀驗證通過。
2009-05-27 03:47:42 297 3
基于單片機的溫度控制器的畢業論文
基于AT89C2051單片機的水溫控制電路的設計,希望有相關資料的好心人能幫幫忙,郵箱:henryjason@126.com感激不盡... 基于AT89C2051單片機的水溫控制電路的設計,希望有相關資料的好心人能幫幫忙,郵箱:henryjason@126.com 感激不盡 展開
2010-05-14 03:21:10 256 2
基于單片機C51的頻率計電路圖
1、要共陰數碼顯示。2、頻率超過2K報警。3、蜂鳴器報警。可測1Hz到5KHz
2018-11-17 14:51:41 383 0
基于AT89C51單片機的數字頻率計畢業設計
AT89C51單片機 測頻范圍10HZ-10MHZ 多種波形 ZD是需要添加其他功能 比如測幅值 之類的 (添加功能任意 保證畢業設計的工作量不會太簡單) 不支持私下交易,求淘寶鏈接之類的
2015-11-09 03:36:40 479 2
基于單片機的數據采集器采集什么東西
 
2017-05-24 16:17:02 447 1
基于單片機的熱電偶測溫電路圖
要求有電路圖,編程等
2017-11-23 02:27:45 346 1
基于AT89S51單片機的信號發生器設計
波形輸出:正弦波,方波,三角波... 波形輸出:正弦波,方波,三角波 展開
2018-11-19 19:51:53 212 0
:基于51單片機的脈沖信號發生器
[1]輸出信號約每秒1組脈沖,脈沖組間隔0.5-2秒可設置;[2]每組脈沖個數1-50可以設置,雙極性脈沖和雙極性方波;[3]脈沖頻率5K-100K可以設置;[4]脈沖寬度可以1-100uS可以設置;我的92... [1] 輸出信號約每秒1組脈沖,脈沖組間隔0.5-2秒可設置;[2] 每組脈沖個數1-50可以設置,雙極性脈沖和雙極性方波; [3] 脈沖頻率5K-100K可以設置;[4] 脈沖寬度可以1-100uS可以設置; 我的 921313685@qq.com謝啦 展開
2014-10-15 08:40:21 211 2
基于單片機的鍋爐壓力控制系統設計
 
2018-11-20 14:06:29 349 0
單片機用PID控制可控硅,讓電烤箱溫度恒定的算法請教高手!
 
2011-10-07 05:36:44 237 2
為什么做的基于單片機的超聲波測距傳感器測量距離短
 
2017-03-24 04:05:28 328 3
求助,基于51單片機,激光測距
 
2018-11-30 04:20:40 383 0

5月突出貢獻榜

推薦主頁

最新話題

主站蜘蛛池模板: 日本黄色免费观看视频 | 免费人妻精品一区二区三区 | 一二三区在线 | 一级毛片黄色片 | 99在线精品国自产拍 | 一级片久久免费 | 国产91精品不卡视频 | 美利坚合众国毛片 | 亚州中文av | 精品乱码卡1卡2卡3免费开放 | 欧美视频在线观看不卡 | 日本三级日本三级韩国三级视 | 国产精品综合美一区二三 | 日本寝取 | 97国产影院 | 免费黄色大片在线观看 | 欧美日韩一级在线 | 免费观看韩国理论片 | 视频一区中文字幕国产 | 亚洲韩国一区二区三区 | 宅男噜噜噜66在线观看 | 欧美激情国产精品日韩一区 | 亚洲第一天堂av | 99久久久国产精品免费牛牛 | 日本理论视频 | 成年午夜精品久久久精品 | 久久久国产影院 | 大地资源网更新免费播放视频 | 蜜桃狠狠狠狠狠狠 | 一区二区免费看 | 99久久精品无免国产免费 | 欧美狠狠爱| 欧美最猛黑人XXXXX猛交 | 中文字幕日韩精品有码视频 | 免看一级a毛片一片成人不卡 | 亚洲国产精品无码久久sM | free性丰满白嫩白嫩的hd | 可以在线免费观看的av | 亚洲码国产精品高潮在线 | 久久大胆视频 | 精精国产xxxx视频在线野外 |