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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的水溫控制系統(tǒng)-資料下載頁(yè)

2024-11-30 18:53本頁(yè)面

【導(dǎo)讀】的采集,利用SPY0030進(jìn)行語(yǔ)音放大??筛鶕?jù)提前設(shè)定的溫度,自動(dòng)使用。LED實(shí)時(shí)顯示當(dāng)前溫度以便于用戶觀測(cè)。采用EEPROM使設(shè)定的溫度控制。如果有新的控溫范圍,則可以通過(guò)鍵盤改變。

  

【正文】 le(1){ iKeyValue = SP_GetCh()。 //取鍵值 key_value_process(iKeyValue)。 //鍵值處理 if(guifgSpeechPlay) temperature_speech_play( )。 //語(yǔ)音播放 if(status == system_temperature_control) display_speech_ADC_temperature()。 //測(cè)量 溫度顯示、溫度播報(bào)、PID 計(jì)算 Clear_WatchDog()。 //清看門狗 System_ServiceLoop()。 //鍵盤掃描 if(fOut=0) turn_off_timerB()。 } } //========================================================== //函數(shù) : void PIDinit(void) //語(yǔ)法: void PIDinit(void) //描述: PID 初始化 `基于單片機(jī)的水溫控制系統(tǒng) 35 //參數(shù):無(wú) //返回:無(wú) //========================================================== void PIDinit(void) { = 0。 = 0。 = 0。 } //========================================================== //函數(shù) :float PIDCalc( PID *pp, int NextPoint ) //語(yǔ)法: float PIDCalc( PID *pp, int NextPoint ) //描述: PID 計(jì)算 //參數(shù): PID 數(shù)值 采樣溫度值 //返回: PID 輸出值 //========================================================== float PIDCalc( PID *pp, int NextPoint ) { int dError, Error。 Error = ppSetPoint*10 NextPoint。 // 偏差 ppSumError += Error。 // 積分 dError = ppLastError ppPrevError。 // 當(dāng)前微分 ppPrevError = ppLastError。 ppLastError = Error。 return (ppProportion * Error // 比例項(xiàng) + ppIntegral * ppSumError // 積分項(xiàng) + ppDerivative * dError // 微分項(xiàng) )。 } //========================================================== //函數(shù) :void display_speech_ADC_temperature(void) //語(yǔ)法: void display_speech_ADC_temperature(void) //描述:整理溫度顯示值、語(yǔ)音播放資源、 PID 控制 //參數(shù):無(wú) //返回:無(wú) //========================================================== void display_speech_ADC_temperature(void){ float fT,K。 int adc_data。 static int siTlast = 0。 if(G_ADC_flag){ //判斷是否有溫度采樣 1,有 0,無(wú) G_ADC_flag = 0。 adc_data = adc_data_cmp()。 adc_data /= SET_ADC_TIME。 //計(jì)算溫度平均值 ``畢業(yè)(設(shè)計(jì))論文 36 if(adc_data 0x0255) K = 。 //確定溫度系數(shù) else K = 。 fT = adc_data * K。 //換算成溫度值 guiLED_Value[0] = (int)fT/10。 // 將溫度值轉(zhuǎn)換成十進(jìn)制用于 LED 顯示 guiLED_Value[1] = (int)fT%10。 guiLED_Value[2] = (int)(fT*10)%10。 if((int)fT != siTlast){ //判斷溫度的整數(shù)值是否變化 temperature_speech_index(guiLED_Value)。 //溫度整數(shù)值語(yǔ)音播放 SACM_A2021_Initial(0)。 //非自動(dòng)方式播放的初始化 SACM_A2021_InitDecoder(DAC2)。 // 開始對(duì)A2021 的語(yǔ)音數(shù)據(jù)以非自動(dòng)方式解碼 SP_INT_IRQ6()。 iAddrSpeech = speech_start_address(iaSpeech_index[0])。//語(yǔ)音播放始地址 guifgSpeechPlay = 1。 //設(shè)置語(yǔ)音為播放狀態(tài) siTlast = (int)fT。 } = 。 // 設(shè)置 PID 比例值 = 。 // 設(shè)置 PID 積分值 = 。 // 設(shè)置 PID 微分值 fOut = PIDCalc ( amp。stPID,(int)(fT*10) )。 // PID 計(jì)算 active()。 } } //========================================================== //函數(shù) : void active() //語(yǔ)法: void active() //描述: PID 輸出值的處理 //參數(shù):無(wú) //返回:無(wú) //========================================================== void active(){ if(fOut=0){ turn_off_relay()。 //溫度高于設(shè)定值,關(guān)閉電爐 turn_off_timerB()。 //停止計(jì)時(shí) } else{ if(fOut30*)//溫度低于設(shè)定值 2 攝氏度 turn_on_relay()。 //開電爐加熱 else { turn_on_relay()。SP_INT_TIMEB()。 } //初始化定時(shí)器,開始定時(shí)加熱 } `基于單片機(jī)的水溫控制系統(tǒng) 37 } //========================================================== //函數(shù): int adc_data_cmp() //語(yǔ)法: int adc_data_cmp() //描述: ADC 采樣數(shù)據(jù)的均值處理,抗干擾作用 //參數(shù): 無(wú) //返回: 無(wú) //========================================================== int adc_data_cmp() { int max。 int min。 int Sum。 int i。 max = giADC_DataSave[1]。 for(i=1。i11。i++){ if(giADC_DataSave[i]max) max = giADC_DataSave[i]。 //取出最大值 } min = giADC_DataSave[i]。 for(i=1。i11。i++){ if(giADC_DataSave[i]min) min = giADC_DataSave[i]。 //取出最小值 } for(i=1。i11。i++) Sum += giADC_DataSave[i]。 //累計(jì)值 Sum = Sum maxmin。 //排除最大最小值 return(Sum)。 } //========================================================== //函數(shù): void key_value_process(int key) //語(yǔ)法: void key_value_process(int key) //描述: 按鍵值的處理 //參數(shù): 鍵值 //返回: 無(wú) //========================================================== void key_value_process(int key) { int iAddr。 switch(key){ case 0: break。 case 1: if(status == system_temperature_set){ //溫度設(shè)置狀態(tài)下 guiLED_Value[0]++。 //溫度值增加 if(guiLED_Value[0]==10) guiLED_Value[0] = 0。 } break。 ``畢業(yè)(設(shè)計(jì))論文 38 case 2: if(status == system_temperature_set){ guiLED_Value[1]++。 if(guiLED_Value[1]==10) guiLED_Value[1] = 0。 } break。 case 4: if(status == system_temperature_set){ temperature_speech_index(guiLED_Value)。 status = system_temperature_control。 SACM_A2021_Initial(0)。 // 非自動(dòng)方式播放的初始化 SACM_A2021_InitDecoder(DAC2)。 //開始對(duì)A2021 的語(yǔ)音數(shù)據(jù)以非自動(dòng)方式解碼 guifgSpeechPlay = 1。 = guiLED_Valu
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1