TOP

使用“Decms”指令做延时处理时,需注意哪些问题?

Decms操作格式及说明如下:

指令格式 描述 C DC Z 周期
DECMS M M ← M – 1, 如果寄存器等于0, 则跳过下一条指令 - - - 1+N+S
其中,M可以是系统寄存器,也可以是用户自定义的寄存器。
使用Decms指令时需注意,该指令周期为1+N+S,其中“S”表示如果跳过下条指令则S=1,如果顺序执行下一条指令则S=0;“N”表示:当M为用户自定义的寄存器时N=1,当M为系统寄存器时S=0。

下面一段程式演示了当Fcpu为1us时,如何使用Decms实现500us的延时;

Delay500us:
Mov a,#125
Mov wk00,a
@@:
Decms wk00 ;wk00为用户自定义的寄存器
JMP @B ;跳到上一个
Nop
Ret