导航:首页 > 操作系统 > 单片机灯延时函数

单片机灯延时函数

发布时间:2023-06-01 21:39:13

单片机中c编程的流水灯中关于延时~~~~

while(1)
{
delayms(250);
.......
.......
}调用延时函数给他传递一个250的参数、
当第一次执行时
ms=250,
执行250--时,此时执行:
for(i
=
0;
i
<
120;
i++);
直到i>=250时候才接下来执行
ms--(即249--);
也就是说
250每次自减
1
都要执行
120次
i++;
如果你把120
改成300
只是扫描时间变长了,也就是延时的更长了,可能第一个LED点亮时间比较长,影响了你的正常看现象。你等一段时间可能就会流动了。这个就是设置的问题。

Ⅱ 单片机LED延时原理问题

这个是延时程序,你通过keil编译调试中,会看到其汇编代码;

当带入的参数=1时,你单步执行汇编代码,直至 ret,然后你看看都执行了哪些指令,并把所消耗的指令周期累加起来,大致就10个机器周期,而当单片机晶振为12MHz时,则一个机器周期约为 1uS,那么就是从进入这个延时程序到返回,所经历的时间正好是10uS;

Ⅲ 单片机LED灯闪烁延迟程序

int main(void)
{
while(1)
{

D3=0;
yanshi();
D3=1;
yanshi();
}
}
注意单片机程序是从main函数开始执行的,注意单片机主函数内部不加while大循环,程序会一直往下执行,直到RAM溢出产生错误为止程序将跑飞,所以主程序内部一定要加大循环,上面的格式是经过无数工程师的验证,主函数的书写格式。

Ⅳ 51单片机用c语言怎么写延时函数

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环
void delay(int i){
int x,y;
for(x=i;x>0;x--){
for(y=120;y>0;y--)
}
}
参数 i 代表该函数延时多少ms

Ⅳ 单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)

单片机流水灯C语言程序的源代码如下:

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8个流水灯反向逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8个流水灯依次全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8个流水灯依次反向全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp>>=1;

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(5)单片机灯延时函数扩展阅读

51单片机流水灯的源代码如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

for(i=0;i<8;i++)

{

P0=_crol_(P0,1);

delay(500);

}

}

}

Ⅵ 51单片机 延时函数

delay(u16i)
{
while(i--);//这里就是当i减1不为0时一直做减1运算,知道i为0跳出循环。
}
想当于:
delay(u16i)
{
while(i--)
{
;
}
}

Ⅶ 单片机C语言编程关于延时函数

单片机的C语言关于延时函数主要有两种
一种是用for循环,通过单片机执行空指令达到延时的目的
如:
for(i=0;i<100;i++)
{
;
}
这个简单的语句会执行100次空指令
每一次指令的时间可以大概确定
因此这个是最简单的延时函数
第二种是通过定时器的方式来实现
定时器是通过对单片机的晶振进行计数
然后在定时器中断服务函数里面实现定时时间的计算及设置
51单片机的定时器0中断服务函数为
void
time0()
interrupt
1
{
...
}

阅读全文

与单片机灯延时函数相关的资料

热点内容
云服务器宕机概率 浏览:225
在线买药用什么app知乎 浏览:808
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:598
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:738
想在上海租房子什么app好 浏览:184
编译程序各部分是必不可少的吗 浏览:885
编程不超过十行 浏览:763
数电编译器的作用 浏览:337
时间算法与现在有什么区别 浏览:162
7zip解压后没文件夹 浏览:902
为什么安卓送玫瑰ios收不到 浏览:8
美篇文章加密是什么意思 浏览:82
ilasm编译dll 浏览:39
呼吸灯单片机程序 浏览:954
linux域socket 浏览:250
qq分身怎么样才能加密 浏览:457