- #include <reg52.h>
-
- // 版本1引脚
- sbit KEY_A1 = P3^5;
- sbit KEY_B1 = P3^4;
-
- // 版本0引脚
- sbit KEY_A0 = P3^4;
- sbit KEY_B0 = P3^5;
-
- // 版本检测脚
- sbit VERSION_PIN = P1^0;
-
- // 按键函数
- bit KeyA_V1(void){return KEY_A1;}
- bit KeyA_V0(void){return KEY_A0;}
- bit KeyB_V1(void){return KEY_B1;}
- bit KeyB_V0(void){return KEY_B0;}
-
- // 函数指针(动态绑定)
- bit (*KEY_A)(void);
- bit (*KEY_B)(void);
-
- // 初始化:上电绑定一次
- void Init_Key(void)
- {
- if(VERSION_PIN)
- {
- KEY_A = KeyA_V1;
- KEY_B = KeyB_V1;
- }
- else
- {
- KEY_A = KeyA_V0;
- KEY_B = KeyB_V0;
- }
- }
-
- // 主程序
- void main(void)
- {
- Init_Key();
- while(1)
- {
- if(KEY_A() == 0){} // 按键A
- if(KEY_B() == 0){} // 按键B
- }
- }
复制代码 如题:我想开机上电的时候根据引脚电平状态切换按键,不知道这样能不能行,有大佬这样搞过的吗?发帖如果板块不对请管理移动谢谢
|