理论教育 单片机应用技术项目教程:单片机最小系统

单片机应用技术项目教程:单片机最小系统

时间:2023-11-07 理论教育 版权反馈
【摘要】:MCS-51系列单片机最小系统是由单片机、时钟电路、复位电路和电源组成的,其示意图如图1-6所示。MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器。外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作的情况,以便于同步。这也是单片机应用系统设计者普遍关心的问题。

单片机应用技术项目教程:单片机最小系统

MCS-51系列单片机最小系统是由单片机、时钟电路、复位电路和电源组成的,其示意图如图1-6所示。这个系统是最简单的单片机系统,该系统做不了什么实际工作,与外界没有信息交换,但却是一个基本的框架结构,其他的实用单片机系统都是在这个框架的基础上进行扩充而得到的。下面对时钟电路与时序以及复位电路进行介绍。

1.时钟电路与时序

时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。MCS-51单片机本身是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机应在唯一的时钟信号控制下,严格地按时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关系。

(1)时钟电路

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

1)内部时钟方式。MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器。该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。如果将这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。图1-7所示是MCS-51单片机内部时钟方式的振荡器电路。

电路中的电容C1和C2通常选择为30pF左右,晶体的振荡频率的范围通常是在1.2~12MHz。晶体的频率越高,系统的时钟频率就越高,单片机的运行速度也就越快。

常选择MCS-51系列单片机的振荡频率为6MHz或12MHz的石英晶体。随着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,目前高速单片机芯片的时钟频率已达40MHz。

2)外部时钟方式。外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作的情况,以便于同步。对外部脉冲信号的要求一般为低于12MHz的方波。

将外部的时钟源直接接到XTAL2端,直接输入到片内的时钟发生器上。MCS-51单片机外部时钟方式的振荡器电路如图1-8所示。XTAL2的逻辑电平不是TTL的,故建议外接一个4.7~10kΩ的上拉电阻

978-7-111-43071-1-Chapter01-28.jpg

图1-7 MCS-51单片机内部时钟方式的振荡器电路

978-7-111-43071-1-Chapter01-29.jpg

图1-8 MCS-51单片机外部时钟方式的振荡器电路

(2)时序

在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类:一类用于片内对各个功能部件的控制,这类信号很多,但用户无需了解,故通常也不做介绍;另一类用于对片外存储器或I/O端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。这也是单片机应用系统设计者普遍关心的问题。

1)时序定时单位。

①节拍。把振荡脉冲的周期定义为节拍(用“P”表示)。

若晶体的振荡频率为fosc,则1个节拍=Tosc=1/fosc。

②状态。振荡脉冲经过二分频后,就是单片机的时钟信号,把时钟信号的周期定义为状态(用“S”表示),即1个状态=2个节拍,将前半个周期对应的节拍记为P1,后半个周期对应的节拍记为P2。

③机器周期。单片机中常把执行一条指令的过程分为若干阶段。每个阶段为一个基本操作,如取指令、读或写数据等。CPU完成一个基本操作所需要的时间称为机器周期。

MCS-51系列单片机每6个状态(即12个节拍)为一个机器周期。一个机器周期中的6个状态依次表示为S1~S6,由于一个状态包括两个节拍,所以一个机器周期有12个节拍,分别记做S1P1、S1P2、S2P1、S2P2、…、S6P2。

若晶振频率fosc=6MHz,则Tcy=2µs;若fosc=12MHz,则Tcy=1µs。

④指令周期。指令周期是执行一条指令所需的时间。可将MCS-51单片机中的指令按字节分为单字节、双字节、三字节指令,因此执行一条指令的时间也不同。(www.daowen.com)

按指令长度及指令周期可将指令分为单字节单机器周期指令、单字节双机器周期指令、单字节四机器周期指令(乘除法指令)、双字节单机器周期指令、双字节双机器周期指令和三字节双机器周期指令。在编程时要注意选用具有同样功能而机器周期数少的指令。

2)MCS-51单片机的指令时序。当MCS-51单片机执行任何一条指令时,都可以被分为取指令阶段和执行指令阶段。取指令阶段简称为取指阶段,单片机在这个阶段里可以把程序计数器PC中的地址送到程序存储器中,并从中取出需要执行指令的操作码和操作数。在指令执行阶段可以对指令操作码进行译码,以产生一系列控制信号来完成指令的执行。

图1-9列举了MCS-51单片机几种典型指令的取指令和执行指令的时序图。图中的ALE信号是为地址锁存而定义的,该信号每有效一次,则对应MCS-51单片机的一次读指令的操作。ALE信号以时钟脉冲1/6的频率出现,因此在一个机器周期中,ALE信号每两次有效,第1次在S1P2和S2P1期间,第2次在S4P2和S5P1期间,有效宽度为一个状态周期。

978-7-111-43071-1-Chapter01-30.jpg

图1-9 MCS-51单片机几种典型指令的取指令和执行指令的时序图

a)单字节,单周期指令 例:INC A b)双字节,单周期指令 例:ADDA,#data c)单字节,双周期指令 例:INC DPTR d)双字节,双周期指令 例:MOVX类指令

现对几个典型指令的时序以下说明。

①单字节单机器周期指令(如INC A)。对单字节指令只需要进行一次读指令操作。当第2个ALE信号有效时,由于PC没有加1,所以读出的还是原指令,属于一次无效的操作。

②双字节单机器周期指令(如ADD A,#data)。在这种情况下对应于ALE的两次读操作都是有效的,第1次是读指令码,第2次是读指令的第2字节(本例中是立即数)。

③单字节双机器周期指令(如INC DPTR)。在两个机器周期内共进行4次读指令的操作,但后3次的读操作是无效的。

④单字节双机器周期指令(如MOVX类指令)。如前所述,每个机器周期内有两次读指令操作,但MOVX类指令情况有所不同,这是因为执行这类指令时,先从ROM取指令,然后对片外RAM进行读/写操作。第1个机器周期时与其他指令一样,第1次是读指令(操作码)有效,第2次是读指令无效。在第2个机器周期时,进行片外RAM访问,此时,与ALE信号无关,因此,不产生读指令的操作,如图1-9所示。

2.复位电路

单片机复位是指使CPU和系统中的其他功能部件都恢复到一个确定的初始状态,且从这个初始状态开始工作。单片机在上电时、断电后或发生故障后都要复位。MCS-51系列单片机的复位条件是必须使第9(RST,即RESET)引脚上连续出现两个机器周期以上的高电平

图1-10所示为上电复位电路图。该电路是利用电容的充电特性(在充电起始充电速度很快,电容相当于短路;随着充电时间的延长,充电速度越来越慢;最后当充电速度变得非常小即充电达到平衡时,电容相当于开路)来实现复位的。在接通电源瞬间,VCC通过电容C加到RST端;随着充电时间延长,RST端的电位逐渐下降;在充电完毕后,RST端电位变为0。在这里需要说明的是,加到RST端高电平的时间是由RC参数来决定的。为保证可靠地复位,RC要大,但是不能太大,过大会使得RST端的高电平持续时间过长,使系统长时间处于复位状态,这是不允许的。

图1-11所示为按键复位电路图。该电路除了具有上电复位功能外,还可通过RST键实现复位。例如当系统在工作过程中出现故障时,若要复位,则可通过按下该复位键来实现。当RST键被按下时,电源VCC通过电阻R1和R2的分压,在RST端产生一高电平,使系统实现复位;在按键被弹起后,该通路断开,RST端高电平消失,复位结束。

978-7-111-43071-1-Chapter01-31.jpg

图1-10 上电复位电路图

978-7-111-43071-1-Chapter01-32.jpg

图1-11 按键复位电路图

单片机复位后内部各SFR的状态表如表1-6所示。

表1-6 单片机复位后内部各SFR的状态表

978-7-111-43071-1-Chapter01-33.jpg

注:表中的“*”表示无关位。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈