成人网站入口,五月丁香久久,亚洲精品99,亚洲欧美精品中文幕无码三区,丁香五月激情网,国产一区二区不卡视频,日韩精品网站,国产精品999

深圳市瑞申電子有限公司

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

關于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();
? ? ? ? //************開始轉(zhuǎn)換**************
? ? ? ???Writer_ds18b20(0xcc);//忽視r o m指令 后面跟44h可完成溫度轉(zhuǎn)換
? ? ? ???Writer_ds18b20(0x44);
? ? ? ???delay_ms(800);
? ? ? ???//**********讀暫存數(shù)據(jù)************
? ? ? ???Init_da18b20();
? ? ? ???Writer_ds18b20(0xcc);
? ? ? ???Writer_ds18b20(0xbe);//一個從機只能跟一條讀寄存器指令
? ? ? ???dat_l = Read_ds18b20();
? ? ? ???dat_h = Read_ds18b20();
? ? ? ???Init_da18b20();//***********讀取暫存結(jié)束*************

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

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


給你一個現(xiàn)成的程序
#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()? ? ? ?? ?//讀出一字節(jié)
{
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)? ? ? ???//寫入一字節(jié)
{
? ?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); // 啟動溫度轉(zhuǎn)換
? ? delay(5);? ?? ? // 重要
? ? Init_DS18B20();
? ? writechar(0xCC); //跳過讀序號列號的操作
? ? writechar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度/
? ? delay(3);
? ? a=readchar();? ? //讀取溫度值低位??/
? ? b=readchar();? ?? ?//讀取溫度值高位? ? /
? ? temp1=b<<4;? ?? ?? ?? ?//高8位中后三位數(shù)的值
? ? temp1+=(a&0xf0)>>4;? ?? ?//低8位中的高4位值加上高8位中后三位數(shù)的值? ?temp1室溫整數(shù)值
? ? temp2=a&0x0f;? ?? ?? ?? ? //小數(shù)的值
? ? temp=((b*256+a)>>4);? ? //當前采集溫度值除16得 實際溫度值? ? zhenshu? ?
? ? xs=temp2*0.0625*10; //小數(shù)位,若為0.5則算為5來顯示? ?xs小數(shù)? ? 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()? ? ? ? ? ? ? ???//數(shù)碼管顯示
{
? ? ? ? ? ? ? ? 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();
? ? ? ?? ?
? ? ? ???}
}
//=======================================================


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

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

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

    漾濞| 禹州市| 连州市| 中江县| 临邑县| 额尔古纳市| 宁乡县| 遵化市| 通江县| 呼玛县| 长武县| 肇源县| 荣昌县| 彰化县| 武夷山市| 皮山县| 拜泉县| 西充县| 屏东市| 栖霞市| 铜梁县| 宜兰市| 蛟河市| 德安县| 壤塘县| 兴海县| 油尖旺区| 万载县| 大新县| 璧山县| 吴堡县| 托克逊县| 肇州县| 泰和县| 武穴市| 武隆县| 华宁县| 永仁县| 乌恰县| 安塞县| 金昌市|