找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机流水灯程序逻辑问题,请大侠帮解释一下。谢谢!

查看数: 3022 | 评论数: 3 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-9-18 22:38

正文摘要:

为什么会出现如下情况?我是个单片机初学者,刚学习编了这个流水灯个程序,为什么mian程序中的n在for循环中n<10,而在if(n==9)才能正常使8只发光二极管成为流水运动,若换成n<9与if(n==8)或者其他数值都不正 ...

回复

ID:398758 发表于 2018-9-19 16:39

你好!还想麻烦解释一下这些定义。谢谢!

#define SETBIT(b, n)        ((b) |= (1 << (n)))
#define CLRBIT(b, n)        ((b) &= ~(1 << (n)))
#define CHKBIT(b, n)        ((b) & (1 << (n)))
ID:398758 发表于 2018-9-19 10:44
HC6800-ES-V2.0 发表于 2018-9-19 09:54
你的问题,在于重复的和不重复的内容设计不合理,所以才多了那么多的循环。
我改了一下,你看看,共同学习 ...

谢谢!
ID:164602 发表于 2018-9-19 09:54
你的问题,在于重复的和不重复的内容设计不合理,所以才多了那么多的循环。
我改了一下,你看看,共同学习。
void main()
{
   uchar n;
   P2 = 0xff;
   delay(250);
   while(1)
   {
      for(n=0; n<8; n++)
      {
          P2 = (P2<<1);
          delay(250);
      }
          P2=0xff;
          delay(250);
   }
}

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

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

Powered by 单片机教程网

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