sht11溫濕度傳感器程序中有一句語句: DATA=!ack; =!請問是什么意思?
-
chars_read_byte(unsignedcharack)//----------------------------------------------------------------------------------{unsignedchari,val=0;DATA=1;//釋放數(shù)據(jù)線for(i=0x80;i>0... char s_read_byte(unsigned char ack)
//----------------------------------------------------------------------------------
{
unsigned char i,val=0;
DATA=1; //釋放數(shù)據(jù)線
for(i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移
{
SCK=1;
if(DATA) val=(val|i); //讀一位數(shù)據(jù)線的值 ?
SCK=0;
} DATA=!ack; //如果是校驗,讀取完后結(jié)束通訊; ? SCK=1; _nop_();_nop_();_nop_(); //延時3us SCK=0; _nop_();_nop_();_nop_(); DATA=1; //釋放數(shù)據(jù)線 return val; } 上面程序中: DATA=!ack; 這一句怎么解釋,其中 != 運算符? if(DATA) val=(val|i); 這一句怎么讀一位數(shù)據(jù)線的值的呢? 展開
全部評論(0條)
熱門問答
- sht11溫濕度傳感器程序中有一句語句: DATA=!ack; =!請問是什么意思?
- chars_read_byte(unsignedcharack)//----------------------------------------------------------------------------------{unsignedchari,val=0;DATA=1;//釋放數(shù)據(jù)線for(i=0x80;i>0... char s_read_byte(unsigned char ack)
//----------------------------------------------------------------------------------
{
unsigned char i,val=0;
DATA=1; //釋放數(shù)據(jù)線
for(i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移
{
SCK=1;
if(DATA) val=(val|i); //讀一位數(shù)據(jù)線的值 ?
SCK=0;
} DATA=!ack; //如果是校驗,讀取完后結(jié)束通訊; ? SCK=1; _nop_();_nop_();_nop_(); //延時3us SCK=0; _nop_();_nop_();_nop_(); DATA=1; //釋放數(shù)據(jù)線 return val; } 上面程序中: DATA=!ack; 這一句怎么解釋,其中 != 運算符? if(DATA) val=(val|i); 這一句怎么讀一位數(shù)據(jù)線的值的呢? 展開
- 關(guān)于sht11溫濕度傳感器不返回ACK的問題
- 單片機用的是STC90C516RD+,想通過軟件模擬I2C的方法接受sht11的溫濕度信號,并把數(shù)值用7段數(shù)碼管顯示出來,目前問題是傳感器不工作,不響應(yīng)ack信號,C程序和接線圖我都不知道哪里錯誤... 單片機用的是STC90C516RD+,想通過軟件模擬I2C的方法接受sht11的溫濕度信號,并把數(shù)值用7段數(shù)碼管顯示出來,目前問題是傳感器不工作,不響應(yīng)ack信號,C程序和接線圖我都不知道哪里錯誤,求幫助,我的郵箱是fgh0809@gmail.com 展開
- SHT11溫濕度傳感器DATA輸出的是溫度還是濕度,什么原理。
- 請問SHT11是不是目前Z好的溫濕度傳感器
- 溫濕度傳感器sht11芯片的封裝形式是什么
- 單片機通過溫濕度傳感器sht11控制草坪噴水,程序怎么寫?。?
- SHT10(SHT11)溫濕度傳感器輸出數(shù)據(jù)不穩(wěn)定
- SHT10(或SHT11)測量濕度時,輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時,在67%~82%之間跳動,測量溫度則偏高離普:測量22度時,輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因為換... SHT10(或SHT11)測量濕度時,輸出的數(shù)據(jù)不穩(wěn)定,比如測量74%濕度時,在67%~82%之間跳動,測量溫度則偏高離普:測量22度時,輸出為95度左右亂跳,也不穩(wěn)定。排除器件損壞的問題,因為換了一個還是一樣,焊好之后也放置了24小時了,請哪位大師幫忙解決,感激不盡! 展開
- 溫濕度傳感器SHT10和SHT11的區(qū)別?
- 想知道sht10和sht11有什么區(qū)別?除了精度以外?他們的性能.工作原理.程序是不是都可以通用?麻煩詳細點.謝謝!滿意還會加分的.... 想知道sht10和sht11有什么區(qū)別? 除了精度以外? 他們的性能.工作原理.程序是不是都可以通用? 麻煩詳細點.謝謝! 滿意還會加分的. 展開
- DHT22 SHT11 這兩種溫濕度傳感器哪一種好
- 將溫濕度傳感器模塊程序與12864液晶顯示屏程序結(jié)合起來是什么意思
- 集成溫濕度傳感器SHT11和SHT10的區(qū)別~
- 是不是僅僅只有性能上的區(qū)別?使用和設(shè)計方法是不是一樣?如果不一樣,請說明不一樣在哪... 是不是僅僅只有性能上的區(qū)別? 使用和設(shè)計方法是不是一樣?如果不一樣,請說明不一樣在哪 展開
- SHT11溫濕度傳感器能在protus里面仿真嗎?
- 有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個元件。和版本有關(guān)嗎?我的似乎是7.1的。如果不行,是否可以給我推薦個可以在protus里面仿真的濕... 有看到網(wǎng)上寫了關(guān)于SHT11在protus里面仿真的文章,但我自己沒在protus里面找到SHT11這個元件。和版本有關(guān)嗎?我的似乎是7.1的。 如果不行,是否可以給我推薦個可以在protus里面仿真的濕度傳感器或者溫濕度傳感器。。 先謝了! 展開
- 100分,求溫濕度傳感器SHT11的源程序(51單片機語言)
- 謝謝了,在線等.... 謝謝了,在線等. 展開
- 邏輯分析儀上顯示 '255' + ACK是什么意思
- 求DHT22/AM2302溫濕度傳感器Arduino程序
- 想安裝溫濕度傳感器和空氣質(zhì)量傳感器,請問作用是什么
- Z近北京空氣污染嚴重,在網(wǎng)上看了一下,想安裝一臺智能屋溫濕度傳感器和空氣質(zhì)量傳感器,請問這樣有效果嗎... Z近北京空氣污染嚴重,在網(wǎng)上看了一下,想安裝一臺智能屋溫濕度傳感器和空氣質(zhì)量傳感器,請問這樣有效果嗎 展開
- I2C總線上可以接多個SHT11溫濕度傳感器嗎?SHT11好像沒有器件地址,是嗎?
- 溫濕度傳感器的開關(guān)量輸出是什么意思
- Arduino中,溫濕度傳感器檢測溫濕度并控制繼電器動作,的程序
- 溫濕度傳感器檢測到濕度后,判斷當前濕度低于某個值之后,控制繼電器合上,當當前濕度高于某個值后,控制繼電器斷開intDHpin=8;bytedat[5];byteread_data(){bytedata;for(inti=0;i<8;... 溫濕度傳感器檢測到濕度后,判斷當前濕度低于某個值之后,控制繼電器合上,當當前濕度高于某個值后,控制繼電器斷開
int DHpin = 8;
byte dat[5];
byte read_data()
{
byte data;
for(int i=0; i<8; i++)
{
if(digitalRead(DHpin) == LOW)
{
while(digitalRead(DHpin) == LOW); //等待 50us;
delayMicroseconds(30); //判斷高電平的持續(xù)時間,以判定數(shù)據(jù)是‘0’還是‘1’;
if(digitalRead(DHpin) == HIGH)
data |= (1<<(7-i)); //高位在前,低位在后;
while(digitalRead(DHpin) == HIGH); //數(shù)據(jù)‘1’,等待下一位的接收;
} } return data; } void start_test() { digitalWrite(DHpin,LOW); //拉低總線,發(fā)開始信號; delay(30); //延時要大于 18ms,以便 DHT11 能檢測到開始信號; digitalWrite(DHpin,HIGH); delayMicroseconds(40); //等待 DHT11 響應(yīng); pinMode(DHpin,INPUT); while(digitalRead(DHpin) == HIGH); delayMicroseconds(80); //DHT11 發(fā)出響應(yīng),拉低總線 80us; if(digitalRead(DHpin) == LOW); delayMicroseconds(80); //DHT11 拉高總線 80us 后開始發(fā)送數(shù)據(jù); for(int i=0;i<4;i++) //接收溫濕度數(shù)據(jù),校驗位不考慮; dat[i] = read_data(); pinMode(DHpin,OUTPUT); digitalWrite(DHpin,HIGH); //發(fā)送完一次數(shù)據(jù)后釋放總線,等待主機的下一次開始信號; } void setup() { Serial.begin(9600); pinMode(DHpin,OUTPUT); } void loop() { start_test(); Serial.print("Current humdity = "); Serial.print(dat[0], DEC); //顯示濕度的整數(shù)位; Serial.print('.'); Serial.print(dat[1],DEC); //顯示濕度的小數(shù)位; Serial.println('%'); Serial.print("Current temperature = "); Serial.print(dat[2], DEC); //顯示溫度的整數(shù)位; Serial.print('.'); Serial.print(dat[3],DEC); //顯示溫度的小數(shù)位; Serial.println('C'); delay(700); } 這個是檢測溫濕度的程序 展開
- DHT11 溫濕度傳感器 avr nega 16 c程序
- 用4個共陽的數(shù)碼管顯示的mega16avr單片機的c程序... 用4個共陽的數(shù)碼管顯示的 mega 16 avr單片機的 c程序 展開
4月突出貢獻榜
推薦主頁
最新話題





參與評論
登錄后參與評論