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

正文內(nèi)容

溫室大棚溫濕度控制系統(tǒng)-資料下載頁

2025-08-05 10:17本頁面
  

【正文】 TMOD=0x02。//定時器0工作方式2,TH0是重裝值,TL0是初值 TH0=0x00。 //重載值 TL0=0x00。 //初始化值 ET0=1。 //開中斷 TR0=1。 }/* 外部中斷0初始化*/void EX0init(void){ IT0 = 1。 //指定外部中斷0下降沿觸發(fā),INT0 () EX0 = 1。 //使能外部中斷 EA = 1。 //開總中斷} 數(shù)據(jù)采集模塊軟件流程準備開始標志:當?shù)碗娖降陀?8ms后,單片機將輸出端口改為輸入,開始讀取DHT11的數(shù)據(jù)。然后將電平拉高,等待DHT11響應(yīng),DHT11將電平信號拉低以示響應(yīng)單片機信號,而后將電平拉高準備發(fā)送數(shù)據(jù)信息。讀取數(shù)據(jù)過程:DHT11先發(fā)送12—14us的低電平信號,然后緊跟高電平,如果在116—118us左右,將自動識別為1,如果在26—28us左右將識別為0。這樣循環(huán)40次,共40位二進制數(shù),每八位為一組,其中包括八位濕度整數(shù)位、八位濕度小數(shù)位、八位溫度整數(shù)位,八位溫度小數(shù)位、八位較檢位。由于設(shè)計的需要,現(xiàn)只讀取八位濕度整數(shù)值,將讀取的濕度值傳給單片機。程序如下:includeunsigned char wendu,shidu。 void delay_us() // 延時子程序{ unsigned char i。 i。 i。 i。 i。 i。 i。}void delayms(unsigned int x) // 根據(jù)給定值進行延時子程序{unsigned char n。while((x)!=0){for(n=0。n115。n++){。}}}char receive(){ unsigned int i。 unsigned char temp,respond。 unsigned char _data=0。 for(i=0。i=7。i++) { respond=2。 while((!TRH)amp。amp。respond++)。 delay_us()。 delay_us()。 delay_us()。 if(TRH) { temp=1。 respond=2。 while((TRH)amp。amp。respond++)。 } else temp=0。 _data=1。 _data|=temp。 } return(_data)。}//濕度讀取子程序 //溫度高8位== TL_data//溫度低8位== TH_data//濕度高8位== RH_data//濕度低8位== RH_data//校驗 8位 == CK_data//調(diào)用的程序有 delay()。, Delay_5us()。,RECEIVE()。 void read(){ unsigned int respond。 unsigned int RH_temp,RL_temp,TH_temp,TL_temp,CK_temp,untemp, RH_data,RL_data,TH_data,TL_data,CK_data。 //主機拉低18ms TRH=0。 delayms(18)。 TRH=1。 //DATA總線由上拉電阻拉高 主機延時20us delay_us()。 delay_us()。 delay_us()。 delay_us()。 TRH=1。 //判斷DHT11是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運行 if(!TRH) { respond=2。 //判斷DHT11發(fā)出 80us 的低電平響應(yīng)信號是否結(jié)束 while((!TRH)amp。amp。respond++)。 respond=2。 //判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài) while((TRH)amp。amp。respond++)。 //數(shù)據(jù)接收 RH_temp=receive()。 RL_temp=receive()。 TH_temp=receive()。 TL_temp=receive()。 CK_temp=receive()。 TRH=1。 untemp=(RH_temp+RL_temp+TH_temp+TL_temp)。 //數(shù)據(jù)校驗 if(CK_temp==untemp) { RH_data=RH_temp。 RL_data=RL_temp。 TH_data=TH_temp。 TL_data=TL_temp。 CK_data=CK_temp。 } } //x是溫度值 y是濕度值 wendu=(unsigned char) (TH_data )。 shidu=(unsigned char) (RH_data )。} 顯示模塊 初始化LCD1602顯示模塊,設(shè)置8位格式,2行,5*7矩陣顯示,整體顯示,關(guān)光標,不閃爍設(shè)定輸入方式,增量不移位,清除屏幕顯示,延時等待,將采集到的溫濕度數(shù)據(jù)進行轉(zhuǎn)換,十六進制轉(zhuǎn)換成十進制,輸入相應(yīng)的地址數(shù)據(jù),延時等待,輸入需要顯示的數(shù)據(jù)。/* 主函數(shù)*/void main(void){ EX0init()。 //初始化外部中斷 TIM0init()。//初始化定時器 LCD_Init()。 //初始化液晶 delayms(20)。 //延時有助于穩(wěn)定 LCD_Clear()。 //清屏 LCD_Write_String(5,0,RECEIVE)。 LCD_Write_Char(9,1,0xdf)。//右上角點 LCD_Write_Char(10,1,39。C39。)。// LCD_Write_Char(15,1,39。%39。)。//用于顯示溫度濕度單位 while(1)//主循環(huán) { if(irok) //如果接收好了進行數(shù)據(jù)處理 { Ircordpro()。 irok=0。 } if(irpro_ok) //如果處理好后進行工作處理 { LCD_Write_Char(1,1,display[adres1])。 //寫地址位 LCD_Write_Char(2,1,display[adres2])。 LCD_Write_Char(7,1,display[dat1])。 //寫數(shù)據(jù)1 LCD_Write_Char(8,1,display[dat2])。 LCD_Write_Char(13,1,display[dat3])。 //寫數(shù)據(jù)2 LCD_Write_Char(14,1,display[dat4])。 irpro_ok=0。 //處理完成標志 delay500ms()。 delay500ms()。 } }}終端液晶顯示程序include include sbit RS = P2^4。 //定義端口 sbit RW = P2^5。sbit EN = P2^6。define RS_CLR RS=0 define RS_SET RS=1define RW_CLR RW=0 define RW_SET RW=1 define EN_CLR EN=0define EN_SET EN=1define DataPort P0/* 判忙函數(shù)*/ bit LCD_Check_Busy(void) { DataPort= 0xFF。 RS_CLR。 RW_SET。 EN_CLR。 _nop_()。 EN_SET。 return (bit)(DataPort amp。 0x80)。 }/* 寫入命令函數(shù)*/ void LCD_Write_Com(unsigned char ) { while(LCD_Check_Busy())。 //忙則等待 RS_CLR。 RW_CLR。 EN_SET。 DataPort= 。 _nop_()。 EN_CLR。 }/* 寫入數(shù)據(jù)函數(shù)*/ void LCD_Write_Data(unsigned char Data) { while(LCD_Check_Busy())。 //忙則等待 RS_SET。 RW_CLR。 EN_SET。 DataPort= Data。 _nop_()。 EN_CLR。 }/* 清屏函數(shù)*/ void LCD_Clear(void) { LCD_Write_Com(0x01)。 delayms(5)。 }/* 寫入字符串函數(shù)*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x)。 //表示第一行 } else { LCD_Write_Com(0xC0 + x)。 //表示第二行 } while (*s) { LCD_Write_Data( *s)。 s ++。 } }/* 寫入字符函數(shù)*/ void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x)。 } else { LCD_Write_Com(0xC0 + x)。 } LCD_Write_Data( Data)。 }/* 初始化函數(shù)*/ void LCD_Init(void) { LCD_Write_Com(0x38)。 /*顯示模式設(shè)置*/ delayms(5)。 LCD_Write_Com(0x38)。 delayms(5)。 LCD_Write_C
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1