发光二极管和蜂鸣器
时间:10-02
整理:3721RD
点击:
//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--);
}
//烧进去之后却与期望不符合,灯一直亮,蜂鸣器也一直响,不知道怎么搞了。
#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--);
}
你BEEP=0只有50MS的时间 你能分辨出来吗?
程序正确!就是时间太短了啊!
小编,延时的第一个for不要加分号呀,加了分号可就不是z毫秒了,而是(z+b)微妙了
3楼正解,你把第一个for的分号去掉试试看。
哦,原来是这样,谢谢
恩恩 不客气
不错的资料值得收藏