标题: 单片机单个按钮(状态机)编程 [打印本页]

作者: zcy8520    时间: 2018-4-6 17:42
标题: 单片机单个按钮(状态机)编程
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^7;
//uchar mode;
//uint count;
void keyscan();
void main()
{
         P3=0xff;
        while(1)
        {
                ;
                //delay();
                keyscan();
                //inst();
                ;
  }
}
void keyscan()
{
         static uchar mode=0;
   static long  count=0;//2»¶¨òåÎa¾2쬱äá¿»áèçoΡ
        switch(mode)
        {
         case 0:
           {
                         if(key1==0)
                         {
                                mode=1;
       }
     }
                break;
                case 1:
                {
                 count++;
     if(count>50)       
                 {
                         count=0;
                         if(key1)
                         {
                                mode=0;
        }
                                else
                                {
                                mode=2;       
        }                       
     }                                        
                }
                 break;
           case 2:
                 {
                         count++;
                         if(count>10000)
                         {
                                 count=0;
                                 mode=4;
       }         
     }                         
                break;
                case 4:
                {
                        if(key1)
                        {
                        P1=0x01;
                        mode=0;
      }
                        else
                        {
                        P1=0x2;
                        mode=5;
      }
    }       
                break;
                case 5:
                {
                        if(key1)
                        {
                                mode=0;
      }
    }       
  }

}


作者: zcy8520    时间: 2018-4-6 17:58
短按P1输出1,长按P1输出2
作者: bhjyqjs    时间: 2018-7-26 16:18
写的不错,感谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1