llgd.net
当前位置:首页 >> 求问这段汇编语言的延时程序怎么计算延时时间 >>

求问这段汇编语言的延时程序怎么计算延时时间

现在单片机种类太多,即便都是8051内核,系统架构也不完全一样,一个差别就是执行一条指令的时间不尽相同。所以你要根据具体的芯片资料,看看延时程序里用到的各条指令执行时间都是多少,然后计算总延时时间。

第一个延时,mov指令一个时钟,第二个DJNZ跳转是三个时钟,不跳转两个时钟,从255(0FFH)开始每次减一,255次,共255*3-1=764次,最后一次不跳转,只有两个时钟,所以减一,再加上第一条指令的一个时钟,结果是255个时钟,如果时钟周期是一微秒...

需要注意的一点就是DJNZ指令是2周期的,所以你的时间是循环次数乘以2. DELAY:MOV R7,#250 DEL1:MOV R6,#100 DEL2:MOV R5,#10 DJNZ:R5,$;2个机器周期 DJNZ:R6,DL2 DJNZ R7,DL1 2*10*100*250=500000us=0.5s 以上时间只是大概值,没有考虑...

首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOV AX,50L1:MOV BX,100L2:DEC BX JNZ L2DEC AXJNZ L1执行完之后时间大约为10ms多一点 根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。具体步骤如下:/导致这种情...

bios 中断有 int ah,86h cx:dx=千分秒 int 10h 在这个例子中可以这样: mov ah,86h mov cx,200 mov dx,0 int 10h

编码程序的一种变式。 CPU在执行语句的时候也是需要耗时的,只是CPU运行速度太快,我们没办法看清楚,所以如果CPU执行语句越多,所需要的时间就越多,根据这个原理,就可以通过让CPU随便执行语句,起到延时的效果,这被称为“软件延时”,CPU执行...

延时1S计算方法是将所有指令执行时间相加得出的。比如: DLY1S: MOV R2,#10 ;1 DLY1: MOV R3,#200 ;1*10 DLY2: MOV R4,#248 ;1*200*10 DJNZ R4,$ ;2*248*200*10 DJNZ R3,DLY2 ;2*200*10 DJNZ R2,DLY1 ;2*10 RET ;2 TOTAL=1+10+2000+992000+4000+...

12M晶振延时约10毫秒。 DELAY10MS: MOV R2,#20 DELAY10MS1: MOV R3,#250 DJNZ R3,$ DJNZ R3,DELAY10MS1 RET 12M晶振延时约20毫秒。 DELAY20MS: MOV R2,#40 DELAY20MS1: MOV R3,#250 DJNZ R3,$ DJNZ R3,DELAY20MS1 RET

一条条指令的时间数出来的,看循环一次的指令要多久,乘以循环次数,这种原地延时的程序,延时时间也都是个大概,循环执行中间,来中断的话,延时程序的时间就会加长,一般用在时间要求不用太准的地方。

单片机编程时延时程序其实就是一些循环指令组成的集合。比如: DELAY: MOV R2,#248 ;本条指令1T执行1次 DJNZ R2,$ ;本条指令2T执行248次 NOP ;本条指令1T执行1次 RET ;本条指令2T执行1次 所以延时时间为:1+248*2+1+2=500T,如果晶振是12M的话,...

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com