单片机使用的晶体振荡器的频率是12MHz,运行下列延时程序的延时时间是多少DELAY:MOV R7,#250LOOP2:MOV R6,#200LOOP1:NOPNOPNOPDJNZ R6,IOOP1 DJNZ R7,LOOP2 RET
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 10:46:02
单片机使用的晶体振荡器的频率是12MHz,运行下列延时程序的延时时间是多少DELAY:MOV R7,#250LOOP2:MOV R6,#200LOOP1:NOPNOPNOPDJNZ R6,IOOP1 DJNZ R7,LOOP2 RET
单片机使用的晶体振荡器的频率是12MHz,运行下列延时程序的延时时间是多少
DELAY:MOV R7,#250
LOOP2:MOV R6,#200
LOOP1:NOP
NOP
NOP
DJNZ R6,IOOP1
DJNZ R7,LOOP2
RET
单片机使用的晶体振荡器的频率是12MHz,运行下列延时程序的延时时间是多少DELAY:MOV R7,#250LOOP2:MOV R6,#200LOOP1:NOPNOPNOPDJNZ R6,IOOP1 DJNZ R7,LOOP2 RET
首先要明白,晶振12MHz时,机器周期1μs.
MOV R7,#,指令周期1μs
NOP,指令周期1μs
DJNZ R,指令周期2μs
RET,指令周期2μs
为计算程序执行时间,以注释形式给每条指令加上标号
DELAY: MOV R7,#250 ;1
LOOP2: MOV R6,#200 ;2
LOOP1:NOP ;3
NOP ;4
NOP ;5
DJNZ R6,LOOP1;6
DJNZ R7,LOOP2;7
RET 8
第3、4、5、6条指令每执行一次,耗费时间3x1μs+2μs=5μs
循环200次,耗时200x5μs=1000μs
加上第2条指令耗时1μs,第7条指令耗时2μs,内层循环总耗时1000μs+1μs+2μs=1003μs
外层循环250次,总共耗时250x1003μs=250750μs
加上第1条指令耗时1μs,第8条指令耗时2μs,整个程序耗时
250750μs+1μs+2μs=250753μs≈0.25s