《完美版课件第8章简80C51嵌入式系统接口技术.ppt》由会员分享,可在线阅读,更多相关《完美版课件第8章简80C51嵌入式系统接口技术.ppt(155页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第8章章80C51嵌入式系统的接口技术嵌入式系统的接口技术主要内容:嵌入式系统接口技术的概念嵌入式系统接口技术的概念串行接口技术及其与外设连接串行接口技术及其与外设连接人机交互接口技术人机交互接口技术教学建议教学建议本本章章作作为为嵌嵌入入式式系系统统重重点点内内容容,是是构构建建真真正意义上的嵌入式系统的关键。正意义上的嵌入式系统的关键。串串行行接接口口扩扩展展外外设设是是嵌嵌入入式式系系统统应应提提倡倡的的理念。理念。需需要要指指出出的的是是,这这些些接接口口知知识识具具有有普普遍遍意意义,在其他类型的嵌入式系统里同样有用。义,在其他类型的嵌入式系统里同样有用。教学目的教学目的通过本章学
2、习,使学生:通过本章学习,使学生:了解嵌入式系统接口技术的概念了解嵌入式系统接口技术的概念熟悉和掌握串行接口扩展外设的思想和方法熟悉和掌握串行接口扩展外设的思想和方法熟熟悉悉用用高高性性价价比比的的器器件件设设计计人人机机交交互互接接口口的的方法方法8.1 嵌入式系统接口技术概述嵌入式系统接口技术概述8.1.1接口的概念接口的概念1什么是接口什么是接口接接口口是是CPU与与外外设设之之间间传传递递信信息息的的电电路路。所所以以,接接口口是是CPU与与外外设设之之间间传传送送信信息息的的一一个个中中间间环节、一个连接部件。环节、一个连接部件。一一个个基基本本的的接接口口及及作作用用如如图图8.1
3、所所示示。接接口口的的作作用用是是实实现现信信息息的的输输入入/输输出出,所所以以接接口口又又叫叫输入输入/输出接口,简称输出接口,简称I/O接口。接口。“外外设设接接口口”是是“CPU”与与“外外设设”之之间间传传递递信息的控制电路,信息的控制电路,是是“CPU”与与“外外设设”之之间间传传送送信信息息的的一一个个“界面界面”、一个连接部件。、一个连接部件。外外设设接接口口一一边边通通过过CPU的的三三总总线线(或或微微机机总总线线)同同CPU连连接接,一一边边通通过过三三种种信信息息数数据信息、控制信息和状态信息同外设连接。据信息、控制信息和状态信息同外设连接。2接口与端口接口与端口数数据
4、据信信息息、状状态态信信息息和和控控制制信信息息通通常常都都以以数数据据形形式式通通过过CPU的的数数据据总总线线(或或微微机机总总线线)同同CPU进进行行传传送送的的,这这些些信信息息分分别别存存放放在在外外设设接接口口的的不不同同类类型型的的寄寄存存器器中中。CPU同同外外设设之之间间的的信信息息传传送送实实质上是对这些寄存器进行质上是对这些寄存器进行“读读”或或“写写”操作。操作。“接接口口”中中这这些些可可以以由由CPU进进行行读读或或写写的的寄寄存存器器被被称称为为“端端口口”(Port)。这这些些端端口口可可分分为为“数数据口据口”、“状态口状态口”与与“控制口控制口”。3I/O的
5、个作方式的个作方式以以80C51为为核核心心,CPU通通过过接接口口与与外外设设传传送信息的方式有:送信息的方式有:无条件传送无条件传送查询传送查询传送中断传送中断传送等三种方式。等三种方式。8.1.2 接口的类型接口的类型按按照照数数据据的的传传送送机机制制,接接口口可可以以分分为为串串行行接接口口和和并并行行接接口口两两种种基基本本类类型型。串串行行接接口口是是指指从从发发送送数数据据线线上上一一位位(“0”或或“1”)一一位位地地发发送送数数据据,从从接接收收数数据据线线上上一一位位一位地接收数据;一位地接收数据;并并行行接接口口传传送送数数据据是是并并行行的的,即即多多位位数数据据同同
6、时时发发送送,同时接收。同时接收。按照接口应用的编程特性,分为简单接口与可编程接口。按照接口应用的编程特性,分为简单接口与可编程接口。1 简单接口简单接口2 可编程接口可编程接口8.2.1串行通讯的基本知识串行通讯的基本知识在在计计算算机机系系统统中中,CPU和和外外部部通通信信有有两两种通信方式:种通信方式:并行通信和串行通信。并行通信和串行通信。并行通信,即数据的各位同时传送;并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。串行通信,即数据一位一位顺序传送。图图8.3为这两种通信方式的示意图。为这两种通信方式的示意图。8.2 80C51的通信接口技术的通信接口技术图图8.
7、3两种通信方式的示意图。两种通信方式的示意图。并并行行通通信信:一个数据占多少位,就需要多少根传输线。并行通信传输方式的特点是传输速度快,但传输线数量多,成本高,适合近距离传输。串串行行通通信信:传输数据的各位在一条传输线上传送,能够节省传输线,在数据位数很多且远距离数据传送时,比较经济;缺点是传送速度比并行通信要慢。1串行通信的分类串行通信的分类按照串行数据的时钟控制方式,串行通信可分为按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信同步通信和异步通信两类。两类。(1)异步通信(异步通信(AsynchronousCommunication)在在异异步步通通信信中中,数数据据通通常
8、常是是以以字字符符为为单单位位组组成成字字符符帧帧传传送送的的。字字符符帧帧由由发发送送端端一一帧帧一一帧帧地地发发送送,每每一一帧帧数数据据是是低低位位在在前前,高高位位在在后后,通通过过传传输输线线被被接接收收端端一帧一帧地接收。一帧一帧地接收。发发送送端端和和接接收收端端可可以以由由各各自自独独立立的的时时钟钟来来控控制制数数据的发送和接收,这两个时钟彼此独立,互不同步。据的发送和接收,这两个时钟彼此独立,互不同步。字字符符帧帧也也叫叫数数据据帧帧,由由起起始始位位、数数据据位位、奇奇偶偶校校验验位位和停止位等四部分组成,如图和停止位等四部分组成,如图8.4所示。所示。图图8.4异步通信
9、的字符帧格式异步通信的字符帧格式1)字符帧()字符帧(CharacterFrame)起起始始位位:位位于于字字符符帧帧开开头头,只只占占一一位位,低低电电平平,用用于于向向接接收收设设备备表表示示发发送送端端开开始始发发送一帧信息。送一帧信息。数数据据位位:紧紧跟跟起起始始位位之之后后,用用户户根根据据情情况况可可取取5位位、6位位、7位位或或8位位,低低位位在在前前、高高位在后。位在后。奇奇偶偶校校验验位位:位位于于数数据据位位之之后后,仅仅占占一一位位,用用来来表表征征串串行行通通信信中中是是采采用用奇奇校校验验还还是是偶偶校验。校验。停停止止位位:位位于于字字符符帧帧最最后后,高高电电平
10、平。通通常常可可取取1位位、1.5位位或或2位位,用用于于向向接接收收端端表表示示一一帧帧字字符符信信息息已已经经发发送送完完,也也为为发发送送下下一一帧做准备。帧做准备。在在串串行行通通信信中中,两两相相邻邻字字符符帧帧之之间间可可以以没没有有空空闲闲位位,也也可可以以有有若若干干空空闲闲位位,这这由由用用户户来来决决定定。图图8.4(b)表表示示有有3个个空空闲闲位位的的字字符帧格式。符帧格式。1、波波特特率率为为每每秒秒钟钟传传送送二二进进制制数数码码的的位位数数,也叫比特数,单位为也叫比特数,单位为bit/s,即位,即位/秒。秒。2、波波特特率率用用于于表表征征数数据据传传输输的的速速
11、度度,波波特特率率越高,数据传输速度越快;越高,数据传输速度越快;3、波波特特率率和和字字符符的的实实际际传传输输速速率率不不同同,字字符符的的实实际际传传输输速速率率是是每每秒秒内内所所传传字字符符帧帧的的帧帧数,和字符帧格式有关。数,和字符帧格式有关。4、通常,异步通信的波特率为、通常,异步通信的波特率为50-9600bit/s。2)波特率()波特率(baudrate)5、异异步步通通信信的的优优点点是是不不需需要要传传送送同同步步时时钟钟,字字符符帧帧长长度度不不受受限限制制,故故设设备备简简单单。6、缺缺点点是是字字符符帧帧中中因因包包含含起起始始位位和和停停止止位位而而降降低了有效数
12、据的传输速率。低了有效数据的传输速率。2)波特率()波特率(baudrate)(2)同步通信(同步通信(SynchronousCommunication)同同步步通通信信是是一一种种连连续续串串行行传传送送数数据据的的通通信信方方式式,一次通信只传输一帧信息。一次通信只传输一帧信息。这这里里的的信信息息帧帧和和异异步步通通信信的的字字符符帧帧不不同同,通通常常有若干个数据字符,如图有若干个数据字符,如图8.5所示。所示。图图8.5(a)为单同步字符帧结构,)为单同步字符帧结构,图图8.5(b)为双同步字符帧结构。)为双同步字符帧结构。图图8.5同步通信的字符帧格式同步通信的字符帧格式2、串行通
13、信的制式串行通信的制式在在串串行行通通信信中中数数据据是是在在两两个个站站之之间间进进行行传传送送的的,按按照照数数据据传传送送方方向向,串串行行通通信信可可分分为为单单工工(simplex)、半半双双工工(halfduplex)和和全全双双工工(fullduplex)三三种种制制式。图式。图8.6为三种制式的示意图。为三种制式的示意图。图图8.6单工、半双工和全双工三种制式示意图单工、半双工和全双工三种制式示意图3串行通信的接口电路串行通信的接口电路A、串行接口电路的种类和型号很多。、串行接口电路的种类和型号很多。B、能够完成异步通信的硬件电路称为、能够完成异步通信的硬件电路称为UART,即
14、通用异步接收器即通用异步接收器/发送器(发送器(UniversalAsynchronousReceiver/Transmitter););C、能够完成同步通信的硬件电路称为、能够完成同步通信的硬件电路称为USRT(UniversalSynchronousReceiver/Transmitter););D、既能够完成异步又能同步通信的硬件、既能够完成异步又能同步通信的硬件电路称为电路称为USART(UniversalSynchronousAsynchronousReceiver/Transmitter)。)。RS-232C是是使使用用最最早早、应应用用最最多多的的一一种种异步串行通信总线标准。异
15、步串行通信总线标准。它它是是美美国国电电子子工工业业协协会会(EIA)1962年年公公布布、1969年最后修定而成的。年最后修定而成的。其其中中RS表表示示RecommendedStandard,232是是该该标准的标识号,标准的标识号,C表示最后一次修定。表示最后一次修定。4串行通信总线标准及其接口串行通信总线标准及其接口RS-232C主主要要用用来来定定义义计计算算机机系系统统的的一一些些数数据据终终端端设设备备(DTE)和和数数据据电电路路终终接接设设备备(DCE)之间的电气性能。)之间的电气性能。RS-232C串串行行接接口口总总线线适适用用于于:设设备备之之间间的的通通信信距距离离不
16、不大大于于15米米,传传输输速速率率最最大大为为20kB/s。4串行通信总线标准及其接口串行通信总线标准及其接口图图8.5RS-232C信息格式信息格式(1)RS-232C信息格式标准信息格式标准RS-232C采用串行格式,如图采用串行格式,如图8.7所示。所示。该该标标准准规规定定:信信息息的的开开始始为为起起始始位位,信信息息的的结结束束为为停停止止位位;信信息息本本身身可可以以是是5、6、7、8位位再再加加一位奇偶位。一位奇偶位。如果两个信息之间无信息,则写如果两个信息之间无信息,则写“1”,表示空。,表示空。(1)RS-232C信息格式标准信息格式标准RS-232C规规定定了了自自己己
17、的的电电气气标标准准,由由于于它它是是在在TTL电电路路之之前前研研制制的的,所所以以它它的的电电平平不不是是+5V和和地地,而是采用负逻辑,即:而是采用负逻辑,即:逻辑逻辑“0”:+5V-+15V逻辑逻辑“1”:-5V-15V常常用用的的电电平平转转换换集集成成电电路路是是传传输输线线驱驱动动器器MC1488和传输线接收器和传输线接收器MC1489。(2)RS-232C电平转换器电平转换器(3)RS-232C总线规定总线规定RS-232C标标准准总总线线为为25根根,采采用用标标准准的的D型型25芯插头座。芯插头座。与与PC机机联联机机通通信信时时一一般般采采用用9针针的的接接插插件件将将串
18、串行口的信号送出。行口的信号送出。接插件的引脚信号如表接插件的引脚信号如表8.1所示。所示。DB-9信号名称信号名称方向方向含含义义3TXD输出数据发送端2RXD输入数据接收端7RTS输出请求发送(计算机要求发送数据)8CTS输入清除发送(MODEM准备接收数据)6DSR输入数据设备准备就绪5SG-信号地1DCD输入数据载波检测4DTR输出数据终端准备就绪(计算机)9RI输入响铃指示表表8.1接插件的引脚信号接插件的引脚信号在在计计算算机机进进行行串串行行通通信信时时,选选择择接接口口标标准准必必须须注注意意以下两点:以下两点:(1)通信速度和通信距离)通信速度和通信距离通通常常的的标标准准串
19、串行行接接口口,都都有有满满足足可可靠靠传传输输时时的的最最大大通通信信速速度度和和传传送送距距离离指指标标,但但这这两两个个指指标标具具有有相相关关性性,适适当当降降低低传传输输速速度度,可可以以提提高高通通信信距离。距离。(2)抗干扰能力)抗干扰能力通通常常选选择择的的标标准准接接口口,在在保保证证不不超超过过其其使使用用范范围围时时都都有有一一定定的的抗抗干干扰扰能能力力,以以保保证证可可靠靠的的信信号号传传输输。但但在在一一些些工工业业测测控控系系统统,通通信信环环境境十十分分恶恶劣劣,因因此此在在通通信信介介质质选选择择、接接口口标标准准选选择择时时,要要充充分分考考虑虑抗抗干干扰扰
20、能能力力,并并采采取取必必要要的的抗抗干干扰扰措措施。施。80C51内内部部有有一一个个可可编编程程全全双双工工串串行行通通信信接接口,它具有口,它具有UART的全部功能。的全部功能。该该接接口口不不仅仅可可以以同同时时进进行行数数据据的的接接收收和和发发送送,也也可做同步移位寄存器使用。可做同步移位寄存器使用。该该串串行行口口有有4种种工工作作方方式式,帧帧格格式式有有8位位、10位和位和11位;位;波特率可由软件设置,由片内的定时波特率可由软件设置,由片内的定时/计数器产生。计数器产生。8.2.280C51的串行接口的串行接口180C51串行口结构串行口结构1.80C51内内部部有有两两个
21、个独独立立的的接接收收、发发送送缓缓冲冲器器SBUF,SBUF属于特殊功能寄存器。属于特殊功能寄存器。2.发送缓冲器只能写入不能读出;发送缓冲器只能写入不能读出;3.接收缓冲器只能读出不能写入;接收缓冲器只能读出不能写入;4.二者共用一个字节地址(二者共用一个字节地址(99H)。)。5.串行口的结构如图串行口的结构如图8.10所示。所示。图图8.10串行口结构示意图串行口结构示意图与与80C51串串行行口口有有关关的的特特殊殊功功能能寄寄存存器器有有SBUF,SCON,PCON。(1)串行口数据缓冲器串行口数据缓冲器SBUF特特殊殊功功能能寄寄存存器器SBUF是是两两个个在在物物理理上上独独立
22、立的的接接收收、发发送送寄寄存存器器,一一个个用用于于存存放放接接收收到到的的数数据据,另另一一个个用用于于存存放放要要发发送送的的数数据据,可可同同时时发发送送和和接接收数据。收数据。两两个个缓缓冲冲器器共共用用一一个个地地址址99H,通通过过SBUF的的读读、写写指指令令来来区区别别是是对对接接收收缓缓冲冲器器还还是是发发送送缓缓冲器进行操作。冲器进行操作。CPU在写在写SBUF时,就是修改发送缓冲器;时,就是修改发送缓冲器;读读SBUF时,就是读接收缓冲器的内容。时,就是读接收缓冲器的内容。(2)串行口控制寄存器串行口控制寄存器SCON特特殊殊功功能能寄寄存存器器SCON用用来来控控制制
23、串串行行口口的的工工作作方方式式和和状状态态,由由软软件件设设置置其其内内容容来来决决定定单单片片机机用用何何种种工工作作方方式式。该该寄寄存存器器字字节节地地址址为为98H,可可以以位位寻寻址址。单单片片机机复复位位时时,所所有有位位全全为为0。其其格式如图格式如图8.11所示。所示。图图8.11SCON的各位定义的各位定义对各位的说明如下:对各位的说明如下:SM0、SM1:串行方式选择位。定义如下表:串行方式选择位。定义如下表8.2所示所示REN:允许串行接收位:允许串行接收位;SM2:多机通信控制位:多机通信控制位;TB8:发送数据的第:发送数据的第9位位;RB8:接收数据的第:接收数据
24、的第9位。位。SM0 SM1工作方式功能波特率0 0方式08位同步移位寄存器fosc/120 1方式110位UART可变1 0方式211位UARTfosc/64或fosc/321 1 方式311位UART可变SM2:多多机机通通信信控控制制位位,用用于于方方式式2和和方方式式3中。中。在在方方式式2和和方方式式3处处于于接接收收时时,若若SM2=1,且且接接收收到到的的第第9位位数数据据RB8为为0时时,不不激激活活RI;若若SM2=1,且,且RB8=1时,则置时,则置RI=1。在在方方式式2、3处处于于接接收收或或发发送送方方式式,若若SM2=0,不不论论接接收收到到第第9位位RB8为为0还
25、还是是为为1,TI,RI都以正常方式被激活。都以正常方式被激活。在在方方式式1处处于于接接收收时时,若若SM2=1,则则只只有收到有效的停止位后,有收到有效的停止位后,RI置置1。在方式在方式0中,中,SM2应为应为0。1.REN:允允许许串串行行接接收收位位。由由软软件件置置位位或或清清零零。REN=1时,允许接收;时,允许接收;REN=0时,禁止接收。时,禁止接收。2.TB8:发发送送数数据据的的第第9位位。在在方方式式2和和方方式式3中中,由软件置位或复位,可做奇偶校验位。由软件置位或复位,可做奇偶校验位。3.RB8:接收数据的第:接收数据的第9位。与位。与TB8相对应。相对应。在在方方
26、式式0中中,发发送送完完8位位数数据据后后,由由硬硬件件置置位;位;在在其其他他方方式式中中,发发送送停停止止位位之之初初由由硬硬件件置置位。位。因因此此TI是是发发送送完完一一帧帧数数据据的的标标志志,可可以以用用指令指令JBCTI,rel来查询是否发送结束。来查询是否发送结束。TI=1时时,也也可可向向CPU申申请请中中断断,响响应应中中断断后都必须由软件清除后都必须由软件清除TI。TI:发送中断标志位。:发送中断标志位。RI:接收中断标志位。:接收中断标志位。在在方方式式0中中,接接收收完完8位位数数据据后后,由由硬硬件件置位;置位;在在其其他他方方式式中中,接接收收停停止止位位的的中中
27、间间由由硬硬件件置位。置位。同同TI一一样样,也也可可以以通通过过JBCRI,rel来来查查询询是是否否接接收完一帧数据。收完一帧数据。RI=1时时,也也可可申申请请中中断断,响响应应中中断断后后都都必必须须由由软软件清除件清除RI。特特殊殊功功能能寄寄存存器器PCON主主要要是是为为CHMOS型型单单片片机机的的电电源源控控制制而而设设置置的的专专用用寄寄存存器器,不不可可位位寻址,字节地址为寻址,字节地址为87H。图图8.10PCON的各位定义的各位定义(3)电源及波特率选择寄存器电源及波特率选择寄存器PCON80C51的的串串行行口口有有4种种工工作作方方式式,通通过过对对SCON中的中
28、的SM1、SM0位来决定,如表位来决定,如表8.2所示。所示。(1)方式方式0为为同同步步移移位位寄寄存存器器方方式式,其其波波特特率率固固定定为为fosc/12。串串行行数数据据从从RXD(P3.0)端端移移位位输输入入或或输输出出,同步移位脉冲由同步移位脉冲由TXD(P3.1)送出。送出。发发送送和和接接收收的的只只是是8位位数数据据,低低位位在在前前。这这种种方式常用于扩展方式常用于扩展I/O口。口。280C51串行的工作方式串行的工作方式1)发送操作)发送操作当当一一个个数数据据写写入入串串行行口口发发送送缓缓冲冲器器SBUF时时,串串行行口口将将8位位数数据据以以fosc/12的的波
29、波特特率率从从RXD引引脚脚输输出出(低低位位在在前前),发发送送完完置置中中断断标志标志TI为为1,请求中断。,请求中断。在在再再次次发发送送数数据据之之前前,必必须须由由软软件件清清TI为为0。图图8.13方式方式0用于扩展用于扩展I/O口输出口输出2)接收操作)接收操作在在满满足足REN=1和和RI=0的的条条件件下下,串串行行口口即即开开始始从从RXD端端以以fosc/12的的波波特特率率输输入入数数据据(低低位位在在前前),当当接接收收完完8位位数数据据后后,置置中中断断标标志志RI为为1,请求中断。,请求中断。在再次接收数据之前,必须由软件清在再次接收数据之前,必须由软件清RI为为
30、0。图图8.14方式方式0用于扩展用于扩展I/O口输入口输入图图8.1510位的帧格式位的帧格式(2)方式方式1方方式式1是是串串行行口口为为波波特特率率可可调调的的10位位通通用用异异步步通通信信方方式式,发发送送或或接接收收字字符符帧帧信信息息包包括括1位位起起始始位位0、8位数据位和位数据位和1位停止位位停止位1。其帧格式如图其帧格式如图8.15所示。所示。(2)方式方式11)发送操作)发送操作发送操作在发送操作在TI=0时,执行时,执行MOVSBUF,A指指令令后后开开始始,发发送送电电路路会会自自动动在在8位位发发送送字字符符前前后后分分别别添添加加1位位起起始始位位和和停停止止位位
31、,并并在在移移位位脉脉冲冲作作用用下下在在TxD线线上上依依次次发发送送一一帧帧信信息息,发发送送完完后后,自自动动维维持持TxD线线为为高高电平并置中断标志电平并置中断标志TI为为1。TI需由软件复位。需由软件复位。接接收收时时,由由REN置置1允允许许接接收收,接接收收器器以以所所选选用用波波特特率率的的16倍倍的的速速率率对对RxD引引脚脚进进行行采采样样。当当采采样样1到到0的的跳跳变变时时,再再连连续续采采样样8次次,如如果果采采样样值值都都为为0,表表示示接接收收到到有有效效起起始始位位;否否则则起起始始位无效,重新启动接收过程。位无效,重新启动接收过程。确确认认接接收收到到起起始
32、始位位后后,就就开开始始接接收收本本帧帧的的其其余余数数据据,在在每每一一位位信信息息的的中中间间时时刻刻采采样样3次次,取取其其中中两两次次以以上上相相同同的的值值为为该该位位信信息息的的接接收收值值,以保证可靠接收。以保证可靠接收。2)接收操作)接收操作在在接接收收到到停停止止位位时时,接接收收电电路路必必须须满满足足RI=0且且接接收收到到的的停停止止位位为为1或或SM2=0时时,才才能能把把接接收收到到的的8位数据存入位数据存入SBUF(接收)中,(接收)中,把把停停止止位位送送入入RB8中中,同同时时置置中中断断标标志志RI发发出出串串口口中断请求。中断请求。若若不不满满足足上上述述
33、条条件件,接接收收到到的的信信息息将将丢丢失失。所所以以,方式方式1接收时,应接收时,应先用软件清除先用软件清除RI或或SM2标志标志。2)接收操作)接收操作方方式式2和和方方式式3都都是是串串行行口口为为11位位UART方方式式,由由SCON中中的的SM0、SM1两两位位编编码码确确定定,方方式式2和和方方式式3的的发发送送和和接接收收过过程程完完全全一一致致,只只是是波波特特率率有有所不同。所不同。方方式式2的的波波特特率率由由主主频频fosc经经32或或64分分频频后后提供;提供;式式3的的波波特特率率由由定定时时器器T1或或T2的的溢溢出出率率经经32分分频频后后提提供供。方方式式2和
34、和方方式式3发发送送或或接接收收一一帧帧数数据据包包括括1位位起起始始位位0、8位位数数据据位位、1位位可可编编程程位位(用用于于奇奇偶偶校校验验)和和1位位停停止止位位“1”。其其帧帧格格式式如如图图8.16所示。所示。(3)方式方式2和方式和方式3图图8.1611位的帧格式位的帧格式发发送送时时,先先根根据据通通信信协协议议由由软软件件设设置置TB8,然然后后用用指指令令将将要要发发送送的的数数据据写写入入SBUF,启启动动发发送送器器。写写SBUF的的指指令令,除除了了将将8位位数数据据送送入入SBUF外外,同同时时还还将将TB8装装入入发发送送移移位位寄寄存存器器的的第第9位,并通知发
35、送控制器进行一次发送位,并通知发送控制器进行一次发送;一一帧帧信信息息就就从从TXD发发送送,在在送送完完一一帧帧信信息息后后,TI被自动置被自动置1。在在发发送送下下一一帧帧信信息息之之前前,TI必必须须由由中中断断服服务务程程序或查询程序清序或查询程序清0。1)发送操作)发送操作当当REN=1时,允许串行口接收数据。时,允许串行口接收数据。数数据据由由RXD端端输输入入,接接收收11位位的的信信息息。当当接接收收器器采采样样到到RXD端端的的负负跳跳变变、并并判判断断起起始始位位有有效效后后,开始接收一帧信息。开始接收一帧信息。当当接接收收器器接接收收到到第第9位位数数据据后后,若若同同时
36、时满满足足以以下下两两个个条条件件:RI=0,SM2=0或或接接收收到到的的第第9位位数数据据为为1,则则接接收收数数据据有有效效,8位位数数据据送送入入SBUF,第第9位送入位送入RB8,并置,并置RI=1。若不满足上述两个条件,则信息丢失。若不满足上述两个条件,则信息丢失。2)接收操作)接收操作3、80C51串行口的波特率串行口的波特率在在串串行行通通信信中中,收收发发双双方方对对传传送送的的数数据据速速率率即波特率要有一定的约定。即波特率要有一定的约定。通通过过上上面面的的讨讨论论,我我们们已已经经知知道道,80C51单单片机的串行口通过编程可以有片机的串行口通过编程可以有4种工作方式。
37、种工作方式。其中,方其中,方式式0和方式和方式2的波特率是固定的的波特率是固定的;方方式式1和和方方式式3的的波波特特率率可可变变,由由定定时时器器T1的溢出率决定,下面加以分析。的溢出率决定,下面加以分析。(1)方式方式0在在方方式式0中中,波波特特率率为为时时钟钟频频率率的的1/12,即即串串行行口口方方式式0波特率波特率=fosc/12,固定不变。,固定不变。(2)方式方式2在在方方式式2中中,波波特特率率由由波波特特率率系系数数和和系系统统时时钟钟频频率率fosc决决定定。当当SMOD=0时时,波波特特率率为为fosc/64;当当SMOD=1时,波特率为时,波特率为fosc/32。即波
38、特率。即波特率=(3)方式方式1和方式和方式3在在方方式式1和和方方式式3下下,波波特特率率由由定定时时器器T1的的溢溢出出率率和和波特率系数共同决定。即:波特率系数共同决定。即:方式方式1和方式和方式3的波特率的波特率=溢出率溢出率例例:工工作作方方式式1,波波特特率率可可设设置置,若若fosc=6MHz,波波特特率率为为2400,设设SMOD=1,则则定定时时/计计数数器器T1的计数初值为多少?并进行初始化编程。的计数初值为多少?并进行初始化编程。解解:y=2562SMODfosc/(24003212)=242.98243=F3H同同理理,fosc=11.0592MHz,波波特特率率为为2
39、400,设设SMOD=0,则,则y=F4H初始化编程:初始化编程:MOVTMOD,#20H;定时器;定时器1工作方式工作方式2MOVPCON,#80H;SMOD=1MOVTH1,#0F3H;设定时器初值;设定时器初值;MOVTL1,#0F3HSETBTR1;启动;启动T1MOVSCON,#50H;SM1=1,REN=1 0 1方式1 10位UART可变80C51单单片片机机之之间间的的串串行行通通信信主主要要可可分分为为双双机机通通信信和多机通信。这里主要介绍双机通信的应用。和多机通信。这里主要介绍双机通信的应用。(1)串口方式串口方式0应用应用80C51单单片片机机串串行行口口方方式式0为为
40、移移位位寄寄存存器器方方式式,外外接接一一个个串串入入并并出出的的移移位位寄寄存存器器,就就可可以以扩扩展展一一个个并行口。并行口。480C51单片机串行通信应用单片机串行通信应用例:方式例:方式0的应用。的应用。发发送送:74LS164为为串串入入并并出出移移位位寄寄存存器器。如如图图8.13所示:所示:MOVSCON,#00H;选方式;选方式0SETBP1.0;选通;选通74LS164MOV A,#DATA;置要发送的数据;置要发送的数据MOV SBUF,A;数据写入;数据写入SBUF并启动发送并启动发送WAIT:JNBTI,WAIT;一个字节数据发送完吗?;一个字节数据发送完吗?CLR
41、TICLR P1.0;关闭;关闭74LS164选通选通接收:接收:74LS165为为8位并入串出移位寄存器。位并入串出移位寄存器。如图如图8.14所示。所示。MOVR0,#50H;R0作片内作片内RAM地址指针地址指针MOVR7,#02H;接收字节计数;接收字节计数RQ:CLRP1.0;允许置入并行数据;允许置入并行数据SETBP1.0;允许串行移位;允许串行移位MOVSCON,#10H;串口方式;串口方式0,开入接收允许,开入接收允许JNBRI,$;等待接收一帧数据;等待接收一帧数据CLRRIMOVA,SBUFMOVR0,A;存入片内;存入片内RAMINCR0DJNZR7,RQ如如果果两两个
42、个单单片片机机系系统统距距离离较较近近,就就可可以以将将它它们们的的串串行口直接相连,实现双机通信。如图行口直接相连,实现双机通信。如图8.17所示。所示。对对于于双双机机异异步步通通信信的的程程序序通通常常采采用用两两种种方方法法:查查询询方式和中断方式。方式和中断方式。图图8.17双机异步通信接口电路双机异步通信接口电路(2)双机通信双机通信1)甲机发送)甲机发送编编程程将将甲甲机机片片外外1000H-101FH单单元元的的数数据据块块从从串串行行口口输输出出。定定义义方方式式2发发送送,TB8为为奇奇偶偶校校验验位位。发发送波特率送波特率375K,晶振为,晶振为12MHz,所以,所以SM
43、OD=1。发送子程序参考如下:发送子程序参考如下:MOVSCON,#80H;设置串行口为方式;设置串行口为方式2MOVPCON,#80H;SMOD=1MOVDPTR,#1000H;设数据块指针;设数据块指针MOVR7,#20H;设数据块长度;设数据块长度查询方式查询方式START:MOVXA,DPTR;取数据给;取数据给AMOVC,PMOVTB8,C;奇偶位;奇偶位P给给TB8MOVSBUF,A;数据送;数据送SBUF,启动发送,启动发送WAIT:JBCTI,CONT;若若发发送送完完,清清TI,取取下下一个数据一个数据AJMPWAIT;未完等待;未完等待CONT:INCDPTR;更新数据单元
44、;更新数据单元DJNZR7,START;循环发送至结束;循环发送至结束RET查询方式查询方式编编程程使使乙乙机机接接收收甲甲机机发发送送过过来来的的数数据据块块,并并存存入入片片内内50H-6FH单单元元。接接收收过过程程要要求求判判断断RB8,若若出出错错置置F0标标志志为为1,正正确确则则置置F0标标志志为为0,然然后后返回。两机应采用相同的工作方式和波特率。返回。两机应采用相同的工作方式和波特率。接收子程序参考如下:接收子程序参考如下:MOVSCON,#80H;设置串行口为方式;设置串行口为方式2MOVPCON,#80H;SMOD=1MOVR0,#50H;设置数据块指针;设置数据块指针M
45、OVR7,#20H;设置数据块长度;设置数据块长度SETBREN;启动接收;启动接收2)乙机接收)乙机接收WAIT:JBCRI,READ;完完若若接接收收完完,清清RI,读入数据读入数据SJMPWAIT;未完等待;未完等待READ:MOVA,SBUF;读入一帧数据;读入一帧数据JNBPSW.0,PZ;奇偶位为;奇偶位为0则转则转JNBRB8,ERR;P=1,RB8=0,则出错,则出错SJMPRIGHT;二者全为;二者全为1,则正确,则正确PZ:JBRB8,ERR;P=0,RB8=1,则出错,则出错2)乙机接收)乙机接收RIGHT:MOVR0,A;正确,存放数据;正确,存放数据INCR0;更新地
46、址指针;更新地址指针DJNZR7,WAIT;判断数据块是否接收完;判断数据块是否接收完CLRPSW.5;接收正确,且接收完清;接收正确,且接收完清F0标志标志RET;返回;返回ERR:SETBPSW.5;出错,置;出错,置F0标志为标志为1RET;返回;返回MOVTMOD,#20H;设置定时器;设置定时器1为方式为方式2MOVTL1,#0F4H;设置预置值;设置预置值MOVTH1,#0F4HSETBTR1;启动定时器;启动定时器1MOVSCON,#50H;设置串行口为方式;设置串行口为方式1,允许接收,允许接收START:MOVR0,#60H;设置数据指针;设置数据指针MOVR5,#10H;设
47、置数据长度;设置数据长度MOVR4,#00H;累加校验和初始化;累加校验和初始化MOVSBUF,R5;发送数据长度;发送数据长度发送子程序参考如下发送子程序参考如下(累加和校验方式)(累加和校验方式)WAIT1:JBCTI,TRS;等待发送;等待发送AJMPWAIT1TRS:MOVA,R0;读取数据;读取数据MOVSBUF,A;发送数据;发送数据ADDA,R4MOVR4,A;形成累加和;形成累加和INCR0;修改数据指针;修改数据指针发送子程序参考如下:发送子程序参考如下:WAIT2:JBCTI,CONT;等待发送一帧数据;等待发送一帧数据AJMPWAIT2CONT:DJNZR5,TRS;判断
48、数据块是否发送完;判断数据块是否发送完MOVSBUF,R4;发送累加校验和;发送累加校验和WAIT3:JBCTI,WAIT4;等待发送;等待发送AJMPWAIT3WAIT4:JBCRI,READ;等待乙机回答;等待乙机回答AJMPWAIT4READ:MOVA,SBUF;接收乙机数据;接收乙机数据JZRIGHT;00H,发送正确,返回,发送正确,返回AJMPSTART;发送出错,重发;发送出错,重发RIGHT:RET(3)多机通信多机通信80C51串串行行口口的的方方式式2和和方方式式3有有一一个个专专门门的的应应用用领领域,即多机通信。域,即多机通信。这这一一功功能能通通常常采采用用主主从从式
49、式多多机机通通信信方方式式,在在这这种种方方式中,用一台主机和多台从机。式中,用一台主机和多台从机。主主机机发发送送的的信信息息可可以以传传送送到到各各个个从从机机或或指指定定的的从从机机,各各从从机机发发送送的的信信息息只只能能被被主主机机接接收收,从从机机与与从从机机之间不能进行通信。之间不能进行通信。图图8.18是多机通信的一种连接示意图。是多机通信的一种连接示意图。图图8.18多机通信连接示意图多机通信连接示意图5PC机和单片机之间的通信机和单片机之间的通信在在数数据据处处理理和和过过程程控控制制应应用用领领域域,通通常常需需要要一一台台PC机机,由由它它来来管管理理一一台台或或若若干
50、干台台以以单单片片机机为为核核心心的的智能测量控制仪表。智能测量控制仪表。这这时时,也也就就是是要要实实现现PC机机和和单单片片机机之之间间的的通通信信。这这里里介介绍绍PC机机和和单单片片机机的的通通信信接接口口设设计计和和下下位位机机的的软件编程。软件编程。(1)接口设计接口设计在在PC机机系系统统内内都都装装有有异异步步通通信信接接口口,利利用用它它可可以以实实现异步串行通信。现异步串行通信。该该接接口口的的核核心心元元件件是是可可编编程程的的Intel8250芯芯片片,它它使使PC机机有有能能力力与与其其他他具具有有标标准准的的RS-232C接接口口的的计计算算机机或设备进行通信。或设