51单片机串行通信接口课件.ppt

上传人:牧羊曲112 文档编号:1480067 上传时间:2022-11-30 格式:PPT 页数:47 大小:669.52KB
返回 下载 相关 举报
51单片机串行通信接口课件.ppt_第1页
第1页 / 共47页
51单片机串行通信接口课件.ppt_第2页
第2页 / 共47页
51单片机串行通信接口课件.ppt_第3页
第3页 / 共47页
51单片机串行通信接口课件.ppt_第4页
第4页 / 共47页
51单片机串行通信接口课件.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《51单片机串行通信接口课件.ppt》由会员分享,可在线阅读,更多相关《51单片机串行通信接口课件.ppt(47页珍藏版)》请在三一办公上搜索。

1、北京交通大学,1,第6章 串行通信接口,本章主要内容串行数据通信基本原理MCS-51单片机串行口串行口应用举例,北京交通大学,2,计算机的两种方式数据传送:并行和串行 并行传送的特点: 各数据位同时传送,传送速度快、效率高。但需要的数据线多,因此传送成本高。并行数据传送的距离通常小于30米。 串行传送的特点是: 数据传送按位顺序进行,最少只需一根传输线即可完成,成本低,但速度慢。串行数据传送的距离可以从几米到几千公里。,一、串行数据通信基本原理,北京交通大学,3,数据通信基本原理,串行数据传送又分为异步传送和同步传送两种方式。在单片机中,主要使用异步传送方式。,北京交通大学,4,1. 异步串行

2、通信的字符格式 异步串行数据通信以字符为单位,即一次传送一个字符。异步通信的数据格式为:,一位起始位,一位奇偶校验位,1、1.5、2位停止位,一帧信息,58位数据位,北京交通大学,5,1位起始位(为低电平); 58位数据位(紧跟着起始位),表示要传送的有效数据(低位在前); 1位奇偶校验位(可有可无); 1、1.5或2位停止位(为高电平)。 从起始位开始到停止位结束的时间间隔称为一帧。就是一个字符的完整通信格式。因此也把串行通信的字符格式称为帧格式,北京交通大学,6,例如,采用串行异步通信方式传送ASCII码字符5,规定为7位数据位,1位偶校验位,1位停止位,无空闲位。 由于5的ASCII码为

3、35H,其对应7位数据位为0110101,如按低位在前、高位在后顺序排列应为1010110。前面加1位起始位,后面配上偶校验位1位0,最后面加1位停止位1,因此传送的字符格式为0101011001,其对应的波形如图所示。,低位在前,高位在后,起始,停止,偶校验,北京交通大学,7,2.串行通信的数据通路形式串行数据通信有以下几种数据通路形式:单工形式: A发,B接。半双工形式: A发或接, B接或发。全双工形式: A发、接,B接、发。,A,B,A,B,A,B,北京交通大学,8,3.串行通信的传送速率 传送速率 : 用于说明数据传送的快慢。波特率(Baud):每秒传送二进制代码位数 即每秒传送一个

4、数据位就是一波特:常用的波特率有:75,110,300,600,1200,2400,4800,9600,19200。,1波特=1bps(位/秒),北京交通大学,9,设数据传送的速率每秒为120个字符,每个字符包含10个代码位(1个起始位,1个停止位,8个数据位)波特率=10 x120b/s=1200bps每一位代码的传送时间=1/1200=0.833ms,北京交通大学,10,4.串行通信接口电路 串行数据通信中主要有两个技术问题数据传送:数据传送主要解决传送中的 标准、格式及工作方式等问题数据转换:数据转换是指数据的串并转换,北京交通大学,11,串行接口电路基本组成逻辑框图如下:,串行输入 时

5、钟 复位,并行输出,并行输入 时钟,串行输出,控制信号,状态、控制信息,接收器,发送器,控制部件,北京交通大学,12,通用异步接收发送器(UART),北京交通大学,13,异步串行通信常用接口,TTL电平直接连接,RS-232C: 传输速度为20kbit/s,传输距离15英尺,RS-422、RS-485: 传输速度为10Mbit/s,传输距离300m1200m并能抑制共模信号干扰,20mA电流环: 能降低对噪声敏感程度,光纤: 光纤介质可减少噪声干扰,光电隔离提高安全性,北京交通大学,14,二、MCS-51单片机串行口,MCS-51单片机片内有一个全双工串行口(P3.0接收、P3.1发送) 功能

6、:异步串行通信 其中:发送和接收的速率与移位时钟同步, 移位脉冲的速率为波特率。说明:定时器T1作为串行通信波特率发生器。,北京交通大学,15,TI发送中断标志,RI接收中断,允许接收REN,串行口中断,1.串行口寄存器结构,发送寄存器(只能写),接收寄存器(只能读),(P3.1),(P3.0),SBUF全双工方式进行通信,这两个寄存器共用一个地址(99H)。,北京交通大学,16,双缓冲结构,防止产生重叠错误,MOV SBUF,A,MOV A,SBUF,北京交通大学,17,例如:说明:串行接收采用双缓冲结构,以避免在数据接收过程中出现帧重叠错误,但发送数据时,由于CPU是主动的,不会发生帧重叠

7、错误,因此发送电路就不需要双缓冲结构。 2.串行通信控制有关的寄存器 SCON:串行控制,用来设定串行口的工作方式 PCON:电源控制,可控制波特率。 IE: 设置串行中断允许。,启动发送 :MOV SBUF,A ;SBUF (A)启动接收 :MOV A,SBUF ;A (SBUF),北京交通大学,18,(1)串行控制寄存器SCON SCON格式如下:,SM0 SM1 SM2 REN TB8 RB8 TI RI (98H),9F 9E 9D 9C 9B 9A 99 98,工作方式选择位,多机通信控制位,允许接收控制位,发送数据第九位,接收数据第九位,发送中断标志,接收中断标志,北京交通大学,1

8、9,各位功能说明如下:SM0 SM1:串口工作方式选择位,00 方式0: 同步移位寄存器 波特率=主振频率/12,01 方式1: 8位异步,波特率可变,10 方式2:9位异步 波特率=主振频率/32 或主振频率/64,11 方式3:9位异步,波特率可变,北京交通大学,20,REN=1:允许串行接收,用软件置位或清除。 TB8:发送数据位8,即:,D0 D7 D8,TB8/RB8,D80:表示数据帧; D81:表示地址帧,在工作方式、3中,TB8是发送的第位数据, 由软件置位(SETB TB8)或复位(CLR TB8)在双机通信中,该位作为奇偶校验位;在多机通信中用来表示D7-D0是地址帧或数据

9、帧,北京交通大学,21,RB8:接收数据位8TI:发送中断标志。,在工作方式和中,该位是接收到的第位数据。 方式1,SM2=0,停止位。方式0,不用。在多机通信中是地址帧(RB8=1)和数据帧 (RB8=0)的标识位。,在方式中,发送完第8位数据后,该位由硬件置位;在其它方式中,在发送停止位之前,该位由硬件置位,申请中断,CPU响应中断后,可以发送下一帧数据。该位必须由软件清零。,北京交通大学,22,RI:接收中断标志。,在方式中,接收完第8位数据后,该位由硬件置位,在其它方式中,在接收到停止位的一半时,该位由硬件置位(还需考虑SM2的设定),申请中断,CPU响应中断后,可以接收下一帧数据。该

10、位也必须由软件清零。,北京交通大学,23,SM2:多机通信控制位,主要用于方式2、3中。,在方式0中,SM2设置为0,不用TB8和RB8,在方式1中:当SM20,则RB8是接收到的停止位; 当SM21,则只有接收到有效的停止位时,RI才被激活。,在方式2、3中, TB8和RB8为发送和接收的第九位数据,,当SM20时,则不论RB8为还是1,都将前8位数据装入SBUF中,表示接收到命令或数据,并产生中断请求。,当SM21时,只有当接收到的第九位数据 RB8=1时, 才将接收到的前8位数据送入SBUF,表示接收到地址帧; 当RB80时,将接收到的前8位数据丢弃。,北京交通大学,24,说明:1.用软

11、件可以改变设置SCON内容,并在下一条指令的第一个周期的S1P1期间才锁存到SCON中。2.一帧发送完,发送中断标志置位(TI),向CPU请求中断。一帧接收完,接收中断标志置位(RI),向CPU请求中断。,北京交通大学,25,它主要是为CHMOS型单片机的电源控制而设置的。对HMOS型单片机,除了最高位(SMOD)之外,其它位都是虚设的,SMOD是串行口波特率的倍增位。 当:SMOD1时,串行口波特率加倍系统复位时,SMOD0。可由下列指令设置: MOV PCON,#80H ;SMOD 1 MOV PCON,#00H ;SMOD 0,(2)电源控制寄存器PCON格式:,SMOD,(87H),北

12、京交通大学,26,(1)方式0:同步移位寄存器方式 RXD端作为数据移位的入口或出口 TXD端提供移位时钟脉冲,移位数据的发送和接收以8位为一帧,不设起始位和停止位,低位在前高位在后,波特率是固定的即一个机器周期移位一次。,2.串行口的工作方式,RXDTXD,DATACLK,RXDTXD,DATACLK,并行输出,并行输入,8051,CD4096,8051,CD4014,下图 串并,并串转换方法电路,P1.0,STB,P1.0,STB,fOSC/12,北京交通大学,27,说明: 1.REN=1,允许接收。 RXD数据输入,TXD移位脉(fosc/12)。接收(发送)完8位数据时硬件将RI(TI

13、)置位,CPU响应中断, 2.TI,RI必须由用户程序清零。 3.方式0时:SM2=0,TB8、RB8不用 4.扩展I/O 串行输入,串行输出,并串、串并转换,北京交通大学,28,数据输出,MOV SBUF,A,fosc=1/12,发送完8位数据,北京交通大学,29,REN=“1”,方式0,RI=“0”RXD数据输入端,接收到8位数据,北京交通大学,30,数据发送 1.数据发送是由一条写发送寄存器(MOV SBUF,A)指令开始的。 2.此后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式。 3.然后在移位脉冲的作用下,由TXD端串行输出。 4.一个字符帧发送完后,使TXD端输出线维

14、持高电平,并将TI置位,通知CPU可以发送下一个字符。,起始 D0 D1 D2 D3 D4 D5 D6 D7 停止,(2)方式1 方式1的帧格式为:,北京交通大学,31,数据接收 1.接收数据时,应使REN1。在此前提下,串行口采样RXD端,当采样到从1到0的跳变时,就认定是接收到了起始位。 2.随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。 3.直到停止位到来之后把它送入到RB8中,并置位RI,通知CPU从SBUF取走接收到的一个字符。,北京交通大学,32,发送十位信息,启动,发送完置1,REN=“1”,SM0=0,SM1=1,RI=0,7,8,9共3次采样数据,采样到1变0,启

15、动接收,波特率16倍速率,条件:1.RI=02.停止位=1,或SM2=0、停止位进入RB8,并RI=1,北京交通大学,33,波特率的设定 方式1的波特率可变,由下式决定:,实际使用时,总是先确定波特率,再计算T1的计数初值。即:,smod为PCON寄存器最高位的值,fOSC为晶振频率,X为当T1工作于方式2(8位自动加载)时的计数初值。,其中:,北京交通大学,34,(3) 方式2和方式3 串行口工作在方式2、3时,为9位异步通信口,发送和接收帧信息由11位组成,即:,D0 D2 . . . D7 D8,一帧,1位起始位(0)、位数据位(D0-D7)、1位可编程位(D8)和1位停止位(1)。D8

16、位既可作为奇偶校验位,也可作为控制位使用,功能由用户确定发送时,可编程位D8(TB8)可设置为0(CLR TB8)或1(SETB TB8)接收时,TB8送入SCON寄存器中RB8位。,北京交通大学,35,方式2、3的区别是:波特率设置不同方式2的波特率是固定的。即: 波特率=fosc/32或fosc/64方式3的波特率是可变的。即:,北京交通大学,36,波特率 fosc smod,1200 11.0592 0 2 E8H2400 11.0592 0 2 F4H4800 11.0592 0 2 FAH9600 11.0592 0 2 FDH19200 11.0592 1 2 FDH,定时器1 方

17、式 时间常数,表1 波特率与时间常数,北京交通大学,37,MCS-51串行通信波特率:,方式0波特率= fOSC/12,fOSC 为主机频率方式2 SMOD=1,波特率= fOSC/32; SMOD=0,波特率= fOSC/64;方式1,3,T1溢出率=,北京交通大学,38,方式2发送程序: 以TB8为偶校验位,处理方法是数据写入SBUF之前,先将P写入TB8 CLR TI ;发送中断标志TI清零 MOV A,R0 ;取数据 MOV C,P ;奇偶校验位送TB8 MOV TB8,C MOV SBUF,A ;数据写入,启动发送,北京交通大学,39,接收程序若附加第九位数据为偶校验位,接收程序中应

18、作校验处理 CLR RI ;收到一帧数据后清RI MOV A,SBUF ;前八位数据送A MOV C,P ;正确P=0,RB=0。P=1,RB=1 JNC PD0 ;P=0,判RB8=0否 JNB RB8,ERROR ;P=1,RB8=0出错 AJMP POK PD0:JB RB8,ERRO ;P=0, RB8=1出错POK:MOVRO,AERROR: ,北京交通大学,40,利用串行口工作方式0扩展I/O口,MOV R1,#60H SETB P1.0 CLR P1.0 ;下降沿并入 SETB P1.0 ;移位 MOV SCON,#10H;方式0,启动接收 MOV R0,#02H ;每组字节数2

19、WAIT: JNB RI,WAIT,CLR RI MOV A,SBUF MOV R1,A INC R1 DJNZ R0,WAIT,北京交通大学,41,利用串行口工作方式0扩展I/O口,MOV R6,#02H MOV R0,#30H MOV SCON,#00H;方式0 SEND:MOV A,R0 MOV SBUF,A;启动发送 WAIT:JNB TI,WAIT,CLR TI;清发送中断标志 INC R0 DJNZ R6,WAIT,北京交通大学,42,三、串行口应用举例,例 6-1 双机通信 设:甲机发送乙机接收,串行口工作在方式1,波特率为 1200 fosc=11.0592MHz 硬件连接如图

20、 计算时间常数,TXD RXD GND,RXDTXD GND,T1作为波特率发生器,工作于方式2。由表1查得时间常数为E8H。,图 双机通信,乙,甲,北京交通大学,43,甲机发送程序 甲机将内部RAM单元20H-3FH的32个字节的ASCII码数据,在最高位上加奇校验位后,由串行口TXD发送给乙机。即可采用8位异步通信。START:MOV TMOD,#20H ;T1为方式2 MOV TL1,#0E8H ;时间常数低8位 MOV TH1,#0E8H ; SETB TR1 ;启动T1工作 MOV SCON,#01000000B ;串行口方式1 MOV R0,#20H ;数据首地址 MOV R7,#

21、32 ;32字节数据,北京交通大学,44,LOOP: MOV A, R0 ;取数据,影响P标志位 MOV C, P ;置奇校验位 CPL C MOV ACC.7, C MOV SBUF,A ;启动发送DONE: JNB TI, DONE ;等待发完一帧 CLR TI ;清TI,允许再发送 INC R0 ;指向下一数据 DJNZ R7, LOOP ;未送完,送下一个数 AJMP LOOP ;循环发送,北京交通大学,45,乙机接收程序 与甲机发送相呼应,接收器把接收到的32个字节数据存放在内部RAM的20H-3FH中,波特率与晶振频率同上。若奇校验出错,则置进位为1。程序如下:,START:MOV

22、 TMOD,#20H ;T1方式2 MOV TL,#OE8H MOV TH,#OE8H SETB TR1 MOV R0,#20H MOV R7,#32LOOP:MOV SCON,#01010000B ;串行口方式1,能接收,北京交通大学,46,DONE:JNB RI,DONE ;等待接收一帧 CLR RI ;清RI,再接收 MOV A,SBUF ;取数据 JNB P, ERROR ;校验错,转出错处理ANL A,#7FH ;去掉奇校验位 MOV R0,A ;奇校验,存数据 INC R0 ;指向下一数据 DJNZ R7,LOOP ;数据块,未接收完,循环 AJMP LOOP ;循环接收ERROR: ;出错处理,北京交通大学,47,作业P144: 2, 3, 7,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号