智能電風(fēng)扇設(shè)計(jì)_第1頁
智能電風(fēng)扇設(shè)計(jì)_第2頁
智能電風(fēng)扇設(shè)計(jì)_第3頁
智能電風(fēng)扇設(shè)計(jì)_第4頁
智能電風(fēng)扇設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、智能電風(fēng)扇設(shè)計(jì)【摘要】本設(shè)計(jì)以AT89S52單片機(jī)為控制中心,主要通過提取熱釋電紅外傳感器感應(yīng)到的人體紅外線信息和溫度傳感器DS18B20得到的溫度以及內(nèi)部定時(shí)器設(shè)定時(shí)間長短來控制電風(fēng)扇的開關(guān)及轉(zhuǎn)速的變化。 目錄引言 31、總體方案設(shè)計(jì)及功能描述42、功能模塊硬件簡介與實(shí)現(xiàn)4 2.1、鍵盤輸入電路 4 2.2、熱釋電紅外傳感器模塊 4 2.2.1、熱釋電紅外線傳感器原理簡介4 2.2.2、熱釋電紅外線傳感器應(yīng)用5 2.3、溫度傳感器5 2.3.1、溫度傳感器DS18B20簡介5 2.3.2、DS18B20讀寫及初始化時(shí)序5 2.3.3、DS18B20的一般操作過程6 2.3.4、DS18B20

2、的溫度存儲(chǔ)方式即溫度計(jì)算6 2.4、數(shù)碼管顯示電路6 2.4.1、74ls164簡介6 2.4.2、共陰極八段數(shù)碼管簡介 6 2.4.3、顯示電路設(shè)計(jì) 7 2.5、發(fā)光二極管電路7 2.6、蜂鳴器電路7 2.7、繼電器控制電路8 2.7.1、繼電器簡介 8 2.7.2、繼電器驅(qū)動(dòng)電路設(shè)計(jì)及工作原理簡介 8 2.8、整體電路硬件設(shè)計(jì)93、AT89S52軟件設(shè)計(jì)與實(shí)現(xiàn) 10 3.1、整體設(shè)計(jì)思路介紹 10 3.2、主要部分流程圖 10 、主程序流程圖 10 、外部中斷流程圖 10 、定時(shí)器0中斷流程圖 11 、定時(shí)器1中斷流程圖 114、總結(jié)11致謝詞12參考文獻(xiàn)12附頁:13引言隨著人們生活水平

3、及科技水平的不斷提高,現(xiàn)在家用電器在款式、功能等方面日益求精,并朝著健康、安全、多功能、節(jié)能等方向發(fā)展。過去的電器不斷的顯露出其不足之處。電風(fēng)扇作為家用電器的一種,同樣存在類似的問題。 現(xiàn)在電風(fēng)扇的現(xiàn)狀:大部分只有手動(dòng)調(diào)速,再加上一個(gè)定時(shí)器,功能單一。 存在的隱患或不足:比如說人們常常離開后忘記關(guān)閉電風(fēng)扇,浪費(fèi)電且不說還容易引發(fā)火災(zāi),長時(shí)間工作還容易損壞電器。再比如說前半夜溫度高電風(fēng)扇調(diào)的風(fēng)速較高,但到了后半夜氣溫下降,風(fēng)速不會(huì)隨著氣溫變化,容易著涼。 之所以會(huì)產(chǎn)生這些隱患的根本原因是:缺乏對環(huán)境的檢測。 如果能使電風(fēng)扇具有對環(huán)境進(jìn)行檢測的功能,當(dāng)房間里面沒有人時(shí)能自動(dòng)的關(guān)閉電風(fēng)扇;當(dāng)溫度下降

4、時(shí)能自動(dòng)的減小風(fēng)速甚至關(guān)閉風(fēng)扇,這樣一來就避免了上述的不足。本次設(shè)計(jì)就是圍繞這兩點(diǎn)對現(xiàn)有電風(fēng)扇進(jìn)行改進(jìn)。1、 總體方案設(shè)計(jì)及功能描述本設(shè)計(jì)是以AT89S52單片機(jī)控制中心,主要通過提取熱釋電紅外傳感器感應(yīng)到的人體紅外線信息和溫度傳感器DS18B20得到的溫度以及內(nèi)部定時(shí)器設(shè)定時(shí)間長短來控制電風(fēng)扇的開關(guān)及轉(zhuǎn)速的變化。功能描述:電風(fēng)扇工作在四種狀態(tài):手動(dòng)調(diào)速狀態(tài)、自動(dòng)調(diào)速狀態(tài)、定時(shí)狀態(tài)、停止?fàn)顟B(tài)。手動(dòng)狀態(tài)時(shí)可以手動(dòng)調(diào)節(jié)速度;自動(dòng)狀態(tài)時(shí)通過溫度高低自動(dòng)調(diào)節(jié)速度,如果出現(xiàn)手動(dòng)現(xiàn)象則變?yōu)槭謩?dòng)狀態(tài);定時(shí)狀態(tài)時(shí)可以調(diào)節(jié)定時(shí)時(shí)間,并設(shè)定是否啟動(dòng)定時(shí),之后可以手動(dòng)退出,也可以在不操作6秒后自動(dòng)退出進(jìn)入手動(dòng)狀態(tài);

5、停止?fàn)顟B(tài)時(shí)可以被喚醒并進(jìn)入自動(dòng)狀態(tài)。當(dāng)沒有檢測到人體存在超過3分鐘或定時(shí)完畢時(shí)進(jìn)入停止?fàn)顟B(tài)。在數(shù)碼管顯示方面,當(dāng)沒有定時(shí)時(shí),只顯示氣溫,當(dāng)定時(shí)啟動(dòng)時(shí)氣溫和定時(shí)剩余時(shí)間以3秒的速度交替顯示。系統(tǒng)方框圖如下圖所示,主要包括:輸入、控制、輸出三大部分8個(gè)功能模塊。圖 1-12、 功能模塊硬件簡介與實(shí)現(xiàn)2.1、鍵盤輸入電路由于設(shè)計(jì)中用到的按鍵數(shù)目不多,所以可以直接用AT89S52的通用IO端口且選用AT89S52的P1口(內(nèi)部有上拉電阻)作為鍵盤接口。對于按鍵只需一端接地另一端接P1口即可。見下圖(2-1):2.2、熱釋電紅外傳感器模塊2.2.1、熱釋電紅外線傳感器原理簡介 人體輻射的紅外線中心波長為

6、 910-um,而探測元件的波長靈敏度在 0.220-um 范圍內(nèi)幾乎穩(wěn)定不變。在傳感器頂端開設(shè)了一個(gè)裝有濾光鏡片的窗口,這個(gè)濾光片可通過光的波長范圍為 710-um,正好適合于人體紅外輻射的探測,而對其它波長的紅外線由濾光片予以吸收,這樣便形成了一種專門用作探測人體輻射的紅外線傳感器。 實(shí)質(zhì)上熱釋電傳感器是對溫度敏感的傳感器。它由陶瓷氧化物或壓電晶體元件組成,在元件兩個(gè)表面做成電極,如圖2所示。在環(huán)境溫度有T的變化時(shí),由于有熱釋電效應(yīng),在兩個(gè)電極上會(huì)產(chǎn)生電荷Q,即在兩電極之間產(chǎn)生一微弱的電壓V。2.2.2、熱釋電紅外線傳感器應(yīng)用熱釋電紅外線傳感器有三個(gè)端口,一個(gè)接電源、一個(gè)接地、一個(gè)信號(hào)端口

7、,當(dāng)有人進(jìn)入其檢測區(qū)域時(shí),信號(hào)端口便產(chǎn)生一個(gè)電平跳變,并維持?jǐn)?shù)秒鐘,我們就是利用這個(gè)跳變來判斷是否有人在這個(gè)檢測區(qū)域。2.3、溫度傳感器2.3.1、溫度傳感器DS18B20簡介新型數(shù)字溫度傳感器DS18B20具有體積更小、精度更高、適用電壓更寬、采用一線總線,在實(shí)際應(yīng)用中取得了良好的測溫效果。DS18B20的主要特性:(2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。(5)測溫溫范圍55125(6)最高分辨率為0.0625。2.3.2、DS18B20讀寫及初始化時(shí)序2.3.3、DS18B20的一般操作過程(1)、初始化;(2)、

8、跳過ROM(命令:CCH);(3)、溫度變換(命令:44H);(4)、讀暫存存儲(chǔ)器(命令:BEH);注意:每次讀取溫度都要經(jīng)過上面四個(gè)過程。2.3.4、DS18B20的溫度存儲(chǔ)方式即溫度計(jì)算 DS18B20是用12位存儲(chǔ)溫度,最高位為符號(hào)位,下圖為它的溫度存儲(chǔ)方式:這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。2.4、數(shù)碼管顯示電路2.4.1、74ls164簡介 移位

9、寄存器是一類應(yīng)用很廣的時(shí)序邏輯電路,在時(shí)鐘脈沖的作用下,低位寄存器的數(shù)碼送給高位寄存器,作為高位寄存器的次態(tài)輸出。 在時(shí)鐘脈沖的作用下,高位寄存器的數(shù)碼送給低位寄存器,作為低位寄存器的次態(tài)輸出;移位寄存器:除具寄存器的功能外,所存儲(chǔ)的數(shù)碼在時(shí)鐘脈沖的作用下還可以移位。74ls164是八位串入并出移位寄存器,其工作電壓范圍4.755.25V,大于2V的高電平輸入、小于0.8V的低電平輸入,clock最高響應(yīng)頻率為25MHZ,八位并行輸出可以直接驅(qū)動(dòng)八段數(shù)碼管。74ls164的引腳圖及功能圖如下所示:2.4.2、共陰極八段數(shù)碼管簡介共陰極八段數(shù)碼管是將八段發(fā)光二極管封裝在一起且二極管的陰極連在一起

10、,原理圖如下圖所示,公共端接低電平,其它八個(gè)端口高電平點(diǎn)亮相應(yīng)的二極管,低電平相反。2.4.3、顯示電路設(shè)計(jì)此顯示電路采用兩位靜態(tài)數(shù)碼管顯示,用八位串入并出移位寄存器74LS164作為驅(qū)動(dòng)電路,采用共陰極八段數(shù)碼管原理圖示意圖如下:從圖中可以看出控制線只有兩條:1、數(shù)據(jù)線;2、移位脈沖線。它只占用很少的IO口。2.5、發(fā)光二極管電路發(fā)光二極管簡稱為LED,它是半導(dǎo)體二極管的一種。發(fā)光二極管的反向擊穿電壓約5伏。它的正向伏安特性曲線很陡,使用時(shí)必須串聯(lián)限流電阻以控制通過管子的電流。限流電阻R可用下式計(jì)算:R(EUF)IF式中E為電源電壓,UF為LED的正向壓降,IF為LED的一般工作電流。發(fā)光二

11、極管的兩根引線中較長的一根為正極,應(yīng)按電源正極。與小白熾燈泡和氖燈相比,發(fā)光二極管的特點(diǎn)是:工作電壓很低(有的僅一點(diǎn)幾伏);工作電流很?。ㄓ械膬H零點(diǎn)幾毫安即可發(fā)光);抗沖擊和抗震性能好,可靠性高,壽命長;通過調(diào)制通過的電流強(qiáng)弱可以方便地調(diào)制發(fā)光的強(qiáng)弱。由于有這些特點(diǎn),發(fā)光二極管在一些光電控制設(shè)備中用作光源,在許多電子設(shè)備中用作信號(hào)顯示器。由于AT89S52的P0口是開漏輸出,所以此電路可以設(shè)計(jì)位如下簡單形式:2.6、蜂鳴器電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。由于蜂鳴器具

12、有比傳統(tǒng)的喇叭體積小,價(jià)格低等優(yōu)點(diǎn),所以此次提示音電路選用蜂鳴器。具體電路見下圖:工作原理簡介:當(dāng)控制端口通以不同頻率及不同占空比的信號(hào)時(shí)蜂鳴器將發(fā)出不同強(qiáng)度及不同頻率的聲音。2.7、繼電器控制電路2.7.1、繼電器簡介繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。它有幾個(gè)重要指標(biāo):1、額定工作電壓:正常工作時(shí)線圈所需要的電壓。2、直流電阻:繼電器中線圈的直流電阻。3、吸合電流:繼電器能夠產(chǎn)生吸合動(dòng)作的最小電流。4、釋放電流

13、:繼電器產(chǎn)生釋放動(dòng)作的最大電流。5、觸點(diǎn)切換電壓和電流:繼電器允許加載的電壓和電流。2.7.2、繼電器驅(qū)動(dòng)電路設(shè)計(jì)及工作原理簡介采用晶閘管也可以用于小電流控制大電流電路,但是其控制電路比較復(fù)雜,而采用繼電器其控制電路就比較簡單,且具有電氣隔離作用。雖然其響應(yīng)速度沒有晶閘管快但在低頻情況下采用繼電器控制電路較為方便。其電路圖如下所示:電路工作原理簡介:當(dāng)控制端口為低電平時(shí),三極管導(dǎo)通繼電器吸合,常閉觸電斷開,常開觸點(diǎn)閉合。當(dāng)控制端口為高電平時(shí)三極管關(guān)斷,繼電器線圈通過二極管放電并斷開,常閉、常開觸電復(fù)位。2.8、整體電路硬件設(shè)計(jì)3、 AT89S52軟件設(shè)計(jì)與實(shí)現(xiàn)3.1、整體設(shè)計(jì)思路介紹軟件設(shè)計(jì)整

14、體思路:主程序部分進(jìn)行一些初始化以及溫度的讀??;外部中斷0進(jìn)行紅外線感應(yīng)延時(shí)時(shí)間的從新加載;定時(shí)器0進(jìn)行鍵盤的掃描及相關(guān)操作;定時(shí)器1進(jìn)行顯示、溫控速度、以及相關(guān)需要延時(shí)(如倒計(jì)時(shí)等等)的操作。在顯示方面,進(jìn)行了一些改善-要顯示的值有變化才進(jìn)行從新刷新,否則不刷新。這樣就大大提高了效率及最終的顯示效果(不會(huì)出現(xiàn)不該亮的部分還有亮的現(xiàn)象)。3.2、主要部分流程圖如下:3.2.1、主程序流程圖 圖 3-13.2.2、外部中斷流程圖 圖 3-23.2.3、定時(shí)器0中斷流程圖 圖 3-33.2.4、定時(shí)器1中斷流程圖 圖 3-44、 總結(jié)本設(shè)計(jì)最終實(shí)現(xiàn)了電風(fēng)扇的手動(dòng)調(diào)速、溫控自動(dòng)調(diào)速、定時(shí)、溫度顯示、

15、人體檢測等預(yù)期功能,其中定時(shí)在1到99分鐘連續(xù)可調(diào),人體檢測范圍角度120度、距離6米,人體檢測延時(shí)時(shí)間3分鐘,定時(shí)器自動(dòng)退出時(shí)間6秒。存在不足之處就是人體檢測抗干擾方面不夠好,需要提高。程序清單/* touwenjian.h*/typedef unsigned char byte; typedef unsigned int word;/以下管腳配置/ds18b20部分sbit DQ =P25; /顯示部分sbit DB=P10;sbit CP=P11;/發(fā)光顯示部分sbit LED_dingshi =P00;sbit LED_shoudong =P01;sbit LED_zidong =P0

16、2;sbit LED_kuai =P05;sbit LED_zhong =P06;sbit LED_man =P07;/鍵盤定義部分#define wujian 0x3fsbit KEY1=P12 ; /狀態(tài)轉(zhuǎn)換 /啟動(dòng)sbit KEY2=P13 ; /+10 / 1sbit KEY3=P14 ; /-10/ 2sbit KEY4=P15 ; / 3sbit KEY5=P16 ; / 0確定/繼電器控制部分sbit JDQ1=P21; /0表示開通,1表示關(guān)斷sbit JDQ2=P22;sbit JDQ3=P23;/蜂鳴器部分sbit call=P24; /低電平鳴叫/* ds18b20.c*

17、/#include <REGX51.H>#include"touwenjian.h"/* 延時(shí)子程序*/extern void delay(word useconds) for(;useconds>0;useconds-); /* 復(fù)位子程序 */static byte ow_reset(void) byte presence;EA=0; DQ = 0; / pull DQ line low delay(45); / leave it low for 480us /551usDQ = 1; / allow line to return high delay

18、(4); / wait for presence /61uspresence = DQ; / get presence signal delay(40); / wait for end of timeslot /491usEA=1;return(presence); / presence signal returned / 0=presence, 1 = no part /* 從 1-wire 總線上讀取一個(gè)字節(jié)子程序*/ static byte read_byte(void) byte i; byte value = 0;EA=0; for (i=8;i>0;i-) value>

19、>=1; DQ = 0; / pull DQ low to start timeslot DQ = 1; / then return high unsigned char i; for(i=0;i<2;i+); /11usif(DQ)value|=0x80; delay(6); / wait for rest of timeslot EA=1;return(value); /* 向 1-WIRE 總線上寫一個(gè)字節(jié) */static void write_byte(char val) byte i; EA=0;for (i=8; i>0; i-) / writes byte,

20、one bit at a time DQ = 0; / pull DQ low to start timeslotDQ=0; DQ = val&0x01; /6USdelay(5); / hold value for remainder of timeslot /74usDQ = 1; val=val>>1; EA=1; delay(5); /* 讀取溫度 */ word Read_Temperature(void) union byte c2; word x; temp; ow_reset(); write_byte(0xCC); / Skip ROM write_byt

21、e(0xBE); / Read Scratch Pad temp.c1=read_byte(); temp.c0=read_byte(); ow_reset(); write_byte(0xCC); /Skip ROM write_byte(0x44); / Start Conversion return temp.x; /* 求解溫度*/extern byte Real_Tem(void) word wen; wen=Read_Temperature(); return(wen>>4)&0x00ff);/* Main.c*/#include <REGX51.H>

22、;#include"touwenjian.h"/數(shù)據(jù)區(qū)#define time_default 41byte dingshi_time=time_default;/存放定時(shí)時(shí)間''''''bit flag_dingshi=0; /0表示沒有定時(shí)word dingshi_jishu3=1000;/1000*60=1分鐘/bit flag_dingshi_delay=0;/1表示有byte dingshi_delay=100;/#define hwx_delay_const 3 /人體感應(yīng)延時(shí)時(shí)間byte hwx_delay=hw

23、x_delay_const;/用于保存紅外線觸發(fā)延長時(shí)間word hwx_jishu1=0;/byte wendu=0;/用于存放溫度值''''''/#define low_wen 18#define mid_wen 20#define hig_wen 24#define vhi_wen 28/byte time_stor=100; /存儲(chǔ)主觀時(shí)間/觸發(fā)顯示byte wendu_stor=low_wen;/存儲(chǔ)主觀溫度/觸發(fā)顯示/enum station0zidong,dingshi,shoudong,weakstate;/函數(shù)說明區(qū)extern

24、 byte Real_Tem(void );extern void delay(word useconds);void mingjiao(void);void display(byte input,bit kkl);void auto_speed(void);void weak_default(void);/* 主程序*/void main() /定時(shí)器0用于鍵盤掃描 TMOD=0x01|TMOD; /定時(shí)器0的1方式 TH0=0xd8;TL0=0xf0; /定時(shí)器0初始化10ms掃描一次 /定時(shí)器1用于顯示 TMOD=0x10|TMOD; /定時(shí)器1的1方式 TH1=0x15;TL1=0xA

25、0; /定時(shí)器1初始化60ms中斷一次 /外部中斷 TCON=TCON|0x01; /外部中斷0都下降沿觸發(fā) /以下為開啟部分 IP=0X01; /兩個(gè)定時(shí)器同等優(yōu)先級(jí)?想想為什么? IE=0x8b; /開啟定時(shí)器0,1,外部中斷0中斷 / while(Real_Tem()=85); auto_speed(); LED_zidong=0; /剛開始為自動(dòng)方式 P1=P1|0X7C; /拉高五個(gè)鍵盤 wendu_stor=100; /兩個(gè)不可能值/用于啟動(dòng)顯示 time_stor=100; /兩個(gè)不可能值/用于啟動(dòng)顯示 / TR0=1; /開啟定時(shí)器0 TR1=1; while(1) wendu

26、=Real_Tem(); /* 定時(shí)器0中斷服務(wù)子程序 功能:進(jìn)行鍵盤處理 說明:鍵盤輸入為P1.0到P1.5*/ void time0(void) interrupt 1 byte jianpan; TH0=0xd8;TL0=0xf0; jianpan = P1 & wujian; if(jianpan != wujian) /如果還有鍵盤值提取鍵盤值 delay(500); /延時(shí)消抖 jianpan = P1 & wujian; if(jianpan=wujian)goto time_out; switch(state) case dingshi: if(KEY1=0)/

27、狀態(tài)轉(zhuǎn)換時(shí)做些相應(yīng)的處理 state=shoudong;LED_shoudong=0;flag_dingshi_delay=0;dingshi_delay=100;time_stor=100;wendu_stor=100;/觸發(fā)mingjiao();while(KEY1=0); else if(KEY2=0)/加分 if(dingshi_time<90)dingshi_time+=10;dingshi_delay=100;/mingjiao();while(KEY2=0); else if(KEY3=0)/減分 if(dingshi_time>10)dingshi_time-=10

28、;dingshi_delay=100;/mingjiao();while(KEY3=0); else if(KEY4=0)/定時(shí)與否 flag_dingshi=flag_dingshi;if(flag_dingshi=1)LED_dingshi=0;else LED_dingshi=1;dingshi_jishu3=1000;dingshi_delay=100;/mingjiao();while(KEY4=0); else if(KEY5=0) weak_default();mingjiao();while(KEY5=0); break;case shoudong:if(KEY1=0) /狀態(tài)

29、轉(zhuǎn)換時(shí)做些相應(yīng)的處理 state=zidong;auto_speed();LED_shoudong=1;LED_zidong=0; mingjiao();while(KEY1=0); else if(KEY2=0)/快1 JDQ2=1;JDQ3=1;JDQ1=0;/關(guān)斷其它LED_zhong=LED_man=1;LED_kuai=0;mingjiao();while(KEY2=0); else if(KEY3=0)/中2 JDQ1=1;JDQ3=1;JDQ2=0;/關(guān)斷其它LED_kuai=LED_man=1;LED_zhong=0;mingjiao();while(KEY3=0); else

30、 if(KEY4=0)/慢3 JDQ1=1;JDQ2=1;JDQ3=0;/關(guān)斷其它LED_zhong=LED_kuai=1;LED_man=0;mingjiao();while(KEY4=0); else if(KEY5=0)/停4 weak_default();mingjiao();while(KEY5=0); break;case zidong: if(KEY1=0) /狀態(tài)轉(zhuǎn)換時(shí)做些相應(yīng)的處理 state=dingshi;LED_zidong=1;flag_dingshi_delay=1;dingshi_delay=100;/開始延時(shí)time_stor=100;/mingjiao();w

31、hile(KEY1=0); else if(KEY2=0)/快1 JDQ2=1;JDQ3=1;JDQ1=0;/關(guān)斷其它LED_zhong=LED_man=1;LED_kuai=0;state=shoudong;LED_zidong=1;LED_shoudong=0;mingjiao();while(KEY2=0); else if(KEY3=0)/中2 JDQ1=1;JDQ3=1;JDQ2=0;/關(guān)斷其它LED_kuai=LED_man=1;LED_zhong=0;state=shoudong;LED_zidong=1;LED_shoudong=0;mingjiao();while(KEY3=

32、0); else if(KEY4=0)/慢3 JDQ1=1;JDQ2=1;JDQ3=0;/關(guān)斷其它LED_zhong=LED_kuai=1;LED_man=0;state=shoudong;LED_zidong=1;LED_shoudong=0;mingjiao();while(KEY4=0); else if(KEY5=0)/停4 weak_default();mingjiao();while(KEY5=0); break; case weak: if(KEY1=0) state=zidong;LED_zidong=0;wendu_stor=100;/兩個(gè)不可能值time_stor=100;

33、/兩個(gè)不可能值auto_speed();mingjiao();while(KEY1=0); break; time_out: ;/* 定時(shí)器1中斷服務(wù)子程序 功能: 用于定時(shí) 0.060s*/void timer1(void) interrupt 3 TH1=0x15;TL1=0xa0;/紅外線到記時(shí)EX0=0;if(hwx_jishu1<999) hwx_jishu1+; else hwx_jishu1=0; hwx_delay-; if(hwx_delay=0) weak_default();EX0=1;/1分鐘定時(shí)if(flag_dingshi=1) if(dingshi_jish

34、u3>0)dingshi_jishu3-; else dingshi_jishu3=1000; if(dingshi_time>1)dingshi_time-; elseweak_default(); /5秒延時(shí)if(flag_dingshi_delay=1) if(dingshi_delay>1)dingshi_delay-;else state=shoudong;flag_dingshi_delay=0;dingshi_delay=100; LED_shoudong=0; time_stor=100;wendu_stor=100; / mingjiao();/顯示和溫控s

35、witch(state)if(time_stor!=dingshi_time)display(dingshi_time,1);time_stor=dingshi_time;/ break; case shoudong: case zidong:/是否有定時(shí),有則交替顯示溫度和時(shí)間,沒有則只顯示溫度 if(flag_dingshi!=0)/ static byte jiaoti_jishu2=0; static bit flag_jiaoti=0; if(jiaoti_jishu2<49)jiaoti_jishu2+; else flag_jiaoti=flag_jiaoti;jiaoti

36、_jishu2=0; if(flag_jiaoti!=0) if(time_stor!=dingshi_time) display(dingshi_time,1);time_stor=dingshi_time;wendu_stor=100;/顯示時(shí)間 else if(wendu_stor!=wendu) display(wendu,0);wendu_stor=wendu;time_stor=100;/顯示溫度 else if(wendu_stor!=wendu)display(wendu,0);wendu_stor=wendu;/ 顯示溫度 /溫度控制速度if(state=zidong)swi

37、tch(wendu) case low_wen:JDQ1=1;JDQ2=1;JDQ3=1; LED_zhong=LED_man=LED_kuai=1;/ting zhi break; case mid_wen:JDQ1=1;JDQ2=1;JDQ3=0; LED_zhong=LED_kuai=1;LED_man=0;/man break; case hig_wen:JDQ1=1;JDQ3=1;JDQ2=0; LED_kuai=LED_man=1;LED_zhong=0;/zhong break; case vhi_wen:JDQ2=1;JDQ3=1;JDQ1=0; LED_zhong=LED_man=1;LED_kuai=0;/kuai break; case weak: /關(guān)閉狀態(tài)只顯示溫度 if(wendu_stor!=wendu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論