在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。include include 仿真图效果。

include void delay(unsigned char n);void main(){P2=0x30;while(1){delay(200);if(P2!=0x30){P2=P2;P2&=0xcf;}}}void delay(unsigned char n){unsigned char i;while(n--){for(i=0;i<100;

sbit key4=P1^3;sbit led1=P1^4;sbit led2=P1^5;sbit led3=P1^6;sbit led4=P1^7;main(){while(1) { led1=key1; led2=key2; led3=key3; led4=key4; }}

程序的思路如下:(假设你的LED依序连接到51的I/O口,键盘也连接到对应的I/O)在51的主循环里面加入一个判断语句,是否有按键按下,之后软件除抖,调用相应的子功能函数即可.

if(key1 == 0) //如果高电平按下按键就==1 { delay(200); //按键防抖 if(key1 == 0){ led1=1; //如果低电平亮就=0 led2=0;led3=0;led4=0;} } if(key2 == 0){ delay(200); //按键防

不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数就可以。比如使用独立键盘,if(P1.1==0) light_water(); 然后:void light_water(){ num=1;for(a=0;a<8;

include//k2~k4 分别控制le1~le4 void delay(unsigned int x) //延时函数{ while(x--); //延时数减一} void key_event (unsigned char d) //根据扫描到的键值,亮相应的LED { switch(d)

求解读51单片机用四个按键独立控制四个led的c程序

include sbit key=P1^0;sfr LED=P0;main(){ while(1)if(key==0)P0=0xc0;else P0=0xff;}

void main(){ P2 = led; //led初始赋给P2口 while(1){ if(k==0) //如果按键按下 { while(k==0); //判断按键松开 led=~led;P2 = led; //按键按下取反再赋给P2口 } } }

创建项目:51单片机控制流水灯效果。添加包含51头文件。包含移位标准库函数头文件。使用预处理指令,完成宏定义:用“uchar”替换unsigned char #define uchar unsigned char 设置灯的相关变量: unsigned char LED;自定义延迟

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数

Keil uVision4实例 51单片机控制LED灯闪烁,关键看C语言的编程细节。建立项目:LED灯闪烁。新建C文件:LED灯闪烁 引用51头文件。将所有的灯都点亮。让所有的灯全部灭了。添加循环语句。添加一个变量。使用循环语句创造延迟。

keil按键控制led灯的亮灭如下:1、单片机一个按键控制一个LED灯怎么处理,求程序,用keil软件的,谢谢.2、单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环3、按键点灯程序,按一下按键灯亮

led2;sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;void delay(int a){uchar i;while(a--)for(i=0;i<120;i++);}main(){unsigned int i;

Keil编程:51单片机键盘控制LED

LED = ~LED; //每达到一定时间就更改LED灯状态 cnt = 0;} TF0 = 0;} void main(){ unsigned int temp;TMOD = 0x01; //设置T0为模式1 TH0 = 0xF8; //设置计时初值,到达此计时器将复位 TL0 = 0x

led1=0xfe;led2=0xfc;while(1){P0=0x55;if(key1==0){P0=led1;led1=_crol_(led1,1);delay(200);}if(key2==0){P0=led2;led1=_crol_(led1,2);delay(200);}if(key3==0){for(i=1;i<500;i++

include sbit P32 = P3^2;sbit LED = P1^1;void main(){ IE = 129; while(1);}void X0_Int() interrupt 0{ while(!P32) LED = 0; LED = 1;}

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数

LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不 进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循 环,LED取反得到LED = 0,灯亮。

if(key1==0){ while(1){ P0=0x01;unsigned char t=0;P0=P0<<1;t++;if(t>=5)t=0;P0=0x01;} };

51单片机,C语言使用独立键盘点亮LED灯要求?

case 0: led = 1; readkey(); break; //熄灭 case 1: delay(); readkey(); //慢速闪烁 case 2: delay(); readkey(); //中速闪烁 case 3: delay(); readkey(); led = ~led; //快速闪烁 } }

说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电

define uchar unsigned char sbit LED1=P1^7; //位定义。void delay_ms(uint);//mS级带参数延时函数。void main(){ while(1){ LED1=0;delay_ms(1000);LED1=1;delay_ms(1000);} } void delay_ms(uint z)

程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下按键时,通过判断状态值来切换不同的灯亮灭模式。定时器中断函数用来实现灯的闪烁,可根据需求自行调整闪烁频率。编程不易,忘采纳

请教c51单片机,c语言编程,关于控制LED灯闪烁频率?

1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.精确解决方案——定时器

1、新建项目,如图所示。2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内

首先,要知道控制led的电路,知道控制电平的管脚,同理也要搞清楚开关的电路。其次,设置开关的状态控制电平的高低,从而控制led灯的亮灭。最后,具体的执行办法,要看你是什么型号的51单片机,要查书本,或者网上查。

并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。

单片机驱动LED灯的源程序:include //头文件。define uint unsigned int define uchar unsigned char sbit LED1=P1^7; //位定义。void delay_ms(uint);//mS级带参数延时函数。void main(){ while(1){ LE

假设用的是51单片机的P1口,LED灯是低电平点亮,连接P1.0,那么可以参考如下思路:初始化:P1 =0xFF;P1.0=0;点亮 delay_s(30);延时30秒 P1.0=1;熄灭 while(1){ delay_s(1);延时1秒 P1.0=0;点亮 dela

说明:单片机控制LED灯间隔时间闪烁 所用程序很简单,实际情况可作相应变化,也有多种方式实现。proteus电路图 所需元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 (tip:没有给高电

利用51单片机控制来使LED灯闪烁

程序在哪里?
这个。硬件我就不说了。至于软件嘛,呵呵。弟,认真观察一下你的过程。 程序到最后就进入死循环while(1)了,每次都在检测key1的状态,不是0就是1,程序执行的速度那么快,你说你的这条 if(key1==0)d1=1; 有半毛钱用吗?从宏观上来讲这条程序一点用都没有, 每个时刻key1都是等于1的,也就是说无时无刻都是在执行d1 = 0这种情况。 自己想想办法怎么避免这种情况,比如,可以设置一个标志位,根据按键的按下的情况改变这个标志位,再根据这个标志位来操作led的亮灭。但是要注意,按键需要消抖。可以这样: bit fg = 0; while(1) { if(key1==0) fg=1; if(fg == 1) d1=0; } 我上面给你的这段,只能按一次按键看到灯灭(亮?不知道你的硬件怎么接的)的效果,想用按键控制led的亮和灭,还需要进一步探讨。我相信我这么一说,你也就懂了,好好想想吧。
#include sbit key=P1^0; sfr LED=P0; main() { while(1) if(key==0)P0=0xc0; else P0=0xff; }
#include sbit key = P1^0;//按键 void delay(unsigned int time) { unsigned int i,j; for(i=0; i<time; i++) for(j=0; j<1000; j++) {;} } void mian() { unsigned int temp =0x00; while(1) { if(key == 0) { delay(20);//适当延时,消除按键抖动,自己看实际情况修改时间 if(key == 0) temp = ~temp; } P2 = temp; } }
这个找TB,很多的!如果是C语言的实物,可以搜:C语言 数码管 单片机 实物。如果是汇编语言的仿真,可以搜:汇编语言 数码管 单片机 仿真。根据类似的方式,很好找的!
要控制LED灯的亮度,应采用PWM方式,对实物控制可以实现,仿真效果出不来。