AT89S52串行通信

上传人:豆浆 文档编号:2003051 上传时间:2017-07-18 格式:PDF 页数:22 大小:373.99KB
返回 下载 相关 举报
AT89S52串行通信_第1页
第1页 / 共22页
AT89S52串行通信_第2页
第2页 / 共22页
AT89S52串行通信_第3页
第3页 / 共22页
AT89S52串行通信_第4页
第4页 / 共22页
AT89S52串行通信_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《AT89S52串行通信》由会员分享,可在线阅读,更多相关《AT89S52串行通信(22页珍藏版)》请在金锄头文库上搜索。

1、 1AT89S52串行通信 学习目标: 了解串行通信的基本知识 掌握串行口的工作方式 掌握波特率的设计 掌握串行口工作方式的应用 掌握程序调试的基本方法和技巧。 技能目标: 会对串行口进行初始化。 会计算串行口通信波特率。 能够实现单片机与单片机之间、单片机和 PC 机之间的通信。 项目一 单片机点对点通信 第一部分 项目要求 利用 AT89S52 实现单片机点对点通信。要求将存放在甲机的数据存储器 20H27H 单元中数据,首先在甲机上显示,然后发送到 PC 机,进而再发送到乙机,以实现单片机与PC 机和单片机与单片机之间的通信。 第二部分 相关知识 一、 串行通信基本知识 (一) 串行通信

2、基本概念 串行通信的特点是:数据是按位的顺序进行传送,最少只需一根传输线即可完成,成本低但速度慢。计算机与外界的数据传送大多数是串行的,其传送的距离可以从几米到几千公里。并行通信的特点是:各数据位同时传送,传送速度快、效率高。但并行数据传送有多少数据位,就需多少根数据线,因此传送成本高。 串行数据通信共有以下几种数据通路形式。 1单工 (Simplex)形式 单工形式的数据传送是单向的。通信双方中一方固定为发送端,另一方则固定为接 2 收端。单工形式的串行通信,只需要一条数据线。如图 5.1(a)所示。例如计算机与打印机之间的串行通信就是单工形式,因为只能是计算机向打印机传送数据,而不可能有相

3、反方向的数据传送。 2半双工 (Half-duplex)形式 半双工形式的数据传送也是双向的。但任何时刻只能由其中的一方发送数据,另一方接收数据。 因此半双工形式既可以使用一条数据线, 也可以使用两条数据线。 如图 5.1(b)所示。 3全双工 (Full-duplex)形式 全双工形式的数据传送是双向的,且可以同时发送和接收数据,因此全双工形式的串行通信需要两条数据线。如图 5.1 (c)所示。 图 5.1 串行通信的数据通路形式 (二) 串行通信基本通信方式 按照串行数据的同步方式,串行通信可分为异步通信方式和同步通信方式。 1异步通信方式 异步通信用起始位 “0”表示字符的开始,然后由低

4、位到高位逐位传送数据,最后用停止位 “1”表示字符结束,见图 8.2。异步通信数据传送按帧传送。图 5.2( a)中一帧信息包括 1 位起始位、 8 位数据位和 1 位停止位。图 5.2( b)中数据位增加到 9 位。在 AT89S52中,第九位数据 D8 既可以用作奇偶校验位,也可以用作地址 /数据帧标志, D8 1 表示该帧信息传送的是地址, D8=0 表示传送的是数据。两帧信息之间可以无间隔,也可以有间隔,且间隔时间可任意改变,间隔用空闲位 “1”来填充。 帧( frame) :从起始位开始到停止位结束的全部内容称之为一帧,帧是一个字符的完整通信格式,因此也就把串行通信的字符格式称之为帧

5、格式。 起始位:发送器是通过发送起始位而开始一个字符的传送。起始位使数据线处于逻辑 “0”状态。 数据位:起始位之后就传送数据位。在数据位中,低位在前(左) ,高位在后(右) 。数据位可以是 5、 6、 7 或 8 位。 奇偶校验位:用于对字符传送作为正确性检查。共有 3 种可能,即奇校验、偶校验和无 3校验。 停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑 “1”状态。停止位可能是 1、 1. 5 或 2 位。 在实际应用中通信的双方根据需要,在通信发生之前确定上述内容。 图 5.2 异步通信的数据格式 2同步通信方式 在同步通信中,每一数据块开头时发送一个或两个同步字符,使

6、发送与接收双方取得同步。数据块的各个字符间,取消了每一个字符的起始位和停止位,所以通信速度得以提高,见图 5.3。同步通信时,如果发送的数据块之间有间隔时间,则发送同步字符填充。 图 5.3 同步通信的数据格式 二、 串行通信总线标准及其接口 在设计通信接口时,根据需要选择标准接口,并考虑传输介质、电平转换等问题。根据传输距离不同,可以选择不同的总线标准。如果是短距离传送,只需要 TX、 RX 和 4 GND 三根线,见图 5.4( a) ;如果距离在 15 米左右,采用 RS-232 标准接口,可提高信号幅度加大传送距离,见图 5.4( b) 。如果是长距离传送,可采用 RS-485 标准。

7、 图 5.4 两种串行通信连接示意图 (一) RS-232C 标准 RS-232C 标准是美国 EIA(电子工业联合会)与 BELL 等公司一起开发的于 1969 年公布的通信协议,它规定了串行数据传送的连接电缆、机械特性、电气特性、信号功能及传送过程的标准。 1电气特性 RS-232 标准对电器特性、逻辑电平和各种信号线功能都作了规定。在数据线上,逻辑 “1”的电平界于 -3-15V 之间,逻辑 “0”的电平界于 +3+15V 之间;对于控制信号,接通状态( ON)即信号有效的电平界于 +3V+15V 之间,断开状态( OFF)即信号无效的电平界于 -3-15V 之间。介于 -3V 和 +3

8、V 之间的电压无意义,低于 -15V 或高于 +15V 的电压也无意义。实际工作时,电平应保证在正负 315V 之间。 EIA-RS-232C 是用正负电压来表示逻辑状态,与 TTL 以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的 TTL 器件连接,必须在 EIA-RS-232C 与TTL 电路之间进行电平和逻辑关系的转换。目前广泛使用集成电路转换器件,如MC1489、 SN75154 芯片可实现 EIA 电平到TTL 电平的转换,而MC1488、 SN75150 可完成 TTL 到 EIA 电平的转换。 MAX232 芯片可完成 TTL 到 EIA 双向电平的转换。见图

9、5.5。 图 5.5 TTL 到 EIA 电平的转换 52信号接口 与 RS-232C 相匹配的连接器有 DB-25、 DB-9,其引脚定义各不相同,下面只介绍DB-9 连接器。见图 5.6。 DB9 的引脚定义见表 5.1。 图 5.6 DB9 的引脚示意图 表 5.1 引脚定义 引脚 信号名 功 能 1 DCD 载波检测 2 RXD 接收数据 3 TXD 发送数据 4 DTR 数据终端准备就绪 5 GND 信号地线 6 DSR 数据准备完成 7 RTS 发送请求 8 CTS 发送清除 9 RI 振铃指示 (二) AT89S52 串行口结构与控制 1串行口结构 AT89S52 单片机有一个全

10、双工的串行口, 可作为通用异步接收和发送器 ( UART) 用,也可作同步移位寄存器用。 AT89S52 串行口主要由两个物理上独立的串行数据缓冲寄存器 SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。见图 5.7。发送缓冲器 SBUF 只能写,不能读;接收缓冲器 SBUF 只能读,不能写。两个缓冲寄存器共用一个地址 99H,可以用读 /写指令区分。 AT89S52 单片机通过引脚 RXD( P3.0)和引脚 TXD(P3.1)与外界进行通信。 AT89S52 串行 I/O 接口的基本工作过程是:发送时,将 CPU 送来的并行数据转换成一定格式的串行数据,从引脚 TXD( P

11、3.1)上按规定的波特率逐位输出;接收时,要监视引脚 RXD( P3.0) ,一旦出现起始位 “0”,就将外围设备送来的一定格式的串行数据转 6 换成并行数据,等待 CPU 读入。 接收缓冲器是双缓冲的,是为了避免在接收下一帧数据之前, CPU 未能及时响应接收器的中断把上一帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对于发送缓冲器,为了保持最大传输率,一般不需要双缓冲,这是因为发送时 CPU 是主动的,不会产生写重叠的问题。 图 5.7 AT89S52 串行口结构 2串行口控制 AT89S52 串行口是可编程口,对其编程即是将控制字写入控制寄存器 SCON 和PCON。 ( 1)

12、串行口控制寄存器 SCON( 98H) 串行口控制寄存器 SCON 是一个特殊功能寄存器,字节地址 98H,有位寻址功能。SCON 格式如下: 功能说明如下: 9 SM0、 SM1串行口工作方式选择位,其状态组合所对应的工作方式为: 79 SM2多机通信控制位 SM2 位主要用于方式 2 和方式 3。当串行口方式 2 或方式 3 接收时,如 SM2=1,则只有当接收到的第九位数据 (RB8)为 1,才将接收到的前 8 位数据送入 SBUF,并置位 RI产生中断请求;否则,将接收到的前 8 位数据丢弃。而当 SM2=0 时,则不论第九位数据为 0 还是为 1,都将前 8 位数据装入 SBUF 中

13、,并产生中断请求。 9 REN允许接收位 REN=0 禁止接收; REN=1 允许接收。该位由软件置位或复位。 9 TB8发送数据位第 9 位 在方式 2 和方式 3 时, TB8 的内容是要发送的第 9 位数据,其值由用户通过软件设置。在双机通信时, TB8 一般作为奇偶校验位使用;在多机通信中,常以 TB8 位的状态表示主机发送的是地址帧还是数据帧, 且一般约定: TB8=0 为数据帧 , TB8=1 为地址帧。 9 RB8接收数据位第 9 位 在方式 2 或方式 3 时, RB8 存放接收到的第 9 位数据,代表着接收数据的某种特征(与 TB8 的功能类似) ,故应根据其状态对接收数据进

14、行操作。 9 TI发送中断标志 当方式 0 时,发送完第 8 位数据后,该位由硬件置位。在其它方式下,当发送停止位之前,由硬件置位。因此 TI=1,表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI 位由软件清 “0”。 9 RI接收中断标志 当方式 0 时,接收完第 8 位数据后,该位由硬件置位。在其它方式下,当接收到停止位时,该位由硬件置位。因此 RI=1,表示帧接收结束。其状态既可供软件查询使用,也可以请求中断。 RI 位由软件清 “0”。 ( 2)电源控制寄存器 PCON( 87H) 电源控制寄存器 PCON 主要是为 CHMOS 型单片机电源控制而设置的专用寄存器。串行口

15、只用到其最高位 SMOD。 PCON 不能位寻址。 SMOD串行口波特率的倍增位 当 SMOD=1 时,串行口波特率加倍。系统复位时, SMOD 0。 三、 AT89S52 串行口工作方式 (一) 串行口波特率设计 1波特率 每秒传送的二进制位数称为波特率: 1 波特 =lbps(位秒 ) 例如,电传打字机的传送速率每秒 10 个字符,若每个字符为 11 位,则波特率为 8 11 位字符 10 字符 /s 110 位 /s 2波特率设计 AT89S52 串行口的工作方式不同,波特率也不同。 方式 0 的波特率固定不变,仅与系统的振荡频率 fosc 有关。 波特率 = fosc / 12 方式 2 的波特率固定不变。 波特率 =2smod fosc / 64 方式 1 和方式 3 的波特率是可变的,以定时器 T1 作波特率发生器使用,其值由定时器 1 的计数溢出率来决定,其公式为: 波特率 = 2smod 32(定时器 1 溢出率) 当定时器 1 作波特率发生器使用时,选用工作方式 2(即 8 位自动加载方式) 。假定计数初值为 X,则计数溢出周期为: 12(256 X ) / fosc 溢出率为溢出周期的倒数。 则波特率计算公式为: 波特率 = 2smod fosc / 3212( 256 X)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号