第4次《单片机原理与应用》-串行通信.pptVIP

  • 12
  • 0
  • 约1.34万字
  • 约 48页
  • 2017-09-18 发布于江西
  • 举报

第4次《单片机原理与应用》-串行通信.ppt

因通信时(有干扰)信号要衰减,所以常采用RS232电平负逻辑,拉开“0”和“1”的电压档次,以免信息出错: 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0) 数据格式:按不同方式,一帧数据位数 8/10/11 发送/接收时,数据皆低位在前。 一、串行接口控制: 1.数据缓冲器SBUF: 发送SBUF和接收SBUF共用一个地址99H。 1)发送SBUF存放待发送的8位数据,写入SBUF将同时 启动发送。发送指令: MOV SBUF,A 2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令: MOV A,SBUF 串行通信工作方式 (1)方式0:同步移位寄存器方式 用于扩展并行I/O接口。 1. 一帧8位,无起始位和停止位。 2. RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。 3. 波特率B=fosc/12 如:fosc=12MHz,B=1MHz,每位数据占1?s。 4. 发送过程:写入SBUF,启动发送, 一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收, 一帧接收完毕,RI=1。 (2) 方式1:8位数据异步通讯方式 1. 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2. RXD:接收数据端。 TXD:发送数据端。 3.波特率:用T1作为波特率发生器, B=(2SMOD/32)×T1溢出率。 4.发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。 接收完一帧,若RI=0且停止位为1 (或SM2=0),将接 收数据装入SBUF,停止位装入RB8,并使RI=1; 否则丢弃接收数据,不置位RI。 (3) 方式2和方式3: 9位数据异步通讯方式 1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。 第9位数据位在TB8/RB8中,常用作校验位和多机通讯 标识位。 2. RXD:接收数据端, TXD:发送数据端。 3.波特率:方式2:B=(2SMOD/64)×fosc 。 方式3:B=(2SMOD/32)×T1溢出率 。 4.发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。 接收:REN=1,允许接收。 接收完一帧,若RI=0且第9位为1 (或SM2=0),将接收数据 装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据, 不置位RI。 (4)计算波特率: 方式0为固定波特率:B=fosc/12 方式2可选两种波特率: B=(2SMOD /64)×fosc 方式1、3为可变波特率,用T1作波特率发生器。 B=(2SMOD/32)×T1溢出率 T1为方式2的时间常数: X = 28 - t/T 溢出时间: t= (28 -X)T = (28 -X)×12/ fosc T1溢出率=1/t= fosc /[12×(2n -X)] ? 波特率B=(2SMOD /32)×fosc/[12×(28-X)] 串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。 T1选方式2: TH1= X = 28 - fosc/12×2SMOD/(32×B) T1选方式1用于低波特率,需考虑T1重装时间常数时间。 也可选工作方式3。 4种方式比较: 串行口的应用 串行口初始化编程格式: SIO:MOV SCON,#控制状态字;写方式字且I=RI=0 ( MOV PCON,#80H ) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器 ( MOV TH1,#X ) ;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES) 发送程序: 1、查询方式: TRAM: MOV A,@R0 ;取数据 MOV SBUF,A ;发送一个字符 WAIT: JBC TI,NEXT ;等待发送结束 SJMP WAIT NEXT: CLR TI INC R0 ;准备下一次发送

文档评论(0)

1亿VIP精品文档

相关文档