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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3928|回復: 0
打印 上一主題 下一主題
收起左側

模擬風扇控制系統源碼-藍橋杯例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:292707 發表于 2018-3-16 12:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/***************************************
項目名稱:模擬風扇控制系統

實現功能:通過按鍵控制風扇的轉動速度和定時時間,
          數碼管實時顯示風扇的工作模式,動態倒計時顯示剩余的定時時間

實現功能:1.S4定義為工作模式切換按鍵,每次按下S4,設備循環切換三種工作模式

                  2.S5 定義為“定時按鍵”每次按下 S5,定時時間增加 1 分鐘,設備的剩余
            工作時間重置為當前定時時間,重新開始倒計時
                  
                  3.S6 定義為“停止”按鍵,按下 S6 按鍵,立即清零剩余工作時間,PWM
            信號停止輸出,直到通過 S5 重新設置定時時間
                  
                  4.S7 定義為“室溫”按鍵,按下 S7,通過數碼管顯示當前室溫
                  
                  5.設備具有“睡眠風”、“自然風”和“常風”三種工作模式可以通過按鍵切換,通過
            單片機 P34 引腳輸出脈寬調制信號控制電機運行狀態,信號頻率為 1KHz。
                  
                  6.“睡眠風”模式下,L1 點亮,“自然風”模式下 L2 點亮,“常風”模式下 L3 點亮;
            按下停止按鍵或倒計時結束時,LED 全部熄滅
****************************************/

單片機源程序如下:
  1. #include<reg51.h>
  2. #include<absacc.h>
  3. #include<intrins.h>
  4. #include "ds18b20.h"
  5. #define uchar unsigned char
  6. #define uint  unsigned int

  7. sbit   pwm=P3^4;   //  pwm
  8. sbit   S4=P3^3;    //  模式
  9. sbit   S5=P3^2;    //  定時
  10. sbit   S6=P3^1;    //  停止
  11. sbit   S7=P3^0;    //  室溫

  12. #define led_addr        XBYTE[0x9fff]
  13. #define ziwei_addr      XBYTE[0xdfff]
  14. #define zixing_addr     XBYTE[0xffff]
  15. #define dalindun_addr   XBYTE[0xbfff]

  16. uchar  wd=0,ms=1,dsw,ds,kk=20;
  17. uchar  pwmh,pwml;

  18. uchar code zixing[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
  19.                      0x7D,0x07,0x7F,0x6F,0x77,0x7C,
  20.                                          0x39,0x5E,0x79,0x71,0x76,0x00,0x40};
  21. uchar code ziwei[]={0x01,0x02,0x04,0x08,
  22.                     0x10,0x20,0x40,0x80};


  23. void delay(uint i)                                 //延時函數
  24. {
  25.     unsigned int j,k;
  26.     for(j=0;j<i;j++)
  27.        for(k=0;k<1200;k++);
  28. }


  29. void tc0int(void)
  30. {
  31.          TMOD=0x01;
  32.      TH0=0x3C;
  33.      TL0=0x0B0;
  34.      EA=1;
  35.      ET0=1;
  36.      TR0=1;
  37. }

  38. void tc0(void) interrupt 1 using 0
  39. {

  40.      TH0=(65536-50000)/256;
  41.      TL0=(65536-50000)%256;
  42.          kk--;
  43.          if(kk==0)
  44.             {
  45.                    kk=20;
  46.                    if(ds==0)
  47.                       ds=0;
  48.                 else
  49.                       ds--;
  50.                    }
  51. }


  52. void tc1int(void)
  53. {
  54.          TMOD=0x10;
  55.      TH1=pwml/256;
  56.      TL1=pwml%256;
  57.      EA=1;
  58.      ET1=1;
  59.      TR1=1;
  60. }

  61. void tc1(void) interrupt 3 using 1
  62. {
  63.       uchar  flag;
  64.           flag=~flag;
  65.           if(flag)
  66.         {        
  67.             TH1=pwmh/256;
  68.             TL1=pwmh%256;
  69.         }
  70.       else
  71.         {
  72.             TH1=pwml/256;
  73.             TL1=pwml%256;
  74.         }
  75.       pwm=!pwm;
  76. }


  77. void disp(void)
  78. {
  79.            uchar disbuf[8];
  80.         uchar m,temperature;

  81.         temperature=rd_temperature();
  82.         if(ds==0)
  83.            TR1=0;
  84.         else
  85.            TR1=1;
  86.         if(wd==0)
  87.       {
  88.                   disbuf[0]=18;
  89.               disbuf[1]=ms;
  90.          disbuf[2]=18;
  91.          disbuf[3]=17;
  92.          disbuf[4]=0;
  93.          disbuf[5]=ds/100;
  94.          disbuf[6]=(ds/10)%10;
  95.          disbuf[7]=ds%10;

  96.                 for(m=0;m<8;m++)
  97.                     {
  98.                                                                   
  99.                        zixing_addr=~zixing[disbuf[m]];
  100.                        ziwei_addr=ziwei[m];
  101.                        delay(1);
  102.                             zixing_addr=0xff;
  103.                                          
  104.                     }
  105.             
  106.             
  107.           }
  108.         if(wd==1)
  109.           {
  110.               disbuf[0]=18;
  111.                disbuf[1]=4;
  112.           disbuf[2]=18;
  113.           disbuf[3]=17;
  114.           disbuf[4]=17;
  115.           disbuf[5]=temperature/10;
  116.           disbuf[6]=temperature%10;
  117.           disbuf[7]=12;

  118.                  for(m=0;m<8;m++)
  119.                     {
  120.                                                                   
  121.                        zixing_addr=~zixing[disbuf[m]];
  122.                        ziwei_addr=ziwei[m];
  123.                        delay(1);
  124.                             zixing_addr=0xff;
  125.                                          
  126.                     }

  127.            }

  128.    if(ms==1)
  129.           led_addr=0xFE;
  130.    if(ms==2)
  131.           led_addr=0xFD;
  132.    if(ms==3)
  133.           led_addr=0xFB;
  134.    if(ds==0)
  135.           led_addr=0xFF;


  136. }

  137. void key_read(void)
  138. {
  139.            if(S4==0)                                 
  140.         {
  141.                    delay(1);
  142.                    if(S4==0)
  143.                          {
  144.                        while(S4==0)
  145.                                    disp();
  146.                            ms++;
  147.                                    if(ms==4)
  148.                                       ms=1;
  149.                          }
  150.                 }

  151.          if(S5==0)                                 
  152.         {
  153.                    delay(1);
  154.                    if(S5==0)
  155.                          {
  156.                        while(S5==0)
  157.                                    disp();
  158.                            dsw++;
  159.                                    if(dsw==3)
  160.                                       dsw=0;
  161.                                    ds=dsw*60;
  162.                          }         
  163.                 }
  164.                         
  165.          if(S6==0)                                 
  166.         {
  167.                    delay(1);
  168.                    if(S6==0)
  169.                          {
  170.                        while(S6==0)                                       
  171.                                           disp();
  172.                                           ds=0;                                 
  173.                          }                 
  174.                  }

  175.          if(S7==0)                                 
  176.         {
  177.                    delay(1);
  178.                    if(S7==0)
  179.                          {
  180.                        while(S7==0)                                                               
  181.                                           disp();
  182.                                           wd=!wd;
  183.                          }                 
  184.                  }         
  185. }

  186. void pwmsc(void)
  187. {
  188.          if(ms==1)
  189.             pwmh=65536-200;
  190.                 pwml=65536-800;

  191.      if(ms==2)
  192.             pwmh=65536-300;
  193.                 pwml=65536-700;

  194.      if(ms==3)
  195.             pwmh=65536-700;
  196.                 pwml=65536-300;

  197. }

  198. void main(void)
  199. {   

  200.         tc0int();
  201.         tc1int();
  202.     while(1)
  203.      {         
  204.          
  205.              disp();
  206.              key_read();
  207.              pwmsc();

  208.      }

  209. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清无av久久 | 影视先锋av资源噜噜 | 91九色porny首页最多播放 | 91免费入口 | 欧美成年人网站 | 国产美女特级嫩嫩嫩bbb片 | 91av视频在线观看 | 美女毛片| 国产精品无| 国产精品成人国产乱一区 | 精品一区二区电影 | 国产精品一区二区在线播放 | 亚洲视频在线免费观看 | 久色视频在线 | 国产在线精品一区二区三区 | 激情91| 久久久美女 | 久久久久香蕉视频 | 欧美一区二区三区四区视频 | 91精品久久久久久久久久入口 | 99国内精品 | 亚洲成人av | 亚洲h色| 综合久久综合久久 | 精品国产欧美一区二区 | 国产在线不卡视频 | 久久亚洲欧美日韩精品专区 | 免费国产一区 | 国产欧美在线 | 91久久精品国产91久久 | 成人免费一区二区 | 97久久久久久久久 | 亚洲网在线 | 高清av在线 | 国产97在线视频 | 久久久久久国产精品 | 欧美日韩精品综合 | 久久久久9999亚洲精品 | 色狠狠一区 | 国产精品久久久久久一区二区三区 | 精品视频在线免费观看 |