标题: 如何用按键控制流水灯正向反向亮?求单片机代码思路 [打印本页]

作者: 涛哇咔咔    时间: 2020-11-22 17:06
标题: 如何用按键控制流水灯正向反向亮?求单片机代码思路
如题

作者: 123456czst    时间: 2020-11-22 19:54
用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向
作者: hhj19990122    时间: 2020-11-22 20:17
123456czst 发表于 2020-11-22 19:54
用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向

取一个引脚连接按键,弄一个延时程序。按一下灯取反
作者: HSY666NB    时间: 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重置

}

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

作者: changhz    时间: 2020-11-22 23:19
实现这个功能不同的程序玩法都不一样。
比如2楼的“用一个变量记录按键按下的次数,例如button_count,用_crol_和_cror_函数控制流水灯的亮灭及流向”
也可以用两个子程序,按键运行程序1,按键2运行程序2

作者: yyyy99    时间: 2020-11-23 00:24
最基础的就是让第一个灯亮了让别的灯灭,在使用延时到第二个,以此推下去




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1