资源描述
第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术第章单片机的串行接口技术(jsh)第一页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术学习目的学习目的 (1)了解通信)了解通信(tng xn)的概念,熟悉串行通信的概念,熟悉串行通信(tng xn)和并行通信和并行通信(tng xn)原理;原理;(2)理解串行通信)理解串行通信(tng xn)的的3中制式;中制式;(3)掌握串行通信)掌握串行通信(tng xn)的标准;的标准;(4)掌握)掌握80C51串行口的通信串行口的通信(tng xn)原理和通信原理和通信(tng xn)方法;方法;(5)熟悉新型串行通信)熟悉新型串行通信(tng xn)总线标准。总线标准。学习重点和难点学习重点和难点 (1)串行通信)串行通信(tng xn)的原理和数据帧格式;的原理和数据帧格式;(2)RS-232C的接口标准及电气标准;的接口标准及电气标准;(3)80C51串行口的通信串行口的通信(tng xn)方式设置及波特方式设置及波特率设置方法;率设置方法;(4)80C51单片机间的通信单片机间的通信(tng xn)和单片机与和单片机与PC机的通信机的通信(tng xn)程序设计方法;程序设计方法;(5)I2C总线和总线和SPI总线的应用编程。总线的应用编程。第二页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 计算机与计算机之间,计算机与外设之计算机与计算机之间,计算机与外设之间的数据交换称为通信。计算机与外部设备间的数据交换称为通信。计算机与外部设备的通信有两种基本方式:并行通信和串行通的通信有两种基本方式:并行通信和串行通信。信息的各位数据被同时信。信息的各位数据被同时(tngsh)传送的传送的通信方法称为并行通信。并行通信依靠并行通信方法称为并行通信。并行通信依靠并行I/O接口实现。在并行通信中,数据有多少位接口实现。在并行通信中,数据有多少位就需要多少条信号传输线,这种通信方式的就需要多少条信号传输线,这种通信方式的速度快,但由于传输线数较多,成本高,仅速度快,但由于传输线数较多,成本高,仅适合近距离通信,通常传送距离小于适合近距离通信,通常传送距离小于30米,米,常用并行通信协议有常用并行通信协议有SPP、EPP、ECP等。等。当距离大于当距离大于30米时,则多采用串行通信方式,米时,则多采用串行通信方式,串行通信是指信息的各位数据被逐位顺序传串行通信是指信息的各位数据被逐位顺序传输的通信方式,这种通信方式较之并行通信输的通信方式,这种通信方式较之并行通信而言,具有如下优点:而言,具有如下优点:(1)传输距离长,可达到数千公里;传输距离长,可达到数千公里;(2)长距离内串行数据传送速率会比并行数长距离内串行数据传送速率会比并行数据传送速率快,串行据传送速率快,串行 通信的通信时钟频率较并行通信更容易通信的通信时钟频率较并行通信更容易提高;提高;(3)抗干扰能力强,串行通信信号间的相互抗干扰能力强,串行通信信号间的相互干扰完全可以忽略;干扰完全可以忽略;(4)通信成本低;通信成本低;(5)传输线既传数据,又传联络信息。传输线既传数据,又传联络信息。5.1 串行通信串行通信(tng xn)概述概述第三页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术串行通信的分类串行通信的分类 通常情况下,在串行通信中根据信息传送的格式分为:异步通常情况下,在串行通信中根据信息传送的格式分为:异步串串行通信和同步串行通信。同步串行通信是按软件识别同步字符来行通信和同步串行通信。同步串行通信是按软件识别同步字符来实实现数据的传送;异步串行通信是一种利用字符的再同步技术的通现数据的传送;异步串行通信是一种利用字符的再同步技术的通信信方式。在方式。在80C51单片机中主要使用异步串行通信方式。单片机中主要使用异步串行通信方式。同步通信方式是以数据块的方式传送的,数据传输率高,适同步通信方式是以数据块的方式传送的,数据传输率高,适合高合高速率、大容量的数据通信。同步通信在数据开始处用速率、大容量的数据通信。同步通信在数据开始处用12个同步个同步字字符来指示。同步通信中,由同一频率的时钟脉冲来实现符来指示。同步通信中,由同一频率的时钟脉冲来实现(shxin)发送和接收发送和接收的同步。在发送时要插入同步字符,接收端在检测到同步字符后,的同步。在发送时要插入同步字符,接收端在检测到同步字符后,就开始接收任意位的串行数据,如图就开始接收任意位的串行数据,如图5-1所示。可见,同步通信具所示。可见,同步通信具有有较高的传输速率,通常在几十至几百千波特,但对硬件要求较高。较高的传输速率,通常在几十至几百千波特,但对硬件要求较高。图图5-1 5-1 同步通信原理图同步通信原理图第四页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术异步通信中,是以字符为单位传送的,数据传送可靠性高,适合低速通信的场合。异步通信用起始位“0”表示字符的开始,然后从低位到高位逐位传送数据,最后用停止位“1”表示字符的结束。一个字符又称为一帧信息。在异步通信中,对字符的编码形式规定位:每个串行字符由4个部分组成:1个起始位、58个数据位、1个奇偶校验位以及12个停止位。在帧格式中,一个字符由起始位“0”开始,到停止位结束,两相邻字符帧之间可以无空闲位,也可以有若干空闲位,这由用户根据(gnj)需要决定。如图5-2所示。图图5-2 5-2 异异步步通通信信字字符符帧帧格格式式起始位:逻辑起始位:逻辑“0”信号,占信号,占1位,用以通知接收端有一位,用以通知接收端有一个新的字符数据到达,应准备接收。当信道上没有数据个新的字符数据到达,应准备接收。当信道上没有数据传送时,保持为高电平传送时,保持为高电平“1”,也就是空闲,也就是空闲(kngxin)信信号。对于接收端,不断的检测线路状态,若连续为号。对于接收端,不断的检测线路状态,若连续为“1”后又检测到一个后又检测到一个“0”,则立即准备接收数据。,则立即准备接收数据。数据位:逻辑数据位:逻辑“0”、“1”信号,占信号,占58位,在数位,在数据发送据发送(f sn)时,总是低位在先,高位最后。时,总是低位在先,高位最后。奇偶校验位:逻辑奇偶校验位:逻辑“0”或或“1”信号,占信号,占1位,用于在数位,用于在数据传送时作正确性检查,通常有:奇校验、偶校验和无据传送时作正确性检查,通常有:奇校验、偶校验和无校验三种情况。当该位不用于校验时可作为控制位,用校验三种情况。当该位不用于校验时可作为控制位,用于判定该字符所代表的信息于判定该字符所代表的信息(1-地址或地址或0-数据等数据等)。停止位:逻辑停止位:逻辑“1”信号,用于表征字符的结束,表信号,用于表征字符的结束,表示一帧字符信息发送结束。该位可以时示一帧字符信息发送结束。该位可以时1、1.5或或2个个比特位,在实际应用中由用户根据需要设定。比特位,在实际应用中由用户根据需要设定。第五页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 在异步通信中,发送方和接收方必须保持相同的波特率(Baud Rate)才能实现正确的数据传送(chun sn)。波特率是串行通信的重要指标,用于表征数据传输的速度,波特率是指单位时间内传送(chun sn)的信息量,即每秒钟传送(chun sn)的二进制位数(亦称比特数),单位是bit/s,即位/秒。波特率越高,数据传输速度越快,但和字符的实际传输速率不同。字符的传输速率是指每秒内所传送(chun sn)字符帧数,和字符帧格式有关。例如(lr):在异步通信中使用1位起始位,8位数据位,无奇偶校验位,1位停止位,即一帧数据长度为10bit,如果要求数据传送的速率是1秒传送120帧字符,则传送波特率为1200波特。常用的标准波特率是:110波特、300波特、600波特、1200波特、l800波特、2400波持、4800波特、9600波特和19200波特。第六页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术串行通信制式串行通信制式 在在串串行行通通信信中中,数数据据通通常常在在发发送送器器和和接接收收(jishu)(jishu)器器(如如A A和和B B)之间进之间进行双向传送。这种传送根据需要又可分为单工通信、半双工通信行双向传送。这种传送根据需要又可分为单工通信、半双工通信和全双工通信。在和全双工通信。在80C5180C51单片机中使用全双工异步串行通信方式。单片机中使用全双工异步串行通信方式。单工通信是指从单工通信是指从A A设备向设备向B B设备发送,如图设备发送,如图5-3(a)5-3(a)所示;半双工通所示;半双工通信是指既能从信是指既能从A A设备发送到设备发送到B B设备,也能从设备,也能从B B设备发送到设备发送到A A设备,但设备,但在任何时候不能同时在两个方向上传送,即每次只能有一个设备在任何时候不能同时在两个方向上传送,即每次只能有一个设备发发送送,另另一一个个设设备备接接收收(jishu)(jishu),通通讯讯双双方方依依照照一一定定的的通通讯讯协协议议来来轮流地轮流地进进行行发发送送和和接接收收(jishu)(jishu),如如图图5-3(b)5-3(b)所所示示;全全双双工工通通信信是是指指允允许许通信双通信双方方同同时时进进行行发发送送和和接接收收(jishu)(jishu),全全双双工工方方式式相相当当于于把把两两个个方方向向相相反的单反的单工方式组合在一起,因此它需要两条数据传输线,如图工方式组合在一起,因此它需要两条数据传输线,如图5-3(c)5-3(c)所所示。示。图图5-3 5-3 串行通信数据传送方式串行通信数据传送方式第七页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 串行通信接口标准 从本质说,通信是CPU于外部设备间交换信息的一种方式。所有的串行通信接口电路都是以并行数据形式与CPU连接、而以串行数据形式与外部设备进行数据传送。它们的基本功能都是从外部设备接收串行数据,转换为并行数据后传送给CPU;或从CPU接收并行数据,转换成串行数据后输出给外部设备。能够实现异步通信的硬件电路称为UART(Universal Asynchronous Receive/Transmitter),即通用异步接收器/发送器;能够实现同步通信的硬件电路称为USRT(Universal Synchronous Receive/Transmitter)。所谓接口标准,就是明确的定义若干条信号线,使接口电路标准化、通用化。采用标准接口,可以方便地把计算机、外部设备和测量仪器等有机的联系起来,并实现其间的通信。在单片机控制系统中,常用的串行通信接口标准有:RS-232C、RS-449、RS-422A、RS-423A、RS-485、20mA电流(dinli)环、USB、IIC及SPI等总线接口标准。第八页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术1、RS-232C总线 RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(若 Recommended Standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。1)RS-232C机械特性 RS-232C标准规定使用符合ISO 2110标准的25芯D型连接器,该标准还规定了:在具有一定的数据处理能力和数据收发能力的数据终端设备DTE(Data Terminal Equipment)上使用插座,在DTE和传输线路之间提供信号变换和编码功能,并负责建立、保持和释放链路的连接器称为数据通讯设备DCE(Data Communication Equipment)上使用插头,如Modem。DCE设备通常(tngchng)是与DTE对接的,因此针脚的分配相反。RS-232C总线标准设有25条信号线,其中:4条数据线11条控制线、3条定时线、7条备用和未定义线,常用的只有9条。因此串行口连接器分为9芯D型连接器针和25芯D型连接器两种,如图5-4所示。两种连接器引脚的对应如表5-1所示。第九页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术表 5-1 DB-25与 DB-9引 脚 对 应(duyng)关系DB-25DB-9信号名称信号传送方向含 义23TXD输出数据发送端32RXD输入数据接收端47RTS输出请求发送(计算机要求发送数据)58CTS输入清除发送(MODEM准备接收数据)66DSR输入数据设备准备就绪75SG信号地81DCD输入数据载波检测204DTR输出数据终端准备就绪(计算机)229RI输入响铃指示图5-4 RS-232C连接器示意图第十页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 尽管RS-232C使用(shyng)20条信号线,大多数情况下,微型计算机、计算机终端和一些外部设备都配有RS-232C串行接口。在近距离通信时可以通过RS-232C直接将通信双方连接,这种方式称为“零调制解调”,只需三条连接线,即“发送数据”、“接收数据”和“信号地”,发送方和接收方的“发送数据”、“接收数据”端交叉连接,传输线采用屏蔽双绞线即可实现,如图5-5所示;当使用(shyng)RS-232C进行远距离传送数据时,就必须配合调制解调器(modem)和 线进行通信,其连接及通信原理如图5-6所示。图图5-5 5-5 三线制连接原理图三线制连接原理图图图5-6 5-6 远程串行通信原理图远程串行通信原理图第十一页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术2)RS-232C的电气特性 由于RS-232C是在TTL集成电路之前制定的,所以它的电平不是+5V和地,RS-232C标准规定了数据和控制信号的电压范围它使用负逻辑约束,其低电平“0”在+3+15V之间,高电平“1”在-3-15V之间,而单片机的逻辑“1”是以+5V来表示的,因此RS-232C不能和TTL电平直接相连。为了保证数据正确地传送,设备控制能准确地完成,必须使所用(su yn)的信号电平保持一致,把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平,或者把计算机的RS-232C电平转换成单片机的TTL电平因此,使用时必须加上适当的电平转换电路。常用的电平转换器:如 MC1488、MC1489、MAX232等。MAX232是单电源双RS-232发送/接收芯片,如图5-7所示,采用单一+5V电源供电,外接只需4个电容,便可以构成标准的RS-232通信接口,硬件接口简单,所以被广泛采用,其主要特性如下:图图5-7 MAX2325-7 MAX232实现实现TTLTTL电平与电平与RS-232RS-232电平转换电平转换1)符合(fh)所有的RS-232C技术规范。2)只要单一+5V电源(dinyun)供电。3)具有升压、电压极性反转能力,能够产生+10V 和-10V电压V+、V-4)低功耗,典型供电电流5mA。5)内部集成2个RS-232C驱动器。6)内部集成2个RS-232C接收器。第十二页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 RS-232C既是一种协议标准,又是一种电气标准,它采用单、双极性电源供电电路,可用于最远距离为15 m最高速率达20 kb/s的串行异步通信。但是,RS-232C仍有一些不足之处,主要表现在:1)传输速率不够快:RS-232C标准规定最高速率为20 kb/s,尽管能满足异步通信要求,但不能适应高速的同步通信。2)传输距离不够远:RS-232C标准规定各装置之间电缆长度(chngd)不超过50英尺(约15 m)。实际上,RS-232C能够实现100英尺或200英尺的传输,但在使用前,一定要先测试信号的质量,以保证数据的正确传输。3)RS-232C接口采用不平衡的发送器和接收器,每个信号只有一根导线,两个传输方向仅有一个信号线地线,因而电气性能不佳,容易在信号间产生串扰。第十三页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术2、RS-449总线 EIA 1977年公布的电子工业标准接口RS-449,在很多方面可代替RS-232C应用。两者的主要差别是信号在导线上的传输方法不同。RS-232C是利用传输信号与公共地之间的电压差,RS-449接口是利用信号导线之间的信号电压差,可在1219.2m的24-AWG双绞线上进行数字通信,由于它克服了RS-232C互不兼容的25芯连接器以及接口处信号间易串扰等缺陷(quxin),最大传输距离达1200米,信号最高传输速率为100kb/s。RS-449规定了两种接口标准连接器,一种为37芯,另一种为9芯。由于RS-449系统用平衡信号差传输高速信号,所以噪声低;它还可以多点或者使用公用线通信,故RS-449通信电缆可与多个设备并联。第十四页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术3、RS-422A总线 RS-422A标准(biozhn)给出了RS-449应用中对于电缆、驱动器和接收器的要求,规定了双端电气接口型式,该接口是双端线传送信号。它通过传输线驱动器,把逻辑电平变换成电位差,完成发送端的信息传递通过传输线接收器,把电位差动变换成逻辑电平,实现接收端的信息接收。RS-422A比RS-232C传输距离长、速度快,传输速率最大可达10Mbit/s,在此速率下电缆允许长度为12m。如果采用低速率传输,如90000bit/s,最大传输距离可达1200m。RS-422A每个通道要用两条信号线,如果其中一条是逻辑“1”状态,另一条就是逻辑“0”状态。RS-422A电路由发送器、平衡连接电缆、电缆终端负载、接收器等部分组成。在电路中规定只许有一个发送器,可有多个接收器,因此通常采用点对点的通信方式。该标准(biozhn)允许驱动器输出电压为2V6V,接收器可以检测到的输入信号电压可低到200mV。RS-422A总线采用平衡输出的发送器,差分输入的接收器。如图5-8所示。图图5-8 5-8 平衡驱动差分传送电路平衡驱动差分传送电路第十五页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 4、RS-423A总线 RS-423A规定为单端线,而且与RS-232C兼容,参考电平为地,该标准的主要优点是在接收端采用了差分输入。而差分输入对共模干扰信号有较高的抑制作用,这样就提高了通信的可靠性。RS-423A用-6v表示逻辑“1”,用+6v表示逻辑“0”,可以直接与RS-232C相接。RS-423A驱动器在90m长的电缆上传送数据的最大速率为100kbit/s,若降低到l000bit/s,则允许电缆长度为1200m。RS-423A允许在传送线上连接多个接收器,接收器为平衡传输(chun sh)接收器,因此允许驱动器和接收器之间有电位差。如图5-9所示是RS-423A 的连接示意图。图图5-9 RS-423A5-9 RS-423A总线接口示意图总线接口示意图第十六页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术5、RS-485总线 RS-485是一种多发送器的电路标准,它扩展了RS-422A的性能,允许双导线上一个发送器驱动32个负载设备。负载设备可以是被动发送器、接收器和收发器。RS-485电路允许共用 线通信。电路结构是在平衡连接电缆两端有终端电阻,在平衡电缆上挂发送器、接收器和组合发收器。RS-485标准没有(mi yu)规定在何时控制发送器发送或接收机接收数据。RS-485最小型由两条信号电路线组成。每条连接电路必须有接地参考点,这电缆能支持32个发送接收器对。为了避免地面漏电流的影响,每个设备一定要接地。电缆应包括连至每个设备地的第三信号参考线。若用屏蔽电缆,屏蔽应接到设备的机壳。典型的RS-232到RS422/485转换芯片有:MAX481/483/485/487/488/489/490/491,SN75175/176/184等,它们均只需单一+5v电源供电即可工作。接口示意图如图5-10所示。图图5-10 RS-4855-10 RS-485总线接口示意图总线接口示意图第十七页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术6、20mA电流环串行接口 20mA电流环是目前串行通信中广泛使用(shyng)的一种接口电路,其原理如图5-11所示。由于20mA电流环是一种异步串行接口标准,所以在每次发送数据时必须以无电流的起始状态作为每一个字符的起始位,接收端检测到起始位时便开始接收字符数据。电流环串行通信接口的最大优点是低阻传输线对电气噪声不敏感,而且易实现光电隔离,因此在长距离通信时要比RS-232C优越得多。图5-11 20mA电流环接口原理图第十八页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 MCS-51单片机通过串行数据接收引脚单片机通过串行数据接收引脚RXD(P3.0)和串行数据发送引脚和串行数据发送引脚TXD(P3.1)与)与外界进行通信。串行口内有一个可直接外界进行通信。串行口内有一个可直接(zhji)寻址的寻址的专用寄存器专用寄存器-串行口缓冲寄存器串行口缓冲寄存器SBUF,SBUF由两由两个寄存器组成:一个发送寄存器、一个接收寄存器,个寄存器组成:一个发送寄存器、一个接收寄存器,两者共用一个物理地址两者共用一个物理地址99H,可同时发送、接收数据,可同时发送、接收数据,CPU写写SBUF,就是修改发送寄存器,就是修改发送寄存器,读读SBUF就是读就是读接收寄存器。其内部结构功能如图接收寄存器。其内部结构功能如图5-12所示。所示。接收寄存器是双缓冲的,以避免在接收下一帧数接收寄存器是双缓冲的,以避免在接收下一帧数据之前,据之前,CPU未能及时响应串口接收中断,没有把上未能及时响应串口接收中断,没有把上一帧数据读走,产生两帧数据重叠的情况。一帧数据读走,产生两帧数据重叠的情况。发送寄存器没有采用双缓冲结构,因为发送数据发送寄存器没有采用双缓冲结构,因为发送数据是由是由CPU控制的,在用户编程时,必须避免产生写重控制的,在用户编程时,必须避免产生写重叠情况,即在用户程序中必须等数据发送完毕后才能叠情况,即在用户程序中必须等数据发送完毕后才能发送下一个数据。发送下一个数据。图5-12 80C51串行口结构框图5.2 80C51的串行接口及工作的串行接口及工作(gngzu)方式方式第十九页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 的串行接口的控制寄存器 单片机串行接口是可编程的接口,在使用其串行接口时,必须先对串行口控制寄存器(SCON)和电源及波特率选择寄存器(PCON)进行(jnxng)初始化。1、SCON串行口控制寄存器 SCON是一个特殊功能寄存器,用于设定串行接口的工作方式,字节地址位98H,具有位寻址能力。各位的功能如下:SM0、SM1为工作为工作(gngzu)方式选择位。方式选择位。80C51串行口有四种工作串行口有四种工作(gngzu)方式,如表方式,如表5-2所示。所示。第二十页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 RI为接收中断标志位:在方式0下,当接收到第8位数据,或在其他3种方式下接收停止位的一半(与SM2的设置有关)时,由硬件置位。RI=1时,表示(biosh)一帧数据接收完成。RI被置位后可向CPU产生中断请求,也可供软件查询。RI必须用CLR指令复位。TI为发送中断标志位:在方式0下,当发送第8位数据结束,或在其他3种方式下发送停止位时,由硬件置位。TI=1时,表示(biosh)一帧数据发送完成。TI被置位后可向CPU产生中断请求,也可供软件查询。TI必须用CLR指令复位。RB8为帧接收标志位:在方式2、方式3下为接收数据的第9位,它可以是奇偶校验位,也可以作为多机通信控制位,用于判定该字符所代表的信息(地址或数据等)。在方式1下,若SM2=0,RB8位为接收到的停止位。在方式0下,该位不用。TB8为帧发送标志位:方式2、方式3下为要发送数据的第9位,由软件置位或复位,表示(biosh)奇偶校验位,也可以作为多机通信控制位,用于判定该字符所代表的信息(地址或数据等)。在方式0和方式1下,该位不用。第二十一页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 REN为串行口接收(jishu)允许控制位:由软件置位或复位。REN=1,表示允许接收(jishu);REN=0,禁止接收(jishu)。SM2为串行口多机通信控制位(作为方式2、方式3的附加控制位):在方式2或方式3下,若SM2=0,则不允许多机通信,即不管接收(jishu)到的第9位数据为0或1,前8位数据都送入SBUF,并使RI=1;若SM2=1,则允许多机通信。多机通信协议规定:若接收(jishu)到的第9位数据RB8=1,说明本帧数据为地址数据,若接收(jishu)到的第9位数据RB8=0,说明本帧为数据帧。在方式1下,若SM2=1,则只有接收(jishu)到有效的停止位时,才能置位RI。在方式0下,SM2必须为0。例如:设串行口工作在方式1,允许接收(jishu),则指令为:MOV SCON,#01010000B第二十二页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术2、PCON电源及波特率选择寄存器电源及波特率选择寄存器 PCON寄存器主要是为寄存器主要是为CHMOS型单片机的电源控制型单片机的电源控制(kngzh)设置设置的专用寄存器,单元地址为的专用寄存器,单元地址为87H,不能位寻址。各位的功,不能位寻址。各位的功能能如下:如下:SMOD:串行口波特率的倍增位。在:串行口波特率的倍增位。在HMOS单片机中,该单片机中,该寄存器中除最高位之外,其他寄存器中除最高位之外,其他(qt)位都是虚设的。在单片位都是虚设的。在单片机工作在方式机工作在方式1、方式、方式2和方式和方式3时,时,SMOD=1,串行口波,串行口波特率提高一倍;特率提高一倍;SMOD=0,则波特率不加倍。系统复位时,则波特率不加倍。系统复位时SMOD=0。GF1、GF0:通用标志位,由软件:通用标志位,由软件(run jin)置位、复位。置位、复位。PD:掉电方式控制位,掉电方式控制位,PD=1,则进入掉电,则进入掉电方式。方式。IDL:待机方式控制位,待机方式控制位,IDL=1,则进入待机,则进入待机方式。方式。第二十三页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 根据根据SCON寄存器的寄存器的SM0、SM1位设置的不同,位设置的不同,80C51串串行口有行口有4种工作方式,其中方式种工作方式,其中方式0和方式和方式2的波特率相同,方的波特率相同,方式式1和方式和方式3的波特率可变,取决于定时器的波特率可变,取决于定时器T1的溢出率。的溢出率。方式方式0 在方式在方式0下,串行口作同步移位寄存器用,其波特率固下,串行口作同步移位寄存器用,其波特率固定定为为fosc/12。串行数据从。串行数据从RXD(P3.0)端输入或输出,同步移位端输入或输出,同步移位脉脉冲由冲由TXD(P3.1)送出。这种方式常用于扩展送出。这种方式常用于扩展I/O口。口。移位输出:方式移位输出:方式0发送数据的原理图和工作时序如图发送数据的原理图和工作时序如图5-13,采用采用74LS164串入并出移位寄存器实现,串入并出移位寄存器实现,P1.0线提供片选信线提供片选信号号(高电平有效)。当一个数据写入串行口发送缓冲器时,串(高电平有效)。当一个数据写入串行口发送缓冲器时,串行行口将口将8位数据以位数据以fosc/12的固定波特率从的固定波特率从RxD引脚输出,从低引脚输出,从低位位到高位。发送完成后,置中断标志到高位。发送完成后,置中断标志TI为为1,请求中断,在再,请求中断,在再次次发送数据之前,必须发送数据之前,必须(bx)用软件将用软件将TI清零。清零。5.3 80C51串行口的工作串行口的工作(gngzu)方式及波特率方式及波特率第二十四页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 移位输入:方式移位输入:方式0接收数据的原理图和工作时序如图接收数据的原理图和工作时序如图5-14所示采用所示采用74LS165并入串出移位寄存器实现,并入串出移位寄存器实现,P1.0线提供控制线提供控制信号,当信号,当S/L=0时,允许置入并行数据,当时,允许置入并行数据,当S/L=1时,允许数据时,允许数据串行移位输出。在串行移位输出。在REN=1和和RI=0的条件下,接收器以的条件下,接收器以fosc/12的波特率对的波特率对RxD引脚输入的数据信息采样,当接收器接收完引脚输入的数据信息采样,当接收器接收完8位数据后,置中断标志位数据后,置中断标志RI=1为请求中断,在再次接收之前为请求中断,在再次接收之前(zhqin),必,必须用软件将须用软件将RI清零。清零。图图5-14 5-14 方式方式0 0输入原理图、时序输入原理图、时序第二十五页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 80C51串行口工作方式串行口工作方式0应用举例:应用举例:【例【例5-1】用用8051串行口外接串行口外接4094扩展扩展8位并位并行输行输出口,驱动出口,驱动(q dn)所连接的所连接的8只只LED管循环点管循环点亮。接口扩展如亮。接口扩展如图图5-15所示。所示。图图5-15 5-15 方式方式0 0扩展应用仿真实例扩展应用仿真实例仿真仿真(fn zhn)链接链接第二十六页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术采用查询方式:采用查询方式:ORG 00H START:MOV SCON,#00H;设置串行口工作方式;设置串行口工作方式0 MOV A,#80H ;初始值;初始值 CLR P1.0 ;允许串行输入,禁止;允许串行输入,禁止(jnzh)并行输并行输出出 NEXT:MOV SBUF,A ;启动串行发送;启动串行发送 LOOP:JNB TI,LOOP ;一帧数据发送完?;一帧数据发送完?CLR TI ;发送完成,清除标志位;发送完成,清除标志位 SETB P1.0 ;允许并行输出;允许并行输出 ACALL DELAY ;延时;延时 RR A ;准备下一个数据;准备下一个数据 CPL P1.0 ;允许串行输入,禁止;允许串行输入,禁止(jnzh)并行输并行输出出 SJMP NEXT DELAY:MOV R3,#8 ;延时;延时DELAY1:MOV R4,#70 DJNZ R4,$DJNZ R3,DELAY1 RET END 第二十七页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 INTES:CLR ES CLR TI ;串行中断(zhngdun)控制 SETB P1.0 RR A ACALL DELAY CPL P1.0 MOV SBUF,A SETB ES RETI DELAY:MOV R3,#200;延时DELAY1:MOV R4,#200 DJNZ R4,$DJNZ R3,DELAY1 RET END 采用中断采用中断(zhngdun)方式:方式:ORG 0000H LJMP START ORG 0023H;串行中断串行中断(zhngdun)入口地址入口地址 AJMP INTES ORG 10HSTART:MOV SCON,#00H MOV A,#80H CLR P1.0 SETB ES SETB EA MOV SBUF,A SJMP$第二十八页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术 方式方式1 方式方式1是是10位数据的异步通信,多用于双机通信。位数据的异步通信,多用于双机通信。TXD为数为数据发送端,据发送端,RXD为数据接收端,传送的每一帧数据中包括:为数据接收端,传送的每一帧数据中包括:1位起始位,位起始位,8位数据位,位数据位,1位停止位。波特率可变,位停止位。波特率可变,PCON寄寄存器的存器的SMOD位和位和T1的溢出率共同决定。的溢出率共同决定。波特率波特率=(2smod)T1的溢出率的溢出率/32 当当T1作为波特率发生器时,最典型的用法是使作为波特率发生器时,最典型的用法是使T1工作在自工作在自动再装入的动再装入的8位定时器方式(即方式位定时器方式(即方式2,且,且TCON的的TR1=1,以,以启动定时器),使用这种方式,使得编程操作方便,也可避免启动定时器),使用这种方式,使得编程操作方便,也可避免因重装初值因重装初值(时间常数时间常数(sh jin chn sh)初值初值)而带来的定时误差。而带来的定时误差。T1的溢出率的溢出率=fosc/(12*(256-N),N为定时器为定时器T1的计数初值的计数初值所以:方式所以:方式1下的波特率下的波特率=或者:或者:第二十九页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术方式方式1发送:发送:方式方式1数据发送是从数据写入发送缓冲器(数据发送是从数据写入发送缓冲器(SBUF)开始)开始的,随后在串行口由硬件自动加入起始位和停止位,构成一的,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位个完整的帧格式,然后在移位(y wi)脉冲的作用下,由脉冲的作用下,由TXD端串行端串行输出。一个字符帧发送完后,使输出。一个字符帧发送完后,使TXD输出线维持在输出线维持在“1”状态下状态下并将并将SCON寄存器的寄存器的TI位置位置“1”,该位的状态可供查询或请求,该位的状态可供查询或请求中断,在再次发送数据之前,必须用软件将中断,在再次发送数据之前,必须用软件将TI清零。方式清零。方式1发发送的时序如图送的时序如图5-16所示。所示。图图5-16 5-16 方式方式1 1串行发送时序串行发送时序第三十页,共108页。第第5 5章章 80C5180C51单片机的串行接口技术单片机的串行接口技术方式方式1接收:接收:在在REN为为1时,接收器以所选择波特率的时,接收器以所选择波特率的16倍速率采样倍速率采样RXD引引脚电平,当检测到脚电平,当检测到RXD引脚输入电平产生负跳变时,说明起始位引脚输入电平产生负跳变时,说明起始位有效,将其移入移位寄存器,并开始接收这一帧信息的其余位。有效,将其移入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且,且SM2=0(或接收到的停止位为(或接收到的停止位
展开阅读全文