标题: 单片机驱动led灯0.2秒的闪烁频率能看出来闪吗? [打印本页]

作者: cphnkj188    时间: 2019-6-9 09:55
标题: 单片机驱动led灯0.2秒的闪烁频率能看出来闪吗?
还是闪烁灯的问题,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();

   }

   }


作者: xianfajushi    时间: 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循环一次总加起来太短。


作者: xuyaqi    时间: 2019-6-9 10:52
影响因素有主体因素和客体因素两大类。主体因素主要有疲劳、缺氧、年龄和觉醒水平等。客体因素主要有光刺激强度、光刺激组成、光刺激的面积和光刺激视网膜的位置等。
作者: wc86110    时间: 2019-6-9 10:57
要看楼主烧录到哪种型号的 51 单片机,如 AT89X51 系列就没问题
作者: cphnkj188    时间: 2019-6-9 11:21
wc86110 发表于 2019-6-9 10:57
要看楼主烧录到哪种型号的 51 单片机,如 AT89X51 系列就没问题

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

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

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

去掉分号就好了,弄了一晚上也没弄明白错在哪,谢谢老师!
作者: 雲—玺    时间: 2019-6-12 23:14
前2个for循环后面的分号要去掉才对,放上分号后这两个循环就变成了两条语句了,从而达不到循环要求。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1