求计算下面汇编延时程序的延时时间。
发布网友
发布时间:2022-08-19 11:38
我来回答
共1个回答
热心网友
时间:2023-10-24 01:08
延时程序的时间,与每条指令的机器周期数有关,例如题目中出现的
MOV Rn,data指令为1个机器周期,
DJNZ Rn,LOOP指令为2个机器周期。
而每个机器周期的时间,又由系统的时钟频率决定。以经典的51单片机为例,一个机器周期为12个系统时钟周期。若系统时钟频率为10M,即1个系统时钟周期为1us,则一个机器周期的时间为12us。
计算程序的延时时间,要先对照指令表,查出每条指令的机器周期数,再结合程序中出现的机循环次数,统计出程序总的机器周数。将总机器周期数乗以一个机器周期的时间,就得到了程序总的延时时间。
对于现在一些改良的51兼容单片机,1个机器周期已不再是12个系统时钟。例如STC的单片机中,就有4个系统时钟,甚至1个系统时钟的产品。所以在真正地计算延时的时候,必须要依据所选用单片机的芯片手册所提供的参数,以及电路设计的系统时钟频率进行。