找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机控制LED请问延时除了累减嵌套循环,还有什么好方法没?

[复制链接]
跳转到指定楼层
楼主
ID:575020 发表于 2019-8-11 20:23 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我想做个点亮led灯1秒,暗10秒,循环10次程序停止,网上找了一些程序拼凑而成,我是新手还没入门呢,x的10次循环不知道怎么退出,延时循环一直用累减循环,会不会浪费cpu(mcu)资源、减少寿命,浪费电池电量。还有网上查的1s=1000000us,实测是255000us。
下面的程序,x的10次循环怎么退出啊,想运行10次就让单片机休息,停止工作,怕一直工作下去累坏了,后面加了return 0程序出错,while循环还不会写。

#include<reg52.h>

sbit LED0=P1^0;
void Delay_1s();
void Delay_10s();
unsigned int i,j,k;

void delay_1s()
{
   for(i=95;i>0;i--)
   for(j=26;j>0;j--)
   for(k=46;k>0;k--);
}

void delay_10s()
{
   unsigned int i,j,k;
   for(i=73;i>0;i--)
   for(j=249;j>0;j--)
   for(k=63;k>0;k--);
}

void main (void)
{
    int x;
    for (x=1; x<=10; x++)
  {
  LED0=0;
  Delay_1s();
  LED0=1;
  Delay_10s();
  }

}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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