亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
單片機+DS18B20總輸出255
[打印本頁]
作者:
1076658053
時間:
2020-10-3 16:31
標題:
單片機+DS18B20總輸出255
DS18B20總輸出255,數值不會改變18b20 程序如下:
#include "STC15F2K60S2.h"
sbit DQ = P1^4; //單總線接口
//單總線延時函數
void Delay_OneWire(unsigned int t) //STC89C52RC
{
while(t--);
}
void delay_18b20()
{
unsigned int x,y;
for(x = 1;x>0;x--)
for(y=110;y>0;y--);
}
//通過單總線向DS18B20寫一個字節
void Write_DS18B20(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
DQ = 0;
DQ = dat&0x01;
Delay_OneWire(5);
DQ = 1;
dat >>= 1;
}
Delay_OneWire(5);
}
//從DS18B20讀取一個字節
unsigned char Read_DS18B20(void)
{
unsigned char i;
unsigned char dat;
for(i=0;i<8;i++)
{
DQ = 0;
dat >>= 1;
DQ = 1;
if(DQ)
{
dat |= 0x80;
}
Delay_OneWire(5);
}
return dat;
}
//DS18B20設備初始化
bit init_ds18b20(void)
{
bit initflag = 0;
DQ = 1;
Delay_OneWire(12);
DQ = 0;
Delay_OneWire(80);
DQ = 1;
Delay_OneWire(10);
initflag = DQ;
Delay_OneWire(5);
return initflag;
}
unsigned char DS18B20()
{
unsigned char low,hig;
unsigned int wendu;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
Delay_OneWire(200);
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
low = Read_DS18B20();
hig = Read_DS18B20();
wendu = low / 16 + hig * 16;
return wendu;
}
復制代碼
作者:
鋆鍇電子
時間:
2020-10-3 17:28
讀出DS18B20數據需要取反吧。low=~low; hig=~hig;
作者:
鋆鍇電子
時間:
2020-10-3 17:31
ds18b20多出高八位和低八位需要取反在運算。low=~low; hig=~hig;
作者:
鋆鍇電子
時間:
2020-10-3 17:33
ds18b20讀出高八位和低八位數據需要取反,在運算。
作者:
1076658053
時間:
2020-10-3 21:59
鋆鍇電子 發表于 2020-10-3 17:33
ds18b20讀出高八位和低八位數據需要取反,在運算。
不行,取反后就全為0了,并且數值不會變
作者:
累不死的狗
時間:
2020-10-7 08:48
看一看驅動程序有沒有問題,如果沒問題那就檢查一下硬件電路
作者:
robinsonlin
時間:
2020-10-7 11:46
延遲的問題吧,18B20對延遲要求還是比較嚴的,你這個軟件延遲, 移植到不同芯片上,時效可能差別很大。
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1