CH7-单片机的串行口.ppt_第1页
CH7-单片机的串行口.ppt_第2页
CH7-单片机的串行口.ppt_第3页
CH7-单片机的串行口.ppt_第4页
CH7-单片机的串行口.ppt_第5页
已阅读5页,还剩33页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 MCS-51串行通信,教学目的 了解串行通信基本概念。 了解UART的特点及应用。 掌握用串行口特殊功能寄存器的应用。 学会设计典型的串口通讯程序。 学习重点和难点 工作方式的选择。 波特率计算,第7章 MCS-51串行通信,7.1 串行通信的基本概念 7.2 串行口结构及特殊功能寄存器 7.3 串行口的 4 种工作模式 7.4 波特率 7.5 串行口的应用,7.1 串行通信的基本概念,计算机与外界信息交换称为通信。 通信的基本方式可分为并行通信和串行通信: 并行通信是数据的各位同时发送或同时接收; 优点:传送速度快 缺点:不便长距离传送 串行通信是数据的各位依次逐位发送或接收。 优点

2、:便于长距离传送 缺点:传送速度较慢,串行通信的基本特征是数据逐位顺序进行传送。 格式及约定内容包括:同步方式、通讯速率、数据块格式、信号电平等。常见的协议与接口标准有: 通用异步收发器(UART)MCS51内置通信接口 通用串行总线(USB) I2C总线 CAN总线 SPI总线 RS-485,RS-232C,RS422标准等等,7.1 串行通信的基本概念,串行异步通信是单片机中常用的通信方式: 数据按帧传输,一帧数据包含起始位、数据位、校验位和停止位。 依靠起始位、停止位保持通信同步。 因每帧传输都要建立一次同步,即需要额外两个附加位,适用于工作速度较低的场合。,一、串行异步通信,二、串行同

3、步通信,串行同步通信由12个同步字符和多字节数据位组成 依靠同步字符作为起始位以触发同步时钟开始发送或接收数据; 多字节数据之间不允许有空隙,每位占用的时间相等; 空闲位需发送同步字符。 同步通信传输速度较快,但要求有准确的时钟来实现收发双方的严格同步,对硬件要求较高,适用于成批数据传送。,波特率的倒数即为每位传输所需的时间。 相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。,三、串行通信波特率,波特率:每秒传输数据的位数,即:,1波特 = 1位/秒(1bps),四、串行通信的制式单工制式(Simplex),单工制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定

4、。,半双工制式是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。,四、串行通信的制式半双工制式(Half Duplex),全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。,四、串行通信的制式全双工制式(Full Duplex),7.2 MCS-51串行口结构,1、SFR串行数据缓冲器SBUF,在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器

5、,另一个是接收缓冲寄存器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。接收寄存器是双缓冲的, 以避免两帧数据重叠。 MOV SBUF,A 启动一次数据发送 MOV A,SBUF 完成一次数据接收,2、SFR串行控制寄存器SCON, SM0 SM1 串行口工作方式选择位。 SM2 多机通信控制位。 REN 允许接收控制位。REN=1,允许接收。 TB8 方式2和方式3中要发送的第9位数据。 RB8 方式2和方式3中要接收的第9位数据。 TI 发送中断标志。 RI 接收中断标志。,

6、SM0 SM1串行口工作方式选择位, SM2多机通信控制位。在方式2和方式3中,若SM2=1,且RB8(接收到的第9位数据)=1时,将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则,将接收到的8位数据丢弃。而当SM2=0时,则不论第9位数据为0还是为1,都将前8位数据装入 SBUF中,并产生中断请求。 在方式0时,SM2必须为0。,REN 允许接收控制位。REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。 TB8 方式2和方式3中要发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0表示数据

7、,TB8=1表示地址。该位由软件置位或复位。 TB8还可用于奇偶校验位。 RB8方式2或方式3时,RB8存放接收到的第9位数据。 TI 发送中断标志。当方式0时,发送完第8位数据后,该位由硬件置1。在其他方式下,遇发送停止位时,该位由硬件置1,表示帧发送结束。 RI 接收中断标志。当方式0时,接收完第8位数据后,该位由硬件置1。在其他方式下,当接收到停止位时,该位由硬件置1,表示帧接收结束。 接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对 RI/TI 清0,以备下一次收/发。,3、 SFR电源控制寄存器PCON,SMOD=1,串行口波特率加倍。PCON寄存器不能进

8、行位寻址。 在串行口工作方式 1、2、3 中,是波特率加倍位 =1 时,波特率加倍 =0 时,波特率不加倍。 (在PCON中只有这一个位与串口有关),RXD(P3.0)端为数据线,TXD(P3.1)输出时钟线。 移位数据的发送和接收以8位为一帧,不设起始位和停止位,无论输入/输出,均低位在前高位在后。 波特率为单片机晶振频率的十二分之一。即一个机器周期进行一次移位。 其帧格式为:,方式0可将串行输入输出数据转换成并行输入输出数据。,7.3 串行口工作方式方式0,同步移位寄存器工作方式, 数据发送,在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移入74LS164的A、B端。当8位数据

9、全部移出后,SCON寄存器的TI位被自动置1。其后74HC164的内容即可并行输出。 74LS164 CLR为清0端,输出时CLR必须为1,否则74LS164 Q0Q7输出为0。,(2) 数据接收,74LS165 S/L端为移位/置入端,当S/L=0时,从Q0Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数据D7后,置位中断标志RI,表示一帧数据接收完成。,波特率可变, 它取决于定时器 T1 的溢出速率及SMOD的状态。 数据位由 P3.0 (RXD)端接收, 由P

10、3.1(TXD)端发送。 (1) 发送过程。用软件清除 TI后, CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。 一帧信号发送完时, 将置位发送中断标志TI=1, 向CPU申请中断, 完成一次发送过程。 (2) 接收过程。 用软件清除 RI后, 允许接收位REN被置 1。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件则RI置1: RI=0; 接收到的停止位为1 或SM2=0。,7.3 串行口工作方式方式1,异步串行通信方式,方式 2 和 3时, 被定义为9 位异步通信接口。其

11、中可编程位TB8/RB8既可作奇偶校验位用,也可作控制位(多机通信)用,其功能由用户确定。 模式2 和模式3 工作原理相似, 唯一的差别是模式2 的波特率是固定的, 即为 fosc / 32或 fosc / 64; 而模式 3的波特率是可变的, 与定时器 T1的溢出率有关。 SM2=1时,只接收地址帧(第9位为1,即RB8=1),而拒绝接收数据帧(第9位为0,即RB8=0)。 SM2=0时,接收所有信息。,7.3 串行口工作方式方式2/3,异步串行通信方式,7.3 串行口工作方式方式2/3,异步串行通信方式,(1)发送过程:执行任何一条 SBUF为目的寄存器的指令启动。 TB8由软件置位或清零

12、, 作为多机通信中的地址、数据标志位。或作为数据的奇偶校验位, 在数据写入 SBUF之前, 先将数据位写入TB8。 (2) 接收过程。 UART把 8 位数据装入接收缓冲器 SBUF, 第 9 位数据装入SCON中的 RB8, 并置中断标志RI=1。 上述接收需满足下列两个条件, 才会产生: RI=0; SM2 =0 或SM2=1,接收到的第 9 位数据为“1”。,7.4 波特率设置,(1)方式 0 的波特率等于晶振频率的1/12, 即每个机器周期接收或发送一位数据。 (2)方式 2 的波特率与电源控制器PCON的最高位SMOD的写入值有关: SMOD=0, 波特率为(1/64)fosc; S

13、MOD=1, 波特率为(1/32)fosc。 (3) 方式 1 和方式 3 的波特率除了与SMOD位有关之外, 还与定时器 T1 的溢出率有关。,定时器 T1 作为波特率发生器, 常选用定时方式2(8 位重装载初值方式), 并且禁止T1中断。此时 TL1 从初值(TH1)计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是,7.4 波特率设置,假设某MCS - 51 单片机系统, 串行口工作于方式 1或3, 要求波特率为1200bps, 作为波特率发生器的定时器T1工作在方式 2 时, 请求出计数初值,并分析误差。 设单片机的振荡频率为6 MHz。 根据波特率公式,知,7.4 波特率设置,当

14、SMOD=0 时,7.4 波特率设置,当SMOD=1 时,7.4 波特率设置,表 定时器T1产生的常用波特率,7.5 串行口的应用,例1 用 8051 串行口外接 74LS165 移位寄存器扩展8位输入口, 输入数据由 8 个开关提供, 另有一个开关K提供联络信号。当开关K合上,表示要求输入数据。输入 8 位开关量, 处理不同的程序。,程序如下: START: JB P1.0, $ ;开关K未合上, 等待 CLR P1.1 ;165并行输入数据 SETB P1.1 ;开始串行移位 MOV SCON, #10H ; 模式0并启动接收 JNB RI, $ ; 查询RI CLR RI ; 查询结束,

15、 清RI MOV A, SBUF ; 输入数据 . ; 根据A处理不同任务 SJMP START ; 准备下一次接收。,例1:电路如图所示,试编制程序按下列顺序要求每隔0.5秒循环操作。, 8个发光二极管全部点亮; 从左向右依次暗灭,每次减少一个,直至全灭; 从左向右依次点亮, 每次亮一个; 从右向左依次点亮,每次亮一个; 从左向右依次点亮,每次增加一个,直至全部点亮; 返回从不断循环。,LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行中断 MOV DPTR,#TAB ;置发光二极管亮暗控制字表首址 LP1: MOV R7,#0 ;置顺序编号0 LP2: MOV

16、 A,R7 ;读顺序编号 MOVC A,A+DPTR ;读控制字 CLR P1.0 ;关闭并行输出,STR=O时,关闭并行输出; MOV SBUF,A ;启动串行发送 JNB TI,$ ;等待发送完毕 CLR TI ;清发送中断标志 SETB P1.0 ;开启并行输出,STR=1时,开启并行输出; LCALL DLY500ms ;调用延时0.5秒子程序(参阅例4-13) INC R7 ;指向下一控制字 CJNE R7,#30,LP2 ;判循环操作完否?未完继续 SJMP LP1 ;顺序编号029依次操作完毕,从0开始重新循环 TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,0

17、3H,01H,00H;从左向右全亮并依次暗灭,直至全灭; DB 80H,40H,20H,10H,08H,04H,02H,01H;从左向右依次点亮,每次亮一个 DB 02H,04H,08H,10H,20H,40H,80H;从右向左依次点亮,每次亮一个 DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH ;从左向右依次点亮, 直至全部点亮;,例 3 利用串行口进行双机通信。,要求: (1)采用模式2,带奇偶校验位传输。 (2)采用模式1,波特率2400bps,8位数据传输(fosc=12MHz)。,甲机发送(采用查询方式): MOV SCON, 80H ; 设置工作方式2 MOV P

18、CON, 00; 置SMOD=0, 波特率不加倍 MOV R0, 40H ; 数据区地址指针 MOVR2, 10H ; 数据长度 LP: MOV A, R0 ; 取发送数据 MOV C, P ; 奇偶位送TB8 MOVTB8, C MOV SBUF, A ; 送串口并开始发送数据 WT: JBCTI, NXT ; 检测是否发送结束并清TI SJMP WT NXT: INC R0; 修改发送数据地址指针 DJNZR2, LP RET,乙机接收(查询方式): MOV SCON, 90H; 模式2, 并允许接收REN=1,SM2=0 MOV PCON,00H; 置SMOD=0 MOV R0, 60H

19、 ; 置数据区地址指针 MOV R2, 10H ; 等待接收数据长度 LP: JBC RI, RD ; 等待接收数据并清RI SJMP LP RD: MOV A, SBUF ; 读一帧数据 MOV C, P JNC LP0 ; C=0 转LP0 JNB RB8, ERR ; RB8=0, 即 RB8不为 P转ERR AJMP LP1 LP0: JB RB8, ERR ; RB8=1, 即 RB8不为 P转ERR LP1: MOV R0, A ; RB8=P, 接收一帧数据 INC R0 DJNZ R2, LOOP RET ERR: ; 出错处理程序 ,甲机发送(采用查询方式): MOV SCON,40H ; 设置工作方式1 MOV PCON,80H ; 置SMOD=1, 波特率加倍 MOV TMOD,#20H ;T1模式2 MOV TH1,#0F3H ;2400BPS MOV TL1,#0F3H MOV R0, 40H ; 数据区地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论