使用编译软件MPLAB的StopWatch功能,进行延时时间测试。测试频率:4HMZ
1)1ms延时程序:
call delay1ms
delay1ms: movlw 0x02
movwf 20h
dly1: movlw 0x0a5
movwf 21h
dly2: decfsz 21h,f
goto dly2
decfsz 20h,f
goto dly1
return
时间的计算:{(1+2)*165+2+1+1}*2+2+2+1=1.003ms
该时间包括call和return语句执行的时间。
其他ms级的延时通过修改循环次数就可以达到要求。
2)1s延时程序
call delay1s
delay1s: movlw 0x06
movwf 20h
dly1: movlw 0x0eb
movwf 21h
dly2: movlw 0x0ec
movwf 22h
dly3: decfsz 22h,f
goto dly3
decfsz 21h,f
goto dly2
decfsz 20h,f
goto dly1
return
延时时间计算:[(3*236+4)*235+4]*6+5=1.003s
同样包括call和return语句执行时间。
其他更长延时可以通过修改循环次数和循环嵌套的层数来实现。
文章评论(0条评论)
登录后参与讨论