精品视频在线观看专区,饥渴老熟妇乱子伦视频,五月天综合婷婷综合社,国产精品美女久久久久久小说

行業(yè)產(chǎn)品

  • 行業(yè)產(chǎn)品

上海仙象儀器儀表有限公司


當(dāng)前位置:上海仙象儀器儀表有限公司>公司動態(tài)>恒溫恒濕培養(yǎng)箱智能控制系統(tǒng)專題17、釆樣部分軟
公司動態(tài)

恒溫恒濕培養(yǎng)箱智能控制系統(tǒng)專題17、釆樣部分軟

閱讀:0發(fā)布時(shí)間:2025-7-14

釆樣部分軟件設(shè)計(jì)
4.2.1 SHT15傳感器測量的啟動傳輸
SHT15傳感器測量的“啟動傳輸"是指進(jìn)行溫濕度測量前,用一組時(shí)序?qū)?其初始化。SHT15傳感器完成上電初始化工作后,處于接收總線信號的狀態(tài), 當(dāng)單片機(jī)將初始化時(shí)序發(fā)送到Sensibus上后,SHT15傳感器接收到這組時(shí)序, 進(jìn)入到改變工作參數(shù)或等待接收測量等命令的狀態(tài),為測量工作做準(zhǔn)備。“啟動 傳輸”的時(shí)序圖如圖4-1所示,可概括為:當(dāng)SCK時(shí)鐘由低電平翻轉(zhuǎn)為高電平 時(shí)DATA翻轉(zhuǎn)為低電平,緊接著SCK再翻轉(zhuǎn)為低電平,最后SCK時(shí)鐘恢復(fù)高電 平時(shí)DATA翻轉(zhuǎn)為高電平。
DATA ' _ 1
北K
圖4-1 SHT15啟動傳輸?shù)臅r(shí)序
Fig4-1 The order of transmission start for SHT15
對SHT15傳感器的SCK (串行時(shí)鐘輸入)和DATA (串行數(shù)據(jù))兩個(gè)端口 的時(shí)序,本系統(tǒng)用PC5和PC6引腳來模擬實(shí)現(xiàn),軟件是基于AVR標(biāo)準(zhǔn)的C庫 函數(shù)進(jìn)行編寫的,其代碼如下:
細(xì)elude <avr\ioml28.h>
void stransstart(void) 〃傳感器啟動傳輸波形
(
DDRC |= 0x60;
PORTC |=0x40;
Delay_us(400);
PORTC&=~0x20;
Delay_us(400);
PORTC |=0x20;
Delay_us(400);
PORTC &=-0x40;
Delay_us(400);
PORTC &=-0x20;
Delay_us(400);
PORTC |= 0x20;
Delay_us(400);
PORTC |=0x40;
Delay_us(400);
PORTC &=-0x20;
Delay_us(400);
上面程序中,DDRC作用是通過寫對應(yīng)的值到指定的端口 C配置寄存器里, 這里是將端口 C的第5、6腳配置成輸出。PORTC作用是置位或清零端口 C引 腳位。AVR指令集對通用引腳以字節(jié)的方式進(jìn)行讀寫,不支持直接的位操作, 所以要自己利用庫函數(shù)實(shí)現(xiàn)位操作。上程序中將一個(gè)字節(jié)的第5或第6位置1, 使PC5或PC6引腳輸出高電平。函數(shù)Delay_us(400)是自己編程實(shí)現(xiàn)的一個(gè)延時(shí) 函數(shù),實(shí)現(xiàn)延時(shí)5ms的功能。
4.2.2 SHT15傳感器的測量
單片機(jī)向Sensibus總線上發(fā)送“啟動傳輸”命令,SHT15傳感器接收后, 立即進(jìn)入到改變工作參數(shù)或等待接收測量等命令的狀態(tài)。這時(shí)根據(jù)測量的需要, 單片機(jī)可以發(fā)送命令到Sensibus,可以是設(shè)置SHT15傳感器工作參數(shù)的命令, 也可以是測溫度和測濕度的命令。發(fā)送的命令必須是包含三個(gè)地址位(目前只 支持“000”)和五個(gè)命令位的8位數(shù)據(jù)。SHT15已正確接收到命令后,將DATA 位置低電平于第8個(gè)SCK時(shí)鐘的下降沿之后,再將DATA恢復(fù)高電平與第9個(gè) 時(shí)鐘SCK的下降沿之后,SHT15支持的命令見表4-1所示。
表4-1 SHT15支持的命令
Tab.4-1 The orders for SHT15
命令代碼
溫度測量00101
寫狀態(tài)寄存器00110
讀狀態(tài)寄存器00111
軟復(fù)位,復(fù)位接口、清空狀態(tài)寄存器,即清 空為默認(rèn)值,下一次命令前等待至少11ms11110
預(yù)留OOOOx
預(yù)留OlOlx-lllOx
 
單片機(jī)實(shí)現(xiàn)發(fā)送一個(gè)字節(jié)命令的程序如下:
char shtl5_write_byte(unsigned char value) 〃寫 8 位數(shù)據(jù)到總線
(
DDRC |=0x60;
unsigned char i, error=0;
for(i=0x80; i>0; i/=2)
{iRi&value)
(
PORTC |=0x40;
delay_us(400);
)
else
(
PORTC &=-0x40;
delay_us(400);
}
PORTC |=0x20;
delay_us(400);
PORTC &=-0x20;
delay_us(400); .
}
}
上程序中DDRC |=0x60語句的作用和前面啟動傳輸函數(shù)中的相同。下面for 循環(huán)的作用是單片機(jī)從高到低的依次發(fā)送8位數(shù)據(jù)到Sensibus總線上。協(xié)議中 約定總線改變數(shù)據(jù)之前時(shí)鐘信號必須置低,所以在每次循環(huán)中先發(fā)送一位1到 總線上,進(jìn)入準(zhǔn)備狀態(tài),發(fā)送下一位數(shù)據(jù)前將時(shí)鐘信號翻轉(zhuǎn)為低電平。
4.2.3 SHT15傳感器的應(yīng)答與測量數(shù)據(jù)的讀取
單片機(jī)發(fā)送測量命令后,要等待測量結(jié)束。對應(yīng)8/12/14bit的測量,等待過 程分別需要大約ll/55/210mse確切的等待時(shí)間與內(nèi)部晶振速度有關(guān),誤差不大 于±15%。SHT15測量結(jié)束后,將DATA位置低電平。單片機(jī)必須等待接收到 這個(gè)“數(shù)據(jù)備妥"的應(yīng)答信號后,才觸發(fā)SCK時(shí)鐘本系統(tǒng)使用while循環(huán)實(shí) 現(xiàn),代碼如下:
while(!(PORTC&=0x40));
如果Sensibus上的數(shù)據(jù)為高電平,表明SHT15還沒有完成測量工作,則單 片機(jī)繼續(xù)等待應(yīng)答信號變?yōu)榈碗娖健?bull;
如果Sensibus上的數(shù)據(jù)由高電平變?yōu)榈碗娖?,表明測量完成且數(shù)據(jù)備妥, 單片機(jī)開始從Sensibus總線上讀取測量數(shù)據(jù)。SHT15可以傳遞14位或12位有 效位的測量數(shù)據(jù),都是先傳遞高8位。單片機(jī)確認(rèn)接收一個(gè)字節(jié)完成后,下拉 DATA為低電平,SHT15接到應(yīng)答信號ACK后,接著傳遞低8位字節(jié),再次接 到單片機(jī)的應(yīng)答信號ACK后,傳遞8位CRC檢驗(yàn)碼字節(jié)。單片機(jī)讀取的所有 數(shù)據(jù)右值有效,從有效位開始。通訊結(jié)束用CRC檢驗(yàn)碼的確認(rèn)位表示。如 果不用CRC校驗(yàn)碼,在測量值有效位后,單片機(jī)通過發(fā)送保持ACK高電 平來表示中止通訊。SHT15在通訊和測量結(jié)束后自動轉(zhuǎn)入休眠模式。
單片機(jī)對Sensibus上數(shù)據(jù)的讀取可以歸結(jié)為數(shù)據(jù)按字節(jié)的循環(huán)讀取和每次 讀完后應(yīng)答信號的正確給出兩部分,本系統(tǒng)中實(shí)現(xiàn)測量數(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)榧葟腟ensibus上讀數(shù)據(jù)又向Sensibus上寫數(shù)據(jù),程序中要反復(fù)根據(jù)是 進(jìn)行寫操作還是讀操作來改變數(shù)據(jù)線即PC6的數(shù)據(jù)方向。當(dāng)單片機(jī)進(jìn)行寫操作 時(shí)要變PC6為輸岀,進(jìn)行讀操作的時(shí)候要變PC6為輸入,如果設(shè)置不對會出現(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)答信號需要根據(jù)ack進(jìn)行判斷。
4.2.4 SHT15測量數(shù)據(jù)的轉(zhuǎn)換
單片機(jī)從Sensibus上讀取的12位濕度或14位溫度測量數(shù)據(jù)并不是最終的 溫濕度數(shù)據(jù),必須進(jìn)行相應(yīng)的換算,才能進(jìn)行后期的數(shù)據(jù)處理,同時(shí)還需要補(bǔ) 償傳感器測量中存在的非線性。
對于溫度的測量,SHT15傳感器對溫度模塊的研發(fā)釆用了能隙材料PTAT (與溫度成正比),因此具有良好的線性性。將單片機(jī)讀取的數(shù)字信號轉(zhuǎn)換 為溫度值用以下公式實(shí)現(xiàn):
Tz=dl+d2* SOj (4-1)
式中SQ代表從SHT15傳感器讀取的原始溫度測量數(shù)據(jù),4,烏為修正參 數(shù),取值分別如表4-2、4-3所示。
表4-2修正參數(shù)q取值
Tab.4-2 rectifying value of dx
VDDd(C)
5V-40
4V-39.75
3.5V-39.66
3V-39.60
2.5V-39.55
 

表43修正參數(shù)%取值
Tab.4-3 rectifying value of d2
 奴c)
14bit0.01
12bit0.04
 
對于相對濕度測量,為獲取準(zhǔn)確的濕度檢測值,必須補(bǔ)償濕度傳感器的非 線性,修正讀數(shù)的公式如下:
^^linear =Cl+C2* S0m C3 * SO^ (4-2)
式中SJ表示從SHT15傳感器讀回的原始濕度測量數(shù)據(jù),Ci,C2, C3為修 正參數(shù),取值如表4V所示:
表44修正參數(shù)q, c2,烏取值
Tab.4-4 rectifying value of q, c2 and c3
so4C2C3
8bit-40.648-7.2*1。4
12bit-40.0405-2.8* 10%
 
由于實(shí)際溫度并不一定是測試參考溫度25C,所以必須考慮濕度傳感器的 溫度修正系數(shù),修正公式如下:
 
f) (4-3)
式中L為最終溫度值,電《為修正后的最終濕度值,蔭如為線性補(bǔ)償后 的數(shù)據(jù),匕、弓均為濕度補(bǔ)償系數(shù)。
根據(jù)公式(4-1)、(4-2)、(4-3),實(shí)現(xiàn)的代碼如下:
void correct_sthl5(float *p_temperature, float *p_humidity) //溫濕度線性修正
及補(bǔ)償計(jì)算
(const float Cl =40;
const float C2=0.0405;
const float C3=-0.0000028;
const float Tl=0.01;
const float T2=0.00008;
float rh=*p_ humidity;
float t=*p_ temperature;
float rhlinear;
float rh_true;
float t_oC;
t_oC=t*0.01-40;
rhJin=C3*rh*rh+C2*rh+Cl;
rh_true=(t_oC-25)*(Tl+T2*rh)+rh_linear;
if(rh_true>100) rh_true=99;
if(rh_true<0.1) rh_true=0.1;
*p_temperature=t_oC;
*p_humidity=rh_true;
)


食品機(jī)械設(shè)備網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ? Copyright(C)?2021 http://m.hg0881.cn,All rights reserved.

以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),食品機(jī)械設(shè)備網(wǎng)對此不承擔(dān)任何保證責(zé)任。 溫馨提示:為規(guī)避購買風(fēng)險(xiǎn),建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗(yàn)證碼

收藏該商鋪

登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~