找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机制作—1秒延时程序 c语言

[复制链接]
跳转到指定楼层
楼主
ID:85192 发表于 2015-7-14 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/2016.03.28       ( E:\DPJ_C\1S_x.c )
#include <reg51.h>
void delay_ms(unsigned int ms)                        // 延时子程序
{   
  unsigned int a,b;
  for(a=ms;a>0;a--)
  for(b=123;b>0;b--);
}
void main ()
{
  while(1)
{
  delay_ms(1000); //1s 延时,数字即为多少毫秒  
  P1=~P1;
}
}

还有一个更简单的,补在这里。 每秒多了23us ,int 改为 char 。 如果用 int ,ms=1000,居然用了1.495S
//  2010 04 01 E:\DPJ_C\ms.c
#include <reg51.h>
void delay_ms(unsigned int ms)
{
  unsigned int a;
  while(ms--)     //while()内的ms不为0,即为真
  for(a=0;a<123;a++);
}
void main()
{
while(1)
  {
  delay_ms(1000);
  P1=~P1;
  }
}


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

使用道具 举报

沙发
ID:215533 发表于 2017-6-28 16:35 | 只看该作者
C语言程序求助
回复

使用道具 举报

板凳
ID:137736 发表于 2017-7-2 17:55 来自手机 | 只看该作者
用定时器中断精确延时
回复

使用道具 举报

地板
ID:159139 发表于 2017-7-7 18:38 来自手机 | 只看该作者
这种是要求不高时的延时程序,如要求高要用定时器。
回复

使用道具 举报

5#
ID:242547 发表于 2018-5-10 22:47 | 只看该作者
怎么算的啊?每次不是123*2个机器周期*1us=0.2ms吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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