418854190 发表于 2021-2-17 21:46 請問你根據甚麼數據定出 20H & 21H =200 =延遲5秒? 工作頻率,DJNZ時鐘週期,循環次數...... |
leehk88 发表于 2021-2-17 14:36 我之前给20H21H#200 感觉和给#0的时间没差别啊 |
418854190 发表于 2021-2-17 07:52 DJNZ指令首先递减第一个操作数指示的字节,如果结果值不为零,则跳转到第二个操作数指定的地址。 0 递减后 是255 |
DJNZ 是 "先减一" 不為零則轉移的指令 0-1=? |
dalaoshi 发表于 2021-2-16 17:15 为啥是255 不是放进去的0吗 |
LOOP: DJNZ 20H, LOOP ;这一句跑了255次才到zero,跳下一行 DINZ 21H. LOOP ;这句也会跑255次,而每跑一次都会跳回上面的loop处,直到最后一次zero才跳下一行。 因此第一行得跑255 X 255次= 65025次,才会跳出LOOPING,延时当然很长。 |