引言
在我们做学习单片机时,往往要用到延时程序,而要用汇编语言写出来,就必须对几个常见周期有所了解,这也算是学习单片机的基本知识。
时钟周期
时钟周期,又称为震荡周期,是为单片机提供定时信号的震荡源的周期,是单片机最基本的时间单位。谈到时钟周期就必须说晶体振荡器即即晶振,晶振可以说是单片机的心脏,它为单片机提供一个时钟频率 fosc(震荡频率)。
而所谓的震荡频率(时钟频率)自然是晶振一秒钟震荡的次数。时钟频率越高,单片机运行速度越快,就如电脑的CPU什么可以加速到多少GHz一样。自然时钟周期Tosc=1/fosc.
例如 震荡频率为12MHz的单片机即 fosc = 12MHz,那么震荡周期
Tosc = 1/fosc= 1/12 us。
状态周期
状态周期是CPU从一个状态转换到另一状态所需要的时间。简单地说每个状态周期
Ts 分为两个震荡周期(时钟周期),即Ts = 2Tosc。
机器周期
这里我们以MCS-51单片机为例,它有固定的机器周期,一个机器周期包含六个状态例如,取指令、存储器读、存储器写等。即机器周期等于6个状态周期,而一个状态周期是2个时钟周期,因此一个机器周期又等于12个时钟周期。那么晶振频率为12MHz的的单片机的机器周期 T = 12*Tosc = 1 us。
指令周期
顾名思义,指令周期就是执行一条指令所需的全部时间。MCS-51单片机的指令周期通常是 1 ~ 4 个机器周期组成。
MCS-51单片机常见指令的指令周期:
指令 | 周期 | 时间 |
---|---|---|
MOV Rn,A | 1 | 1 us |
MOV Rn,#00H | 2 | 2 us |
ADD A,Rn | 1 | 1 us |
ADD A,#01H | 2 | 2 us |
DJNZ Rn,rel | 2 | 2 us |