版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)控制系統(tǒng)課程設(shè)計(jì)報(bào)告基于PID控制算法的電阻加熱爐溫度控制系統(tǒng)設(shè)計(jì)摘要:溫度控制是人們?nèi)粘I钪薪?jīng)常遇到的問(wèn)題,傳統(tǒng)的控制方法都存在控制慢,精度低等問(wèn)題,而計(jì)算機(jī)控制系統(tǒng)能夠利用微型處理器加上科學(xué)的控制算法使溫度控制實(shí)現(xiàn)控制快而且精度高。在本設(shè)計(jì)中,控制對(duì)象為電阻加熱爐,通過(guò)控制加在電阻絲兩端電壓的工作時(shí)間,從而可控制輸入電阻加熱爐的功率,繼而達(dá)到控制其溫度的目的。此系統(tǒng)以單片機(jī)為核心,采用固態(tài)繼電器為執(zhí)行電路,實(shí)現(xiàn)對(duì)電爐的自動(dòng)控制。算法采用增量型PID控制。另外本文還闡述了PID控制器的設(shè)計(jì),硬件結(jié)構(gòu)和軟件設(shè)計(jì),實(shí)現(xiàn)了一套溫度采集和控制的方案。該系統(tǒng)具有硬件成本低,控溫精度較高,可靠性
2、好,抗干擾能力強(qiáng)等特點(diǎn)。 關(guān)鍵詞:電加熱爐;單片機(jī);溫度控制;PID算法1、單片機(jī)溫度控制系統(tǒng)方案簡(jiǎn)介單片機(jī)溫度控制系統(tǒng)是數(shù)控系統(tǒng)的一個(gè)簡(jiǎn)單應(yīng)用。在冶金、化工、建材、機(jī)械、食品、石油等各類工業(yè)中,廣泛使用著加熱爐、熱處理爐、反應(yīng)爐等,因此,溫度是工業(yè)對(duì)象中一個(gè)主要的被控參數(shù)。由于爐子的種類不同,因而所使用的燃料和加熱方法也不同,例如煤氣、天然氣、油、電等;由于工業(yè)不同,所需要的溫度高低不同,因而所采用的測(cè)溫原件和測(cè)溫方法也不同;產(chǎn)品工業(yè)不同,控制溫度的精度也不同,因而對(duì)數(shù)據(jù)采集的精度和所采用的控制算法也不同。本系統(tǒng)所使用的加熱爐為電加熱路,爐絲功率為2kw,系統(tǒng)要求測(cè)試水杯恒溫,誤差為,超調(diào)量
3、盡可能小,溫度上升較快且有良好的穩(wěn)定性。單片機(jī)溫度控制系統(tǒng)是以STC89C52RC單片機(jī)為控制核心,輔以采樣反饋電路,驅(qū)動(dòng)芯片,固態(tài)繼電器對(duì)電爐進(jìn)行控制的微機(jī)控制系統(tǒng)。其系統(tǒng)結(jié)構(gòu)框圖可表示為:系統(tǒng)采用單閉環(huán)形式,其基本控制原理為:將溫度設(shè)定值(即輸入控制量)和溫度反饋值同時(shí)送入控制電路部分,然后經(jīng)過(guò)單片機(jī)運(yùn)算得到輸出控制量,輸出控制量控制I/O得到一定占空比的PWM波控制固態(tài)繼電器,固態(tài)繼電器接通220V市電給電爐,調(diào)節(jié)PWM占空比使電爐達(dá)到一定的溫度。其控制系統(tǒng)框圖如圖1-1所示。圖1-1 系統(tǒng)框圖2、單片機(jī)簡(jiǎn)介STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS 8位微控制器,具有
4、8K在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,有512字節(jié)RAM,32位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外STC89C52還可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。其直插式芯片
5、引腳圖及內(nèi)部結(jié)構(gòu)如圖2-1圖所示。圖 2-1STC89C52單片機(jī)具體信息如下:1. 增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051;2. 工作電壓:5.5V3.3V(5V單片機(jī))/3.8V2.0V(3V單片機(jī));3.工作頻率范圍:040MHz,相當(dāng)于普通8051的080MHz,實(shí)際工作頻率可達(dá)48MHz4. 用戶應(yīng)用程序空間為8K字節(jié);5. 片上集成512 字節(jié)RAM;6. 通用I/O口(32個(gè)),復(fù)位后為:P0/P1/P2/P3是準(zhǔn)雙向口/弱上拉,P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。7
6、. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片;8. 具有EEPROM 功能;9. 共3個(gè)16位定時(shí)器/計(jì)數(shù)器,即定時(shí)器T0、T1、T2;10.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒;11. 通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART;12. 工作溫度范圍:-40+85(工業(yè)級(jí))/075(商業(yè)級(jí));13. PDIP封裝。STC89C52芯片實(shí)物圖如下圖所示:3 硬件電路設(shè)計(jì)3.1測(cè)溫電路采用D
7、S18B20數(shù)字式溫度傳感器。DS18B20是美國(guó)DALLAS半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化,低功耗,高性能,抗干擾能力強(qiáng),易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成數(shù)字信號(hào)處理器處理。測(cè)量的溫度范圍是55125,測(cè)溫誤差0.5。可編程分辨率912位,對(duì)應(yīng)的可分辨溫度分別為0.5,0.25,0.125和0.0625。相較熱電偶傳感器而言可實(shí)現(xiàn)高精度測(cè)溫3.2矩陣鍵盤采用的按鍵是獨(dú)立的立式4引腳按鍵。3.3顯示電路采用的是共陰極7段數(shù)碼管。由于一般的數(shù)碼管每一段亮至少需要10個(gè)毫安的電流,而單片機(jī)的I/O口送不出如此大的電流,所以我們需要加數(shù)碼管的驅(qū)動(dòng)電路,可以
8、用上拉電阻的方法,也可以使用專門的驅(qū)動(dòng)芯片。由于我們使用的開(kāi)發(fā)板使用的是74HC573,其輸出電流較大,足夠點(diǎn)亮數(shù)碼管。3.4執(zhí)行電路SSR-40 DA固態(tài)繼電器4系統(tǒng)軟件設(shè)計(jì)4.1軟件程序設(shè)計(jì)整個(gè)溫度控制系統(tǒng)的軟件程序由主程序、中斷服務(wù)程序和子程序三部分組成。其中主程序主要是對(duì)系統(tǒng)的運(yùn)行進(jìn)行初始化,包括實(shí)現(xiàn)各種參數(shù)的初始化,使顯示,鍵盤,報(bào)警裝置等部分開(kāi)始工作,最后是控制電加熱爐的正常運(yùn)行。而系統(tǒng)初始化包括設(shè)置控制量的初始值、采樣周期、中斷方式和狀態(tài)、定時(shí)器的工作狀態(tài),中斷的開(kāi)關(guān)等。主程序中也要實(shí)現(xiàn)數(shù)據(jù)采集的任務(wù),通過(guò)調(diào)用數(shù)據(jù)采集的子函數(shù),檢測(cè)出電加熱爐的爐溫信號(hào),講采集到的溫度值顯示到數(shù)碼
9、管上,同時(shí)調(diào)用鍵盤設(shè)置的子函數(shù),獲取設(shè)置的溫度,顯示在數(shù)碼管的另外三位,最后根據(jù)采集到的溫度,與設(shè)定溫度值,調(diào)用PID算法子函數(shù),進(jìn)行PID計(jì)算,輸出的結(jié)果進(jìn)入到中斷函數(shù)中,以影響、產(chǎn)生的PWM波的占空比,從而就可利用PWM波對(duì)爐溫進(jìn)行控制。主程序流程圖如下圖所示。開(kāi)始系統(tǒng)控制參數(shù)的初始化化電阻加熱爐的實(shí)時(shí)溫度采集和設(shè)置溫度的獲取實(shí)際溫度與設(shè)置溫度的顯示以及報(bào)警裝置的工作與否實(shí)際溫度與設(shè)定溫度差值是否大于5? Y調(diào)用PID算法全功率加熱開(kāi)定時(shí)器中斷顯示子程序:開(kāi)始數(shù)據(jù)轉(zhuǎn)換為七段碼譯碼選擇顯示位子程序返回PWM波子程序:進(jìn)入中斷程序timer=0Timer=PID結(jié)果? NYIO口輸出0IO口輸
10、出1Timer+,Timer=100? N返回采樣溫度4.2算法設(shè)計(jì)電阻加熱爐是一個(gè)非線性、時(shí)變系統(tǒng),所以在本控制系統(tǒng)中采用的是智能控制算法,即PID控制算法,通過(guò)對(duì)于設(shè)定溫度與實(shí)際溫度的差值的比例,微分,積分三者結(jié)合得到的算法結(jié)果來(lái)控制執(zhí)行機(jī)構(gòu)的執(zhí)行狀態(tài),從而可以讓控制系統(tǒng)中的控制時(shí)間,超調(diào)量,滯后反應(yīng)以及最后的穩(wěn)定程度都能有較明顯的改善。4.2.1 PID算法參數(shù)整定在PID算法中,最重要的就是對(duì)于三個(gè)控制參數(shù)即KP,KI,KP的整定,以下是PID的整定過(guò)程。整定方法:臨界比例度法1. 構(gòu)建閉環(huán)回路,確定穩(wěn)定極限。2. 根據(jù)公式計(jì)算控制器參數(shù)。穩(wěn)定極限是由P原件決定的。當(dāng)出現(xiàn)穩(wěn)態(tài)振蕩時(shí)就達(dá)
11、到這個(gè)極限。產(chǎn)生臨界振蕩增益K和臨界振蕩周期T。確定兩個(gè)參數(shù)之后通過(guò)下表來(lái)確定其他參數(shù)。首先建立閉環(huán)系統(tǒng),采用階躍輸入,不加PID控制器及其仿真輸出,如下圖所示:先使積分和微分系數(shù)為0,即只有比例控制,調(diào)節(jié)P參數(shù),使系統(tǒng)出現(xiàn)穩(wěn)態(tài)振蕩,當(dāng)時(shí),等到下圖所示曲線:由上圖可知,臨界振蕩增益:K=1.5;臨界振蕩周期T=750.35-447.25=303.1,計(jì)算PID參數(shù)如下:輸入相應(yīng)PID參數(shù)得到如下輸出:由上面輸出結(jié)果可知,還有一定的超調(diào)量,所以將積分系數(shù)適當(dāng)減小,比例和微分系數(shù)進(jìn)行微調(diào),最后當(dāng)時(shí)曲線如下圖所示。5、控制系統(tǒng)測(cè)試過(guò)程5.1開(kāi)環(huán)測(cè)試5.1.1 開(kāi)環(huán)測(cè)試1設(shè)定溫度T:60進(jìn)入±
12、;2時(shí)間t:860 S最大超調(diào)量:測(cè)試曲線圖如下圖所示:5.1.2 開(kāi)環(huán)測(cè)試2設(shè)定溫度T:60進(jìn)入±2時(shí)間t:840 S最大超調(diào)量:測(cè)試曲線圖如下圖所示:5.2 PID參數(shù)調(diào)節(jié)5.2.1最終PID參數(shù)及測(cè)試曲線設(shè)定溫度T:60進(jìn)入±2時(shí)間t:600 SPID參數(shù):P=0.9,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:設(shè)定溫度T:60進(jìn)入±2時(shí)間t:640 SPID參數(shù):P=0.9,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:5.2.2最終PID參數(shù)測(cè)試其他溫度設(shè)定溫度T:80進(jìn)入±2時(shí)間t:320 SPID參數(shù):P=0.9,
13、I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:5.2.3 進(jìn)入PID溫度調(diào)節(jié)的測(cè)試55時(shí)進(jìn)入PID調(diào)節(jié)設(shè)定溫度T:60進(jìn)入±2時(shí)間t:860 SPID參數(shù):P=0.9,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:50時(shí)進(jìn)入PID調(diào)節(jié)設(shè)定溫度T:60進(jìn)入±2時(shí)間t:680 SPID參數(shù):P=0.9,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:57時(shí)進(jìn)入PID調(diào)節(jié)設(shè)定溫度T:60進(jìn)入±2時(shí)間t:700 SPID參數(shù):P=0.9,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:5.2.4 其他PID溫度調(diào)節(jié)的測(cè)試設(shè)定溫度
14、T:60進(jìn)入±2時(shí)間t:940 SPID參數(shù):P=1.2,I=0.005,D=33最大超調(diào)量:測(cè)試曲線圖如下圖所示:設(shè)定溫度T:60進(jìn)入±2時(shí)間t:820 SPID參數(shù):P=1.7,I=0.015,D=650最大超調(diào)量:測(cè)試曲線圖如下圖所示:設(shè)定溫度T:60進(jìn)入±2時(shí)間t:980 SPID參數(shù):P=2.2,I=0.015,D=650最大超調(diào)量:測(cè)試曲線圖如下圖所示:設(shè)定溫度T:60進(jìn)入±2時(shí)間t:400 SPID參數(shù):P=2.5,I=0.015,D=650最大超調(diào)量:測(cè)試曲線圖如下圖所示:設(shè)定溫度T:60進(jìn)入±2時(shí)間t:620 SPID參數(shù):P
15、=2.5,I=0.015,D=650最大超調(diào)量:測(cè)試曲線圖如下圖所示:6、單片機(jī)程序清單:#include<reg52.h>#include <intrins.h>#include<math.h> #include<string.h> #define uchar unsigned char#define uint unsigned intsbit PWM=P21; /控制產(chǎn)生PWM波sbit DS=P22; /連接DS18B20傳感器sbit beep=P23; /控制蜂鳴器接口sbit dula=P26; /段選控制接口sbit wela=P2
16、7; /位選控制接口unsigned int temp,shangxian,xiaxian,max_temp=1000,min_temp=0; unsigned char adval; / sign of the result positive or negativeunsigned int i=100;unsigned int j,k,temp,key1,key2,key3,key11,set_temper,timer1,num1;double PID;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f
17、,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0-f 不帶小數(shù)點(diǎn)編碼unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef; / 帶小數(shù)點(diǎn)編碼。unsigned int rout; / PID 輸出 unsigned int rin; / PID 輸入(實(shí)際溫度)unsigned int realtemp; unsigned int Proportion; / 比例常數(shù)unsigned int Integral; / 積分常數(shù)unsigned int Derivativ
18、e; / 微分常數(shù) unsigned int TError; / 溫度誤差unsigned int TDerror; /溫度誤差的誤差unsigned int Tout; /溫度輸出值/* 函 數(shù) 名 : PIDInit()* 函數(shù)功能 : PID參數(shù)初始化* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void PIDInit ( void ) realtemp=rin;TError=0;TDerror=0;Proportion = 1.2; / 設(shè)置PID參數(shù) Integral =0.005; Derivative =33; Tout = 0 ; / 設(shè)置PID定點(diǎn) Set PID Setpoin
19、t /* 函 數(shù) 名 : PIDCalc()* 函數(shù)功能 : PID計(jì)算* 輸 入 : rin:實(shí)際溫度* 輸 出 : Tout*/unsigned int PIDCalc( unsigned int rin ) /NextPoint=rin,監(jiān)測(cè)到的溫度 unsigned int ddError,dError,Error;realtemp= rin; Error = set_temper - realtemp; / 溫度的偏差dError= Error-TError; /溫度偏差的偏差ddError=dError-TDerror; /溫度偏差的偏差的偏差TError=Error;TDerro
20、r=dError;Tout=Tout+(Proportion*dError+Integral*Error+Derivative*ddError);if (Tout>max_temp-1)Tout=max_temp;if (Tout<0)Tout=0;return (Tout);/* 函 數(shù) 名 : delay()* 函數(shù)功能 : 短延時(shí)函數(shù)* 輸 入 : i* 輸 出 : 無(wú)*/void delay(uchar i) for(j=i;j>0;j-) for(k=125;k>0;k-);void dsreset(void) /發(fā)送初始化及復(fù)位信號(hào) uint i; /DS1
21、8B20 初始化 DS=0; i=103; while(i>0)i-; DS=1; i=4; while(i>0)i-;bit tmpreadbit(void) /read a bit讀一位 uint i; bit dat; DS=0;i+; /i+ for delay 小延時(shí)一下 DS=1;i+;i+; dat=DS; i=8;while(i>0)i-; return (dat);uchar tmpread(void) /read a byte date 讀一個(gè)字節(jié) uchar i,j,dat; dat=0; for(i=1;i<=8;i+) j=tmpreadbit
22、(); dat=(j<<7)|(dat>>1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 return(dat); /將一個(gè)字節(jié)數(shù)據(jù)返回void tmpwritebyte(uchar dat) /寫一個(gè)字節(jié)到 DS18B20 里 uint i; uchar j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) /write 1 寫1部分 DS=0; i+;i+; DS=1; i=8;while(i>0)i-; else DS=0; /wri
23、te 0 寫0部分 i=8;while(i>0)i-; DS=1; i+;i+; void tmpchange( ) /DS18B20 begin change 發(fā)送溫度轉(zhuǎn)換命令 dsreset(); /初始化 DS18B20 delay(2); /延時(shí) tmpwritebyte(0xcc); /跳過(guò)序列號(hào)命令 tmpwritebyte(0x44); /發(fā)送溫度轉(zhuǎn)換命令/* 函 數(shù) 名 : tmp()* 函數(shù)功能 : 返回溫度函數(shù)* 輸 入 : 無(wú)* 輸 出 : temp:當(dāng)前溫度*/uint tmp() /get the temperature 獲得溫度 float tt; uchar
24、 a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe);/發(fā)送讀取數(shù)據(jù)命令 a=tmpread(); /連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) b=tmpread(); temp=b; temp<<=8; /two byte compose a int variable temp=temp|a; /兩字節(jié)合成一個(gè)整型變量。 tt=temp*0.0625;/得到真實(shí)十進(jìn)制溫度值,因?yàn)?DS18B20可以精確到 0.0625 度,所以讀回?cái)?shù)據(jù)的最低位代表的是0.0625 度。 temp=tt*10+0.5; /放大十倍,這樣做的目
25、的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字,同時(shí)進(jìn)行一個(gè)四舍五入操作。 return temp;/返回溫度值/* 函 數(shù) 名 : display()* 函數(shù)功能 : 數(shù)碼管顯示* 輸 入 : num:設(shè)置溫度,temp:實(shí)際溫度* 輸 出 : 無(wú)*/void display(unsigned int num,unsigned int temp) /num和temp都是一個(gè)三位數(shù),如392,則實(shí)際溫度為39.2度unsigned int A1,A2,A3,A2t ;unsigned int B1,B2,B3,B2t ; A1=num/100; A2t=num%100; A2=A2t/10; A3=A2
26、t%10; B1=temp/100; B2t=temp%100; B2=B2t/10; B3=B2t%10;/*/溫度顯示 dula=0; P0=tableB1;/顯示十位 dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table1B2;/顯示個(gè)位 dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); dula=0; P0=tableB3;/顯示小數(shù)點(diǎn)后一位 dula=1; dula=0; P0=0x7b; wela=1; wela=0;
27、 delay(1); /*預(yù)設(shè)溫度顯示 dula=0; P0=tableA1;/顯示十位 dula=1; dula=0; wela=0; P0=0xf7; wela=1; wela=0; delay(1); P0=0xff; dula=0; P0=table1A2;/顯示個(gè)位 dula=1; dula=0; wela=0; P0=0xef; wela=1; wela=0; delay(1); P0=0xff; dula=0; P0=tableA3;/顯示小數(shù)點(diǎn)后一位 dula=1; dula=0; P0=0xdf; wela=1; wela=0; P0=0xff; delay(1); /*/*
28、 函 數(shù) 名 : jiance()* 函數(shù)功能 : 矩陣鍵盤檢測(cè)函數(shù)* 輸 入 : 無(wú)* 輸 出 : key:設(shè)定溫度值*/unsigned int jiance()P3=0xfe; /給 P3.0 送低電平,其余為高電平 temp=P3; /把 P3 口數(shù)據(jù)讀回來(lái) temp=temp&0xf0; /把 P3 口與 11110000 相與 if(temp!=0xf0) delay(10); /延時(shí)去抖動(dòng) if(temp!=0xf0) /再次判斷是否有鍵按下 temp=P3; /判斷為有,再次讀 P3 口數(shù)據(jù) switch(temp) /因?yàn)槲覀儎偛攀菍⒌谝恍兄玫牡?/在這里再判斷是第幾
29、列 case 0xee: key1=key1+1; break; case 0xde: key1=key1-1; break; case 0x7e: key1=0; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfd; /1111 1101 /按鍵第二行 temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key2=key2+1; brea
30、k; case 0xdd: key2=key2-1; break; case 0x7d: key2 =0; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfb; /1111 1011 /按鍵第三行 temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key3=key3+1; break; case 0xdb: key3=key3-1; br
31、eak; case 0x7b: key3 =0; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; set_temper=key1*100+key2*10+key3*1;return set_temper;/* 函 數(shù) 名 : main()* 函數(shù)功能 : 主程序* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void main() TMOD = 0x01; /設(shè)置定時(shí)計(jì)數(shù)器工作方式1為定時(shí)TH0 = 0xFE; TL0 = 0x0C;ET0 = 1; /開(kāi)啟定時(shí)器0中斷EA = 1;dula=0; /段選 dula=P26; wela=0; /位選 wela=P27;set_temper=600; /設(shè)置溫度為31.4度,設(shè)置成沒(méi)有小數(shù)點(diǎn)形式是為了方便計(jì)算shangxian=1000;/設(shè)置的而溫度上限xiaxian=100; /設(shè)置的而溫度下限key1=set_temper/100;key11=set_temper%1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版信用證抵押貸款業(yè)務(wù)合作協(xié)議范本3篇
- 2025版土方工程居間代理服務(wù)合同范本下載33篇
- 2025年度股權(quán)分割與繼承處理協(xié)議
- 2025年度房地產(chǎn)合作終止協(xié)議書
- 2025年度旅游文化股權(quán)合作協(xié)議書
- 二零二五年度木工機(jī)械操作人員勞務(wù)租賃合同4篇
- 2025年度牧業(yè)產(chǎn)品品牌推廣與營(yíng)銷合同4篇
- 二零二五年度火鍋餐飲品牌區(qū)域代理授權(quán)協(xié)議
- 二零二五年度餐飲店員工激勵(lì)機(jī)制與績(jī)效考核合同
- 二零二五版環(huán)保技術(shù)入股合作協(xié)議書3篇
- 并購(gòu)指南(如何發(fā)現(xiàn)好公司)
- DL-T-1642-2016環(huán)形混凝土電桿用腳扣
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見(jiàn)面試問(wèn)題含HR問(wèn)題考察點(diǎn)及參考回答
- 詢價(jià)函模板(非常詳盡)
- 《AI營(yíng)銷畫布:數(shù)字化營(yíng)銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫話教學(xué)評(píng)語(yǔ)方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
評(píng)論
0/150
提交評(píng)論