51单片机编程:先循环一遍流水灯,然后熄灭后蜂鸣器响三下停止?

先循环一遍流水灯,然后熄灭后蜂鸣器响三下停止,求教该怎么编?

就拿三个灯来说吧
#include"reg52.h"

#include"intrins.h"

sbit led1=P2^0;

sbit led2=P2^1;
sbit led3=P2^2;//led灯
sbit ring=P2^3;//蜂鸣器
void Delay1000ms() //@11.0592MHz

{

unsigned char i, j, k;

_nop_();

_nop_();

i = 43;

j = 6;

k = 203;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}
void main(){
led1=0;led2=0;led3=0;//初始化为零
//下面开始
goto B:
A:while(1){;}//跑完一遍程序后执行死循环
B:
led1=1;Delay1000ms();led1=0;
led2=1;Delay1000ms();led2=0;
led3=1;Delay1000ms();led3=0;//流水灯
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;//蜂鸣
goto A;//跳转到死循环执行

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-10
流水灯不会吗?如果P0接8个LED,低电平点亮, 一次点亮一个。
for(i=0;i<8;i++)
{
P0=~(0X01<<i);
delayms(1000);
}
P0=0xff; //熄灭
蜂鸣器响三下停止,假设蜂鸣器低电平鸣响
for(i=0;i<3;i++)
{
fmq=0;
delayms(500);

fmq=1;
delayms(500);
}本回答被提问者采纳
第2个回答  2020-02-17
流水灯不会吗?如果P0接8个LED,低电平点亮,
一次点亮一个。
for(i=0;i<8;i++)
{
P0=~(0X01<<i);
delayms(1000);
}
P0=0xff;
//熄灭
蜂鸣器响三下停止,假设蜂鸣器低电平鸣响
for(i=0;i<3;i++)
{
fmq=0;
delayms(500);
fmq=1;
delayms(500);
}
第3个回答  2020-02-19
10RMB,有偿帮助。提供芯片型号,晶振大小,我可以按照你的功能需求,用keil编译器详细的给你写一套程序,注释清楚,只要你稍微有点c需要基础就行!需要的话可以私信!