将以12MHZ晶振为例,具体解说MCS-51单片机中汇编程序延时的准确算法。
指令周期、机器周期与时钟周期
时钟周期:也称为振动周期,一个时钟周期 = 晶振的倒数。
若干个时钟周期组成一个机器周期,用来完结一个根本操作。机器/总线周期是CPU经过总线与外部逻辑(存储器或I/O端口)进行一次通讯所需的时刻。
指令周期由若干个机器周期组成,CPU履行一条指令所需的时刻。指令不同,所需的机器周期也不同。
MCS-51单片机的一个机器周期 = 6个状况周期 = 12个时钟周期。
MCS-51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包括一个机器周期,即12个时钟周期,所以一条单周期指令被履行所占时刻为12*(1/12000000)=1μs。
1秒延时程序:
DEL:
MOV R7,#10
DEL1:
MOV R6,#200
DEL2:
MOV R5,#248
NOP
DJNZ R5,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
延时机器周期数 = [(2*第一层循环+3)*第二层循环+3]*第三层循环+3
其间3,其一是MOV R7,#10奉献的,其二是RET奉献的。
第一层循环为最内循环。
未考调用时刻,单片机小精灵里以为调用时刻固定为2个机器周期。
NOP机器周期数 = 第一层循环 * 第二层循环
成果为1000031us = 1.000031s
MCS51汇编准确延时程序剖析
将以12MHZ晶振为例,详细讲解MCS-51单片机中汇编程序延时的精确算法。指令周期、机器周期与时钟周期时钟周期:也称为振荡周期,一个时钟周
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/259959.html