一个最直观的。#include//声明头文件#defineledP1#defineuintunsignedintvoiddelay(uinti)//延时函数{uintj;while(i--){for(j=0;j<120;j++);}}voidmain(){while(1){led=0X00;delay(1000);led=0X01;delay(1000

简单编了一下程序,,,include sbit led1=P1^1; //led灯,按实际再改 sbit led2=P1^2; //led灯,按实际再改 sbit led3=P1^3; //led灯,按实际再改 sbit led4=P1^4; //led灯,按实际再改 sbit

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

i++;} 定时器, LED灯

LED3 = 1;delay(50000);LED4 = 1;delay(50000);LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的

DEL1:MOV R6,#0 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 SETB C RLC A DJNZ R0,LOOP AJMP LOOP0 END

51单片机的题目: 依次点亮四个Led灯

void t0isr() interrupt 1 { TH0=(65536-60000)/256;TL0=(65536-60000)%256;switch(fun){ case 0:P0=led1;led=_crol_(led1,1);break;case 1:P0=led1;led=_cror_(led1,1);break;case 2:P0=led2;led=_

TLOW EQU 0F0HTHIGH EQU 0D8HFLAG_DIR BIT 20H.0;FANGXIANGCOUNT_INT DATA 30HCOUNT_K DATA 31HLEDVALUE DATA 32HCOUNT_KEY DATA 33HKEY0 EQU P2.0KEY1 EQU P2.1KEY2 EQU P2

P1口接8个LED灯,P3口接4个按键K1~K4 ,用于控制流水灯的四种效果,仿真图如下。

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

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

EA=1;

我想做一个单片机流水灯,大概思路是让单片机通过四个独立键盘控制四种形势的流水灯,向前辈求教程序

WT588D语音播放做过项目。

你就先开第一个灯(设为1),然后延时1秒,然后关闭第一个灯(设为0),然后延时1秒。然后开第二个灯(第二个灯设为1),然后延时2秒,然后关闭第二个灯(第二个灯设为0),然后延时2秒啊

while(!p1.1);P0.4=1;} if(P1.2==0){ while(!p1.2);P0.6=1;} if(P1.0==0||P1.1==0||P1.2==0){ P0.2=1;delay();P0.2=0;P0.4=1;delay();P0.4=0;P0.6=1;delay();P0.6

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

1.实现点亮一个LED 2.实现点亮任意位置上的一个LED 3.实现点亮一个LED,并让他1秒亮,1秒灭 接下来,剩下的工作,相信你一定能完成了。当然,这中间如果遇上了什么困难,你还可以百度hi我 我不太赞成直接把答案给你,

d1=0; //设为低电平,LED灯亮 d3=0; //设为低电平,LED灯亮 d5=0; //设为低电平,LED灯亮 d7=0; //设为低电平,LED灯亮 } void main(){ PortState(); //主函数里面调用 while(1);//~~~其

LED4 = 0;delay(50000);LED3 = 0;delay(50000);LED2 = 0;delay(50000);LED1 = 0;delay(50000);} } 上述代码实现了四个 LED 灯逐个亮起来然后再逐个灭掉的效果。其中,sbit 定义了四个位于 P2 口的 LED 灯

编写一段程序,要求用at89c51控制四个led灯,是他们逐个亮以后在逐个灭?

51单片机只有2个外中断是P3.2 和 P3.3 可以用计数器再实现2个外中断(计数器0, P3.4和计数器1, P3.5)4个按键分别接到P3.2--P3.5 4个LED随便接其它IO口

led_delay();P3=0xfe;led_delay();} /*关闭所有LED*/ void stop(void){ P3=0xff; //关闭8个LED } /*闪烁点亮LED*/ void flash(void){ P3=0xff; //关闭8个LED led_delay();P3=0x00; //点亮

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;

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程序

这个找TB,很多的!如果是C语言的实物,可以搜:C语言 数码管 单片机 实物。如果是汇编语言的仿真,可以搜:汇编语言 数码管 单片机 仿真。根据类似的方式,很好找的!
要控制LED灯的亮度,应采用PWM方式,对实物控制可以实现,仿真效果出不来。
51单片机是一款广泛应用于嵌入式系统的微控制器。在51单片机开发板上,我们可以通过P1口来控制8盏LED灯。在这里,我们需要编写一个能够使这些LED灯呈现右移流水灯效果的程序。首先,我们需要定义好每个LED灯的控制位,将它们分别映射到P1口的每个引脚。假设我们将第一个LED连接到P1.0引脚,第二个LED连接到P1.1引脚,依此类推,直到第八个LED连接到P1.7引脚。那么,我们可以通过下面的代码来初始化这些引脚,并将它们配置为输出模式:void init_leds(void){ P1 = 0x00; //将P1口所有引脚初始值设为0 P1M0 = 0x00; //将P1口所有引脚都设为标准输出模式 P1M1 = 0x00;}接下来,我们需要定义用于控制LED流水灯移动方向的变量和计数器。我们将使用一个名为‘direction’的变量来控制流水灯的移动方向。如果direction变量的值为1,则流水灯朝左移动。如果值为0,则流水灯朝右移动。我们还需要一个计数器‘i’来控制流水灯的移动速度。unsigned char direction = 0; //变量用来控制流水灯的移动方向unsigned char i = 0; //变量用来控制流水灯的移动速度【摘要】 在51单片机开发板上,P1口控制8盏LED灯,对应位为0时灯亮,编写8个led右移流水灯程序【提问】 51单片机是一款广泛应用于嵌入式系统的微控制器。在51单片机开发板上,我们可以通过P1口来控制8盏LED灯。在这里,我们需要编写一个能够使这些LED灯呈现右移流水灯效果的程序。首先,我们需要定义好每个LED灯的控制位,将它们分别映射到P1口的每个引脚。假设我们将第一个LED连接到P1.0引脚,第二个LED连接到P1.1引脚,依此类推,直到第八个LED连接到P1.7引脚。那么,我们可以通过下面的代码来初始化这些引脚,并将它们配置为输出模式:void init_leds(void){ P1 = 0x00; //将P1口所有引脚初始值设为0 P1M0 = 0x00; //将P1口所有引脚都设为标准输出模式 P1M1 = 0x00;}接下来,我们需要定义用于控制LED流水灯移动方向的变量和计数器。我们将使用一个名为‘direction’的变量来控制流水灯的移动方向。如果direction变量的值为1,则流水灯朝左移动。如果值为0,则流水灯朝右移动。我们还需要一个计数器‘i’来控制流水灯的移动速度。unsigned char direction = 0; //变量用来控制流水灯的移动方向unsigned char i = 0; //变量用来控制流水灯的移动速度【回答】 然后,我们可以编写LED流水灯移动的主要逻辑。鉴于我们想要让LED灯像水一样流动,因此我们需要使用一个循环,使LED灯逐个被打开或关闭。我们使用P1口来打开或关闭LED灯。代码如下:void led_flow(void){ while(1) { if(direction == 0) //如果direction变量值为0,也就是右移 { for(i = 0; i = 0; i--) { P1 = (1 << i); //将第i位设置为高电平 delay_ms(100); //延时100毫秒 P1 = 0x00; //将所有的LED灯都关闭 } } }}上面的代码使用for循环控制LED灯逐个打开或关闭,并使用delay_ms()函数来控制流水灯的移动速度。在右移模式下,每个LED灯都会从右向左逐个亮起并熄灭。在左移模式下,每个LED灯都会从左向右逐个亮起并熄灭。最后,我们需要在主函数中调用上面的初始化函数和LED流水灯函数。void main(){ init_leds(); //初始化LED灯 led_flow(); //启动LED流水灯程序}完成了上述步骤后,我们就成功地编写了一个能够实现8个LED右移流水灯效果的程序,它可以通过P1口控制8盏LED灯。【回答】 这个程序可以发一下吗?【提问】 发过去了,亲【回答】 只要程序,这个文字掺杂,有点看不是很懂【提问】 void init_leds(void){ P1 = 0x00; //将P1口所有引脚初始值设为0 P1M0 = 0x00; //将P1口所有引脚都设为标准输出模式 P1M1 = 0x00;}unsigned char direction = 0; //变量用来控制流水灯的移动方向unsigned char i = 0; //变量用来控制流水灯的移动速度void led_flow(void){ while(1) { if(direction == 0) //如果direction变量值为0,也就是右移 { for(i = 0; i = 0; i--) { P1 = (1 << i); //将第i位设置为高电平 delay_ms(100); //延时100毫秒 P1 = 0x00; //将所有的LED灯都关闭 } } }}void main(){ init_leds(); //初始化LED灯 led_flow(); //启动LED流水灯程序}【回答】 这个好像和我们不太一样呀,我们这个都是#include.reg51.h【提问】 然后再编写【提问】 是的呢【回答】 代码不是都有int,for这些吗?为啥你发的没有呢?【提问】 变量用啥来定义都行,里面有for啊【回答】
您好亲~使用AT89C51可以制作出一个流水灯,它可以控制4个或4个以上的LED灯,采用低电平激活信号。首先,给定电路:RS, RW, 和,EN口由晶体发射管与接受管(P0.0~P0.7)连接,R5, R4用来分别控制4个或4个以上LED灯。每当低电平到达R5或R4时,LED灯就会亮起,而当高电平到达时,LED灯就会熄灭。将电路中的晶体发射管和接收管连接R5,R4,RS,RW和EN口后,就可以成功控制4个以上的LED灯。并且,可以在AT89C51的离散IO卡上编写程序来控制LED灯的流水灯效果,这样就可以自动控制LED灯的流水灯效果。 此外,我们可以增加更多的晶体发射管和接受管来连接R5,R4,RS,RW和EN口,以便控制更多的LED灯。也可以使用不同颜色的LED灯来形成更多种更炫的效果实现更好的视觉效果哦![开心][开心][开心]【摘要】 第二次单片机作业+1.使用AT89C51制作一个流水灯,控制4个以上LED灯,采用低电【提问】 您好亲~使用AT89C51可以制作出一个流水灯,它可以控制4个或4个以上的LED灯,采用低电平激活信号。首先,给定电路:RS, RW, 和,EN口由晶体发射管与接受管(P0.0~P0.7)连接,R5, R4用来分别控制4个或4个以上LED灯。每当低电平到达R5或R4时,LED灯就会亮起,而当高电平到达时,LED灯就会熄灭。将电路中的晶体发射管和接收管连接R5,R4,RS,RW和EN口后,就可以成功控制4个以上的LED灯。并且,可以在AT89C51的离散IO卡上编写程序来控制LED灯的流水灯效果,这样就可以自动控制LED灯的流水灯效果。 此外,我们可以增加更多的晶体发射管和接受管来连接R5,R4,RS,RW和EN口,以便控制更多的LED灯。也可以使用不同颜色的LED灯来形成更多种更炫的效果实现更好的视觉效果哦![开心][开心][开心]【回答】 2.LED数码管的静态显示和动态显示有何区别?各有什么优缺点?【提问】 您好亲~LED数码管的静态显示指的是只有一个固定的数字显示;而动态显示指的是在指定时间段内经过数字变化,运行重复图案,并停留在指定状态的显示,也就是说LED数码管可以通过指定的程序来改变数字的显示状态。静态显示的优点:操作简单,只需给出显示数据及时序就可以实现;显示效率高,不需要耗费大量时间;占用资源较少,显示无需连续变换,所以只需要较小的控制板来支撑;功耗较低;便于产品成本的控制;动态显示的优点:具有更加生动的动画特效,可以更有趣的提高用户的兴趣;实现较高的操作深度,能够更好的传达信息;操作灵活性高,能够更精确地实现显示的特效;缺点:静态显示:显示效果单一,显示效果不能灵活导入其他多态显示内容;动态显示:控制要求较高,需要更复杂的控制硬件和程序;占用资源较多;功耗也比较大;实现复杂的动态显示成本更高哦![开心][开心][开心]【回答】
流水灯是一个长循环,在长达数秒的流水期间按键当然不起作用。 必须把按键检测插入到这个长循环中。
操!!!你他妈的怎么搞的麻!!就是你放LED的左边上面从第一个脚数到8脚。接LED负。LED正接一个1K的电阻到正5V就可以了。骂着好玩。不要生气啊!我支持你学习!! #include typedef unsigned char uint8; typedef unsigned int uint16; main() { uint8 j = 8; uint16 i; while(1) { P1 = ~(1 << --j); for(i=0; i<20000; i++); if(0 == j) { j = 8; } } }
我求求你了,别用汇编了。C51多简单明了!现在的单片机不需要考虑容量和速度问题,如果不够可以选择大容量高速单片机。51系列有100MHz,128K ROM。 #include// 头文件,定义寄存器等 main(void) { char i=0,j,k;//初始化变量, while(1) { i++; if(i>8)// i从0~8,一共9种状态 { i=0; } j=0x00; for(k=0;k<i;k++)//循环,类似于汇编的DJNZ { j>>=1;// 类似汇编的RR A j|=0x80;//ANL A,#80H } P2=j; } } 真的想要汇编语句,编译后仿真时看吧。
在四个灯循环点亮的状态下,每点亮一个灯需要延时,如果调用延时子程序,按键就显示不灵敏了,所以,采用定时器中断的方式控制延时,就不影响按键了。 #include #include 仿真图效果。