第 8 章 单片机串行数据通信
Post on 21-Jan-2016
102 Views
Preview:
DESCRIPTION
TRANSCRIPT
武汉科技大学计算机学
院 第 8 章 单片机串行数据通信
8.1 串行通信基础知识
8.2 MCS-51单片机的串行口及控制寄存器
8.3 MCS-51单片机串行通信工作方式
武汉科技大学计算机学
院
8.1.1 串行通信基本知识
并行通信 串行通信
各位数据同时传送 各位数据逐位传送
数据线数目同传送数据位数
1 根
传送速度快 传送速度慢
适用于短距离(计算机内部)
适用于长距离(计算机之间、计算机与外部设备)
电路板、扁平带状电缆 双绞线、同轴电缆
武汉科技大学计算机学
院
串行通信是将数据的各位一位一位地依次传送,适合于计算机之间、计算机与外部设备之间的远距离通信。
串行通信的传送速率:每秒传送格式位的数目即波特率, 1 波特= 1bps (位 / 秒)
串行通信从传输方式分为:单工方式、半双工方式、全双工方式(如图 8-1 所示)。
从接收方式来说,串行通信有两种方式:异步通信方式(如图 8-2 所示)、同步通信方式(如图 8-3 所示)。
武汉科技大学计算机学
院
图 8-1 串行通讯的数据通路形式
武汉科技大学计算机学
院
图 8-2 异步串行通信数据格式
Mark : 逻辑“ 1” 状态 Space : 逻辑“ 0” 状态 ; 起始位:数据线处于 space 状态; 数据位:低位在前,高位在后,数据位可以是 5 ~ 8bit ; 奇偶位:奇偶位的值由发送方设置,接收方使用奇偶位检 查在传输过程中是否发生错误; 停止位:用以标志一个字符传送结束,处于 mark 状态,
位 数可以是 1 、 1.5 、 2 位。
Mark
Space
武汉科技大学计算机学
院
同步字符 CRC 字符
开始 终止
数据块
图 8-3 同步通信数据格式
武汉科技大学计算机学
院
异步串行通信信号形式
寄存器 串行接口TTL 电平
计算机 A
寄存器 串行接口TTL 电平
计算机 BRS-232 电平
图 8-4 近程串行通信
武汉科技大学计算机学
院
公用电话交换网Modem Modem
RS-232C接口 RS-232C接口
DTE
DCE
IBM Compatible
A
IBM Compatible
B
DTE
DCE
图 8-5 通过电话网实现远程连接
武汉科技大学计算机学
院 RS-232 是 PC 机与通信工业中应用最广泛的一种串
行接口。 RS-232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准。 RS-232 采取不平衡传输方式,即所谓单端通讯,其传送距离最大约为15 米,最高速率为 20kb/s 。 RS-232 是为点对点(即只用一对收、发设备)通讯而设计的。
8.1.2 RS-232总线标准
123:
RS-232C 链路
发送 接收
地微机 终端
123:
图 8-6 简单的 RS-232C 数据通讯
武汉科技大学计算机学
院
武汉科技大学计算机学
院
引脚号 符号 名称 说明
1 PGND 保护地 为了安全和大地相连,有时可不接
2 TXD 发送数据 从DTE到 DCE的数据线
3 RXD 接收数据 从DCE到 DTE的数据线
4 RTS 请求发送 当DTE希望在数据线上传递数据时由 DTE发出,DCE通过所得到的控制信号决定是否响应
5 CTS 允许发送 允许计算机发送数据时,则由DCE发出
6 DSR 数字置位就绪 当数据线已被接好后由DCE发出
7 SGND 信号地 作为信号地的公共回路
8 DCD 数据载波检测 当DCE已经从数据线上接收到信号时发出此信号
20 DTR 数字终端就绪 当DTE 已准备好和调制解调器交换数据时,由 DTE发出,使用公共通信网时才需要
22 RI 振铃指示 当正在进行通信时,由 DCE 发出,使用公共通信网时才需要
表格 8-1 微机中常用的RS-232C接口信号
武汉科技大学计算机学
院
8.2 MCS-51单片机的串行口及控制寄存器
1 ) UART :通用异步接收发送器。 包括发送器电路、接收器电路和控制电路; 功能包括数据的串行 / 反串行化、错误检验。
RS-232 总线
寄存器 串行接口 UART
并行数据
单片机 A
寄存器 串行接口 UART
并行数据
单片机 B
串行数据
武汉科技大学计算机学
院
2 ) SBUF :串行口寄存器。( 99H ) 发送寄存器:从片内总线向发送寄存器 SBUF 写入
数据,串行数据通过引脚 TXD ( P3.1 )送出; 接收寄存器:从接收寄存器 SBUF 向片内总线读出
数据,串行数据通过引脚 RXD ( P3.0 )引入;
武汉科技大学计算机学
院
3)串行控制寄存器 SCON 该寄存器的字节地址为 98H ,可位寻址。
SCON 格式如图 8-7 所示。
SCON
位地址
SM0 SM1 SM2 REN TB8 RB8 TI RI
9F 9E 9D 9C 9B 9A 99 98
图 8-7 SCON 格式
D7 D6 D5 D4 D3 D2 D1 D0
武汉科技大学计算机学
院
4 )电源控制寄存器 PCON 其字节地址为 87H ,没有位寻址功能。 PCON
的格式如图 8-8 所示,其中与串行接口有关的只有 D7 位。
PCON
SMOD
D7 D6 D5 D4 D3 D2 D1 D0
图 8-8 PCON 格式
武汉科技大学计算机学
院
图 8-9 IE 格式
D7 D6 D5 D4 D3 D2 D1 D0
5 )中断允许寄存器 IE IE 的格式如图 8-9 所示,与串行中断有关的是
EA 和 ES 。
位地址
位符号
0AFH 0ACH
EA ES
武汉科技大学计算机学
院8.3 MCS-51单片机串行通信工作方式
SM0 SM1
0 0
0 1
1 0
1 1
工作方式 功能描述 波特率
方式 0 同步移位寄存器 fosc/12
方式 1 10 位 UARS 可变
方式 2 11 位 UARS fosc/32 或 fosc/64
方式 3 11 位 UARS 可变
武汉科技大学计算机学
院
8.3.1 串行工作方式 1
方式 1 是 10 位异步串行通信方式,一帧数据包括 1 个起始位、 8 个数据位和 1 个停止位。
起始位
8 位数据位 停止位
D0 …… D7
起始位: space 状态(逻辑 0 );停止位: mark 状态(逻辑 1 )。
武汉科技大学计算机学
院
波特率的计算(定时器 1 工作在方式 2 ) 波特率= 2smod× (定时器 1 溢出率) /32
定时器 1 溢出率= 1/ 定时器 1 定时时间 2smod×fosc
32×12× ( 256 - X )波特率=
X=256 -fosc×2smod
384× 波特率
武汉科技大学计算机学
院
例 1 : 80C51 串行口在工作方式 1 下进行串行数据通信,波特率为 1200 ,发送数据存放在内部 RAM 从 34H开始的 10 个地址单元中,用定时器 1 作为波特率发生器,定时器 1 工作在方式 2 下,系统时钟频率为 6MHz 。
1 )设置定时器 1
TMOD=20H
X=0F3H 2 )设置串行口 smod = 0
PCON=00H
SCON=40H
武汉科技大学计算机学
院
设置定时器 1
设置串行口
禁止串行中断
启动定时器 1
向 SBUF 发送数据
TI=0?
TI 清 0
R1=3DH?
停止定时器 1
指向下一个地址
查询方式: MOV TMOD,#20H // 设置定时器 1
MOV TL1,#0F3HMOV TH1,#0F3H
MOV PCON,#00H // 设置串行口MOV SCON,#40H
MOV R1,#34H // 数据区地址
CLR ES // 禁止串行中断
SETB TR1 // 启动定时器 1
SOUT1: MOV A,@R1 // 向 SBUF 发送数据 MOV SBUF,A
SOUT2: JNB TI,$ // 查询数据是否已发送
CLR TI //TI 清 0
CJNE R1,#3DH,AEND // 判断数据是否发送完
CLR TR1 // 停止定时器 1
AEND: INC,R1 // 指向下一个地址单元 AJMP SOUT1
Y
YN
N
武汉科技大学计算机学
院
中断方式:主程序 MAIN :
设置定时器 1
设置串行口
允许串行中断
启动定时器 1
向 SBUF 发送数据
原地跳转
ORG 0000H
AJMP MAIN
ORG 0023H
AJMP SEND
ORG 8000HMOV TMOD,#20H // 设置定时器
1
MOV TL1,#0F3HMOV TH1,#0F3HMOV PCON,#00H // 设置串行口MOV SCON,#40HMOV R1,#34H // 数据区地址MOV A,@R1 // 向 SBUF 发送数
据MOV SBUF,ASETB EASETB ESSETB TR1AJMP $
MAIN:
武汉科技大学计算机学
院 TI 清 0
R1=3DH?
停止定时器 1
指向下一个地址
向 SBUF 发送数据
禁止串行中断YN
ORG 8100H
CLR TI
CJNE R1,#3DH,AEND
CLR ES
CLR TR1
INC R1
MOV A,@R1
MOV SBUF,A
RETI
SEND:
AEND:
中断返回
中断程序 SEND
top related