ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:210.38KB ,
资源ID:16714935      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16714935.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第4章 MCS51单片机内部接口Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第4章 MCS51单片机内部接口Word下载.docx

1、当GATE“0”时,外部中断信号不参预控制,此时,定时/计数器的启停只受TRX的控制。:计数器方式还是定时器方式选择位。当C/0时为定时器方式;1时为计数器方式。M1和M0:操作方式选择位。对应4种操作方式如表4-1所示。表4-1 操作方式选择M1 M0操作方式功 能0 0方式013位计数器0 1方式116位计数器1 0方式2可自动再装载的8位计数器1 1方式3T0分为二个独立计数器,T1为串行口波特率发生器2定时/计数器控制寄存器TCON定时/计数器的控制寄存器是一个8位特殊功能寄存器,用来存放控制字,字节地址为88H,可以位寻址,位地址为88H8FH。其格式如下:8FH88HTCON(88

2、H)TF1TR1TF0TR0IE1IT1IE0IT0与外部中断、有关位,将在中断系统中介绍T1、T0运行控制位,可编程T1、T0溢出标志记录位TF1(TCON.7):T1溢出标志。当T1产生溢出时,由硬件置“1”,可向CPU发中断请求。CPU响应中断后被硬件自动清“0”,也可以由程序查询后清“0”。TR1(TCON.6):T1运行控制位。由软件置“1”或置“0”来启动或关闭T1工作。TF0(TCON.5):T0溢出标志(同TF1)。TR0(TCON.4):T0运行控制位(同TR1)。TCON的其它位将在后面详细介绍。复位后,TCON的各位均被清“0”。3定时/计数器的4种工作方式1) 方式0用

3、软件设置使方式寄存器TMOD中M1M000时,计数器长度控制按13位工作。由TX的低5位(TX的高3位未用)和THX的8位构成13位计数器(X取0或1)。图4.2表示了定时/计数器T1在方式0下的逻辑图。定时/计数器T0类似。图中C/是TMOD的控制位,当C/0时,选择定时器方式,计数器输入信号为晶振的12分频。1时,选择计数器方式,计数器输入信号为外部引脚P3.5(T1)。TR1是TCON的控制位,GATE是门控位,是外部中断1的输入端。当GATE1时,则计数器启动受外部中断信号和TR1相与之后的信号控制,如果保持TR1为高电平,只要为高电平,计数器便开始计数,当为低电平时,停止计数。利用这

4、一功能可测量引脚上正脉冲的宽度。TF1是定时/计数器的溢出标志。当定时/计数器T1按方式0工作时,计数输入信号作用于TL1的低5位;当TL1低5位计满产生溢出时向TH1的最低位进位;当13位计数器计满产生溢出时,使控制寄存器TCON中溢出标志TF1置“1”,并使13位计数器全部清零。此时,如果中断是开放的,则向CPU发中断请求。若定时/计数器将继续按方式0工作下去,则应按要求给13位计数器赋予初值。图4.2 定时/计数器T1(或T0)方式0逻辑图2) 方式1当用软件使方式寄存器TMOD中M1M001时,计数器长度控制按16位工作,即TL、TH全部使用,构成16位计数器,其控制与操作方式与方式0

5、完全相同。3) 方式2当用软件使方式寄存器TMOD中M1M010时,定时/计数器就变为可自动装载计数初值的8位计数器。在这种方式下,TL1(TL0)被定义为计数器,TH1(或TH0)被定义为赋值寄存器,其逻辑结构如图4.3所示。图4.3 定时/计数器T1(或T0)方式2逻辑图当计数器TL1计满产生溢出时,不仅使其溢出标志TF1置“1”(若中断是开放的,则向CPU发中断请求),而且还自动打开TH1和TL1之间的三态门,使TH1的内容重新装入TL1中,并继续计数操作。TH1的内容可通过软件预置,重新装载后其内容不变。因而用户可省去重新装入计数初值的程序,简化定时时间的计算,可产生相当精确的定时时间

6、。另外方式2还特别适合于把定时/计数器用作串行口波特率发生器。4) 方式3当用软件使方式寄存器TMOD中M1M011时,内部控制逻辑把TL0和TH0配置成2个互相独立的8位计数器,如图4.4所示。其中TL0使用了自己本身的一些控制位。、GATE、TR0、TF0,其操作类同于方式0和方式1,可用于计数也可用于定时。但TH0只能用于定时器方式,因为它只能对机器周期计数。它借用了定时器T1的控制位TR1和TF1,因此,TH0控制了定时器T1的中断。图4.4 定时/计数器T0方式3逻辑图方式3只适合于定时器T0,使其增加一个8位定时器。一般情况下,当定时器T1作为串行接口波特率发生器时,定时器T0才定

7、义为方式3, 以增加一个8位计数器。当T0定义方式3时,定时器1可定义为方式0、方式1和方式2。其逻辑结构如图4.5所示。(a)(b)(c)图4.5 定时器T0方式3时T1的逻辑结构(a)T1工作于方式0(b)T1工作于方式1(c)T1工作于方式2,4.2 MCS-51单片机中断系统MCS-51单片机有2个外部中断源输入:(P3.2)、(P3.3);内部有3个中断源:定时/计数器T0、T1的溢出中断和片内串行口接受或发送中断。当系统产生中断时,5个中断源的中断申请及中断控制分别由特殊功能寄存器TCON、SCON、IE和IP的相应位来锁存或控制。4.2.1 与中断有关的特殊功能寄存器1 定时/计

8、数器控制寄存器TCONTCON是定时/计数器T0、T1的控制寄存器,同时它又能锁存外部中断申请标志和定时/计数器T0、T1的溢出标志。TF1:定时/计数器T1溢出标志当启动T1后,T1即从初值开始计数,当T1计数产生溢出时,由硬件自动置位TF1并向CPU请求中断,当CPU响应该中断后,中断标志被硬件自动清除。TF0:定时/计数器T0溢出标志,其功能和操作同TF1。IE1:外部中断中断请求标志。当CPU检测到外部中断请求输入信号有效触发时,由硬件自动置位并请求中断,当CPU响应中断后中断标志被硬件自动清除。IT1:触发方式选择位。可由指令程控为“0”和“1”。当IT1=0时,INT1被指定为低电

9、平触发方式。CPU在每一机器周期的S5P2采样(P3.3)的输入电平。当采样值为低电平时,置“1”IE1。当IT1=1时,被指定为边沿触发方式,即下降沿有效。CPU在每一机器周期的S5P2都采样(P3.3)的输入电平,若一次采样值为高电平而下一机器周期采样值为低电平(说明在两次采样期间曾产生了一个下降沿)则置“1”IE1。IE0:请求标志,其功能同IE1。IT0:触发方式选择位,其功能同IT1。2 串行口控制寄存器SCONSCON为串行口控制寄存器,字节地址为98H,可以位寻址,复位后,SCON被清0。当串行口发生中断请求时,其低两位锁存串行口的发送中断和接收中断,其格式如下:SCON(98H

10、)TIRITI:串行口发送中断标志当CPU向串行口的发送数据缓冲器SBUF写入一个数据时,发送器就开始发送,当发送完一帧数据后,由硬件置“1”TI,向CPU申请中断。值得注意的是当CPU响应中断,转向串行口中断服务时,硬件不能自动清“0”TI标志,必须在中断服务程序中用指令清“0”。RI:串行口接收中断标志。若串行口接收器允许接收,当接收器接收到一帧数据后,置“1”RI,串行口接收器向CPU申请中断,同样RI必须在中断服务程序中用指令清“0”。由于IE0、IF0、IE1、IF1、RI、TI均可以位寻址,如果实际系统的实时性要求不高时,也可以选择采用查询方式工作。3 中断允许寄存器IE字节地址是

11、0A8H,可位寻址,IE格式如下:IE(A8H)EA/ESET1EX1ET0EX0EA:CPU中断总的使能位。EA=1,CPU开中断;EA=0,禁止所有中断。ES:串行口中断允许位。ES=1,开放串行口中断;ES=0,禁止串行口中断。ET1:定时/计数器T1溢出中断允许位。ET1=1,开T1中断;ET1=0,禁止T1中断。EX1:允许位。EX1=1,开中断;EX1=0,禁止中断。ET0:定时/计数器T0溢出中断允许位。ET0=1,开T0中断,ET0=0,禁止T0中断。EX0:EX0=1,开EX0=0,禁止MCS51单片机复位时,IE被清0,欲对中断进行管理必须对IE编程。4 中断优先级寄存器I

12、P字节地址是0B8H,可位寻址,MCS-51的中断分两个优先级,对于每一个中断源都可以通过对特殊功能寄存器IP编程以定义为高优先级或低优先级中断,以便实现二级中断嵌套。IP的各位定义如下:IP(B8H)PSPT1PX1PT0PX0PS:串行口中断优先级设定位。PS=1,串行口中断设定为高优先级;PS=0,串行口中断设定为低优先级。PT1:定时/计数器T1溢出中断优先级设定位。PT1=1,T1溢出中断设定为高优先级;PT1=0,T1溢出中断设定为低优先级。PX1:优先级设定位。PX1=1,外部中断设定为高优先级;PX1=0,外部中断设定为低优先级。PT0:定时/计数器T0溢出中断优先级设定位。P

13、T0=1,T0溢出中断设定为高优先级;PT0=0,T0溢出中断设定为低优先级。PX0:PX0=1,外部中断PX0=0,外部中断MCS51单片机复位后,IP被清0。4.2.2 中断系统优先级结构对IP寄存器的编程可把5个中断规定为高低两个优先级,它们遵循两个基本规则:一个正在执行的低级中断服务程序,能被高优先级中断请求所中断,但不能被同优先级中断请求所中断。一个正在执行的高优先级中断服务程序,不能被任何中断请求所中断。返回主程序后要再执行一条指令才能响应新的中断请求。为了实现这两个规则,中断系统内部设置了两个不可寻址的“优先级状态”触发器。当高级“优先级状态”触发器状态为“1”时,表示正在执行高

14、优先级中断服务,它禁止所有其它中断,只有在高级中断服务返回(执行RET1指令)时,被清“0”,表示可响应其它中断。当低级“优先级状态”触发器状态为“1”时,表示正在执行低优先级中断服务程序,它屏蔽其它同级中断请求,但不能屏蔽高优先级中断请求。在中断服务返回时(执行RET1指令)时,被清“0”。MCS-51有5(6)个中断源,但只有两个优先级,必然会有几个中断请求源处于同样的优先级。当CPU同时收到几个同优先级中断请求,MCS-51内部有一个硬件查询逻辑,它的查询顺序是:外部中断请求 最高定时/计数器T0溢出中断定时/计数器T1溢出中断串行口接受或发送 最低CPU将根据查询顺序来响应这些中断请求

15、。MCS-51中断系统的总体结构如图4.6所示。图4.6 中断系统总体结构4.2.3中断响应过程MCS-51单片机CPU在每一个机器周期查询每一个中断源,在机器周期的S5P2状态采样并按优先级处理有被激活的中断申请,若没有被下述条件所阻止,将在下一个机器周期的S1状态响应激活了的最高级中断请求。CPU正在处理同级或高优先级中断;现行的机器周期不是所执行指令的最后一个机器周期;正在执行的指令是RET1或是访问IE或IP(即在CPU执行RET1或访问IE、IP的指令后,至少需要再执行一条指令才会响应新的中断请求)。若存在上述任一种情况,中断将暂受阻,若不存在上述情况,将在紧跟的下一个机器周期执行这

16、个中断。CPU响应中断时,首先要完成这样几件工作:其一先置位相应的“优先级状态”触发器(该触发器指出CPU当前处理的中断优先级别),以阻断同级或低级中断申请;其二,自动清除相应的中断标志(T1或RI除外);其三,自动保护断点,将现行程序计数器PC内容压入堆栈,并根据中断源把相应的矢量单元地址装入PC中。CPU完成上述工作一般需38个机器周期。中断源矢量单元地址0003H定时/计数器T0000BH0013H定时/计数器T1001BH串行口0023H这些矢量单元之间各有8个单元的空间,一般情况下,8个地址单元难以容纳一个中断服务子程序,除非中断服务特别简单,因此,一般应该在这些矢量单元中存放一条无

17、条件转移指令,转移目标地址就是中断服务子程序的入口地址,以便有足够的空间来存放中断服务程序。例如:ORGLJMP2000H这样,实际上真正外部中断的中断子程序入口地址安排在2000H。中断服务子程序的最后一条指令应是RET1(中断返回)。RET1指令将清除“优先级状态”触发器,然后从堆栈弹出断点地址PC值,返回主程序继续执行主程序。4.2.4 外部中断的触发方式若外部中断被定义为电平触发方式(即ITX=0时),即输入低电平有效。该低电平维持到CPU响应中断为止足矣,在中断返回之前必须为高电平,否则CPU返回主程序后,将会再次响应该中断。由此可见,电平触发方式适合于外部中断输入以低电平输入,且中

18、断服务程序能撤除外部中断申请的情况。若外部中断被定义为边沿触发方式(即ITX=1),在这种方式下,CPU在一个机器周期采样外部中断输入引脚信号为高电平,而在紧接着下一机器周期采样为低电平,就立即置位外部中断申请标志,换言之,CPU将外部中断输入的负跳变锁存在相应的中断标志位中。即使CPU暂时不响应,中断申请标志也不会丢失,直到CPU响应该中断时,该标志才能清除。需要强调的是外部中断输入边沿的检测,需要2个机器周期,因此,外部中断输入的负脉冲宽度至少大于12个时钟周期(若晶振为12MHz,则应大于1s)才能保证被CPU采样。外部中断边沿触发方式适合于以负脉冲形式的外部中断请求。一般采用外部中断(

19、)时,外部中断源与单片机一般还应有握手线。在CPU响应中断后,在中断服务子程序中,要通过握手线告知中断源其中断申请已被响应,中断源接到通知后,可清除本次中断申请。准备后面继续向CPU提出中断申请。4.3 MCS-51单片机串行口4.3.1 串行口有关的特殊功能寄存器1. 数据缓冲器SBUF串行口中有两个物理空间上各自独立的发送缓冲器和接收缓冲器。这两个缓冲器公用一个地址99H,发送缓冲器只写不读,接收缓冲器只读不写。接收缓冲器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时响应接收器中断,没有把上一帧数据读走而产生两帧数据重叠问题。对于发送缓冲器,为了保持最大传送速率,一般为单缓冲型,因

20、为发送时CPU是主动的,不会产生写重叠问题。2. 串行口控制寄存器SCON其字节地址98H,可位寻址,位地址98H9FH。格式为D7D0SM0SM1SM2RENTB8RB8包括方式选择位、接收发送控制位及中断状态标志位。SM0、SM1:串行口方式选择位,如表4-2所示。SM2:允许方式2、方式3多机通讯控制位。在方式2或方式3中,如SM2=1,则接收到的第9位数据(RB8)为“0”时,不启动接收中断标志RI(RI=0)。当接到收的第9位数据(RB8)为“1”时,则启动接收中断RI(RI=1)。如果SM2=0,则接收到的第9位数据(RB8)无论为“1”或“0”均启动RI(RI=1)。在方式1时,

21、如SM2=1,则只有在接收到有效停止位时才启动RI,若没有接收到有效停止位,则RI为“0”。如果不是多机通讯,则无论串行口工作在方式0、1、2、3时,一般SM2都置为“0”。表4-2 串行口工作方式方式功能说明移位寄存器方式(用于I/O扩展)波特率为fosc/1218位UART,波特率可变(T1溢出率决定)29位UART,波特率为fosc/64或fosc/3239位UART,波特率可变(T1溢出率决定)REN:允许接收控制位。由软件置“1”时,允许接收;由软件置“0”时,禁止接收。TB8:在方式2和方式3中要发送的第9位数据。需要时由软件置位或复位。RB8:在方式2和方式3中是接收到的第9位数

22、据。在方式1时,如SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8。发送中断标志。接收中断标志。3. 特殊功能寄存器其字节地址87H,没有位寻址功能。与串行口有关的只有PCON的最高位。PCON(87H)SMODSMOD:波特率选择位。当SMOD=1时,波特率加倍。4.3.2 串行口工作方式串行口具有4种工作方式,我们从应用角度,重点讨论各种方式的功能和外特性,对串行口的内部逻辑和内部时序的细节不做详细讨论。1. 方式0方式0为移位寄存器输入/输出方式,可外接移位寄存器,以扩展I/O口,也可接同步输入/输出设备。按方式0工作,波特率是固定的,为fosc/12。这时数据的传送,无论是

23、输入还是输出,均通过引脚RXD(P3.0)端,移位同步脉冲由TXD(P3.1)输出。发送/接收一帧数据为8位二进制数,低位在先,高位在后。(1)方式0发送当串行口定义为方式0后,当一个数据写入发送缓冲器SBUF时,串行口即将8位数据以振荡频率的十二分之一的波特率,将数据从RXD端串行输出,TXD端输出移位同步信号,发送完时中断标志TI置“1”。(2)方式0接收当串行口定义为方式0并置“1”REN后,便启动串行口以振荡率的十二分之一的波特率接收数据,RXD为数据输入端,TXD为同步移位信号输出端,当接收器接收到8位数据时,置“1”中断标志RI。2. 方式1串行口定义为方式1时,传送一帧数据为10

24、位,其中1位起始位(低电平)、8位数据位(先低位后高位)、1位停止位(高电平)。方式1的波特率可变,波特率=2SMOD/32(T1的溢出率)。(1)方式1发送方式1发送时,数据由TXD端输出。CPU执行一条写入发送数据缓冲器SBUF的指令(例如,MOV SBUF,A),数据字节写入SBUF后,便启动串行口发送器发送,当发送完数据后,中断标志TI置“1”。(2)方式1接收方式1接收时,数据从RXD端输入。在REN置“1”后,就允许接收器接收。接收器以波特率16倍的速率采样RXD端的电平。当采样RXD引脚上“1”到“0”的跳变时启动接收器接收并复位内部的16分频计数器以便实现同步。计数器的16个状

25、态把一位的时间分成16等份,在每位时间的第7、8和9计数状态,位检测器采样RXD的值,接收的值是3次采样中取至少二次相同的值,以排除噪声干扰。起始位接收到的值不是“0”,则起始位无效,复位接收电路。在检测起始位有效时,则移入输入移位寄存器,开始接收本帧其余数据信息。当RI=0;同时接收到停止位“1”(或SM2=0)时,停止位进入RB8,置“1”中断标志RI。若以上二个条件任一条件不满足,所有接收信息将丢失,因此中断标志RI必须在中断服务程序中由用户清“0”。通常串行口以方式1工作时,SM2置为“0”。3. 方式2串行口定义为方式2时,串行口被定义为9位异步通信接口。传送一帧信息为11位,其中1

26、位起始位、8位数据位(先低位后高位)、1位附加的可程控为“1”或“0”的第9位数据位、1位停止位。方式2的波特率是固定的,波特率为2SMOD/64fosc。(1)方式2发送在方式2发送时,数据由TXD端输出。附加的第9位数据是SCON中的TB8,可作多机通信中的地址、数据标志,也可作数据的奇偶校验位。CPU执行一条写入发送缓冲器指令(例如MOV SBUF,A),就启动发送器发送,发送完一帧信息,置“1”TI中断标志。(2)方式2接收在方式2接收时,数据由RXD端输入,REN被置“1”以后,接收器开始以波特率16倍的速率采样RXD电平,检测到RXD端由高到低的负跳变时,启动接收器接收,复位内部16位分频计数器,以实现同步。计数器的16个状态把一位时间分成16等份,在每位时间的第7、8、9个状态,位检测采样RXD的值,若接收到的值不是“0”,则起始位无效并复位接收

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1