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

单片机灯延时函数

发布时间: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
{
...
}

阅读全文

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

热点内容
安徽省编程教育培训班 浏览:297
单片机控制led灯点亮开关 浏览:630
pwm编程实例 浏览:214
arm9视频监控源码 浏览:939
安卓手机ps源码怎么分享 浏览:530
命令方块如何随机变换颜色 浏览:391
彩虹六号如何变更服务器 浏览:486
python标准库介绍 浏览:234
电脑出现文件夹被压缩需要重启 浏览:564
ip和源码的关系 浏览:21
空少程序员 浏览:557
加密货币销毁分红是啥意思 浏览:91
没有棉花和纸巾该怎么做解压包子 浏览:175
海康平台服务器地址映射 浏览:994
os系统压缩软件 浏览:76
程序员和技术员有区别吗 浏览:225
如何更改插件源码 浏览:305
凤凰模拟器要用加密狗吗 浏览:59
dos命令安装软件 浏览:12
诺基亚为什么不用安卓系统了 浏览:458