东北石油大学测控单片机课件第七章串行通信PPT08.ppt

上传人(卖家):三亚风情 文档编号:2688633 上传时间:2022-05-18 格式:PPT 页数:66 大小:1.66MB
下载 相关 举报
东北石油大学测控单片机课件第七章串行通信PPT08.ppt_第1页
第1页 / 共66页
东北石油大学测控单片机课件第七章串行通信PPT08.ppt_第2页
第2页 / 共66页
东北石油大学测控单片机课件第七章串行通信PPT08.ppt_第3页
第3页 / 共66页
东北石油大学测控单片机课件第七章串行通信PPT08.ppt_第4页
第4页 / 共66页
东北石油大学测控单片机课件第七章串行通信PPT08.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、7.0 7.0 概述概述7.1 7.1 串行口的结构串行口的结构 7.2 7.2 串行口的工作方式串行口的工作方式MCS-51 MCS-51 单片机内部集成了一个全双工异步通信串行口单片机内部集成了一个全双工异步通信串行口1 1、并行通信和串行通信、并行通信和串行通信1010P1.0P1.1P1.2P1.3RXDTXD单片机单片机外设外设1外设外设20 1 0 11 0 1 0P1.70 1 0 17.0 7.0 概述概述异步方式:异步方式:双方只有数据线而没有时钟线。双方都以自己的时双方只有数据线而没有时钟线。双方都以自己的时钟源控制发送和接收的速率,以钟源控制发送和接收的速率,以字符为单位

2、进行数据传送,字符为单位进行数据传送,每每一个字符均按固定的字符格式传送,又被称为帧。一个字符均按固定的字符格式传送,又被称为帧。2 2、异步方式和同步方式、异步方式和同步方式优点:优点:是不需要传送同步脉冲,可靠性高,所需设备简单;是不需要传送同步脉冲,可靠性高,所需设备简单;缺点:缺点:是传输速率低(增加起始位和停止位)。是传输速率低(增加起始位和停止位)。同步方式:同步方式:l在物理结构上,通信双方除了通信的数据线外还增加在物理结构上,通信双方除了通信的数据线外还增加了一个通信用的了一个通信用的“时钟传输线时钟传输线clock”clock”。由主控方提供。由主控方提供时钟信号时钟信号cl

3、ockclock。l由于有了时钟信号来由于有了时钟信号来“同步同步”发送或接收操作,所以发送或接收操作,所以被传送的数据不再使用被传送的数据不再使用“起始位起始位”和和“停止位停止位”,因,因而提高了传送速度。因此同步通信常被用于系统内部而提高了传送速度。因此同步通信常被用于系统内部各芯片之间的接口设计。各芯片之间的接口设计。l由于同步通信多了一条由于同步通信多了一条“时钟线时钟线”,因此不太适合远,因此不太适合远距离的通信。距离的通信。优点优点是数据传输速率较高;是数据传输速率较高;缺点缺点是要求发送时钟和接收时钟保持严格同步。是要求发送时钟和接收时钟保持严格同步。主主控控方方被被控控方方d

4、ataclock主主控控方方被被控控方方dataclock 主控方发送数据主控方发送数据主控方接收数据主控方接收数据 3、串行通信工作方式、串行通信工作方式单工单工 A 发发 B 收收半双工半双工 A 发发 收收 B 收收 发发广播电台广播电台 收音机收音机对讲机对讲机全双工全双工 A 发发 收收 B 收收 发发电话机电话机例:例:异步串行通信的数据传送的速率是异步串行通信的数据传送的速率是120120字符字符/ /秒,而每个字符规秒,而每个字符规定包含定包含1010位(位( 1 1个起始位、个起始位、8 8个数据位、个数据位、1 1个停止位)数字,则传输个停止位)数字,则传输波特率为:波特率

5、为: 120120字符字符/ /秒秒 10 10位位/ /字符字符=1200=1200位位/ /秒秒= 1200bps= 1200bps4、波特率、波特率l用于表征串行通信速率的参数称为用于表征串行通信速率的参数称为“波特率波特率”;l波特率是指波特率是指每秒钟传送二进制的位数每秒钟传送二进制的位数; ; (发送一个二进制位的时间的倒数)(发送一个二进制位的时间的倒数)l 波特率的单位为:位波特率的单位为:位/ /秒(秒(bit / sbit / s);波特();波特(BaudBaud)。)。l波特率取值范围一般为:波特率取值范围一般为: 0 0 115200 bit/s115200 bit/

6、s。影响波特率的。影响波特率的 主要因素取决于传输线的分布电容、通信电平标准和传送距离;主要因素取决于传输线的分布电容、通信电平标准和传送距离;TTL电平、电平、RS-232、RS-485等通信标准。等通信标准。5、串行通信的电平标准、串行通信的电平标准 TTL电平(电平(05V):):1.5米以内。米以内。RS-232标准(标准(+12V-12V):):15米之内。米之内。RS-485标准(差分输入输出):标准(差分输入输出):1200米以上。米以上。 TTL电平:电平: 逻辑逻辑1:5V 逻辑逻辑0:0VRS-232标准:逻辑标准:逻辑1:-3-15V 逻辑逻辑0:+3V+15VRS-48

7、5标准:逻辑标准:逻辑1:+(26)V 逻辑逻辑0:-(26)VMCS-51 TXD(甲)(甲) RXD RXD MCS-51 TXD (乙)(乙)单片机甲单片机甲乙之间近距乙之间近距离离的直接通讯的直接通讯RS-232RS-232或或485485RS-232RS-232或或485485单片机甲乙两地之间远距离通讯单片机甲乙两地之间远距离通讯MCS-51 TXD(甲)(甲) RXD RXD MCS-51 TXD (乙)(乙)RS-232PC机机COM1,COM2单片机与单片机与PCPC机之间的数据通讯机之间的数据通讯MCS-51 TXDRXD异步串行异步串行UART、同步串行同步串行USRT总

8、线接口总线接口;SPI(Micro wire)总线接口)总线接口 -同步外设接口同步外设接口(SPI)是由摩托罗是由摩托罗 拉公司开发全双工同步串行总线。拉公司开发全双工同步串行总线。 I2C总线接口总线接口-由由PHILIPS公司开发的两线式串行总线。公司开发的两线式串行总线。 1-Wire总线接口总线接口-是是 Maxim 子公司达拉斯半导体的专利技术,采子公司达拉斯半导体的专利技术,采 用单一信号线,用单一信号线, CAN总线接口总线接口 - 1986 年德国电气商博世公司开发出面年德国电气商博世公司开发出面 向汽车的向汽车的CAN 通信协议通信协议 ;USB总线接口总线接口-是由是由I

9、ntel、 Compaq、Digital、IBM、 Microsoft、NEC、Northern Telecom等等7家家 世界著名的计算机和通信公司共同推出。世界著名的计算机和通信公司共同推出。6、当前嵌入式系统流行的串行接口、当前嵌入式系统流行的串行接口l 4种工作方式如何设置种工作方式如何设置l波特率如何设置波特率如何设置发送SBUF(99H)门发送控制器接收控制器1输入移位寄存器串行控制寄存器(98H)定时器1接收SBUF(99H)888TIRI内部总线TXD(P3.1)RXD(P3.0)串行口中断7.1 7.1 串行口的结构串行口的结构一、串行口的结构图一、串行口的结构图:l CPU

10、如何查知已发完或已接收完数据如何查知已发完或已接收完数据l 如何发送和接收数据如何发送和接收数据自自然然优优先先级级矢矢量量地地址址自自然然优优先先级级矢矢量量地地址址高级中高级中断请求断请求PCPCPCPC断请求断请求低级中低级中SCONSCON中断标志中断标志IPIPPX0PX01 1PT0PT01 11 10 0PX1PX11 10 0PSPS1 10 00 0PT1PT10 0IEIEEX0EX0ET0ET0EX1EX1ET1ET1ESESTCONTCONIE0IE0TF0TF0IE1IE1TF1TF1TITIRIRIRXRXTXTXT1T11 1INT1INT10 0T0T0INT0

11、INT01 10 0源允许源允许 总允许总允许优先级优先级硬件查询硬件查询EAEAP3.0P3.1P3.5P3.4P3.2P3.3IT0IT12、SCON:串行口控制寄存器串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RI3 3、PCON:波特率加倍寄存器波特率加倍寄存器 87H1、SBUF:串行发送串行发送 / 接收数据缓冲器接收数据缓冲器 99HEA -ESET1EX1ET0EX04、IE:中断允许寄存器中断允许寄存器 A8HSMOD发送发送接收接收5 5、IP: 中断优先级寄存器中断优先级寄存器- -PSPT1PX1PT0PX0B8H1、SBUF 串行发送串行发送

12、/ / 接收数据缓冲器接收数据缓冲器 99HSBUF SBUF 串行发送串行发送 / / 接收数据缓冲器是接收数据缓冲器是两个独立的物理单元两个独立的物理单元, 共用一个地址(共用一个地址(99H99H),可同时收、发数据。),可同时收、发数据。指指注:向发送缓冲器注:向发送缓冲器SBUFSBUF写入数据即可发送数据;写入数据即可发送数据; 从接收缓冲器从接收缓冲器SBUFSBUF读出数据即可接收数据。读出数据即可接收数据。发送发送SBUFSBUF接收接收SBUFSBUFMOV SBUF,A ;启动一次数据发送;启动一次数据发送MOV A,SBUF ;完成一次数据接收完成一次数据接收二、特殊功

13、能寄存器二、特殊功能寄存器 TI :发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1,必须软件清零,必须软件清零 RI :接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零 RB8:方式方式1中放中放停止位,方式停止位,方式2、3中放中放接收的第九位数接收的第九位数REN:允许接收控制位,软件置位或清零允许接收控制位,软件置位或清零SM2:多机通信控制位(常与多机通信控制位(常与RB8配合,决定是否激活配合,决定是否激活RI)SM0、SM1:工作方式选择位(四种工作方式)工作方式选择位(四种工作方式)0000:方式:方式0 0,

14、8 8位同步移位寄存器,其波特率为位同步移位寄存器,其波特率为f fosc/12osc/12;0101:方式:方式1 1,1010位位UARTUART,其波特率为可变,由定时器控制;,其波特率为可变,由定时器控制;1010:方式:方式2 2,1111位位UARTUART,其波特率为,其波特率为f fosc/64osc/64或或f fosc/32osc/32;1111:方式:方式3 3,1111位位UARTUART,其波特率为可变,由定时器控制。,其波特率为可变,由定时器控制。2、 SCON:串行口控制寄存器:串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RITB8:将要:

15、将要发送的第九位数,发送的第九位数, 在执行在执行 MOV SBUF ,A 指令之前指令之前 要事先将要事先将TB8设定好;设定好;双机通信作校验位,多机通信作地双机通信作校验位,多机通信作地 址址/数据标识位。数据标识位。SMOD3、 PCON: 波特率加倍寄存器波特率加倍寄存器 87HSMOD:串行口波特率倍增位串行口波特率倍增位 1:串行口波特率加倍。:串行口波特率加倍。 0:串行口波特率不变,系统复位时默认为:串行口波特率不变,系统复位时默认为SMOD=0。(1 1)当)当CPUCPU执行:执行:MOV SBUFMOV SBUF,A A 指令后,便发送一帧数据。指令后,便发送一帧数据。

16、思考思考(1 1) CPUCPU如何发送数据?如何发送数据? (2 2)CPUCPU如何知道已发送完一帧数据?如何知道已发送完一帧数据?方案一:使用查询的方式对方案一:使用查询的方式对TI进行检测:进行检测: JNBTI,$;如果;如果TI1 则等待则等待 CLR TI ;清楚标志位;清楚标志位 MOV SBUF,A ;TI=1时发送下一个数据时发送下一个数据方案二:如果系统中断是开放的,则方案二:如果系统中断是开放的,则TI=1会自动引发中断。会自动引发中断。 CLR TI ;清楚标志位;清楚标志位 MOV SBUF, A ;在中断程序中发送下一个数据;在中断程序中发送下一个数据;(2 2)

17、当完成一帧数据的发送后,)当完成一帧数据的发送后,TI=1TI=1,有两种方案可以知,有两种方案可以知 道已发完一帧数据。道已发完一帧数据。三、接收和发送操作三、接收和发送操作(1 1)当当SUBF从从RXD引脚接收完一个完整的数据帧时引脚接收完一个完整的数据帧时RI=1思考思考(1 1)CPUCPU如何知道已接收完一帧数据?如何知道已接收完一帧数据? (2 2)CPUCPU如何处理接收的数据?如何处理接收的数据?(2 2)CPUCPU可以使用两种方案来处理接收的数据:可以使用两种方案来处理接收的数据:方案一:方案一:CPU采用查询采用查询RI来控制数据的读取。来控制数据的读取。JNB RI,

18、$;如果;如果RI1 则等待则等待 CLR RI ;清楚标志位;清楚标志位 MOV A,SBUF ;RI=1时,取时,取SBUF中数据送中数据送A。方案二:如果中断是开放的,则方案二:如果中断是开放的,则RI=1时会自动引发中断。时会自动引发中断。 CLR RI MOV A,SBUF ; 中断方式接收数据;中断方式接收数据; 1、 波特率:固定为波特率:固定为fosc / 12 2、 数据格式:一帧信息数据格式:一帧信息8位位 RXD :接收、发送数据端,:接收、发送数据端,接收接收/发送完,置位发送完,置位RI / TI , (SM2 = 0) TXD :产生同步移位脉冲:产生同步移位脉冲

19、7.2 7.2 串行口的工作方式串行口的工作方式一、方式一、方式0 0:同步移位寄存器输入输出方式:同步移位寄存器输入输出方式串行口方式串行口方式0 0的时序的时序思考:思考:1 1、如何启动发送过程?、如何启动发送过程?2 2、如何知道发送完毕?、如何知道发送完毕? 2 2、多长时间移一位?、多长时间移一位?思考:思考:1 1、如何启动接收过程?、如何启动接收过程?2 2、如何知道接收完毕?、如何知道接收完毕? 2 2、多长时间接收一位?、多长时间接收一位?接收条件:接收条件: TI=0TI=0, 置位置位 REN=1REN=1发送条件:发送条件:TI=0TI=01283456 10 11

20、12 13数 据 输 出移 位 脉 冲RXDTXD805174LS164D7 D6 D5 D4 D3 D2 D1 D03 3、方式、方式0 0的应用:扩展并行输入输出口的应用:扩展并行输入输出口 CB: MOV R7,#0AH MOV R0,#50H MOV SCON ,#00HSEND1: MOV A,R0 MOV SBUF ,AWAIT: JNB TI,WAIT CLR TI INC R0 DJNZ R7, SEND1 RET例:将以例:将以50H50H为首地址的为首地址的1010个单元中数据由串口送出。个单元中数据由串口送出。926543 14 13 12 11数 据 输 入移 位 脉

21、冲RXDTXD805174LS165D7D6D5D4D3D2D1D0 CB:MOV R7,#05H MOV R0,#30H RE1: MOV SCON ,#10HWAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R0 ,A INC R0 DJNZ R7,RE1 RET例:从扩展口读入例:从扩展口读入5 5个数据,存到内部个数据,存到内部RAMRAM以以30H30H开始的单元中。开始的单元中。 1 1、波特率:(、波特率:(2SMODT1的溢出率)的溢出率)/ 32 ,可变。,可变。 2、 数据格式:数据格式: 一帧信息一帧信息10位。位。D0D1D2D3D4D5D

22、6D7停止位停止位起始位起始位发送发送D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收送送 RB8当接收到数据后,必须同时满足以下当接收到数据后,必须同时满足以下两个条件两个条件,接收才真正有效:,接收才真正有效: REN = 1,RI = 0SM2 = 0 或接收到的停止位为或接收到的停止位为1。此时,数据装载此时,数据装载SBUF, RI置置1 ,停止位进入,停止位进入RB8。 二、方式二、方式1 1:波特率可变的:波特率可变的1010位异步通信方式位异步通信方式 注意:何时开始接收信息?注意:何时开始接收信息?检测到起始位的负跳变时,开始接收。检测到起始位的负跳变时,开始

23、接收。 1 1、波特率:、波特率:(2 2SMODSMODfoscfosc)/ 64/ 64 , ,固定。固定。 2 2、一帧信息、一帧信息1111位。位。 D0D1D2D3D4D5D6D7TB8停止位停止位起始位起始位发送发送发送完数据置位发送完数据置位TI。 TB8D7D6D5D4D3D2D1D0起始位起始位停止位停止位接收接收接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件: REN = 1,RI = 0 且且SM2 = 0或接收到第或接收到第9位数据为位数据为1,此时,数据装载此时,数据装载SBUF,RI置置1,第,第9位数据(位数据(TB8)送入)送入 RB8。 送送

24、RB8三、方式三、方式2 2:固定波特率的:固定波特率的1111位异步接收位异步接收/ /发送方式发送方式串行口方式串行口方式2、3的时序的时序 1、波特率:(、波特率:(2SMODT1的溢出率)的溢出率)/ 32 ,可变,同方式可变,同方式1。 2 2、一帧信息、一帧信息1111位。位。 四、方式四、方式3 3:可变波特率的:可变波特率的1111位异步接收位异步接收/ /发送方式发送方式方式方式0 0:波特率波特率固定为固定为fosc/12fosc/12。方式方式2 2:波特率由波特率由PCONPCON中的选择位中的选择位SMODSMOD来决定,可由下式表示:来决定,可由下式表示: 波特率波

25、特率= =(2 2SMODSMOD/64/64)foscfosc 方式方式1 1和方式和方式3 3:波特率是波特率是可变可变的,由定时器的,由定时器T1T1的溢出率控制。的溢出率控制。 波特率波特率= =(2 2SMODSMOD/32/32)定时器定时器T1T1溢出率溢出率 T1T1溢出率溢出率=T1=T1计数率计数率/ /产生溢出所需的周期产生溢出所需的周期 = =(fosc/12fosc/12)/ /(2 28 8 TCTC) 五、串行口的通信波特率五、串行口的通信波特率例例: :设晶振设晶振foscfosc为为11.0592MHz11.0592MHz,选定定时器工作方式,选定定时器工作方

26、式2 2,SMOD=0SMOD=0求求:4800bps:4800bps、9600bps9600bps时的初值时的初值 。解:定时器方式解:定时器方式2 2的初始值的初始值X X的公式经过推导可得到的公式经过推导可得到在实际应用时,通常是先确定波特率,后根据波特率求在实际应用时,通常是先确定波特率,后根据波特率求T1定时定时初值初值.T1T1初值初值 = 256 = 256 2 2SMODSMOD3232foscfosc12 12 波特率波特率故:故: X1=256(11.05921)/(3844800)= FAH X2 =256(11.05921)/(3849600)=FDH7.3 7.3 串

27、行口的应用串行口的应用使用串行口的步骤:使用串行口的步骤:1 1、通信双方的硬件连接、通信双方的硬件连接2 2、制定通信协议、制定通信协议 工作方式、波特率、数据格式、效验方法等。工作方式、波特率、数据格式、效验方法等。3 3、主程序、主程序 串行口中断入口处理串行口中断入口处理 串口初始化:串口初始化:SCONSCON PCON T1PCON T1工作方式及初值、工作方式及初值、IEIE、IPIP4 4、中断服务程序、中断服务程序一、串口方式一、串口方式0 0的应用的应用例:例:用用8051串行口外接串行口外接CD4094扩展扩展8位并行输出口,位并行输出口,8位并行口位并行口的各位都接一个

28、发光二极管,要求发光二极管呈流水灯状态的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。(轮流点亮)。 方案一:采用查询方案一:采用查询TI决定是否发送下一帧数据决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧数据 RR A CLR P1.0 SJMP OUT0 DELAY: MOV R7, #250 D1: MOV R6, #250 D2: DJNZ R6, D2 DJNZ R7, D1 RET END ORG 0000H START: MOV SCON, #00H MOV A, #80H CLR P1.0 OUT0: MOV S

29、BUF, A OUT1: JNB TI, OUT1 CLR TI SETB P1.0 ACALL DELAY P3.0 RXDP3.1 TXD分析:分析: 从串口送出什么样的数据才能显示从串口送出什么样的数据才能显示 0?例:利用串并转换将数字例:利用串并转换将数字 0909输出到输出到LEDLED显示器上显示,输出显示器上显示,输出同一个数字。同一个数字。 ORG 0000H AJMP MAIN ORG 0030HMAIN:MOV SP,#60H MOV SCON,#00H MOV R1,#00H L1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBU

30、F ,A JNB TI,$ CLR TI MOV SBUF ,A JNB TI,$ CLR TI CALL DELAY CJNE R1,#9,L2 MOV R1,#00H AJMP MAIN L2:INC R1 AJMP L1TAB:DB 03H,9FH,25H,0DH,99H,49H DB 41H,1FH,01H,09HDELAY: END思考:不用串行口发送数据,采用某一个输出口是否也可以思考:不用串行口发送数据,采用某一个输出口是否也可以 完成串并转换?完成串并转换? 单片机单片机P1.0P1.1P1.2P1.3RXDTXDP3.0P3.1P1.0P1.1P1.2P1.3RXDTXD单片

31、机单片机P3.0P3.1例:采用串行口方式例:采用串行口方式1进行进行双机通信双机通信,将内部将内部RAM中以中以50H为首地址的连续为首地址的连续10个单元内容送出。个单元内容送出。硬件连接硬件连接通信协议通信协议240012/2561*322foscxSMODHFx40244 方式方式1 2400B/S定时器定时器T1 方式方式2 晶振晶振12MHZ初值:初值: 二、串口方式二、串口方式1 1的应用的应用通信距离不超过通信距离不超过1.5米米 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B

32、MOV SCON,#40H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1 SETB EAL1: MOV R0,#50H MOV A,R0 MOV SBUF,AL2: CJNE R0,#5AH,L2 AJMP L1 ORG 0200HSINT:CLR TI INC R0 MOV A,R0 MOV SBUF,A RETI END发送程序发送程序 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B MOV SCON,#

33、50H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1 SETB EAMOV R0,#50H SJMP $SINT:CLR RI MOV A,SBUF MOV R0,A INC R0 RETI END接收程序接收程序数据送累加器数据送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES发送端程序(原始发送端程序(原始TI=0)RI=1 ?MOV A,SBUFPSW.P=RB8?出错处理出错处理CLR RIYESNO接收端程序(原始接收端程序(原始RI=0)NY数据送内存数据送内存例:采用方

34、式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信。三、串口方式三、串口方式2 2的应用的应用例:采用方式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信。SE: MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,AHE: JNB TI ,HE CLR TI INC R0 SJMP SE数据送累加器数据送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES发送端程序(原始发送端程序(原始TI=0)例:采用方式例:采用方式2奇偶校验进行奇偶校验进行双机通信双机通信,采用偶校验。采用偶校验。RE:JNB RI,RE MOV A,SBUF MOV

35、 C,P JNC L1 JNB RB8,ERP AJMP L2L1:JB RB8,ERP CLR RIL2:MOV R0,A INC R0 SJMP RERI=1 ?MOV A,SBUFPSW.P=RB8?出错处理出错处理CLR RIYESNO接收端程序(原始接收端程序(原始RI=0)NY数据送内存数据送内存单片机系统或微型计算机系统传感器 1传感器 2传感器 3传感器 4传感器 N接口电路 机房 或 仪表室检测现场四、串口方式四、串口方式3 3的应用的应用主机主机从机从机 N从机从机 4从机从机 3从机从机 2从机从机 1RXDTXDTXDRXD TI :发送中断标志,发送一帧结束,发送中断

36、标志,发送一帧结束,TI=1,必须软件清零,必须软件清零 RI :接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须软件清零,必须软件清零 RB8:方式方式1中放中放停止位,方式停止位,方式2、3中放中放接收的第九位数接收的第九位数REN:允许接收控制位,软件置位或清零允许接收控制位,软件置位或清零SM2:多机通信控制位(常与多机通信控制位(常与RB8配合,决定是否激活配合,决定是否激活RI)方式方式3 3 :1111,1111位位UARTUART,其波特率为可变,由定时器控制。,其波特率为可变,由定时器控制。多机通信多机通信SCON的设置的设置SM0SM1SM2R

37、ENTB8RB8 TI RITB8:将要:将要发送的第九位数,发送的第九位数, 在执行在执行 MOV SBUF ,A 指令之前指令之前 要事先将要事先将TB8设定好;设定好;双机通信作校验位;双机通信作校验位; 多机通信作地址多机通信作地址/数据标识位。数据标识位。接收到有效数据完毕,置位接收到有效数据完毕,置位RI的条件的条件:(1) REN = 1,RI = 0 (2)且)且SM2 = 0或接收到或接收到第第9位数据为位数据为1,此时,此时,数据装载数据装载SBUF,RI置置1,第第9位数据(位数据(TB8)送入)送入 RB8。 在方式在方式2 2、3 3中接收到的数据是否能装载中接收到的

38、数据是否能装载SBUFSBUF的条件:的条件:1、SM2=0:RB8=1或或RB8=0 都使都使RI=1,接收,接收数据送入数据送入SBUF。2、SM2=1:RB8=1,使,使RI=1并引发中断,接收的并引发中断,接收的数据送入数据送入SBUF。 RB8=0,信息丢失,信息丢失。1、SM2=0:RB8=1或或RB8=0 都都使使RI=1,接收数据,接收数据送入送入SBUF。2、SM2=1:RB8=1,使,使RI=1并引发中断,接收的数据并引发中断,接收的数据送入送入SBUF。 RB8=0,信息丢失。,信息丢失。主机主机1、SM2=02、主机发出地址码、主机发出地址码 TB8=13、主机发出数据

39、码、主机发出数据码 或命令码或命令码TB8=0从机从机1、SM2=12、从机接收到、从机接收到RB8=1,接收地址码,接收地址码, 判断是否和本机地址码相同,判断是否和本机地址码相同, 若相同,则若相同,则SM2=0,若不同,则,若不同,则SM2=13、被、被寻中寻中的从机,接收的从机,接收RB8=0,且,且SM2=0 将主机发出的数据码或命令码送入将主机发出的数据码或命令码送入SBUF, RI=1, 没有被寻中没有被寻中的从机,接收的从机,接收RB8=0,且,且SM2=1, 不接收任何数据。不接收任何数据。l主机的控制命令:主机的控制命令: 00H 主机发送,从机接收;主机发送,从机接收;

40、(控制从机的操作)(控制从机的操作) 01H 主机接收,从机发送。(命令分类)主机接收,从机发送。(命令分类)l从机状态字:从机状态字:从机向主机发送的用于表征从机工作状态的信息。从机向主机发送的用于表征从机工作状态的信息。ERRTRDYRRDY0:合法命令:合法命令 0:发送未就绪:发送未就绪 0:接收未就绪:接收未就绪1:非法命令:非法命令 1:发送就绪:发送就绪 1:接收就绪:接收就绪从机返回的状态字从机返回的状态字例:串口方式例:串口方式3应用编程应用编程 (多机通信)(多机通信)T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=0T

41、B8=1设定程序数据:设定程序数据:R0R5停机停机MCOMMU从机应答?从机应答?地址相符?地址相符?发送命令字发送命令字(TB8=0)从机应答?从机应答?命令正确?命令正确?命令分类命令分类从机接收就绪?从机接收就绪?从机发送就绪?从机发送就绪?RET命令从命令从机复位机复位发发FFHFFHNNYYNNYYNNYY接收接收发送发送调用调用MCOMMU接收数据块接收数据块发送数据块发送数据块发送从机地址发送从机地址ORG 2000HSTART:MOV TMOD,#20H;定时器定时器T1为模式为模式2(8位自动重装)位自动重装)MOV TH1,#0F4HMOV TL1,#0F4H;波特率为波

42、特率为1200(设外接(设外接MHz晶体)晶体)SETB TR1;启动启动T1MOV SCON,#0D8H;串口为模式串口为模式3,REN=1,SM2=0,TB8=1MOV PCON,#00H;设设PCON中的中的SMOD=0MOV R0,#40H;发送数据块首地址送发送数据块首地址送R0指针指针MOV R1,#20H;接收数据块首地址送接收数据块首地址送R1指针指针MOV R2,#SLAVE;被寻从机地址送被寻从机地址送R2MOV R3,#00H/#01H;主发、从收命令。或主收、从发命令主发、从收命令。或主收、从发命令MOV R4,#14H;发送数据块长度送发送数据块长度送R4(20)计数

43、器)计数器MOV R5,#14H;接收数据块长度送接收数据块长度送R5(20)计数器)计数器ACALL MCOM;调用主机通讯子程序调用主机通讯子程序SJMP $ORG 2100HMCOM:MOV A,R2;取从机地址取从机地址MOV SBUF,AJNB RI,$;注意:为什么判断注意:为什么判断RI而不是而不是TI ?CLR RIMOV A,SBUF;取从机的返回地址取从机的返回地址XRL A,R2;核对两个地址核对两个地址JZ MTXD2;相符时,转相符时,转MTXD2MTXD1:MOV SBUF,#0FFH;返回地址错误时,发送从机复位信号返回地址错误时,发送从机复位信号SETB TB8

44、;设定地址标志设定地址标志SJMP MCOM ; 重发从机地址,所有从机重新判断地址重发从机地址,所有从机重新判断地址MTXD2:CLR TB8;将将TB8=0,准备发送命令准备发送命令MOV SBUF,R3;送出命令送出命令JNB RI,$;等待从机应答等待从机应答CLR RI;从机应答后清标志从机应答后清标志MOV A,SBUF;接收从机应答命令接收从机应答命令JNB ACC.7,MTXD3;命令无错时,则命令分类命令无错时,则命令分类SJMP MTXD1;命令错返回重新联络命令错返回重新联络MTXD3:CJNE R3,#00H,MRXD ;从机发送主机接收时,转从机发送主机接收时,转MR

45、XDJNB ACC.0,MTXD1;从机接收时,若从机未准备好转回从机接收时,若从机未准备好转回MTXD4:MOV SBUF,R0;若从机准备好,则开始发送若从机准备好,则开始发送JNB TI,$CLR TIINC R0DJNZ R4,MTXD4RETMRXD:JNB ACC.1,MTXD1;从机发送未准备好返回从机发送未准备好返回MRXD1:JNB RI,$;等待接收等待接收CLR RIMOV A,SBUFINC R1;接收数据区指针加一接收数据区指针加一DJNZ R5,MRXD1;未接收完则继续(未接收完则继续(R5接收数据计数器)接收数据计数器)RETENDERR从机返回的状态字从机返回

46、的状态字TRDYRRDY0:合法命令:合法命令 0:发送未就绪:发送未就绪 0:接收未就绪:接收未就绪1:非法命令:非法命令 1:发送就绪:发送就绪 1:接收就绪:接收就绪T1为定时为定时,模式模式2B=1200,启动,启动T1设串口为模式设串口为模式3REN=1,SM2=1TB8=1设定程序参数:设定程序参数:R0R3开串行口中断开串行口中断动态停机动态停机等待主机发送地址码等待主机发送地址码保护现场保护现场接收地址符合本机?接收地址符合本机? 向主机回送本机地址向主机回送本机地址接收下一字符接收下一字符是命令吗?是命令吗? 命令分类命令分类 本机发送准备就绪?本机发送准备就绪? 本机接收准

47、备就绪?本机接收准备就绪? 发发TRDY=1状态字状态字发发RRDY=1状态字状态字发送数据发送数据接收数据接收数据发送完?发送完? 接收完?接收完? 保护现场返回保护现场返回NNYY发送命令发送命令接收命令接收命令非法命令非法命令送送TRDY=0送送RRDY=0NNNY中断服务程序中断服务程序NY接收接收FFH时时ORG 0000HLJMP STARTORG 0023HLJMP 0100HORG 0040HSTART:MOV TMOD,#20H;设定定时器设定定时器T1为模式为模式2MOV TH1,#0F4H;设定波特率为设定波特率为1200MOV TL1,#0F4HSETB TR1;启动定

48、时器启动定时器T1MOV SCON,#0F8H;设串口模式设串口模式3,REN=1,SM2=1,TB8=1MOV PCON,#00HMOV R0,#20H;R0指向发送数据块首地址指向发送数据块首地址MOV R1,#40H;R1指向接收数据块首址指向接收数据块首址MOV R2,#14H;R2赋发送数据块长度赋发送数据块长度MOV R3,#14H;R3赋接收数据块长度赋接收数据块长度SETB EASETB ES;开中断开中断CLR RI ;清标志;清标志RI准备接收数据准备接收数据SJMP $;等待中断等待中断(三)(三) 从机主程序(初始化)从机主程序(初始化)ORG 0100HSINTS:

49、CLR RI;接收到地址后清接收到地址后清RI PUSH ACCPUSH PSW;保护现场保护现场MOV A,SBUF;接收主机送来得从机地址接收主机送来得从机地址XRL A,#SLAVE;核实从机地址核实从机地址JZ SRXD1;若是本机地址转若是本机地址转SRXD1RETU:POP PSW;返回主程序返回主程序POP ACC;恢复现场恢复现场RETI;中断返回中断返回SRXD1:CLR SM2;SM2清零,单独接收主机数据清零,单独接收主机数据/命令命令MOV SBUF,# SLAVE;向主机发回从机地址向主机发回从机地址JNB RI,$;等待主机的命令等待主机的命令CLR RI;接收到主

50、机命令后清接收到主机命令后清RIJNB RB8,SRXD2 ;若是命令(若是命令(RB8=0)则转)则转SRXD2继续继续SJMP RETU;接收的不是命令时(接收的不是命令时(RB8=1),返回),返回SRXD2:MOV A,SBUF;将接收到的命令送将接收到的命令送ACJNE A,#02H,NEXT;命令合法(命令合法(A-02H)NEXT: JC SRXD3;若命令合法(若命令合法(A 2) Instring=MSComm1.Input End Sub Sub command2_Click()() MSComm1.PortOpen=FALSE UnLoad Me End Sub也可采用串

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(东北石油大学测控单片机课件第七章串行通信PPT08.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|