简单的单片机led闪烁程序

作者&投稿:湛狮 (若有异议请与网页底部的电邮联系)

单片机入门,,单个二极管闪烁。。
我们知道人眼能够分辨出的光的闪烁时间最低也只能达到5ms,也就是5000us,如此快速的闪了一下除了超人是不可能被眼镜捕获到的。因此要想得到闪烁的效果应该延时之后就将P1_1的状态翻转一次,这要用到逻辑非(!)(将1变为0,0变为1)。因此改进后的代码如下:include <reg52.h> sbit p1_1=P1^0...

单片机下面程序是怎么实行LED灯闪烁的?
如果开关频率太快,人类是看不出来是在闪烁,所以开关频率要低一些,比较高的切换频率可以用来控制led亮度(PWM),或者用来做数码管显示。实现方式主要有两种方式:(1)使用代码循环做为延时来控制led开关频率:eg:#define HIGH 1#define LOW 0#define LED P1.1\/\/假设为51单片机void delay_nms(unsigned ...

51单片机怎么只控制一颗LED灯闪烁
2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机...

请教c51单片机,c语言编程,关于控制LED灯闪烁频率?
即高优先级)。在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。

单片机让LED灯闪烁问题
呵呵,楼上可能有点小错误哈,程序中的for循环是没错的,i的值会减到0,然后跳出循环。至于LZ看到的 LED在开始持续很短的时间是不亮的 可能是因为你的复位电路不是很合适,复位时间比较长,单片机在复位的时候引脚为高,这时候LED就不亮,之后一直亮是因为你的延时太短,char型数据循环100次用的时间...

单片机如何控制一个LED灯闪烁频率不断加快?
首先定时器中断时间比如5ms,用来定时刷新数码管,他就不闪了。其次,你另外申明一个全局变量,flash_count,每次定时中断,就是每次5ms,flash_count++,同时你每次中断再判断flash_count==xxx时,你的led取反,同时设flash_count=0 你可以控制xxx,从1-255 改变,就可以控制闪烁的频率不断变化。

单片机,一个按键控制LED三种状态,第一次按,慢闪;第二次按下,快闪;第三...
MAIN: SETB P1.7 ; LED 灭 LL1: SETB P1.0 JB P1.0, LL1 MS: CPL P1.7 ; LED 慢 闪 MOV R7,#255 LCLL YS LL2: SETB P1.0 JB P1.0, MS KS:

单片机上电后8个led灯闪烁,按下k1一个灯从左右移动,按下k2两个灯左右...
没有具体的电路图,就只以P1口作为基本输驱动口进行说明。主程序需要一个delay函数进行led亮灭的延时。当然你首先要先进行P1口和开关按键的预定义,这个要看你板子的原理图。void delay(int l){ int a,b;for(a=0;a<l;a++){ for(b=0;b<10000;b++);} } void main(){ int m=0;\/...

单片机里面一个闪烁的LED电路程序不懂,求指教。for(i=0;i<120;i++...
具体时间要看汇编语言知道,那个for函数,只是让cpu空运行几个周期以达到延迟效果,精确的时间从c语言是看不出来的,如果要精准时间的话要用定时器做

51单片机。LED闪烁问题。
这是正常的,因为你灯的亮灭是由单片机的低电平驱动的(从你程序里看出),而单片机给的高低电平带负载能力不是很强,也就是说它虽然电压达到了,但是电流比较小,我们写程序也是一样的情况。没问题的,不用担心。

汪胖18383172268问: 怎么设计单片机控制LED闪烁,并且可以组成一个"LED"灯字! -
汤旺河区大蒜回答: 可以这样子,把所有LED并联起来,直接接单片机随便哪个IO口,然后再加个1K上拉电阻,用51单片机可以实现,具体程序为 #include"reg51.h" sbit LED=P1^0;//把LED灯接在P1.0口就行 void delay(int ms); void main() {while(1){LED=~...

汪胖18383172268问: 单片机控制单个LED闪烁五下的c程序,希望能加讲解,谢谢啦 -
汤旺河区大蒜回答: c语言程序很简单: #include<reg51.h>//包含头文件 sbit LED=P1^0;//位变量定义 void main()//主程序 { unsigned char i;//声明一个变量 for(i=0;i<5;i++)/循环5次 { LED=0;//亮 delayms(500);//延时 LED=1;//灭 delayms(500);//延时 } while(1);//停止不动 } 延时子程序随便搜一个,如果时间差别太大,可调某些参数

汪胖18383172268问: 教授,你好,请问怎样使单片机LED灯闪烁三次,然后停下.求代码 -
汤旺河区大蒜回答: 单片机LED灯闪烁三次的代码应该能写吧,用for循环3次.然后停下,就是不再执行任何代码了,有一个死循环语句, while(1); 这个就行了.

汪胖18383172268问: 求大仙,给出“8个LED的闪烁控制,要求亮0.5s,灭0.5s,不断闪烁20次.”的C语言编程程序 -
汤旺河区大蒜回答:[答案] 用51单片机? #include sbit LED0=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; void delay(int x) { int y,z; for(...

汪胖18383172268问: 利用C语言写单片机程序,怎么利用for或者while使LED灯闪几下然后进入下一条程序? -
汤旺河区大蒜回答: void mdelay(unsigned int delaytime) //延时程序 { unsigned int j=0; //无符号整数j for(;delaytime>0;delaytime--) //for循环 { for(j=0;j {;}} 这是延时程序,你要闪几下就进入下一条,程序如下 int i=0; sbit LED=P3^3; //P3.3接LED LED=0; //关闭LED for (i=0;i{LED=1; //开灯 mdelay(30); //延时30ms LED=0; //关灯 mdelay(30); //再延时 }

汪胖18383172268问: 求一段简单51单片机程序,8个led按顺序每个闪4次 -
汤旺河区大蒜回答: #include<reg51.h>#define uchar unsigned char void delay(uchar a) { uchar i,j; for(i=0;i<a;i++) for(j=0;j<120;j++); } main() { uchar LED=0xfe,i; while(1) { for(i=0;i<4;i++) { P0=LED; delay(100); P0=0xff; delay(100); } LED=(LED<<1)|0x01; if(LED==0xff)LED=0xfe; } }

汪胖18383172268问: 如何用51单片机写两LED灯两两一起闪烁的流水灯C程序 -
汤旺河区大蒜回答: 这个比较简单吧uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void delay();//自己写吧 延迟一秒 void led_blink();//~~~~~~~~~~~~ void single_stream();//单向流水函数声明 void double_stream();//~~~~~~~~void led_blink() //全...

汪胖18383172268问: 单片机独立键盘上 一直按k1实现led灯1357闪烁,间隔1秒 按一下k2 2468闪烁 间隔1秒? -
汤旺河区大蒜回答: 单片机独立键盘上一直按可以实现了led闪烁,间隔一秒.那你就多按几次.

汪胖18383172268问: 下面怎么实现的单片机闪烁 -
汤旺河区大蒜回答: 首先,这个程序不会让LED闪烁;如果闪烁,需要加循环语句,如下: 假如P2口接LED 阴极,阳极通过上拉电阻接Vcc的话;void main() //程序开始 {while(1)//作用:让下面4条语句往复循环{P2 = 0x00; //现在P2口为低电平,LED导通,发光delay(600); // 相当于等一会;目的是让LED一段时间,不然你看不出变化P2 = 0xff; //同上,P2口高电平,LED两端都为高电平,不发光;delay(600); // 同上等待;} }

汪胖18383172268问: 求单片机大神!!! 用AT89c51单片机控制LED灯闪烁设计电路和编程! -
汤旺河区大蒜回答: #include<reg51.h> sbit a=P1^0; void delay(unit time) void main() { while(1) { a=0; delay(500); a=1; delay(500); } } void delay(unsigned int time) { int i; for(;time>0;time--) for(i=100;i>0;i--); }


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