找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3064|回复: 1
收起左侧

自创电风扇调速系统(仅按键选择三种速度-函数调用)含单片机程序

[复制链接]
ID:421582 发表于 2018-11-15 15:46 | 显示全部楼层 |阅读模式
风速选择(仅按键选择三种速度-函数调用),目前并不完善,还望高手们指点。

单片机源程序如下:
  1. /***********************************************************
  2. 文件名:FanSpeedControl.c
  3. 作者:  Puqingmin
  4. 描述:  风扇的风速选择控制(按键"SPEED/ON"选择三种速度)
  5. ***********************************************************/
  6.   #include <reg51.h>                                                                    //包含头文件
  7.   
  8.   sbit P3_0=P3^0;                                                                             //P3.0引脚控制风扇高速运行
  9.   sbit P3_1=P3^1;                                                                         //P3.1引脚控制风扇中速运行
  10.   sbit P3_3=P3^3;                                                                             //P3.3引脚控制风扇低速运行

  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))         //宏定义“风扇开及风速选择”按键
  15.   #define FanOffKey                   ((P1_7==0)&&(P3_5==1)&&(P3_7==1))         //宏定义“风扇关”按键
  16.                                                                                                 


  17.   unsigned char  FlagSpeedChoice=0;                                             //定义风速选择控制变量
  18.   unsigned int   Counter=0;                                                 //定义全局变量用于计数

  19. /**********************************************************
  20. 函数名:Delay_ms
  21. 描述:  延时kms子程序  
  22. 输入:  无
  23. 输出:  无
  24. 返回:  无
  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. 函数名:KeyChoiceControl
  36. 描述:  按键扫描函数  
  37. 输入:  无
  38. 输出:  无
  39. 返回:  无
  40. **********************************************************/
  41. void KeyChoiceControl(void)
  42. {
  43.             /*----以下程序扫描“SPEED/ON”键----*/
  44.             if(SpeedOrONChoiceKey)                                                  //“SPEED/ON”键被按下
  45.             {
  46.               Delay_ms(10);                                                                 //延时10ms
  47.               if(SpeedOrONChoiceKey)                                                 //再次判断风速调节键是否被按下
  48.               {
  49.                while(SpeedOrONChoiceKey);                                 //等待按键松开
  50.                    ++FlagSpeedChoice;
  51.                    if(FlagSpeedChoice>3)
  52.                       FlagSpeedChoice=1;
  53.               }
  54.             }
  55. }
  56. /**********************************************************
  57. 函数名:FanSpeedControl
  58. 描述:  速度选择控制函数  
  59. 输入:  无
  60. 输出:  无
  61. 返回:  无
  62. **********************************************************/
  63. void FanSpeedControl(void)
  64. {

  65.             /*----以下程序选择风扇的速度----*/
  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. 函数名:main
  93. 描述:  主函数  
  94. 输入:  无
  95. 输出:  无
  96. 返回:  无
  97. **********************************************************/
  98.   void main(void)
  99.   {
  100.          P3=0xFF;                                                                               //初始化P3口
  101.          P1=0xFF;                                                                               //初始化P1口
  102.          while(1)
  103.          {
  104.            KeyChoiceControl();
  105.            FanSpeedControl();
  106.          }
  107.   }
复制代码

所有资料51hei提供下载:
风速选择(仅按键选择三种速度-函数调用)-3.zip (13.27 KB, 下载次数: 47)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:458240 发表于 2019-1-4 02:06 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表