零基础学习8051单片机(七)

本次主要介绍如何驱动几个I/O口,以及硬件的最后剩余部分。

一、I/O口的驱动

连接方法如图:

高电平驱动不恰当的原因:它的电流是非常小的,电流往外,发光二极管要是这么接就比较暗

二、时钟电路与时序

时钟电路实际上有内部时钟和外部时钟,片外接晶振,再加俩电容和片内的振荡器电路构成了一个时钟发生器,驱动单片机一拍一拍的运行,一般情况下都是先取指令,然后进行译码,最后发出驱动信号使单片机运行。

注:做一个单片机系统时,要有时钟电路复位电路时钟频率越高,单片机运行速度越快,时钟电路的稳定性也影响单片机的运行可靠性。

   CPU的时序信号有两类:

(1)对片内各个功能部件控制,用户无须了解;

(2)对片外存储器或I/O端口的控制这部分时序对分析、设计硬件接口电路至关重要

2.1  时钟电路设计

   时钟频率直接影响单片机运行速度,电路质量直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

   2.1.1 内部时钟方式

   AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,内部时钟电路如图:

这是利用了片内的振荡器,使它产生的控制信号可以发给各个功能部件。

晶振一般选择10~12兆的即可,具体范围通常在1.2~12MHZ,取小数,是因为串行口要保证发送数据的时候,波特率为整数,就需要这样的晶振,8051最高的时钟晶振频率为33MHZ,还要考虑稳定性,电容的典型值为30P,做proteus仿真时,可以不画

注:

C1和C2的典型值通常选择为30pF。电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。

晶振频率范围通常是1.2~12MHz。频率越高,单片机速度就越快。速度快对存储器的速度要求就高,印制电路板的工艺要求也高,即线间寄生电容要小。晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠工作。为提高温度稳定性,采用温度稳定性能好的电容。

常选6MHz或12MHz的石英晶体。随着集成电路制造技术的发展,单片机的时钟频率也在逐步提高,已达33MHz。

2.1.2外部时钟方式 

用现成的外部振荡器产生脉冲信号,常用于驱动多个单片机工作,便于多片单片机同步,一般为低于12MHz的方波。外部时钟源接到各个单片机的XTAL1端,XTAL2端悬空,如图:

注:

当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图:

 不需要自己在做一个振荡器驱动那些。

2.2  机器周期、指令周期与指令时序

各种指令时序与时钟周期相关。

2.2.1 时钟周期

时钟周期就是震荡器发出的时钟信号,发送这个信号的周期叫时钟周期,时钟控制信号的基本时间单位。若晶振频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。

2.2.2机器周期

 CPU完成一个基本操作所需时间为机器周期。

执行一条指令需要一个或几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等,这个时间段内叫做机器周期。一个机器周期是由一个或若干个时钟周期组成,51单片机是每12个时钟周期为1个机器周期,新型单片机好多一个机器周期就是一个时钟周期,所以现在新型的单片机速度都很快。

1个机器周期包括12个时钟周期,分6个状态:S1~S6。每个状态又分两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2,如图:

         

      2.2.3 指令周期

        执行一条指令所需的时间。

        简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。

        而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期。

注:

从指令执行时间看:

(1)单字节和双字节指令一般为单机器周期和双机器周期;

(2)3字节指令都是双机器周期;

(3)乘、除指令占用4个机器周期。

三、复位操作和复位电路

单片机初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。

3.1 复位操作

复位时,PC初始化为0000H,程序从0000H单元开始执行。

除系统正常初始化外,当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚为高电平,使AT89S51摆脱“跑飞”或“死锁”状态,而重新启动程序。

复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如图:

复位时,SP=07H ,而P0~P3引脚均为高电平。

在某些控制应用中,要注意考虑P0~P3引脚的高电平对接在这些引脚上的外部电路的影响。

例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。

3.2 复位电路设计

片内复位电路结构见图2-17。

复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个 机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路见图2-18。

对于CMOS型单片机,由于在RST引脚内部有一个下拉电阻,可将电阻R去掉,而将电容C选为10mF。

前者为片内复位电路,后者为上电复位电路,

前者为按键电平复位电路(用的较多),后者为按键脉冲复位电路。

所以,一个单片机小系统,由时钟电路、复位电路加上单片机组成即可。

有的芯片需要外扩其他芯片,需要高低电平,两种复位电路如(这是一个现成的电路,直接拿来用就行):

 注:

只让单片机复位不行,它外部还有一些器件,让那些器件也要复位,有些器件的复位时间很长,所以当复位以后,PC指针指向00地址时,要在往下加几条NOP指令,即供操作指令,要对复位验实,等待其他芯片都复位好,便于系统内的其他芯片能够可靠的复位。

四、低功耗节能模式(S51特有)

两种低功耗节电工作模式:空闲模式和掉电保持模式。

掉电保持模式下,Vcc可由后备电源供电。两种节电模式的内部控制电路如图:

PD:掉电位    IDL:空闲模式

这两位实际上是寄存器内的某两位

空闲模式:

周围的所有电路仍在工作,RAM和特殊功能寄存器里的东西都保存,只是CPU始终不驱动,省电

退出空闲模式:

两种方法退出:响应中断,硬件复位(一般按一下按钮就行,或者想办法让它那个RESET脚为两个机器周期,高电平大于两个机器周期就可以退出)。

掉电运行模式:

所有的时钟信号都封死了,只要把PD位置为1即可,片内的所有部件也都不用时钟驱动了,时钟过不去,片内的内容也已经被保存了。

注:解决掉电保护问题,首先要把电源接进来,那里面就有一个低电压检测电路,当电压掉了百分之10就把备用电池接上,防止里面的RAM和特殊功能寄存器把数据丢了,用软件就可以控制。

两种节电模式可通过PCON的位IDL和位PD的设置来实现。格式如下:

PCON寄存器各位定义:
SMOD:串行通信波特率选择
— :保留位。
GF1、GFO:用户使用的通用标志位
PD:掉电保持模式控制位,PD=1,则进入掉电保持模式

IDL:空闲模式控制位,IDL=1,则进入空闲运行模式,

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值