单片机应用技术(C语言版)第8章串行通信接口2020/6/221第8章MCS-51单片机串行通信接口目录8.1串行通信基本知识8.2串行口控制器8.3串行口工作方式8.4波特率的制定方法8.5串行通信的接口电路8.6串口的C51编程与应用2020/6/2228.1串行通信基本知识并行通信:数据的各位同时传送。接受设备发送设备询问应答特点:控制简单,传输速度快。传输线多,长距离传输成本高。8.1.1概述老式打印机接口2020/6/223串行通讯:数据一位一位顺序传送。特点:传输线少,长距离传送时成本低,但控制复杂。接受设备发送设备顺序传送D7D02020/6/224发送器接收器时间2发送器接收器发送器接收器时间1发送器接收器发送器接收器半双工通讯:数据可分时双向传送。单工通讯:数据单向传送。全双工通讯:可同时进行发送和接收。串行通讯三种制式2020/6/2258.1.2串行传输方式波特率在串行通信中,对数据传送速度有一定要求。波特率表示每秒传送的位数,单位为b/s。例如:数据传送速率为每秒钟10帧,若每帧为11位,则传送波持率为:110b/s问:为什么串行通信的双方波特率必须相同?答:只有波特率相同的情况下才能保证收/发双发获取相同的数据,否则就会有误差。2020/6/226一、异步通信(AsynchronousCommunication)发送与接收设备使用各自的时钟控制数据的发送和接收。采用独立的移位脉冲控制,并不需要同步脉冲。以帧为单位进行传输;每帧数据之间的间隙可以任意。2020/6/227异步通信的数据格式:停止位数据位校验位起始位LSBMSB空闲下一字符起始位空闲一个字符帧异步通信的特点:(1)不要求收发双方采用同步脉冲,实现容易;(2)设备开销较小;(3)每帧数据要附加启/停位和间隙,传输效率不高。2020/6/228二、同步通信SynchronousCommunication建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。传送的字符间不留间隙,即保持位同步,也保持字符(帧)同步关系。计算机乙计算机甲01101数据时钟2020/6/229典型的同步通信格式:同步字符1同步字符2N个字节的连续数据校验信息1校验信息2先发送一个或两个同步字符,使发送与接收取得同步,然后再顺序发送数据。数据块的各个字符间取消起始位和停止位。特点:通信速度得以提高,但控制较为复杂。2020/6/2210串行接口(总线)种类根据串行通信格式及约定(如同步方式、通信速率、数据块格式等)不同,形成了许多串行通信接口标准,如常见的:UART(串行异步收发器)用于控制计算机与串行设备的芯片,集成在主板上(串口设置COM等);USB(通用串行总线接口);RS-232、RS-485接口;2020/6/2211I2C(集成电路间的串行总线)PHILIPS公司两线式串行总线,用于连接微控制器及其外围设备的同步串行总线;SPI(串行外部设备接口)Motorola公司推出的,在CPU和外围低速器件之间进行同步串行数据传输;用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线。2020/6/2212一、MCS-51串行口结构8.2串行口结构及控制器2020/6/2213MCS-51有一个可编程的全双工串行通信接口。SBUF:两个物理上独立的接收、发送缓冲器。存放收/发数据。收/发过程由单片机自动完成。在程序中:a=SBUF;(接收数据)SBUF=b;(发送数据)低位在先2020/6/2214二、与串行口有关的特殊功能寄存器1.串口控制寄存器SCON用于定义串口的工作方式和反映串行口状态,其字节地址为98H,复位后SCON=0,可位寻址格式为:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI2020/6/2215SM0和SM1(SCON.7、SCON.6):串行口工作方式选择位。SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位数据UART可变(T1溢出率/32或/16)10方式29位数据UARTfosc/64或fosc/3211方式39位数据UART可变(T1溢出率/32或/16)2020/6/2216SM2(SCON.5):多机通信控制位,在方式2或3中使用。REN(SCON.4):允许接收控制位,由软件置1或清0。2020/6/2217TB8(SCON.3):发送数据的第9位。可用作校验位或地址/数据标识位。(方式2,3中用)RB8(SCON.2):接收数据的第9位。(方式2,3中用)TI(SCON.1):发送中断标志。发送中TI=0;一帧结束,TI=1,此时须软件清零;RI(SCON.0):接收中断标志。接收中RI=0;一帧结束,RI=1,此时须软件清零.2020/6/22182.电源控制寄存器PCON电源控制寄存器PCON(地址为87H)中只有SMOD位与串行口工作有关。D7D6D5D4D3D2D1D0SMOD---------------------SMOD(PCON.7):波特率倍增位。串行口工作于方式1、方式2和方式3时,当SMOD=1时,串行口波特率加倍。复位值为0。PCON寄存器不能进行位寻址。2020/6/22198.3串行口的工作方式方式0为同步移位寄存器输入/输出方式,常用于扩展I/O口。方式0不适用于两个单片机之间的数据通信,主要用途是与外部移位寄存器相连。RXD为数据输入或输出;TXD为移位时钟,作为外接部件的同步信号。在这种方式下,收/发的数据为8位,低位在前,无起始位、奇偶校验位及停止位,波特率是固定的。一、串行口工作方式02020/6/222089C52P3.0P3.1P1.0Q0Q7AB74HC164CLKGNDCLRRXDTXD+5V13121110654314128989C52P3.0P3.1P1.0P1.1ABCDEFGHQH74HC165CLKGNDSHIFT时钟禁止RXDTXD+5V13121114654316921581发送电路接收电路串转并74LS1642020/6/2221并转串74LS165SH/LD高时移位,低时置数2020/6/22221.格式:一帧8位,无起始位和停止位,SM2=0,2.波特率B=fosc/123.发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。如:fosc=12MHz,B=1MHz。方式0收发时序RI2020/6/2223注:发送和接收数据全部由单片机硬件完成,我们要做的就是设置好工作方式,然后将发送的数据写入SBUF;或从SBUF中读出数据。串口方式0举例2020/6/2224二、串行口工作方式1方式1真正用于串行发送或接收,为10位通用异步接口。TXD与RXD分别用于发送与接收数据。单片机与单片机、单片机与计算机、计算机与计算机串口通信时,基本都选择方式1。2020/6/2225发送:写入SBUF并启动发送,发送结束,置TI=1。接收:当用软件置REN=1时,检测到RXD引脚发生负跳变时,开始接受。当满足(1)RI=0;(2)收到停止位为1(或SM2=0)时,数据8位装入SBUF,置RI=1,且第9位停止位进入RB8中;若两条件不满足,信息将丢失。波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。(a)发送时序(b)接收时序2020/6/22268.4波特率的制定方法SM0SM1工作方式功能说明波特率00方式0同步移位寄存器fosc/1201方式18位数据UART可变(T1溢出率/32或/16)10方式29位数据UARTfosc/64或fosc/3211方式39位数据UART可变(T1溢出率/32或/16)2020/6/22271.方式0的波特率方式0的波特率=fosc/122020/6/22282.方式1的波特率(1)T1作波特率发生器在最典型应用中,定时器T1选用定时器方式2,n=8波特率B=(2SMOD/32)×fosc/[12×(28-C)]C=28-fosc/12×2SMOD/(32×B)因计算复杂,一般用查表方法。322SMOD方式1波特率=×(T1溢出率)???2020/6/2229表8.2定时器1产生的常用波特率表2020/6/2230例若51单片机的时钟振荡频率为11.0592MHz,选用T1为方式2定时作为波特率发生器,波特率为2400b/s,求初值。解:查表8.2:为F4H。时钟振荡频率选11.0592MHz,计算过程无余数,可使初值为整数,从而产生精确的波特率。2020/6/2231串口应用补充:串口初始化(设置产生波特率的定时器1、串口控制和中断控制)步骤:1、确定T1的工作方式(编程TMOD);2、计数T1的初值,装载TH1,TL1;3、启动T1(编程TCON中的TR1);4、确定串行口工作方式(编程SCON);5、串行口工作在中断方式时,进行中断设置(编程IE,IP)。不能位寻址2020/6/2232举例:TMOD=0x20;TH1=0xfd;TH1=0xfd;TR1=1;SM0=0;SM1=1;REN=1;EA=1;ES=1;或者:SCON=0x50;一定写在SM0和SM1的下面2020/6/2233串口应用串口方式1举例:2020/6/22348.5串行通信的接口电路RS-232C接口是使用最早、应用最多的一种异步串行通信总线标准。8.5.1RS-232C接口2020/6/2235(1)机械特性表8.39针RS-232C接口器引脚定义2020/6/2236串行通信电平:单片机串行口的输入、输出均为TTL电平。特点:抗干扰性差,传输距离短(1.5米之内),传输效率低。数字值:10TTL电平:+5V0V2020/6/2237如果想提高串行通信的可靠性,增大串行通信的距离和提高传输效率,在实际中都采用标准串行接口—RS-232,RS-485RS232串行接口总线通信距离1.5m—15m数字值:10232电平:-3V~-15V+3V~+15V2020/6/2238串行通信电平转换:要完成PC机(RS232电平)与单片机的数据通信必须进行电平转换。MAX232芯片可实现51单片机与PC机的RS-232C之间的电平转换。2020/6/2239PC机与单片机串行通信的接口电路PC机串行口MAX23212346578916151413121110C1+V+C1+V+C1-C2+C2-V-T2OUTR2INR2OUTT2INT1INR1OUTT1OUTR1INGNDVCC89C52TXDRXDGND++++VCCC2C1C3C4C5123451234567899876采用MAX232接口的串行通信电路2020/6/2240MAX232芯片简介MAX232芯片:是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片。MAX232芯片的功能:MAX232内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232C输出电平所需的±10V电压。所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了。2020/6/2241(a)引脚图(b)接线图图8.9MAX232接口芯片2020/6/22428.5.2RS-485接口RS-232串行通信时,经常受到外界的电气干扰而发生信号错误。RS-485不受此影响。RS-485传输距离长、速度快,传输速率最大可达10Mb/s,最大距离可达1200m。2020/6/22432020/6/2244本章小结本章介绍了单片机串行口基本组成与应用。通信方式有串行通信和并行通信,串行通信又分为同步通信和异步通信。MCS-51单片机有一个全双工UART(串行通信接口),工作方式有4中,方式0为移位寄存器方式,主要用来进行串行与并行数据的转换,方式1、2、3为通用的异步传送方式。2020/6/2245