单片机高手此延时问题

#include<reg52.h>#defineuintunsignedintvoiddelay(void){uinta,b;for(a=0;a<800;a++);for... #include <reg52.h>
#define uint unsigned int
void delay (void)
{uint a,b;
for (a=0;a<800;a++);
for (b=0;b<800;b++);
}
sbit led=P1^1;
void main ()
{

led=1;
delay();
led=0;
delay();
}
展开
 我来答
y589400
2012-12-27 · TA获得超过204个赞
知道小有建树答主
回答量:414
采纳率:28%
帮助的人:166万
展开全部
问题有2 : 首先 主程序只执行一遍 所以你看不到灯的亮灭,
其次 你的延时程序的for里面的800太小了 写个20000吧 包你效果好

附代码:
/**********
延时跟你的晶振也有关系的 默认你是
12MHz的
*************/
#include <reg52.h>
#define uint unsigned int
void delay (void)
{uint a;
for (a=0;a<20000;a++);

}
sbit led=P1^1;
void main ()
{
while(1)
{

led=1;
delay();
led=0;
delay();
}
}
百度网友c84a0ed
2012-12-27 · 超过18用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:49.2万
展开全部
是不是延时太短了 看不出效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlchgy
2012-12-27 · TA获得超过212个赞
知道小有建树答主
回答量:525
采纳率:100%
帮助的人:290万
展开全部
程序只运行了一次,灯应该会长亮不灭吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式