找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3474|回复: 7
收起左侧

程序的延时函数怎么理解,谁能解释一下吗?

[复制链接]
ID:64270 发表于 2014-9-1 09:04 | 显示全部楼层 |阅读模式
#include <AT89X51.H>
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
                            0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispcount;
  
void delay02s(void)
{
  unsigned char i,j,k;
  for(i=20;i>0;i--)
  for(j=20;j>0;j--)
  for(k=248;k>0;k--);
}
  
void main(void)
{
  while(1)
    {
      for(dispcount=0;dispcount<10;dispcount++)
        {
          P0=table[dispcount];
          delay02s();
        }
    }
}


上面程序的延时函数怎么理解,谁能解释一下吗?
回复

使用道具 举报

ID:63997 发表于 2014-9-1 10:36 | 显示全部楼层
相当于 cpu空转 248 * 20 *20 次 也就是 一个变量 减99200次所消耗的时间

评分

参与人数 1威望 +40 黑币 +40 收起 理由
admin + 40 + 40 在问答区 回答问题的奖励

查看全部评分

回复

使用道具 举报

ID:64270 发表于 2014-9-1 11:58 | 显示全部楼层
xueyunmicheng 发表于 2014-9-1 10:36
相当于 cpu空转 248 * 20 *20 次 也就是 一个变量 减99200次所消耗的时间

谢谢啊
回复

使用道具 举报

ID:51090 发表于 2014-9-1 16:31 | 显示全部楼层
延时程序的核心是
  for(i=20;i>0;i--)
  for(j=20;j>0;j--)
  for(k=248;k>0;k--);
这三句
也就是一共执行 了20*20*248次循环.
回复

使用道具 举报

ID:1 发表于 2014-9-1 16:32 | 显示全部楼层
这里有延时程序的详解:http://www.51hei.com/bbs/dpj-4711-1.html
回复

使用道具 举报

ID:64270 发表于 2014-9-2 15:30 | 显示全部楼层
xiaojuan 发表于 2014-9-1 16:31
延时程序的核心是
  for(i=20;i>0;i--)
  for(j=20;j>0;j--)

谢谢啊
回复

使用道具 举报

ID:64270 发表于 2014-9-2 15:30 | 显示全部楼层
admin 发表于 2014-9-1 16:32
这里有延时程序的详解:http://www.51hei.com/bbs/dpj-4711-1.html

谢谢啊
回复

使用道具 举报

ID:65837 发表于 2014-9-5 15:54 | 显示全部楼层
高手很多啊,学习了.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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