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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
寄存器 SCON、PCON、SBUF
寄存器 IE、IP
• MCS-51 单片机串行接口工作方式
方式 0 方式 2 方式 1 方式 3
有两个数据缓冲寄存器 SBUF,一个输入移位寄存器,一个 串行控制寄存器SCON和一个特殊功能寄存器PCON等组成。 8 位SBUF是全双工串行接口寄存器, 它是特殊功能寄存器, 地址为 99H,不可位寻址;串行输出时为发送数据缓冲器,发送
串口工作方式
5.1 方式0 同步移位寄存器方式,比特率固定为fosc/12。 常用于外接移位寄存器,以扩展并行I/O口,SM2位必须为0 。 1.方式0发送: 当CPU执行写入发送缓冲器SBUF的指令时,串行口即把SBUF 中的8位数据以fosc/12的固定比特率从RXD引脚串行输出,低 位在先,TXD引脚输出同步移位脉冲,发送完8位数据置“1” 中断标志位TI
寄存器只写不读,数据从

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

接收端 RXD(P3.0)
输入;由指令确定是对发 送寄存器或接收寄存器作用。
接收控制器 RI
SBUF
移位寄存器
收到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
写入SBUF后自动开始发 送
请求中断
图5-1
CPU响应中断后:CLR TI
5.2 用AT89C51的串行口扩展并行口 5.2.2 用74LS164扩展并行输出口
74LS164:8位串入并出移位寄存器。
图是利用74LS164扩展二个8位并行输出口的接口电路。 . 每当新数据写入SBUF,即把SBUF中的8位数据以串行移 出
串行口控制寄存器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 —— 串行口接收数据控制位
并行锁存 串行口工作于方式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)。
比特率 比特率
= /12
P.110
=
/32 计1次 计3次 计3次 计6次 计12次 计24次
=
/12/计次/16
9600bps
1200bps
9.6kbit/s 实际10.416 = 6MHz/12/计次/16 1.2kbit/s 实际1.302 = 6MHz/12/计次/32
1 0
0 0
2 2
Fຫໍສະໝຸດ BaiduH F4H
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 的差异
P.105
1.方式1发送
写入SBUF后自动开始发 送
图7-8 2.方式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定时(自动装初值)这种方式不仅操 作方便,也可避免因软件重装初值而带来的定时误差。
时钟振荡频率为6MHz或12 MHz时,产生的比特率偏差较大, 故用到串口通信时通常选用11.0592MHZ晶体振荡器。
串行口的结构
• MCS-51 单片机串行接口的硬件
P3.0 位的第二功能 —— 收端 RXD P3.1 位的第二功能 —— 发端 TXD
• MCS-51 单片机串行接口的控制
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 的固定比特率,当
相关文档
最新文档