发光二极管和蜂鸣器

2019-07-15 23:14发布

//8个发光管来回流动,每个管亮100ms,流动时让蜂鸣器发出“滴滴”声。
//烧进去之后却与期望不符合,灯一直亮,蜂鸣器也一直响,不知道怎么搞了。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P1^4;
void yanshi(uint);
void main()
{
  uchar c,i;
  while(1)
  {
          c=0xfe;
        for(i=8;i>0;i--)
        {
          P0=c;
          beep=0;
          yanshi(50);
          beep=1;
          yanshi(50);
          c=_crol_(c,1);
        }
        c=0x7f;
        for(i=8;i>0;i--)
        {
          P0=c;
          beep=0;
          yanshi(50);
          beep=1;
          yanshi(50);
          c=_cror_(c,1);
        }
  }
}
void yanshi(uint z)
{
   uint a,b;
   for(a=z;a>0;a--);
      for(b=110;b>0;b--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
Enzo
1楼-- · 2019-07-16 01:43
你BEEP=0只有50MS的时间 你能分辨出来吗?
~___~_绿豆娃
2楼-- · 2019-07-16 05:42
 精彩回答 2  元偷偷看……
jilfuj596
3楼-- · 2019-07-16 08:51
楼主,延时的第一个for不要加分号呀,加了分号可就不是z毫秒了,而是(z+b)微妙了
唐全可
4楼-- · 2019-07-16 10:52
3楼正解,你把第一个for的分号去掉试试看。
eyexceed
5楼-- · 2019-07-16 16:08
jilfuj596 发表于 2013-8-6 22:29
楼主,延时的第一个for不要加分号呀,加了分号可就不是z毫秒了,而是(z+b)微妙了 ...

哦,原来是这样,谢谢
jilfuj596
6楼-- · 2019-07-16 21:33
 精彩回答 2  元偷偷看……

一周热门 更多>