单片机的时钟根源上都是晶振上发展而来的,也就是说,晶振,是整个单片机的时钟树的树根,由这颗树根上,发展出其他的枝叶,例如单片机指令读取时钟,定时器时钟,外中断采样时钟,串口波特率发生时钟,ALE时钟等等。
ALE时钟,是众多单片机时钟中的一员,是单片机对机器时钟的二分频,所以是机器时钟的一半。
为什么会这样呢?因为ALE是用于外部总线的,外部总线是地址总线和数据总线复用,也就是说,有一个时钟周期用来读写地址,另一个时钟用来读写数据,所以,ALE的频率只能是单片机机器频率的一半。
追问比如执行MOVX指令就会丢失一个ALE脉冲,不是晶振确定吗?
追答这个怎么说呢,不能叫丢失,明白吗?丢失,是指你本来应该是这样,然而,你却少了一个或者几个,是不正确的,那样才叫丢失,你这个ALE不是丢失,本来就是二分频,本来就比单片机的机器频率小。
你执行MOVX的时候,要先读写地址,此时ALE动作一次,再读写数据,此时,ALE不需要动作,所以,你就能看出来,ALE是机器时钟的一半。