飲料機(jī)械 果蔬機(jī)械 面食機(jī)械 糕點(diǎn)設(shè)備 烘焙設(shè)備 豆制品設(shè)備 乳制品設(shè)備 茶葉機(jī)械 制冷設(shè)備 油炸設(shè)備 膨化設(shè)備 糖果機(jī)械 調(diào)味品設(shè)備 薯類加工設(shè)備 釀酒設(shè)備
上海仙象儀器儀表有限公司
閱讀:0發(fā)布時(shí)間:2025-7-14
SHT15傳感器的應(yīng)答與測(cè)量數(shù)據(jù)的讀取
單片機(jī)發(fā)送測(cè)量命令后,要等待測(cè)量結(jié)束。對(duì)應(yīng)8/12/14bit的測(cè)量,等待過(guò) 程分別需要大約ll/55/210mse確切的等待時(shí)間與內(nèi)部晶振速度有關(guān),誤差不大 于±15%。SHT15測(cè)量結(jié)束后,將DATA位置低電平。單片機(jī)必須等待接收到 這個(gè)“數(shù)據(jù)備妥"的應(yīng)答信號(hào)后,才觸發(fā)SCK時(shí)鐘本系統(tǒng)使用while循環(huán)實(shí) 現(xiàn),代碼如下:
while(!(PORTC&=0x40));
如果Sensibus上的數(shù)據(jù)為高電平,表明SHT15還沒(méi)有完成測(cè)量工作,則單 片機(jī)繼續(xù)等待應(yīng)答信號(hào)變?yōu)榈碗娖健?/font>•
如果Sensibus上的數(shù)據(jù)由高電平變?yōu)榈碗娖?,表明測(cè)量完成且數(shù)據(jù)備妥, 單片機(jī)開始從Sensibus總線上讀取測(cè)量數(shù)據(jù)。SHT15可以傳遞14位或12位有 效位的測(cè)量數(shù)據(jù),都是先傳遞高8位。單片機(jī)確認(rèn)接收一個(gè)字節(jié)完成后,下拉 DATA為低電平,SHT15接到應(yīng)答信號(hào)ACK后,接著傳遞低8位字節(jié),再次接 到單片機(jī)的應(yīng)答信號(hào)ACK后,傳遞8位CRC檢驗(yàn)碼字節(jié)。單片機(jī)讀取的所有 數(shù)據(jù)右值有效,從有效位開始。通訊結(jié)束用CRC檢驗(yàn)碼的確認(rèn)位表示。如 果不用CRC校驗(yàn)碼,在測(cè)量值有效位后,單片機(jī)通過(guò)發(fā)送保持ACK高電 平來(lái)表示中止通訊。SHT15在通訊和測(cè)量結(jié)束后自動(dòng)轉(zhuǎn)入休眠模式。
單片機(jī)對(duì)Sensibus上數(shù)據(jù)的讀取可以歸結(jié)為數(shù)據(jù)按字節(jié)的循環(huán)讀取和每次 讀完后應(yīng)答信號(hào)的正確給出兩部分,本系統(tǒng)中實(shí)現(xiàn)測(cè)量數(shù)據(jù)讀取的程序如下:
char s_read_byte(unsigned char ack) 〃從總線讀 8 位數(shù)據(jù)
(
DDRC |=0x60;
unsigned char i, val=0;
PORTC |= 0x40;
DDRC &= ~0x60;
for(i=0x80; i>0; i/=2)
PORTC |= 0x20;
delay_us(400);
if(PORTC&&0x40) val=(val|i);
PORTC &=-0x20;
delay_us(400);
}
DDRC |= 0x60;
if(ack)
{
PORTC &=-0x40;
delay_us(400);
)
else
(
PORTC |=0x40;
delay_us(400);
)
PORTC |=0x20;
delay_us(400);
PORTC &=-0x20;
delay_us(400);
PORTC |=0x40;
delay_us(400);
return val;
因?yàn)榧葟?/span>Sensibus上讀數(shù)據(jù)又向Sensibus上寫數(shù)據(jù),程序中要反復(fù)根據(jù)是 進(jìn)行寫操作還是讀操作來(lái)改變數(shù)據(jù)線即PC6的數(shù)據(jù)方向。當(dāng)單片機(jī)進(jìn)行寫操作 時(shí)要變PC6為輸岀,進(jìn)行讀操作的時(shí)候要變PC6為輸入,如果設(shè)置不對(duì)會(huì)出現(xiàn) 讀寫數(shù)據(jù)錯(cuò)誤或異常,這點(diǎn)在具體實(shí)現(xiàn)時(shí)非常重要。for循環(huán)實(shí)現(xiàn)了單片機(jī)從 Sensibus總線上從高到低的依次讀取8位數(shù)據(jù),然后為了單片機(jī)正確給出8位數(shù) 據(jù)讀取后的應(yīng)答信號(hào)需要根據(jù)ack進(jìn)行判斷。
食品機(jī)械設(shè)備網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡(jiǎn)單描述您的需求
請(qǐng)選擇省份