单片微机原理及应用课k件_第5章_mcs-51的片内接口.pptVIP

  • 2
  • 0
  • 约1.68万字
  • 约 71页
  • 2016-11-29 发布于湖南
  • 举报

单片微机原理及应用课k件_第5章_mcs-51的片内接口.ppt

单片微机原理及应用课k件_第5章_mcs-51的片内接口

二、MCS-51机串行接口 单片机内有通用异步接收/发送器 UART。 全双工,4种工作方式,波特率可编程设置,可中断。 1、串口的组成 从编程角度讲来看主要由以下寄存器组成。 SBUF—— 串行发送 / 接收数据缓冲器 是两个物理单元,共用一个地址(99H) SMOD PCON—— 电源管理寄存器 SMOD位用于决定波特率的倍数。 0 20 = 1倍 1 21 = 2倍 SCON—— 串行口控制寄存器 SM0 SM1 SM2 REN TB8 RB8 TI RI TI / RI :中断请求标志位(前面已讲过) RB8:接收的第九位数 TB8:发送的第九位数 REN:允许接收控制位 SM2:多机通信控制位(常与RB8配合,决定是否激活RI) SM0、SM1:工作方式选择位(四种工作方式) 2、串行口的工作方式 (1)方式0:同步移位寄存器方式 波特率固定为fosc / 12 RXD —— 接收发送数据 TXD —— 产生同步移位脉冲 接收/发送完,置位RI / TI ,(要求SM2 = 0) D7 D6 D5 D4 D3 D2 D1 D0 D0 D1 D2 D3 D4 D5 D6 D7 发送 接收 无起始位,无停止位 。可用于并口的扩展。 (2)方式1:8位UART 波特率为(2SMOD×T1的溢出率)/ 32 ,可变。 一帧信息10位。 D0 D1 D2 D3 D4 D5 D6 D7 停止位 起始位 发送 D7 D6 D5 D4 D3 D2 D1 D0 起始位 停止位 接收 送 RB8 发送完置位TI。 当接收到数据后,置位RI是有条件的。即: REN = 1,RI = 0 且SM2 = 0或SM2 = 1但是接收到的停止位为1。 此时,数据装载SBUF, RI置1 ,停止位进入RB8。 (3)方式2、方式3 :9位UART 一般用于多机通信。一帧信息11位。 D0 D1 D2 D3 D4 D5 D6 D7 TB8 停止位 起始位 发送 发送完数据置位TI。 TB8 D7 D6 D5 D4 D3 D2 D1 D0 起始位 停止位 接收 接收到有效数据完毕,置位RI的条件: REN = 1,RI = 0 且SM2 = 0或接收到第9位数据为1, 此时,数据装载SBUF,RI置1,第9位数据(TB8) RB8。 送RB8 方式2波特率:(固定)2SMOD / 64 × fosc 3、波特率的设置 方式0、方式2固定。 方式1,方式3可变。波特率 = 2SMOD / 32 ×(T1的溢出率) ?T1溢出率 = 单位时间内溢出次数 = 1 /(T1的定时时间) 而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。 N = 28- t / T, t = (28-N)T =(28-N)×12 / fosc 所以,T1溢出率 = 1/t = fosc / 12(28-N), 故, 波特率 = 2SMOD / 32 × fosc / 12(256-N)。 若已知波特率,则可求出T1的计数初值: y = 256-2SMOD×fosc / (波特率×32×12) 巩固新课: 例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。 解:X= 256-2SMOD×fosc / (2400×32×12)= 242.98≈243 = F3H fosc = 11.0592MHz,波特率为2400,设SMOD = 0,则 X = F4H 。 初始化编程: MOV TMOD,#20H MOV PCON,#80H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1

文档评论(0)

1亿VIP精品文档

相关文档