UART接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例: 利用串行口 工作方式 0扩展出 8位并行 I/O 口, 例:利用串行口 利用串行口工作方式 工作方式0 扩展出8 位并行I/O I/O口, 共阳 LED 数码管显示 0—9。 驱动 驱动共阳 共阳LED LED数码管显示 数码管显示0
+5V
VCC TxD RxD
A B
CLK
CLR
74LS164
串行口工作方式 0
0:8位移位寄存器 I/O 方式 工作方式 工作方式0 位移位寄存器I/O I/O方式
SBUF 中的串行 数据 由RxD 逐位移出; 发送: 发送:SBUF SBUF中的串行 中的串行数据 数据由 RxD逐位移出; 输出 移位时钟 ,频率 =fosc1/12 ; TxD TxD输出 输出移位时钟 移位时钟,频率 ,频率=fosc1/12 =fosc1/12; 8位数据 TI 就自动置 1; 每送出8 TI就自动置 就自动置1 �每送出 软件清零 TI 。 需要用软件清零 TI。 �需要用 数据 由RxD 逐位移入 SBUF 中; 接收:串行 接收:串行数据 数据由 RxD逐位移入 逐位移入SBUF SBUF中; 输出 移位时钟 ,频率 =fosc1/12 ; TxD TxD输出 输出移位时钟 移位时钟,频率 ,频率=fosc1/12 =fosc1/12; RI 就自动置 1; 位数据RI RI就自动置 就自动置1 �每接收 8位数据 软件清零 RI 。 需要用软件清零 RI。 �需要用
全双工串行接口 (UART) 全双工串行接口(UART) 几个术语: 数据通信的 数据通信的几个术语: :数据各位 同时 进行传送 并行 并行:数据各位 :数据各位同时 同时进行传送 串行 :数据 逐位顺序 进行传送 串行:数据 :数据逐位顺序 逐位顺序进行传送 :( 串行通信 )收/发可同时 进行 全双工 全双工:( :(串行通信 串行通信) 可同时进行 :( 串行通信 )收/发不可 同时进行 半双工 半双工:( :(串行通信 串行通信) 不可同时进行 :以字符 为单位进行传送 异步串行通信 异步串行通信: 字符为单位进行传送 :以数据块 为单位进行传送 同步串行通信 同步串行通信: 数据块为单位进行传送 (bps.) :单位时间传送的位数 波特率 波特率(bps.) (bps.):
IDL :待机控制位 IDL: :常规方式。 =0 =0: :待机方式: =1 =1: 继续振荡 振荡器继续振荡 �振荡器 ,定时器 ,串口 有效 中断, 定时器, 串口有效 �中断 RAM 和SRF 不变 �片内 片内RAM RAM和 SRF不变 状态 ,P0—P3 维持原状 CPU状态 状态, P3维持原状 �CPU 停顿 。 程序停顿 停顿。 �程序 ,继 中断和复位能退出待机 中断和复位能退出待机, 续后面的程序。
h g f e d c b a
51单片机
LED 共阳 共阳LED 数码管
根据上图编写的通过串行口和 LED 数码管 74LS164 驱动共阳 驱动共阳LED LED数码管 )显示 0-9 数字的子程序: (查表 查表) 显示0-9 0-9数字的子程序: DSPLY:MOV DPTR, #TABLE MOVC A, @A+DPTR MOV SBUF, A JNB TI, $ CLR TI RET TABLE:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H,90H
Uart接口
串行通信 数据 逐位顺序 进行传送 串行通信的基本特征是 串行通信的基本特征是数据 数据逐位顺序 逐位顺序进行传送 串行通信的格式及约定(如:同步方式、通讯速 率、数据块格式、信号电平……等)不同,形成 了多种串行通信的协议与接口标准。 常见的有: (UART ) 通用异步收发器 通用异步收发器( UART) (USB ) 通用串行总线 通用串行总线( USB) I2C总线 总线 CAN CAN总线 总线 SPI SPI总线 ,RS-232C ,RS422A 标准……等等 RS-485 RS-485, RS-232C, RS422A标准
h g f e d c b a
a f e d
共阳极
g
b c h
累加器 A h g f e d c b a 1 1 0 0 0 0 0 0 0C0H = “0” 1 0 1 1 0 0 0 0 0B0H = “3”
1:8位UART (1+8+ 1位)波特率 可变 工作方式 工作方式1 UART( +8+1 波特率可变 /收8位数据外,还 常用于串行通讯。除发 常用于串行通讯。除发/ 在D0 位前有一个 起始位“0”; D0位前有一个 位前有一个起始位 位后有一个 停止位“1”。 在D7 D7位后有一个 位后有一个停止位 1工作时: 方式 方式1 自动添加 一个起始位和一个停止位; 发送端 发送端自动添加 自动添加一个起始位和一个停止位; 接收端 自动去掉 一个起始位和一个停止位。 接收端自动去掉 自动去掉一个起始位和一个停止位。 波特率可变 T1 作波特率发生器: 用定时器T1 T1作波特率发生器: ——用定时器 波特率 =(2SMOD/32 )×T1 的溢出率 公式: 公式:波特率 /32) T1的溢出率
=(2SMOD/32)×T1 的溢出率 波特率 波特率= T1的溢出率
T1 溢出的频繁程度 溢出率: 溢出率:T1 T1溢出的频繁程度 即: T1 溢出一次所需时间的倒数。 即:T1 T1溢出一次所需时间的倒数。 波特率 = 2SMOD × fosc 32 × 12(2n - X) X 是定时器初值 其中: 其中:X 初值 X = 2n 2SMOD × fosc 32 × 波特率 × 12
PCON
SMOD
பைடு நூலகம்
—
—
—
GF1
GF0
PD
1DL
:待机方式 (空闲方式 )控制位 IDL IDL: 待机方式( 空闲方式) :常规工作方式。 =0 =0: :进入待机方式: =1 =1: 继续振荡 振荡器继续振荡 �振荡器 、定时器 、串口 功能继续有效 中断、 定时器、 串口功能继续有效 �中断 RAM 和SRF 保持不变 �片内 片内RAM RAM和 SRF保持不变 状态 保持 、P0—P3 口维持原状 CPU状态 状态保持 保持、 P3口维持原状 �CPU 停顿 。 程序停顿 停顿。 �程序 中断和复位能退出待机 ,继续后面的程序。 中断和复位能退出待机,
74LS164
h g f e d c b a
74LS164
h g f e d c b a
74LS164
51单片机
LED 共阳 共阳LED 数码管
+5V
是串入并出 芯片; 74LS165 是并入串出 芯片 74LS164 74LS164是 串入并出芯片; 芯片;74LS165 74LS165是 并入串出芯片
:串行口 多机通信 控制位 SM2 SM2: 串行口多机通信 多机通信控制位 (作为方式 2、方式 3的附加控制位 ) (作为方式2 、方式3 附加控制位)
SCON
SM0
SM1
SM2
REN
TB8
RB8
TI
R1
:串行口收 /发数据申请中断标志位 RI,TI RI,TI: 串行口收/ =1 申请中断; =0 不申请中断 :在方式 2、3中,是收到的第 9位数据。 RB8 RB8: 在方式2 中,是收到的第9 ,用作区别地址帧 /数据帧的 在多机通信中 在多机通信中, 用作区别地址帧/ 标志。(奇偶校验) :方式 2、3中,是要发送的第 9位数据。 TB8 TB8: 方式2 中,是要发送的第9 ,TB8=0 表示发送的是数据; 多机通信中 多机通信中,TB8=0 TB8=1 表示发送的是地址。(奇偶校验) :串行口接收允许控制位 REN REN: = 1 表示允许接收; = 0 禁止接收。
0:8位移位寄存器 I/O 方式 (续) 工作方式 工作方式0 位移位寄存器I/O I/O方式 方式( 经常配合“串入并出”“并入串出”移位 寄存器一起使用扩展接口。 0工作时, 多用查询方式编程 : 方式 方式0 工作时,多用查询方式编程 多用查询方式编程: MOV SBUF ,A 接收: JNB RI ,$ 发送: 发送:MOV SBUF, 接收:JNB RI, JNB TI,$ CLR RI CLR TI MOV A, SBUF ,SCON 已经被清零 ,缺省值 : 方式 0。 复位时 复位时, 已经被清零, 缺省值: 方式0 ,务必先置位 REN=1 允许接收数据 。 接收前 接收前, 允许接收数据。
PCON
SMOD
—
—
—
GF1
GF0
PD
1DL
PD :掉电控制位 PD: :常规方式。 =0 =0: =1 :掉电方式 : =1: 掉电方式: 停振 振荡器停振 �振荡器 RAM 和SRF 不变 片内RAM RAM和 SRF不变 �片内 口维持原状 P3口维持原状 �P0—P3 停止 程序停止 �程序 只有复位能退出掉电
PCON
SMOD
—
—
—
GF1
GF0
PD
IDL
:掉电方式控制位 PD PD: :常规工作方式。 =0 =0: :进入掉电方式 : =1 =1: 进入掉电方式: 停振 振荡器停振 �振荡器 RAM 和SRF 的值保持不变 片内RAM RAM和 SRF的值保持不变 �片内 口维持原状。 P3口维持原状。 �P0—P3 停止 程序停止 �程序 只有复位能使之退出掉电方式。
电源控制寄存器 PCON(97H) ——特殊功能寄存器PCON不能按位寻址——
PCON
SMOD
—
—
—
GF1
GF0
PD
1DL
:在串行口工作方式 1、2、3 中, SMOD SMOD: 是波特率加倍位 =1 时,波特率加倍 =0 时,波特率不加倍。 中只有这一个位与串口有关 ) (在PCON PCON中只有这一个位与串口有关 中只有这一个位与串口有关) :用户可自行定义使用的通用标志位 GF1,GF0 GF1,GF0:
串行口方式0的扩展应用——经常用到 0扩展出并行 I/O 口, 串行口常用工作方式 串行口常用工作方式0 扩展出并行I/O I/O口, 1、2、3则常用于串行通信 工作方式 工作方式1
VCC TxD RxD
+5V
A B A B A B
CLK
CLR
CLK
CLR
CLK
CLR
h g f e d c b a
51单片机的串行接口
SBUF (发) A 累 加 器 波 特 率 发 生 器
T1
(门)移位寄存器 发送控制器 TI
引脚 TxD
CPU 内内部部
≥1
接收控制器 RI SBUF (收) 引脚 移位寄存器 RxD
去申请中断
串行口的结构 接收 /发送缓冲寄存器 SBUF 两个同名的 两个同名的接收 接收/ 发送缓冲寄存器SBUF 指令 MOV SBUF ,A 启动一次数据发送 ,可向 SBUF SBUF, 启动一次数据发送, 可向SBUF 再发送下一个数 ,SBUF 完成一次数据接收 ,SBUF 可再 指令 MOV A A, 完成一次数据接收,SBUF ,SBUF可再 接收下一个数 /发送数据 ,无论是否采用中断方式 接收 接收/ 发送数据, ,每接收 /发送一个数据都必须用指 工作 工作, 每接收/ /发。 令对 RI/TI 清0,以备下一次收 ,以备下一次收/ SFR (SCON,PCON) 串行口相关的 串行口相关的SFR SFR(SCON,PCON)
串行口控制寄存器SCON(98H) SCON
SM0 SM1 SM2 REN TB8 RB8 TI R1
SM0 ,SM1 :串行口 4种工作方式的选择位。 SM0, SM1: 串行口4
0 0 方式 0:8位移位寄存器 I/O, 波特率 固定 为 fosc/12 方式0 位移位寄存器I/O, I/O,波特率 波特率固定 固定为 0 1 方式 1:8位UART (1+8+ 1位) , 方式1 UART( +8+1 位), 可变 ,按公式计算 波特率 波特率可变 可变, 1 0 方式 2:9位UART (1+8+1+ 1位) , 方式2 UART( +8+1+1 位), 固定 =fosc x1/32 或1/64 波特率 波特率固定 固定= x1/32或 1 1 方式 3:9位UART (1+8+1+ 1位) , 方式3 UART( +8+1+1 位), 可变 ,按公式计算 波特率 波特率可变 可变,按公式计算