计算延时时间,首先计算耗费的机器周期的数目。
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
我感觉你说的不对。 DJNZ指令应该是2个机器周期。 而你说你的那数换成10进数是128 也就是说 你运行到DJNZ指令时 只走128次 也就是128*2=256UM