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

QQ登錄

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

搜索
查看: 3283|回復(fù): 1
收起左側(cè)

自創(chuàng)電風(fēng)扇調(diào)速系統(tǒng)(僅按鍵選擇三種速度-函數(shù)調(diào)用)含單片機(jī)程序

[復(fù)制鏈接]
ID:421582 發(fā)表于 2018-11-15 15:46 | 顯示全部樓層 |閱讀模式
風(fēng)速選擇(僅按鍵選擇三種速度-函數(shù)調(diào)用),目前并不完善,還望高手們指點(diǎn)。

單片機(jī)源程序如下:
  1. /***********************************************************
  2. 文件名:FanSpeedControl.c
  3. 作者:  Puqingmin
  4. 描述:  風(fēng)扇的風(fēng)速選擇控制(按鍵"SPEED/ON"選擇三種速度)
  5. ***********************************************************/
  6.   #include <reg51.h>                                                                    //包含頭文件
  7.   
  8.   sbit P3_0=P3^0;                                                                             //P3.0引腳控制風(fēng)扇高速運(yùn)行
  9.   sbit P3_1=P3^1;                                                                         //P3.1引腳控制風(fēng)扇中速運(yùn)行
  10.   sbit P3_3=P3^3;                                                                             //P3.3引腳控制風(fēng)扇低速運(yùn)行

  11.   sbit P1_7=P1^7;                                                     //定義可位尋址的變量P1_7                                 
  12.   sbit P3_5=P3^5;                                                                               //定義可位尋址的變量P3_5
  13.   sbit P3_7=P3^7;                                                                                                 //定義可位尋址的變量P3_7

  14.   #define SpeedOrONChoiceKey  ((P1_7==1)&&(P3_5==1)&&(P3_7==0))         //宏定義“風(fēng)扇開(kāi)及風(fēng)速選擇”按鍵
  15.   #define FanOffKey                   ((P1_7==0)&&(P3_5==1)&&(P3_7==1))         //宏定義“風(fēng)扇關(guān)”按鍵
  16.                                                                                                 


  17.   unsigned char  FlagSpeedChoice=0;                                             //定義風(fēng)速選擇控制變量
  18.   unsigned int   Counter=0;                                                 //定義全局變量用于計(jì)數(shù)

  19. /**********************************************************
  20. 函數(shù)名:Delay_ms
  21. 描述:  延時(shí)kms子程序  
  22. 輸入:  無(wú)
  23. 輸出:  無(wú)
  24. 返回:  無(wú)
  25. **********************************************************/
  26. void Delay_ms(unsigned int k)                        
  27. {
  28.         unsigned char i;
  29.         while(k--)
  30.         {
  31.                 for(i=0;i<125;i++);        
  32.         }                                                                                             
  33. }
  34. /**********************************************************
  35. 函數(shù)名:KeyChoiceControl
  36. 描述:  按鍵掃描函數(shù)  
  37. 輸入:  無(wú)
  38. 輸出:  無(wú)
  39. 返回:  無(wú)
  40. **********************************************************/
  41. void KeyChoiceControl(void)
  42. {
  43.             /*----以下程序掃描“SPEED/ON”鍵----*/
  44.             if(SpeedOrONChoiceKey)                                                  //“SPEED/ON”鍵被按下
  45.             {
  46.               Delay_ms(10);                                                                 //延時(shí)10ms
  47.               if(SpeedOrONChoiceKey)                                                 //再次判斷風(fēng)速調(diào)節(jié)鍵是否被按下
  48.               {
  49.                while(SpeedOrONChoiceKey);                                 //等待按鍵松開(kāi)
  50.                    ++FlagSpeedChoice;
  51.                    if(FlagSpeedChoice>3)
  52.                       FlagSpeedChoice=1;
  53.               }
  54.             }
  55. }
  56. /**********************************************************
  57. 函數(shù)名:FanSpeedControl
  58. 描述:  速度選擇控制函數(shù)  
  59. 輸入:  無(wú)
  60. 輸出:  無(wú)
  61. 返回:  無(wú)
  62. **********************************************************/
  63. void FanSpeedControl(void)
  64. {

  65.             /*----以下程序選擇風(fēng)扇的速度----*/
  66.            switch(FlagSpeedChoice)
  67.            {
  68.               case 1:
  69.                   {
  70.                         P3_3=0;
  71.                                 P3_1=1;
  72.                                 P3_0=1;
  73.                         break;
  74.                   }
  75.                   case 2:
  76.                   {
  77.                               P3_3=1;
  78.                                 P3_1=0;
  79.                                 P3_0=1;        
  80.                         break;
  81.                   }
  82.                   case 3:
  83.                   {
  84.                                   P3_3=1;
  85.                                 P3_1=1;
  86.                                 P3_0=0;        
  87.                         break;   
  88.               }
  89.            }
  90. }
  91. /**********************************************************
  92. 函數(shù)名:main
  93. 描述:  主函數(shù)  
  94. 輸入:  無(wú)
  95. 輸出:  無(wú)
  96. 返回:  無(wú)
  97. **********************************************************/
  98.   void main(void)
  99.   {
  100.          P3=0xFF;                                                                               //初始化P3口
  101.          P1=0xFF;                                                                               //初始化P1口
  102.          while(1)
  103.          {
  104.            KeyChoiceControl();
  105.            FanSpeedControl();
  106.          }
  107.   }
復(fù)制代碼

所有資料51hei提供下載:
風(fēng)速選擇(僅按鍵選擇三種速度-函數(shù)調(diào)用)-3.zip (13.27 KB, 下載次數(shù): 47)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:458240 發(fā)表于 2019-1-4 02:06 | 顯示全部樓層
謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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