专题6串口通信o.ppt

上传人:本田雅阁 文档编号:2697833 上传时间:2019-05-05 格式:PPT 页数:30 大小:342.51KB
返回 下载 相关 举报
专题6串口通信o.ppt_第1页
第1页 / 共30页
专题6串口通信o.ppt_第2页
第2页 / 共30页
专题6串口通信o.ppt_第3页
第3页 / 共30页
专题6串口通信o.ppt_第4页
第4页 / 共30页
专题6串口通信o.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《专题6串口通信o.ppt》由会员分享,可在线阅读,更多相关《专题6串口通信o.ppt(30页珍藏版)》请在三一文库上搜索。

1、9.1 串行通讯的基础知识 9.2 AT89C51的串行接口 9.3 串行口的应用,第9章 串行接口串行通讯技术,1、并行与串行 并行:按照信息数据的基本单位,多位同时传送的方式。 串行:按照信息数据的最小单位顺序传送的方式。 2、同步与异步 同步通信:同步字符邀请并应答进入同步传输过程, 信息的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。,9.1 串行通信的基础知识,3、 波特率 4、串行通信的制式:单工,半双工,全双工 5、校验:奇偶校验,和校验,CRC校验,异步通信是按帧传送数据, 它利用每一帧的起0、止信号1来建立发送与接收之间的同步。每帧内部各位均采用固

2、定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。,9.2 AT89C51的串行接口,9.2.1 串行口的控制 9.2.2 串行口的工作方式 9.2.3 多机通信,9.2.1 串行口的控制,1、发送器和接收器SBUF,串行口缓冲器SBUF其内部RAM字节地址是99H。 在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是CPU写入SBUF;接收时, 就是读取SBUF的过程。,2、串行口控制寄存器SCON,SCON用于控制和监视串行口的工作状态, 相应的各位

3、功能介绍如下:,SM0、SM1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式。 SM2:多机通信时的接收允许标志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位数据(RB8)是 0, 则接收中断标志(RI)不会被激活。在模式1中, 若SM2=1 且没有接收到有效的停止位, 则 RI不会被激活。 在模式 0 中, SM2 必须是 0。,串行口操作模式选择,REN:串行接收允许位。由软件置位或清零,1 :允许接收;0:禁止接收。 TB8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志

4、位使用。 RB8:在方式2或方式3中,是己接收到的第九位数据,可作为奇偶校验位。在多机通信中也可作为地址帧或数据帧的标志位。在方式1中,若SM2=0,则RB8是接收到的停止位。在方式0中,该位没有用。,特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。 PCON的地址为 87H, 不可位寻址, 因此初始化时需要字节传送。,3、电源控制寄存器PCON,(1) 方式 0 输出状态。,图 9.11 外接移位寄存器输出,9.2.2 串行口的工作方式,1、方式 0,同步移位寄存器,RXD 输入输出,

5、先低位后高位,TXD输出移位时钟。,(2) 方式 0 输入状态。,图9.12 外接移位寄存器输入, 10位异步通信接口。数据位由 P3.0 (RXD)端接收, 由P3.1(TXD)端发送。波特率是可变的, 它取决于定时器 T1 的溢出速率及SMOD的状态。 一位起始位0, 8位数据位(低位在前)和一位停止位1。 (1)方式1 发送过程。 用软件清除 TI后, CPU执行任何一条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由 TXD引脚输出, 此时的发送移位脉冲是由定时器 /计数器 T1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志TI=1,

6、 向CPU申请中断, 完成一次发送过程。,2、方式1,(2)方式1 接收过程。 用软件清除 RI后, 当允许接收位 REN被置位 1 时, 接收器以选定波特率的 16 倍的速率采样 RXD引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 7、 8、9 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件: RI=0; 接收到的停止位为 1 或

7、SM2=0。,3.方式2 和方式3。 串行口工作于方式2 和方式3 时, 被定义为 9 位异步通信接口。 它们的每帧数据结构是 11 位的: 最低位是起始位(0), 其后是 8 位数据位(低位在先), 第 10 位是用户定义位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。方式2 和方式3 工作原理相似, 唯一的差别是方式2 的波特率是固定的, 即为 f / 32或 fOSC / 64; 而方式3的波特率是可变的, 与定时器 T1的溢出率有关。,9.2.4 波特率 串行口每秒钟发送或接收的数据位数称为波特率。 假设发送一位数据所需时间为T, 则波特率为 1/T。 (1) 模式 0

8、 的波特率等于单片机晶振频率的 1/12, 即每个机器周期接收或发送一位数据。 (2) 模式 2 的波特率与电源控制器PCON的最高位SMOD的写入值有关: 即SMOD=0, 波特率为(1/64) fOSC; SMOD=1, 波特率为(1/32)fOSC。,(3) 模式 1 和模式 3 的波特率除了与SMOD位有关之外, 还与定时器 T1 的溢出率有关。 定时器 T1 作为波特率发生器, 常选用定时方式 2( 8 位重装载初值方式), 并且禁止 T1 中断。此时 TH1 从初值计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是,表 9.2 定时器T1产生的常用波特率,假设某MCS - 51

9、 单片机系统, 串行口工作于方式3, 要求传送波特率为1200 Hz, 作为波特率发生器的定时器T1工作在方式 2 时, 请求出计数初值为多少? 设单片机的振荡频率为6 MHz。 因为串行口工作于方式3 时的波特率为,所以,当SMOD=0 时, 初值TH1=256-6106/(1 2001232/1) =243=0F3H 当SMOD=1 时, 初值TH1=256-6106/(12001232/2) =230=0E6H,串行口需初始化后, 才能完成数据的输入、输出。其初始化过程如下: (1) 按选定工作模式设定SCON的SM0、SM1两位。 (2) 对于操作模式 2 或 3, 应根据需要在 TB

10、8 中写入待发送的第 9 位数据。 (3) 若选定的操作模式不是模式 0, 还需设定接收/发送的波特率。 设定SMOD的状态, 以控制波特率是否加倍。 若选定操作模式1或3, 则应对定时器 T1进行初始化以设定其溢出率。,9.3 串行口的应用,用串行口外接 74LS165 移位寄存器扩展8位输入口, 输入数据由 8 个开关提供, 另有一个开关 K提供联络信号。电路示意如图所示。当开关K合上时, 表示要求输入数据。输入 8 位开关量, 处理不同的程序。,例1:开关输入,程序如下: START: JB P1.0, $ ; 开关K未合上, 等待 SETB P1.1 ; 165并行输入数据 CLR P

11、1.1 ; 开始串行移位 MOV SCON, 10H ; 串行口模式 0并启动接收 JNB RI, $ ; 查询RI CLR RI ; 查询结束, 清RI MOV A, SBUF ; 输入数据 ; 根据 A处理不同任务 SJMP START ; 准备下一次接收。,例2:3位LED动态显示,方式0输出,ORG 0100H START:MOV SCON,#00H ;串行口初始化为方式0 SETB P1.2 ;消去最高显示位 SETB P1.1 MOV SBUF,65H ;传送最低显示位 JNB TI, ;传送没结束,等待 CLR P1.0 ;最低位显示 CLR TI ;清中断标志位 LCALL Y

12、S2MS ;调延时2MS子程序 维持状态 SETB P1.0 ;消去最低显示位 MOV SBUF,66H ;传送中间显示位 JNB TI, ;等待传送结束,CLR P1.1 ;显示中间位 CLR TI ;清中断标志位 LCALL YS2MS ;调延时子程序,维持状态 SETB P1.1 ;消去中间显示位 MOV SBUF,67H ;传送最高显示 JNB TI, ;等待传送结束 CLR P1.2 ;显示最高显示位 CLR TI ;清中断标志位 LCALL YS2MS ;调延时子程序,维持状态 SETB P1.2 ;消去最高显示位 LJMP START ;继续循环扫描,例 3 利用串行口进行双机通

13、信。,图 6.12 双机通信系统,甲机发送(采用查询方式): MOV SCON, 80H ; 设置工作方式2 MOV PCON, 00; 置SMOD=0, 波特率不加倍 MOV R0, 40H ; 数据区地址指针 MOVR2, 10H ; 数据长度 LOOP: MOV A, R0 ; 取发送数据 MOV C, P ; 奇偶位送TB8 MOV TB8, C MOV SBUF, A ; 送串口并开始发送数据,WAIT: JBC TI, NEXT ; 检测是否发送结束并清TI SJMP WAIT NEXT: INC R0; 修改发送数据地址指针 DJNZ R2, LOOP RET 乙机接收(查询方式

14、): MOV SCON, 90H; 模作模式2, 并允许接收 MOV PCON, 00H; 置SMOD=0 MOV R0, 60H ; 置数据区地址指针 MOV R2, 10H ; 等待接收数据长度,LOOP: JBC RI, READ ; 等待接收数据并清RI SJMP LOOP READ: MOV A, SBUF ; 读一帧数据 MOV C, P JNC LP0 ; C不为 1 转LP0 JNB RB8, ERR ; RB8=0, 即 RB8不为 P转ERR AJMP LP1 LP0: JB RB8, ERR ; RB8=1, 即 RB8不为 P转ERR LP1: MOV R0, A ; RB8=P, 接收一帧数据 INC R0 DJNZ R2, LOOP RET ERR: ; 出错处理程序 ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1