单片机指令周期
传统的经典51单片机有,时钟周期、机器周期、指令周期,意义各不相同,下文做以分析。
时钟周期:单片机外接晶振的震荡周期就是时钟周期,时钟周期=晶振震荡周期。例如,外接11.0592MHz的晶振那么时钟周期就是 1/11.0592M 。
- 机器周期:MCU执行指令所消耗的最小时间单位。51单片机采用精简指令集(多嵌入式微处理器都是RISC,例如常用的ARM,MIPS, POWERPC等),部分指令所消耗的机器周期个数不一样,但必须是机器周期的整倍数。再此基础上,机器周期又划分为6个状态周期,S1-S6,每个状态分为2拍,P1-P2。P1=P2=时钟周期。通常说的8051系列单片机的的时钟频率是晶振频率的12分频,或者是1/12,就是这个意思。
- 指令周期:单片机执行某条指令所消耗的时间,它等于机器周期的整倍数。单周期指令就是指只有一个机器周期,多周期指令就是指有多个机器周期。
单字节单周期指令,只进行一次读指令操作。当第二个ALE信号有效时,PC并不加1,那么读出的还是原指令,属于一次无效的读操作。
双字节单周期指令,两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。
单字节双周期指令,两个机器周期有四次读指令操作,只有第一次有效。