找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机按下一次KEY1实现数码管一直加一,按下KEY2后,停止加一

查看数: 1409 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-10-22 08:28

正文摘要:

如何在此基础上,按下按键KEY2=P3^2,实现数码管一直加一,按下按键KEY2=P3^3后,实现停止加一。我经过反复实验,没有找到解决的办法,(只能做到按下按键加一,没办法做到按下一次按键后,一直加一)因为是初 ...

回复

ID:384109 发表于 2022-10-22 14:29
按键判断,按键处理,都要做成单独的模块,增加相应的判断标志
ID:1048693 发表于 2022-10-22 11:50
在程序内加一个延时判断,当按键按下大于多长时间后,在程序内使数码管持续加1
ID:1048693 发表于 2022-10-22 11:49
增加延时来判断,持续按下某按键多长时间后,在程序内持续加1
ID:1007932 发表于 2022-10-22 10:28
用循环,按key1让if条件为1,按key2让if条件为0,if条件要用中间变量。先判断key1,key2是否按下,按下则给中间变量赋相应的值,否则中间变量维持上一次的值,最后大循环。但key最好还是用外部中断。
大概是这样:
  1. while(1)
  2. {
  3.         if(key1==0) i=1;
  4.         if(key2==0) i=0;
  5.         if(i)
  6.         {
  7.                   display(number);
  8.                   number++;
  9.         }               
  10. }
复制代码

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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