freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

大棚倉(cāng)庫(kù)溫濕度自動(dòng)控制系統(tǒng)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2024-11-29 10:19本頁(yè)面

【導(dǎo)讀】為溫濕度傳感器,LCD1602液晶屏進(jìn)行顯示。SHT11使用類似于I2C總線的時(shí)序與單。確、耐用LCD1602能夠分兩行顯示數(shù)據(jù),第一行顯示溫度,第二行顯示濕度。同時(shí)將其與設(shè)定值進(jìn)行對(duì)比,如果超出上下限,將進(jìn)行報(bào)警并啟動(dòng)溫濕度調(diào)節(jié)設(shè)備。此外,還可以通過(guò)獨(dú)立式鍵盤對(duì)設(shè)定的溫濕度進(jìn)行修改。通過(guò)設(shè)計(jì)系統(tǒng)原理圖、用。Proteus軟件進(jìn)行仿真,證明了該系統(tǒng)的可行性。閱讀的主要參考文獻(xiàn)及資料名稱………………

  

【正文】 rary include define uchar unsigned char /* typedef union //定義共同類型 { unsigned int i。 //i 表示測(cè)量得到的溫濕度數(shù)據(jù)( int 形式保存的數(shù)據(jù)) float f。 //f 表示測(cè)量得到的溫濕度數(shù)據(jù)( float 形式保存的數(shù)據(jù)) } value。 */ sbit DATA = P2^1。 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 32 sbit SCK = P2^0。 /******** SHT11 函數(shù)聲明 ********/ //void s_connectionreset(void)。 //char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)。 //void calc_sth10(float *p_humidity ,float *p_temperature)。 /*************************************************************************************/ //SHT11 程序 define noACK 0 //繼續(xù)傳輸數(shù)據(jù),用于判斷是否結(jié)束通訊 define ACK 1 //結(jié)束數(shù)據(jù)傳輸; //地址 命令 讀 /寫 define STATUS_REG_W 0x06 //000 0011 0 define STATUS_REG_R 0x07 //000 0011 1 define MEASURE_TEMP 0x03 //000 0001 1 define MEASURE_HUMI 0x05 //000 0010 1 define RESET 0x1e //000 1111 0 //寫字節(jié)程序 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 33 char s_write_byte(unsigned char value) { unsigned char i,error=0。 for (i=0x80。i0。i/=2) //shift bit for masking 高位為 1,循環(huán)右移 { if (iamp。value) DATA=1。 //和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 else DATA=0。 SCK=1。 _nop_()。_nop_()。_nop_()。 //延時(shí) 3us SCK=0。 } DATA=1。 //釋放數(shù)據(jù)線 SCK=1。 error=DATA。 //檢查應(yīng)答信號(hào),確認(rèn)通訊正常 _nop_()。_nop_()。_nop_()。 SCK=0。 DATA=1。 return error。 //error=1 通訊錯(cuò)誤 } //讀字節(jié)程序 char s_read_byte(unsigned char ack) // { unsigned char i,val=0。 DATA=1。 //釋放數(shù)據(jù)線 for(i=0x80。i0。i=1) //高位為 1,循環(huán)右移 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 34 { SCK=1。 if(DATA) val=(val|i)。 //讀一位數(shù)據(jù)線的值 SCK=0。 } DATA=!ack。 //如果是校驗(yàn),讀取完后結(jié)束通訊; SCK=1。 _nop_()。_nop_()。_nop_()。 //延時(shí) 3us SCK=0。 _nop_()。_nop_()。_nop_()。 DATA=1。 //釋放數(shù)據(jù)線 return val。 } //啟動(dòng)傳輸 void s_transstart(void) // generates a transmission start // _____ ________ // DATA: |_______| // ___ ___ // SCK : ___| |___| |______ { DATA=1。 SCK=0。 //準(zhǔn)備 _nop_()。 SCK=1。 _nop_()。 DATA=0。 _nop_()。 SCK=0。 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 35 _nop_()。_nop_()。_nop_()。 SCK=1。 _nop_()。 DATA=1。 _nop_()。 SCK=0。 } //連接復(fù)位 void s_connectionreset(void) // munication reset: DATAline=1 and at least 9 SCK cycles followed by transstart // _____________________________________________________ ________ // DATA: |_______| // _ _ _ _ _ _ _ _ _ ___ ___ // SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______ { unsigned char i。 DATA=1。 SCK=0。 //準(zhǔn)備 for(i=0。i9。i++) //DATA 保持高, SCK 時(shí)鐘觸發(fā) 9 次,發(fā)送啟動(dòng)傳輸,通迅即復(fù)位 { SCK=1。 SCK=0。 } s_transstart()。 //啟動(dòng)傳輸 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 36 } //軟復(fù)位程序 /* char s_softreset(void) // resets the sensor by a softreset { unsigned char error=0。 s_connectionreset()。 //啟動(dòng)連接復(fù)位 error+=s_write_byte(RESET)。 //發(fā)送復(fù)位命令 return error。 //error=1 通訊錯(cuò)誤 } */ //溫濕度測(cè)量 char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode) // 進(jìn)行溫度或者濕度轉(zhuǎn)換,由參數(shù) mode 決定轉(zhuǎn)換內(nèi)容; { // enum {TEMP,HUMI}。 //已經(jīng)在頭文件中定義 unsigned error=0。 unsigned int i。 s_transstart()。 //啟動(dòng)傳輸 switch(mode) //選擇發(fā)送命令 { case TEMP : error+=s_write_byte(MEASURE_TEMP)。 break。 // 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 37 測(cè)量溫度 case HUMI : error+=s_write_byte(MEASURE_HUMI)。 break。 //測(cè)量濕度 default : break。 } for (i=0。i65535。i++) if(DATA==0) break。 //等待測(cè)量結(jié)束 if(DATA) error+=1。 // 如果長(zhǎng)時(shí)間數(shù)據(jù)線沒(méi)有拉低,說(shuō)明測(cè)量錯(cuò)誤 *(p_value) =s_read_byte(ACK)。 //讀第一個(gè)字節(jié),高字節(jié) (MSB) *(p_value+1)=s_read_byte(ACK)。 //讀第二個(gè)字節(jié),低字節(jié) (LSB) *p_checksum =s_read_byte(noACK)。 //read CRC 校驗(yàn)碼 return error。 // error=1 通訊錯(cuò)誤 } //溫濕度值標(biāo)度變換及溫度補(bǔ)償 void calc_sth10(float *p_humidity ,float *p_temperature) { const float C1=。 // 12 位濕度精度 修正公式 const float C2=+。 // 12 位濕度精度 修正公式 const float C3=。 // 12 位濕度精度 修正公式 const float T1=+。 // 14 位溫度精度 5V 條件 修正公式 const float T2=+。 // 14 位溫度精度 5V 條件 修正公式 float rh=*p_humidity。 // rh: 12 位 濕度 float t=*p_temperature。 // t: 14 位 溫度 float rh_lin。 // rh_lin: 濕度 linear 值 float rh_true。 // rh_true: 濕度 ture 值 float t_C。 // t_C : 溫度 ℃ 蘭州交通大學(xué)博文學(xué)院畢業(yè)設(shè)計(jì) 38 t_C=t* 40。 //補(bǔ)償溫度 rh_lin=C3*rh*rh + C2*rh + C1。 //相對(duì)濕度非線性補(bǔ)償 rh_true=(t_C25)*(T1+T2*rh)+rh_lin。 //相對(duì)濕度對(duì)于溫度依賴性補(bǔ)償 if(rh_true100)rh_true=100。 //濕度最大修正 if(rh_true)rh_true=。 //濕度最小修正 *p_temperature=t_C。 //返回溫度結(jié)果 *p_humidity=rh_true。 //返回濕度結(jié)果 }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1