找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机驱动led灯0.2秒的闪烁频率能看出来闪吗?

[复制链接]
跳转到指定楼层
楼主
ID:524818 发表于 2019-6-9 09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
还是闪烁灯的问题,0.2秒的闪烁频率能看出来闪吗?在keil里仿真可以看到效果,写到单片机里看到效果是一直亮的,咋回事啊?附程序如下:
#include <at89x51.h>
sbit L1=P0^1;

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()
   {

   while(1)
   {

   L1=0;
   delay02s();

   L1=1;
   delay02s();

   }

   }

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

使用道具 举报

沙发
ID:332444 发表于 2019-6-9 10:24 | 只看该作者
你这延时时间过短了,给你改一下试看,把延时函数里面的前2个循环后面的分号去掉才对。
  1. #include <at89x51.h>
  2. sbit L1=P0^1;

  3. void delay02s(void)
  4.   {
  5.     unsigned char i,j,k;
  6.         for(i=20;i>0;i--)
  7.         for(j=20;j>0;j--)
  8.         for(k=248;k>0;k--);
  9.    }

  10.    void main()
  11.    {

  12.    while(1)
  13.    {

  14.    L1=0;
  15.    delay02s();

  16.    L1=1;
  17.    delay02s();

  18.    }

  19.    }
复制代码


循环后有分号说明是空循环,一个循环完成后再一个循环,20循环2次248循环一次总加起来太短。

回复

使用道具 举报

板凳
ID:94031 发表于 2019-6-9 10:52 | 只看该作者
影响因素有主体因素和客体因素两大类。主体因素主要有疲劳、缺氧、年龄和觉醒水平等。客体因素主要有光刺激强度、光刺激组成、光刺激的面积和光刺激视网膜的位置等。
回复

使用道具 举报

地板
ID:96682 发表于 2019-6-9 10:57 | 只看该作者
要看楼主烧录到哪种型号的 51 单片机,如 AT89X51 系列就没问题
回复

使用道具 举报

5#
ID:524818 发表于 2019-6-9 11:21 | 只看该作者
wc86110 发表于 2019-6-9 10:57
要看楼主烧录到哪种型号的 51 单片机,如 AT89X51 系列就没问题

有两块开发板  一个是STC11          一个是STC12的  都不行 是不是频率计算方法不一样?
回复

使用道具 举报

6#
ID:524818 发表于 2019-6-9 11:21 | 只看该作者
xianfajushi 发表于 2019-6-9 10:24
你这延时时间过短了,给你改一下试看,把延时函数里面的前2个循环后面的分号去掉才对。

谢谢 ,我试一下
回复

使用道具 举报

7#
ID:524818 发表于 2019-6-9 11:25 | 只看该作者
xianfajushi 发表于 2019-6-9 10:24
你这延时时间过短了,给你改一下试看,把延时函数里面的前2个循环后面的分号去掉才对。

去掉分号就好了,弄了一晚上也没弄明白错在哪,谢谢老师!
回复

使用道具 举报

8#
ID:561312 发表于 2019-6-12 23:14 | 只看该作者
前2个for循环后面的分号要去掉才对,放上分号后这两个循环就变成了两条语句了,从而达不到循环要求。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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