标题:
新手求助,51单片机灯闪五下,蜂鸣器响一下,现在是同时闪和响,谢谢
[打印本页]
作者:
zpqm333
时间:
2021-1-12 22:06
标题:
新手求助,51单片机灯闪五下,蜂鸣器响一下,现在是同时闪和响,谢谢
#include "reg51.h"
#include "delay.h"
#include "led_flash.h"
#include "beep.h"
void main()
{
static int y;
delay(10);
while (1)
{
if (y<=5)
{
y++;
led_flash();
}
y = 0;
beep();
}
}
作者:
denglele
时间:
2021-1-12 23:28
把你的led-flasfh()和beep()发出来,不然看不出来
作者:
csmyldl
时间:
2021-1-12 23:50
if (y<=5)改成while(y<5),同时在前面加一条y=0;
作者:
taotie
时间:
2021-1-13 00:12
闪五下,蜂鸣器响一下。那就缺Y=5的判断,y=5时蜂鸣器响,响多长时间由延迟确定然后y=0再次循环
作者:
人人学会单片机
时间:
2021-1-13 01:11
关于这种小程序 你可以观看《人人学会单片机》第12课,学习框架式编程方式的操作方式。
不管多少颗灯各自闪烁。只需要寻找一个公倍数就行了。
作者:
man1234567
时间:
2021-1-13 08:14
无需把 led-flasfh() 和 beep() 发出来,仅main() 也能清楚地看出来:
void main() { static int y; //变量Y,没有给初值
delay(10); //延时
while (1) //开始无条件循环
{ if (y<=5) { y++; led_flash(); } //只要Y是不大于5就加1并闪灯
y = 0; //然后赋值为零,不管前面Y初值有木有或加到多少(只能加到1)都归零
beep(); //无条件地响一下
} //以上无条件循环所以感觉就是同闪同响
}
可以改成:
void main() { static int y; y=0; //变量Y初值0
delay(10); //延时
while (1)
{ if (y<5) { led_flash(); y++; } //只要Y从0到4加1并闪灯
else { beep(); y = 0; } //闪5次后响一声并Y归零
}
}
作者:
游知行合一
时间:
2021-1-13 08:56
beep();下面加点延时试试。
作者:
glinfei
时间:
2021-1-13 09:07
delay 和判断的位置错了。
void main()
{
static int y;
while (1)
{
if (y==5)
{
y = 0;
beep();
}
y++;
led_flash();
delay(10);
}
}
作者:
适得府君书
时间:
2021-1-13 09:32
单片机里面的编程还是要多注意一些细节。还有c语言基础要了解,至少一些循环语句的使用要清楚。你这段代码有几个问题:
一、定义变量y的时候没有初始化就进行y++。有时候不会出现问题,有时候那可是致命的问题。没有初始化的定义不一定0,所以进行判断的时候就不会成立。
二、if判断语句使用有问题。if只是一个判断不是循环。所以if条件每次都成立进入后y+1跳出后又把0赋值给y。所以这段代码使用的if是没有意义的。跟一些方式是一样的:
while(1)
{
led_flash();
beep();
}
三、延时问题。delay(10);延时的位置无意义。
void main()
{
while (1)
{
//这里是主循环
delay(10);//在这延时才有用
}
}
灯闪5下,蜂鸣器响一下你可以用for循环比较简单。流程上也比较易懂。
int i;
for(i=0;i<5;i++)
{
}
方式有很多种可以多尝试一些
作者:
kxcuser
时间:
2021-1-13 09:35
void main()
{
static int y;
delay(10);
while(1)
{
for(;y<5;y++)
{
led_flash();
}
y=0;
beep();
}
}
作者:
woshinh
时间:
2021-1-13 15:30
你这while循环里没有延时,闪五下,蜂鸣器响一下这个功能已经实现了,只是速度太快你分辨不出来
作者:
xy07580782
时间:
2021-1-13 18:11
适得府君书 发表于 2021-1-13 09:32
单片机里面的编程还是要多注意一些细节。还有c语言基础要了解,至少一些循环语句的使用要清楚。你这段代码 ...
静态型变量应该不用赋初值也可以吧,默认是0.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1