智能風(fēng)扇調(diào)速系統(tǒng)
智能風(fēng)扇調(diào)速系統(tǒng).jpg (102.68 KB, 下載次數(shù): 121)
下載附件
2017-5-16 21:57 上傳
總體設(shè)計(jì)框圖 系統(tǒng)電路設(shè)計(jì)總體設(shè)計(jì)方框圖所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用2位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。
1_1.002.jpg (29.36 KB, 下載次數(shù): 111)
下載附件
2017-5-16 22:07 上傳
總體設(shè)計(jì)方框圖 主控制器 單片機(jī)AT89S52具有低電壓供電和體積小等特點(diǎn),四個(gè)端就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。 狀態(tài)顯示 顯示風(fēng)扇調(diào)速系統(tǒng)處于的工作狀態(tài),狀態(tài)有三種分別是 低速狀態(tài)、中速狀態(tài)和高速狀態(tài),此系統(tǒng)以發(fā)光二極管指示作演示。 LED顯示 本系統(tǒng)共使用的三個(gè)共陽(yáng)極七段數(shù)碼管分別顯示,當(dāng)前的溫度和設(shè)定定時(shí)的倒計(jì)時(shí)時(shí)間。溫度以標(biāo)準(zhǔn)攝氏度為單位。時(shí)間以分鐘為單位。數(shù)碼管采用單片機(jī)P0口并行數(shù)據(jù)輸出,P2口數(shù)據(jù)掃描控制顯示,三極管8550做數(shù)碼管的驅(qū)動(dòng)。 鍵盤控制 有一組鍵盤控制倒計(jì)時(shí)溫度的設(shè)定加與減。另一組控制系統(tǒng)處于的三種狀態(tài),分別對(duì)應(yīng)的是低速狀態(tài)、中速狀態(tài)和高速狀態(tài),此系統(tǒng)以發(fā)光二極管指示作演示。還有一個(gè)開(kāi)關(guān)按鍵是控制系統(tǒng)是處于自動(dòng)狀態(tài)和手動(dòng)狀態(tài)的開(kāi)關(guān)。 溫度傳感器 DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下: ●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信; ●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; ●無(wú)須外部器件; ●可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V; ●零待機(jī)功耗; ●溫度以9或12位數(shù)字; ●用戶可定義報(bào)警設(shè)置; ●報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件; ●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; 系統(tǒng)復(fù)位 系統(tǒng)單片機(jī)采用的是上電復(fù)位,當(dāng)復(fù)位鍵按下時(shí),系統(tǒng)會(huì)變?yōu),開(kāi)始的初始狀態(tài)。 時(shí)鐘振蕩 系統(tǒng)單片機(jī)使用的是外部時(shí)鐘振蕩,振蕩頻率為標(biāo)準(zhǔn)的11.0592MHZ。
ALIM1061.JPG (507.93 KB, 下載次數(shù): 119)
下載附件
2017-5-16 21:57 上傳
ALIM1062.JPG (367.63 KB, 下載次數(shù): 101)
下載附件
2017-5-16 21:57 上傳
ALIM1063.JPG (362.16 KB, 下載次數(shù): 90)
下載附件
2017-5-16 21:57 上傳
ALIM1064.JPG (473.43 KB, 下載次數(shù): 97)
下載附件
2017-5-16 21:57 上傳
ALIM1065.JPG (518.47 KB, 下載次數(shù): 115)
下載附件
2017-5-16 21:57 上傳
調(diào)整大小 800600.jpg (50 KB, 下載次數(shù): 109)
下載附件
2017-5-16 21:57 上傳
調(diào)整大小 znfsts-d.jpg (36.19 KB, 下載次數(shù): 135)
下載附件
2017-5-16 21:57 上傳
0.png (64.72 KB, 下載次數(shù): 123)
下載附件
2017-5-16 21:57 上傳
0.png (29.83 KB, 下載次數(shù): 115)
下載附件
2017-5-16 21:57 上傳
元件清單 風(fēng)扇調(diào)速系統(tǒng)使用說(shuō)明書 - 接通交流220伏電源,電源指示燈亮。
- 按下啟動(dòng)電源開(kāi)關(guān),系統(tǒng)開(kāi)始運(yùn)行。
- 當(dāng)手動(dòng)/自動(dòng)按鍵彈起時(shí),為手動(dòng)狀態(tài),溫度顯示為當(dāng)前溫度,時(shí)間顯示為零,加,減鍵不起作用。
- 分別按下,低速至高速按鍵,相應(yīng)的指示燈亮。
- 當(dāng)手動(dòng)/自動(dòng)按鍵按下時(shí),為自動(dòng)狀態(tài),溫度顯示為當(dāng)前溫度,時(shí)間顯示為零,加,減鍵起作用。每次加1或減1 。系統(tǒng)處于倒計(jì)時(shí)狀態(tài)。
- 分別按下,低速至高速按鍵,相應(yīng)的指示燈亮。
- 當(dāng)系統(tǒng)處于自動(dòng)狀態(tài)時(shí),如果溫度大于30度,低速燈自動(dòng)點(diǎn)亮。如果溫度大于32度,中速燈自動(dòng)點(diǎn)亮。如果溫度大于34度,高速燈自動(dòng)點(diǎn)亮。
Altium Designer畫的原理圖如下:(51hei附件中可下載工程文件)
1_1.003.jpg (112.09 KB, 下載次數(shù): 134)
下載附件
2017-5-16 22:07 上傳
風(fēng)扇調(diào)速最終程序: - #include
- code unsigned char seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,
- 0x82,0xf8,0x80,0x90,0x40}; //顯示段碼
-
- sbit TMDAT =P3^1; //DS18B20 的數(shù)據(jù)輸入/輸出腳DQ,根據(jù)情況設(shè)定
-
- sbit P2_7=P2^7;
- sbit P2_6=P2^6;
- sbit P2_5=P2^5;
-
- sbit jia=P2^4;
- sbit jian=P2^3;
- sbit di=P2^2;
- sbit zh=P2^1;
- sbit ga=P2^0;
-
- unsigned int z=0;
- sbit q=P1^7;
-
- unsigned int sdata;//測(cè)量到的溫度的整數(shù)部分
- //unsigned char xiaoshu1;//小數(shù)第一位
- //unsigned char xiaoshu2;//小數(shù)第二位
- //unsigned char xiaoshu;//兩位小數(shù)
-
- bit fg=1; //溫度正負(fù)標(biāo)志
-
- //////////*顯示延時(shí)程序*///////////////
-
- void Delay(unsigned int tc)
- {while( tc != 0 )
- {unsigned int i;
- for(i=0; i<80; i++);
- tc--;}
- }
-
- ////////////延時(shí)部分///////////////
-
- void yanshi (unsigned int count)
- {
- unsigned char i;
- while(count--)
- {for(i=0;i<115;i++);}
- }
-
-
- /////////////發(fā)送復(fù)位///////////////
-
- void fashong (void)
- {
- unsigned char i;
- TMDAT = 0; for(i=0;i<103;i++);
- TMDAT = 1; for(i=0;i<4;i++);
- }
-
-
- bit tmrbit (void) //讀一位//
- {
- unsigned int i;
- bit dat;
- TMDAT = 0;
- i++;
- TMDAT = 1;
- i++; i++; //微量延時(shí) //
- dat = TMDAT;
- for(i=0;i<8;i++);
- return (dat);
- }
-
- unsigned char tmrbyte (void) //讀一個(gè)字節(jié)
- {
- unsigned char i,j,dat;
- dat = 0;
- for (i=1;i<=8;i++)
- { j = tmrbit(); dat = (j << 7) | (dat >> 1); }
- return (dat);
- }
-
- void tmwbyte (unsigned char dat) //寫一個(gè)字節(jié)
- {
- unsigned char j,i;
- bit testb;
- for (j=1;j<=8;j++)
- { testb = dat & 0x01;
- dat = dat >> 1;
- if (testb)
- { TMDAT = 0; //寫0
- i++; i++;
- TMDAT = 1;
- for(i=0;i<8;i++); }
- else
- { TMDAT = 0; //寫0
- for(i=0;i<8;i++);
- TMDAT = 1;
- i++; i++;}
- }
- }
-
- void tmstart (void) //發(fā)送ds1820 開(kāi)始轉(zhuǎn)換
- {
- fashong(); //復(fù)位
- yanshi(1); //延時(shí)
- tmwbyte(0xcc); //跳過(guò)序列號(hào)命令
- tmwbyte(0x44); //發(fā)轉(zhuǎn)換命令 44H,
- }
- void tmrtemp (void) //讀取溫度
- {
- unsigned char a,b;
- fashong (); //復(fù)位
- yanshi (1); //延時(shí)
- tmwbyte (0xcc); //跳過(guò)序列號(hào)命令
- tmwbyte (0xbe); //發(fā)送讀取命令
- a = tmrbyte (); //讀取低位溫度
- b = tmrbyte (); //讀取高位溫度
- if(b>0x7f) //最高位為1 時(shí)溫度是負(fù)
- {a=~a; b=~b+1; //補(bǔ)碼轉(zhuǎn)換,取反加一
- fg=0; //讀取溫度為負(fù)時(shí)fg=0
- }
- sdata = a/16+b*16; //整數(shù)部分
- //xiaoshu1 = (a&0x0f)*10/16; //小數(shù)第一位
- //xiaoshu2 = (a&0x0f)*100/16%10;//小數(shù)
- //xiaoshu=xiaoshu1*10+xiaoshu2; //小數(shù)
- }
- void DS18B20PRO(void)
- {
- tmstart();
- //yanshi(5); //如果是不斷地讀取的話可以不延
- tmrtemp(); //讀取溫度,執(zhí)行完畢溫度將存于
- }
- void Led()
- {
- if(fg==1) //溫度為正時(shí)顯示的數(shù)據(jù)
- {
- P2_7=0;
- P0=seg7code[sdata/10]; //輸出十位
- Delay(8); P2=P2|0xf0;
-
- P2_6=0;
- P0=seg7code[sdata%10]|0x80; //輸出個(gè)位
- Delay(8); P2=P2|0xf0;
-
- P2_5=0;
- P0=seg7code[z%10]|0x80; //輸出延時(shí)位
- Delay(4); P2=P2|0xf0;
-
- if(sdata>30)
- {P1=0xfe;}
- if(sdata>32)
- {P1=0xfd;}
- if(sdata>34)
- {P1=0xfb;}
-
- }
- }
-
- void buzidong()
- {
-
- void DS18B20PRO();
- void Led();
-
- DS18B20PRO();
- Led();
- if(di==0)
- {Delay(200);P1=0xfe;}
- if(zh==0)
- {Delay(200);P1=0xfd;}
- if(ga==0)
- {Delay(200);P1=0xfb;}
-
- }
- void zidong()
- {
- while(z--)
- {
- void DS18B20PRO();
- void Led();
-
- unsigned char i,k;
- //for(y=30;y>0;y--)
- for(i=12;i>0;i--)
- //for(j=80;j>0;j--)
- for(k=248;k>0;k--)
- {
- if(jia==0)
- {Delay(200);z++;}
- if(jian==0)
- {Delay(200);z--;}
-
- DS18B20PRO();
- Led();
- if(di==0)
- {Delay(200);P1=0xfe;}
- if(zh==0)
- {Delay(200);P1=0xfd;}
- if(ga==0)
- {Delay(200);P1=0xfb;}
-
- /*
- if((di==0)||(sdata>30))
- {Delay(200);P1=0xfe;}
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png (58.67 KB, 下載次數(shù): 120)
下載附件
2017-5-16 22:04 上傳
全部資料下載地址:
智能風(fēng)扇調(diào)速系統(tǒng)資料.zip
(12.31 MB, 下載次數(shù): 359)
2017-5-16 21:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|