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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5510|回復: 1
收起左側

簡易散熱風扇控制器設計STC15F104e單片機+DS18B20+ULN2003A仿真和源程序

[復制鏈接]
ID:159139 發表于 2017-4-30 12:39 | 顯示全部樓層 |閱讀模式
stc15f104e+ds18b20+ULN2003A簡易散熱風扇控制器,壓縮包內有用C51的仿真和原程序C。新手發帖,請多指教
下面是風扇控制器的仿真原理圖:
0.png
F1 40度啟動   F2  50度啟動
F1 小于35度停止   F2 小于 45度停止
用8051仿真15F104E,用小燈泡代替小風扇好看點,因為風扇停止太慢。
0.png

散熱風扇控制器的單片機源程序:

  1. ///朱旭東2017年改 89c52rc 11.0592MHZ
  2. //+99.9~-9.9
  3. // 十位  個位  小數   小c   P0.0-P0.7 A-G點,使用3位管時不用小C
  4. //#include<reg52.h>
  5. #include <intrins.h>
  6. #include <STC15Fxxxx.H>
  7. //code unsigned char seg7code[12]={0x3f,0x06,0x5b,0x4f,0x66,
  8.                               //  0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x61}; //顯示段碼0,1,2,3,4,5,6,7,8,9,-.C
  9. unsigned int tem;
  10. sbit led1=P3^4;
  11. sbit led=P3^5;
  12. sbit TMDAT =P3^2; //DS18B20的數據輸入/輸出腳DQ,根據情況設定
  13. sbit led2=P3^3;
  14. bit  fg=0;        //溫度正負標志
  15. unsigned char k;

  16. //sbit w1=P1^0;
  17. //sbit w2=P1^1;
  18. //sbit w3=P1^2;
  19. //sbit w4=P1^3;

  20. void delay_us(unsigned char n)// STC15系列單片機延時1微秒@12MHZ
  21. {
  22.     while (n--)
  23.     {
  24.         _nop_();
  25.         _nop_();
  26.                 _nop_();
  27.                 _nop_();
  28.     }
  29. }        





  30. void Delay(unsigned int tc)     //顯示延時程序
  31. {while( tc != 0 )
  32.    {unsigned int i;
  33.     for(i=0; i<100; i++);
  34.     tc--;}
  35. }


  36.         
  37. void Init_DS18B20(void)        //發送復位
  38.   {                              
  39.   unsigned char i=0;
  40.   //TMDAT=0;   delay_us(240); delay_us(240);//168   for(i=0;i<103;i++); //370us
  41. // TMDAT = 1;delayus(46);//5  for(i=0;i<4;i++); // 16 us
  42. TMDAT = 1;          //DQ復位
  43. delay_us(80); //稍做延時
  44. TMDAT = 0;          //單片機將DQ拉低
  45. delay_us(240); //精確延時 大于 480us
  46. delay_us(240);
  47. TMDAT = 1;          //拉高總線
  48. delay_us(60);
  49. i=TMDAT;        
  50. delay_us(240);              //等待設備釋放數據線
  51. delay_us(180);

  52.   }   

  53.       
  54. unsigned char ReadOneChar(void){//讀一個字節
  55.         unsigned char i=0;
  56.         unsigned char dat = 0;
  57.         for (i=8;i>0;i--){
  58.         TMDAT  = 0; // 給脈沖信號
  59.                 dat>>=1;
  60.         TMDAT  = 1; // 給脈沖信號
  61.                 if(TMDAT ==1){
  62.                         dat|=0x80;
  63.                 }
  64.                 delay_us(60);
  65.         }
  66.         return(dat);
  67. }
  68.          
  69. void WriteOneChar(unsigned char dat)//寫一個字節
  70. {        unsigned char i=0;
  71.         for (i=8; i>0; i--)
  72.         {
  73.                 TMDAT= 0;
  74.                 TMDAT = dat&0x01;
  75.                 delay_us(60);
  76.                 TMDAT = 1;
  77.                 dat>>=1;
  78.         }
  79. }


  80. unsigned int ReadTemperature(void)//讀取溫度
  81. {        unsigned char a=0;
  82.         unsigned char b=0;
  83.         unsigned int t=0;
  84.         float tt=0;
  85.         Init_DS18B20();
  86.         WriteOneChar(0xCC); // 跳過讀序號列號的操作
  87.         WriteOneChar(0x44); // 啟動溫度轉換
  88.         Init_DS18B20();
  89.         WriteOneChar(0xCC); //跳過讀序號列號的操作
  90.         WriteOneChar(0xBE); //讀取溫度寄存器
  91.         a=ReadOneChar();  //讀低8位
  92.         b=ReadOneChar(); //讀高8位
  93.         t=b;
  94.         t<<=8;
  95.         t=t|a;

  96.    if(t<0x0fff)//前五位為0
  97.    fg=0;          //+溫度時的標志
  98.     else
  99.       {fg=1;
  100.       t=~t+1*10-7;//得到真實溫度*10 ,為了顯示后一位小數,-7使負誤差減小為0.1度
  101.            }  //-溫度時的標志


  102.         tt=t*0.0625;
  103.         t= tt*10+0.5; //放大10倍輸出并四舍五入
  104.         tem=t;
  105.         return(t);
  106. }

  107. /*      
  108. void Led()
  109. {
  110.    if(fg==0)   //溫度為正時顯示的數據
  111.    {  
  112.     w1=w2=w3=w4=1;
  113.     w1=0;
  114.     P3=seg7code[tem%1000/100];//輸出十位數
  115.      Delay(15);      
  116.      w1=1;
  117.      w2=0;
  118.     P3=seg7code[tem%100/10]|0x80; //輸出個位和小數點
  119.      Delay(15);
  120.     w2=1;
  121.     w3=0;
  122.     P3=seg7code[tem%10];   //輸出小數點后第一位
  123.     Delay(15);
  124.     w3=1;
  125.      w4=0;
  126.     P3=seg7code[11];//輸出c
  127.     Delay(15);
  128.     w1=w2=w3=w4=1;
  129.    // P0=seg7code[xiaoshu2];       //輸出小數點后第二位
  130.    // Delay(4); P2=P2|0xf0;
  131.    }
  132.   

  133.   if(fg==1)  //溫度為負時顯示的數據
  134.    { w1=w2=w3=w4=1;
  135.    w1=0;
  136.     P3=seg7code[10];           //負號
  137.     Delay(15);  
  138.     w1=1;
  139.     w2=0;
  140.     P3=seg7code[tem%100/10]|0x80; //輸出個位數和小數點
  141.     Delay(15);
  142.     w2=1;
  143.     w3=0;
  144.    
  145.     P3=seg7code[tem%10];   //輸出小數第1位
  146.     Delay(15);
  147.     w3=1;
  148.     w4=0;
  149.    
  150.     P3=seg7code[11];//輸出c
  151.     Delay(15);
  152.    w1=w2=w3=w4=1;
  153.     //P0=seg7code[xiaoshu];       //輸出小數點后第一位
  154.    // Delay(4); P2=P2|0xf0;
  155.    }
  156. }
  157. */

  158. main()
  159. {fg=0;
  160.   led=0;
  161.   led1=0;
  162.    P3M0=0x00;
  163.    P3M1=0x00;//P3口推挽
  164.   // P1M0=0x00;
  165.   // P1M1=0x00;

  166.   while(1)
  167.    {
  168. for(k=0;k<100;k++)
  169. {Delay(15);
  170.     ReadTemperature();
  171.    // Led();
  172.     Delay(15);
  173.     if(tem>=400)//風扇1啟動溫度40
  174.      {led=1;
  175.         }
  176.     if(tem>=500)//風扇2啟動溫度50
  177.      {led1=1;
  178.         }


  179. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料下載(含仿真與源碼):
1820帶溫度控制104e.rar (98.84 KB, 下載次數: 94)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2017-4-30 17:43 | 顯示全部樓層
好資料,51黑有你更精彩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日一区二区三区 | 精品欧美乱码久久久久久 | 精品视频久久久 | 男人天堂视频在线观看 | 精品国产乱码一区二区三 | 国产在线精品一区 | 亚洲人成在线观看 | 国产精品久久久久久亚洲调教 | 久久中文字幕视频 | 每日更新av | 国产日韩欧美在线播放 | 亚洲视频在线免费观看 | 福利一区二区 | 欧洲精品在线观看 | 操人网站 | 欧美精三区欧美精三区 | 在线日韩视频 | 色综合一区二区 | 亚洲成人午夜在线 | 一区二区三区中文字幕 | 黄色一级毛片免费看 | 99久久中文字幕三级久久日本 | 日韩一区二区在线视频 | 免费的日批视频 | 色资源在线 | 久草视频在线播放 | 最新日韩欧美 | 日韩欧美在线观看 | 啪啪毛片| 性做久久久久久免费观看欧美 | 国产二区三区 | 日韩视频三区 | 中文字幕99| 日本 欧美 国产 | 欧美国产日韩精品 | 免费久| 深夜福利亚洲 | 国产精品视频区 | 欧美精品一区二区在线观看 | a级大片免费观看 | 美女三区 |