单片机汇编时序问题

2025-01-02 18:56:23
推荐回答(2个)
回答1:

计算延时时间,首先计算耗费的机器周期的数目。

MOV R0,#80H ---1个机器周期 T
TSR1:DJNZ R0,TSR1 ---循环128遍,耗费128*2=256 T

MOV R0,#25H ----1T
TSR2: DJNZ R0,TSR2 ----37*2 T

每个T的时间,取决于晶振频率fosc。
延时500ms的程序,我这里有一个,经过实践验证,是非常准确的:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/95d6b8376e6bc6d7a2cc2bd5.html

回答2:

我感觉你说的不对。 DJNZ指令应该是2个机器周期。 而你说你的那数换成10进数是128 也就是说 你运行到DJNZ指令时 只走128次 也就是128*2=256UM