日韩中文无码视频中文字幕,久热中文字幕在线精品首页,亚洲精品东京热无码视频,一本一本久久aa综合精品

深圳市瑞申電子有限公司

深圳市瑞申電子有限公司是一家10年專業大功率電感生產加工廠商,主要以大功率,大電流、扁平線圈電感、平面變壓器設計、生產、銷售工廠。設計、繞線、組裝、檢測、包裝、出貨等全制程的工藝流程!擁有完整、科學的質量管理體系。專業技術團隊10人,我們的誠信、實力和產品質量獲得業界的認可。歡迎各界朋友蒞臨參觀、指導和業務洽談。 ...

關于ds18b20的溫度采集顯示0解惑

時間:2021-05-14 06:15:08 點擊:
uint Read_temperature()
{
? ? ? ? uint temt;
? ? ? ? unsigned long int temperature = 0;
? ? ? ? uchar dat_l = 0,dat_h = 0;
? ? ? ???Init_da18b20();
? ? ? ? //************開始轉換**************
? ? ? ???Writer_ds18b20(0xcc);//忽視r o m指令 后面跟44h可完成溫度轉換
? ? ? ???Writer_ds18b20(0x44);
? ? ? ???delay_ms(800);
? ? ? ???//**********讀暫存數據************
? ? ? ???Init_da18b20();
? ? ? ???Writer_ds18b20(0xcc);
? ? ? ???Writer_ds18b20(0xbe);//一個從機只能跟一條讀寄存器指令
? ? ? ???dat_l = Read_ds18b20();
? ? ? ???dat_h = Read_ds18b20();
? ? ? ???Init_da18b20();//***********讀取暫存結束*************

? ? ? ???//temperature = (dat_h * 256 )+ dat_l;
? ? ? ?? ? temperature = dat_h;
? ? ? ?? ? temperature <<= 8;
? ? ? ?? ? temperature += dat_l;
? ? ? ?? ? temt =temperature * 0.0625;

? ?return temt; //temperature;
}
我的ds18b20的溫度采集函數是這樣的? ?這是最終版? ?一開始時候顯示00.00 后來發現是聲明的問題? ?一開始我只有 uint temt的反回值??沒有temperature這個中間變量? ?返回值都為00.00??是uint 即unsigned int的范圍不夠??溢出 。還發現temperature = (dat_h * 256 )+ dat_l;這樣顯示的溫度是實際溫度的2倍? ?不能使用()也很奇怪??想不通


給你一個現成的程序
#include
#define uchar unsigned char
#define uint unsigned int
//=====================================================
sbit DQ=P1^6;? ?? ???
//======================================================? ?? ?
sbit LED1=P1^3;
sbit LED2=P1^2;
sbit FMQ=P1^1;
//======================================================
unsigned int temp, temp1,temp2, xs;
//======================================================
void delay1(uint m)? ???
? ? {
? ?? ?uint i,j;
? ?? ?for(i=m;i>0;i--)
? ?? ? for(j=110;j>0;j--);
? ?? ?? ?}
//======================================================
void delay(uint m)? ?
? ? {
? ?? ?while(m--);
? ?? ?? ?}
//======================================================
void Init_DS18B20()??? ? ? ?? ?//初始化18b20
{
unsigned char x=0;
DQ = 1;? ?? ?? ?
delay(8);
DQ = 0;? ?? ?? ?
delay(80); //>480us
DQ = 1;? ?? ?? ?? ?
delay(4);
x=DQ;? ???//延時后 如果x=0則初始化成功 x=1則初始化失敗
delay(20);
}
//=========================================================
uchar readchar()? ? ? ?? ?//讀出一字節
{
uchar i=0;
uchar dat = 0;
for (i=0;i<8;i++)
{
? ? DQ = 0;
? ? dat>>=1;
? ? DQ = 1;
? ? if(DQ)
? ? dat|=0x80;? ?
? ? delay(4);
}
? ?return(dat);
}
//===================================================
writechar(unsigned char dat)? ? ? ???//寫入一字節
{
? ?unsigned char i=0;
? ?for (i=0; i<8; i++)
? ?{
? ? DQ = 0;
? ? DQ = dat&0x01;? ?
? ? delay(5); //60us~120us
? ? DQ = 1;? ?? ???
? ? dat>>=1; //從最低位到最高位傳入
}
}
//===========================================================
readtemperature()??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //讀取溫度
??{
? ? uchar a=0;
? ? unsigned??b=0;
? ? unsigned??t=0;

? ? Init_DS18B20();
? ? writechar(0xCC);? ? // 跳過讀序號列號的操作/
? ? writechar(0x44); // 啟動溫度轉換
? ? delay(5);? ?? ? // 重要
? ? Init_DS18B20();
? ? writechar(0xCC); //跳過讀序號列號的操作
? ? writechar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度/
? ? delay(3);
? ? a=readchar();? ? //讀取溫度值低位??/
? ? b=readchar();? ?? ?//讀取溫度值高位? ? /
? ? temp1=b<<4;? ?? ?? ?? ?//高8位中后三位數的值
? ? temp1+=(a&0xf0)>>4;? ?? ?//低8位中的高4位值加上高8位中后三位數的值? ?temp1室溫整數值
? ? temp2=a&0x0f;? ?? ?? ?? ? //小數的值
? ? temp=((b*256+a)>>4);? ? //當前采集溫度值除16得 實際溫度值? ? zhenshu? ?
? ? xs=temp2*0.0625*10; //小數位,若為0.5則算為5來顯示? ?xs小數? ? xiaoshu
//===============================================================================
??? ? ? ?? ? if(temp>=30.0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //報警模塊
? ? ? ?? ? FMQ=0;? ? ? ?? ?
? ? ? ?? ? else
? ? ? ?? ? FMQ=1;
? ? ? ?? ? if(temp>=25.0 && temp<30.0)
? ? ? ?? ? LED1=0,
? ? ? ?? ? LED2=1;
? ? ? ?? ? else
? ? ? ?? ? LED1=1;
??}
//================================================================
void wenduxianshi()? ? ? ? ? ? ? ???//數碼管顯示
{
? ? ? ? ? ? ? ? int a,b,c;
? ? ? ? ? ? ? ? a=(temp/10);
? ? ? ? ? ? ? ? switch(a)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? case 0 :P2=0x00 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x28;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 1 :P2=0x18 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 2 :P2=0x10 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x30;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 3 :P2=0x10 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 4 :P2=0x08 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 5 :P2=0x80 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 6 :P2=0x80 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 7 :P2=0x10 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 8 :P2=0x00 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 9 :P2=0x00 |0x04;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? delay(800);
? ? ? ?? ???b=(temp%10);
? ? ? ? ? ? ? ? switch(b)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 0 :P2=0x00 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x28 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 1 :P2=0x18 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 2 :P2=0x10 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x30 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 3 :P2=0x10 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 4 :P2=0x08 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe0 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 5 :P2=0x80 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 6 :P2=0x80 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 7 :P2=0x10 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 8 :P2=0x00 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 9 :P2=0x00 |0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0 &0xdf;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ?? ?? ?? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ???delay(800);


? ? ? ?? ???c=(xs%10);
? ? ? ? ? ? ? ? switch(c)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? case 0 :P2=0x00 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x28;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 1 :P2=0x18 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 2 :P2=0x10 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x30;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 3 :P2=0x10 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 4 :P2=0x08 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 5 :P2=0x80 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 6 :P2=0x80 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 7 :P2=0x10 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xe8;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 8 :P2=0x00 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? case 9 :P2=0x00 |0x40;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? P3=0xa0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???delay(800);


? ? ? ? ? ? ? ? P2=0x80;
? ? ? ? ? ? ? ? P3=0x38 |0x04;
? ? ? ? ? ? ? ? ? ? ? ?


? ? ? ?
}
//======================================================
main()
{
? ? ? ???while(1)
? ? ? ???{? ???
? ?? ? readtemperature();
? ? ? ? ? ? ? ?

? ?? ? wenduxianshi();
? ? ? ?? ?
? ? ? ???}
}
//=======================================================


現成代碼我也有? ?但是我在意的是我的代碼到底哪里出問題了

大功率電感廠家 |大電流電感工廠

  • “國家海岸”旁的精彩網絡
    2012年初開業,便相繼贏得了媒體評出的 最佳海濱度假酒店 、 2012海南酒店金椰獎 等獎項,在短短的幾個月內,三亞海棠灣喜來登度假酒店迅速成為了三亞地區最受關注的高端酒店之一。 作為全球最
  • 交流點焊機改高頻逆變
    有哪位師傅可以把老式的交流點焊機(排焊機、龍門機)改成高頻逆變?隨時發郵件給我:ggs215@163.com
  • 基于MEMS加速度傳感器五大功能簡化用戶設計
    4月08日 第三屆·無線通信技術研討會 立即報名 12月04日 2015?第二屆中國IoT大會 精彩回顧 10月30日ETF?智能硬件開發技術培訓會 精彩回顧 10月23日ETF?第三屆 消費
  • 大功率電感