求计算下面汇编延时程序的延时时间。

求计算下面汇编延时程序的延时时间。,第1张

延时程序的时间,与数带每条指令的机器周期数有关,例如题目中出现的

MOV Rn,data指令为1个机器周期,

DJNZ Rn,LOOP指令为2个机器周期。

而每个机器周期的时间,又由系统的时钟频率决定。以经典的51单片机为例,一个机器周期为12个系统时钟周期。若系统时钟频率为10M,即1个系统时钟周期为1us,则一个机器周期的时间为12us。厅链

计算程序的延时时间,要先对照指令表,查出每条指令的机器周期数,再结合程序中出现的机循环次数,统计出程序总的机器周数。将总机器周期数乗以一个机器周期的时间,就得到了程序总的延时时间。

对于现在一些改良的51兼容单片机,1个机器周期已不再是12个系统时钟。例如STC的单片机中,就有4个系统时钟,甚至1个系统时钟的产品。所以在真正地计算延时的时候,必须要依据所选用单片机的芯片手册所提供的参数,以及电路设计的系统扮毕孙时钟频率进行。

一条条指令的时间数出来的,看循环一次的指令要多久,乘以循环次数,这种原地延时的程序,延时时间也都是慧搭个大概,循胡碧旦环执行中间,裤扰来中断的话,延时程序的时间就会加长,一般用在时间要求不用太准的地方。

比如

c51单片机的定时器1

是16位定时器

那么就是最大是65536

如果晶振频率是12MHZ

那么

最大定时时间是65.536毫秒

你定时一秒

就可以把定时器装初值

是15536

15536加到65536

正好是50毫秒

经弯余过20次50毫秒吵戚

那么就埋碰滚是1s


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8270402.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存