找回密码
 立即注册
查看: 99|回复: 5

我想开机上电的时候根据引脚电平状态切换按键

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:585
  • 最近打卡:2026-07-05 02:31:03
已绑定手机

7

主题

128

回帖

1593

积分

金牌会员

积分
1593
发表于 2026-5-31 03:36:59 | 显示全部楼层 |阅读模式
  1. #include <reg52.h>
  2. // 版本1引脚
  3. sbit KEY_A1 = P3^5;
  4. sbit KEY_B1 = P3^4;
  5. // 版本0引脚
  6. sbit KEY_A0 = P3^4;
  7. sbit KEY_B0 = P3^5;
  8. // 版本检测脚
  9. sbit VERSION_PIN = P1^0;
  10. // 按键函数
  11. bit KeyA_V1(void){return KEY_A1;}
  12. bit KeyA_V0(void){return KEY_A0;}
  13. bit KeyB_V1(void){return KEY_B1;}
  14. bit KeyB_V0(void){return KEY_B0;}
  15. // 函数指针(动态绑定)
  16. bit (*KEY_A)(void);
  17. bit (*KEY_B)(void);
  18. // 初始化:上电绑定一次
  19. void Init_Key(void)
  20. {
  21.     if(VERSION_PIN)
  22.     {
  23.         KEY_A = KeyA_V1;
  24.         KEY_B = KeyB_V1;
  25.     }
  26.     else
  27.     {
  28.         KEY_A = KeyA_V0;
  29.         KEY_B = KeyB_V0;
  30.     }
  31. }
  32. // 主程序
  33. void main(void)
  34. {
  35.     Init_Key();
  36.     while(1)
  37.     {
  38.         if(KEY_A() == 0){} // 按键A
  39.         if(KEY_B() == 0){} // 按键B
  40.     }
  41. }
复制代码
如题:我想开机上电的时候根据引脚电平状态切换按键,不知道这样能不能行,有大佬这样搞过的吗?发帖如果板块不对请管理移动谢谢

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:120
  • 最近打卡:2026-07-05 08:00:11
已绑定手机

3

主题

180

回帖

857

积分

高级会员

积分
857
发表于 2026-5-31 08:09:00 | 显示全部楼层
楼主所述的引脚电平状态通常适用于拨码开关。按键有常态和暂态,不适合这样编程。拨码开关通常设置后不随便变更才需要作加电时识别。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:416
  • 最近打卡:2026-07-05 08:36:44
已绑定手机

81

主题

318

回帖

2479

积分

金牌会员

积分
2479
发表于 2026-5-31 08:10:17 | 显示全部楼层
看起来应该是好使的
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-07-04 00:01:55
已绑定手机

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-5-31 08:19:04 | 显示全部楼层
可能设置参数记录按键功能
根据引脚电平切换容易
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:299
  • 最近打卡:2026-07-04 00:01:55
已绑定手机

66

主题

808

回帖

3037

积分

论坛元老

DIY玩家

积分
3037
发表于 2026-5-31 08:22:08 | 显示全部楼层
wul*** 发表于 2026-5-31 08:09
楼主所述的引脚电平状态通常适用于拨码开关。按键有常态和暂态,不适合这样编程。拨码开关通常设置后不随便 ...

通过函数指针切换
让按键链接相应功能
永怀这学徒心
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:585
  • 最近打卡:2026-07-05 02:31:03
已绑定手机

7

主题

128

回帖

1593

积分

金牌会员

积分
1593
发表于 2026-5-31 16:22:18 | 显示全部楼层
谢谢大佬们指点,因为我是有2个模块他的脚位正好是相反的,我现在是烧录2个程序我想的是如果一个引脚的短接如果能解决就更完美了程序通用性更高一些
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-5 14:04 , Processed in 0.070444 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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