找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 779|回复: 4
收起左侧

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

[复制链接]
ID:1048673 发表于 2022-10-22 08:28 | 显示全部楼层 |阅读模式
捕获.PNG 2.PNG 3.PNG
如何在此基础上,按下按键KEY2=P3^2,实现数码管一直加一,按下按键KEY2=P3^3后,实现停止加一。我经过反复实验,没有找到解决的办法,(只能做到按下按键加一,没办法做到按下一次按键后,一直加一)因为是初学者的缘故,很难想出合适的答案,希望各位大佬能够给予帮助。
回复

使用道具 举报

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. }
复制代码
回复

使用道具 举报

ID:1048693 发表于 2022-10-22 11:49 | 显示全部楼层
增加延时来判断,持续按下某按键多长时间后,在程序内持续加1
回复

使用道具 举报

ID:1048693 发表于 2022-10-22 11:50 | 显示全部楼层
在程序内加一个延时判断,当按键按下大于多长时间后,在程序内使数码管持续加1
回复

使用道具 举报

ID:384109 发表于 2022-10-22 14:29 | 显示全部楼层
按键判断,按键处理,都要做成单独的模块,增加相应的判断标志
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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