书签 分享 收藏 举报 版权申诉 / 65
上传文档赚钱

类型串行接口及其串行通信课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4345910
  • 上传时间:2022-12-01
  • 格式:PPT
  • 页数:65
  • 大小:869.69KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《串行接口及其串行通信课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    串行 接口 及其 通信 课件
    资源描述:

    1、1 MCS-51单片机的串行接口及其串行通信单片机的串行接口及其串行通信5.4.1 串行数据通信基础串行数据通信基础5.4.2 MCS-51串行口及控制寄存器串行口及控制寄存器5.4.3 MCS-51串行通信工作方式及应用串行通信工作方式及应用习题习题:6,9,10,15*25.4.1 串行数据通信基础一、数据通信的概念一、数据通信的概念计算机与计算机或外部设备之间的数据传计算机与计算机或外部设备之间的数据传送送数据通信数据通信 并行并行数据通信数据通信 同步同步 串行串行 异步异步35.4.1 串行数据通信基础 并并 行行 数数 据据 传传 送送串串 行行 数数 据据 传传 送送原原 理理各

    2、数据位同时传送各数据位同时传送数据位按位顺序进行数据位按位顺序进行优优 点点传送速度快、效率高传送速度快、效率高最少只需一根传输线即可完成:成本低最少只需一根传输线即可完成:成本低缺缺 点点数据位数数据位数传输线根数:成本高传输线根数:成本高速度慢速度慢应应 用用传送距离传送距离30米,用于计算机内部米,用于计算机内部几米几千公里,用于计算机与外设之间几米几千公里,用于计算机与外设之间45.4.1 串行数据通信基础二、串行通信的基本方式二、串行通信的基本方式(一一)异步通信异步通信 以字符为传送单位以字符为传送单位,用用起始位起始位和和停止位停止位标识标识每每个字符的个字符的开始开始和和结束字

    3、结束字 符符,间隔不固定,只需字,间隔不固定,只需字符传送时同步即可。符传送时同步即可。异步通信常用格式:字符帧异步通信常用格式:字符帧D0D1D2D3D4D5D6D7停止位停止位起始位起始位55.4.1 串行数据通信基础异步通信的双方需要两项约定:异步通信的双方需要两项约定:1.1.字符格式:字符格式:一帧字符位数的规定:数据位,校验位,起始位一帧字符位数的规定:数据位,校验位,起始位和停止位。和停止位。2.2.波特率波特率(位位/秒秒)和传送速率的规定:和传送速率的规定:例:例:要求每秒传送要求每秒传送120120个字符,每帧为个字符,每帧为1010位(数位(数据据8 8位)。位)。解:解

    4、:B=120B=12010=120010=1200波特波特 每位每位0.83ms0.83ms 数据位数据位传送速率传送速率=120=1208=9608=960位位/秒秒帧帧图图5 15 异步串行通信的字符格式异步串行通信的字符格式起始位起始位数据位数据位0(n 1)位)位奇偶位奇偶位停止位停止位起始位起始位位时间位时间65.4.1 串行数据通信基础(二二)同步通信方式同步通信方式同步字符1同步字符2数据Td 图5.2 同步通信的格式 在同步通信中,以一串字符为一个传送单位,字符间不加在同步通信中,以一串字符为一个传送单位,字符间不加标识位,标识位,在一串字符开始在一串字符开始 用同步字符标识用

    5、同步字符标识。如果发送的数据。如果发送的数据块之间有时间间隔,则发送同步字符填充,使发送和接收双块之间有时间间隔,则发送同步字符填充,使发送和接收双方同步方同步。75.4.1 串行数据通信基础三、串行接口功能:三、串行接口功能:(1 1)发送器:并)发送器:并串数据格式转换,添加标识位和串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中校验位,一帧发送结束,设置结束标志,申请中断。断。(2 2)接收器:串)接收器:串并数据格式转换,检查错误,去并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,掉标识位,保存有效数据,设置接收结束标志,申请中断。申请中断。

    6、(3 3)控制器:接收编程命令和控制参数,设置工作)控制器:接收编程命令和控制参数,设置工作方式:同步方式:同步/异步、字符格式、波特率、校验方式、异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。数据位与同步时钟比例等。85.4.1 串行数据通信基础四、串行数据传送方向(通路形式):四、串行数据传送方向(通路形式):1 1、单工通讯:单工通讯:数据单向传送。数据单向传送。(1 1条数据线,单向)条数据线,单向)2 2、半双工通讯:半双工通讯:数据可数据可分时分时双向传送。双向传送。(1 1条或条或2 2条数据线,双向)条数据线,双向)3 3、全双工通讯:全双工通讯:可可同时同时进行发

    7、送和接收。进行发送和接收。(2 2条数据线,双向)条数据线,双向)95.4.1 串行数据通信基础 发送器发送器接收器接收器地线地线数据线数据线单工形式串行通信单工形式串行通信发送接发送接收器收器接收发接收发送器送器地线地线数据线数据线 半双工形式串行通信半双工形式串行通信发送接发送接收器收器接收发接收发送器送器地线地线数据线数据线全双工形式串行通信全双工形式串行通信105.4.1 串行数据通信基础五、异步串行通信的信号形式五、异步串行通信的信号形式 1 1、采用数字信号直接传送(适合于近程通信)。、采用数字信号直接传送(适合于近程通信)。在传送过程中在传送过程中不改变原数据代码的波形和频率。不

    8、改变原数据代码的波形和频率。这种数据传送这种数据传送方式称之为方式称之为基带传送方式基带传送方式。通信双方只需用传输线。通信双方只需用传输线把两端的接口把两端的接口电路直接连起来电路直接连起来即可实现。即可实现。2 2、采用频率调制法,也叫频带传送方式(适合于远用频率调制法,也叫频带传送方式(适合于远程通信)。程通信)。远距离直接传输数字信号,信号会发生畸变,因此要把数字信远距离直接传输数字信号,信号会发生畸变,因此要把数字信号转变为模拟信号再进行传送。可利用光缆、专用通信电缆或电号转变为模拟信号再进行传送。可利用光缆、专用通信电缆或电话线等连接。话线等连接。115.4.1 串行数据通信基础发

    9、 方收 方解 调 器调 制 器“0”“1”“0”市 话 线电 平 信 号频 率 信 号“1”通常:通常:“1”:1270Hz或或2225Hz;“0”:1070Hz或或2025Hz。125.4.1 串行数据通信基础 因通信时(有干扰)信号要衰减,所以常采用因通信时(有干扰)信号要衰减,所以常采用RS232RS232电平负逻辑,拉开电平负逻辑,拉开“0”0”和和“1”1”的电压档次,的电压档次,以免信息出错:以免信息出错:TTL正逻辑:正逻辑:“0”:0 0.8V;“1”:2.4V+5V。TTL电平直接传输距电平直接传输距离一般不超过离一般不超过1.5米。米。RS-232C(电平转换芯片为电平转换

    10、芯片为MAX232)RS-422RS-485RS232负逻辑(负逻辑(EIA电平):电平):“0”:+3V+25V;“1”:-3V-25V。最大传输信息的长度为最大传输信息的长度为15米。米。Electronic Industries Association,电子工业联合会电子工业联合会135.4.2 MCS-51串行口及控制寄存器MCS 51系列单片机的串行口是全双工的,这系列单片机的串行口是全双工的,这个口既可以用于网络通信,也可以实现串行异个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。在步通信,还可以作为同步移位寄存器使用。在串行口中可供用户使用的是它的寄

    11、存器,因此串行口中可供用户使用的是它的寄存器,因此了解其寄存器结构对用户来说是十分重要的。了解其寄存器结构对用户来说是十分重要的。一、一、MCS-51串行口寄存器结构串行口寄存器结构串行接口输入串行接口输入/输出引脚:输出引脚:TXD(P3.1)、RXD(P3.0)发送发送SBUFSBUF(99H99H)接收接收SBUFSBUF(99H99H)输入移位寄存器输入移位寄存器TITI(发送中断)(发送中断)TXDTXD串行输出串行输出80518051内部总线内部总线RXDRXD串行输入串行输入RIRI(接收输入)(接收输入)移位时钟移位时钟图图5-23 MCS-515-23 MCS-51串行口寄存

    12、器结构串行口寄存器结构 在接收方式下,串行数据通过引脚在接收方式下,串行数据通过引脚RXD(P3.0)进入。由于在接收寄存器之间还有移位寄存器,从进入。由于在接收寄存器之间还有移位寄存器,从而构成了而构成了串行接收的双缓冲结构串行接收的双缓冲结构,以避免以避免在数据接在数据接收过程中收过程中出现帧重叠错误出现帧重叠错误,即在下一帧数据来时,即在下一帧数据来时,前一帧数据还没有读走。前一帧数据还没有读走。在发送方式下,串行数据通过在发送方式下,串行数据通过TXD(P3.1)送)送出。与接收数据情况不同,出。与接收数据情况不同,发送数据时发送数据时,由于,由于CPU是主动的是主动的,不会发生帧重叠

    13、错误,因此发送,不会发生帧重叠错误,因此发送电路就电路就不需双重缓冲结构不需双重缓冲结构,这样可以提高数据发,这样可以提高数据发送速度。送速度。165.4.2 MCS-51串行口及控制寄存器串行通信数据格式:按不同方式,一帧数据串行通信数据格式:按不同方式,一帧数据位数为位数为 8/10/118/10/11。发送发送/接收时,数据皆接收时,数据皆低位低位在前在前。D0D1D2D3D4D5D6D8停止位停止位起始位起始位D7D0D1D2D3D4D5D6D7停止位停止位起始位起始位D0D1D2D3D4D5D6D7175.4.2 MCS-51串行口及控制寄存器一帧字符发送一帧字符发送/接收结束,接收

    14、结束,置位标志位置位标志位(TI/RI)(TI/RI),并申请串行中断。并申请串行中断。串行口中断控制:中断允许位串行口中断控制:中断允许位ESES、总允许、总允许EAEA;串行中断入口:串行中断入口:0023H0023H。185.4.2 MCS-51串行口及控制寄存器二、串行通信控制寄存器二、串行通信控制寄存器 1.1.数据缓冲器数据缓冲器SBUFSBUF发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址99H99H。1 1)发送)发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同将同时启动发送。发送指令:时启动发送。发送

    15、指令:MOVMOVSBUFSBUF,A A2 2)接收)接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读读取。读取串行口接收数据指令:取。读取串行口接收数据指令:MOV AMOV A,SBUFSBUF195.4.2 MCS-51串行口及控制寄存器2.2.电源控制寄存器电源控制寄存器PCONPCON SMOD SMOD(PCON.7PCON.7):波特率加倍控制位。):波特率加倍控制位。SMOD=1SMOD=1,波特率加倍;,波特率加倍;SMOD=0SMOD=0,则不加倍。,则不加倍。3.3.串行口控制串行口控制/状态寄存器状态寄存器SCON(98H)

    16、SCON(98H):位地址位地址9FH9EH9DH9CH9BH9AH99H98H位符号位符号SM0SM1SM2RENTB8RB8TIRISM0 SM1工作方式工作方式功功 能能波特波特 率率 0 0 方式方式0同步移位寄存器同步移位寄存器fosc/12 0 1 方式方式110位异步收发位异步收发由定时器控制由定时器控制 1 0 方式方式211位异步收发位异步收发fosc/32或或/64 1 1 方式方式311位异步收发位异步收发由定时器控制由定时器控制SM0、SM1:选择串行口选择串行口4种工作方式。种工作方式。215.4.2 MCS-51串行口及控制寄存器SM2SM2:多机控制位,用于多机通

    17、讯。多机控制位,用于多机通讯。RENREN:允许接收控制位,允许接收控制位,REN=1REN=1,允许接收;,允许接收;REN=0REN=0,禁止接收。,禁止接收。TB8TB8:发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/数数 据标识位。据标识位。RB8RB8:接收的第接收的第9 9位数据位或停止位。位数据位或停止位。TI TI:发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1TI=1,必须,必须软软 件清零件清零;RI RI:接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,必须,必须软软 件清零件清零。225.4.

    18、3 MCS-51串行通信工作方式及应用一)方式一)方式0 0:SM0=0,SM1=0SM0=0,SM1=0 在方式在方式0下下,是把串行口作为是把串行口作为同步移位寄存器同步移位寄存器使使用用,这时以这时以RXD(P3.0)端作为数据移位的端作为数据移位的入入口和口和出出口口,而由而由TXD(P3.1)端提供端提供移位时钟脉冲移位时钟脉冲.移位数据的发移位数据的发送和接收以送和接收以8位为一组位为一组,低位在前高位在后。低位在前高位在后。1、数据的发送与接收、数据的发送与接收 发送和接收的时序如下图所示:发送和接收的时序如下图所示:235.4.3 MCS-51串行通信工作方式及应用(a)(b)

    19、发送时序发送时序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7写写REN=1RI=0RXD输入输入RI 接收时序接收时序DATA CD4094CLK STB并行输出并行输出80C51 RXD TXD P1.0Q8 CD4014CLK P/S并行输入并行输入80C51 RXD TXD P1.0图图5 24串行口与串行口与CD4094配合配合图图5 25串行口与串行口与CD4014配合配合 使用方式使用方式0实现数据的移位输入输出时,实际上是实现数据的移位输入输出时,实际上是把串行口把串行口变成为并行口使用变成为并行口使用。串行口作为并行口输出使用时,要有。串行口作为并行

    20、口输出使用时,要有“串入并出串入并出”的移位寄存器(例如的移位寄存器(例如CD4094或或74LS164、74HC164等)配合,其电路连接如图等)配合,其电路连接如图5 24所示。所示。255.4.3 MCS-51串行通信工作方式及应用 发送过程可叙述如下:发送过程可叙述如下:数据预先写入串行口数据缓冲器,然后从串行口数据预先写入串行口数据缓冲器,然后从串行口RXD端,在移位时钟脉冲(端,在移位时钟脉冲(TXD)的控制下,逐)的控制下,逐位移入位移入CD4094。当。当8位数据全部移出后,位数据全部移出后,SCON寄存器的发送中断寄存器的发送中断TI被自动置被自动置“1”。其后主程序。其后主

    21、程序就可用中断或查询的方法,通过设置就可用中断或查询的方法,通过设置STB状态的状态的控制,把控制,把CD4094的内容并行输出。的内容并行输出。如果把能实现如果把能实现“并入串出并入串出”功能的移位寄存器(例如功能的移位寄存器(例如CD4014或或74165)与串行口配合使用,就可以把串行口扩展)与串行口配合使用,就可以把串行口扩展为一个并行输入口使用。其电路如图为一个并行输入口使用。其电路如图5-25所示。所示。数据接收过程如下:数据接收过程如下:首先将并行输入数据写入首先将并行输入数据写入CD4014,CD4014移出的串行数据移出的串行数据经经RXD端串行输入到串行口数据缓冲器,同样由

    22、端串行输入到串行口数据缓冲器,同样由TXD端提供移端提供移位时钟脉冲。位时钟脉冲。8位数据串行接收需要有允许接收的控制,具体位数据串行接收需要有允许接收的控制,具体由由SCON寄存器的寄存器的REN位实现。位实现。REN=0,禁止接收;禁止接收;REN=1,允允许接收。当软件置位许接收。当软件置位REN时,即开始从时,即开始从RXD端输入数据(低位端输入数据(低位在前),当接收到在前),当接收到8位数据时,硬件自动置位接收中断标志位数据时,硬件自动置位接收中断标志RI(由用户通过软件请(由用户通过软件请0)。)。2、应用举例、应用举例 使用使用CD4094的输出端接的输出端接8只发光二极管,利

    23、用它的串入并只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并反复循环之。按出功能,把发光二极管从左向右依次点亮,并反复循环之。按此要求所做的电路连接如图此要求所做的电路连接如图5 26所示。所示。DATA CD4094CLK STB80C51 RXD TXD P1.0图图5 26 串行移位输出电路串行移位输出电路 方式方式0时,移位操作的时,移位操作的波特率是固定的波特率是固定的,为,为单片机晶振频单片机晶振频率的十二分之一率的十二分之一。按此波特率也就是一个机器周期移一位。按此波特率也就是一个机器周期移一位。MOV SCON,#00H ;串行口方式;串行口方式0工作工作

    24、CLR ES ;禁止串行中断;禁止串行中断 MOV A,#80H;发光管从左边亮起;发光管从左边亮起DELR:CLR P1.0 ;关闭并行输出;关闭并行输出 MOV SBUF,A;串行输出;串行输出 JNB TI,;状态查询;状态查询 SETB P1.0;开启并行输出;开启并行输出 ACALL DELAY;状态维持时间;状态维持时间 CLR TI;清发送中断标志;清发送中断标志 RR A ;发光组合右移;发光组合右移 AJMP DELR;继续;继续采用查询方式发送数据可编程序如下:采用查询方式发送数据可编程序如下:295.4.3 MCS-51串行通信工作方式及应用二二)方式方式1 1:SM0=

    25、1,SM1=0SM0=1,SM1=0方式方式1是是10位为一帧的异步串行通信方式。共包位为一帧的异步串行通信方式。共包括括1个起始位,个起始位,8个数据位和个数据位和1个停止位。其帧格式为:个停止位。其帧格式为:起始D0D1D2D3D4D5D6D7停止1、数据的发送与接收、数据的发送与接收 数据发送是由一条写发送缓冲器(数据发送是由一条写发送缓冲器(SBUF)的指令开始的,)的指令开始的,随后在串行口由硬件自动加入起始位和停止位,构成一个完随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。端串行输出

    26、。一个字符帧发送完后,使一个字符帧发送完后,使TXD输出线维持在输出线维持在“1”状态下,并状态下,并将将SCON寄存器的寄存器的TI置置“1”,通知,通知CPU可以接着发送下一个可以接着发送下一个字符。字符。数据接收时,数据接收时,SCON的的REN位应处于允许接收状态位应处于允许接收状态(REN=1)。在此前提下,串行口采样)。在此前提下,串行口采样RXD端,当采样到端,当采样到从从“1”向向“0”的状态跳变时,就认定是接收到起始位。随后的状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把在移位脉冲的控制下,把RXD端上的数据逐位移入移位寄存端上的数据逐位移入移位寄存器,当器,当

    27、8位数据及停止位全部移入后,根据以下状态,进行位数据及停止位全部移入后,根据以下状态,进行相应操作。相应操作。如果如果RI=0、SM2=0,则接收控制器发出装载则接收控制器发出装载SBUF信号,信号,将将8位数据装入接收数据缓冲器位数据装入接收数据缓冲器SBUF,停止位装入停止位装入RB8,并置并置RI=1,向,向CPU申请中断。申请中断。如果如果RI=0、SM2=1,那么只有停止位为,那么只有停止位为1才发生上述操作。才发生上述操作。如果如果RI=0、SM2=1且停止位为且停止位为0、则所接收的数据不装入、则所接收的数据不装入SBUF,数据将会丢失。数据将会丢失。如果如果RI=1,则所接收的

    28、数据在任何情况下都不装入,则所接收的数据在任何情况下都不装入SBUF,即即数据丢失。数据丢失。无论出现哪一种情况,位检测器将继续采样无论出现哪一种情况,位检测器将继续采样RXD引脚的负跳引脚的负跳变,以便接收下一帧信息。变,以便接收下一帧信息。接收采用移位寄存器和接收采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧双缓冲结构,以避免在接收后一帧数据之前,数据之前,CPU尚未及时响应中断而将前一帧数据取走,造成两帧尚未及时响应中断而将前一帧数据取走,造成两帧数据重叠。采用双缓冲结构后,前、后两帧数据进入数据重叠。采用双缓冲结构后,前、后两帧数据进入SBUF的时间的时间间隔有间隔有10个机器

    29、周期。在后一帧数据送入个机器周期。在后一帧数据送入SBUF之前,之前,CPU有足够有足够时间将前一帧数据取走。时间将前一帧数据取走。DATA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 1016Tc起始位起始位RXDRXC启动检测启动检测确认启动位确认启动位采样数据采样数据图图5-22 串行通信方式串行通信方式1对接收数据的采样对接收数据的采样由于发送、接收双方各自使用自己的时钟,因而两者的频由于发送、接收双方各自使用自己的时钟,因而两者的频率总有少许差异。为了避免这种影响,数据采样速率采用波特率总有少许差异。为了避免这种影响

    30、,数据采样速率采用波特率率16倍频,在数据位中间,用第倍频,在数据位中间,用第7、8、9个脉冲采样个脉冲采样3次数据次数据位,并位,并3中取中取2保留采样值。保留采样值。写入写入SBUF采样采样(a)发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD输入数据输入数据(b)接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变2、发送时序和接收时序:、发送时序和接收时序:3、波特率设置、波特率设置 假定计数初值为假定计数初值为X,则定时器,则定时器1溢出周期为:溢出周期为:12fosc(256

    31、-X)溢出率为溢出周期的倒数。故波特率计算公式为:溢出率为溢出周期的倒数。故波特率计算公式为:波特率波特率=2SMOD32fosc12(256-X)当定时器当定时器1作波特率发生器使用时,选用定时方式作波特率发生器使用时,选用定时方式2。之所以选择工作方式。之所以选择工作方式2,是因为,是因为方式方式2具有自动加载功能,可以避免通过程序反复装入初值所引起的定时误差,使波特率具有自动加载功能,可以避免通过程序反复装入初值所引起的定时误差,使波特率更加稳定。更加稳定。方式方式1的波特率由定时器的波特率由定时器/计数器的溢出率和计数器的溢出率和SMOD决定,即决定,即方式方式1波特率波特率=(2SM

    32、ODT1溢出率)溢出率)/32 X=2SMODfosc3212波特率波特率256-实际使用时,总是先确定波特率,再计算定时器实际使用时,总是先确定波特率,再计算定时器1的计数初值,然后进行定时器的初始化。根据上述波的计数初值,然后进行定时器的初始化。根据上述波特率计算公式,得出计数初值的计算公式为:特率计算公式,得出计数初值的计算公式为:2、应用举例、应用举例双机通信双机通信 单片机间的串行通信通常可分为单片机间的串行通信通常可分为双机通信和多机通信双机通信和多机通信两两类。而类。而串行口工作方式串行口工作方式1只能用于双机通信,不能用于多机只能用于双机通信,不能用于多机通信通信,故作为方式,

    33、故作为方式1的应用,这里举一双机通信的例子。又的应用,这里举一双机通信的例子。又因串行通信的程序设计,一般因串行通信的程序设计,一般可采用查询方式或中断方式可采用查询方式或中断方式两种两种,这里仅以查询方式为例加以说明,这里仅以查询方式为例加以说明。为了确保通信成功、有效,现规定双机异步通信程序为了确保通信成功、有效,现规定双机异步通信程序“协议协议”如下:如下:通信双方均采用系统时钟频率通信双方均采用系统时钟频率fosc=12MHz,甲机发送数,甲机发送数据,乙机接收数据,波特率为据,乙机接收数据,波特率为2400。通信开始时,甲机发送。通信开始时,甲机发送呼叫信号呼叫信号“06”,询问乙机

    34、,询问乙机是否可以接收数据是否可以接收数据;乙机;乙机收到呼叫收到呼叫信号后信号后,若,若同意接收同意接收数据则数据则发回发回“00”作为应答作为应答,否则发否则发“15”表示暂不能接收数据表示暂不能接收数据;甲机只有收到乙机的应答信号;甲机只有收到乙机的应答信号“00”后才可把存放在外部数据存储器的内容发送给乙机,否后才可把存放在外部数据存储器的内容发送给乙机,否则继续向乙机呼叫,直到乙机同意接收。其数据格式为:则继续向乙机呼叫,直到乙机同意接收。其数据格式为:字节数字节数n数据数据1数据数据n累加效验和累加效验和累加效验和累加效验和是指字节数是指字节数n、数据、数据1、数据、数据n这(这(

    35、n+1)个字)个字节节内容内容的算术累加和。的算术累加和。乙机根据接收到的乙机根据接收到的“效验和效验和”判断已接收到的数据是否正判断已接收到的数据是否正确。若接收确。若接收正确正确,向甲机发回,向甲机发回“0FH”信号,信号,否则发回否则发回“F0H”信号给甲机信号给甲机。甲机只有。甲机只有接收到接收到“0FH”信号才算完成发送任务,信号才算完成发送任务,返回调用的程序,否则继续呼叫,重发数据。返回调用的程序,否则继续呼叫,重发数据。甲机发送程序甲机发送程序 发送程序约定:定时器发送程序约定:定时器T1初始化为模式初始化为模式2,SMOD=1。计数初值计数初值:X=2110612321224

    36、00256-=230=0E6HY YN N等待乙机回答等待乙机回答N N发送呼叫信号发送呼叫信号06H06H 是是00H00H?开始开始定时器、串行口初始化定时器、串行口初始化置置DPTRDPTR、长度计数器、长度计数器R7R7初值初值置效验寄存器置效验寄存器R6R6初值初值发送字节长度数发送字节长度数发送数据发送数据发送验收和发送验收和 发送完?发送完?等待乙机回答等待乙机回答 传送正确吗?传送正确吗?返回返回N N图图5 5 27 27 双机通信甲机查询发送程序框图双机通信甲机查询发送程序框图Y YY Y串行口初始化为串行口初始化为方式方式1,允许接收;内部允许接收;内部RAM 31H和和

    37、30H单元单元存放存放发送的数据块首地址发送的数据块首地址;R7存放发送的数据块长度;存放发送的数据块长度;R6为累为累加和寄存器。加和寄存器。发送程序清单:发送程序清单:MOV TMOD,#20H;T1初始化模式初始化模式2 MOV TL1,#0E6H;置计数初值;置计数初值 MOV TH1,#0E6H SETB TR1;启动;启动T1 MOV SCON,#50H ;串口为方式;串口为方式1,允许接收,允许接收 MOV PCON,#80H ;置;置SMOD=1FMT-RAM:MOV DPH,31H;置;置DPTR指针指针 MOV DPL,30H MOV R7,#2FH ;送字节数至;送字节数

    38、至R7 MOV R6,#00H;清累加和寄存器;清累加和寄存器 TX-ACK:MOV A,#06H ;发呼叫信号发呼叫信号 MOV SBUF,A40WAIT1:JBC TI,RX-YES ;等待发送完等待发送完 SJMP WAIT1RX-YES:JBC RI,NEXT1 ;接收乙机回答接收乙机回答 SJMP RX-YESNEXT1:MOV A,SBUF ;判乙机是否同意接收判乙机是否同意接收 CJNE A,#00H,TX-ACK ;不同意接收则继续呼叫不同意接收则继续呼叫TX-BYTES:MOV A,R7 ;同意同意,发送待发字节个发送待发字节个数数 MOV SBUF,A ADD A,R6 ;

    39、累加字节个数累加字节个数 MOV R6,A WAIT2:JBC TI,TX-NEWS;字节个数发送完?;字节个数发送完?SJMP WAIT2;没完等待;没完等待TX-NEWS:MOVX A,DPTR ;发送数据;发送数据 MOV SBUF,A ADD A,R6;形成累加和形成累加和 MOV R6,A INC DPTR ;数据指针加;数据指针加1WAIT3:JBC TI,NEXT2 ;等待一帧数据发送完毕等待一帧数据发送完毕 SJMP WAIT3NEXT2:DJNZ R7,TX-NEWS;判数据发送完否?;判数据发送完否?TX-SUM:MOV A,R6;发送完,累加和发送乙机;发送完,累加和发送

    40、乙机 MOV SBUF,AWAIT4:JBC TI,RX-0FH;累加和发送完否?;累加和发送完否?SJMP WAIT4RX-0FH:JBC RI,IF-0FH;等待乙机回答;等待乙机回答 SJMP RX-0FHIF-0FH:MOV A,SBUF CJNE A,#0FH,FMT-AM ;判传送正确否?;判传送正确否?RET ;正确返回;正确返回 乙机接收程序乙机接收程序 接收程序的约定:接收程序的约定:波特率设置初始化,串行口初始化同发送程序。波特率设置初始化,串行口初始化同发送程序。寄存器设置:寄存器设置:31H和和30H存放接收数据缓冲区首址;存放接收数据缓冲区首址;R7为数据块长度寄存器

    41、:为数据块长度寄存器:R6为累加和寄存器。向甲机回答信为累加和寄存器。向甲机回答信息:息:0FH为接收正常,为接收正常,F0H为传送出错,为传送出错,00H为同意接收数为同意接收数据。据。是是06H?开始开始定时器、串行口初始化定时器、串行口初始化 置置DPTR、效验和、效验和R6初值初值 等待接收呼叫信号等待接收呼叫信号向甲机回送向甲机回送15H 向甲机回送向甲机回送00H 接收数据块长度接收数据块长度N 接收数据存外部接收数据存外部RAM 地址指针地址指针DPTR加加1 数据接收完?数据接收完?接收效验和接收效验和 传送正确吗?传送正确吗?向甲机回送向甲机回送F0H 向甲机回送向甲机回送0

    42、FH 返回返回NY图图5 28 双机通信乙机接收程序框图双机通信乙机接收程序框图YNY接收程序清单:接收程序清单:FMT-TS:MOV TMOD,#20H ;T1初始化模式初始化模式2 MOV TL1,#0E6H ;置计数初值;置计数初值 MOV TH1,#0E6H SETB TR1 ;启动;启动T1 MOV SCON,#50H ;串行方式;串行方式1,允许接收,允许接收 MOV PCON,#80H;SMOD=1,波特率加倍波特率加倍FMT-RAM:MOV DPH,31H ;置;置DPTR地址指针地址指针 MOV DPL,30H MOV R6,#00H ;效验和寄存器清零;效验和寄存器清零RX

    43、-ACK:JBC RI,IF-06H ;等待接收呼叫信号;等待接收呼叫信号 SJMP RX-ACKIF-06H:MOV A,SBUF ;判呼叫信号有误?;判呼叫信号有误?CJNE A,#06H,TX-15HTX-00H:MOV A,#00H;向甲机回送同意接收信号;向甲机回送同意接收信号 MOV SBUF,A WAIT1:JBC TI,RX-BYTES;等待回送信号发送完;等待回送信号发送完 SJMP WAIT1 TX-15H:MOV A,#15H ;向甲机回送接收信号不正确;向甲机回送接收信号不正确 MOV SBUF,A WAIT2:JBC TI,HAVE1;等待不正确信号发送完;等待不正确

    44、信号发送完 SJMP WAIT2HAVE1:LJMP RX-ACK;返回接收呼叫信号状态;返回接收呼叫信号状态RX-BYTES:JBC RI,HAVE2;接收数据块长度;接收数据块长度 SJMP RX-BYTESHAVE2:MOV A,SBUF;给长度寄存器赋值;给长度寄存器赋值 MOV R7,A MOV R6,A ;形成累加和;形成累加和RX-NEWS:JBC RI,HAVE3;接收数据;接收数据 SJMP RX-NEWSHAVE3:MOV A,SBUF;接收数据并存入外部;接收数据并存入外部RAM中中 MOVX DPTR,A INC DPTR ;修改地址指针;修改地址指针 ADD A,R6

    45、;形成累加和;形成累加和 MOV R6,A DJNZ R7,RX-NEWS ;判数据接收完否?;判数据接收完否?RX-SUM:JBC RI,HAVE4;接收效验和;接收效验和 SJMP RX-SUMHAVE4:MOV A,SBUF ;判传送是否正确;判传送是否正确(SBUF)CJNE A,R6,TX-ERR TX-RIGHT:MOV A,#0FH ;向甲机应答传送正确;向甲机应答传送正确 MOV SBUF,AWAIT3:JBC TI,GOOD;正确返回;正确返回 SJMP WAIT3TX-ERR:MOV A,#0F0H;向甲机应答传送错误;向甲机应答传送错误 MOV SBUF,AWAIT4:J

    46、BC TI,AGAIN SJMP WAIT4AGAIN:LJMP FMT-RAM;返回重新接收数据状态;返回重新接收数据状态GOOD:RET;返回被调用主程序;返回被调用主程序 3、通信程序的调试及故障排除、通信程序的调试及故障排除 串行口通信程序调试,串行口通信程序调试,只有当通信双方的硬件和软只有当通信双方的硬件和软件都正确无误时,才能实现成功通信。件都正确无误时,才能实现成功通信。如果调试中出如果调试中出现问题,现问题,首先首先应考虑应考虑硬件故障硬件故障,其表现是:通信线路,其表现是:通信线路中的中的芯片损坏,接触不良芯片损坏,接触不良等。等。为了迅速准确查明故障为了迅速准确查明故障点

    47、,可编制一测试小程序,如编一个连续发送字符串点,可编制一测试小程序,如编一个连续发送字符串“MCS-51Microcomputer”的程序,在该程序中不的程序,在该程序中不安排接收对方的回答信息,分别在通信的双方单独运安排接收对方的回答信息,分别在通信的双方单独运行行。程序如下:。程序如下:TSIO:MOV TMOD,#20H;T1模式模式2,fosc=11.059MHz MOV TL1,#0E8H;1200波特率波特率 MOV TH1,#0E8H MOV SCON,#042H ;串行口方式;串行口方式1,TI=1 SETB TR1 ;启动;启动T1TS04:MOV R4,#00H ;从首字符

    48、开始;从首字符开始 MOV DPTR,#ASAB ;查串行口输出表中字符串;查串行口输出表中字符串TS01:MOV A,R4 MOVC A,A+DPTR JZ TS04;字符串发送完重发,结束符;字符串发送完重发,结束符TS03:JBC TI,TS02 ;为;为00H SJMP TS03TS02:MOV SBUF,A;发送串中字符;发送串中字符 INC R4;修改表中指针;修改表中指针 SJMP TS01ASAB:DB MCS 51Microcomputer;字符串表;字符串表 DB 0AH,0DH,00H 此时用此时用示波器可观察接收方一端(示波器可观察接收方一端(RXD)引脚的信号波)引脚

    49、的信号波形,若观察不到,即可断定此通路存在问题形,若观察不到,即可断定此通路存在问题。这时仍用示波。这时仍用示波器逐一观察各连接点、芯片输入器逐一观察各连接点、芯片输入/输出各端点的波形,从而可输出各端点的波形,从而可迅速故障定位。迅速故障定位。对于对于软故障软故障,主要考虑,主要考虑程序的容错性程序的容错性。如前面介绍的收、。如前面介绍的收、发程序实例,如果发程序实例,如果发方发方比比收方收方先运行程序,则先运行程序,则发方发方将会因等将会因等不到收方的回答信号而不到收方的回答信号而陷于死循环陷于死循环;而;而收方收方因丢失发方发过因丢失发方发过来的呼叫信号也将来的呼叫信号也将陷于等待陷于等

    50、待。解决此类问题的办法是解决此类问题的办法是在发送程在发送程序中,凡在需等待对方回答的地方,都适当延时序中,凡在需等待对方回答的地方,都适当延时,一旦超过,一旦超过一定时间,就返回重新呼叫,直至接通联系为止。一定时间,就返回重新呼叫,直至接通联系为止。505.4.3 MCS-51串行通信工作方式及应用三三)方式方式2 2和方式和方式3 3在方式在方式2下,字符还是下,字符还是8个数据位,只不过个数据位,只不过增加了一个增加了一个第第9数据位(数据位(D8),而且其),而且其功能由用户确定功能由用户确定,是一个,是一个可编程位。可编程位。起始D0D1D2D3D4D5D6D7D8停止方式方式2 方

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:串行接口及其串行通信课件.ppt
    链接地址:https://www.163wenku.com/p-4345910.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库