标题: 这两个单片机程序为什么都是延时一秒,新学者求助 [打印本页]

作者: shuyu    时间: 2018-1-21 09:47
标题: 这两个单片机程序为什么都是延时一秒,新学者求助
第一个,,,,,,,,,,,,,,,,,
#include<reg52.h>
sbit led=P1∧0;
viod main()

while{
a=51000;
led=0;
while(a--);
a=51000;
while(a--);
led=1;
a=51000;
while(a--);
a=51000;
while(a--);





第二个,,,,,,,,,,,,,,
#include <reg52.h>
#define uint unsigned int
sbit led=P1∧0;
uint i,j;
void main()

while(1)

led=0;
for(i=1000;i>0;i--)
for(i=110;i>0;i--);
led=1;
for(i=1000;i>0;i--)
for(i=110;i>0;i--);




作者: 阿飞132    时间: 2018-1-21 11:55
一个是while循环,一个是for循环,都是占用CPU来延时,表示结果的程序有很多种,选自己适合的就行,一般延时程序还是最简单的好,工程上一般都用定时器,不用delay,
作者: ahshmj    时间: 2018-1-21 12:00
这么长的延时,还是用定时器吧。
作者: shuyu    时间: 2018-1-21 13:02
阿飞132 发表于 2018-1-21 11:55
一个是while循环,一个是for循环,都是占用CPU来延时,表示结果的程序有很多种,选自己适合的就行,一般延 ...

谢谢,定时器?用的是中断函数吗?
作者: zdaoyuan    时间: 2018-1-22 13:13
师傅这样教的他就这样写了呗,感兴趣的话可以买的ws2818的LED灯珠来玩玩,你会对延时有更深的理解
作者: 流逝记忆    时间: 2018-1-22 18:19
你这是LED 灯的 一秒延时是最基础的 就像代码中的   hello,word 一样
作者: angmall    时间: 2018-1-22 19:14
C 语言延时方法


图1 是 C 语言编程常用的4种延时方法,其中两种非精确延时,两种精确一些的延时。for 语句和 while 语句都可以通过改变 i 的范围值来改变延时时间,但是 C 语言循环的执行时间都是不能通过程序看出来的。精确延时有两个方法,一个方法是用定时器来延时,这个方法会要详细介绍,定时器是单片机的一个重点。另外一个就是用库函数nop();,一个 NOP 的时间是一个机器周期的时间,这个也会要介绍。

非精确延时,只是在我们做一些比如小灯闪烁,流水灯等简单演示实验中使用,而实际项目开发过程中其实这种非精确延时用的很少。

Delay01.png (14.38 KB, 下载次数: 49)

图1

图1





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1