外部中断-串口通讯_第1页
外部中断-串口通讯_第2页
外部中断-串口通讯_第3页
外部中断-串口通讯_第4页
外部中断-串口通讯_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中断和中断系统 CPU正在处理某件事的时候,外部发生了另一事件,请求CPU迅速处理,CPU暂时停止当时的工作,转入处理所发生的事件,处理结束后,再回到原来的地方,继续原来的工作,这样的过程称为中断,如图所示。MCS-51中断系统RETI主主程程序序中中断断服服务务中断中断请求请求 中断过程示意图中断过程示意图中断系统中断系统实现中断功能的部件实现中断功能的部件中断源中断源产生中断请求的源产生中断请求的源中断优先级中断优先级 一般计算机系统允许有多个中断源。当几个中断一般计算机系统允许有多个中断源。当几个中断源同时向源同时向CPUCPU请求中断,要求服务时,就存在请求中断,要求服务时,就存在CP

2、UCPU优先优先响应哪一个中断请求的问题。为此系统根据中断源的响应哪一个中断请求的问题。为此系统根据中断源的轻重缓急进行排队,规定每个中断源都有一个中断优轻重缓急进行排队,规定每个中断源都有一个中断优先级别,优先处理最紧急事件的中断请求。先级别,优先处理最紧急事件的中断请求。中断嵌套中断嵌套 中断嵌套是指中断嵌套是指CPUCPU正正在处理一个中断源请求的在处理一个中断源请求的时候,又发生了另一个优时候,又发生了另一个优先级比它高的中断源请求,先级比它高的中断源请求,如果如果CPUCPU能够暂时中止执能够暂时中止执行原来的处理程序,转而行原来的处理程序,转而去处理优先级更高的中断去处理优先级更高

3、的中断请求,处理结束后,再继请求,处理结束后,再继续执行原来的低级中断处续执行原来的低级中断处理程序的过程。理程序的过程。 中断嵌套示意图中断嵌套示意图主程序主程序低级中断低级中断高级中断高级中断中断过程中断过程 对于不同的计算机,中断过程可能不尽相同,但是对于不同的计算机,中断过程可能不尽相同,但是一般应包括一般应包括中断请求中断请求、中断响应中断响应、中断处理中断处理和和中断返回中断返回等四个步骤。等四个步骤。1.1.中断请求中断请求 中断过程是由中断源向中断过程是由中断源向CPUCPU发出中断请求而开始的。发出中断请求而开始的。有效中断请求信号应该一直保持到有效中断请求信号应该一直保持到

4、CPUCPU作出响应为止。作出响应为止。2.2.中断响应中断响应 CPUCPU检测到中断请求信号后,在满足一定条件的情况检测到中断请求信号后,在满足一定条件的情况下进行响应。其下进行响应。其主要条件主要条件是:中断标志是否开放,是否高是:中断标志是否开放,是否高级中断,是否执行完一条指令等。级中断,是否执行完一条指令等。 3.3.中断处理中断处理 中断处理或称为中断服务,就是执行中断源所要求的中断服中断处理或称为中断服务,就是执行中断源所要求的中断服务程序。在中断服务程序中需要完成的主要工作是:务程序。在中断服务程序中需要完成的主要工作是:保护现场保护现场根据需要把断点处有关存储器的内容压入堆

5、栈,根据需要把断点处有关存储器的内容压入堆栈,以保护主程序运行的结果。以保护主程序运行的结果。 开开/ /关中断标志关中断标志根据根据CPUCPU响应中断后开响应中断后开/ /关中断情况,适当关中断情况,适当处理中断标志,以确保保护处理中断标志,以确保保护/ /恢复现场的正确进行,确保所需中恢复现场的正确进行,确保所需中断嵌套的实现。断嵌套的实现。 中断处理中断处理根据中断源的要求,完成相应的任务,这是中根据中断源的要求,完成相应的任务,这是中断服务的核心。断服务的核心。 恢复现场恢复现场在完成中断服务之后,返回被中断的主程序之前,在完成中断服务之后,返回被中断的主程序之前,恢复堆栈中保护的各

6、有关寄存器的内容。恢复堆栈中保护的各有关寄存器的内容。4.4.中断返回中断返回 在 中 断 服 务 程 序 后 , 用 一 条 中 断 返 回 指 令在 中 断 服 务 程 序 后 , 用 一 条 中 断 返 回 指 令(RETIRETI),保证返回主程序继续执行被中断的程序。),保证返回主程序继续执行被中断的程序。 中断标志 源允许 总允许 优先级 硬件查询中断允许控制寄存器定时器允许控制寄存器外部中断请求源外部中断 外部中断外部中断INTINT0 0和和INTINT1 1,由,由1212和和1313脚脚输入,它们的中断请求信号有效方式分为输入,它们的中断请求信号有效方式分为电平触发电平触发

7、和和脉冲触发脉冲触发两种。电平方式是两种。电平方式是低低电平有效;电平有效;脉冲方式则为脉冲方式则为负边沿有效负边沿有效。 复位后,TCON被清0,CPU关中断,所有中断请求被禁止。外部中断控制外部中断控制 定时器控制寄存器(定时器控制寄存器(TCONTCON) TCON D7 D6 D5 D4 D3 D2 D1 D0(88H) X X X X IE1 IT1 IE0 IT0 ITIT0 0为外部中断为外部中断0 0请求信号方式控制位。请求信号方式控制位。ITIT0 0 = 1 = 1,脉冲方式,脉冲方式(负跳变有效);(负跳变有效);ITIT0 0=0=0,电平方式(低电平有效)。,电平方式

8、(低电平有效)。 IEIE0 0为外部中断为外部中断0 0请求标志位,当请求标志位,当CPUCPU检测到检测到INTINT0 0 (P P3.23.2)端有中)端有中断请求信号时,由硬件置断请求信号时,由硬件置“1 1” IE0 IE0,使,使IEIE0 0=1=1请求中断,中断响应请求中断,中断响应后转向中断服务程序时,由硬件自动清零后转向中断服务程序时,由硬件自动清零IE0IE0。 ITIT1 1为外部中断为外部中断1 1请求信号方式控制位,其作用同请求信号方式控制位,其作用同ITIT0 0。 IEIE1 1为外部中断为外部中断1 1请求标志位,其作用同请求标志位,其作用同IE0IE0。复

9、位后,IE被清0,所有中断被禁止。中断允许控制寄存器(中断允许控制寄存器(IEIE) 中断允许寄存器格式如下:中断允许寄存器格式如下: IE D7 D6 D5 D4 D3 D2 D1 D0 (A8H)EA/XXEX1XEX0 EXEX1 1为外部中断为外部中断1 1允许控制位,允许控制位,EXEX1 1=1=1允许外部中允许外部中 断断1 1中断,中断,EXEX1 1=0=0,禁止外部中断,禁止外部中断1 1中断。中断。 EX0EX0为外部中断为外部中断0 0允许控制位,其控制功能同允许控制位,其控制功能同EX1EX1。 中断优先级控制 51单片机有两个中断优先级,即可实现二级中断服务嵌套。每

10、个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的。中断优先级控制寄存器如下vPX0(IP.0),外部中断0优先级设定位;vPT0(IP.1),定时/计数器T0优先级设定位;vPX1(IP.2),外部中断0优先级设定位;vPT1(IP.3),定时/计数器T1优先级设定位;vPS (IP.4),串行口优先级设定位;vPT2 (IP.5) ,定时/计数器T2优先级设定位。v复位后,IP置“0”。IP D7 D6 D5 D4 D3 D2 D1 D0(B8H)/PSPT1PX1PT0PX0 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断

11、系统硬件确定的自然优先级形成,其排列如所示: 0003H (0) 高高 定时器T0 000BH (1) . 0013H (2) . 定时器T1 001BH (3) . 串行口中断 0023H (4) 低低中中 断断 源源 中断服务程序入口(向量号)中断服务程序入口(向量号) INT1INT0内容简介:内容简介:通信方式:通信方式:串行口与并行口串行口与并行口串行通讯的方式:串行通讯的方式:异步通信异步通信和和同步通信同步通信1 1 串行口的结构串行口的结构2 2 串行口的工作方式串行口的工作方式3 3 多机通讯多机通讯4 4 波特率的制定方法波特率的制定方法5 5 串行口的编程和应用串行口的编

12、程和应用 串行口与并行口串行口与并行口并行通信并行通信:8:8位数据同时发送或接收。位数据同时发送或接收。80805151外外部部设设备备并行通信并行通信串行通信串行通信: :数据一位一位顺序发送或接收。数据一位一位顺序发送或接收。8058051 18058051 1TXDTXDTXDTXDRXDRXDRXDRXD串行通信串行通信异步通信:异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。它用一个起始位表示字符的开始,用停止位表示字符的结束。 其其每帧的格式如下每帧的格式如下:在一帧格式中,先是一个起始位:在一帧格式中,先是一个起始位0 0,然,然后是后是8 8个数据位,规定低位

13、在前,高位在后,接下来是奇偶校验个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位位(可以省略),最后是停止位1 1。用这种格式表示字符,则字。用这种格式表示字符,则字符可以一个接一个地传送。符可以一个接一个地传送。 在异步通信中,在异步通信中,CPUCPU与外设之间必须有两项规定,即与外设之间必须有两项规定,即字符格字符格式和波特率。式和波特率。 字符格式字符格式的规定是双方能够在对同一种的规定是双方能够在对同一种0 0和和1 1的串理解成同一的串理解成同一种意义。原则上字符格式可以由通信的双方自由制定,但从通种意义。原则上字符格式可以由通信的双方自由制定,但从通

14、用、方便的角度出发,一般还是使用一些标准为好,如采用用、方便的角度出发,一般还是使用一些标准为好,如采用ASCIIASCII标准。标准。 波特率波特率即数据传送的速率,其定义是每秒钟传送的二进制数即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是的位数。例如,数据传送的速率是120120字符字符/s/s,而每个字符如上,而每个字符如上述规定包含述规定包含1010数位,则传送波特率为数位,则传送波特率为12001200波特。波特。同步通信:同步通信: 在异步通信中,在异步通信中,每个字符要用起始位和停止位作每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间为

15、字符开始和结束的标志,占用了时间;所以在数据;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现同时要求由时钟来实现发送端与接收端之间的同步发送端与接收端之间的同步,故故硬件较复杂硬件较复杂。 通信方向:通信方向:单工传送:单工传送:在串行通讯中,把通讯接口只能发送或接在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;收的单向传送方法叫单工传送;双工传送:双工传送:而把数据在甲乙两机之间的双向传递,称而把数据在甲乙两机

16、之间的双向传递,称之为双工传送。在双工传送方式中又分为之为双工传送。在双工传送方式中又分为半双工传送半双工传送和全双工传送和全双工传送。 1 1、半双工传送:、半双工传送:是两机之间不能同时进行发送和接是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。收,任一时该,只能发或者只能收信息。 2 2、全双工传送:、全双工传送:是两机之间能同时进行发送和接收是两机之间能同时进行发送和接收。串行口的结构串行口的结构 MCS-51MCS-51单片机内部有一个功能很强的单片机内部有一个功能很强的全双工的串行口全双工的串行口,该串行口有该串行口有四种工作方式四种工作方式,波特率可用软件设置,

17、由片内的,波特率可用软件设置,由片内的定时器定时器/ /计数器产生。串行口接收、发送数据均可触发中断系计数器产生。串行口接收、发送数据均可触发中断系统,使用十分方便。统,使用十分方便。 MCS-51MCS-51单片机内部的串行口,单片机内部的串行口,有两个物理上独立地接收有两个物理上独立地接收、发送缓冲器、发送缓冲器SBUFSBUF,可同时发送、接收数据,可同时发送、接收数据,发送缓冲器只发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个器共用一个字节地址字节地址(99H)(99H)。 控制控制MCS-51MCS-51

18、单片机串行口的控制寄存器共有两个:单片机串行口的控制寄存器共有两个: 串行口控制寄存器串行口控制寄存器SCONSCON 特殊功能寄存器特殊功能寄存器PCONPCON串行口控制寄存器串行口控制寄存器SCONSCONSCONSCONRIRITITIRB8RB8TB8TB8RENRENSM2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H SM0SM0、SM1SM1:串行口:串行口4 4种工作方式的选择位。种工作方式的选择位。 SM2SM2:多机通讯控制位。:多机通讯控制位。 RENR

19、EN:允许串行接收控制位。:允许串行接收控制位。TB8TB8:是工作在方式:是工作在方式2 2和和3 3时,要发送的第时,要发送的第9 9位数据。位数据。RB8RB8:当工作在方式:当工作在方式2 2和和3 3时,为收到的第时,为收到的第9 9位数据。位数据。 TITI: 发送中断标志位。发送中断标志位。 RIRI: 接收中断标志位。接收中断标志位。SM0SM0、SM1SM1:串行口:串行口4 4种工作方式的选择位种工作方式的选择位SCONSCONRIRITITIRB8RB8TB8TB8RENRENSM2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9E

20、H9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HSM0 SM1 SM0 SM1 方式方式 功能功能 0 0 0 0 方式方式0 0 同步移位寄存器方式同步移位寄存器方式 0 1 0 1 方式方式1 1 8 8位串行口(波特率可变)位串行口(波特率可变) 1 0 1 0 方式方式2 2 9 9位串行口(波特率固定)位串行口(波特率固定) 1 1 1 1 方式方式3 3 9 9位串行口(波特率可变)位串行口(波特率可变)SM2SM2:允许方式:允许方式2 2和和3 3的的多机通讯多机通讯控制位。控制位。SCONSCONRIRITITIRB8RB8TB8TB8RENRENS

21、M2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H(1)(1)方式方式2 2,方式,方式3 3下,下, SM2=1SM2=1,接收到,接收到第第9 9位位RB8=0RB8=0时,不激活时,不激活RIRI,不能向,不能向CPUCPU申请中断申请中断 如接收到如接收到第第9 9位位RB8=1RB8=1时,激活时,激活RIRI,将,将RI=1RI=1,向,向CPUCPU申请中断申请中断(2)(2)方式方式2 2,方式,方式3 3下,下,SM2=0SM2=0,不管,不管RB8=0RB8

22、=0或或RB8=1RB8=1,都激活,都激活RI=1RI=1。(3)(3)方式方式1 1,当当SM2=1SM2=1时时,只有接收到有效的停止位时,才激活,只有接收到有效的停止位时,才激活RIRI 当当SM2=0SM2=0时时,正常接收。,正常接收。(4)(4)方式方式0 0, SM2SM2必须清必须清0,0,即即SM2=0SM2=0。 RENREN:允许串行接收控制位:允许串行接收控制位SCONSCONRIRITITIRB8RB8TB8TB8RENRENSM2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9

23、AH99H99H98H98HRENREN:允许串行接收控制位,由软件置位或:允许串行接收控制位,由软件置位或清零。清零。REN=1REN=1,允许允许串行口接收数据。串行口接收数据。REN=0REN=0,禁止禁止串行口接收数据。串行口接收数据。TB8TB8和和RB8RB8:SCONSCONRIRITITIRB8RB8TB8TB8RENRENSM2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HTB8TB8:当串行口工作在方式:当串行口工作在方式2 2、方式、方式3 3,要发送的,

24、要发送的第第9 9位数据时位数据时放在放在TB8TB8中(中(D D8 8= =第第9 9位)位) , ,需要时由软件置需要时由软件置1 1或清或清0 0。在许多。在许多的通讯协议中该位是奇偶校验位。在多机通讯中用来表示是的通讯协议中该位是奇偶校验位。在多机通讯中用来表示是地址帧还是数据帧,地址帧还是数据帧,TB8TB81 1为地址帧,为地址帧,TB8TB80 0为数据帧。为数据帧。RB8RB8:方式方式2 2、方式、方式3 3下下,要接收的第,要接收的第9 9位数据。可能是奇偶校位数据。可能是奇偶校验位或在多机通讯中为地址帧或数据帧的标识位。验位或在多机通讯中为地址帧或数据帧的标识位。 方式

25、方式1 1时时,SM2=0SM2=0,RB8RB8是已接收的停止位。是已接收的停止位。 方式方式0 0时时,不使用,不使用RB8RB8。 TITI和和RIRISCONSCONRIRITITIRB8RB8TB8TB8RENRENSM2SM2SM1SM1SM0SM0D7D6D5D4D3D2D1D098H9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HTITI:发送发送中断标志中断标志 由硬件在方式由硬件在方式0 0串行发送第串行发送第8 8位结束时置位或其他方式串行位结束时置位或其他方式串行发送停止位的开始时置位。发送停止位的开始时置位。必须由软件清

26、零必须由软件清零TITI。RIRI:接收接收中断标志:中断标志: 由硬件在方式由硬件在方式0 0串行接收到第串行接收到第8 8位结束时置位或其他方式下位结束时置位或其他方式下串行接收停止位的中间时置位,串行接收停止位的中间时置位,必须由软件清零必须由软件清零RIRI。特殊功能寄存器特殊功能寄存器PCONPCONPCONPCONSMODSMODD7D6D5D4D3D2D1D087HPCONPCON:电源控制寄存器:电源控制寄存器SMODSMOD:串行口波特率系数控制位:串行口波特率系数控制位SMOD=1SMOD=1波特率加倍波特率加倍SMOD=0SMOD=0波特率不加倍波特率不加倍 D D0 0

27、D D6 6:掉电方式控制位。:掉电方式控制位。串行口的工作方式串行口的工作方式SM0 SM1 SM0 SM1 方式方式 功能功能 0 0 0 0 方式方式0 0 同步移位寄存器方式同步移位寄存器方式 0 1 0 1 方式方式1 1 8 8位串行口(波特率可变)位串行口(波特率可变) 1 0 1 0 方式方式2 2 9 9位串行口(波特率固定)位串行口(波特率固定) 1 1 1 1 方式方式3 3 9 9位串行口(波特率可变)位串行口(波特率可变)方式方式0 0 方式方式0 0为移位寄存器输入为移位寄存器输入/ /输出方式输出方式。可外接移位。可外接移位寄存器以扩展寄存器以扩展I/OI/O口,

28、也可以外接同步输入口,也可以外接同步输入/ /输出设输出设备。备。8 8位串行数据者是从位串行数据者是从RXDRXD输入或输出,输入或输出,TXDTXD用来输用来输出同步脉冲。出同步脉冲。 方式方式0 0输出输出 方式方式0 0输入输入方式方式0 0 输出输出 数据从数据从RXDRXD引脚串行输出,引脚串行输出,TXDTXD引脚输出移位脉冲。引脚输出移位脉冲。 当一个数据写入串行口发送缓冲器时,当一个数据写入串行口发送缓冲器时,串行口即将串行口即将8 8位数据以位数据以fosc/12fosc/12的固定波特率从的固定波特率从RXDRXD引脚输出,引脚输出,低位低位在先。发送完在先。发送完8 8

29、位数据置位数据置“1 1”中断标志位中断标志位TITI。CPUCPU响应响应TITI中断,标志位必须由用户程序清中断,标志位必须由用户程序清0 0。方式方式0 0 输入:输入: RENREN为串行口接收器允许接收控制位,为串行口接收器允许接收控制位,RENREN0 0,禁止接收,禁止接收,RENREN1 1,允许接收。,允许接收。当串行口置为方式当串行口置为方式0 0,并置,并置“l l”RENREN位,位,串行口处于方式串行口处于方式0 0输入。引脚输入。引脚RXDRXD为数据输入端,为数据输入端,TXDTXD为移位脉为移位脉冲信号输出端,接收器也以冲信号输出端,接收器也以fosc/12fo

30、sc/12的固定波特率的固定波特率采样采样RXDRXD引引脚的数据信息,当接收器接收到脚的数据信息,当接收器接收到8 8位数据时置位数据时置“l l”中断标志中断标志RIRI。CPUCPU响应响应RIRI中断,标志位必须由用户程序清中断,标志位必须由用户程序清0 0。方式方式1 1:串行口被控制为串行口被控制为波特率可变的波特率可变的8 8位异步通信接口位异步通信接口。波特率波特率= =(2 2SMODSMOD/32/32)T1T1的溢出率的溢出率式中式中SMODSMOD为为PCONPCON寄存器的最高位的值寄存器的最高位的值(0(0或或1)1)。 一帧信息包含一帧信息包含1010位:位:1

31、1位起始位(低电平位起始位(低电平0 0)+8+8位数据位(低位在先)位数据位(低位在先)+1+1位停止位(高电平位停止位(高电平1 1)方式方式1 1发送:发送:TXD-TXD-发送端发送端方式方式1 1接收:接收:RXD-RXD-接收端接收端方式方式1 1发送发送 CPUCPU执行写入执行写入SBUFSBUF指令指令后,启动串行口发送数据,数据从后,启动串行口发送数据,数据从发送端发送出去,发送完成后,发送端发送出去,发送完成后,将将TITI置位置位,向,向CPUCPU申请中断,申请中断,再次发送之前必须由软件清再次发送之前必须由软件清0 0。 方式方式1 1接收接收 当当REN=1REN

32、=1且采样到且采样到RXDRXD引脚的负跳变,并且接收到有效的起引脚的负跳变,并且接收到有效的起始位时,才开始接收本帧的其余信息。始位时,才开始接收本帧的其余信息。当满足当满足RI=0RI=0且且SM2=0SM2=0或或接收到停止位为接收到停止位为1 1时时,接收数据有效,装入,接收数据有效,装入SBUFSBUF,停止位装入,停止位装入RB8RB8中,同时中,同时置位置位RI=1RI=1,向,向CPUCPU申请中断申请中断。若有一个条件不满足。若有一个条件不满足,则信息丢失。,则信息丢失。 方式方式2 2 9 9位异步通信接口位异步通信接口( (固定波特率固定波特率) )波特率:(波特率:(2

33、 2SMODSMOD/64/64)f fOSCOSC 一帧信息一帧信息1111位位:1 1位起始位位起始位+ +8 8位数据位位数据位+1+1位可编程位可编程位位+1+1位停止位位停止位1 1位可编程位:接收时放到位可编程位:接收时放到RB8RB8中,发送时放到中,发送时放到TB8TB8中中,奇偶校验位可放到可编程位中作为校验。,奇偶校验位可放到可编程位中作为校验。方式方式2 2的发送:的发送:方式方式2 2的接收:的接收:方式方式2 2的发送的发送方式方式2 2的发送:先把可编程位放到的发送:先把可编程位放到TB8TB8中,然后中,然后CPUCPU执执行一条写入发送缓冲区,当发送数据到停止位

34、时,将行一条写入发送缓冲区,当发送数据到停止位时,将TITI置位,当要送到下一帧时,先将置位,当要送到下一帧时,先将TITI清清0 0。方式方式2 2的接收的接收方式方式2 2的接收:与方式的接收:与方式1 1相同,当相同,当REN=1REN=1且采样到且采样到RXDRXD引脚的负跳引脚的负跳变,并且接收到有效的起始位时,才开始接收本帧的其余信息变,并且接收到有效的起始位时,才开始接收本帧的其余信息。当满足。当满足RI=0RI=0且且SM2=0SM2=0或接收到的第或接收到的第9 9数据位为数据位为1 1时,接收数据时,接收数据有效,装入有效,装入SBUFSBUF,第,第9 9位数据装入位数据

35、装入RB8RB8中,同时置位中,同时置位RI=1RI=1,向,向CPUCPU申请中断。若有一个条件不满足,则信息丢失。申请中断。若有一个条件不满足,则信息丢失。 方式方式3 93 9位异步通信接口位异步通信接口波特率波特率= =(2 2SMODSMOD/32/32)T1T1溢出率(同方式溢出率(同方式1 1算法相同)算法相同) 一帧信息一帧信息1111位位:1 1位起始位位起始位+ +8 8位数据位位数据位+1+1位可编程位位可编程位+1+1位停止位位停止位1 1位可编程位:接收时放到位可编程位:接收时放到RB8RB8中,发送时放到中,发送时放到TB8TB8中,中,奇偶校验位可放到可编程位中作

36、为校验。奇偶校验位可放到可编程位中作为校验。除波特率不同,其它同方式除波特率不同,其它同方式2 2的发送一样:的发送一样:除波特率不同,其它同方式除波特率不同,其它同方式2 2的接收一样:的接收一样:6 6.3 .3 多机通信多机通信 串行口控制寄存器串行口控制寄存器SCONSCON中的中的SM2SM2为方式为方式2 2或方式或方式3 3的多的多机通信控制位,当串行口以方式机通信控制位,当串行口以方式2 2或方式或方式3 3工作时,工作时,若若SM2SM2程控为程控为l l,此时只有当串行口接收到的,此时只有当串行口接收到的第第9 9位数据位数据RB8RB81 1时,才置时,才置1 1中断标志

37、中断标志RIRI,若接收到的,若接收到的RB8RB80 0,则不产生中断标志,信息被丢失。应用则不产生中断标志,信息被丢失。应用MCS-51MCS-51串行口串行口的这个特性,便可实现多机通讯。的这个特性,便可实现多机通讯。 多机通信多机通信 设在一个多机系统中有一个主机设在一个多机系统中有一个主机(MCS-5l(MCS-5l或其它具有串行或其它具有串行接口的微机接口的微机) )和三个由和三个由80318031组成的从机系统,从机的地址分别组成的从机系统,从机的地址分别为为00H00H、0lH0lH和和02H02H。(地址。(地址=1=1,数据,数据=0=0)。)。1 1、发送地址、发送地址T

38、B8=1TB8=1:当:当SM2=1SM2=1且且RB8=1RB8=1,激活,激活RIRI,进入中断服务,进入中断服务子程序,进行地址比较。如地址相同,则子程序,进行地址比较。如地址相同,则SM2=0SM2=0,否则,否则SM2=1SM2=1。2 2、发送数据、发送数据T TB8=0B8=0:当:当SM2=1SM2=1且且RB8=0RB8=0,不能激活,不能激活RIRI。 当当SM2=0SM2=0且且RB8=0RB8=0,可以激活,可以激活RIRI。 可以进入中断服务子程序,接收数据。可以进入中断服务子程序,接收数据。波特率的制定方法波特率的制定方法波特率定义:串行口每秒钟发送波特率定义:串行

39、口每秒钟发送( (或接收或接收) )的位数称为的位数称为波特率。波特率。 当串行口工作于方式当串行口工作于方式1 1和方式和方式3 3时,时,波特率是可变波特率是可变的的,由,由SMODSMOD位和定时器的溢出率位和定时器的溢出率确定,允许用户所取确定,允许用户所取的波特率范围比较大。的波特率范围比较大。一、定时器一、定时器T1T1工作于方式工作于方式0 0 的波特率求法:的波特率求法:二、定时器二、定时器T1T1工作于方式工作于方式1 1 的波特率求法:的波特率求法:二、定时器二、定时器T1T1工作于方式工作于方式2 2 的波特率求法:的波特率求法:一、定时器一、定时器T1T1工作于工作于方

40、式方式0 0 的波特率求法:的波特率求法: 当串行口工作于方式当串行口工作于方式1 1和方式和方式3 3时,时,波特率是可变的波特率是可变的,由,由SMODSMOD位和定时器的溢出率位和定时器的溢出率确定,允许用户所取的波特率范围比确定,允许用户所取的波特率范围比较大。较大。一、定时器一、定时器T1T1工作于方式工作于方式0 0 的波特率求法:的波特率求法: 方式方式0 0相当于定时器相当于定时器T1T1是一个是一个1313位的定时器位的定时器/ /计数器,它采计数器,它采用用TH1TH1的八位和的八位和TL1TL1的低五位组成一个的低五位组成一个1313位计数器,它的波特率位计数器,它的波特

41、率按下式计算:按下式计算: 波特率波特率= =(2 2SMODSMOD/32/32)T1T1溢出率溢出率 T1 T1溢出率溢出率=1/(T1=1/(T1溢出时间)溢出时间) T1 T1溢出时间溢出时间= =(2 21313- a +- a +执行置执行置1313位定时器值的中断处理程位定时器值的中断处理程序的机器周期数序的机器周期数)* * 12/12/晶振频率晶振频率 注意:注意:a a是定时器的计数初值,就是我们所要求的值。是定时器的计数初值,就是我们所要求的值。二、定时器二、定时器T1T1工作于工作于方式方式1 1 的波特率求法:的波特率求法: 当当串行口串行口工作于方式工作于方式1 1

42、和方式和方式3 3时,时,波特率是可变的波特率是可变的,由,由SMODSMOD位和定时器的溢出率位和定时器的溢出率确定,允许用户所取的波特率范围比确定,允许用户所取的波特率范围比较大。较大。一、定时器一、定时器T1T1工作于方式工作于方式1 1 的波特率求法:的波特率求法: 方式方式1 1相当于定时器相当于定时器T1T1是一个是一个1616位的定时器位的定时器/ /计数器,它的计数器,它的波特率按下式计算:波特率按下式计算: 波特率波特率= =(2 2SMODSMOD/32/32)T1T1溢出率溢出率 T1 T1溢出率溢出率=1/(T1=1/(T1溢出时间)溢出时间) T1 T1溢出时间溢出时

43、间= =(2 21616- a +- a +执行置执行置1616位定时器值的中断处理程位定时器值的中断处理程序的机器周期数序的机器周期数)* * 12/12/晶振频率晶振频率 注意:注意:a a是定时器的计数初值,就是我们所要求的值。是定时器的计数初值,就是我们所要求的值。二、定时器二、定时器T1T1工作于工作于方式方式2 2 的波特率求法:的波特率求法: 当当串行口串行口工作于方式工作于方式1 1和方式和方式3 3时,时,波特率是可变的波特率是可变的,由,由SMODSMOD位和定时器的溢出率位和定时器的溢出率确定,允许用户所取的波特率范围比确定,允许用户所取的波特率范围比较大。较大。一、定时器一、定时器T1T1工作于方式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论