串口通信资料

串口通信资料.txt我都舍不得欺负的人,哪能让别人欺负? 一辈子那么长,等你几年算什么我爱的人我要亲手给她幸福 别人我不放心 我想你的时候我一定要找得到你不许你们欺负他!全世界只有我才可以!放弃你,下辈子吧!! 本文由我心_happy贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
51 单片机串口通信及波特率设置 单片机 2010-04-11 11:24:44 阅读 221 评论 0 字号:大中小
引用
碧空雄鹰 的 51 单片机串口通信及波特率设置 MCS-51 单片机具有一个全双工的串行通信接口,能同时进行发 送和接收。它可以作为 UART(通用异步接收和发送器)使用,也可 以作为同步的移位寄存器使用。 1. 数据缓冲寄存器 SBUF
SBUF 是可以直接寻址的专用寄存器。物理上,它对应着两个寄 存器,即一个发送寄存器一个接收寄存器,CPU 写 SBUF 就是修改 发送寄存器;读 SBUF 就是读接收寄存器。接收器是双缓冲的,以 避免在接收下一帧数据之前,CPU 未能及时的响应接收器的中断, 没有把上一帧的数据读走而产生两帧数据重叠的问题。对于发送器, 为了保持最大的传输速率,一般不需要双缓冲,因为发送时 CPU 是 主动的,不会产生重叠问题。 2. 状态控制寄存器 SCON
SCON 是一个逐位定义的 8 位寄存器,用于控制串行通信的方式 选择、接收和发送,指示串口的状态,SCON 即可以字节寻址也可以 位寻址,字节地址 98H,地址位为 98H~9FH。它的各个位定义如下: MSB SM 0 1 SM 2 SM N RE TB8 8 RB LSB TI RI
SM0 和 SM1 是串口的工作方式选择位,2 个选择位对应 4 种工 作方式,如下表,其中 Fosc 是振荡器的频率。 SM0 S M1 0 0 式 0 器 0 1 1 0 1 2 10 位 UART 11 位 UART 可变 Fosc/64 或 Fosc/32 1 1 3 11 位 UART 可变 8 位同步移位寄存 Fosc/12 工作方 功能 波特率
SM2 在工作方式 2 和 3 中是多机通信的使能位。在工作方式 0 中,SM2 必须为 0。在工作方式 1 中,若 SM2=1 且没有接收到有效 的停止位,则接收中断标志位 RI 不会被激活。在工作方式 2 和 3 中
若 SM2=1 且接收到的第 9 位数据 (RB8) 0,则接收中断标志 RB8 为 不会被激活,若接收到的第 9 位数据(RB8)为 1,则 RI 置位。此 功能可用于多处理机通信。 REN 为允许串行接收位,由软件置位或清除。置位时允许串行接 收,清除时禁止串行接收。 TB8 是工作方式 2 和 3 要发送的第 9 位数据。在许多通信协议中 该位是奇偶位,可以按需要由软件置位或清除。在多处理机通信中, 该位用于表示是地址帧还是数据帧。
RB8 是工作方式 2 和 3 中接收到的第 9 位数据 (例如是奇偶位

或 者地址/数据标识位),在工作方式 1 中若 SM2=0,则 RB8 是已接 收的停止位。在工作方式 0 中 RB8 不使用。 TI 为发送中断标志位,由硬件置位,软件清除。工作方式 0 中在 发送第 8 位末尾由硬件置位;在其他工作方式时,在发送停止位开始 时由硬件置位。TI=1 时,申请中断。CPU 响应中断后,发送下一帧 数据。在任何工作方式中都必须由软件清除 TI。 RI 为接收中断标志位,由硬件置位,软件清除。工作方式 0 中在 接收第 8 位末尾由硬件置位;在其他工作方式时,在接收停止位的中 间由硬件置位。RI=1 时,申请中断,要求 CPU 取走数据。但在工作
方式 1 中,SM2=1 且未接收到有效的停止位时,不会对 RI 置位。在 任何工作方式中都必须由软件清除 RI。 系统复位时,SCON 的所有位都被清除。 控制寄存器 PCON 也是一个逐位定义的 8 位寄存器 目前仅仅有 , 几位有定义,如下所示: MSB SM OD — — — — — — 1 GF 0 GF LSB PD IDL
仅最高位 SMOD 与串口的控制有关,其他位与掉电方式有关。 PCON 的地址为 87H 只能按字节寻址,SMOD 是串行通信波特率系 数控制位,当串口工作在工作方式 1、2 时,若使用 T1 作为波特率 发生器其 SMOD=1 则波特率加倍(见下面详述)。 GF1 和 GF0 用于一般的用途 对于 AT89 系列为通用的标志位, , PD 为电源下降位,对于 AT89 系列,PD 为 1 进入掉电状态,IDL 为 IDLE 模式位,对于 AT89 系列,IDL 为 1 进入空闲工作方式,在 PD 和 IDL 同时为 1 时,PD 优先。
(1)
工作方式 0
SM0=0 且 SM1=0 时,串口选择工作方式 0,实质这是一种同步 移位寄存器模式。 其数据传输的波特率固定为 Fosc/12 数据由 RXD 引脚输入或输 , 出,同步时钟由 TXD 引脚输出。接收/发送的是 8 位数据,传输是低 位在前,帧格式如下: … ….. 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D …. …
(2)工作方式 1 当 SM0=0 且 SM1=1 时,串口选择工作方式 1,其数据传输的波 特率由定时/计数器 T1、T2 的溢出速率决定,可通过程序设定。当 T2CON 寄存器中的 RCLK 和 TCLK 置位时,用 T2 作为发送和接收 波特率发生器,而 RCLK=TCLK=0 时,用 T1 作为波特率发生器,两 者还可以交叉使用,即发送和接收采用不同的波特率。数据由 TXD 引脚发送,由 RXD 引脚接收。 发送或接收一帧的数据为 10 位,即 1 位起始位(0)、8 位数据 位(低位在先)和 1 位停止位(1)。真格式如下:
起始 位0 0
D 1
D 2
D 3
D 4
D 5
D 6
D 7
D 1
停止位
类似于工作方式 0,当执行任一条 SBUF 指令时,就启动串行数 据的发送。在执行写入 SBUF 的指令时,也将“1”写入发送移位寄存 器的第 9

位,并通知发送控制器有发送请求。实际上,发送过程始于 内部的 16 分频计数器下次满度翻转(全“1”变全“0”)后的那几个机器 周期的开始。所以,每位的发送过程与 16 分频计数器同步,而不是 与“写 SBUF”同步。
此方式的工作过程包括发送和接收两部分。 当执行任一条写 SBUF 指令时,就启动串行数据的发送。在执行 写入 SBUF 的指令时,也将“1”写入发送移位寄存器的第 9 位,并使 发送控制器开始发送。在这期间,内部的定时保证写入 SBUF 与激 活发送之间有一个完整的机器周期。当发送脉冲有效后,移位寄存器 的内容由 RXD 引脚串行移位输出,移位脉冲由 TXD 引脚输出。 在发送有效的每个机器周期,发送移位寄存器右移一位,就在其 左边补“0 ”。当数据的最高位移到移位寄存器的输出时,原写入第 9 位的“1”正好移到最高位的左边一位,由此向左的所有位都为“0”,这 标志着发送控制器要进行最后依次移位,并撤消发送有效,同时使发 送中断标志 TI 置位。
当 REN=1 且接收中断标志 RI 位清除时,即启动一个接收过程。 在下一个机器周期,接收控制器将“11111110”写入接收移位寄存器, 并在下一周期内激发接收有效,同时由 TXD 引脚输出移位脉冲。在 移位脉冲的控制下,接收移位寄存器的内容每一个机器周期左移一 位,同时由 RXD 引脚接收一位输入信号。 每当接收移位寄存器左移一位,原写入的“11111110”也左移一 位。当最右边的“0”移到最左边时,标志着接收控制器要进行最后一 次移位。在最后移位即将结束时,接收移位寄存器的内容送入到接收 数据缓冲寄存器 SBUF,然后在启动接收的第 10 个机器周期时,清 除接收信号,将 RI 置位。 如果在第一个时钟周期中接收到的不是起始位(“0”),就复位接 收电路,继续检测 RXD 引脚上 1 到 0 的跳变。如果接收到的是起始 位,就将其移入接收移位寄存器,然后接收该帧的其他位。接收到的 位从右边移入,原来写入的 1 从左边移出,当起始位移到最左边时, 接收控制器将控制进行最后一次移位, 把接收到的第 9 为数据送到接 收数据缓冲器 SBUF 和 RB8,同时置位 RI。 在进行最后一次移位时,能将数据送入到接收数据缓冲器 SBUF 和 RB8 而且置位 RI 的条件如下: ● RI=0,即上一真数据接收完成时,发出的中断请求已 经被响应,SBUF 中的上一帧数据已经被取走。

SM2=0 或接收到的停止位为 1。
这两个条件有一个不满足接收到的数据就有可能丢失,并且无法 修复;如两者都满足则数据装入 SBUF,停止位装入 RB8 且置位 RI。 开始发送后的一个位周期,发送信

号有效,开始将起始位送 TXD 引脚。一位时间后,数据信号有效。发送移位寄存器将数据由低位到 高位顺序输出至 TXD 引脚。一位时间后第一个移位脉冲出现,将最 低数据位从右边移出,同时从左边补上“0”。当数据的最高位移到移 位寄存器的输出端时,先前写入第 9 位的“1”正好移到最高位的左边 一位,而它的左区全部为“0”。在第 10 个位周期(16 分频计数器回 0 时),发送控制器要进行最后一次清除发送信号,同时使发送中断标 志 TI 置位。 当 REN=1 且接收中断标志 RI 位清除后,若在 RXD 引脚上检测 到一个由“1”到“0”的跳变,立即启动一次接收的过程。同时复位 16 分 频计数器,使输入位的边沿与时钟对齐,并将 1FFH(9 个“1”)写入 接收移位寄存器。接收控制器继续以波特率的 16 倍的速率继续对 RXD 引脚进行检测,对每一位时间的第 7、8、9 个计数状态的采样 值用多数表决法 当 2 次或 2 次以上的采样值相同时 采样值被接受 , , 。 (1) 工作方式 2 和 3
当 SM0=1 且 SM1=0 时,串口选择工作方式 2,当 SM0=1 且 SM1=1 时,串口选择工作方式 3。数据由 TXD 引脚发送由 RXD 引 脚接收。 发送和接收的一帧信息为 11 位,即 1 位起始位(0),9 位数位 (低位在前,第 9 位数据位是可编程位)1 位停止位(1)。发送时, 可编程位 (TB8) 可赋 0 或 1 接收时可编程位进入 SCON 中的 RB8。 , 帧的格式如下: 起始 位0 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D D8 可编程位 停止 位1

1

相关文档
最新文档