要知道怎么算,还要看其汇编代码,汇编语言多重循环延时有计算公式,但这不是你学C语言的目的 C语言代码易复制,只管复制就行,本来它就用于延时精度要求不高的场所,如果晶振频率不同可以修改120这个值,但它与延时时间不一定是正比关系,需实验确定,大致准确就行,要想准确延时,还是要用单片机内的定时器
要确定这个120怎么来的,你可以查看这段程序的反汇编代码。看这段代码,内层循环是1ms,外层循环确定延时q x 1ms。1ms的定时在实际项目中都是采用定时器。
没有算法,一般都是通过仿真,在合适位置设置断点,看执行子程序要多长时间