找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2658|回复: 5
打印 上一主题 下一主题
收起左侧

能帮我看看这个单片机程序如何跳出这个循环?

[复制链接]
跳转到指定楼层
楼主
ID:432386 发表于 2018-11-25 14:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#include <intrins.h>
unsigned int a,i;
void delay(unsigned int i)
{
        unsigned int j;
        unsigned char k;
        for(j=i;j>0;j--)
                for(k=112;k>0;k--);
}

void left()
{        
    P1=0xfe;
    for(i=0;i<8;i++)
        {
            delay(300);
                P1=_crol_(P1,1);   //P1逐步左移一位。

        }
}

void main()
{
for(a=0;a<8;a++)
{
left();
}
P1=0x00;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2018-11-25 15:40 | 只看该作者
你要跳出那个循环,都能跳出啊。
回复

使用道具 举报

板凳
ID:404160 发表于 2018-11-25 16:26 | 只看该作者
能跳出循环。但当main()里的a大于8后,“死机”
回复

使用道具 举报

地板
ID:239611 发表于 2018-11-25 17:06 | 只看该作者
建议不要把循环变量定义成全局变量。
你定义了一个全局变量i, 又在delay()函数中用了一形参i,你知道你用的i是多少吗?
回复

使用道具 举报

5#
ID:155507 发表于 2018-11-25 18:01 | 只看该作者
这个单片机程序  加while(1); 可以跳出这个循环
void main()
{
   for(a=0;a<8;a++)
  {
    left();
  }
  P1=0x00;
  while(1); //加 <------
}

回复

使用道具 举报

6#
ID:432952 发表于 2018-11-25 18:18 | 只看该作者

建议不要把循环变量定义成全局变量。
你定义了一个全局变量i, 又在delay()函数中用了一形参i,你知道你用的i是多少吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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