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

正文內(nèi)容

智能窗戶開關電路畢業(yè)設計(論文)-資料下載頁

2025-08-17 13:10本頁面

【導讀】到了現(xiàn)代智能化建筑中,提供住戶一個安全、方便的環(huán)境。據(jù)統(tǒng)計,在未來的幾年。內(nèi),安裝智能窗的用戶將不斷增加。本次設計的智能窗戶系統(tǒng)能通過其數(shù)據(jù)檢測傳。感電路不斷循環(huán)檢測室外濕度及溫度,當濕度或者溫度達到一定時,窗戶自動關閉,防止潮濕空氣或雨水進入房間,當溫度和濕度都到達合適程度時,窗戶自動開啟。該系統(tǒng)可以實現(xiàn)自動開關窗,本文詳細介紹了系統(tǒng)的整體設計原

  

【正文】 _nop_()。 //_nop_()。 //_nop_()。 } /******************************************************************** ****************************************************/ /******************************************************************** ****************************************************/ void delay(uint i) /*延時 i/10 ms*/ { uchar y。 35 for(。i 0。i) for(y=0。y28。y++)。 } /******************************************************************** * 名稱 : Delay_1ms() * 功能 : 延時子程序,延時時間為 1ms * x * 輸入 : x (延時一毫秒的個數(shù) ) * 輸出 : 無 ***********************************************************************/ void Delay_1ms(uint i) { uchar x,j。 for(j=0。ji。j++) for(x=0。x=148。x++)。 } /******************************************************************** ****************************************************/ /******************************************************************** ****************************************************/ bit busy() //讀狀態(tài)函數(shù),讀出函數(shù)是否處在忙狀態(tài) { bit busy_flog=0。 rs=0。 rw=1。 en=1。 delay_10us()。 busy_flog=(bit)(P0amp。0x80)。 en=0。 return busy_flog。 } void wcmd(uchar del) //1602 命令函數(shù) 南京工業(yè)大學畢業(yè)設計(論文) 36 { while(busy())。 rs=0。 rw=0。 en=0。 delay_10us()。 P0=del。 delay_10us()。 en=1。 delay_10us()。 en=0。 } void wdate(uchar del) //1602 寫數(shù)據(jù)函數(shù) { while(busy())。 rs=1。 rw=0。 en=0。 delay_10us()。 P0=del。 delay_10us()。 en=1。 delay_10us()。 en=0。 } void lcd_init() //1602 初始化 { wcmd(0x38)。 wcmd(0x0c)。 wcmd(0x06)。 wcmd(0x01)。 } 37 void lcd_char(uchar hang,uchar lie,char date) //行,列,需要輸入 1602 的數(shù)據(jù) (字符) { uchar a。 if(hang==1) a=0x80。 if(hang==2) a=0xc0。 a=a+lie1。 wcmd(a)。 wdate(date)。 } void lcd_string(uchar hang,uchar lie,uchar *p) //行,列,需要輸入 1602的數(shù)據(jù) (字符串) { uchar a,b=0。 if(hang==1) a=0x80。 if(hang==2) a=0xc0。 a=a+lie1。 while(1) { wcmd(a++)。 b++。 if((*p==39。\039。)||(b==16)) break。 wdate(*p)。 p++。 } } void Read(uchar * Data) /*讀取 DHT11 數(shù)據(jù) */ { uchar x,m,n,Time_out。 for(n=0。n5。n++) { for(m=0。m8。m++) //1 字節(jié) 8位循環(huán) { 南京工業(yè)大學畢業(yè)設計(論文) 38 while (!dp)。 /*每一 bit 數(shù)據(jù)都以 50us 低電平時隙開始,這里直接等待DHT11 把數(shù)據(jù)線拉到高電平 */ delay_10us()。 /*高電平的長短決定了數(shù)據(jù)是 0 或是 1,數(shù)據(jù) 0 的高電平時間是 26us28us,這里取 30us*/ delay_10us()。 delay_10us()。 x = 0。 /*先把 數(shù)據(jù) x(二進制)置 0*/ if(dp) /*如果高電平時間大于 30us,則把數(shù)據(jù) x置 1*/ x = 1。 Time_out = 2。 while (dpamp。amp。Time_out++)。 /*等待下一數(shù)據(jù)位的觸發(fā)低電平,當有不確定原因造成 DHT11 無法把數(shù)據(jù)線拉低時,在這里程序會死機 */ if(Time_out==1) /*于是加入超時檢測變量,當 Time_out 加了一圈(原先定義的是 8bit 無符號變量),得到值 1,此時得 */ break。 /*到超時判 斷,退出循環(huán) */ *Data = 1。 /*DHT11 數(shù)據(jù)是從高位開始傳的,于是用左移,進行數(shù)據(jù)處理 */ if(x) *Data |= 0x01。 /*根據(jù)前面高電平時間長短判斷得到的 x值,賦給讀取數(shù)據(jù)的最低位 */ } Data++。 //地址加 1 } } /******************************************************************** ****************************************************/ /******************************************************************** ****************************************************/ uchar Get_data() /*DHT11 的握手協(xié)議模擬和數(shù)據(jù)讀取 */ { uchar o,sum。 dp = 0。 /*拉低數(shù)據(jù)位須大于 18ms,保證 DHT11 能檢測到起始信號 */ delay(180)。 /*延時略大于 18ms*/ dp = 1。 /*拉高數(shù)據(jù)位 2040us,延時等待 DHT11 響應 */ 39 delay_10us()。 delay_10us()。 delay_10us()。 delay_10us()。 if(dp==0) /*DHT11 發(fā)送響應,拉低數(shù)據(jù)線電平 80us*/ { while (!dp)。 /*等待 DHT11 把數(shù)據(jù)線拉高 80us,準備發(fā)送數(shù)據(jù) */ while (dp)。 /*檢測 DHT11 把數(shù)據(jù)線拉低,開始發(fā)送數(shù)據(jù) */ Read(Data)。 /*調(diào)用讀取數(shù)據(jù)子程序 */ for(o=0。o4。o++) /*將讀到的濕度和溫度,一共 32bit 數(shù)據(jù)相加,只取和的最后 8bit*/ sum+=Data[o]。 if(sum!=Data[4]) /*CRC 檢測 */ return 0。 else return 1。 /*無錯,則返回 1。 有錯,返回 0*/ } return 0。 /*消除警告 */ } void KEY(void) /*按鍵檢測 */ { if(KEY1 == 0) //按 溫度加 1 { Delay_1ms(15)。 if(KEY1 == 0) { warm++。 if(warm50) warm=50。 } Delay_1ms(200)。 } if(KEY2 == 0) 南京工業(yè)大學畢業(yè)設計(論文) 40 { Delay_1ms(15)。 if(KEY2 == 0) { warm。 if(warm0) warm=0。 } Delay_1ms(200)。 } if(KEY3 == 0) { Delay_1ms(15)。 if(KEY3 == 0) { wet++。 if(wet90) wet=90。 } Delay_1ms(200)。 } if(KEY4 == 0) { Delay_1ms(15)。 if(KEY4 == 0) { wet。 //限制范圍??? if(wet20) wet=20。 } Delay_1ms(200)。 41 } } void Data_manage(uchar * Character,uchar * Data) /*采集數(shù)據(jù)轉(zhuǎn)化成字符量*/ { Character[0] = Data[2]/10+0x30。 Character[1] = Data[2]%10+0x30。 Character[2] = 39。.39。 Character[3] = Data[3]/10+0x30。 Character[4] = Data[3]%10+0x30。 Character[5] = 39。\039。 } void Data_manage1(uchar * Character1,uchar * Data) { Character1[0] = Data[0]/10+0x30。 //字符 Character1[1] = Data[0]%10+0x30。 Character1[2] = 39。.39。 Character1[3] = Data[1]/10+0x30。 Character1[4]= Data[1]%10+0x30。 Character1[5]= 39。\039。 } void Data_manage2(uchar * Character2) { Character2[0] = warm/10+0x30。 //字符 Character2[1] = warm%10+0x30。 } void Data_manage3(uchar * Character3) { Character3[0] = wet/10+0x30。 //字符 Character3[1] = wet%10+0x30。 } 南京工業(yè)大學畢業(yè)設計(論文) 42 /*電機轉(zhuǎn)動 */ void run() { uchar i,z。 uint k。 if(open==0amp。amp。((Data[2]=warm)||(Data[0]=wet))) { for(z=0。z1。z++) { for(k=0。k512。k++) //順時針 { z0=1。z1=0。z2=0。z3=1。 delay(20)。 z0=0。z1=0。z2=0。z3=1。 delay(20)。 z0=0。z1=0。z2=1。z3=1。 delay(20)。 z0=0。z1=0。z2=1。z3=0。 delay(20)。 z0=0。z1=1。z2=1。z3=0。 delay(20)。 z0=0。z1=1。z2=0。z3=0。 delay(20)。 z0=1。z1=1。z2=0。z3=0。 delay(20)。 z0=1。z1=0。z2=0。z3=0。 delay(20)。 // for(i=0。i8。i++) //因為有 8 路的控制時序 即 P1 口 8個引腳控制時序 // { // P1 = F_Rotation[i]。 //順時針轉(zhuǎn)動 窗打開 // delay(13)。 //延時轉(zhuǎn)動 // } }
點擊復制文檔內(nèi)容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1