51单片机串口工作方式0和1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PD TD L
TDL:等待方式位 PD:掉电方式 GF1、 GF2通用标志位
ANL PCON,#7FH:对SMOD ORL 位清零 PCON,#80H:对SMOD
串行口的4种工作方式
SM0 串行口工作方式选择位 SM1
SM0 0 SM1 方式 0 0 功 能 波特率 fosc/12
同步移位寄存器
10位异步收发
• 方式 1(续) 异步接收时的工作过程
• 接收条件 —— 清 SCON 中接收中断标志 RI = 0 置 SCON 中接收控制标志 REN = 1 • 接收传输线 —— RXD、GND • 接收同步位 —— 接收传输线 RXD 有从 1 到 0 的信号 • 接收数据 —— 9 位数据送数据接收器 8 位字节数据送串行数据缓冲器 SBUF 1 位停止位送入 SCON 中的 RB8 = 1 • 接收 10 位数据结束 —— 接收中断标志 RI = 1 注: 若需继续接收,置RI = 0
寄存器只写不读,数据从

发送端TXD(P3.1)输出; 串行输入时为接收数 据缓冲器,接收寄存 器只读不写,数据从
CPU
波 特 率 发 生 器 T1
SBUF
发送控制器 串行口中断
TXD TI

接收端 RXD(P3.0)
输入;由指令确定是对发 送寄存器或接收寄存器作用。
接收控制器 RI
SBUF
移位寄存器
用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。
• 方式 1(续) 异步发送时的工作过程
• 发送条件 —— 清 SCON 中发送中断标志 TI = 0 • 发送指令 —— MOV SBUF,A 注: 需发送的 8 位字节数据送串行数据缓冲器 SBUF 后将启动异步发送开始。 • 起始位 0、停止位 1 在执行发送指令时自动加入 • 发送传输线 —— TXD、GND • 发送 10 位数据结束 —— 发送中断标志 TI = 1 注: 若需继续发送,置TI = 0,送数据到 SBUF
P.105
1.方式1发送
写入SBUF后自动开始发送
请求中断 可写下一个要发送的数据
图7-8 来自百度文库.方式1接收
图7-9
请求中断 可从SBUF读取新接收的数据
P.109 5.3.1 比特率的制定方法 方式 0、方式2 的比特率是固定的;方式 1 、方式 3比特率由定时器T1的 溢出率来确定。 5.3.2 定时器T1产生比特率的计算 (1)方式0波特率=时钟频率fosc×1/12,不受SMOD位的值的影响。若 fosc=12MHz,比特率为fosc/12即1Mb/s。 (2)方式2波特率=(2SMOD/64)×fosc 若fosc=12MHz: SMOD=0 比特率=187.5kb/s; SMOD=1 比特率=375kb/s (3)方式1或方式3时,比特率为: 比特率= (2SMOD/32)×T1的溢出率 = fosc/12/(T1计数次数) × (2SMOD/32) 实际设定比特率时,T1常设置为方式2定时(自动装初值)这种方式不仅操 作方便,也可避免因软件重装初值而带来的定时误差。
FDH F4H
时钟振荡频率为6MHz或12 MHz时,产生的比特率偏差较大, 故用到串口通信时通常选用11.0592MHZ晶体振荡器。
串行口的结构
• MCS-51 单片机串行接口的硬件
P3.0 位的第二功能 —— 收端 RXD P3.1 位的第二功能 —— 发端 TXD
• MCS-51 单片机串行接口的控制
方式 0 用于扩展并行 I/O口
• 编程(续)
SBR: SETB P1.0 ; CD4094 输出并口打开,LED 亮 ACALL DELAY CLR TI ; 手动清中断标志 RR A ; 循环位移 ; 80H、40H、20H、10H、08H … CLR P1.0 ; CD4094 输出并口关闭 MOV SBUF,A ; 数据传出,产生中断 RETI END 注: 延时子程序 DELAY 未给出
• 电路图
8031
RXD TXD P1.0 DATA CLK
CD4094
TBS
方式 0 用于扩展并行 I/O口
• 编程
ORG 0000H LJMP MAIN ORG 0023H LJMP SBR MAIN: MOV SCON,#00H; 方式 0,TI = 0 SETB EA SETB ES MOV A,#80H ; 初值,左边 LED 亮 CLR P1.0 ; CD4094 输出并口关闭 MOV SBUF,A ; 数据传出,产生中断 LOOP: SJMP $
RXD/ TXD/
清0 串行口工作于方式0: 同步移位寄存器方式 发送
fosc/12
图5-2-1
74HC595: 8位串入并出移位寄存器,带锁存及三态输出功能。 (相当于74LS164+273+244)
2.方式0接收
写入SBUF后自动开始发送
向串口的 SCON 写入控制字(置为方式 0 ,并置“ 1 ” REN 位, 同时RI=0)时,串行口即开始接收数据。RXD为数据输入端, TXD 为移位脉冲信号输出端,也以 fosc/12 的固定比特率,当
串行口控制寄存器SCON
b7
b6
b5
b4
b3
b2
b1 TI
b0 RI
SM0 SM1 SM2 REN TB8 RB8
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SM2 —— 多机通信控制位(方式2和3)
• SM2 = 0,无多机通信
• SM2 = 1,允许多机通信
REN —— 串行口接收数据控制位
比特率 比特率
= /12
P.110
=
/32
=
/12/计次/16
计 1次 计 3次
9600bps
计 3次 计 6次 计12次
1200bps
计24次
9.6kbit/s 实际10.416 = 6MHz/12/计次/16 1.2kbit/s 实际1.302 = 6MHz/12/计次/32
1 0
0 0
2 2
并行锁存 串行口工作于方式0: 同步移位寄存器方式 接收
fosc/12
图9-21
5.2.2
方式1 :8位异步收发,比特率可变(由定时器控制)
SM0、SM1=01 方式1一帧数据为10位,1个起始位(0),8个数据位,1个停止 位(1),先发送或接收最低位。帧格式如图7-7:
图7-7 方式1比特率=(2SMOD/32)×定时器T1的溢出率 SMOD为PCON寄存器的最高位的值(0或1)。
写入SBUF后自动开始发送
请求中断
图5-1
CPU响应中断后:CLR TI
5.2 用AT89C51的串行口扩展并行口 5.2.2 用74LS164扩展并行输出口
74LS164:8位串入并出移位寄存器。
图是利用74LS164扩展二个8位并行输出口的接口电路。 . 每当新数据写入SBUF,即把SBUF中的8位数据以串行移出
0 1 1
1 0 1
1 2 3
可变
fosc/64或fosc/32
11位异步收发 11位异步收发
可变
• 5.3.1 方式 0 —— 移位寄存器输入/输出方式
串行口为同步移位寄存器方式
非串行通信用方式-扩展并行I/O
• 用并入串出移位寄存器扩展并行输入口 • 用串入并出移位寄存器扩展并行输出口
RXD、TXD 线的作用
收到8位数据时置“1” RI。表示一帧数据接收完,时序如下:
RI=‘0’时
其中REN=‘1’
请求中断
图5-2
CPU响应中断后:CLR RI
P.159-160
5.2.1
用74LS165扩展并行输入口
74LS165:8位并入串出移位寄存器。 图9-22是利用74LS164扩展二个8位并行输入口的接口电路。 每当向SCON写入控制字为方式0且REN=“1” , 即串行移入8位数据到SBUF
方式 0 用于扩展并行 I/O口 例2:用 8031 的串口外接 1 个并入串出移位寄存器 芯片 CD4014 扩展为 8 位并行输入口,并口 接 8 个开关量输入,开关 K 闭合时有效。
• 电路图
8031
RXD TXD P1.1 DATA CLK P//S
CD4014
K
P1.0
方式 0 用于扩展并行 I/O口
方式 1 用于串行通信 例3:8031串行口双工方式收发 ASCII 字符,最高 1 位用来作奇偶校验位,采用奇校验方式, 波特率为 1200 。
• 工作方式
• 编程
START: JB P1.0,START ; 若 K 未合上则循环查询 SETB P1.1 ; CD4014 并行数据输入有效 MOV SCON,#00X1XXX0B ; 方式 0,REN = 1 允许接收,RI = 0 CLR P1.1 ; CD4014 串行数据输出有效 LOOP: JNB RI,LOOP ; 若 RI = 0 数据未收完 ; 若 RI = 1 数据已收完 CLR RI ; 手动清 RI,准备下次传送数据 MOV A,SBUF
方式 0 用于扩展并行 I/O口
• 并 →串方式,扩展输入口
电路图
8031
RXD TXD
并入串出移位寄存器
DATA CLK
功能线 • RXD —— 接移位寄存器的数据输出端 • TXD —— 接移位寄存器的同步时钟端 注: 注意信号方向
方式 0 用于扩展并行 I/O口 例1:用 8031 的串口外接 1 个串入并出移位寄存器 芯片CD4094 扩展为 8 位并行输出口,并口接 8 个 LED,并循环轮流显示。
• 方式 1 —— 10 位异步接收/发送(波特率可变)
串行口为8位异步通信接口
方式 1 的数位
• 1 位起始位 — 值 0
• 8 位数据位 — 为有用信息(低位在前,可含 1 位校验位)
• 1 位停止位 — 值 1
异步传送时的速率设置
• 速率设置的方法 —— 设置定时器 T1 的初值 • 常用波特率:
串口工作方式
5.1 方式0 同步移位寄存器方式,比特率固定为fosc/12。 常用于外接移位寄存器,以扩展并行I/O口,SM2位必须为0 。 1.方式0发送: 当CPU执行写入发送缓冲器SBUF的指令时,串行口即把SBUF 中的8位数据以fosc/12的固定比特率从RXD引脚串行输出,低 位在先,TXD引脚输出同步移位脉冲,发送完8位数据置“1” 中断标志位TI
RXD
7.1.1 串行口控制寄存器SCON b7 b6 b5 b4 b3 b2 b1 TI b0 RI
SM0 SM1 SM2 REN TB8 RB8
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SM0、SM1 —— 串行接口工作方式定义位
• SM0、SM1 = 00 —— 方式 0,8位同步移位寄存器 • SM0、SM1 = 01 —— 方式 1,10 位异步接收发送 • SM0、SM1 = 10 —— 方式 2,11 位异步接收发送 • SM0、SM1 = 11 —— 方式 3,11 位异步接收发送 注意: 方式 0 的特点,方式 2、方式 3 的差异
寄存器 SCON、PCON、SBUF
寄存器 IE、IP
• MCS-51 单片机串行接口工作方式
方式 0 方式 2 方式 1 方式 3
有两个数据缓冲寄存器 SBUF,一个输入移位寄存器,一个 串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。 8 位SBUF是全双工串行接口寄存器, 它是特殊功能寄存器, 地址为 99H,不可位寻址;串行输出时为发送数据缓冲器,发送
• RXD — 串 → 并、并 → 串 数据传送线
• TXD — 同步时钟线,同步时钟为 fosc/12(固定波特率) 注:为应用串行接口扩展并行接口的方式。
方式 0 用于扩展并行 I/O口
• 串 → 并方式,扩展并行输出口
电路图
8031
RXD
串入并出移位寄存器
DATA
TXD
CLK
功能线 • RXD —— 接移位寄存器的数据输入端 • TXD —— 接移位寄存器的同步时钟端 注: 注意信号方向
• REN = 1,允许串行口接收数据 • REN = 0,禁止串行口接收数据 由软件置位或清除
7.1.2 特殊功能寄存器PCON
• 串行数据传送速率控制寄存器 —— PCON
b7 SMOD
b6
b5
b4
b3
b2
b1
b0
GF1 GF2
地址:87H SMOD = 0,定义波特率不变 SMOD = 1,定义波特率加倍 注:PCON 寄存器的地址为87H, 仅 b7 位有用,不可位寻址。
相关文档
最新文档