回 帖 发 新 帖 刷新版面

主题:延时问题


晶振是12MHZ

MOV R1,#3 ;以下为主机发出延时537微秒的复位低脉冲的延时代码段 
TSR1: MOV R0,#107 
DJNZ R0,$ 
DJNZ R1,TSR1 
SETB P2.2 ;然后拉高数据线,即释放 
NOP 
NOP 
 
大家帮我看看这个延时程序到底延时了多长时间,怎么计算啊????急!!!!!~~~~~~~~~~~~~~~~~~~~~~~~~

回复列表 (共3个回复)

沙发

是不是这样计算:
 MOV R0,#107 ;用了1us
DJNZ R0,$    ;用了2us(共执行了107次,共是214us)
DJNZ R1,TSR1 ;用了2us

整段执行了3次
t=(1+214+2)*3=651us
是这样计算吗?

板凳

  我觉得你应该懂这段程序的执行过程,然后在书本上找,绝对有关于每个汇编指令执行一次需要多少个机器周期的列表。然后你需要根据你使用的系统晶振计算出一个机器周期是多少时间,(一般的12M的晶振机器周期是1微秒),楼上的计算方法正确!

3 楼

大概是,楼主何必如此辛苦?现在的晶振很少合格的

我来回复

您尚未登录,请登录后再回复。点此登录或注册