标题: 52单片机,12MH晶振,延时函数1ms为什么要用j<120,这里的120是怎么算出来的 [打印本页]

作者: 2995139380    时间: 2019-10-18 13:51
标题: 52单片机,12MH晶振,延时函数1ms为什么要用j<120,这里的120是怎么算出来的
求详解

JX(H[DHLL1V8(XAVENI1@4F.png (13.72 KB, 下载次数: 53)

延时函数

延时函数

作者: tyrl800    时间: 2019-10-18 15:42
大约为1ms,要精确的话用定时器
作者: 叫我红领巾    时间: 2019-10-18 16:38
这是不精确的延时函数 120是一个经验值 可以通过仿真看到时间大约在1ms
作者: 464545163    时间: 2019-10-18 16:46
12M,对应1/12us。在这用个12的整倍数  好计算。你也可以用别的
作者: Anger    时间: 2019-10-18 17:23
因为单片机的时钟是晶振分频来的,你可以理解为每个时钟周期循环了一次,大致就是延时了一个时钟周期,所以自己去查查单片机时钟频率
作者: csmyldl    时间: 2019-10-18 19:44
这不是算出来的,是通过仿真调试出来的,把延时程序模拟单片机运行环境去运行,发现123或124最接近1ms时间
作者: Y_G_G    时间: 2019-10-19 08:23
单片机是不能识别C语言的
C语言要经过编译器编译(也可以是说转换)成汇编,然后烧录到单片机的,大概就是这么一个过程吧
不同的编译器,编译的效率是不同的,所以,你这C代码也不确定延时的时间是多少
这个取值最初是由前辈们从C代码编译成的汇编代码中计算出来的,如果你会汇编,你也可以从编译的汇编代码中慢慢的计算
当然,这个已经是很成熟的东西了,在STC的烧录界面有直接的延时代码,每种单片机的延时的值都是不一样的
作者: zycstc    时间: 2019-10-19 12:55
这时实验得到的数值,对延时要求不高的情况下可以这么用,要精准可以使用T0或者T1进行延时
作者: sundarkday    时间: 2019-10-19 18:09
不确定延时




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