Y_G_G 发表于 2021-1-6 17:29 ok,谢谢啦 |
Johncui 发表于 2021-1-6 15:09 一步一步来的 你去看一下这DJNZ指令的含义就知道了,它要执行到条件满足了才执行下一个指令的 |
Y_G_G 发表于 2021-1-6 08:53 他这是在6运行完直接到9吗 |
在9那里循环250*250=62500次是对的,但对延时时间来说,9处的250次循环要包括(7的1T,8的2T*250 9的2T),所以总延时时间是:6处1T 7处250T 8处的500T*250 9处的2T*250 10处的2T ,所有时间加起来就是延时时间,其中T代表1个机器周期时间 |
循环的次数就是250*250呀,你这+250什么意思? 教材说的是"循环次数",并不是执行时间,执行时间是要计算上6和7, 而且,MOV指令是要一个时钟,而DJNZ是要两个时钟的 整个的执行时间是:1+250+250*250*2+250*2+2 分别对应的是6,7,8,9,10 但一般来说,在长延时里,主要的延时都是在8和9,其它的都可以不计算在内的,因为它占的时间是很少的,而且晶振也会有一定的误差 以上对应的是传统的8051系统 而常用的STC指令执行时间和传统的8051是不一样的 如果学汇编,你是一定要会计算这个的,当你学会计算这个之后,就可以在STC下载器那直接复制就行了 ![]() |