找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神为我解释一下下边这个程序,为什么12二极管循环亮啊

[复制链接]
跳转到指定楼层
楼主
ID:69437 发表于 2014-11-25 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
sbit D1=P1^0;
sbit D2=P1^1;
unsigned int i;
void main()
{
        while(1)
        {   i=50000;
                        while(i--)
                         D1=0;
                          D2=0;
                        while(i--)
                        D1=1;
                        D2=1;
        }
}

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

使用道具 举报

沙发
ID:66840 发表于 2014-11-25 22:14 | 只看该作者
void main() {         while(1)//主循环          {   i=50000;//i赋值                          while(i--)//延时函数                          D1=0;//P1^0为低电平 ,led亮                            D2=0;                         while(i--)                         D1=1;//P1^0为高电平,led灭                          D2=1;         } }

评分

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

查看全部评分

回复

使用道具 举报

板凳
ID:66840 发表于 2014-11-25 22:14 | 只看该作者
void main()
{
        while(1)//主循环
        {   i=50000;//i赋值
                        while(i--)//延时函数
                         D1=0;//P1^0为低电平 ,led亮
                          D2=0;
                        while(i--)
                        D1=1;//P1^0为高电平,led灭
                        D2=1;
        }
}
回复

使用道具 举报

地板
ID:19715 发表于 2014-11-25 22:31 | 只看该作者
本帖最后由 明白 于 2014-11-25 22:35 编辑

#include<reg52.h>
sbit D1=P1^0;
sbit D2=P1^1;
unsigned int i;
void main()
{
        while(1)
        {   i=50000;
                        while(i--)//这里从50000,一直减到~1=65535
                         D1=0;
                          D2=0;
                        while(i--)/这里从65535,一直减到~1=65535
                        D1=1;
                        D2=1;
        }
}
也就是。。。
  D1=0;
  D2=0;
  延时:【 while(i--)/这里从65535,一直减到~1=65535】
D1=1;
D2=1;
  延时:【 while(i--)//这里从50000,一直减到~1=65535】

回复

使用道具 举报

5#
ID:65643 发表于 2014-11-26 17:32 | 只看该作者
#include <reg52.h>
sbit D1 = P1^0;
sbit D2 = P1^1;

unsigned int i;

void main()
{
        while(1)
        {   
                i=50000;

                while(i--)           // i 从 50000 减到0前, D1 一直亮 (此时 D2 是灭的)
                        D1=0;

                        D2=0;     // D2 亮

                while(i--)        // i 从 50000 减到0前, D1 一直灭 (此时 D2 是亮的)
                        D1=1;

                        D2=1;  // D2 灭
        }
}
由些看 :  D1亮( 50000 减到0)→ D2 亮,D1灭( 50000 减到0)→ D2 灭,D1亮( 50000 减到0) 如此循环。
所以 D1、D2 循环亮

评分

参与人数 1威望 +8 黑币 +8 收起 理由
aabbcc + 8 + 8 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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