标题: 单片机单键长按、短按选择项目 源程序 [打印本页]

作者: 不倒翁.WZT    时间: 2022-2-9 10:28
标题: 单片机单键长按、短按选择项目 源程序
经过验证是可行的
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P1^0;
sbit LED=P0;
uchar a=0;
uchar mode=0;            
void Key_block()
{
        static uint KeyTime=0;
        if(K1==0)
        {
                if(++KeyTime<=0)  
                  --KeyTime;   
                if(KeyTime==5000
                  mode=1;      
        }
        else  
        {
                if(20<=KeyTime && KeyTime<3000
                  mode=2;
                KeyTime=0;  
        }        
}
void Led_Flow()        
{
        uint speed=6000;  
        static uint temp;   
        if(++temp>=speed)   
        {
                temp=0;
                switch (mode)   
                {
                        case 1:
                                P0=~(0xFE<<a);
                                a=++a%8;      
                                break;        
                        case 2:         
                                P0=~(0xFE>>a);
                                a=++a%8;
                                break;      
               }
       }
}
void main()
{
        while (1)
        {
                Key_block();
                Led_Flow();
        }
}






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