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

正文內容

基于at89s51單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計(參考版)

2024-12-10 02:29本頁面
  

【正文】 。 } /* 該函數(shù)發(fā)送一幀數(shù)據(jù)幀,參數(shù) type為命令字、 len為數(shù)據(jù)長度、 buf為要發(fā)送的數(shù)據(jù)內容 */ void send_data(uchar type, uchar len, uchar *buf) { uchar i。 send_byte(0x0d)。 //發(fā)送濕度數(shù)據(jù) 基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 39 send_byte(ASCii[B2])。 //發(fā)送 M: send_byte(58)。 send_byte(32)。 send_byte(46)。 send_byte(ASCii[display[2]])。 //設備號 send_byte(84)。 // 獲得命令字 return 1。 if(data_buf[0] != dev) // 非訪問本機命令,錯誤,返回 return 0。 } /* 判斷幀是否錯誤 */ if(i4) // 幀過短,錯誤,返回 return 0。 // 計算校驗字節(jié) i++。 default: // 普通數(shù)據(jù) data_buf[i] = tmp。 case 0xdb: // 檢測到轉義字符 db = 1。 } switch(tmp) // 正常情況 { case 0xc0: // 幀結束 c0 = 1。 default return 0。 db = 0。 case 0xdc: data_buf[i] = 0xc0。 db = 0。 if(db == 1) // 接收到的上一個字節(jié)為 0xdb 基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 37 { switch(tmp) { case 0xdd: data_buf[i] = 0xdb。 tmp = SBUF。 while(!c0) // 循環(huán)直至幀接收完畢 { RI = 0。 // 置發(fā)送禁止,接收允許 M_RE = 0。 uchar i。 // 保存接收到的幀 uchar tmp。 // 當接收到的上一個字節(jié)為 0xdb時,該位置位 bit c0 = 0。 } /////////////////////////////////////////////////////////////////////////////////// void READSTATUS() interrupt 0 using 1 // 產生外部中斷 0時表示設備狀基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 36 態(tài)發(fā)生改變,該函數(shù)使用寄存器組 1 { get_status()。 // 取中間八位 ,即整數(shù)部分的值 display[2]=display[3]%100/10。 // 取小數(shù)部分的值 display[0]=ditab[display[3]]。} // 負溫度求補碼 ,標志位置 1 display[3]=temamp。 // 兩字節(jié)合成一個整型變量 return temp。 temp=8。 //讀溫度值的第字節(jié) temp_data[1]=read_byte()。 //發(fā)命令 write_byte(0xbe)。 ow_reset()。 //發(fā)命令 基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 35 write_byte(0x44)。 ow_reset()。 //發(fā)命令 write_byte(RS)。 //發(fā)命令 write_byte(0x4e)。 //總線復位 delay(200)。 return(value)。 delay(6)。_nop_()。_nop_()。 //4 us DQ=1。_nop_()。_nop_()。 value=1。_nop_()。i0。 uchar value=0。 delay(1)。 //66 us val=val/2。0x01。_nop_()。_nop_()。 //從高拉倒低 DQ=0。_nop_()。i0。 //拉高電平 } /****************DS18B20 寫命令函數(shù) ****************** ******/ //向 1WIRE 總線上寫 1 個字節(jié) void write_byte(uchar val) { uchar i。 //延時 500 us presence=~DQ。 //66 us presence=DQ。 //550 us DQ=1。//從高拉倒低 DQ=0。_nop_()。 } /****************DS18B20復位函數(shù) ************************/ ow_reset(void) { char presence=1。 delay(200)。S1=1。S3=1。S5=1。S7=1。 Disdata=0x00。 DIN=1。S1=1。S3=1。S5=1。S7=0。 Disdata=0x00。 Disdata=dis_7[B1]。S2=1。S4=1。S6=0。 S8=1。 delay(200)。S1=1。S3=1。S5=0。S7=1。 Disdata=0x00。 Disdata=dis_7[S]。S2=1。S4=0。S6=1。 S8=1。 delay(200)。S1=1。S3=0。S5=1。S7=1。 Disdata=0x00。 DIN=1。S1=1。S3=1。S5=1。S7=1。 Disdata=0x00。 Disdata=dis_7[display[2]]。S2=1。S4=1。S6=1。 S8=1。 } } /****************顯示掃描函數(shù) ***************************/ scan() { S=TH/10。 LED1=1。 BEEP=1。 if ((TH3)T(TH+3)) {LED1=0。 if(key2==0) { TH。 if(key1==0) { TH++。 //定時 50ms num++。 } /*******************************************************/ void timer0()interrupt 1 { TH0=0x3C。t0。b)。a) for(b=248。 for(a=40。 //讀出溫度暫放 uchar data display[4 ]={0x00,0x00,0x00,0x00}。 // uchar code dis_7={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 uchar coad ASCii[]={48,49,50,51,52,53,54,55,56,57}。 //驅動器使能, 1有效 uint h,T。 sbit M_RE=P2^6。 sbit S7=P0^6。 sbit S5=P0^4。 sbit S3=P0^2。 sbit S1=P0^0。 //蜂鳴器輸出口 sbit key1=P2^0。 sbit LED2=P2^3。 //濕度輸入口 sbit DIN=P1^7。 sbit DQ=P3^6。//定義數(shù)的各位數(shù),分別為百,十,個位 uint number。 // 該字節(jié)用于保存本機設備號 unsigned int S,G,TH,RS。延時函數(shù)用 include define Disdata P1 //段碼輸出口 define uchar unsigned char define uint unsigned int /* 485通信命令 */ define __ACTIVE_ 0x01 // 主機詢問從機是否存在 define __GETDATA_ 0x02 // 主機發(fā)送讀設備請求 define __OK_ 0x03 // 從機應答 define __STATUS_ 0x04 // 從機發(fā)送設備狀態(tài)信息 define __MAXSIZE 0x08 // 緩沖區(qū)長度 define __ERRLEN 12 // 任何通信幀長度超過 12則表示出錯 uchar dbuf[__MAXSIZE]。 該系統(tǒng)的不足之處在于沒能夠實現(xiàn)溫濕度的自動調節(jié),可以進一步加入溫濕度自動調節(jié)電路,在當前溫濕度超出作物所需的最適宜條件時,啟動溫濕度調節(jié)裝置,就可以真正的實現(xiàn)溫濕度的自動控制。 本設計的有優(yōu)點在于操作人員可根據(jù)不同農作物的需求來設定最佳適宜溫度值,在當前溫度偏離所設定的適宜溫度 177。單片機采用 C 語言程序,建立模塊化結構,各模塊互相獨立,有較高的可靠性和擴展性。這樣的處理會使總線在狀態(tài)切換時,有一個穩(wěn)定的工作過程。 在 485 通信的芯片中,尤其要注意對 485 控制端 DE 的軟件編程。 這里采用的是數(shù)據(jù)包通信方式,通信數(shù)據(jù)是成幀成包發(fā)送的,每包數(shù)據(jù)都有引導碼、長度碼、地址碼、地址碼、命令碼、內容、校驗碼等部分組成 。 485 芯片的軟件編程對產品的可靠性也有很大影響。如果在總線上所有發(fā)送器被禁止時,接收器輸出邏輯 0,這會誤認為通信幀的起始引起工作不正常。 由于 RS485 芯片的特性,接收器的檢測靈敏度為 177。 考慮到線路的特殊情況(如一條分機的 485 芯片被擊穿短路),為防止總線中其他分機的通信受到影響,在輸出端串聯(lián)了兩個 20Ω的電阻 R3 R36,這樣基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 20 本機的硬件故障就不會使整個總線的通信受到影響。 485 總線輸出電路的設 計要考慮到線路上的各種干擾及線路特性阻抗的匹配。這種情況尤其表現(xiàn)在某個分機出現(xiàn)異常情況下(死機),會使整個系統(tǒng)通信崩潰。 在本系統(tǒng)中,使用 RS485 異步半雙工通信總線,能夠多點測量大棚溫濕度,并與上位機連接,實現(xiàn)遠程控制。在圖中,當輸出高電平 “1”時,晶體管導通,壓電蜂鳴器兩端獲得約 +5V 電壓而鳴叫;當輸出低電平 “0”時,三極管截止,蜂鳴 器停止發(fā)聲。 蜂 鳴器報警電路的設計只需購買市售的壓電式蜂鳴器,然后通過 AT89S51 的 1 根口線經驅動器驅動蜂鳴 器 發(fā)聲。 本設計采用兩個發(fā)光二級管和蜂鳴器作為報警電路。數(shù)碼管顯示電路如圖 34 所示: 基于單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)設計 18 圖 34 顯示電路 報警電路設計 在微型計算機控制系統(tǒng)中,為了安全生產,對于一些重要的參數(shù)或系統(tǒng)部位,都設有緊急狀態(tài)報警系統(tǒng),以便提醒操作人員注意,或采取緊急措施。這種鍵盤結構的優(yōu)點是電路簡單,缺點是當鍵的數(shù)量較多時占用的 I/O 線的數(shù)量較多。 硬件電路設計 溫度測量電路 溫度測量采用 DS18B20,它是單線傳輸器件,不需校正溫宿,接口接的是 ,具體的溫度測量電路如圖 31所示: 圖 31 溫度測量電路 濕度測量電路 濕度測量用的是 HS1101電容式 濕度傳感器 ,他與 NE556
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1