若80C51 的晶振频率为12MHz,试计算延时子程序的延时时间。(要求计算过程)

DELAY: MOV R1, #50DELAY1: MOV R2, #100HERE: DJNZ R2, HERE DJNZ R1,DELAY1 RET
2024-12-04 20:27:27
推荐回答(1个)
回答(1):

当晶振为12MHz时机器周期为1uS(微秒) 标准51的DJNZ指命用时为二个机器周期,由于大循环R2中的数是50,小循环每次被重置为#100 ,
故就应该是 1(MOV R1,#50用)+2*50*100(循环所用)+50(MOV R2,#100用的)+2 (RET用的) 这个50 是第一条 MOV R2,#100 每跳出循环重置R2时就要多用的一个机器周期) 再在运行中没有其它中断来干扰时就该是 每从调用进这个子程序开始到完成RET出来就要用 10,053 uS