基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)_第1頁(yè)
基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)_第2頁(yè)
基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)_第3頁(yè)
基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)_第4頁(yè)
基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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、基于12C5A60S2單片機(jī)的溫控風(fēng)扇系統(tǒng)學(xué)院: 自 動(dòng) 化 學(xué) 院1、 摘要如今隨著物聯(lián)網(wǎng)的不斷發(fā)展,在我們身邊不斷出現(xiàn)智能設(shè)備,這些設(shè)備多多少少都離不開(kāi)單片機(jī)的應(yīng)用。諸如小米的智能手環(huán),智能機(jī)頂盒等。可見(jiàn)學(xué)會(huì)單片機(jī)應(yīng)用的重要性,本系統(tǒng)采用12C5A60S2單片機(jī)實(shí)現(xiàn)溫控風(fēng)扇系統(tǒng)。生活中,我們經(jīng)常會(huì)使用到電風(fēng)扇。比如,在炎熱的夏天人們用電風(fēng)扇來(lái)降溫;在工業(yè)生產(chǎn)中,大型機(jī)械用電風(fēng)扇來(lái)散熱等。但是當(dāng)環(huán)境溫度變化的時(shí)候,人工很難做到及時(shí)控制風(fēng)扇的轉(zhuǎn)速,也很難有效利用寶貴的電資源。隨著溫度控制的技術(shù)不斷發(fā)展,溫控技術(shù)已經(jīng)完全滿足現(xiàn)代的日常生活和生產(chǎn)的要求,應(yīng)運(yùn)而生的溫控電風(fēng)扇也逐漸走進(jìn)了人們的生活中

2、。溫控電風(fēng)扇可以根據(jù)環(huán)境溫度自動(dòng)調(diào)節(jié)電風(fēng)扇啟停與轉(zhuǎn)速,在實(shí)際生活的使用中,溫控電風(fēng)扇不僅可節(jié)省寶貴的電資源,也大大方便了人們的生活和生產(chǎn)。2、 設(shè)計(jì)方案(一)系統(tǒng)整體設(shè)計(jì)本設(shè)計(jì)的整體思路是:利用溫度傳感器DS18B20檢測(cè)環(huán)境溫度并直接輸出數(shù)字溫度信號(hào)給單片機(jī)12C5A60S2進(jìn)行處理,在LED數(shù)碼管上顯示當(dāng)前環(huán)境溫度值以及預(yù)設(shè)溫度值。其中預(yù)設(shè)溫度值只能為整數(shù)形式,檢測(cè)到的當(dāng)前環(huán)境溫度可精確到整數(shù)。同時(shí)利用LED數(shù)碼管正確顯示當(dāng)前時(shí)間,并可通過(guò)按鍵進(jìn)行日期的修改,時(shí)間采用風(fēng)時(shí)顯示的模式,年、月、日、時(shí)、分、秒單獨(dú)顯示,顯示時(shí)第一位數(shù)碼管會(huì)用相應(yīng)排位,例如數(shù)碼管第一位顯示的為二時(shí),數(shù)碼管后兩位顯

3、示的數(shù)值為年。本系統(tǒng)通過(guò)按鍵控制來(lái)設(shè)置溫度的報(bào)警值,如達(dá)到報(bào)警值蜂鳴器報(bào)警并閃爍LED報(bào)警燈,同時(shí)也可按鍵關(guān)閉報(bào)警。同時(shí)本系統(tǒng)使用12C5A60S2單片機(jī)自帶的A/D,采樣,動(dòng)態(tài)調(diào)整燈光亮度。風(fēng)扇可以實(shí)現(xiàn)溫度智能調(diào)速(假設(shè)啟動(dòng)溫度為20度,如果慢慢增加溫度,風(fēng)扇的轉(zhuǎn)速也會(huì)隨之慢慢增加,當(dāng)溫度超過(guò)設(shè)定的最大溫度時(shí),風(fēng)扇達(dá)到最大轉(zhuǎn)速,并且報(bào)警。當(dāng)然降溫情況時(shí),風(fēng)扇的轉(zhuǎn)速也隨之改變)同時(shí)也能實(shí)現(xiàn)當(dāng)前溫度掉電留存。本系統(tǒng)設(shè)定一個(gè)低于室溫的溫度,實(shí)現(xiàn)風(fēng)扇溫控(具體如下,假設(shè)在一個(gè)不封蓋的紙箱內(nèi),假設(shè)室溫為25度,我們就設(shè)定20度為目標(biāo)溫度,此時(shí)風(fēng)扇進(jìn)行控溫,當(dāng)溫度達(dá)到20±0.5度,時(shí)達(dá)到平衡

4、狀態(tài))(2) 部分硬件簡(jiǎn)介1、12C5A60S2單片機(jī)STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。2、DS18B20溫度傳感器DS18B20數(shù)字溫度傳感器,是采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微型處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字

5、信號(hào)供處理器處理。適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。 DS18B20的主要特征:測(cè)量的結(jié)果直接以數(shù)字信號(hào)的形式輸出,以“一線總線”方式串行傳給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;溫度測(cè)量范圍在-55+125之間,在-10+85時(shí)精確度為±0.5;可檢測(cè)溫度分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5,0.25,0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫;它單線接口的獨(dú)特性,使它與微處理器連接時(shí)僅需一條端口線即可實(shí)現(xiàn)與微處理器的雙向通信;支持多點(diǎn)組網(wǎng)功能,即多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫的功能;工作電壓范圍寬,其范圍

6、在3.05.5V。 DS18B20內(nèi)部結(jié)構(gòu)主要有四部分:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。其管腳有三個(gè),其中DQ為數(shù)字信號(hào)端,GND為電源地,VDD為電源輸入端。(3) 系統(tǒng)設(shè)計(jì)原理圖三、附錄(一) 元件清單:項(xiàng)目個(gè)數(shù)項(xiàng)目個(gè)數(shù)12C5A60S2單片機(jī)1蜂鳴器1 12M晶振110UF電解電容130PF陶瓷電容2按鈕6 DS18B20溫度傳感器1 自鎖按鈕1 4.7K電阻2103排阻1 1K電阻10排針2 4位共陽(yáng)數(shù)碼管1 40P座1 8550三極管5 USB母座1LED燈39*15洞洞板1風(fēng)扇1光敏電阻1L293電機(jī)驅(qū)動(dòng)芯片116P座110K電阻2

7、穩(wěn)壓二極管1(二)程序源代碼#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char/-關(guān)于EEPROM的-sfr IAP_DATA = 0xC2;sfr IAP_ADDRH = 0xC3;sfr IAP_ADDRL = 0xC4;sfr IAP_CMD = 0xC5;sfr IAP_TRIG = 0xC6;sfr IAP_CONTR = 0xC7;#define CMD_IDLE 0#define CMD_READ 1#define CMD_PROG

8、RAM 2#define CMD_ERASE 3#define IAP_ADDRESS 0x0000#define ENABLE_IAP 0x82sbit ds = P20;sbit beep = P21;sbit led = P33;sbit dj = P22;sbit jian1 = P37;sbit jian2 = P36;sbit jian3 = P35;sbit jian4 = P34;sbit we1 = P27;sbit we2 = P26;sbit we3 = P25;sbit we4 = P24;/-關(guān)于AD的-sfr ADC_CONTR = 0XBC;sfr ADC_RES

9、 = 0XBD;sfr P1ASF = 0X9D;sfr ADC_RESL = 0XBE;uchar code number = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90;void delayms(uint x) uint i,j;for(i = x; i > 0; i-) for(j = 110; j > 0; j-); /* void Delay(uchar n) /EEPROM的延時(shí)程序uint x; while(n-) x = 0;while(+x); */=DS18B20的延時(shí)= void del

10、ay_us(uchar x) uchar i;for(i=0;i<x;i+);uchar voice = 1,dj_num1,dj_num2,gao_dj,di_dj;uchar flag = 0,T0_num,warn_temp = 30,dj_num3;uchar yue = 1,ri = 1,shi,fen,miao; uint temp;float ftemp;void tiaozheng_jia() /數(shù)字修改加if(flag = 2) yue+;else if(flag = 3) ri+; else if(flag = 4) shi+;else if(flag = 5) fe

11、n+;else if(flag = 6) miao+;else if(flag = 7) warn_temp+;else if(flag = 8) dj_num1+;if(dj_num1 = 4)dj_num1 = 3;void tiaozheng_jian() /數(shù)字修改減if(flag = 2) yue-;else if(flag = 3) ri-; else if(flag = 4) shi-;else if(flag = 5) fen-;else if(flag = 6) miao-;else if(flag = 7) warn_temp-;else if(flag = 8) if(d

12、j_num1 != 0)dj_num1-;elsedj_num1 = 0;void deal_jia() /處理加問(wèn)題if(miao = 60) miao = 0; fen+;if(fen = 60) fen = 0; shi+;if(shi = 24) shi = 0; ri+;if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12) && ri=32) ri = 1; yue+;else if(yue=2 && ri=29) ri = 1; yue+;else if(ri=31) ri = 1; yue+;if(yue

13、= 13)yue = 1;void deal_jian() /處理減問(wèn)題if(miao = -1)miao = 59;if(fen = -1)fen = 59;if(shi = -1)shi = 23;if(ri = 0) if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12)ri = 31;else if(yue=2)ri = 28;elseri = 30;if(yue = 0)yue = 12;void keyscan() /鍵盤(pán)掃描if(jian1 = 0) delayms(10);if(jian1 = 0) flag+;while(!jian1)

14、;if(jian2 = 0) delayms(10);if(jian2 = 0) tiaozheng_jia();deal_jia();while(!jian2);if(jian3 = 0) delayms(10);if(jian3 = 0) tiaozheng_jian();deal_jian();while(!jian3);if(jian4 = 0) delayms(10);if(jian4 = 0) if(flag = 7)voice = !voice;else if(flag = 6)TR0 = !TR0;while(!jian4);void display_shu(uchar x)

15、/顯示月日時(shí)分秒,溫度uchar i,j;i = x/10; j = x%10;we1 = 0;P0 = numberflag;delayms(5);we1 = 1;we3 = 0;P0 = numberi;delayms(5);we3 = 1; we4 = 0;P0 = numberj;delayms(5);we4 = 1;void display_wendu(uchar x) /flag大于10后,僅僅顯示溫度uchar i,j;i = x/10; j = x%10;if(flag = 10) we1 = 0;P0 = 0xbf;delayms(4);we1 = 1;else if(fla

16、g = 11) we1 = 0;P0 = 0xb7;delayms(4);we1 = 1;we3 = 0;P0 = numberi;delayms(5);we3 = 1; we4 = 0;P0 = numberj;delayms(5);we4 = 1;void baojing(uchar temp) /溫度報(bào)警uchar i;beep = 0;for(i = 10; i > 0; i-) beep = 0; led = 0;if(flag < 10)display_shu(temp);elsedisplay_wendu(temp);for(i = 10; i > 0; i-)

17、 beep = 0; led = 1;if(flag < 10)display_shu(temp);elsedisplay_wendu(temp);void deal_shijian() /處理時(shí)間if(miao >= 60) miao = 0; fen+;if(fen >= 60) fen = 0; shi+;if(shi >= 24) shi = 0; ri+;if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12) && ri>=32) ri = 1; yue+;else if(yue=2 &&a

18、mp; ri>=29) ri = 1; yue+;else if(ri>=31) ri = 1; yue+;if(yue >= 13)yue = 1;void IapIdle() /關(guān)閉EEPROMIAP_CONTR = 0;IAP_CMD = 0;IAP_TRIG = 0;IAP_ADDRH = 0x80;IAP_ADDRL = 0;uchar IapReadByte(uint addr) /EEPROM讀一個(gè)字節(jié)uchar dat;deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_READ;IAP_ADDRL = ad

19、dr;IAP_ADDRH = addr >> 8;IAP_TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();dat = IAP_DATA;IapIdle();deal_shijian();return dat;void IapProgramByte(uint addr, uchar dat) /EEPROM寫(xiě)一個(gè)字節(jié)deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_PROGRAM;IAP_ADDRL = addr;IAP_ADDRH = addr >> 8;IAP_DATA = dat;IAP_

20、TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();IapIdle();deal_shijian();void IapEraseSector(uint addr) /EEPROM扇區(qū)擦除deal_shijian();IAP_CONTR = ENABLE_IAP;IAP_CMD = CMD_ERASE;IAP_ADDRL = addr;IAP_ADDRH = addr >> 8;IAP_TRIG = 0x5a;IAP_TRIG = 0xa5;_nop_();IapIdle();deal_shijian();void display_adc(uchar x) /顯示

21、采集的AD信號(hào)uchar i;i = x/1000;we1 = 0;P0 = numberi;delayms(5);we1 = 1;i = x%1000/100;we2 = 0;P0 = numberi;delayms(5);we2 = 1;i = x%100/10;we3 = 0;P0 = numberi;delayms(5);we3 = 1;i = x%10;we4 = 0;P0 = numberi;delayms(5);we4 = 1;uint adc_in() /自帶的AD轉(zhuǎn)換uint res;ADC_CONTR = 0xc9; res+; res+; res+;while(!(ADC

22、_CONTR&0x10);res = ADC_RES*4 + ADC_RESL;ADC_RES = 0;ADC_RESL = 0;ADC_CONTR = 0;return(res);void led_control() /通過(guò)光敏電阻控制LED燈的亮度uchar ad = adc_in();uchar ad_num,gao_led,di_led,i;keyscan();if(ad > 235)ad_num = 0;else if(ad > 215)ad_num = 1;else if(ad > 195)ad_num = 2;else if(ad > 175)ad

23、_num = 3;elsead_num = 4;switch(ad_num) case 0:gao_led = 4; di_led = 1; break;case 1:gao_led = 3; di_led = 2; break;case 2: gao_led = 2; di_led = 3; break;case 3:gao_led = 1; di_led = 4; break;case 4:gao_led = 0; di_led = 5; break;if(gao_led != 0) for(i = 0; i < gao_led; i+) led = 1;display_adc(ad

24、);for(i = 0; i < di_led; i+) led = 0;display_adc(ad);void display_dj() /顯示電機(jī)的檔數(shù)和編號(hào)we1 = 0;P0 = numberflag;delayms(5);we1 = 1;we4 = 0;P0 = numberdj_num1;delayms(5);we4 = 1; void dispose(uchar dj_num) /根據(jù)速度標(biāo)志進(jìn)行數(shù)據(jù)處理switch(dj_num) case 0:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);

25、gao_dj = 1; di_dj = 3; break;case 1:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 2; di_dj = 2; break;case 2:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao_dj = 3; di_dj = 1; break;case 3:if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);gao

26、_dj = 4; di_dj = 0; break;void dj_qudong() /控制電機(jī)程序uchar i;if(di_dj != 0) for(i = 0; i < di_dj; i+) dj = 0;if(flag = 8)display_dj();else if(flag = 10)display_wendu(temp);for(i = 0; i < gao_dj; i+) dj = 1;if(flag = 8) display_dj();else if(flag = 10)display_wendu(temp);void wen_feng(uchar t) /溫度控

27、制風(fēng)扇的速度if(t < 20)dj = 0;else if(t < 24)dj_num2 = 0;else if(t < 28)dj_num2 = 1;else if(t < 31)dj_num2 = 2;else if(t >= 31)dj_num2 = 3;void feng_wen(uchar t) /風(fēng)扇控制溫度if(t > 21)dj_num3 = 3;else if(t = 21)dj_num3 = 0;elsedj = 0;void display_zong() /數(shù)碼管總顯示uchar i;deal_shijian();if(flag=1|

28、flag=2|flag=3|flag=4|flag=5|flag=6|flag=8|flag=9)beep = 1;if(flag != 9)led = 1;if(flag=1|flag=2|flag=3|flag=4|flag=5|flag=6|flag=7|flag=9)dj = 0;if(flag = 1) /基本功能1,顯示溫度keyscan();deal_shijian();for(i = 10; i > 0; i-) display_shu(temp);else if(flag = 2) /基本功能2,月keyscan();deal_shijian();for(i = 10;

29、 i > 0; i-) display_shu(yue);else if(flag = 3) /基本功能2,日keyscan();deal_shijian();for(i = 10; i > 0; i-) display_shu(ri);else if(flag = 4) /基本功能2,時(shí)keyscan();deal_shijian();for(i = 10; i > 0; i-) display_shu(shi);else if(flag = 5) /基本功能2,分keyscan();deal_shijian();for(i = 10; i > 0; i-) disp

30、lay_shu(fen);else if(flag = 6) /基本功能2,秒keyscan();deal_shijian();/for(i = 10; i > 0; i-) display_shu(miao);else if(flag = 7) /基本功能3,控制報(bào)警溫度并且能報(bào)警keyscan();deal_shijian();for(i = 10; i > 0; i-) display_shu(warn_temp);if(temp >= warn_temp&&voice = 1) beep = 0;baojing(warn_temp);else beep

31、 = 1; led = 1;else if(flag = 8) /基本功能4,控制電機(jī),并且至少有3檔keyscan();deal_shijian();dispose(dj_num1);dj_qudong();else if(flag = 9) /擴(kuò)展功能1,采集數(shù)據(jù),AD處理,并控制LED的亮度keyscan();deal_shijian();display_adc(adc_in();led_control();else if(flag = 10) /擴(kuò)展功能2,溫度控制風(fēng)扇的轉(zhuǎn)速keyscan();deal_shijian();for(i = 10; i > 0; i-) displ

32、ay_wendu(temp);wen_feng(temp);dispose(dj_num2);dj_qudong();if(dj_num2 = 3) baojing(temp);beep = 0;else beep = 1;led = 1;else if(flag = 11) /風(fēng)扇控制溫度的高低keyscan();deal_shijian();for(i = 10; i > 0; i-) display_wendu(temp);feng_wen(temp);dispose(dj_num3);dj_qudong();if(flag = 12)flag = 1;bit dsreset()

33、/溫度傳感器復(fù)位uchar fla,i;deal_shijian(); ds=0;/ delay_us(198); /255for(i = 10; i > 0; i-) display_zong(); ds=1;/ delay_us(1); /30 fla=ds;/ delay_us(255);/ delay_us(120);for(i = 10; i > 0; i-) display_zong();if(warn_temp > temp|voice = 0) beep = 1;led = 1; return fla;uchar tempread() /讀一個(gè)字節(jié)數(shù)據(jù)uchar i=0,dat,j;deal_shijian();for(i=0;i<8;i+) ds=0;/ delay_1us(); ds=1;/ delay_us(1); /6 dat>>=1; if(ds=1) dat|=0x80; else dat|=0x00;/ delay_us(23); /50for(j = 3; j > 0; j-) display_zong();if(warn_temp > temp|voice = 0) beep = 1;led =

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論