时序的由来
我们已经知道单片机执行指令的过程就是顺序地从ROM程序存储器中取出指令一条一条的顺序执行,然后进行一系列的微操作控制来完成各种指定的动作它在协调内部的各种动作时必须要有一定的顺序换句话说就是这一系列微操作控制信号在时间上要有一个严格的先后次序这种次序就是单片机的时序这就好比我们学校上课时用的电铃为了保证课堂秩序学校就必须在铃声的统一协调下安排各个课程和活动那么单片机的时序是如何规定的呢接着往下看。
时序的周期
计算机每访问一次存储器的时间我们把它称为一个机器周期,它是一个时间基准,就象我们日常生活中使用的秒一样,计算机中一个机器周期包括12个振荡周期,什么是振荡周期:一个振荡周期是多少时间振荡周期就是振荡源的周期,也就是我们使用的晶振的时间周期一个12M的晶振,它的时间周期是多少呢?电子技术过的朋友应该不难算出T=1/f,也就是1/12微秒那么使用12M晶振的单片机它的一个机器周期就应该等于12*1/12微秒也就是1S。
内部时钟电路
在MCS-51单片机的内部有一个高增益的反相放大器,其输入端为引脚XTAL119脚,输出端为XTAL218脚,我们只要在外部接上两个电容和一个晶振就能构成一个稳定的自激振荡器。它的内部电路的工作原理就不介绍了,这里主要讲一下电容和晶振的选择,看上面的图晶振的大小与单片机的振荡频率有关,我们到串行接口时再详细讲解电容的大小影响着振荡器振荡的稳定性和起振的快速性,通常选择10-30P的瓷片电容或校正电容。另外在设计电路时晶振和电容应尽可能的靠近芯片以减少pcb板的分布电容,保证振荡器工作的稳定性提高系统的抗干扰能力。
外部时钟电路
除了内部时钟方式外单片机还可以采用引入外部时钟的振荡方式什么时候需要采用外部时钟方式呢当我们的系统由多片单片机组成时为了保证各单片机之间时钟信号的同步就应当引入唯一的公用的外部脉冲信号作为各单片机的振荡脉冲此时应将XTAL2悬空不用外部脉冲信号由XTAL1引入如上右图所示这是大虾们的作品在此就不介绍了
89C51单片机中有些指令只要一个机器周期而有些指令则需要两个或三个机器周期另外还有两条指令需要4个机器周期这也不难理解你在家擦地板的话总比擦桌子的时间要长不过我可是大男子主义很少做家务的开句玩笑如何衡量指令执行时间的长短我们就要用到一个新的概念指令周期—即执行一条指令所需的机器周期INTEL公司规定了每一条指令执行的机器周期当然这不需要我们非把它记住不过在这里DJNZ指令我们是要记住的它是双周期指令执行一次需要两个机器周期即2S12M晶振的话以后我们的实验延时的时间就应该算出来了吧是62500*2S=125000S也就是125mS这么大的数字也就0.125S怪不得LED1闪烁的这么快,这延时的使用以后会讲。。。
单片机的时钟电路
大家已经知道单片机是在一定的时序控制下工作的那么时序和时钟又有什么关系呢时钟是时序的基础单片机本身就如同一个复杂的同步时序电路为了保证同步工作方式的实现电路就要在唯一的时钟信号控制下按时序进行工作那么单片机内的时钟是如何产生的呢。
贴图:
技术专区
- mybatis动态sql详解
- 用VHDL语言设计数据传输系统中的HDB3编码器
- 裸机程序如何驱动硬件?看前辈是怎么说的
- 应用面向对象编程SoC原则的典型示例
- 嵌入式开发之java常用开发工具介绍