一路输出第一次LED灯以0.5秒亮与灭,第二次LED灯以0.5秒亮与灭,第三次LED灯以0.5秒亮与灭,四次以2秒亮灭

作者&投稿:皮振 (若有异议请与网页底部的电邮联系)
C语言中,让4个流水灯全部亮灭,第一次时间间隔1秒,第二次0.5秒,第三次0.2秒~

单片机吧

例如定义的是 P1口4个灯 就是
int LED1 = P1^0;
int LED2= P1^1;
int LED3 = P1^2;
int LED4 = P1^3;


LED1 = 0; 开启
delay(1秒)延时函数
LED1 = 1; 灭
delay(1秒)延时函数

LED2 = 0; 开启
delay(0.5秒)延时函数
LED2 = 1; 灭
delay(0.5秒)延时函数

LED3 = 0; 开启
delay(0.2秒)延时函数
LED3 = 1; 灭
delay(0.2秒)延时函数

你也可以 使用
P1= 0xfe;
delay()延时函数
P1= 0XFF;
以此类推

ORG 0000H
MOV SP,#60H
E: CLR P1.0 ; P1.0 LED亮
ACALL DEL_1S ; 0.5 秒
SETB P1.0 ; P1.0 LED灭
ACALL DEL_2S ;2秒
SJMP E ; 循环
DEL_1S: MOV R2,#10 ; 0.5秒

JMP DEL_2S+2
DEL_2S: MOV R2,#40 ; 2秒
SETB TR1
LOOP: JNB TF1,$
MOV TL1,#0B0H
MOV TH1,#3CH
CLR TF1
DJNZ R2,LOOP
CLR TR1
RET
END

#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/***********************************************
MCU: AT89S52
CRYSTAL: 12MHz
按键设置: P1.0 P1.1 P1.2 上拉电阻,按键接地
组输出 : P0.1-3 P0.4-6 P0.7 低电平点亮LED
************************************************/
uchar K1_rd = 0; //按键1 按键次数记录
uchar K2_rd = 0; //按键2
uchar K3_rd = 0; //按键3

uchar LED_G1_Timer_set = 0;//LED组1亮灭时间
uchar LED_G2_Timer_set = 0;//2
uchar LED_G3_Timer_set = 0;//3

bit K1_Ef = 0;//按键1生效记录,开机未按键之前LED不闪
bit K2_Ef = 0;//2
bit K3_Ef = 0;//3
volatile bit key_flag = 0;//按键扫描标志
uchar LED_Stat = 0;//三组LED状态
/***********************************************
Function: 按键扫描和处理(合成一个函数)
************************************************/
void keyscan_Precess(void)
{
static uchar keybuf = 0;
static uchar oldkey = 0;
uchar key = 0;
uchar newkey;
newkey = P1 & 0X07;
if(newkey == oldkey)
{
if(newkey != 0x07)
{
keybuf = newkey;
}
else
{
if(keybuf)
{
key = keybuf;
keybuf = 0;
}
}
}
oldkey = newkey;
if(key != 0)
{
switch(key)
{
case 0X06: K1_rd ++;K1_Ef = 1;
if(K1_rd >= 4)K1_rd = 0;
if(K1_rd != 0)
{
LED_G1_Timer_set = 10;//10 * 50ms = 0.5s
}
else
{
LED_G1_Timer_set = 40;
}
break;
case 0X05: K2_rd ++;K2_Ef = 1;
if(K2_rd >= 4)K2_rd = 0;
if(K2_rd != 0)
{
LED_G2_Timer_set = 10;//10 * 50ms = 0.5s
}
else
{
LED_G2_Timer_set = 40;
}
break;
case 0X03: K3_rd ++; K3_Ef = 1;
if(K3_rd >= 4)K3_rd = 0;
if(K3_rd != 0)
{
LED_G3_Timer_set = 10;//10 * 50ms = 0.5s
}
else
{
LED_G3_Timer_set = 40;
}
break;
default: break;
}
}
}
/***********************************************
Function: LED输出控制
************************************************/
void LED_control(void)
{

static uchar LED1_onoff = 0; //LED组1亮灭时间记录
static uchar LED2_onoff = 0;
static uchar LED3_onoff = 0;

if(K1_Ef)
{
if(LED1_onoff)
{
LED1_onoff --;
}
else
{
LED1_onoff = LED_G1_Timer_set;
if(LED_Stat & 0x01)
{
P0 |= 0X0E;
LED_Stat &= 0xfe;
}
else
{
P0 &= 0XF1;
LED_Stat |= 0x01;
}
}
}
if(K2_Ef)
{
if(LED2_onoff)
{
LED2_onoff --;
}
else
{
LED2_onoff = LED_G2_Timer_set;
if(LED_Stat & 0x02)
{
P0 |= 0X70;
LED_Stat &= 0xfd;
}
else
{
P0 &= 0X8f;
LED_Stat |= 0x02;
}
}
}
if(K3_Ef)
{
if(LED3_onoff)
{
LED3_onoff --;
}
else
{
LED3_onoff = LED_G3_Timer_set;
if(LED_Stat & 0x04)
{
P0 |= 0X80;
LED_Stat &= 0xfb;
}
else
{
P0 &= 0X7f;
LED_Stat |= 0x04;
}
}
}
}
/***********************************************
Function: 定时器初始化
************************************************/
void Timer0_init(void)
{
TMOD = 0X01;
TH0 = 0X3C;
TL0 = 0XB0;
ET0 = 1;
EA = 1;
TR0 = 1;
}
/***********************************************
Function:主函数
************************************************/
void main(void)
{
Timer0_init();

while(1)
{
if(key_flag)
{
LED_control();
key_flag = 0;
keyscan_Precess();
}
}
}
/***********************************************
Function: 定时器中断函数
************************************************/
void Timer0_isovf(void)interrupt 1 //50ms 中断
{
TH0 = 0X3C;
TL0 = 0XB0;

key_flag = 1;

}

对不起


康佳LED40X6000DE怎么第一次使用怎么调网络我使用的是路由器
尊敬的用户:您好,感谢您对康佳的支持。康佳电视机联网,需要您设置路由内的加密方式,我们电视所能识别路由器的无线加密方式为:(1)采用WEP加密方式,设置如下:认证方式选择Open, WEP加密选择64Bit, 密钥方式选择ASCII, 密钥任设一个即可,密码需设置5位。(2)采用WPA加密方式,设置如下:密码类型...

单片机按键控制4个LED,第一次按从左到右亮,第二次按从右到左亮。跪求...
;4花样流水灯 2010.05.11 AN EQU P3.0 ORG 0000H AJMP MAIN ORG 0003H AJMP EX0INT ORG 0030H MAIN: SETB EA SETB EX0 SETB IT0 ACALL DISP AJMP MAIN EX0INT: INC R0 CJNE R0,#5,RTI MOV R0,#1 RTI: RETI DISP: MOV R1,#8 LED1: CJNE R0,#1,LED2 AJMP LED10 LED2: ...

PWM输出控制LED的亮暗程度原理?
pwm控制led灯亮度原理:旋转电阻就是可调电阻,单片机不能直接得到电阻量。所以得将电阻的变化转换为模拟信号或数字信号,可搭建一个简单的分压电路。单片机转换成数字量,通过程序判断后,调节PWM参数,进使LED亮度变化。PWM是一种对模拟信号进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被...

LED灯有一路不亮什么原因?
可能的原因是第三路灯条烧了,由于三路灯条是各自独立的,所以另两路没有影响。其实是很容易理解的,也就是说你家这个顶灯内部是有三路灯组,(可以理解为三个灯)由智能开关控制,现在有一个坏了,可以拆开更换即可,通常是LED贴片灯珠串联而成的灯条,常见的是其中一个灯珠烧毁,导致整个电路断路,如...

我的小米移动电源10040第一次冲电都20个小时了,为什么还有一个LED...
请问你使用的是多大的充电器来为小米移动电源充电的,小米移动电源10400毫安的,如果使用输出5V1A的充电器,充电时间大概是12-14小时。如果使用输出5V2A的充电器,充电时间大概是5-6个小时左右的。如果使用5V1A以下的充电器,可能会出现充不进电的情况。推荐使用输出5V2A的充电器。红米note标配的充电器和...

led充电式手电筒刚买回来要充电吗
通过公式可计算出这款放完电的手电筒充电大约8~9小时就可以了。(400mAh只是标称,实际容量大约300多mAh)第一次使用的手电筒只要有电,就可以继续使用,看到LED灯变暗了就可以充电了。铅酸电池是没有记忆效应的。厂家要求先充足电再使用是因为铅酸电池会自放电,一只充满电的手电筒放上两三个月后就...

康佳LED智能电视经常不能开机
解决方法:出现这样的现象可能是电视机二次电源出现故障或者是负载电路的元器件损坏了。首先拆开电视机检查是不是元器件明显的损坏,测量一下二次电源的输出,一般电视机的二次电源就是非常的容易损坏的,只要及时的将电源更换了就可以了,元器件损坏时同样是如此。二、电视机开机时第一次不能打开,但是...

LED室外灯怎样安装简单无错些?
主要材料:LED护栏灯;护栏灯安装卡子,防水变压器,LED护栏灯主控器,LED护栏灯分控器,辅助材料:公母插头,超五类网线,两芯电源线,自攻螺丝,胶粒等 LED外控护栏灯安装步骤:第一步:先将LED护栏灯安装到墙体上:在墙体上打孔,装膨胀螺钉,再装LED护栏灯,用自攻螺丝锁住;护栏灯之间的距离根据...

LED显示屏怎么做的
一块LED显示屏是由外框部分、显示部分、扼制部分、供电分布以及若干小配件组成。具体如下:1、外框部分,专用铝型材,边角,轻钢龙骨,后挡板(铝塑板,欧松板)用来组成支撑LED显示屏的外框。。2、显示部分,就是LED显示单元板和排线电源线组成,是用来显示图片的设备。3、控制部分,控制卡与转接板,在...

求大神分析一下LED灯电路,里面的三极管pnp或npn不太确定,这是抄的电路...
电路没抄对吧。没法分析,芯片型号是什么?线路不对。

上蔡县19792092712: 一路输出第一次LED灯以0.5秒亮与灭,第二次LED灯以0.5秒亮与灭,第三次LED灯以0.5秒亮与灭,四次以2秒亮灭 -
镡薛新亚: #include <reg52.h> typedef unsigned char uchar; typedef unsigned int uint;/*********************************************** MCU: AT89S52 CRYSTAL: 12MHz 按键设置: P1.0 P1.1 P1.2 上拉电阻,按键接地 组输出 : P0.1-3 P0.4-6 P0.7 低电平点亮...

上蔡县19792092712: 51单片机led灯亮一秒停五秒程式怎么写 -
镡薛新亚: void delay_s(unsigned char t); void main() { while(1) { led = 1;//led 亮 delay_s(1);//延时1s led = 0;//led 暗 delay_s(5);//延时5s } } 这是主循环,你要把delay_s()这个延时函数补充进去,另外,led亮和暗的电平你得根据你得具体电路看是1亮还是0亮.

上蔡县19792092712: 51单片机LED0.5秒闪一次,用定时器来做 -
镡薛新亚: 你用的是查询方式,参考下#include <reg51.h> void main() { unsigned int i; i=0; TMOD=0X01; TR0=1;while(1) { TH0=0x3c; TL0=0xb0; while(!TF0);i=i+1; if(i==10) { P0=~P0; i=0; } TF0=0;} }

上蔡县19792092712: 彩灯控制器,按开始键,单个LED灯从右到左依次显示,间隔时间0.5秒.请画出电路原理图,程序流程图. -
镡薛新亚: ;程序名: 单片机实验仪配套程序-共阳流水灯;电路介绍:p0口驱动8个led灯,将P0口和J1用8芯电缆连接; 将JA1上的跳线帽全部移到JA2上.; 01mcu. 20060916 key bit P2.0; 按键;********************************** main: mov r0,#8 ;每次移...

上蔡县19792092712: 51单片机 timer0定时器控制led 每隔0.5秒点亮 并在2秒内熄灭 如此不断重复.求c语言程序 谢谢 -
镡薛新亚: 这个和晶振有关的,假设是12M吧 你给我邮箱,我发你一个工具吧,可以生成代码的#include <reg51.h> sbit LED=P1^1; void InitTimer0(void) { TMOD = 0x01; TH0 = 0x0D8; TL0 = 0x0F0; EA = 1; ET0 = 1; TR0 = 1; } unsigned int time; void main(...

上蔡县19792092712: 单片机c语言程序高手进 这个程序应该怎样实现中断
镡薛新亚: 给你个思路吧. 首先来个键盘扫描程序.采集是A键按下还是B键按下.如果是A键按下的话,就给LED1口输出高电平然后延时1S,延时程序可以用delay来粗略延时,也可以用定时器精确延时;延时1S过后,让LED1口输出低电平,然后再延...

上蔡县19792092712: 8个LED灯从左到右依次亮,亮0.5秒,第二个亮0.5秒,依次类推 用c51编程 -
镡薛新亚: //假设灯接在P2口上,假设用了12M的外部晶振 #include <reg52.h> void timer0_init() {TMOD=0X01;TR0=0;TH0=0XEC; //0.5sTL0=0X78;ET0=0;TF0=0; } void main() {int i;timer0_init();TR0=1; //打开定时器while(1){for(i=0;i<8;i++){P2= ~(1<<i); //轮流点亮ledwhile(TF0==0); //等待0.5s时间到TF0=0; //清标志位TH0=0XEC;TL0=0X78;}} }

上蔡县19792092712: 用c语言编程 控制LED流水灯1到8盏灯间隔0.5秒流水一次 -
镡薛新亚: 首先,你的电路图没有给出来,管脚是什么? 其次,我建议还是自己尝试写一写,这个不难,我给你个思路 首先定义变量类似于P1_2 = P1^2这种,先把这八个管脚全部定义好,之后给个for循环,让P1(假设的你LED灯连接的是P1口)口的P1^0~P1^7相关标志位依次等于0或者1(0还是1需要看你在LED等上给的是高电位亮还是低电位亮),之后再给个for循环,五次的循环,全部P1口置为1(假设高电平LED亮),之后设置P1口全为1,再让P1口的相关标志位置为0,再置为0的时候可以加个延时

上蔡县19792092712: 利用AT89C51单片机结合8个发光二极管L0~L7,要求每间隔0.5秒依次点亮一盏 -
镡薛新亚: 假设高电平点亮LED,LED接在P0口,主要程序语句如下: uchar c=0; uchar i; while(c<3) { for(i=0;i<8;i++} { P0=1<<i; DELAY_MS(500); } c++; } P0=0X00;

上蔡县19792092712: 一个开关控制三盏灯,每次开灯,总有一盏亮得慢一点,是什么原因? -
镡薛新亚: 现在大部分用得最多是LED和老式的节能灯,出现上述情况大部分是因为电子变压器在同时通电后,因为电子变压器在整定时有个过程,0.1秒都能感觉不在同时亮.这种现象属正常,不用在意!

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