51C 为什么单片机运行后LED灯是闪烁亮的,换成蜂鸣器电路也是间断响的?

作者&投稿:束奖 (若有异议请与网页底部的电邮联系)
51单片机,如何实现在LED灯亮的1秒内,前半秒让蜂鸣器鸣叫~

按照上面要求来做,就可以,定时器可以完成这些要求的

你们给问题总是条件不全面!
假设P1.1控制LED,低电平亮;
P1.2控制蜂鸣器,低电平响。

sbit p11=p1^1;
sbit p12=p1^2;

if((p11=!p11) && (p11==1))
{
p12=0;
//此处延时50毫秒
p12=1;
}

对呀,你的程序就是这样的,按下键后,LED灯开始为0,后来又赋了,1

程序问题 你变量声明 的时候 米有 KEY2

IO口控制的电路,外围电路怎样就有怎样的反应咯

我觉得可能是延时程序的问题,你的10ms,是怎么算出来?用的是什么单片机,还是查查相关的资料吧,这可能是原因所在吧。


涟源市13348268482: 51C 为什么单片机运行后LED灯是闪烁亮的,换成蜂鸣器电路也是间断响的? -
沈净龙血: 对呀,你的程序就是这样的,按下键后,LED灯开始为0,后来又赋了,1

涟源市13348268482: 为什么我 的单片机接上电源与线LED灯全亮了? -
沈净龙血: 如果程序运行后,LED的表现与你的程序要求相反,说明你的LED的接法反了,更换接法或变更程序.

涟源市13348268482: 这个51单片机的C程序为什么能让LED闪起来?
沈净龙血: 单片机是循环执行 意思就是程序执行完毕后还要从开始执行,所以编程时,如果不是采样类的应用程序,最好要在程序执行结束后加个死循环 比如: while() {}; 无限循环的采样类的程序也要加死循环,如果不加,程序每运行一次就要重新定义参数,浪费资源并且会造成时间不准确,这样就给主程序加死循环 死循环听起来很不爽,因为编程忌讳死循环,但在单片机应用中太喜欢死循环了,呵呵

涟源市13348268482: 单片机工作状态LED指示灯 -
沈净龙血: 我最近做了个测温电路,通过串口传到上位机 led不亮表示温度过低, 长灭短亮表示偏低 常亮表示正常 长亮短灭表示偏高 用定时器计数实现闪烁.一般不用延时,尽量用定时中断.

涟源市13348268482: 单片机实验板一接通电源LED灯就亮了是什么情况? -
沈净龙血: 单片机里没有程序的话,就是这个样子,随机的灯亮,还有别的样子,就是不稳定,你烧进去个程序就OK了.STC的片子很好用的,串口就可以下载嘛

涟源市13348268482: 单片机运行该程序灯一直全亮,没有变化!求帮忙! -
沈净龙血: 从你的程序看,LED是低电平驱动.现在症状是全亮,那么说明P1口接LED的脚都是低电平,一般来说,上电后初始化所有引脚都是高电平的. 所以要找原因,先从一个LED开始: sbit led1=P1^0; //51写法,其它单片机具体看手册 main() { while(1) //控制led间隔闪烁 { led1 = ~led1; delay300; } } 一个一个检查端口引脚,都能正常控制闪烁没问题了,说明硬件连接和delay函数是正确的,再甫骸颠缴郯剂奠烯订楼写循环闪烁的程序.(如果delay不正确),开关频率大于60hz,那么人眼看起来也是一直亮

涟源市13348268482: 单片机运行实验源程序,发现结果为8只LED全部点亮,为什么? -
沈净龙血: 从您的问题可以看出您还处于初学阶段或者在应付考试.首先出现一些现象一定会有原因,我们要会分析其发生的原因.根据模电的知识,8只led全亮说明二极管加了正向电压导通了.首先你要知道你的单片机是共阴还是共阳极,打开原理图看下就知道了.如果是共阴极,说明那8个引脚都给了高电平.如果你是使用的店家提供的程序,很有可能是没有把程序正常下载进去,或者下载的程序与单片机不匹配.建议贴出单片机的型号或者原理图,和源程序进行提问.当然可以自己查找问题,相信您一定可以解决的.

涟源市13348268482: 为什么我写的单片机C程序 让LED灯不停闪呢 -
沈净龙血: 你这个程序有问题 a=50000; p1_1=0; while(a--); a=50000; p1_1=1; while(a--);//到了这里当a=0时就退出了,单片机执行NOP(也就是什么都不做)你应该这样: while(1){ //死循环,永不跳出 a=5000 ; while(a--); p1_1 = ^p1_1;//取反:由ON变为OFF,或由OFF变为ON }

涟源市13348268482: 51单片机 点亮led灯 -
沈净龙血: 十六进制0xFE,对应二进制 1111_1110 这个二进制,对应引脚为 p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0 P1 = 0xfe,则对应p1.0为0,其他引脚输出1.你的LED,必然是共阳极.所以P1.0对应的灯亮.(如果是共阴极,那么P1.7~P1.1共7个LED亮,P1.0上的LED不亮)

涟源市13348268482: 对于下面的51单片机LED闪烁实验C程序,为什么LED会一直不停地闪烁,而不是闪烁一次呢? -
沈净龙血: 因为你的代码后面的“空白”处都是复位命令,所以你的代码执行完了就复位了,就闪啦..

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网