第7章章节 串口通信.pptVIP

  • 1
  • 0
  • 约1.13万字
  • 约 41页
  • 2019-04-11 发布于湖北
  • 举报
第7章章节 串口通信

第7章 AT89S51单片机的串行口 7.1.1 串行通信的基本概念 一、异步通信与同步通信 1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。 以帧作为传送单位,每一帧由起始位、数据位、校验位和停止位组成,结构如图。 二、串行通信的传输方向 1、单工 单工是指数据传输仅能沿一个方向,不能实现反向传输。 2、半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。 3、全双工 全双工是指数据可以同时进行双向传输。 四、串行通信的错误校验 1、奇偶校验 在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。 五、传输速率与传输距离 1、传输速率 波特率bps(bit per second)定义: 每秒传输数据的位数,即: 1波特 = 1位/秒(1bps) 如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位) 10位×240个/秒 = 2400 bps 7.2 80C51的串行口 有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器1个,因为发送时CPU是主动的,不会产生重叠错误。 数据缓冲器SBUF 发送数据 通过指令MOV SBUF,A将数据写入SBUF,然后串口自动将数据按事先设置的方式及速率从TXD(P3.1)端口输出,数据发送完毕,串口向CPU申请中断,且通过硬件将TI置1,表示发送已经结束,等待写入第二帧数据。 接收数据 当有数据送给单片机串口时,串口按事先设置的方式及速率自动从端口RXD(P3.0) 接收数据,数据校验正确后送SBUF,一帧数据接收完毕 RI=1,串口向CPU请求中断且表示接收已经结束。单片机只要通过执行: MOV A,SBUF 串行口的控制寄存器 MCS-51的串行口有四种工作方式,用户可以通过对串行控制寄存器SCON编程来设定。此外,还有波特率控制寄存器PCON,必须详细了解这些特殊功能寄存器,才能正确应用串行通信接口。 1.串行口控制寄存器SCON 特殊功能寄存器SCON的地址为98H,具有位地址,可位寻址,复位时为00H,其格式如下: PCON中只有一位SMOD与串行口工作有关 : 一、方式0 必须注意:在接收时,除了设置SCON控制字为方式0外,还应设置允许接收控制位REN为“1”,清除RI中断标志,才能启动接收器工作。 方式0工作时,必须使SCON控制字的SM2位(多机通信控制位)为“0”,从而不影响TB8和RB8位。由于波特率固定,故无需用定时器提供。但以中断方式传输数据时,CPU响应中断不会自动清除TI、RI标志,所以在中断服务程序中,必须由指令将TI、RI清“0”。 (1)发送: CPU向发送缓冲器SBUF写入一个数据后,便启动串行口在TXD端输出帧信息,先发送起始位“0”,接着从低位开始依次输出8位数据,最后输出停止位。发送完一帧信息后,发送中断标志TI置“1”,向CPU请求中断。 (2)接收:当允许接收位REN置“1”后,接收器便采样RXD端电平,当采样到“1”到“0”的跳变时,启动接收器接收。计数器的16个状态把1位时间等分成16份,并在第7、8、9个计数状态时,采样RXD电平。因此,每一位的数值采样三次,取其中至少有两次相同的值为确认值。启动后,如果三次采样的确认值不是“0”,则起始位无效,复位接收电路重新检测。如果确认值为“0”,起始位有效,则开始按从低位到高位的顺序接收一帧的数据信息。 必须注意,在方式1接收中设置有数据辨识功能:只有同时满足以下两个条件时,接收到的数据才有效,才会将数据装入SBUF,并置RI为“1”,向CPU请求中断;否则,所接收的数据帧无效。当SM2=1时,接收到的停止位“1”装入RB8中。 ① RI=0。 ② 接收到停止位为“1”。 方式1的特点: 1)波特率可变 串口波特率由定时器T1产生,T1工作于方式2,并决定于T1定时时间,而T1的定时时间决定于装入的时间常数N,因此可根据时间常数N推出波特率,即 2)传送数据为8位,连同一位起始位、一位停止位组成一帧,即一帧为10位,发送由TXD输出,接收由RXD输入,可构成全双工的串行通信端口。 例:设计波特率为4800b

文档评论(0)

1亿VIP精品文档

相关文档