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

正文內(nèi)容

基于89c52單片機的糧食倉庫溫濕度智能檢測畢業(yè)論文(編輯修改稿)

2025-07-25 01:46 本頁面
 

【文章內(nèi)容簡介】 是 否 是 否圖 主程序流程圖/* 主函數(shù) *//************************************/void main() { EA=1。 //開總中斷 init_t0()。 //初始化定時器 init_t1()。 TR0=1。 //定時器開始工作 TR1=1。 ET0=1。 lcd_init() 。 //初始化 LCD ok_menu()。BEEP=0。while(1) { if(key1==0)Key1 鍵按下?顯示濕度Key2 鍵按下? 顯示溫度開始結束 { lcd_init。 wendu_Menu ()。 do{ Read_Temperature() 。 Disp_Temperature() 。 baojing()。 }while(key2) 。} if(key2==0){lcd_init。shidu_Menu()。do{ if(int_flag==1) { disp()。 }}while(key1)。 } } 溫度采集模塊程序設計根據(jù) DS18B20 的通訊協(xié)議,主機(單片機)控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對 DS18B20 進行復位操作,復位成功后發(fā)送一條ROM 指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進行預定的操作。復位要求主CPU 將數(shù)據(jù)線下拉 500 微秒,然后釋放,當 DS18B20 收到信號后等待 16~60 微秒左右,后發(fā)出 60~240 微秒的存在低脈沖,主 CPU 收到此信號表示復位成功 [7]。 否 是圖 溫度檢測程序流程DS18B20 中的溫度傳感器可完成對溫度的測量,以 12 位轉(zhuǎn)化為例:用 16 位符號擴展的二進制補碼讀數(shù)形式提供,以 ℃/LSB 形式表達,其中 S 為符號位 [8]。圖 DS18B20 溫度值初始化是否成功?初始化從 18B20 讀字節(jié)向 18B20 寫字節(jié)開始結束讀取溫度這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲在 18B20 的兩個 8 比特的 RAM 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0,這 5 位為 0,只要將測到的數(shù)值乘于 即可得到實際溫度;如果溫度小于 0,這 5 位為 1,測到的數(shù)值需要取反加1 再乘于 即可得到實際溫度(例如+125℃ 的數(shù)字輸出為 07D0H,+℃的數(shù)字輸出為 ℃的數(shù)字輸出為 FF6FH,55℃的數(shù)字輸出為 FC90H) [9]。/********************************************************** /************溫度測量************************************** /********************************************************** //*初始化 ds1820 *//*******************************************************************/Init_DS18B20(void){ DQ = 1 。 //DQ 復位 Delay(8) 。 //稍做延時 DQ = 0 。 //單片機將 DQ 拉低 Delay(90) 。 //精確延時 大于 480us DQ = 1 。 //拉高總線 Delay(8) 。 presence = DQ 。 //如果=0 則初始化成功 =1 則初始化失敗 Delay(100) 。 DQ = 1 。 return(presence) 。 //返回信號,0=presence,1= no presence}/* 讀一個字節(jié) *//*******************************************************************/ ReadOneChar(void){unsigned char i = 0 。unsigned char dat = 0 。for (i = 8 。 i 0 。 i) { DQ = 0 。 // 給脈沖信號 dat = 1 。 DQ = 1 。 // 給脈沖信號 if(DQ) dat |= 0x80 。 Delay(4) 。 } return (dat) 。}/* 寫一個字節(jié) *//*******************************************************************/ WriteOneChar(unsigned char dat){ unsigned char i = 0 。 for (i = 8 。 i 0 。 i) { DQ = 0 。 DQ = datamp。0x01 。 Delay(5) 。 DQ = 1 。 dat=1 。 }}/* 讀取溫度 *//*******************************************************************/ Read_Temperature(void){ Init_DS18B20() 。 WriteOneChar(0xCC) 。 // 跳過讀序號列號的操作 WriteOneChar(0x44) 。 // 啟動溫度轉(zhuǎn)換 Init_DS18B20() 。 WriteOneChar(0xCC) 。 //跳過讀序號列號的操作 WriteOneChar(0xBE) 。 //讀取溫度寄存器 temp_data[0] = ReadOneChar() 。 //溫度低 8 位 temp_data[1] = ReadOneChar() 。 //溫度高 8 位 }/* 數(shù)據(jù)轉(zhuǎn)換與溫度顯示 *//*******************************************************************/ Disp_Temperature(){display[4]=temp_data[0]amp。0x0f 。display[0]=ditab[display[4]]+0x30 。 //查表得小數(shù)位的值display[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4) 。display[3]=display[4]/100+0x30 。display[1]=display[4]%100 。display[2]=display[1]/10+0x30 。display[1]=display[1]%10+0x30 。if(display[3]==0x30) //高位為 0,不顯示{ display[3]=0x20 。 if(display[2]==0x30) //次高位為 0,不顯示display[2]=0x20 。}lcd_pos(0x48) 。 lcd_wdat(display[3]) 。 //百位數(shù)顯示 lcd_pos(0x49) 。 lcd_wdat(display[2]) 。 //十位數(shù)顯示 lcd_pos(0x4a) 。 lcd_wdat(display[1]) 。 //個位數(shù)顯示 lcd_pos(0x4c) 。 lcd_wdat(display[0]) 。 //小數(shù)位數(shù)顯示 } //報警void baojing(){if(display[2]=0x32amp。amp。display[1]=0x31){ BEEP=1。}else{BEEP=0。}} 濕度采集模塊顯示電路采用四位七段 LCD 數(shù)碼管顯示即 LED 四位七段數(shù)碼管字符型液晶模塊,是目前使用最廣泛的液晶屏之一。LED 四位七段數(shù)碼管字符型液晶模塊是點陣型液晶驅(qū)動方便,經(jīng)編碼后顯示內(nèi)容多樣化 [10]。標定即顯示當下工作狀態(tài),顯示溫濕度。 是 否 濕度檢測流程圖由圖 可知相對濕度與電容的關系可看成直線段,所以有相對濕度RH= ...........................................()27163RHC??? 圖 電容值與相對濕度值的關系所以有()???? ? RHRH???????開定時 T0,T1是否計滿 1S?關閉 T0 并根據(jù)頻率算出濕度值開始結束顯示溫度/****************************************************************************************濕度測量************************************************************************************************/ ///////////////軟件延時 /////////////void delays(unsigned int t) { while(t)。}//定時器 0 初始化void init_t0(void){ TMOD=(TMODamp。0xF0)||0x01。 //定時器 0 工作于方式 1// TH0=(6553650000)/256。 //定時 50ms// TL0=(6553550000)%256。TH0=0x4c。TL0=0x00。}// 定時器 1 初始化void init_t1(void){ TMOD=(TMODamp。0x0F)|0x50。 //定時器 1 用作計時 TH1 =0x00。 TL1 =0x00。}//定時器 0 中斷服務程序void int_t0(void) interrupt 1{ TH0=(6553550000)/256。 TL0=(6553550000)%256。 int_count++。 if(int_count==20) { TR1=0。 int_flag=1。 int_count=0x00。 }}//定時器 1 中斷服務程序void int_t1(void) interrupt 3 { T1count++。 } void disp(void) //濕度顯示函數(shù){ int_flag=0。 sum=TL1+TH1*256+T1count*65536。 //計算 1 秒內(nèi)的脈沖個數(shù) //以下將數(shù)據(jù)格式化,轉(zhuǎn)成 LED 可顯示的 BCD 碼 wet=100(sum4000)/50。//********** 濕度
點擊復制文檔內(nèi)容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1