基于launch pad 的水溫自動(dòng)控制系統(tǒng)_第1頁(yè)
基于launch pad 的水溫自動(dòng)控制系統(tǒng)_第2頁(yè)
基于launch pad 的水溫自動(dòng)控制系統(tǒng)_第3頁(yè)
基于launch pad 的水溫自動(dòng)控制系統(tǒng)_第4頁(yè)
基于launch pad 的水溫自動(dòng)控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 基于MSP430 launch pad 的水溫自動(dòng)控制系統(tǒng)  摘要  該水溫自動(dòng)控制系統(tǒng)采用現(xiàn)成有的TI公司單片機(jī)最小系統(tǒng)板(lanch pad)。單片機(jī)軟件編程靈活,自由度大,可用軟件編程實(shí)現(xiàn)各種控制算法和各種功能的實(shí)現(xiàn)。 本設(shè)計(jì)的主要特點(diǎn): 1.溫度采集部分采用DS18B20單總線數(shù)字溫度傳感器。DS18B20具有微型化,低功耗,高性能,抗干擾能力強(qiáng)的特點(diǎn)。該器件將半導(dǎo)體溫敏器件,A/D轉(zhuǎn)換器,存儲(chǔ)器等集成在一個(gè)芯片上,傳感器輸出的就是溫度信號(hào)數(shù)字值。使用該器件不僅大大簡(jiǎn)化了溫度采集部分,而且也提高了溫度采集部分的抗干擾性。 2.控制部分

2、采用固態(tài)繼電器。  a.固態(tài)繼電器內(nèi)部采用光耦合方式,可實(shí)現(xiàn)弱電部分與強(qiáng)電部分的完全隔離。  b.固態(tài)繼電器的反應(yīng)時(shí)間較短(工作頻率高)??紤]到加熱器件的熱慣性, 使用固態(tài)繼電器在實(shí)際溫度接近設(shè)定溫度時(shí)可采用調(diào)節(jié)輸出信號(hào)占空比的方式(即 PWM方式)來(lái)控制繼電器的通斷,使系統(tǒng)穩(wěn)定時(shí)間縮短。 3.設(shè)定值可被記憶。通過(guò)單片機(jī)內(nèi)部的flash可記錄設(shè)定的溫度值,防止外部干擾導(dǎo)致數(shù)據(jù)的丟失。4.該系統(tǒng)的人性化設(shè)計(jì)。在該系統(tǒng)上附帶了電源模塊,所需電源該系統(tǒng)都能自己提供,供電僅僅只需要一路220V交流電,使用起來(lái)更加方便。還附帶了LED指示當(dāng)前狀態(tài)(紅色LED:升溫狀態(tài);黃色

3、LED:平衡狀態(tài);綠色LED:降溫狀態(tài))、蜂鳴器報(bào)警提示、溫度調(diào)整所需時(shí)間的顯示等。1 緒論 在現(xiàn)代冶金、石油、化工、生物恒溫試驗(yàn)及電力生產(chǎn)過(guò)程中,溫度是極為重要而又普遍的熱工參數(shù)之一。在環(huán)境惡劣或溫度較高等場(chǎng)合下,為了保證生產(chǎn)過(guò)程正常安全地進(jìn)行,提高產(chǎn)品的質(zhì)量和數(shù)量,以及減輕工人的勞動(dòng)強(qiáng)度、節(jié)約能源,要求對(duì)加熱爐爐溫進(jìn)行測(cè)、顯示、控制,使之達(dá)到工藝標(biāo)準(zhǔn),以單片機(jī)為核心設(shè)計(jì)的爐溫控制系統(tǒng),可以同時(shí)采集多個(gè)數(shù)據(jù),并將各種數(shù)據(jù)顯示出來(lái)加以控制和分析。那么無(wú)論是哪種控制,我們都希望水溫控制系統(tǒng)能夠有很高的精確度,幫助我們實(shí)現(xiàn)我們想要的控制,解決身邊的問(wèn)題。該水溫自動(dòng)控制系統(tǒng)性能穩(wěn)定,可適用于各種場(chǎng)所

4、和環(huán)境,且該系統(tǒng)軟件編程靈活,能夠很方便地修改相關(guān)參數(shù)來(lái)適用于不同的工作環(huán)境。該系統(tǒng)可方便地?cái)U(kuò)展其他相應(yīng)的功能,例如遙控、上位機(jī)、水位檢測(cè)等,還可以擴(kuò)展為多點(diǎn)溫度檢測(cè)。2 方案論證與選擇1. 控制電路的方案選擇方案一:采用運(yùn)放等模擬電路搭建一個(gè)控制器,用模擬方式實(shí)現(xiàn)PID控制,對(duì)于純粹的水溫控制,這是足夠的。但是附加顯示、溫度設(shè)定等功能,還要附加許多電路,稍顯麻煩。同樣,使用邏輯電路也可實(shí)現(xiàn)控制功能,但總體的電路設(shè)計(jì)和制作比較煩瑣。方案二:采用FPGA實(shí)現(xiàn)控制功能。使用FPGA時(shí),電路設(shè)計(jì)比較簡(jiǎn)單,通過(guò)相應(yīng)的編程設(shè)計(jì),可以很容易地實(shí)現(xiàn)控制和顯示、鍵盤等功能,是一種可選的方案。但與單片機(jī)相比,價(jià)

5、格較高,顯然大材小用。方案三:采用單片機(jī)最小系統(tǒng)同時(shí)完成控制、顯示、鍵盤、語(yǔ)音等功能,電路設(shè)計(jì)和制作比較簡(jiǎn)單,成本也低,是一種非常好的方案。 綜上所述本設(shè)計(jì)采用方案三作為控制電路,單片機(jī)采用低功耗單片機(jī)msp430。2.測(cè)溫電路方案的選擇方案一:采用熱敏電阻作為測(cè)溫元件。熱敏電阻精度高,需要配合電橋使用,要實(shí)現(xiàn)精度測(cè)量需要配上精密較高的電阻。此外還需要制作相應(yīng)的調(diào)理電路。方案二:采用半導(dǎo)體集成溫度傳感器作為測(cè)溫元件,半導(dǎo)體集成溫度傳感器應(yīng)用也很廣泛,它的精度、可靠性都不錯(cuò),價(jià)格也適中,使用比較簡(jiǎn)單,是一個(gè)較好的選擇。綜上所述本設(shè)計(jì)采用方案二作為測(cè)溫電路。3.加熱控制方案的論證選擇加熱裝置可以采

6、用熱得快進(jìn)行加熱,由于熱的快的余溫較大,通常加熱到在與設(shè)定溫度相差幾度時(shí)停止加熱。具體方案如下。方案一:采用單片機(jī)輸出pwm作用固態(tài)繼電器(用作無(wú)觸點(diǎn)開關(guān),相比電磁繼電器,反應(yīng)更快),通過(guò)固態(tài)繼電器,不同占空比使得熱得快產(chǎn)生不同的工作和停止時(shí)間之比,從而達(dá)到高精確加熱的效果,并且易于控制。方案二:在與設(shè)定溫度相差三度時(shí)關(guān)閉熱得快,但多次試驗(yàn)后發(fā)現(xiàn)由于所要設(shè)定的溫度不同誤差較大。方案三:在與設(shè)定溫度相差一度時(shí)關(guān)閉熱得快,因?yàn)樵诔^(guò)所設(shè)定溫度時(shí)啟動(dòng)制冷片進(jìn)行調(diào)節(jié),實(shí)際中不好控制,效果不佳。綜上所述本設(shè)計(jì)采用方案一作為加熱電路。4.制冷控制方案的論證 方案一:采用通常冰箱所采用的制冷裝置壓縮機(jī),但由

7、于體積太大成本較高,控制起來(lái)較復(fù)雜并且一般的氟利昂壓縮機(jī)對(duì)環(huán)境有污染,不適合小型電路的制作。方案二:采用風(fēng)扇進(jìn)行制冷,但是風(fēng)扇的相對(duì)制冷效果非常低,達(dá)不到題目所要求的時(shí)間限制并且功率大的風(fēng)扇體積較大。方案三:采用半導(dǎo)體制冷片進(jìn)行制冷,半導(dǎo)體制冷片制冷效果相對(duì)較好,但是半導(dǎo)體制冷片工作時(shí)還要給其散熱,總體工作效率不高。方案四:用水泵進(jìn)行冷水循環(huán)降溫,制冷速度較快,而且能夠節(jié)約能源。此外,在實(shí)際應(yīng)用中可方便地運(yùn)用冷水資源。 綜上所述,采用方案四作為降溫電路。3 系統(tǒng)硬件設(shè)計(jì) 該水溫自動(dòng)控制系統(tǒng)分為以下幾個(gè)單元電路:電源電路、溫度采集電路、加熱電路、降溫電路、顯示電路、LED指示電路、蜂鳴器電路和按

8、鍵電路。電機(jī)帶動(dòng)扇葉攪拌電路(攪拌使溫度均勻)與單片機(jī)隔離,可手動(dòng)控制。系統(tǒng)框圖如下: 電源模塊熱得快溫度采集電路 MCU (lanch pad)固態(tài)繼電器 電磁繼電器按鍵電路水 泵蜂鳴器報(bào)警電路12864顯示電路LED指示電路 1.最小系統(tǒng)板lanch pad Lanch pad單片機(jī)最小系統(tǒng)同時(shí)完成控制、顯示、鍵盤、語(yǔ)音等功能,電路設(shè)計(jì)和制作比較簡(jiǎn)單,成本也低。 2.電源模塊電路 該電路采用220V18V變壓器降壓,然后通過(guò)整流橋整流,再經(jīng)電容濾波,最后通過(guò)幾種電源芯片輸出所需的幾種電壓:+12V、+5V。 變壓器是變換交流電壓、電流和阻抗的器件,當(dāng)初級(jí)線圈中通有交流電變壓器原理圖流時(shí),鐵

9、芯(或磁芯)中便產(chǎn)生交流磁通,使次級(jí)線圈中感應(yīng)出電壓(或電流)。變壓器由鐵芯(或磁芯)和線圈組成,線圈有兩個(gè)或兩個(gè)以上的繞組,其中接電源的繞組叫初級(jí)線圈,其余的繞組叫次級(jí)線圈。 整流是利用二極管單向?qū)щ娦裕逊较蚪惶孀兓慕涣麟娮儞Q成單一方向的脈動(dòng)直流電。 加電容的目的是對(duì)脈動(dòng)直流電進(jìn)行充放電補(bǔ)充,就是說(shuō)高電位時(shí)電容將電量進(jìn)行存儲(chǔ),即時(shí)電壓就降低;在低電位的時(shí)候電容把存儲(chǔ)的電量釋放出來(lái)來(lái)補(bǔ)充,即時(shí)電壓就上升,這樣就形成了電壓基本穩(wěn)定的直流電。 電源芯片L7812VC可將14.5V27V的直流電壓轉(zhuǎn)換成12V直流電壓(給水泵供電),然后再通過(guò)電源芯片L7805VC將12V電壓轉(zhuǎn)換成5V電壓,以給

10、單片機(jī)供電。 具體電源模塊電路如下: 3.溫度采集模塊DS18B20溫度傳感器溫度測(cè)量范圍-55+125,電源電壓35.5V,在-10+85區(qū)間測(cè)量精度為0.5。DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。工作時(shí)性能穩(wěn)定,可適用于多種不同的工作環(huán)境。具體連接電路圖如下所示: 4.按鍵電路 該系統(tǒng)設(shè)定時(shí)間的調(diào)整由三個(gè)獨(dú)立按鍵來(lái)完成,其具體電路連接圖如下所示: 5.LED指示電路 該電路是通過(guò)三種不同顏色的LED來(lái)指示當(dāng)前的狀態(tài),電路如下: 6.加熱電路 該電路通過(guò)固態(tài)繼電器隔離兩路電源,同時(shí)IO口輸出PWM波控制熱得快的導(dǎo)通與斷開來(lái)控制溫度。具體電路

11、圖如下: 7.降溫電路降溫電路中,采用的是冷水循環(huán)降溫,用電磁繼電器隔離電源及控制水泵工作和斷開,從而達(dá)到控制降溫的過(guò)程。具體電路圖如下所示: 8.12864顯示電路顯示電路采用的是12864液晶屏串行顯示,可顯示檢測(cè)溫度、設(shè)定溫度以及溫度達(dá)到平衡所用的時(shí)間。具體電路圖如下所示:9. 蜂鳴器報(bào)警電路 蜂鳴器在該系統(tǒng)中可起到報(bào)警的作用,溫度平衡之后會(huì)報(bào)警提醒,設(shè)定溫度時(shí)會(huì)提示設(shè)定生效,系統(tǒng)工作正常。具體電路圖如下所示: 4 系統(tǒng)軟件設(shè)計(jì) 程序結(jié)構(gòu)包括:主控程序模塊、鍵盤掃描及處理子程序、采樣數(shù)據(jù)處理子程序、多種算法子程序、顯示及蜂鳴指示等子程序幾個(gè)部分。1.程序流程圖如下圖所示,實(shí)現(xiàn)了對(duì)溫度值的

12、設(shè)定,執(zhí)行、蜂鳴指示達(dá)到指定溫度、顯示實(shí)時(shí)溫度。 2.附源程序 2.1 lcd12864驅(qū)動(dòng)程序:#include <msp430g2553.h>#define uchar unsigned char#define uint unsigned intvoid int_port(void) P2SEL&=BIT5; P2DIR|=BIT5;P2OUT&=BIT5;P2SEL&=BIT4; P2DIR|=BIT4;P2OUT&=BIT4;void delay(uint t) uint i,j;for(i=0; i<t; i+)for(j=0; j&

13、lt;10; j+);void sendbyte(uchar zdata) uchar code_seg7;uchar serial_clk;uchar serial_shift;code_seg7=zdata;serial_shift=0x80;for(serial_clk=0; serial_clk<8; serial_clk+)if(code_seg7&serial_shift)P2OUT|=BIT5; elseP2OUT&=BIT5; P2OUT&=BIT4; P2OUT|=BIT4; serial_shift=serial_shift>>1;

14、 void write_com(unsigned char cmdcode)sendbyte(0xf8); sendbyte(cmdcode & 0xf0); sendbyte(cmdcode << 4) & 0xf0);delay(2);void write_data(uchar Dispdata)sendbyte(0xfa); sendbyte(Dispdata & 0xf0); sendbyte(Dispdata << 4) & 0xf0);delay(2);void lcdinit() delay(20000); write_co

15、m(0x30); delay(50); write_com(0x0c); delay(50);write_com(0x01); delay(50);write_com(0x06); delay(50);void print_string(uchar *s) while(*s > 0) write_data(*s); s+;delay(50);void LCD_12864_address_set( uchar x,uchar y )uchar Address ;switch( y )case 1 : Address = 0x80 + (x - 1); break;case 2 : Addr

16、ess = 0x90 + (x - 1); break;case 3 : Address = 0x88 + (x - 1); break;case 4 : Address = 0x98 + (x - 1); break;default : break;write_com(Address);void LCD_12864_string( uchar y, uchar x, uchar *pData )LCD_12864_address_set( x, y );while( *pData != '0' )write_data(*pData+);void LCD_12864_2num(

17、uchar y,uchar x,uchar num)uchar num_1, num_2;LCD_12864_address_set(x, y);num_2 = (num/10) + 0x30;num_1 = (num%10) + 0x30;write_data(num_2);write_data(num_1);void LCD_12864_4num(uchar y,uchar x,uint num)uchar num_1, num_2, num_3, num_4 ;LCD_12864_address_set(x, y);num_4 = (num/1000) + 0x30;num_3 = (n

18、um%1000)/100) + 0x30;num_2 = (num%1000)%100)/10) + 0x30;num_1 = (num%1000)%100)%10) + 0x30;write_data(num_4);write_data(num_3);write_data(num_2);write_data(num_1);void LCD_12864_numx(uchar y,uchar x,uchar numx)uchar num_l, num_h;LCD_12864_address_set(x, y);num_l = numx & 0x0F; num_h = numx >&

19、gt; 4; if(num_l > 9) num_l = num_l + 0x37;else num_l = num_l + 0x30;if(num_h > 9) num_h = num_h + 0x37;else num_h = num_h + 0x30;write_data(num_h);write_data(num_l);void LCD_12864_draw_clear(void)uchar i, j, k;write_com(0x34); for(i=0;i<2;i+)for(j=0;j<32;j+)write_com(0x80+j); if(i=0)writ

20、e_com(0x80);elsewrite_com(0x88);write_com(0x36); for(k=0;k<16;k+) write_data(0x00);write_com(0x30); void LCD_12864_draw(uchar *p)uchar i, j, k;LCD_12864_draw_clear(); write_com(0x34); for(i=0; i<2; i+)for(j=0; j<32; j+)write_com(0x80+j); if(i=0)write_com(0x80); elsewrite_com(0x88);write_com

21、(0x36); for(k=0; k<16; k+) write_data(*p+); write_com(0x30); void Test() LCD_12864_string(1,2,"水溫控制系統(tǒng)"); LCD_12864_string(2,1,"檢測(cè)溫度 .C");LCD_12864_string(3,1,"設(shè)定溫度 .C");LCD_12864_string(4,1,"所用時(shí)間: s"); 2.2 主程序:#include <MSP430g2553.h>#include "lc

22、d12864.h"#define DS18B20 BIT3#define DS18B20_H P2OUT |= BIT3#define DS18B20_L P2OUT &= BIT3/#define DQ_l P2OUT &=BIT3;/#define DQ_h P2OUT |=BIT3;#define uchar unsigned char#define uint unsigned intuchar TempBuffer7,table25,buttonsPressed=0,table16,flag1=1,flag3=0,flag2=0; /flag4=0,flag5

23、=0,times=0;uint temperature = 0,TIME1=0,value1=440,value=30;float tem=0.0;uchar * Flash_ptr = (uchar *) 0x01000;void Delay_ms(uint ms) uint j; for(j=0;j<ms;j+) _delay_cycles(1000);void B20_init(void) P2DIR |= DS18B20; /Delay_us(600); _delay_cycles(600); DS18B20_H; /Delay_us(60); _delay_cycles(60)

24、; P2DIR &= DS18B20; while(!(P2IN &(DS18B20); uchar B20_readB(void) uchar i,retd=0; for(i=0;i<8;i+) retd>>=1; P2DIR |=DS18B20; /Delay_us(5); _delay_cycles(5); P2DIR &=DS18B20; if(P2IN&DS18B20) retd|=0x80; /Delay_us(50); _delay_cycles(50); return retd; void B20_writeB(uchar wr

25、d) uchar i; for(i=0;i<8;i+) P2DIR |=DS18B20; _delay_cycles(1); if(wrd&0x01) DS18B20_H; else DS18B20_L; /Delay_us(50); _delay_cycles(50); DS18B20_H; wrd>>=1; / Delay_us(50); _delay_cycles(50);uint Read_temp(void) uchar templ,temph; uint temp; B20_init(); B20_writeB(0x44); Delay_ms(10); B

26、20_init(); B20_writeB(0xcc); B20_writeB(0xbe); templ=B20_readB(); temph=B20_readB(); temp=templ+temph*256; void temp_to_str() temperature=Read_temp(); tem=temperature*0.0625;/?*0.0625; TempBuffer0=':' TempBuffer1=(unsigned int)tem/10+'0' TempBuffer2=(unsigned int)tem%10+'0' T

27、empBuffer3='.' TempBuffer4=(unsigned int)(tem*1000.0)%10000%1000/100+'0' / TempBuffer5= (unsigned int)(tem*1000.0)%10000%1000%100/10+'0' / TempBuffer6= (unsigned int)(tem*1000.0)%10+'0' TempBuffer5='0'void wint () P1OUT |=BIT0 +BIT1+BIT2; P1REN |=BIT0 +BIT1+BI

28、T2; P1IN |=BIT0 +BIT1+BIT2; P2DIR |=BIT0 +BIT1+BIT2+BIT6; P2OUT &=(BIT0 +BIT2); P2SEL |=BIT1; P1DIR |=BIT6+BIT7 + BIT3; P1OUT &=BIT3; P1OUT |=BIT7+BIT6; TA1CCR0 = 512-1; / PWM Period TA1CCTL1 = OUTMOD_7; / CCR1 reset/set TA1CCR1 = 511; / CCR1 PWM duty cycle TA1CTL = TASSEL_1 + MC_1; / ACLK,

29、up modevoid key_bee1(void) uchar i; / for(i=0;i<20;i+) / / _delay_cycles(1000); / P1OUT &=BIT7; / Delay_ms(400); /P1OUT |=BIT7; / for(i=0;i<10;i+) for(i=0;i<200;i+) P1OUT &=BIT7; _delay_cycles(400); P1OUT |=BIT7; P1OUT |=BIT7; Delay_ms(100); void key_bee2(void) uchar i; for(i=0;i<

30、;4;i+) for(i=0;i<200;i+) P1OUT |=BIT7; _delay_cycles(400); P1OUT &=BIT7; _delay_cycles(100); P1OUT |=BIT7; Delay_ms(200); void time_process () if(flag3=4)/4 TIME1+;flag3=0; table20=':' table21=TIME1/100+'0' table22=TIME1%100/10+'0' table23=TIME1%10+'0' / TempBu

31、ffer5= (unsigned int)(tem*1000.0)%10000%1000%100/10+'0' / TempBuffer6= (unsigned int)(tem*1000.0)%10+'0' table24='0'void write_SegC(uchar value2) / Initialize Flash pointer FCTL3 = FWKEY; / Clear Lock bit FCTL1 = FWKEY+ERASE; / Set Erase bit *Flash_ptr = 0; / Dummy write to e

32、rase Flash seg FCTL1 = FWKEY+WRT; / Set WRT bit for write operation /for (i = 0; i < 128; i+) / *Flash_ptr = value2; / Write value to flash / FCTL1 = FWKEY; / Clear WRT bit FCTL3 = FWKEY+LOCK; / Set LOCK bitvoid key () if(P1IN&BIT0)!= BIT0) key_bee2(); buttonsPressed=BIT0; / while(P1IN&BI

33、T0)!=BIT0); if(P1IN&BIT1)!=BIT1) key_bee2(); buttonsPressed=BIT1; /while(P1IN&BIT1)!=BIT1); if(P1IN&BIT2)!=BIT2) key_bee2();buttonsPressed=BIT2; while (buttonsPressed & BIT0) value=value+10; if(value>900) value=250; write_SegC(value/10); TIME1=0;flag3=0; CCTL0 |= CCIE ; TACTL |=TA

34、CLR; TACTL |= MC_1+TASSEL_1; / CCR0 interrupt enabled buttonsPressed=0; while (buttonsPressed &BIT1) value=value-10; if(value<250) value=900; write_SegC(value/10); TIME1=0;flag3=0; CCTL0 |= CCIE; TACTL |=TACLR; TACTL |= MC_1+TASSEL_1; buttonsPressed=0; while (buttonsPressed &BIT2) value+;

35、 if(value%10=0) value=value-10; TIME1=0;flag3=0; CCTL0 |= CCIE; TACTL |=TACLR; TACTL |= MC_1+TASSEL_1; buttonsPressed=0; /void led()/ unsigned int tem1=tem;/4/ if(value-3>tem1) TA1CCR1 =0; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ;/ else if(value-2>tem1) TA1CCR1 =256;P1OU

36、T |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ;/ else if(value-1>tem1) TA1CCR1 =300; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ;/ /384/ /else TA1CCR1 =480;/ else if(value*10.0)>(term*10+1) TA1CCR1 =400; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &

37、=BIT3 ; flag1=1; flag4=1; flag5=0;times=0; / else if(value*10.0)<(tem*10-1) P1OUT &=BIT6; TA1CCR1 =511; P1OUT &=BIT6; P2OUT |=BIT0; P2OUT &= BIT2; P1OUT &=BIT3 ; flag1=1; if(flag4) times=1;flag4=0; flag5=1; / else TA1CCR1 =440; P1OUT |=BIT6; if(times|flag5) CCTL0 &= CCIE;times

38、=0;flag5=0; P1OUT |=BIT3; P2OUT &=(BIT0 + BIT2); if(flag1) key_bee1();flag1=0; / / /460/void led() unsigned int tem1=tem; if(value*1.0)>(tem*10+2) P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ; flag1=1; else if(value*1.0)<(tem*10-3) P1OUT &=BIT6; P2OUT |=BIT0; P2OUT &= BIT2; P1

39、OUT &=BIT3 ; flag1=1; else CCTL0 &= CCIE; P1OUT |=BIT3; P2OUT &=(BIT0 + BIT2); if(flag1) key_bee1();flag1=0; if(value/10-3>tem1) TA1CCR1 =0; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ; else if(value/10-2>tem1) TA1CCR1 =256;P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &

40、;=BIT0 ;P1OUT &=BIT3 ; else if(value/10-1>tem1) TA1CCR1 =300; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ; /else if(value*1.0)>(tem*10+3) TA1CCR1 =350; P1OUT |=BIT6; P2OUT |=BIT2; P2OUT &=BIT0 ;P1OUT &=BIT3 ; /384 /else TA1CCR1 =480;銆? else if(value*1.0)>(tem

41、*10) TA1CCR1 =320; P1OUT |=BIT6; /340 /else if(value*1.0)<(tem*10) P1OUT &=BIT6; TA1CCR1 =511; else TA1CCR1 =500;P1OUT &=BIT6; /450void main()WDTCTL=WDTPW+WDTHOLD; /if (CALBC1_1MHZ =0xFF | CALDCO_1MHZ = 0xFF) while(1); / If calibration constants erased / do not load, trap CPU! BCSCTL1 = CALBC1_1MHZ; / Set DCO to 1MHz DCOCTL = CALDCO_1MHZ;wint ();int_port(); CCR0 =820;/900_EINT();FCTL2 = FWKEY + FSSEL0 + FN1; / MCLK/3 for Flash Timing Generator / initialize valuelcdinit(); value =*Flash_ptr;valu

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論