⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.c

📁 单片机与a7105组成无线收发程序2.4G多通道
💻 C
字号:
/**********************************************************
;copyright		:shenzhen 
;filename		:key.c
;writeb			:dengyih
;describe		:按键扫描
;notice			:
;*********************************************************/

#include "..\header\key.h"


enum Key_Info Key_Value;		// 按键值

U8  Key_Old_Buf = MASK_KEY;

bit Key_Msg = 0;				// 处理按键消息标志
bit Have_Key_Push = 0;			// 按键按下标志



/**********************************************************
name:        key_scan
input:       none
output:	     none
describe:    按键扫描
notice:
creat date:  2008-6-10
creator:     dengyihong
**********************************************************/
void key_scan(void)
{
    U8 i = 0;
    U8 key_buf = 0;
    U8 temp_buf = 0;
    
    KEY_PIN_INPUT();
    delay_2us(10);
    key_buf = GET_KEY_VALUE();
    for(i=0; i<4; i++)
    {   
        delay_2us(1500);    	
        temp_buf = GET_KEY_VALUE();
        if(key_buf != temp_buf)
        {
            return;	
        }
    }
            
    if(key_buf != Key_Old_Buf)
    {
        if(key_buf != MASK_KEY)					// 新键按下
        {
            switch(key_buf)
            {
                case 0x70: 
                     Key_Value = SEND_KEY;		// send key
                break;
                       
                case 0xb0:  
                     Key_Value = ADD_KEY;		// + key
                break;
                    
                case 0xd0:  
                     Key_Value = DEC_KEY;		// - key
                break; 
                    
                case 0xe0:  
                     Key_Value = MODE_KEY;		// mode key
                break;                 
                                                                                  
                default:    
                     Key_Value = NONE_KEY;	
                break;
			}
			if(Key_Value != NONE_KEY)		// 是否有按键按下
			{
				Have_Key_Push = 1;
				Key_Old_Buf = key_buf;	
			}
		}
		else if(Have_Key_Push)				// 按键释放
		{
			Have_Key_Push = 0;
			Key_Old_Buf = MASK_KEY;
			switch(Key_Value)
			{
				case 0x04:
				case 0x03:
				case 0x02:
				case 0x01:
					 Key_Msg = 1 ;
				break; 
            			
				default:
					Key_Msg = 0;  
				break;             	
			}
		}   	
	}    	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -