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

正文內(nèi)容

單片機水溫自動控制系統(tǒng)設(shè)計(參考版)

2025-07-10 13:06本頁面
  

【正文】 return(ftmp)。 else if(OnTime=100) ftmp=100。}/*function: float GetOnMs(float OnTime)description: output control timeparameter: nonereturn: ftmp*/float GetOnMs(float OnTime){ float ftmp。 InteE[ch] [0]=InteE[ch] [1]。 OnMs[ch] [1]=GetOnMs(FiltA*OnMs[ch] [0]+FiltB*Tmpr)。 DiscE=Err [ch] [1]Err[ch] [0]。 //e(k) If(Err[ch] [1]=Emax) InteE[ch] [1]=InteE[ch] [1]=InteE[ch] [0]+Err[ch] [1]。/*function: unsigned char pid(unsigned char i,unsigned char j,unsigned char k,unsigned char l)description: this function for pid controlparameter: i:channel j:time k:set temprature l:actual tempraturereturn: adjust_timeadjust time*/void pid (unsigned char ch,float refval){ Float DiscE,Tmpr。float InteR[4] [2]。 P1_7= 0。 }// 如果溫度值大于等于報警值, 報警 else { P1_5= 1。 Alarm(90)。 P1_6= 1。 // 計算溫度值 sprintf( str , %.2f , TMP_F) 。 TMP=( TMP8) | TMP_L。 // 讀取溫度值的低8 位 TMP_H = READ( ) 。 // 跳過ROM 配置 WRITE( 0xBE) 。 // 默認(rèn)至少等待750 ms, 用于溫度轉(zhuǎn)換 INIT( ) 。 // 跳過ROM 配置 WRITE( 0x44) 。 } INIT( ) 。 display( ) 。 str[ 3] = 48。 str[ 0] = warning / 10+ 48。 warning。 // 增加上限 } else if( P1_2==0) { //delay1ms(10)。 //按鍵去抖 //while( P1_1==0)。 if (con=2) con=0。 //按鍵去抖 while (SET==0)。 // 浮點型數(shù)據(jù) // P1_0= 0。 short TMP= 0。 unsigned char TMP_H = 0。j++)。 for(j=0。i200。 }}//蜂鳴器控制void Alarm(unsigned char t){ unsigned char i,j。 P2 = ~0x08。 i255。 } P2 = ~0x00。 i++ ) { P0 = ~TAP[str[3]48] 。 for ( i=0。 P2 = ~0x02。 i255。 } P2 = ~0x00。 i++ ) { P0 = ~TAP[str[0]48] 。 while( j ) { for ( i=0。 // 右移一位, 準(zhǔn)備寫下一位 }}// 顯示程序( str 數(shù)組內(nèi)元素是ASCII碼, 所以要減去48)void display(void){ unsigned char i。 DQ = 1。 else DQ = 0。 if ( Damp。 i8。} // 寫DS18B20 的程序void WRITE( unsigned char D) { unsigned char i。 } return D。 } if(DQ) D += 0x80。 j9。 DQ = 1。 // 先讀數(shù)據(jù)低位 DQ = 0。 i8。 unsigned char D = 0。 // 等待90 s while ( ! DQ) 。 // 釋放18B20 數(shù)據(jù)線。 delay_10us(50) 。j++) 。i++) for (j=0。for (i=0。 // 空操作, 一個指令周期 _nop_( ) 。iD。// 延時子程序, 延時( 10* D+ 3) usvoid delay_10us( unsigned char D){ unsigned char i。// 定義一個存放轉(zhuǎn)換后溫度值的數(shù)組, 溫度值為字符型(ASCII碼),小數(shù)點后保留2位unsigned char str[10] 。unsigned char TAP[10] = // 共陽極, 不帶點{ 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90, } 。 // 定義DS18B20 的數(shù)據(jù)口sbit SET = P1^0。 并采用了PID算法,因而提高了控制的準(zhǔn)確度。通過本次應(yīng)用系統(tǒng)設(shè)計,在很大程度上提高了我們的獨立思考能力和單片機的專業(yè)知識,也深刻了解寫一篇應(yīng)用系統(tǒng)的步驟和格式,我所設(shè)計的該系統(tǒng)主要根據(jù)目前節(jié)省能源的發(fā)展趨勢,采用了自動化的結(jié)構(gòu)形式,實現(xiàn)對水溫的自動檢測和控制。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時,程序就會進入報警子程序,觸發(fā)蜂鳴器進行報警。開始開始初始化DS18B20存在?ROM操作命令存儲操作命令讀取溫度值返回是否 圖15 溫度采集轉(zhuǎn)換流程圖 按鍵處理方案此流程為按鍵處理模塊,CPU通過檢測數(shù)據(jù)線的狀態(tài)(0或1)就能知道是否有按鍵閉合,按鍵管理程序的功能是檢測是否有按鍵閉合,如果有按鍵閉合,消除抖動,根據(jù)電平轉(zhuǎn)到相應(yīng)的處理程序,按鍵流程圖如圖16所示。DS18B20的寫時序:(1)對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。 (2) 對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。圖13 總體線路設(shè)計 主程序(main)PID初始化DS18B20的初始化按鍵設(shè)置目標(biāo)溫度DS18B20溫度轉(zhuǎn)換讀取溫度數(shù)碼管顯示信號傳送及處理溫
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1