【51单片机学习过程记录】13中断 之串口中断应用前的了解过程(较详细)
2016-10-20 21:57
471 查看
声明:【51单片机学习过程记录】全是我自己学习、实践所记录的过程,我只是菜鸟,所有论点和观点仅代表我个人,不能确定是这个技术的真理。我的目的是学习和有可能成为可以向别人分享的经验,因此有错误我会虚心接受,并认真改正。
1大概了解串口通讯
(出自《零开始学单片机技术》刘建清主编)
串行通信分:同步通信 和 异步通信。
同步通信:数据是连续传送的,即数据以数据块为单位传送。
异步通信:(接下来主要学习的是异步)数据不是连续传送的,它以字符为单位进行传送,各个字符是可以连续传送,也可以是间断传送,每个被传送字节数据由4部分组成,起始位、数据位、校验位和停止位,这4部分在通信中称为一帧。
起始位为0,8位数据位,奇偶校验位,和停止位1。
串口通信传输方向分:
a单工通信
b半双工通信
c全双工通信
(OK这些要详细描述,有点多,需要可以百度)
2串行口的基本结构
串行口电路,称为 通用异步收发器UART,原理上,UART 包括了发送器电路,接收器电路 和控制电路。
80c51的UART集成其中,是一个全双工的串行口。
UART中,包含两个串行口缓冲寄存器 SBUF, 一个是发送寄存器,一个是接收寄存器,以便能以全双工的方式进行通信。 它们都是可寻址的寄存器,但是因为发送和接收不能同时进行,所以给这两个寄存器赋以同一地址99H。
3串行口通信控制寄存器
IE中的串口中断使能。
串行口控制寄存器
SM0 SM1是工作模式选择位,分别有工作方式0、1、2、3。
SM2
多机通信控制位
在工作模式0时,SM2必须为0;
SM2=1时,无论是工作模式1 或者2/3,接收到的第9位数据位(即RB8)必须是1,RI才会置1,从而申请中断,若RB8为0,则RI为0,不申请中断。
SM2=0时,无论是工作模式1 或者2/3,接收到的第9位数据位(即RB8)不管是1或者是0,都会装入SBUF中,然后产生中断申请。
REN
允许接收位,由软件设置或者清除,使能或禁止接收。
TB8发送数据位8,在工作方式2和3时,TB8的内容是发送的第9位数据,其值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校验位使用;在多机通信中,常以TB8位的状态表示主机发送的是地址帧还是数据帧。 在工作方式0和1中,该位未使用。
RB8
接收数据位8,是接收数据的第9位,在工作方式2和3中,接收数据的第9位数据放在RB8中,它可能是约定的奇偶校验位,也可能是地址数据标志等。
在方式1中,RB8存放的是接收的停止位。在工作方式0中,该位未使用。
TI
发送中断标志,方式0时,发送完第8位数据后,该位由硬件置1,在其他方式下,于发送停止位以前,由硬件置1,因此,TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。TI位必须由软件清0。
RI
接收中断标志,方式0时,接收完第8位数据后,该位由硬件置1,在其他方式下,当接收到停止位时,该位由硬件置1,因此RI=1,表示帧接收结束。其状态可供软件查询使用,也可以请求中断。RI位也必须由软件清0。
4串行口工作方式和波特率
a工作方式0
以8位数据为一帧进行传输,不设起始位和停止位,先发送或接收最低位。 方式0实现数据的移位输入/输出,实际上是把串行口变成并行口使用,需要有“串入并出”的移位寄存器(例如CD494/74LS164等)配合。 这里不详述。
方式0的波特率:
b工作方式1
方式1的波特率:[/b]
c工作方式2
[b]方式2的波特率:
[/b]
[b]
[/b]
[b]d工作方式3[/b]
工作方式3是11位为一帧的串行通信方式,其通信过程与工作方式2完全相同,所不同的仅是在于波特率:工作方式2的波特率只有固定的两种,而工作方式3的波特率则可由用户根据需要设定,其设定方法与工作方式1相同,即通过设定定时器1的初值来设置波特率。
1大概了解串口通讯
(出自《零开始学单片机技术》刘建清主编)
串行通信分:同步通信 和 异步通信。
同步通信:数据是连续传送的,即数据以数据块为单位传送。
异步通信:(接下来主要学习的是异步)数据不是连续传送的,它以字符为单位进行传送,各个字符是可以连续传送,也可以是间断传送,每个被传送字节数据由4部分组成,起始位、数据位、校验位和停止位,这4部分在通信中称为一帧。
起始位为0,8位数据位,奇偶校验位,和停止位1。
串口通信传输方向分:
a单工通信
b半双工通信
c全双工通信
(OK这些要详细描述,有点多,需要可以百度)
2串行口的基本结构
串行口电路,称为 通用异步收发器UART,原理上,UART 包括了发送器电路,接收器电路 和控制电路。
80c51的UART集成其中,是一个全双工的串行口。
UART中,包含两个串行口缓冲寄存器 SBUF, 一个是发送寄存器,一个是接收寄存器,以便能以全双工的方式进行通信。 它们都是可寻址的寄存器,但是因为发送和接收不能同时进行,所以给这两个寄存器赋以同一地址99H。
3串行口通信控制寄存器
IE中的串口中断使能。
串行口控制寄存器
SM0 SM1是工作模式选择位,分别有工作方式0、1、2、3。
SM2
多机通信控制位
在工作模式0时,SM2必须为0;
SM2=1时,无论是工作模式1 或者2/3,接收到的第9位数据位(即RB8)必须是1,RI才会置1,从而申请中断,若RB8为0,则RI为0,不申请中断。
SM2=0时,无论是工作模式1 或者2/3,接收到的第9位数据位(即RB8)不管是1或者是0,都会装入SBUF中,然后产生中断申请。
REN
允许接收位,由软件设置或者清除,使能或禁止接收。
TB8发送数据位8,在工作方式2和3时,TB8的内容是发送的第9位数据,其值由用户通过软件设置。在双机通信时,TB8一般作为奇偶校验位使用;在多机通信中,常以TB8位的状态表示主机发送的是地址帧还是数据帧。 在工作方式0和1中,该位未使用。
RB8
接收数据位8,是接收数据的第9位,在工作方式2和3中,接收数据的第9位数据放在RB8中,它可能是约定的奇偶校验位,也可能是地址数据标志等。
在方式1中,RB8存放的是接收的停止位。在工作方式0中,该位未使用。
TI
发送中断标志,方式0时,发送完第8位数据后,该位由硬件置1,在其他方式下,于发送停止位以前,由硬件置1,因此,TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。TI位必须由软件清0。
RI
接收中断标志,方式0时,接收完第8位数据后,该位由硬件置1,在其他方式下,当接收到停止位时,该位由硬件置1,因此RI=1,表示帧接收结束。其状态可供软件查询使用,也可以请求中断。RI位也必须由软件清0。
4串行口工作方式和波特率
a工作方式0
以8位数据为一帧进行传输,不设起始位和停止位,先发送或接收最低位。 方式0实现数据的移位输入/输出,实际上是把串行口变成并行口使用,需要有“串入并出”的移位寄存器(例如CD494/74LS164等)配合。 这里不详述。
方式0的波特率:
b工作方式1
方式1的波特率:[/b]
c工作方式2
[b]方式2的波特率:
[/b]
[b]
[/b]
[b]d工作方式3[/b]
工作方式3是11位为一帧的串行通信方式,其通信过程与工作方式2完全相同,所不同的仅是在于波特率:工作方式2的波特率只有固定的两种,而工作方式3的波特率则可由用户根据需要设定,其设定方法与工作方式1相同,即通过设定定时器1的初值来设置波特率。
相关文章推荐
- 【51单片机学习过程记录】16 中断之 串口中断的应用2(中断方式)
- 【51单片机学习过程记录】12中断 之外部中断的应用2
- 【51单片机学习过程记录】10 中断之定时计数器1的应用
- 【51单片机学习过程记录】11 中断之外部中断的应用
- 【51单片机学习过程记录】15 中断之串口中断查询方式中出现的问题及分析
- 【51单片机学习过程记录】8 中断 之定时计数器0的使用
- 【51单片机学习过程记录】9 中断之定时计数器0的使用2
- 【51单片机学习过程记录】7 中断之 定时计数器0 操作前理解过程
- 【51单片机学习过程记录】5数码管静态显示
- 使用51单片机采用中断方式进行串口通信的学习记录:
- 【51单片机学习过程记录】6数码管动态显示
- 学习矩阵分析与应用过程中的点滴记录(一)
- 【51单片机学习过程记录】3独立按键
- 【JavaEE企业应用实战学习记录】struts配置文件详细解析
- 【51单片机学习过程记录】 2LED点亮
- STM32学习记录14 ucosii中的串口中断
- 初步了解学习将传统单机应用改造成Dubbo服务的过程
- 从Delphi向Java的转变,准备记录java的学习过程
- 这里的文章主要是本人学习过程中的Trace,同时会记录一些学习笔记
- 记录一下自己学习程序的过程