久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 51單片機(jī)溫控風(fēng)扇(含程序+原理圖+仿真+PCB) [打印本頁]

作者: 一個好學(xué)生    時間: 2016-11-10 16:19
標(biāo)題: 51單片機(jī)溫控風(fēng)扇(含程序+原理圖+仿真+PCB)
·        1.本設(shè)計基于STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機(jī)
·        2.采用DS18B20溫度傳感器測溫,74HC573驅(qū)動數(shù)碼管顯示溫度和風(fēng)扇的檔位。
·        3.3個按鍵:設(shè)置、加、減。按一下設(shè)置可以設(shè)置上限,再按下設(shè)置下限,均可以按鍵加減調(diào)整。
·        4.利用PWM調(diào)速,當(dāng)溫度低于下限時,風(fēng)扇不轉(zhuǎn)動,當(dāng)溫度處于上、下限之間時1檔轉(zhuǎn)動(50%的轉(zhuǎn)速),當(dāng)溫度超過上限時,全速轉(zhuǎn)動。
使用說明:
一共3個按鍵:設(shè)置、加、減
按下設(shè)置鍵的時候才可以加減。
按一下設(shè)置鍵,是設(shè)置溫度的上限,再按下設(shè)置鍵,是設(shè)置溫度的下限,再按下設(shè)置鍵是退出并保存。
元件清單:
1) 7*9萬用板
2) 風(fēng)扇
3) STC89C51單片機(jī)
4) 74hc573
5) 40腳IC座
6) 20腳IC座
7) 0.56四位一體共陰數(shù)碼管
8) 10k電阻*3
9) 1k電阻*2
10)      103排阻
11)      DS18B20
12)      10uf電容
13)      12M晶振
14)      30pf瓷片電容*2
15)      8550三極管
16)      8050三極管
17)      3p排針
18)      按鍵*3
19)      DC電源接口
20)      自鎖開關(guān)
21)      導(dǎo)線若干
22)      焊錫若干

23)      電源線或電池盒+DC電源插頭
  1. <font color="#000000">#include<reg51.h>
  2. #include<intrins.h>                         //包含頭文件
  3. #define uchar unsigned char
  4. #define uint unsigned int                 //宏定義
  5. ////////////////////
  6. sbit dj=P1^0;//電機(jī)控制端接口
  7. sbit DQ=P1^6;//溫度傳感器接口
  8. //////////按鍵接口/////////////////////////////////
  9. sbit key1=P3^5;//設(shè)置溫度
  10. sbit key2=P3^6;//溫度加
  11. sbit key3=P3^7;//溫度減
  12. //////////////////////////////////////////////////////
  13. sbit w1=P2^4;
  14. sbit w2=P2^5;
  15. sbit w3=P2^6;
  16. sbit w4=P2^7;                          //數(shù)碼管的四個位
  17. /////共陰數(shù)碼管段選//////////////////////////////////////////////
  18. uchar table[22]=
  19. {0x3F,0x06,0x5B,0x4F,0x66,
  20. 0x6D,0x7D,0x07,0x7F,0x6F,
  21. 0x77,0x7C,0x39,0x5E,0x79,0x71,
  22. 0x40,0x38,0x76,0x00,0xff,0x37};//'-',L,H,滅,全亮,n         16-21
  23. uint wen_du;                                                //溫度變量  
  24. uint shang,xia; //對比溫度暫存變量
  25. uchar dang;//檔位顯示
  26. uchar flag;
  27. uchar d1,d2,d3;//顯示數(shù)據(jù)暫存變量
  28. void delay(uint ms)                //延時函數(shù),大約延時25us
  29. {
  30.         uchar x;
  31.         for(ms;ms>0;ms--)
  32.                 for(x=10;x>0;x--);
  33. }
  34. /***********ds18b20延遲子函數(shù)(晶振12MHz )*******/
  35. void delay_18B20(uint i)
  36. {
  37.         while(i--);
  38. }
  39. /**********ds18b20初始化函數(shù)**********************/
  40. void Init_DS18B20()
  41. {
  42.          uchar x=0;
  43.          DQ=1;          //DQ復(fù)位
  44.          delay_18B20(8);  //稍做延時
  45.          DQ=0;          //單片機(jī)將DQ拉低
  46.          delay_18B20(80); //精確延時 大于 480us
  47.          DQ=1;          //拉高總線
  48.          delay_18B20(14);
  49.          x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  50.          delay_18B20(20);
  51. }
  52. /***********ds18b20讀一個字節(jié)**************/  
  53. uchar ReadOneChar()
  54. {
  55.         uchar i=0;
  56.         uchar dat=0;
  57.         for (i=8;i>0;i--)
  58.          {
  59.                   DQ=0; // 給脈沖信號
  60.                   dat>>=1;
  61.                   DQ=1; // 給脈沖信號
  62.                   if(DQ)
  63.                   dat|=0x80;
  64.                   delay_18B20(4);
  65.          }
  66.         return(dat);
  67. }
  68. /*************ds18b20寫一個字節(jié)****************/  
  69. void WriteOneChar(uchar dat)
  70. {
  71.         uchar i=0;
  72.         for (i=8;i>0;i--)
  73.         {
  74.                   DQ=0;
  75.                 DQ=dat&0x01;
  76.             delay_18B20(5);
  77.                 DQ=1;
  78.             dat>>=1;
  79.         }
  80. }
  81. /**************讀取ds18b20當(dāng)前溫度************/
  82. void ReadTemperature()
  83. {
  84.         uchar a=0;
  85.         uchar b=0;
  86.         uchar t=0;
  87.         Init_DS18B20();
  88.         WriteOneChar(0xCC);            // 跳過讀序號列號的操作
  89.         WriteOneChar(0x44);         // 啟動溫度轉(zhuǎn)換
  90.         delay_18B20(100);       // this message is wery important
  91.         Init_DS18B20();
  92.         WriteOneChar(0xCC);         //跳過讀序號列號的操作
  93.         WriteOneChar(0xBE);         //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
  94.         delay_18B20(100);
  95.         a=ReadOneChar();            //讀取溫度值低位
  96.         b=ReadOneChar();                   //讀取溫度值高位
  97.         wen_du=((b*256+a)>>4);    //當(dāng)前采集溫度值除16得實(shí)際溫度值
  98. }
  99. void display()//顯示溫度
  100. {
  101.         w1=0;P0=table[d1];delay(10); //第1位
  102.         P0=0x00;w1=1;delay(1);
  103.          
  104.         w2=0;P0=table[16];delay(10);//第2位
  105.         P0=0x00;w2=1;delay(1);

  106.         w3=0;P0=table[d2]; delay(10);//第3位
  107.         P0=0x00;w3=1;delay(1);

  108.         w4=0;P0=table[d3];delay(10);//第4位
  109.         P0=0x00;w4=1;delay(1);
  110. }
  111. void zi_keyscan()//自動模式按鍵掃描函數(shù)
  112. {
  113.         if(key1==0)                                                          //設(shè)置鍵按下
  114.         {
  115.                 delay(30);                                                  //延時去抖
  116.                 if(key1==0)flag=1;                                  //再次判斷按鍵,按下的話進(jìn)入設(shè)置狀態(tài)
  117.                 while(key1==0);//松手檢測                  //按鍵釋放
  118.         }
  119.         while(flag==1)                                                  //進(jìn)入設(shè)置上限狀態(tài)
  120.         {
  121.                 d1=18;d2=shang/10;d3=shang%10;          //顯示字母H 和上限溫度值
  122.                 display();                                                  //調(diào)用顯示函數(shù)
  123.                 if(key1==0)                                                  //判斷設(shè)置鍵是否按下
  124.                 {
  125.                         delay(30);                                          //延時去抖
  126.                         if(key1==0)flag=2;                          //按鍵按下,進(jìn)入設(shè)置下限模式
  127.                         while(key1==0);//松手檢測
  128.                 }
  129.                 if(key2==0)                                                  //加鍵按下
  130.                 {
  131.                         delay(30);                                          //延時去抖
  132.                         if(key2==0)                                          //加鍵按下
  133.                         {
  134.                                 shang+=5;                                  //上限加5
  135.                                 if(shang>=100)shang=100;  //上限最大加到100
  136.                         }while(key2==0);//松手檢測
  137.                 }
  138.                 if(key3==0)                                                  //減鍵按下
  139.                 {
  140.                         delay(30);                                          //延時去抖
  141.                         if(key3==0)                                          //減鍵按下
  142.                         {
  143.                                 shang-=1;                                  //上限減1
  144.                                 if(shang<=10)shang=10;          //上限最小減到10
  145.                         }while(key3==0);//松手檢測
  146.                 }               
  147.         }
  148.         while(flag==2)                                                  //設(shè)置下限
  149.         {
  150.                 d1=17;d2=xia/10;d3=xia%10;                  //顯示字母L 顯示下限溫度值
  151.                 display();                                                  //以下注釋同上
  152.                 if(key1==0)
  153.                 {
  154.                         delay(30);
  155.                         if(key1==0)flag=0;
  156.                         while(key1==0);//松手檢測
  157.                 }
  158.                 if(key2==0)
  159.                 {
  160.                         delay(30);
  161.                         if(key2==0)
  162.                         {
  163.                                 xia+=5;
  164.                                 if(xia>=95)xia=95;       
  165.                         }while(key2==0);//松手檢測
  166.                 }
  167.                 if(key3==0)
  168.                 {
  169.                         delay(30);
  170.                         if(key3==0)
  171.                         {
  172.                                 xia-=1;
  173.                                 if(xia<=0)xia=0;       
  174.                         }while(key3==0);//松手檢測
  175.                 }               
  176.         }
  177. }
  178. void zi_dong()//自動溫控模式
  179. {
  180.         uchar i;
  181.         d1=dang;d2=wen_du/10;d3=wen_du%10;                //顯示檔位,顯示當(dāng)前溫度值
  182.         zi_keyscan();//按鍵掃描函數(shù)
  183.         display();         //調(diào)用顯示函數(shù)
  184.         if(wen_du<xia){dj=0;dang=0;}//低于下限  檔位為0 電機(jī)停止
  185.         if((wen_du>=xia)&&(wen_du<=shang))//溫度大于下限,小于上限  1擋
  186.         {
  187.                 dang=1;                                                                                        //檔位置1
  188.                 for(i=0;i<3;i++){dj=0;display();zi_keyscan();}        //PWM通過延時得到
  189.                 for(i=0;i<6;i++){dj=1;display();zi_keyscan();}               
  190.         }
  191.         if(wen_du>shang){dj=1;dang=2;}//高溫全速
  192. }
  193. void main()                  //主函數(shù)
  194. {
  195.         uchar j;
  196.         dj=0;                  //電機(jī)開
  197.         shang=30;
  198.         xia=20;                  //初始上下限值
  199.         for(j=0;j<80;j++)          //先讀取溫度值,防止開機(jī)顯示85
  200.         ReadTemperature();
  201.         while(1)                          //進(jìn)入while循環(huán)
  202.         {       
  203.                 ReadTemperature();        //讀取溫度值
  204.                 for(j=0;j<100;j++)zi_dong();//自動溫控模式
  205.         }
  206. }</font>
復(fù)制代碼


照片 761.jpg (1.59 MB, 下載次數(shù): 441)

實(shí)物圖正面

實(shí)物圖正面

照片 762.jpg (1.76 MB, 下載次數(shù): 359)

實(shí)物圖反面

實(shí)物圖反面

溫控風(fēng)扇.zip

790.79 KB, 下載次數(shù): 1784, 下載積分: 黑幣 -5


作者: 修車找我    時間: 2016-11-10 17:25
做得不錯,精致,支持一下。繼續(xù)努力!
作者: 越快樂越墮落    時間: 2016-11-13 16:01
DS18B20溫控時序有問題。顯示2-  5是啥意思???我知道5是表示按一次可以加5,那個2是什么鬼
作者: yanyang    時間: 2017-3-14 15:34
感謝資源共享!
作者: liner    時間: 2017-3-14 20:51
非常好的資料,學(xué)習(xí)中
作者: MeMine    時間: 2017-3-15 09:22
頂不錯的  學(xué)習(xí)了。 感謝樓主分享
作者: 音響王鳩摩智    時間: 2017-3-31 12:14
太好了學(xué)習(xí)學(xué)習(xí)
作者: 柳zkf    時間: 2017-4-5 10:01
厲害666666666666666666666
作者: jiliguala    時間: 2017-4-5 16:51
感謝,正在學(xué)習(xí)
作者: 安的子時明月    時間: 2017-4-5 17:08
非常好的資料,學(xué)習(xí)了,謝謝。
作者: 我不認(rèn)識你    時間: 2017-4-5 17:41
好資料,學(xué)習(xí)學(xué)習(xí)
作者: 楊海健    時間: 2017-4-6 13:57
好資料值得分享
作者: waas1987    時間: 2017-4-9 06:44
嗯嗯,回個
作者: zhangsan    時間: 2017-4-9 16:00
感謝分享。
作者: zhangsan    時間: 2017-4-9 16:02
親們能把原理圖帖出來嗎,積分不夠下載不了。。。
作者: lolop    時間: 2017-4-9 16:54

頂不錯的  學(xué)習(xí)了。 感謝樓主分享
作者: 哈哈哈哈1234    時間: 2017-4-10 21:57
贊贊贊
作者: 519762768    時間: 2017-4-10 22:10
好精簡,易學(xué),感謝樓主:)ㄟ(▔=▔)ㄏ
作者: jamyg    時間: 2017-4-19 09:29
贊!很好的資料

作者: zqy181818    時間: 2017-4-20 15:25
很給力
作者: 221lnmmkl    時間: 2017-4-29 22:36
好東西
作者: tnovicet    時間: 2017-4-30 01:51
感謝資源共享!學(xué)習(xí)了。
作者: wqz    時間: 2017-4-30 11:53
原理圖在哪看嗎、

作者: tututu    時間: 2017-4-30 16:07
感謝共享資源
作者: 陌雨煙1    時間: 2017-4-30 16:29
謝謝分享!。
作者: 陌雨煙1    時間: 2017-4-30 16:30
謝謝分享,繼續(xù)努力!。
作者: demonli    時間: 2017-5-4 15:12
謝謝分享!
作者: 世說鑫宇    時間: 2017-5-6 22:50
感謝分享
作者: 星星一眨眼    時間: 2017-5-7 07:13
十分感謝樓主分享這么詳細(xì)的資料
作者: 五號守門員    時間: 2017-5-7 09:55
果斷下載‘,每天都來打點(diǎn)雞血
作者: 15857153110    時間: 2017-5-7 11:29
不錯,謝謝分享。
作者: 西電小強(qiáng)    時間: 2017-5-8 19:53
很厲害,準(zhǔn)備做一個試試
作者: 胡霸霸    時間: 2017-5-20 15:30
666、頂一下
作者: linnyshow    時間: 2017-5-21 20:47
不錯。值得試試。
作者: zhn123    時間: 2017-5-25 07:50
要好好學(xué)習(xí)
作者: zhn123    時間: 2017-5-25 10:14
值得學(xué)習(xí)

作者: 呵呵楊    時間: 2017-5-26 15:19
謝謝樓主分享
作者: yonghu    時間: 2017-5-27 23:10
不用單片機(jī)直接驅(qū)動電機(jī)應(yīng)該怎么控制速度?
作者: zhn123    時間: 2017-5-27 23:29
可以用proteus仿真嗎?
作者: 單片機(jī)真有趣    時間: 2017-6-8 13:56
做得不錯,精致,支持一下。繼續(xù)努力!
作者: dashabi123    時間: 2017-6-8 22:10
謝謝樓主分享

作者: yongge    時間: 2017-6-9 16:34
新人來學(xué)習(xí)
作者: 小橋O流水    時間: 2017-6-10 11:51
謝謝樓主
作者: luodandelang    時間: 2017-6-23 18:14
仿真圖中 74hc573的作用是什么?程序中感覺并沒有用到鎖存器
作者: hzlsw1    時間: 2017-6-25 15:46
仿真打不開
作者: cwsinglan    時間: 2017-7-1 19:29
訪制一個看看
作者: 每一分每一秒    時間: 2017-7-5 16:18
很給力
作者: 天宇vh    時間: 2017-7-8 17:41
線路布得不是很合理
作者: yyyyl    時間: 2017-7-24 21:37
好可惜,黑幣不夠
作者: psswcx    時間: 2017-7-25 20:49
謝謝樓主
作者: psswcx    時間: 2017-7-26 10:10
謝謝大佬
作者: 懶羊羊and灰太狼    時間: 2017-7-27 15:10
一個新人路過
作者: mmss11    時間: 2017-10-1 21:35
必須學(xué)習(xí)一下,謝謝分享了
作者: 小小亂世    時間: 2017-10-8 21:54
我不認(rèn)識你 發(fā)表于 2017-4-5 17:41
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

非常值得學(xué)習(xí),很好用
作者: mccca    時間: 2017-10-8 23:07
很好      
作者: yuemky    時間: 2017-10-10 11:32
謝謝分享
作者: yyfpy    時間: 2017-10-19 13:39
謝謝樓主分享好資料!
作者: XDQ    時間: 2017-10-20 15:52
很不錯
作者: Z禁肥    時間: 2017-10-24 08:58
很適合初學(xué)者學(xué)習(xí)
作者: 彈丸大哥    時間: 2017-10-28 19:03
風(fēng)扇的話如果是12v的可以接上用嗎
作者: wuxishun    時間: 2017-10-28 20:55
非常感謝不錯的資料,多謝大神
作者: wakalaca    時間: 2017-10-30 14:06
仿真軟件有嗎
作者: mccca    時間: 2017-10-31 21:42
真的很好,非常有用
作者: 清揚(yáng)化二海    時間: 2017-11-1 17:46
線有點(diǎn)亂了,在合理布局下就更好了
作者: TIANGEYIFANG    時間: 2017-11-18 12:56
正好需要需要這個,謝謝謝謝
作者: TIANGEYIFANG    時間: 2017-11-18 13:09
好厲害,做的很不錯,下下來模范一下,666
作者: TIANGEYIFANG    時間: 2017-11-22 12:55
黑幣不夠下載不了,有什么辦法掙的嘛,想下載這個學(xué)習(xí),挺急的。
作者: 夢魂    時間: 2017-11-23 11:49
非常感謝大佬分享
作者: 夢魂    時間: 2017-11-23 14:07
非常感謝大佬分享
作者: DUANS    時間: 2017-11-27 11:48
咋沒見原理圖啊
作者: yyfpy    時間: 2017-11-27 14:30
謝謝!新手學(xué)習(xí)!
作者: Bright_Zhang    時間: 2017-12-3 15:41
好,感謝你的資料


作者: 1335191367    時間: 2017-12-5 10:31
這個資料很給力
作者: 1335191367    時間: 2017-12-5 11:02
這個有相對應(yīng)的畢業(yè)設(shè)計嗎
作者: 李啦啦啦    時間: 2017-12-5 14:22
厲害 學(xué)習(xí)了
作者: 浩然電腦    時間: 2017-12-5 14:28
學(xué)習(xí)學(xué)習(xí),謝謝
作者: Coca_Cora    時間: 2017-12-14 15:37
蠻好的,正好在用呢~
作者: 2411753671    時間: 2017-12-17 20:49
好東西
作者: ray372liu    時間: 2017-12-18 15:32
謝謝樓主
作者: Sinp102    時間: 2018-1-5 12:00
這溫控做的 我也是醉了 用軟件延時做PWM 浪費(fèi)黑幣下載
作者: 九紋龍    時間: 2018-1-5 16:10
謝謝樓主
作者: hui001    時間: 2018-3-12 17:23
感謝樓主分享
作者: bb1982    時間: 2018-4-25 16:07
不錯不錯
作者: yzh123    時間: 2018-4-25 19:05
謝謝樓主,
作者: 戚嘉丶    時間: 2018-4-27 14:41
頂一個
作者: 守候楓林紅葉時    時間: 2018-4-30 21:49
感謝分享,學(xué)習(xí)一下
作者: krate    時間: 2018-5-2 20:39
膜拜了,厲害。。。1
作者: 566666123    時間: 2018-5-3 17:39
感謝資源共享!
作者: z894194853    時間: 2018-5-17 14:21
好資料,學(xué)習(xí)了
作者: a6103121    時間: 2018-5-19 12:01
拿來學(xué)習(xí)
作者: LanYan    時間: 2018-5-20 16:19
樓主寫的很棒!贊!
作者: 草棚    時間: 2018-5-22 15:39
厲害了
作者: 吳奔    時間: 2018-5-28 01:08
仿真圖好像不能在軟件上運(yùn)行啊
作者: 荷下垂柳    時間: 2018-5-28 09:16
學(xué)習(xí)了
作者: 魔菲音電子    時間: 2018-5-28 11:24
好貼,參考學(xué)習(xí)一下
作者: 單片機(jī)研究51    時間: 2018-5-30 17:21
贊一個,看來不錯
作者: 想方設(shè)法    時間: 2018-5-30 17:26
哇牛逼
作者: 犀牛圣斧魔王    時間: 2018-5-31 15:15
好棒啊,我也想要
作者: liwen711    時間: 2018-6-12 22:02
請問一下,我在調(diào)試時候數(shù)碼管上總是8888怎么辦
作者: 二白白    時間: 2018-6-19 18:34
很給力




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲精品免费在线 | 超碰在线免费av | 四虎成人免费视频 | 亚洲国产日韩欧美 | 久久成人综合 | 国产精品久久久亚洲 | 欧美五月婷婷 | 成人免费视频在线观看 | 亚洲精品美女视频 | 国产成人精品a视频一区www | 国产精品久久99 | 在线免费看黄 | 黄色精品 | 国产成人精品午夜 | 亚洲 中文 欧美 日韩 在线观看 | 国产欧美精品一区二区 | 亚洲国产精品区 | 国产精品中文在线 | 成年人视频在线免费观看 | 神马九九| 欧美高清性xxxxhdvideosex | 国产欧美一区二区精品久导航 | 国产午夜高清 | 国产一区二区 | 一区欧美| 中文字幕在线观看一区 | 久久久久亚洲精品 | 国产精品久久久99 | 日韩中文字幕av | 天久久| 精品国产久 | 永久av | 99re国产 | 欧美性网 | 欧美色成人 | 天天插天天操 | 亚欧洲精品在线视频免费观看 | 亚洲欧美综合 | 日韩一级欧美一级 | 欧美成人a | 国产欧美在线视频 |