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

正文內(nèi)容

基于單片機(jī)的pid溫度控制畢業(yè)設(shè)計(jì)-畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-01-19 08:48本頁(yè)面

【導(dǎo)讀】溫度是表征物體冷熱程度的物理量。在很多生產(chǎn)過(guò)程中,特別是在冶金、化工、建。保證產(chǎn)品質(zhì)量、節(jié)約能源等重大技術(shù)經(jīng)濟(jì)指標(biāo)相聯(lián)系。因此,溫度的測(cè)量與控制在國(guó)民。經(jīng)濟(jì)各個(gè)領(lǐng)域中均受到了相當(dāng)程度的重視。能化均離不開(kāi)單片機(jī)的應(yīng)用。將單片機(jī)控制方法運(yùn)用到溫度控制系統(tǒng)中,可以克服溫度。制效果和控制精度?,F(xiàn)代自動(dòng)控制越來(lái)越朝著智能化發(fā)展,在很多自動(dòng)控制系統(tǒng)中都用。而不是最在乎系統(tǒng)的快速性,所以用成本低廉的單片機(jī)控制小型的,而又不是很復(fù)雜,高速度,低功耗以及高性能方面取得了很大的進(jìn)展。圖稍加改進(jìn),還可以進(jìn)行不同地點(diǎn)的實(shí)時(shí)溫度檢測(cè)和控制。產(chǎn)質(zhì)量及生產(chǎn)效率,降低生產(chǎn)效益。示溫度,而且能夠較好控制。能存在的熱缺陷,進(jìn)而能及時(shí)發(fā)現(xiàn)、處理、預(yù)防重大事故的發(fā)生。業(yè)對(duì)象中主要的被控參數(shù)之一??刂葡到y(tǒng)以51單片機(jī)為檢測(cè)控制中心單元,具有溫度設(shè)定與控制功能。采用單片機(jī)AT89C52設(shè)計(jì)溫度實(shí)時(shí)測(cè)量及控制系統(tǒng)。溫度傳感器之所以選擇

  

【正文】 a)。 } /************************************************************ *Function:讀取溫度 *************************************************************/ void GemTemp(void) { readbytes(9)。 if (CRC(9)==0) //校驗(yàn)正確 { Temperature = temp_buff[1]*0x100 + temp_buff[0]。 Temperature /= 16。 //忽略小數(shù)部分 TempDelay(1)。 Alarm = temp_buff[2]。 } } /************************************************************ *Function:內(nèi)部配置 *************************************************************/ void Config18b20 (void) //重新配置報(bào)警限定值 { Init18b20()。 WriteByte(0xcc)。 //skip rom WriteByte(0x4e)。 //write scratchpad WriteByte(Alarm)。 //寫(xiě)入溫度上限 Init18b20()。 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 35 WriteByte(0xcc)。 //skip rom WriteByte(0x48)。 //保存設(shè)定值 Init18b20()。 WriteByte(0xcc)。 //skip rom WriteByte(0xb8)。 //回調(diào)設(shè)定值 } /************************************************************ *Function:讀 18B20的 ID *************************************************************/ void ReadID (void)//讀取器件 id { Init18b20()。 WriteByte(0x33)。 //read rom readbytes(8)。 } /************************************************************ *Function:18B20 全處理 *************************************************************/ void TemperatuerResult(void) { p = id_buff。 ReadID()。 Init18b20 ()。 WriteByte(0xcc)。 //skip rom WriteByte(0x44)。 //Temperature convert Init18b20 ()。 WriteByte(0xcc)。 //skip rom 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 36 WriteByte(0xbe)。 //read Temperature p = temp_buff。 GemTemp()。 } /************************************************************ *Function:數(shù)碼管 顯示掃描中斷 *************************************************************/ void display() interrupt 1 using 1//顯示掃描中斷 { TH0 = 0xFC。 TL0 = 0x17。 P2 = 0xff。 // 先關(guān)閉所有數(shù)碼管 P0 = dis_buf[dis_index]。 // 顯示代碼傳送到 P0 口 P2 = dis_digit。 // 傳送位選通值 dis_digit = _crol_(dis_digit,1)。 // 位選通值左移 , 下次中斷時(shí)選通下一位數(shù)碼管 dis_index++。 dis_index amp。= 0x03。 //掃描到第四個(gè)數(shù)碼管后返回 } /************************************************************ *Function:顯示代碼處理 *************************************************************/ void processCode(void) //顯示代碼處理(分離數(shù)值) { gechar =(uchar)(Temperature % 10)。 shichar=(uchar)(Temperature % 100 / 10)。 baichar=(uchar)(Temperature / 100)。 dis_buf[0] = dis_code[gechar]。 // 顯示代碼的個(gè)位傳送到數(shù)碼管一 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 37 dis_buf[1] = dis_code[shichar]。 // 顯示代碼的十位傳送到數(shù)碼管二 dis_buf[2] = dis_code[baichar]。 // 顯示代碼的百位傳送到數(shù)碼管三 dis_buf[3] = dis_code[0]。 // 第四位不用 顯示 0 } /************************************************************ *Function:按鍵處理 *************************************************************/ void processKey(void) //按鍵處理程序 { uchar Alarm_ge,Alarm_shi,Alarm_bai。 while(1) { Alarm_ge =(uchar)(Alarm % 10)。 Alarm_shi=(uchar)(Alarm % 100 / 10)。 Alarm_bai=(uchar)(Alarm / 100)。 dis_buf[0] = dis_code[Alarm_ge]。 // 第一位 用來(lái)顯示所設(shè)報(bào)警值的個(gè)位 dis_buf[1] = dis_code[Alarm_shi]。 // 第二位 用來(lái)顯示所設(shè)報(bào)警值的十位 dis_buf[2] = dis_code[Alarm_bai]。 // 第三位 用來(lái)顯示所設(shè)報(bào)警值的百位 dis_buf[3] = dis_code[11]。 // 第四位 用來(lái)表示現(xiàn)在正在設(shè)定報(bào)警上限值中 if (Key_UP == 0) { TempDelay(10000)。 //延時(shí)防抖 按下 10ms 再測(cè) if (Key_UP == 0) Alarm = Alarm + 1。 //上調(diào)溫度 if (Alarm = 100) //限制溫度上限為 100度 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 38 Alarm = 100。 } if (Key_DOWN == 0) { TempDelay(10000)。 //延時(shí)防抖 按下 10ms 再測(cè) if (Key_DOWN == 0) Alarm = Alarm 1。 //上調(diào)溫度 if (Alarm = 1) //限制溫度下限為 1 度 Alarm = 1。 } if (Key_SET == 0) { Spk=0。 TempDelay(10000)。 //延時(shí)防抖 按下 10ms 再測(cè) Spk=1。 if (Key_SET == 0) { Config18b20 ()。 break。 //跳出 while循環(huán) } } } } /**************************************************************** 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 39 *Function:主程序 ***************主程序入口 *****************************************/ void main() { TH0=0XFC。 TL0=0X17。 TR0=1。 //定時(shí)器 T0 開(kāi)始運(yùn)行 EA=1。 //總中斷打開(kāi) ET0=1。 //T0 中斷打開(kāi) dis_index=0。 dis_buf[0] = dis_code[0]。 // 第一位 初始值為 0 dis_buf[1] = dis_code[0]。 // 第二位 初始值為 0 dis_buf[2] = dis_code[0]。 // 第三位 初始值為 0 dis_buf[3] = dis_code[0]。 // 第四位 初始值為 0 TemperatuerResult ()。 while(1) { TemperatuerResult ()。 //開(kāi)始采集溫度 if(TemperatureAlarm) //超過(guò) Alarm值 蜂鳴器報(bào)警 (低電平有效) { Spk=0。 } else { Spk=1。 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 40 } processCode()。 //顯示代碼處理 if (!Key_SET) //檢測(cè) Key_SET鍵是否被按下(低電平有效) { TempDelay(10000)。 //延時(shí)防抖 按下 10ms 再測(cè) if (!Key_SET) //如果 Key_SET鍵確實(shí)被按下,則開(kāi)始進(jìn)入功能鍵處理程序 processKey()。 //按鍵處理程序 } } } /***************程序結(jié)束 ****************************************/ 中北大學(xué)信息商務(wù)學(xué)院 2021 屆本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 41 附錄 2: PID控制具體程序 /*********************************************************/ /* 名稱(chēng) : float PIDprocess1 */ /* 功能 : PID adjust */ /* 說(shuō)明 : */ /* 調(diào)用 : */ /* 輸入 : float xdata *Yn, float xdata *Rn */ /* 返回值 : deltaPn */ /*********************************************************/ float PIDprocess1() { int data E_0。 float data deltaPn,deltaPi,deltaPp,deltaPd,PsumCopy。 E_0=SetTemperature1CurrentTemperature1。 if(abs(E_0)Emax) { deltaPp=(float)Kp*(E_0E_11)。 deltaPd=(float)Kd*(E_02*E_11+E_21)。 // if(deltaPd=dPdmax) deltaPd=0。 deltaPn=deltaPp+deltaPd。 } else { if(abs(E_0)E0) { deltaPi=(float)Ki*E_0*(Emaxabs(E_0))/(EmaxE0)。 } else { //小誤差時(shí)的處理 deltaPi=(flo
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1