如何用C语言编写一个LED熄灭后延迟4秒后再亮1秒,再熄灭的程序,不用循环执行,

如题所述

首先要将你的单片机或者dsp的时钟转化成1秒或者1毫秒,转换的方法很多最简单的就是分频,这样做了之后写一个简单的程序使得某个变量比如说M即时一秒之后将你接的那个引脚的电平拉高或清零,使得led亮一秒。看得你接法怎么接的。然后第二步就是M大于1的时候将led熄灭(电平高低看你的接法而定)然后将m的值大于5时请一次零就ok了
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-10
1,首先你要知道可以用定时中断方法实现亮1s暗1s。
2,在中断程序中设置一个flag。标志说明是要延迟的,如flag=1,则计数值加1,退出中断。直到计数值为4,则led亮,并使flag=0。如flag=0,则使led按。
应该很简单的,聪明好学的你自己琢磨下吧!

如何用C语言编写一个LED熄灭后延迟4秒后再亮1秒,再熄灭的程序,不用循...
首先要将你的单片机或者dsp的时钟转化成1秒或者1毫秒,转换的方法很多最简单的就是分频,这样做了之后写一个简单的程序使得某个变量比如说M即时一秒之后将你接的那个引脚的电平拉高或清零,使得led亮一秒。看得你接法怎么接的。然后第二步就是M大于1的时候将led熄灭(电平高低看你的接法而定)然后将m...

单片机间隔点亮一led灯的C语言程序
while(1){ P1=0xff; \/\/点亮P1口第0个引脚上的LED灯,0xff为二进制的11111111 delay(1000); \/\/延时1秒 P1=0x00; \/\/将P1口全部置为0,熄灭LED灯 delay(1000); \/\/延时1秒 } } 上述程序的作用是在单片机的P1口上间隔点亮一盏LED灯,每隔1秒钟灯的状态会发生一次变化,即由点亮状态变为熄灭...

AVR 单片机C语言怎样实现按键按一下led灯闪烁 再按一下led灯灭如此反复...
函数1:LED闪烁 main(){ while(1){ if(KEY)State = ~State;if(State)LED闪烁 else LED熄灭 } }

...一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程,求程序...
Voiddelay(Void)//Void表示没有返回值,也没有传递参数。{ Unsignedint我;定义一个最大值为65535的无符号整数。For (I = 0;我< 20000;i++) \/\/执行20000个空循环。;//什么也不做,等待一个机器周期。} /*** 函数函数:主函数(C语言规则必须有且只能有一个主函数)。***/...

如何用C语言编写一个LED灯渐变的程序
TR0 = 1; \/\/开启定时器 ET0 = 1; \/\/定时器0中断打开}void Timer0_ISR() interrupt 1 \/\/中断服务程序{ static data unsigned char us250; if (++us250>=4) {++ms; us250=0;}}void main(){ data unsigned char p1,p2; ms=0; SetupTimer0(); EA ...

用单片机c语言一个按键控制led的闪烁和熄灭,就是按一下闪烁,再按就熄灭...
首先你的贴出来的程序不完整,最好贴出完整代码!其次,如果你的程序没问题的话,你的LED闪烁是必须在你按住按键且不能弹起情况下才会发生的,你是一直按着吗?而且注意你n的类型,因为你这样一直加,会溢出的

...一下,延迟1分钟后开灯,灯亮半个小时就熄灭的程序?急需!
如果对时间要求不精确,用软延时即可。include<reg52.h> define uchar unsigned char define uint unsigned int sbit s=P1^0;sbit led=P1^1;void delayms(uint i) \/\/1ms延时程序 { uchar j;for(;i>0;i--){ for(j=0;j<125;j++)\/\/如果延时时间误差较大,可按比例改变125这个数 \/\/取值...

51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按...
flash=~flash;\/\/按键按下后执行动作 } } } void ledflash(){ if(flash){ led=1;\/\/点亮 delay(100);\/\/延时100MS led=0;\/\/熄灭 } else led=0;} void delay(unsigned int i){自己根据单片机频率写个1MS带形参的演示程序} 这个程序是现写的。。应该能执行,有些细节没有写,自己修改下,...

C语言实现四个LED依次点亮,依次熄灭
一个最直观的。#include\/\/声明头文件#defineledP1#defineuintunsignedintvoiddelay(uinti)\/\/延时函数{uintj;while(i--){for(j=0;j<120;j++);}}voidmain(){while(1){led=0X00;delay(1000);led=0X01;delay(1000);led=0X03;delay(1000);led=0X07;delay(1000);led=0X0f;delay(1000);...

...程序:两个按键控制两个led,按键按住不放led闪烁,松手led熄灭...
一个按键时程序如下:while(1){ if(key==0)\/\/按键按下 { delayms(20);\/\/延时消抖 if(key==0)\/\/再次判断按键是否按下 { while(key==0)\/\/按键没有抬起 { led=!led; delayms(200);}\/\/LED闪烁 } } else led=0;}

相似回答