打印

求助大家一个问题,还望各位大佬帮忙解答,感谢

[复制链接]
1059|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大圣0|  楼主 | 2020-9-9 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近开始接触51单片机,想问大家一个关于led延时的问题,用的是11.0592MHz的晶振,下面是我的程序代码,
#include<reg51.h>

sbit led = P1^0;

unsigned int i,j;

void main()
{
        while(1)
        {
                led = 0;
                        for(i=0;i<1000;i++)
                        for(j=0;j<110;j++);
                led = 1;
                        for(i=0;i<1000;i++)
                        for(j=0;j<110;j++);
        }
}
实现的功能是亮1秒,再灭1秒。我不太明白,还望大家指点一下,感谢!

使用特权

评论回复

相关帖子

沙发
tyw| | 2020-9-9 17:04 | 只看该作者
本帖最后由 tyw 于 2020-9-9 17:25 编辑

#include<reg51.h>

sbit led = P1^0;

unsigned int i,j;

void main()
{
        while(1)
        {
                led = 0;                                  ;开灯
                        for(i=0;i<1000;i++)       ;内循环 i+1 1000次, 每次9us, 1000次=9ms   9us由系统时钟决定
                        for(j=0;j<110;j++);       ;外循环j+1 110次, 每次9ms, 110次=1s
                led = 1;                                  ;关灯
                        for(i=0;i<1000;i++)       ;内循环 i+1 1000次, 每次9us, 1000次=9ms   9us由系统时钟决定
                        for(j=0;j<110;j++);       ;外循环j+1 110次, 每次9ms, 110次=1s
        }
}

使用特权

评论回复
板凳
gaobq| | 2020-9-9 17:19 | 只看该作者
keil是不是有个软件模拟功能,看以看运行了多长时间,好久不用,不知还有没有

使用特权

评论回复
地板
大圣0|  楼主 | 2020-9-9 17:26 | 只看该作者
tyw 发表于 2020-9-9 17:04
#include

sbit led = P1^0;

兄弟,那个9us,是1/f?,那也是0.09us呀

使用特权

评论回复
评论
tyw 2020-9-9 17:32 回复TA
汇编语言能精确计算共几条指令,耗时多少,C语言就算勿清爽了,哈哈 
tyw 2020-9-9 17:29 回复TA
for(i=0;i<1000;i++) 语句执行需要好几个时钟周期,我这里是估算的. 
5
tyw| | 2020-9-9 17:39 | 只看该作者
大圣0 发表于 2020-9-9 17:26
兄弟,那个9us,是1/f?,那也是0.09us呀





使用特权

评论回复
评论
大圣0 2020-9-10 08:42 回复TA
非常感谢 
6
DavidDP| | 2020-9-9 18:55 | 只看该作者
这个可以用仿真工具调试一下,就明白了是怎么回事了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

97

帖子

0

粉丝