找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 17397|回復(fù): 17
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)智能風(fēng)扇調(diào)速系統(tǒng)設(shè)計(jì)資料 很詳細(xì) 有實(shí)物

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
智能風(fēng)扇調(diào)速系統(tǒng)
總體設(shè)計(jì)框圖
系統(tǒng)電路設(shè)計(jì)總體設(shè)計(jì)方框圖所示,控制器采用單片機(jī)AT89S52,溫度傳感器采用DS18B20,用2位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。
總體設(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。


主要參數(shù)
序號(hào)
參數(shù)
數(shù)值
備注

1
電源電壓
220V
交流

2
工作電壓
4V~6V
直流

3
功率
<8W


4
設(shè)定值
0~9分鐘


5
低速
30度~32度


6
中速
32度~34度


7
高速
34度以上


8
誤差范圍
精度誤差小于0.5℃


主要元器件
序號(hào)
名稱
作用
個(gè)數(shù)

1
AT89S52單片機(jī)
運(yùn)算處理
1

2
DS1802傳感器
溫度測(cè)量
1

3
數(shù)碼管LG5011BSR
溫度顯示
4

4
蜂鳴器
溫度報(bào)警
1

5
變壓器
變壓
1

6
整流橋
交流變直流
1

7
三端穩(wěn)壓器7805
穩(wěn)定電壓值
1

8
AT24C02
掉電存儲(chǔ)器



元件清單
元件名稱
單位(只)
型號(hào)
參數(shù)
備注
溫度傳感器
1
DS18B20
-55~100度 5V

單片機(jī)
1
AT89S52


變壓器
1
220V變9V
9V/8W

整流橋
1

1安

C1,C2
2
30P


C3,C6
2
22UF/25V


C4
1
220UF/25V


C5
1
2.2UF/25


R1~R6
7
100歐姆
1/8W

R7~R9
3
510歐姆
1/8W

R10
1
10K
1/8W

R11~R15
5
4.7K
1/8W

R16~R21
6
510歐姆
1/8W

D1
1
發(fā)光二極管
發(fā)紅
電源指示
D2~D6
5
發(fā)光二極管
發(fā)紅
按下指示
D7
1
發(fā)光二極管
白發(fā)白
低速指示
D8
1
發(fā)光二極管
白發(fā)藍(lán)
中速指示
D9
1
發(fā)光二極管
白發(fā)紅
高速指示
穩(wěn)壓管
1
LM7805


Y1
1
晶震
11.0592HZ

S1~S6
6
按鍵


S1-1
1
開(kāi)關(guān)


Q1~Q3
4
8550
NPN

U10~U12
3
LG5011BSR
7段數(shù)碼管

電路板
2塊



電源線
1條

































風(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附件中可下載工程文件)



風(fēng)扇調(diào)速最終程序
  1. #include
  2. code unsigned char seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,
  3. 0x82,0xf8,0x80,0x90,0x40}; //顯示段碼

  4. sbit TMDAT =P3^1; //DS18B20 的數(shù)據(jù)輸入/輸出腳DQ,根據(jù)情況設(shè)定

  5. sbit P2_7=P2^7;
  6. sbit P2_6=P2^6;
  7. sbit P2_5=P2^5;

  8. sbit jia=P2^4;
  9. sbit jian=P2^3;
  10. sbit di=P2^2;
  11. sbit zh=P2^1;
  12. sbit ga=P2^0;

  13. unsigned int z=0;
  14. sbit q=P1^7;
  15.             
  16. unsigned int sdata;//測(cè)量到的溫度的整數(shù)部分
  17. //unsigned char xiaoshu1;//小數(shù)第一位
  18. //unsigned char xiaoshu2;//小數(shù)第二位
  19. //unsigned char xiaoshu;//兩位小數(shù)

  20. bit fg=1; //溫度正負(fù)標(biāo)志

  21. //////////*顯示延時(shí)程序*///////////////

  22. void Delay(unsigned int tc)
  23. {while( tc != 0 )
  24. {unsigned int i;
  25. for(i=0; i<80; i++);
  26. tc--;}
  27. }

  28. ////////////延時(shí)部分///////////////

  29. void yanshi (unsigned int count)
  30. {
  31. unsigned char i;
  32. while(count--)
  33. {for(i=0;i<115;i++);}
  34. }


  35. /////////////發(fā)送復(fù)位///////////////

  36. void fashong (void)
  37. {
  38. unsigned char i;
  39. TMDAT = 0; for(i=0;i<103;i++);
  40. TMDAT = 1; for(i=0;i<4;i++);
  41. }


  42. bit tmrbit (void) //讀一位//
  43. {                     
  44. unsigned int i;
  45. bit dat;
  46. TMDAT = 0;
  47. i++;
  48. TMDAT = 1;
  49. i++; i++; //微量延時(shí) //
  50. dat = TMDAT;
  51. for(i=0;i<8;i++);
  52. return (dat);
  53. }

  54. unsigned char tmrbyte (void) //讀一個(gè)字節(jié)
  55. {
  56. unsigned char i,j,dat;
  57. dat = 0;
  58. for (i=1;i<=8;i++)
  59. { j = tmrbit(); dat = (j << 7) | (dat >> 1); }
  60. return (dat);
  61. }

  62. void tmwbyte (unsigned char dat) //寫一個(gè)字節(jié)
  63. {
  64. unsigned char j,i;
  65. bit testb;
  66. for (j=1;j<=8;j++)
  67. { testb = dat & 0x01;
  68. dat = dat >> 1;
  69. if (testb)
  70. { TMDAT = 0; //寫0
  71. i++; i++;
  72. TMDAT = 1;
  73. for(i=0;i<8;i++); }
  74. else
  75. { TMDAT = 0; //寫0
  76. for(i=0;i<8;i++);
  77. TMDAT = 1;
  78. i++; i++;}
  79. }
  80. }

  81. void tmstart (void) //發(fā)送ds1820 開(kāi)始轉(zhuǎn)換
  82. {
  83. fashong(); //復(fù)位
  84. yanshi(1); //延時(shí)
  85. tmwbyte(0xcc); //跳過(guò)序列號(hào)命令
  86. tmwbyte(0x44); //發(fā)轉(zhuǎn)換命令 44H,
  87. }                  
  88. void tmrtemp (void) //讀取溫度
  89. {
  90. unsigned char a,b;
  91. fashong (); //復(fù)位
  92. yanshi (1); //延時(shí)
  93. tmwbyte (0xcc); //跳過(guò)序列號(hào)命令
  94. tmwbyte (0xbe); //發(fā)送讀取命令
  95. a = tmrbyte (); //讀取低位溫度
  96. b = tmrbyte (); //讀取高位溫度
  97. if(b>0x7f) //最高位為1 時(shí)溫度是負(fù)
  98. {a=~a; b=~b+1; //補(bǔ)碼轉(zhuǎn)換,取反加一
  99. fg=0; //讀取溫度為負(fù)時(shí)fg=0
  100. }
  101. sdata = a/16+b*16; //整數(shù)部分
  102. //xiaoshu1 = (a&0x0f)*10/16; //小數(shù)第一位
  103. //xiaoshu2 = (a&0x0f)*100/16%10;//小數(shù)
  104. //xiaoshu=xiaoshu1*10+xiaoshu2; //小數(shù)
  105. }
  106. void DS18B20PRO(void)
  107. {
  108. tmstart();
  109. //yanshi(5); //如果是不斷地讀取的話可以不延
  110. tmrtemp(); //讀取溫度,執(zhí)行完畢溫度將存于
  111. }
  112. void Led()
  113. {
  114. if(fg==1) //溫度為正時(shí)顯示的數(shù)據(jù)
  115. {
  116. P2_7=0;
  117. P0=seg7code[sdata/10]; //輸出十位
  118. Delay(8); P2=P2|0xf0;

  119. P2_6=0;
  120. P0=seg7code[sdata%10]|0x80; //輸出個(gè)位
  121. Delay(8); P2=P2|0xf0;

  122. P2_5=0;
  123. P0=seg7code[z%10]|0x80; //輸出延時(shí)位            
  124. Delay(4); P2=P2|0xf0;

  125. if(sdata>30)
  126. {P1=0xfe;}
  127. if(sdata>32)
  128. {P1=0xfd;}
  129. if(sdata>34)
  130. {P1=0xfb;}

  131. }
  132. }

  133. void buzidong()
  134. {

  135. void DS18B20PRO();
  136. void Led();

  137. DS18B20PRO();
  138. Led();
  139. if(di==0)
  140. {Delay(200);P1=0xfe;}
  141. if(zh==0)
  142. {Delay(200);P1=0xfd;}
  143. if(ga==0)
  144. {Delay(200);P1=0xfb;}

  145. }
  146. void zidong()
  147. {
  148. while(z--)
  149. {
  150. void DS18B20PRO();
  151. void Led();

  152. unsigned char i,k;
  153. //for(y=30;y>0;y--)
  154. for(i=12;i>0;i--)
  155. //for(j=80;j>0;j--)
  156. for(k=248;k>0;k--)
  157. {
  158. if(jia==0)
  159. {Delay(200);z++;}
  160. if(jian==0)
  161. {Delay(200);z--;}

  162. DS18B20PRO();
  163. Led();
  164. if(di==0)
  165. {Delay(200);P1=0xfe;}
  166. if(zh==0)
  167. {Delay(200);P1=0xfd;}
  168. if(ga==0)
  169. {Delay(200);P1=0xfb;}

  170. /*
  171. if((di==0)||(sdata>30))
  172. {Delay(200);P1=0xfe;}
  173. ……………………

  174. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


全部資料下載地址:
智能風(fēng)扇調(diào)速系統(tǒng)資料.zip (12.31 MB, 下載次數(shù): 359)


評(píng)分

參與人數(shù) 3黑幣 +135 收起 理由
51899A + 30 很給力!
Slan + 5 贊一個(gè)!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏32 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:200820 發(fā)表于 2017-5-17 09:40 | 只看該作者
很實(shí)用
回復(fù)

使用道具 舉報(bào)

板凳
ID:102702 發(fā)表于 2017-5-17 11:10 | 只看該作者
非常實(shí)用,不用繼電器的嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:89286 發(fā)表于 2017-5-28 08:38 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

5#
ID:166760 發(fā)表于 2017-6-1 16:04 | 只看該作者

這個(gè)程序不行的
回復(fù)

使用道具 舉報(bào)

6#
ID:241586 發(fā)表于 2018-2-19 23:34 | 只看該作者
好資料感謝
回復(fù)

使用道具 舉報(bào)

7#
ID:285285 發(fā)表于 2018-2-24 21:20 | 只看該作者
好,謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

8#
ID:241772 發(fā)表于 2018-2-25 10:34 來(lái)自手機(jī) | 只看該作者
好,謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

9#
ID:331575 發(fā)表于 2018-5-16 20:05 | 只看該作者
好帖  值得一試
回復(fù)

使用道具 舉報(bào)

10#
ID:347274 發(fā)表于 2018-6-29 19:52 | 只看該作者
要是有大神能根據(jù)經(jīng)這個(gè) 制作有封裝的pcb板就好了
回復(fù)

使用道具 舉報(bào)

11#
ID:310814 發(fā)表于 2018-6-30 07:31 | 只看該作者
贊一個(gè),,有背部的照片嗎
回復(fù)

使用道具 舉報(bào)

12#
ID:98880 發(fā)表于 2018-6-30 11:59 | 只看該作者
不錯(cuò)不錯(cuò)。
回復(fù)

使用道具 舉報(bào)

13#
ID:215044 發(fā)表于 2018-7-4 10:53 | 只看該作者
很厲害的樓主
回復(fù)

使用道具 舉報(bào)

14#
ID:344633 發(fā)表于 2018-7-4 21:14 | 只看該作者
好贊                     
回復(fù)

使用道具 舉報(bào)

15#
ID:388329 發(fā)表于 2018-9-5 11:28 | 只看該作者
好,很不錯(cuò)的
回復(fù)

使用道具 舉報(bào)

16#
ID:819815 發(fā)表于 2020-9-18 09:08 | 只看該作者
這個(gè)有風(fēng)扇嗎,風(fēng)扇接哪
回復(fù)

使用道具 舉報(bào)

17#
ID:724172 發(fā)表于 2020-9-23 16:56 | 只看該作者
太好了,這么詳細(xì)的資料
回復(fù)

使用道具 舉報(bào)

18#
ID:1031667 發(fā)表于 2022-6-6 00:00 | 只看該作者
第二層板子是?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表