如果CUP主频为40mHz,则时钟周期为1/40=0.025微秒。
在808X中,一条LOOP指令如果实现跳转的话需要18个时钟周期,退出时需要5个时钟周期。所以这个延时子程序循环部分的延时(0.025*18*255+5)微秒,其他语句的延时基本可以忽略
这个可以做到,如果晶振是12M的话,一下方法可以腊弊实现延时1小时,精确度在秒级别。DELAY1H:
MOV R7,#1801/1000000
DLY1H:
LCALL DELAY_20S180*19.960603s +2*180
DJNZ R7,DLY1H2*180/1000000
RET2/1000000
共延时时间:3592.9s误差为7.1秒,如果再精确的话,再加一耐局余昌滚点延时就可以了。
DELAY_20S:Total=19.960603s
MOV R2,#1
DLY1:
MOV R3,#2001*200
DLY2:
MOV R4,#2481**200*200
DJNZ R4,$2**248*200*200
DJNZ R3,DLY22*200*200
DJNZ R2,DLY12*200
RET2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)