1 / 22

二、串行口的四种工作方式

第七章 MCS-51 的串行口. 一、复习. 二、串行口的四种工作方式. 三 、 串行口的应用举例与实验六. 4 、串行通信工作方式. 方式 0 方式 0 时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由 RXD ( P3.0 )引脚输入或输出,同步移位脉冲由 TXD ( P3.1 )引脚输出。发送和接收均为 8 位数据, 低位 在先,高位在后。 波特率固定为 fosc/12 。 SM2 必为 0 。 ( 1 )方式 0 输出. ( 2 )方式 0 输入. 扩展并行输入或输出口. TI. 先发送低位示意图. 并出.

Download Presentation

二、串行口的四种工作方式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 MCS-51的串行口 一、复习 二、串行口的四种工作方式 三、 串行口的应用举例与实验六

  2. 4、串行通信工作方式 方式0 方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。 SM2必为0。 (1)方式0输出

  3. (2)方式0输入 扩展并行输入或输出口

  4. TI 先发送低位示意图 并出 RXD SBUF 74LS164 fosc/12 TXD MOV SBUF, A RI 先接收低位示意图 并入 RXD SBUF 74LS165 fosc/12 TXD MOV A , SBUF

  5. 方式1 方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。

  6. (1)方式1输出 (2)方式1输入

  7. 用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。

  8. 方式2和方式3 方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚 。 方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。

  9. (1)方式2和方式3输出 发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。 第一次移位时,停止位“1”移入输出移位寄存器的第9位上 ,以后每次移位,左边都移入0。当停止位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。

  10. (2)方式2和方式3输入 接收时,数据从右边移入输入移位寄存器。当位检测逻辑采样到RXD上的负跳变,便开始接收1帧数据。在接收完第九位数据后,满足下列条件,才能真正接收到1个字符。 当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。

  11. 1、串行口方式0的应用 80C51串行口的应用举例 方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。 74LS164可用于扩展并行输出口,74LS165可用于扩展输入口。 数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

  12. 补例7-1:用89C51串行口外接164串入——并出移位寄存器扩展8位并行口;8位并行口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。设发光二极管为共阴极接法,如图所示。补例7-1:用89C51串行口外接164串入——并出移位寄存器扩展8位并行口;8位并行口的每位都接一个发光二极管,要求发光二极管从左到右以一定延迟轮流显示,并不断循环。设发光二极管为共阴极接法,如图所示。 • 解:设数据串行发送采用中断方式,显示的延迟通过调用延迟程序DELAY来实现。 返回

  13. 中断方式程序清单: ORG 0023H ;串行口中断入口 AJMP SBR ;转入串行口中断服务程序 ORG 2000H ;主程序起始地址 MOV SCON ,#00H ;串行口方式0初始化 MOV IE,#10010000B MOV A ,#80H ;最左一位发光二极管先亮 CLR P1.0 ;关闭并行输出 SETB P1.0 ;启动并行输出 MOV SBUF,A ;开始串行输出 LOOP : SJMP $ ;等待中断 SBR : ACALL DELAY ;显示延迟一段时间 CLR TI ;清发送中断标志 RR A 准备右边一位显示 CLR P1.0 ;关闭并行输出 SETB P1.0 ;启动并行输出 MOV SBUF , A ;再一次串行输出 RETI ;中断返回

  14. 查询方式程序清单: ORG 2000H ;主程序起始地址 MOV SCON ,#00H ;串行口方式0初始化 MOV A ,#80H ;最左一位发光二极管先亮 LOOP1: CLR P1.0 SETB P1.0 MOV SBUF,A ;开始串行输出 LOOP : JNB TI, $ ;等待中断 SBR : ;启动并行输出 ACALL DELAY ;显示延迟一段时间 CLR TI ;清发送中断标志 RR A ;准备右边一位显示 SJMP LOOP1

  15. 读图练习

  16. 解:设数据的发送不采用串行口,即用一段程序模拟串口方式0的操作,选择用P2.1传数据,P2.0传时钟。解:设数据的发送不采用串行口,即用一段程序模拟串口方式0的操作,选择用P2.1传数据,P2.0传时钟。 开 始 循环次数设置 取显示数据 数据码左移一位 送一位数据至P2.1 输出一个移位脉冲 够8次了? Y RET DOUT BIT P2.1 CLK BIT P2.0 DP12: MOV R2, #8 MOV A, @R0 DP13: RLC A MOV DOUT, C CLR CLK SETB CLK DJNZ R2, DP13 RET 先输出低位吗? 能改变吗?

  17. 读图练习--实验六的原理图

  18. 1、串行口方式0的应用 • 用方式0加上并入——串出移位寄存器可扩展一个8位并行输入口。移位寄存器必须带有预置/移位的控制端,由单片机的一个输出端子加以控制,以实现先由8位输入口置数到移位寄存器,然后再串行移位从单片机的串行口输入到接收缓冲器,最后再读入到CPU中。 返回

  19. 补例7-2:用89C51串行口外加移位寄存器165或166扩展8位输入口,输入数据由8个开关提供,另有一个开关K提供联络信号。当K=0时,表示要求输入数据,输入的8位为开关量,提供逻辑模拟子程序的输入信号。补例7-2:用89C51串行口外加移位寄存器165或166扩展8位输入口,输入数据由8个开关提供,另有一个开关K提供联络信号。当K=0时,表示要求输入数据,输入的8位为开关量,提供逻辑模拟子程序的输入信号。 • 74LS165读图所得:置数和移位由引脚shift控制,低为置数,高位移位。跨接在H上的开关量最先移出;而方式0的数据传送规则是低位在先,所以,最后移入SBUF中的数据为:A在最高位、H在最低位。

  20. PL被定义为移位/置数控制端:PL=1移位; PL=0异步置数 读图练习 0对应A;7对应H 这里才是D0

  21. PL BIT P1.0 ORG 00H START: CLR PL SETB PL ;发送移位脉冲 MOV SCON,#10H ;允许串行口接收数据 WAIT: JNB RI,WAIT MOV A,SBUF ;读取数据 CLR RI ;清除接收中断标志 MOV P0,A ;接收到的数据送P0口显示 ACALL DELAY SJMP START DELAY: MOV R4,#0FFH AA1: MOV R5,#0FFH AA: NOP NOP DJNZ R5,AA DJNZ R4,AA1 RET END

  22. 2009-11-10作业 • P157 8、11

More Related