《串行通信技术PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《串行通信技术PPT讲稿.ppt(100页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、串行通信技术第1页,共100页,编辑于2022年,星期三 标准型单片机的组成标准型单片机的组成第2页,共100页,编辑于2022年,星期三第第4 4章章 UARTUART串行接口串行接口 教学目的:了解80C51系列单片机UART串行接口的结构、原理及应用;能够采用查询方式进行串行通信。教学重点:1.UART串行接口的工作原理;2.UART串行接口的4种工作方式的编程、应用。教学难点:1.多机通信方式2.波特率值的设置第3页,共100页,编辑于2022年,星期三UARTlUART(UniversalAsynchronousReceiver/Transmitter)通用异步收发)通用异步收发器器
2、UART是用于控制计算机与串行设备是用于控制计算机与串行设备的芯片,用于异步通信。是双向通信,的芯片,用于异步通信。是双向通信,可以实现全双工传输和接收。可以实现全双工传输和接收。第4页,共100页,编辑于2022年,星期三41 串行通信概述并行通信与串行通信并行通信:所传送数据的各位同时发送或接收。串行通信:所传送数据的各位按顺序一位一位地发送或接收。第5页,共100页,编辑于2022年,星期三图4-1基本通信方式图示第6页,共100页,编辑于2022年,星期三4.1.1 同步通信和异步通信方式1.异步通信ASYNC l 数据或字符是以固定的帧格式一帧(Frame)一帧地传送,从起始位、数据
3、位到停止位就构成 完整的一帧,不同的 系统定义有不同的帧格式。第7页,共100页,编辑于2022年,星期三异步传送方式异步传送方式 第n个字符(一串行帧)n+1n-1P10D0D1D2D3D4D5D6D4P10D0起起始始位位数数据据位位校校停停验验止止位位位位异步通信的帧格式发送器是通过发送起始位来发送器是通过发送起始位来开始传送一个字符的。开始传送一个字符的。起始位之后就传送数据位,低位在前起始位之后就传送数据位,低位在前(左),高位在后(右)。由于字符编(左),高位在后(右)。由于字符编码的不同,可以是码的不同,可以是58位。位。通过对数据奇偶性的检查,可用来判别字符通过对数据奇偶性的检
4、查,可用来判别字符传送的正确性,共有三种:奇校验、偶校验、传送的正确性,共有三种:奇校验、偶校验、无校验。用户可根据需要选择(在有些格式无校验。用户可根据需要选择(在有些格式中,这位可省略。)中,这位可省略。)停止位在最后,用来表示一个字符传送的停止位在最后,用来表示一个字符传送的结束。可以是结束。可以是1位、位、1.5位、位、2位,不同的计位,不同的计算机规定有所不同。算机规定有所不同。第8页,共100页,编辑于2022年,星期三l异步通信是按字符传输的。异步通信是按字符传输的。传送时数据的传送时数据的低位在前,高位在后低位在前,高位在后。这种传送方式利用。这种传送方式利用每一帧的起、止信号
5、来建立发送与接收之每一帧的起、止信号来建立发送与接收之间的同步。其特点为:每一帧内部各位均间的同步。其特点为:每一帧内部各位均采用固定的时间间隔,而帧与帧之间的时采用固定的时间间隔,而帧与帧之间的时间间隔是随机的。两相邻字符帧之间有若间间隔是随机的。两相邻字符帧之间有若干空闲位或无空闲位。接收机完全靠每一干空闲位或无空闲位。接收机完全靠每一帧的起始位与停止位来识别字符正在进行帧的起始位与停止位来识别字符正在进行传送还是已经结束传送。传送还是已经结束传送。第9页,共100页,编辑于2022年,星期三2.同步通信SYNC 用一同步字符来指示通信的开始(常约定12个),以实现发送端和接收端的同步。第
6、10页,共100页,编辑于2022年,星期三同步传送方式同步传送方式同步特点同步特点:因为同步通信数据块传送时:因为同步通信数据块传送时去掉了字符开始和结束的标志去掉了字符开始和结束的标志,所以其,所以其速度高于异步传送,但这种方式对硬件结构要求较高。速度高于异步传送,但这种方式对硬件结构要求较高。数据或字符开始处是用一同步字符来指示数据或字符开始处是用一同步字符来指示(一般约定为一般约定为12个字符个字符),以实现发送端和接收端同步,一旦检测到约定同步字符,就连,以实现发送端和接收端同步,一旦检测到约定同步字符,就连续按顺序接收数据。续按顺序接收数据。第11页,共100页,编辑于2022年,
7、星期三采用两个同步字符,称双同步方式。采用一个同步字符,采用两个同步字符,称双同步方式。采用一个同步字符,称单同步方式。同步字符可以由用户来约定,也可以采称单同步方式。同步字符可以由用户来约定,也可以采用用ASCII码中规定的码中规定的SYN代码,即代码,即16H。同步通信时,。同步通信时,先发送同步字符,接收方检测到同步字符后,即准备接先发送同步字符,接收方检测到同步字符后,即准备接收数据,按约定的长度拼成一个个数据字节,直到整个收数据,按约定的长度拼成一个个数据字节,直到整个数据接收完毕,经校验无传送错误则结束一帧信息的传数据接收完毕,经校验无传送错误则结束一帧信息的传送。送。第12页,共
8、100页,编辑于2022年,星期三串行同步通信进行数据传送时,发送和接收双方要保持完全的串行同步通信进行数据传送时,发送和接收双方要保持完全的同步,因此要求接收和发送设备必须使用同一时钟。在近距离同步,因此要求接收和发送设备必须使用同一时钟。在近距离通信时可以采用在传输线中增加一根时钟信号来解决;远距离通信时可以采用在传输线中增加一根时钟信号来解决;远距离通信时,可以采用锁相环技术,使接收方得到和发送方时钟频通信时,可以采用锁相环技术,使接收方得到和发送方时钟频率完全相同的时钟信号。同步传送的优点是可以实现高速度、率完全相同的时钟信号。同步传送的优点是可以实现高速度、大容量的数据传送远;其缺点
9、是要求发送时钟和接收时钟保持大容量的数据传送远;其缺点是要求发送时钟和接收时钟保持严格同步,同时硬件复杂。严格同步,同时硬件复杂。第13页,共100页,编辑于2022年,星期三3)波特率波特率l波特率是指数据传送的速率,表示每秒波特率是指数据传送的速率,表示每秒传送代码的位数。在串行通信中,发送传送代码的位数。在串行通信中,发送设备和接收设备之间除了采用相同的字设备和接收设备之间除了采用相同的字符帧格式符帧格式(异步通信异步通信)或相同的同步字符或相同的同步字符(同步通信同步通信)来协调同步工作外,两者之来协调同步工作外,两者之间发送数据的速度和接收数据的速度也间发送数据的速度和接收数据的速度
10、也必须相同,这样才能保证被传送数据的必须相同,这样才能保证被传送数据的成功传送。波特率是串行通信的重要指成功传送。波特率是串行通信的重要指标,对数据的成功传送至关重要。标,对数据的成功传送至关重要。第14页,共100页,编辑于2022年,星期三l例:数据传送的速率为例:数据传送的速率为120字符字符/s,每个,每个字符由一个起始位、字符由一个起始位、8个数据位和个数据位和1个停个停止位组成,则波特率位多少止位组成,则波特率位多少?每位数据传每位数据传送的时间为多少?送的时间为多少?第15页,共100页,编辑于2022年,星期三 串行通信的方式串行通信的方式单工:只允许单方向传送,只需一条数据线
11、。单工:只允许单方向传送,只需一条数据线。半双工半双工 :接收和发送分时双向进行,只需一条数据线。:接收和发送分时双向进行,只需一条数据线。l全双工全双工 :甲、乙两机之间数据的发送和接收可以同时:甲、乙两机之间数据的发送和接收可以同时 进进行,通信必须使用二根数据线行,通信必须使用二根数据线。l图4-2 通信方式示意图 第16页,共100页,编辑于2022年,星期三图图4.3单工方式单工方式图图4.4半双工方式半双工方式图图4.5全双工方式全双工方式第17页,共100页,编辑于2022年,星期三 通信协议计算机之间进行数据传输时的一些约定,包括通信方式、帧格式、波特率、命令码的约定等。第18
12、页,共100页,编辑于2022年,星期三 80C51 80C51单片机常与其它单片机常与其它5151单片机或单片机或PCPC机进行串行通信。机进行串行通信。80C5180C51单片机串行接口的信号电平为单片机串行接口的信号电平为TTLTTL类型,抗干扰能力类型,抗干扰能力差,传输距离短。为了提高串行通信的可靠性,延长通信距离,差,传输距离短。为了提高串行通信的可靠性,延长通信距离,工程设计人员一般采用标准串行接口,如工程设计人员一般采用标准串行接口,如RS-232CRS-232C、RS-422ARS-422A和和RS-485RS-485等。这三种接口最初都是由美国电子工业协会(等。这三种接口最
13、初都是由美国电子工业协会(EIAEIA)制订并发布的。制订并发布的。5.35.3串行通信的常用标准接口串行通信的常用标准接口第19页,共100页,编辑于2022年,星期三 5.3.1 RS-232C 5.3.1 RS-232C接口接口 RS-232C(又称(又称 EIA RS-232-C)是一种异步串行通信总标)是一种异步串行通信总标准,是目前准,是目前PC机与通信工业中应用最广泛的一种串行接口。图机与通信工业中应用最广泛的一种串行接口。图4-7是利用是利用RS-232C通过电话网实现远程通信的示意图。通过电话网实现远程通信的示意图。图图4-7 RS-232C通过电话网实现远程通信的示意图通过
14、电话网实现远程通信的示意图第20页,共100页,编辑于2022年,星期三1 1接口信号接口信号 RS-232C是是EIA在在1969年推出的。全名是年推出的。全名是“数据终端设备数据终端设备DTE(如计算机和各种终端机)和数据通讯设备(如计算机和各种终端机)和数据通讯设备DCE(如调制解(如调制解调器调器MODEM)之间串行二进制数据交换接口技术标准)之间串行二进制数据交换接口技术标准”。它适。它适合于数据传输速率在合于数据传输速率在020 000bps范围内的通信。范围内的通信。图图4-8 RS-232C串口结构串口结构第21页,共100页,编辑于2022年,星期三 目前较为常用的目前较为常
15、用的RS-232C有有9针串口(针串口(DB9)和)和25针串口针串口(DB25),结构分别如图),结构分别如图4-8所示。在保证通信准确性的前提下,如所示。在保证通信准确性的前提下,如果通信距离较近果通信距离较近(小于小于12米米),可以用电缆线直接连接,图,可以用电缆线直接连接,图4-9是这种是这种连接方式的示意图;若距离较远,需附加调制解调器(连接方式的示意图;若距离较远,需附加调制解调器(MODEM),),见图见图4-7。图图4-9 近程通信示意图近程通信示意图第22页,共100页,编辑于2022年,星期三 实际上实际上DB25中有许多引脚很少使用,在计算机与终端通讯中一般只中有许多引
16、脚很少使用,在计算机与终端通讯中一般只使用使用3-9条引线。最常用的条引线。最常用的9条引线的信号内容见表条引线的信号内容见表4-2所示。所示。最为简单且最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。常用的是三线制接法,即地、接收数据和发送数据三脚相连。传输线采传输线采用屏蔽双绞线。如图用屏蔽双绞线。如图4-10 所示。所示。图图4-10 RS-232C串口结构串口结构第23页,共100页,编辑于2022年,星期三表表5-2 DB95-2 DB9和和DB25DB25的常用信号脚说明的常用信号脚说明 第24页,共100页,编辑于2022年,星期三2.2.逻辑电平逻辑电平 RS-
17、232C是早期为促进公用电话网络进行数据通信而是早期为促进公用电话网络进行数据通信而制定的标准。它采用负逻辑,即制定的标准。它采用负逻辑,即-3V-15V规定为规定为“1”;+3V+15V规定为规定为“0”;-3V+3V为过渡区,不做定义。为过渡区,不做定义。第25页,共100页,编辑于2022年,星期三 3 3电平转换芯片与接口电路电平转换芯片与接口电路 RS232C信号的电平和单片机串口信号的电平不一致,必须进行信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换。常用芯片有二者之间的电平转换。常用芯片有MC1488(TTL转换成转换成RS232C信号)信号)、MC1489(
18、RS232C信号转换成信号转换成TTL)等。另一种常用的集成电平转)等。另一种常用的集成电平转换芯片换芯片MAX232可以实现可以实现RS232CTTL电平的双向转换,它只使用电平的双向转换,它只使用单一的单一的5V电源供电,配接电源供电,配接4个个1F电解电容即可完成电解电容即可完成RS232电平与电平与TTL电平之间的转换。其原理图如图电平之间的转换。其原理图如图4-11所示。转换完毕的串口信号所示。转换完毕的串口信号TXD、RXD直接和直接和80C51的串行口连接。的串行口连接。第26页,共100页,编辑于2022年,星期三图图5-11 5-11 电平匹配原理图电平匹配原理图注:注:1.
19、为提高电路抗干扰能力,为提高电路抗干扰能力,C1C4要用钽电容要用钽电容1.0F/16V,且尽,且尽 量靠近量靠近MAX232;2.MAX232对噪声很敏感,在对噪声很敏感,在VCC与与GND之间加之间加C5=0.1F,起去耦作用,起去耦作用第27页,共100页,编辑于2022年,星期三 1 1性能特点性能特点 RS-485RS-485以良好的抗噪声干扰性,长距离传输特性和多站能力等优点成为首选的串行接口。以良好的抗噪声干扰性,长距离传输特性和多站能力等优点成为首选的串行接口。表现为:表现为:接口信号电平比接口信号电平比RS-232CRS-232C低(低(1.5V1.5V6V6V),不易损坏接
20、口电路芯片,且该电平与),不易损坏接口电路芯片,且该电平与TTLTTL电平兼容,可方便与电平兼容,可方便与TTL TTL 电路连接。电路连接。RS-485 RS-485传输数据的速度较快,最高速率达到传输数据的速度较快,最高速率达到10Mbps 10Mbps。采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性能好。采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性能好。最大传输距离标准值为最大传输距离标准值为40004000英尺,折合英尺,折合12191219米,实际上可达米,实际上可达 3000 3000米。米。RS-485 RS-485接口允许在总线上同
21、时连接接口允许在总线上同时连接3232个发送器和个发送器和3232个接收器,即具有多站能力,这样个接收器,即具有多站能力,这样用户可以利用单一的用户可以利用单一的RS-485RS-485接口方便地建立起设备网络。接口方便地建立起设备网络。因因RS-485RS-485接口组成的半双工网络一般只需二根连线,所以接口组成的半双工网络一般只需二根连线,所以RS-485RS-485接口均采用屏蔽接口均采用屏蔽双绞线传输。双绞线传输。RS-485RS-485接口连接器采用接口连接器采用DB9DB9的的9 9芯插头座。与智能终端芯插头座。与智能终端RS-485RS-485接口采用接口采用DB9DB9(孔);
22、与键盘连接的键盘接口(孔);与键盘连接的键盘接口RS-485RS-485采用采用DB9DB9(针)。(针)。5.3.2 RS-4855.3.2 RS-485接口接口第28页,共100页,编辑于2022年,星期三2 2、与其它标准接口的对照、与其它标准接口的对照表表4-3 列出了列出了RS-485与其它标准接口的对照表与其它标准接口的对照表接口标准RS-232CRS-422ARS-485功能双向,全双工双向,全双工双向,半双工工作方式单端差分差分逻辑“0”电平3V15V2V6V1.5V6V逻辑“1”电平-3V-15V-2V-6V-1.5V-6V节点数1收、1发1发10收1发32收最大传输距离15
23、米1219米1219米最大传输速率20Kb/S10Mb/s10Mb/s驱动器加载输出电压5V15V2V1.5V接收器输入电阻()3K7K4K(最小)12K抗干扰能力弱强强第29页,共100页,编辑于2022年,星期三42 80C51串行口简介 4.2.1 4.2.1 串行口结构与工作原理串行口结构与工作原理80C51的串行口是一个可编程的全双工串行通信接口,通过软件编程它可以做通用异步接收和发送器UART(Universal Asynchronous ReceiverTransmitter),也可做同步移位寄存器用。其帧格式可设置8位、10位或11位,并能设置不同的波特率。第30页,共100页
24、,编辑于2022年,星期三图43串行口结构框图第31页,共100页,编辑于2022年,星期三波特率发生器第32页,共100页,编辑于2022年,星期三串行口组成:两个数据缓冲寄存器SBUF、一个输入移位寄存器、波特率发生器以及串行控制寄存器SCON等组成。l串行口的接收发送操作:首先对串行口初始化。发送时CPU写SBUF,一方面修改发送寄存器,同时启动数据串行发送到TXD端,发送完毕后置标志位TI;接受时置允许接收位才开始接受操作,接受完毕置位RI,这时CPU可以读SBUF,即读接收到的数据。第33页,共100页,编辑于2022年,星期三l发送操作:数据写入发送缓冲寄存器SBUF(99H),串
25、行口即把8位数据以fosc 12 波特率从RXD端送出(低位在前),TXD端送出同步移位脉冲,发送完后置中断标志TI=1。l l MOV TMOD,#00HMOV TMOD,#00Hl MOV SBUF,#data MOV SBUF,#datal JNB TI,$JNB TI,$l CLR TI CLR TIl RET RET第34页,共100页,编辑于2022年,星期三l接收操作:REN是串行口接收器允许接收控制位。当RI=0,软件置REN为1时,即开始从RXD端以lfosc 12波特率输入数据(低位在前),TXD端送出同步移位脉冲,当接收到8位数据时,置中断标志RI=1。RECV:MOVT
26、MOD,#00HCLRRISETBRENJNBRI,$MOVA,SBUFCLRRIRET第35页,共100页,编辑于2022年,星期三4.2.2 串行口寄存器1.串行口的接收发送缓冲区SBUF:是两个独立的物理空间,只能字节寻址。2.串行口控制寄存器SCON:串行口工作方式的设置和数据传输的控制,可位寻址。第36页,共100页,编辑于2022年,星期三lSM0、SM1:串行方式选择位 SM0SM1工作方式功能波特率00011011方式0方式1方式2方式38位同步移位寄存器10位UART11位UART11位UARTfosc/12可设置fosc/64和fosc/32可设置SM0SM1SM2RENT
27、B8RB8TIRI第37页,共100页,编辑于2022年,星期三SM0SM1SM2RENTB8RB8TIRIlSM2:在方式:在方式2和方式和方式3中主要用于多机通信控制。中主要用于多机通信控制。第38页,共100页,编辑于2022年,星期三第39页,共100页,编辑于2022年,星期三第40页,共100页,编辑于2022年,星期三第41页,共100页,编辑于2022年,星期三lREN:允许串行接收位。允许串行接收位。由软件置位或清除。REN1时,允许接收;REN0时,禁止接收。lTB8:发送数据的第发送数据的第9 9位位。在方式2或方式3中,根据需要由软件置位或复位。在多机通信中可作为区别地
28、址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。双机通信时它可作奇偶校验位。lRB8:接收数据的第接收数据的第9 9位位。在方式2或方式3中,双机通信是奇偶位,多机通信是地址数据标识位。lTITI:发送中断标志位:发送中断标志位。发送完一帧数据后由硬件置位,必须由软件来清除。lRIRI:接收中断标志位。:接收中断标志位。接受完一帧数据后由硬件置位,必须由软件来清除。SM0SM1SM2RENTB8RB8TIRI第42页,共100页,编辑于2022年,星期三3.电源控制寄存器PCON PCON的最高位SMOD是串行口波特率倍增位。当SMOD1时,波特率加倍,复位时,SMOD0
29、。直接地址为87 H,不可位寻址。SMODPDIDL第43页,共100页,编辑于2022年,星期三图43串行口结构框图第44页,共100页,编辑于2022年,星期三4.2.3 80C514.2.3 80C51的帧格式的帧格式的帧格式的帧格式l80C51串行口通过编程可设置4 4种工作方式种工作方式,三种帧三种帧格式格式。方式方式0 0以以8 8位数据为一帧位数据为一帧,不设起始位和停止位,先发送或接收最低位。l 方式方式1 1以以1010位为一帧传输位为一帧传输,设有一个起始位“0”,8个数据位和一个停止位“1”。l 方式2和3以以1111位为一帧传输位为一帧传输,设有1个起始位“0”,8个数
30、据位,1个可编程位(第九数据位)D8和1个停止位“1”。第45页,共100页,编辑于2022年,星期三l某异步通信接口按方式某异步通信接口按方式3传送,已知其每传送,已知其每分钟传送分钟传送3600个字符,计算其传送波特个字符,计算其传送波特率率第46页,共100页,编辑于2022年,星期三4 42 24 4 波特率的设置波特率的设置 l1方式0和方式2的波特率l 在方式0时,每个机器周期发送或接收一位数据,因此波特率固定为时钟频率的 112。l方式2的波特率 第47页,共100页,编辑于2022年,星期三2.方式1 1和方式3 3的波特率l方式l和方式3的波特率由定时器T1的溢出率与SMOD
31、值决定 l 方式1和方式3的波特率 T1溢出率 定时器T1作波特率发生器使用时,通常是选用自动重装载方式,即方式2。在方式2中,TL1作计数用,而自动重装载的值放在TH1内,设计数初值为X,那么每过256-X个机器周期,定时器1就会产生一次溢出。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。第48页,共100页,编辑于2022年,星期三波特率为溢出周期之倒数,所以波特率为溢出周期之倒数,所以(2)(1)溢出周期为:第49页,共100页,编辑于2022年,星期三l l例:例:8051单片机时钟振荡频率为单片机时钟振荡频率为单片机时钟振荡频率为单片机时钟振荡频率为11.0592MHZ11.
32、0592MHZ,选用,选用,选用,选用定时器定时器定时器定时器T1T1(工作在方式(工作在方式(工作在方式(工作在方式2)作波特率发生器,波特率)作波特率发生器,波特率)作波特率发生器,波特率)作波特率发生器,波特率为为为为4800bps4800bps,求定时器,求定时器T1的初值的初值X X。l l解解 设波特率控制位设波特率控制位SMOD=0SMOD=0,则:,则:l lX=256X=256(11.05921011.0592106(0+1)/(38448003844800)=250=FAH=250=FAHl l所以,(所以,(TH1TH1)=(TL1)=FAH=FAHl l系统晶振频率选用
33、11.0592MHZ,是为了使初值为整数,从而产生精确的波特率。第50页,共100页,编辑于2022年,星期三已知已知80518051单片机的振荡频率为单片机的振荡频率为9MHz9MHz,以T1作为波特率发生器,作为波特率发生器,T1工作在方式工作在方式2 2,(PCONPCON)=00H,要求波特率为1200b/s1200b/s,试计算T1T1的溢出率和TH1TH1、TL1的初始值,如果串行口工作在方的初始值,如果串行口工作在方式式1,问一分钟最大能发送多少个字符?,问一分钟最大能发送多少个字符?l(PCON)=00HSMOD=0l波特率=2SMOD溢出率/32=溢出率/32=1200l溢出
34、率=32波特率=321200=38400l又溢出周期T=(12/fosc)*(28-X)l溢出率=fOSC/12(256-TC)lTH1=TL1=TC=256-fOSC/(12溢出率)=256-9106/(1238400)=236=0ECHl即TH1、TL1的初始值为0ECHl串行口工作在方式1,每个字符发送10个二进制位l一分钟发送的字符数=120060/10=7200个第51页,共100页,编辑于2022年,星期三43 串行通信工作方式 l4.3.1 方式0l用作同步移位寄存器,以8位数据为一帧,发送/接收低位在先,数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.l)端送
35、出,波特率固定为 fosc12。这种方式常用于扩展IO 口。第52页,共100页,编辑于2022年,星期三第53页,共100页,编辑于2022年,星期三第54页,共100页,编辑于2022年,星期三第55页,共100页,编辑于2022年,星期三3.方式2和方式3 11位异步通信接口。发送或接收一帧信息包括l位起始位“0”、8位数据位、1位可编程位TB8/RB8和1位停止位“1”。方式2波特率与SMOD有关,方式3波特率取决于T1溢出率。l发送操作:发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址数据标识位),然后执行任何一条以SBUF作为目的寄存器的写指令即启动发送器,同时TB8自
36、动装到发送移位寄存器的第9位位置上,从TXD端输出一帧数据,发送完毕,TI标志=1。第56页,共100页,编辑于2022年,星期三l接收操作:先置位REN为1,使串行口处于允许接收状态,同时还要将RI清0。在满足这个条件的前提下,再根据SM2的状态和所接收到的RB8的状态决定是否会使RI置1,并申请中断,接收数据。当SM20时,不管RB8为0还是为1,RI都置1,此串行口将接收发来的信息。第57页,共100页,编辑于2022年,星期三 4.1.1.54.1.1.5应用指导应用指导1 1串行通信中的常用波特率串行通信中的常用波特率5.45.4串行口应用与训练串行口应用与训练 80C51的四种工作
37、方式中,方式的四种工作方式中,方式0和方式和方式2的波特率固定,见的波特率固定,见表和方式表和方式0、方式、方式2的特点。方式的特点。方式1和方式和方式3的波特率可变,其具体的波特率可变,其具体数值由定时器数值由定时器T1的溢出率和的溢出率和SMOD位共同决定,公式见表。位共同决定,公式见表。定时器定时器T1作波特率发生器时,为了防止溢出中断,应保作波特率发生器时,为了防止溢出中断,应保持持T1为中断禁止状态。表为中断禁止状态。表5-4列出了列出了T1的常用波特率。的常用波特率。第58页,共100页,编辑于2022年,星期三表表5-4 T15-4 T1的常用波特率的常用波特率第59页,共100
38、页,编辑于2022年,星期三 2 2利用串行口扩展利用串行口扩展I/OI/O口口 80C51单片机串行口方式单片机串行口方式0为同步移位寄存器方式,可进行为同步移位寄存器方式,可进行8位并行位并行I/O口的扩口的扩展。当串行口别无它用时,可通过使用串行输入并行输出移位寄存器(如展。当串行口别无它用时,可通过使用串行输入并行输出移位寄存器(如74LS164)扩展并行输出口;或使用并行输入串行输出移位寄存器(如)扩展并行输出口;或使用并行输入串行输出移位寄存器(如74LS165)扩展并行输入口。这种方法不占用片外扩展并行输入口。这种方法不占用片外RAM地址,而且还能简化单片机系统的硬地址,而且还能
39、简化单片机系统的硬件结构。但缺点是操作速度较慢,且扩展芯片越多,速度越慢。件结构。但缺点是操作速度较慢,且扩展芯片越多,速度越慢。图图4-12是利用一片是利用一片74LS165扩展扩展8位并行输入口的实用电路。当移位位并行输入口的实用电路。当移位/置入端置入端S/由由“1”变为变为“0”时,并行输入端的数据被置入寄存器。当时,并行输入端的数据被置入寄存器。当S/1,且时钟禁止端(,且时钟禁止端(15脚)接地时,在时钟脉冲的作用下,数据由脚)接地时,在时钟脉冲的作用下,数据由QA向向QH方向(即方向(即D7D0)移动。)移动。第60页,共100页,编辑于2022年,星期三图图5-12 5-12
40、利用一片利用一片74LS16574LS165扩展扩展8 8位并行输入口电路位并行输入口电路 图中图中RXD(P3.0)作为)作为80C51的串行输入端与的串行输入端与74LS165的串行输出端相连,的串行输出端相连,TXD(P3.1)为移位脉冲输出端,与)为移位脉冲输出端,与74LS165芯片的移位脉冲输入端连接,用一根芯片的移位脉冲输入端连接,用一根I/O口线口线P1.0与与74LS165芯片的芯片的S/相连来控制移位与置位过程。相连来控制移位与置位过程。注:图中注:图中74LS16574LS165的的SINSIN引脚为串行输入端,用于两片引脚为串行输入端,用于两片74LS16574LS16
41、5的串行扩展连接。的串行扩展连接。第61页,共100页,编辑于2022年,星期三3 3串行通信编程基础串行通信编程基础 (1)串行口初始化编程)串行口初始化编程 串行口初始化应该包括对串行口初始化应该包括对SCON、PCON和和T1的初始化。对的初始化。对T1的初始化又包含的初始化又包含TMOD寄存器初始化(将寄存器初始化(将T1设置为波特率发生器)、根据波特率求时间常数并对设置为波特率发生器)、根据波特率求时间常数并对TH1和和TL1赋值、启动赋值、启动T1等过程,串口初始化格式如下,其中加括号的指令可根据情况选择使等过程,串口初始化格式如下,其中加括号的指令可根据情况选择使用:用:SIO:
42、MOV SCON,#控制状态字控制状态字;写方式字且;写方式字且TI=RI=0 (MOV PCON,#80H);波特率加倍;波特率加倍 (MOV TMOD,#20H);T1作波特率发生器作波特率发生器 (MOV TH1,#X);选定波特率;选定波特率 (MOV TH1,#X)(SETB TR1);启动;启动T1 (SETB EA);开串行口中断;开串行口中断 (SETB ES)第62页,共100页,编辑于2022年,星期三(2 2)发送程序)发送程序 发送程序可以采用中断和查询两种方式设计。发送程序可以采用中断和查询两种方式设计。查询方式:查询方式:TRAM:MOV A,R0 ;取数据;取数据
43、 MOVSBUF,A ;发送一个字符;发送一个字符WAIT:JBCTI,NEXT ;等待发送结束;等待发送结束 SJMPWAITNEXT:INCR0 ;准备下一次发送;准备下一次发送 SJMPTRAM第63页,共100页,编辑于2022年,星期三 中断方式:中断方式:ORG 0023H ;串行口中断入口;串行口中断入口 AJMP SINT MAIN:;初始化编程;初始化编程 TRAM:MOV A,R0 ;取数据;取数据MOV SBUF,A ;发送第一个字符;发送第一个字符 SJMP$;其它工作;其它工作 SINT:CLR TI ;中断服务程序;中断服务程序INC R0MOV A,R0 ;取数据
44、;取数据MOV SBUF,A ;发送下一个字符;发送下一个字符RETI第64页,共100页,编辑于2022年,星期三 (3)接收程序)接收程序 与发送相类似,接收也可以采用中断和查询两种方式设计。与发送相类似,接收也可以采用中断和查询两种方式设计。当当REN=1、RI=0时时80C51处于等待接收状态;一旦检测到处于等待接收状态;一旦检测到RI=1,80C51开始从开始从SBUF读取数据。读取数据。查询方式:查询方式:WAIT:JBCRI,NEXT;查询等待;查询等待 SJMPWAIT NEXT:MOVA,SBUF ;读取接收数据;读取接收数据MOVR0,A ;保存数据;保存数据INC R0
45、;准备下一次接收;准备下一次接收SJMPWAIT第65页,共100页,编辑于2022年,星期三5.4.2 5.4.2 基本训练基本训练 1初始化训练初始化训练 要求:某要求:某80C51单片机通信系统,晶振频率为单片机通信系统,晶振频率为12MHz,要求串行口发送,要求串行口发送8位数据,位数据,波特率波特率1200bmp,请编写它的初始化程序。,请编写它的初始化程序。思路与计算:要选择串行口和定时器思路与计算:要选择串行口和定时器T1的工作方式,计算时间常数并赋值给的工作方式,计算时间常数并赋值给TH1、TL1。我们可以利。我们可以利用表用表5-1中求波特率的公式:中求波特率的公式:第66页
46、,共100页,编辑于2022年,星期三 初始化程序:初始化程序:MOV SCON,#40H ;串口工作于方式;串口工作于方式1 MOV PCON,#80H ;SMOD=1 MOV TMOD,#20H ;T1 作定时器,工作于方式作定时器,工作于方式2 MOV TH1,#0CCH ;装入时间常数初值;装入时间常数初值 MOV TL1,#0CCH ;自动重装时间常数;自动重装时间常数 CLR ET1 ;禁止;禁止T1中断中断 SETB TR1 ;启动;启动T1波特率发生器波特率发生器 总结:用上述公式计算出的波特率不为整数,近似取整后,波特率也就不能精确地等于总结:用上述公式计算出的波特率不为整数
47、,近似取整后,波特率也就不能精确地等于1200bps。但在异步传送中,每接收一个字符实际上都要整步一次,因此这点微小误差并不影。但在异步传送中,每接收一个字符实际上都要整步一次,因此这点微小误差并不影响收发。响收发。第67页,共100页,编辑于2022年,星期三要求:要求:利用利用80C51的串行口实现一个数据块的发送。设发送数据区首地的串行口实现一个数据块的发送。设发送数据区首地址为址为58H,数据块长度(字节数)为,数据块长度(字节数)为10,串行口工作于方式,串行口工作于方式1,波特率,波特率1200bps,晶振频率为,晶振频率为11.0592MHz。思路:思路:串行口工作于方式串行口工
48、作于方式1时,波特率要编程设定。通常使时,波特率要编程设定。通常使T1工作在方式工作在方式2,当波特,当波特率取率取1200bps时,可以查表或计算时间常数初值,得时,可以查表或计算时间常数初值,得0E8H(SMOD=0时)。时)。发送子程序发送子程序TRAM清单:清单:TRAM:MOV TMOD,#20H ;T1工作在方式工作在方式2 MOV TH1,#0E8H;装入时间常数初值;装入时间常数初值 MOV TL1,#0E8H ;自动重装时间常数;自动重装时间常数2 2串行传送训练串行传送训练第68页,共100页,编辑于2022年,星期三 CLR ET1 ;禁止;禁止T1中断中断 SETB T
49、R1 ;启动;启动T1波特率发生器波特率发生器 MOV SCON,#40H ;串口工作于方式;串口工作于方式1 MOV PCON,#00H ;SMOD=0,该指令可不写,该指令可不写 MOV R1,#58H ;数据发送区首址送;数据发送区首址送R1 MOV R5,#10 ;发送长度送;发送长度送R5LOOP:MOV A,R1 ;发送一帧数据;发送一帧数据 MOV SBUF,A WAIT:JBC TI,NEXT ;发送等待,发完一帧转去;发送等待,发完一帧转去NEXT SJMP WAIT NEXT:INC R1 ;准备取下一数据;准备取下一数据 DJNZ R5,LOOP ;数据块发完?未发完转;
50、数据块发完?未发完转LOOP RET ;发完,结束;发完,结束 发送等待时为什么不用发送等待时为什么不用“JB TI,NEXT”指令,而用指令,而用“JBC TI,NEXT”指令?指令?第69页,共100页,编辑于2022年,星期三第70页,共100页,编辑于2022年,星期三第71页,共100页,编辑于2022年,星期三第72页,共100页,编辑于2022年,星期三第73页,共100页,编辑于2022年,星期三4.4.3 4.4.3 课题与实训课题与实训10 10 串行输出控制彩灯串行输出控制彩灯一实训目的一实训目的1熟悉熟悉74LS164的使用,掌握串行口的基本应用方法。的使用,掌握串行口