当前位置:首页 > c语言 > 正文

c51中实现延时的方法有哪些

今天给大家分享c51c语言延时,其中也会对c51中实现延时的方法有哪些的内容是什么进行解释。

简述信息一览:

c51单片机中C语言延时的问题!

1、延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。

2、在单片机的C语言编程中,可以使用循环结构来实现延时操作。具体而言,可以使用一个for循环来实现一段时间的延时。

 c51中实现延时的方法有哪些
(图片来源网络,侵删)

3、关于大小的值:如果是在C语言中,该值不仅与水晶振动、单片机本身的速度,但也与C的编译器,所以,虽然这个值可以精确计算,但大多数情况下,程序员是经验值。

4、标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。

C51单片机延时

\x0d\x0a\x0d\x0a 将汇编语言与C51结合起来,充分发挥各自的优势,无疑是单片机开发人员的最佳选择。 \x0d\x0a\x0d\x0a3 使用示波器确定延时时间 \x0d\x0a\x0d\x0a 利用示波器来测定延时程序执行时间。

 c51中实现延时的方法有哪些
(图片来源网络,侵删)

可以有很多办法,一是调整参数,使其延时5分钟或6分钟,循环24次或20次。二是将延时函数的形参改为长整型(32位)延时时间扩大65536倍。

很简单,51单片机使用12mhz的晶振,那么机器周期就是1us执行一条延时指令。10000条延时指令估计延时10ms左右,你可以使用仿真软件试一试时间。

现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。

C51延时1秒问题

执行空语句执行124次,大概就能延时到1秒.不是很准的.经验值。

先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。然后,我们要定义两个变量。接着,设定好定时器的工作方式。设置中断发生的机制。最后,我们要加进这几行代码进行初值的重装。

keilc51好像也是用C编程,一般延迟程序就是增加系统负载比如:int i,j;yanchi(){ for(i=0;i1000;i++)for(j=0;j1000;j++);} 这样就可以达到延迟的目的,具体参数你可以随便设。

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。

j=t*100;这一句了,如果把这一句给删了,那么你的程序就是延时100ms的,delay(10)就是延时一秒。

单片机启动时,端口为高电平即P1 = 0xff,时间比较的短,则会刚开始运行时八个灯全都亮。可以50ms定时20次,即TH0 = 0x3c,TL0 = 0xb0,这样误差会小一点。

在C51单片机中延时子程序的延时时间是怎么算的?

1、第一步:在延时程序没行后边标注该指令执行的机器周期第二步:在机器周期后边乘以该指令循环的次数第三步:计算总共用的机器周期数第四步:计算总延时时间。

2、j=t*100;这一句了,如果把这一句给删了,那么你的程序就是延时100ms的,delay(10)就是延时一秒。

3、单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。

4、用KEIL软件可以计算时间,将while的起始位置和终止位置加红点(双击即可);然后左侧的SEC后面的就是执行的时间。

5、// 2微秒,执行142次,for(a=2;a0;a--)是4微秒,即2*(142*4);for(c=1;c0;c--)// 2微秒,执行1次,即2*(142*4)=1136微秒;b=125,1000/8=125,再减去其它调用时间,应该b取值不大于125。

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

c语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。

要看你的时钟周期,如果是12Mhz的话,每个时钟周期MC=6*2/12 M =1us,所以延迟是让机器计数1000000下,上面那个公式你自己套用24Mhz的就是2000000下。c语言的循环次数你自己算,每条指令一个周期,所以楼上的程序在12Mhz下是1s延迟。

首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。然后添加c文件,接下来输入代码,先输入一个头文件命令。然后,进行宏定义,代码如图所示。然后声明P1口,如下图所示。

单片机12M晶振延时1us,只需要执行一个NOP就是了。C语言中也是如此。

关于c51c语言延时,以及c51中实现延时的方法有哪些的相关信息分享结束,感谢你的耐心阅读,希望对你有所帮助。