第5章 单片机串口的设计.ppt_第1页
第5章 单片机串口的设计.ppt_第2页
第5章 单片机串口的设计.ppt_第3页
第5章 单片机串口的设计.ppt_第4页
第5章 单片机串口的设计.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、5.1 通信相关的概念,1.什么叫通信,通信就是使用特定的设备通过一定的媒介将消息从一个地方传送到另一地方。并使接收者能够读懂发来的消息。,发送设备,信道,发送设备,(1)串行通信:数据一位一位顺序发送或接收。特点是传送速度慢,但成本低。适用于较长距离传送数据。计算机与外界的数据传送一般均采用串行方式。,2.通信方式,(2)并行通信:数据的各位同时发送或接收。特点是传送速度快、效率高,但成本高。适用于短距离传送数据。计算机内部的数据传送一般均采用并行方式。,3.数据通信的制式,(1)单工方式:数据仅按一个固定方向传送;比如BB机。广播电台。 (2)半双工方式:数据可实现双向传送,但不能同时进行

2、;如对讲机 (3)全双工方式:允许双方同时进行数据双向传送;电话和手机。 (4)多工方式:在同一线路上实现资源共享。,(1)同步方式:以数据块为单位进行数据传送,包括同步字符、数据块和校验字符CRC。优点是数据传输速率较高,缺点是要求发送时钟和接收时钟保持严格同步。数据格式如下图所示。,4.串行通信的分类,(2)异步方式:以字符为单位进行数据传送,每一个字符均按固定的字符格式传送,又被称为帧。优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。 数据格式如下图所示:,5. 串行数据通信的波特率,波特率是指每秒钟传送信号(码元)的数量

3、,单位为波特(Baud)。而每秒钟传送二进制数的信号数(即二进制数的位数)定义为比特率,单位是bps(bit per second)或写成b/s(位/秒)。 在单片机串行通信中,传送的信号是二进制信号,波特率与比特率数值上相等。单位采用bps。 例如,异步串行通信的数据传送的速率是120字符/秒,而每个字符规定包含10位数字,则传输波特率为: 120字符/秒 10位/字符=1200位/秒= 1200bps,5.2 MCS-51的串行口,学习目标: 1、 2、 3、 4、 5、,1串行口寄存器结构 (1)两个物理上独立的同名的接收/发送缓冲寄存器SBUF,指令 MOV SBUF,A 启动一次数据

4、发送, 指令 MOV A,SBUF 完成一次数据接收, 即向发送缓冲器SBUF写入数据即可发送数据,从接收缓冲器SBUF读出数据即可接收数据。 (2)输入和输出移位寄存器和控制器等组成。 (3)2个SFR寄存器SCON和PCON,用于串行口的初始化编程。 (4)接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对 RI/TI 清0,以备下一次收/发。,MCS-51串行口的结构如下图所示:,2. 串行通信控制寄存器SCON,SM0SM1:串行口工作方式控制位。 =00:方式0,8位同步移位寄存器,Baud为fosc/12; =01:方式1,10位UART,其Baud为可变

5、,由定时器控制; =10:方式2,11位UART,其Baud为fosc/64或fosc/32; =11:方式3,11位UART,其Baud为可变,由定时器控制。 其中:fosc为系统晶振频率。,SM2:串行口多机通信控制位,作为方式2、方式3的附加控制位。,RB8:在方式2、3中,用于存放收到的第9位数据;在双机通信中,作为奇偶校验;在多机通信中,用作区别地址帧/数据帧的标志。 TB8:方式2、3中,是要发送的第9位数据;在双机通信中,用于对接收到的数据进行奇偶校验;在多机通信中,用作判断地址帧/数据帧,TB8=0 表示发送的是数据,TB8=1 表示发送的是地址。 REN:串行口接收允许控制位

6、 = 1: 表示允许接收; = 0: 禁止接收。,RI,TI:串行口收/发数据申请中断标志位 1 申请中断; 0 不申请中断。,3. 中断允许寄存器IE(0A8H),中断允许寄存器IE在3.2.2节中已介绍。其中对串行口有影响的位ES。ES为串行中断允许控制位。 ES=1:允许串行中断; ES=0:禁止串行中断。,4. 电源管理寄存器PCON(87H) 不可位寻址。 PCON主要用于实现电源控制而设置的专用寄存器,已在1.3.3节中介绍过。其格式如下图所示。,SMOD:串行口波特率倍增位 =1:串行口波特率加倍。 =0:串行口波特率不变,系统复位时默认为SMOD=0。,5. 串行口的工作方式,

7、(1) 工作方式0( 8位移位寄存器I/O方式) 发送/接收过程:SBUF中的串行数据由RxD逐位移出/移入(低位在先,高位在后);TxD输出移位时钟,频率=fosc1/12;每送出/接收8位数据 TI/ RI自动置1;需要用软件清零 TI/ RI 。 注意:串行口在方式0下的工作并非是一种同步通信方式,经常配合“串入并出”“并入串出”移位寄存器一起使用,以达到扩展一个并行口的目的。 扩展电路如下图所示。,如要发送数据,查询方式的程序如下: MOV SCON,#00H ;串行口方式0 MOV SBUF,A ;将数据送出 JNB TI,$ ;等待数据发送完毕 CLR TI ;为下次发送作准备 注

8、意:复位时,SCON 已经被清零,缺省值为方式0。 发送条件:TI=0。 接收条件:TI=0,置位 REN=1 (允许接收数据)。,(2)方式1 (波特率可变的10位异步通信方式 ),发送/接收数据的格式:一帧信息包括1个起始位0,8个数据位和1个停止位1。 发送/接收过程:SBUF中的串行数据由RXD逐位移出/移入;TXD输出移位时钟,频率= (2SMOD/32)T1的溢出率,波特率可变。每送出/接收8位数据 TI/ RI自动置1;需要用软件清零 TI/ RI 。工作时,发送端自动添加一个起始位和一个停止位;接收端自动去掉一个起始位和一个停止位。 发送/接收条件:同方式0。,(3)方式2(固

9、定波特率的11位异步接收/发送方式),发送/接收过程:方式2的接收/发送过程类似于方式1,所不同的是它比方式1增加了一位“第9位”数据(TB8/RB8),用于“奇偶校验”。方式2常用于单片机间通信。波特率 = fosc 2SMOD/64 。 发送/接收条件:同方式0。,方式3和方式2唯一的区别是波特率机制不同,方式3的波特率=(2SMOD/32)T1的溢出率。,(4) 方式3(可变波特率的11位异步接收/发送方式),(5)串行通信的校验码,奇偶校验:奇偶校验是检验串行通信双方传输的数据正确与否的一个措施,并不能保证通信数据的传输一定正确。即如果奇偶校验发生错误,表明数据传输一定出错了;如果奇偶

10、校验没有出错,绝不等于数据传输完全正确。 奇校验规定:8位有效数据连同1位附加位中,二进制“1”的个数为奇数。 偶校验规定:8位有效数据连同1位附加位中,二进制“1”的个数为偶数。,约定发送采用奇校验:若发送的8位有效数据中“1”的个数为偶数,则要人为在附加位中添加一个“1”一起发送;若发送的8位有效数据中“1”的个数为奇数,则要人为在附加位中添加一个“0”一起发送。 约定接收采用奇校验:若接收到的9位数据中“1”的个数为奇数,则表明接收正确,取出8位有效数据即可;若接收到的9位数据中“1”的个数为偶数,则表明接收出错!应当进行出错处理。 采用偶校验时,处理方法与奇校验类似。,6. 串行口的通

11、信波特率,串行口的通信波特率恰到好处地反映了串行传输数据的速率。在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率(T1溢出信号的频率)控制。各种方式的通信波特率如下: 方式0:波特率固定为fosc/12。 其中:fosc系统主机晶振频率 方式2:波特率由PCON中的选择位SMOD来决定,可由下式表示: 波特率=(2SMOD/64)fosc,方式1和方式3:波特率是可变的,由定时器T1的溢出率控制。波特率为: 波特率=(2SMOD/32)定时器T1溢出率 T1溢出率=T1计数率/产生溢出所需的周期 = (fosc/12)/(2K

12、TC) 其中:K定时器T1的位数,定时器T1用作波特率发生器时,通常工作在方式2, 所以T1的溢出所需的周期数= 28TC。 TC定时器T1的预置初值。,下表列出了定时器T1工作于方式2的常用波特率及初值。,7. 串行口的应用,(1)串口方式0应用编程 例 用8051串行口外接CD4094扩展8位并行输出口,8位并行口的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。 解:硬件连接电路如下图所示。,在开始通信之前,应先对控制寄存器SCON进行初始化。将00H送SCON即设置方式0。数据传送采用查询方式,通过查询TI的状态,来决定是否发送下一帧数据。在串行接收时,通过对RI查询来

13、确定何时接收下一帧数据。程序如下: ORG 1000H START: MOV SCON, #00H; 置串行口工作方式0 MOV A, #80H ; 最高位灯先亮 CLR P1.0 ; 关闭并行输出 OUT0: MOV SBUF, A ; 开始串行输出 OUT1: JNB TI, OUT1; 输出完否?未完,等待 CLR TI ; 完了,清TI标志,以备下次发送,SETB P1.0; 打开并行口输出 ACALL DELAY; 延时一段时间 RR A ; 循环右移 CLR P1.0; 关闭并行输出 SJMP OUT0 ; 循环 DELAY: MOV R7, #250 ; 延时子程序 D1: MO

14、V R6, #250 D2: DJNZ R6, D2 DJNZ R7, D1 RET END,(2)双机通信 双机通信的硬件连接图如下图所示。,通信协议如下: 设1号机是发送方,2号机是接收方。采用串行口方式1进行通信,一帧信息为10位,其中有1个起始位、8个数据位和1个停止位;波特率为2400bps,T1工作在定时器方式2,单片机时钟振荡频率选用11.0 592MHz,查表3.4.3可得TH1=TL1=0F4H,PCON寄存器的SMOD位为0。 当1号机发送时,先发送一个“E1”联络信号,2号机收到后回答一个“E2”应答信号,表示同意接收。当1号机收到应答信号“E2”后,开始发送数据,每发送

15、一个字节数据都要计算“校验和”,假定数据块长度为16个字节,起始地址为40H,一个数据块发送完毕后立即发送“校验和”。,2号机接收数据并转存到数据缓冲区,起始地址也为40H,每接收到一个字节数据便计算一次“校验和”,当收到一个数据块后,再接收1号机发来的“校验和”,并将它与2号机求出的校验和进行比较。若两者相等,说明接收正确,2号机回答00H;若两者不相等,说明接收不正确,2号机回答0FFH,请求重发。1号机接到00H后结束发送。若收到的答复非零,则重新发送数据一次。程序框图如下页图所示。,发送程序如下: ORG 1000H ASTART: CLR EA MOV TMOD, #20H; 定时器

16、1置为方式2 MOV TH1, #0F4H; 装载定时器初值,波特率2400 MOV TL1, #0F4H MOV PCON, #00H SETB TR1; 启动定时器 MOV SCON, #50H ; 设定串口方式1,且准备接收应答信号 ALOOP1: MOV SBUF, #0E1H ; 发联络信号 JNB TI, $; 等待一帧发送完毕 CLR TI ; 允许再发送 JNB RI, $; 等待2号机的应答信号 CLR RI ; 允许再接收 MOV A, SBUF ; 2号机应答后,读至A XRL A, #0E2H; 判断2号机是否准备完毕 JNZ ALOOP1; 2号机未准备好,继续联络,

17、ALOOP2: MOV R0, #40H; 2号机准备好,设定数据块地址指针初值 MOV R7, #10H; 设定数据块长度初值 MOV R6, #00H; 清校验和单元 ALOOP3: MOV SBUF, R0 ; 发送一个数据字节 MOV A, R6 ADD A, R0 ; 求校验和 MOV R6, A; 保存校验和 INC R0 JNB TI, $ CLR TI DJNZ R7, ALOOP3; 整个数据块是否发送完毕 MOV SBUF, R6; 发送校验和 JNB TI, $ CLR TI JNB RI, $; 等待2号机的应答信号 CLR RI MOV A, SBUF; 2号机应答,

18、读至A JNZ ALOOP2 ; 2号机应答“错误”,转重新发送 RET; 2号机应答“正确”,返回 END,接收程序如下: ORG 1000H BSTART: CLR EA MOV TMOD, #20H MOV TH1, #0F4H MO V TL1, #0F4H MOV PCON, #00H SETB TR1 MOV SCON, #50H; 设定串口方式1,且准备接收 BLOOP1: JNB RI, $ ; 等待1号机的联络信号 CLR RI MOV A, SBUF; 收到1号机信号 XRL A, #0E1H; 判断是否为1号机联络信号 JNZ BLOOP1 ; 不是1号机联络信号,再等待 MOV SBUF, #0E2H; 是1号机联络信号,发应答信号 JNB TI, $ CLR TI MOV R0, #40H ; 设定数据块地址指针初值 MOV R7, #10H ; 设定数据块长度初值 MOV R6, #00H; 清校验和单元,BL

温馨提示

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

评论

0/150

提交评论