找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5293|回复: 5
收起左侧

如何用按键控制流水灯正向反向亮?求单片机代码思路

[复制链接]
ID:847352 发表于 2020-11-22 17:06 来自手机 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

ID:836364 发表于 2020-11-22 19:54 | 显示全部楼层
用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向
回复

使用道具 举报

ID:845694 发表于 2020-11-22 20:17 来自手机 | 显示全部楼层
123456czst 发表于 2020-11-22 19:54
用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向

取一个引脚连接按键,弄一个延时程序。按一下灯取反
回复

使用道具 举报

ID:846569 发表于 2020-11-22 23:09 | 显示全部楼层
首先按键的状态用一个标志位寄存(比方说按下就取反一次),
然后简单的代码就是通过这个标志位去写流水灯的流动方向(比方说等于0就右移,等于1就左移)
流水灯代码方便,我这边假设是P1口高电平亮,并且P1上有8个灯:

if(flag == 1){
  P1 << 1;
  if(P1 & 0xFF == 0) P1 = 0X01; //P1重置
}
else
{
  P1 >> 1;
  if(P1 & 0xFF == 0) P1 = 0X80; //P1重置

}

差不多就这样,有问题楼主再问
回复

使用道具 举报

ID:180919 发表于 2020-11-22 23:19 | 显示全部楼层
实现这个功能不同的程序玩法都不一样。
比如2楼的“用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向”
也可以用两个子程序,按键运行程序1,按键2运行程序2
回复

使用道具 举报

ID:847574 发表于 2020-11-23 00:24 | 显示全部楼层
最基础的就是让第一个灯亮了让别的灯灭,在使用延时到第二个,以此推下去
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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