MCS-51单片机的串行接口.ppt

上传人:max****ui 文档编号:7259369 上传时间:2020-03-17 格式:PPT 页数:30 大小:128.50KB
返回 下载 相关 举报
MCS-51单片机的串行接口.ppt_第1页
第1页 / 共30页
MCS-51单片机的串行接口.ppt_第2页
第2页 / 共30页
MCS-51单片机的串行接口.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
6 5MCS 51单片机的串行接口 6 5 1串行通信的基本概念 并行和串行并行通信的优点是速度快 效率高 确点是不适合远距离通信 串行通信刚好相反 单工 半双工和全双工单工 信息只能沿着一个方向传播半双工 信息可以沿一条线双向传播 但不能同时实现双向传播 全双工 使用两条独立的数据通道 收发可同时进行 同步方式和异步方式 1 同步方式是将一大批数据分成几个数据块 数据块之间用同步字符予以隔开 而传输的各位二进制码之间都没有间隔 其基本特征是发送与接收时钟始终保持严格同步 2 异步通信是按帧传送数据 它利用每一帧的起 止信号来建立发送与接收之间的同步 每帧内部各位均采用固定的时间间隔 但帧与帧之间的时间间隔是随机的 其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志 它是以字符为单位一个个地发送和接收的 6 5 2与串行口有关的特殊功能寄存器 1 数据缓冲器SBUF 串行口缓冲器SBUF是可直接寻址的特殊功能寄存器 其内部RAM字节地址是99H 在物理上 它对应着两个独立的寄存器 一个发送寄存器 一个接收寄存器 发送时 就是CPU写SBUF的时候 51系列单片机没有专门的启动发送状态的指令 接收时 就是读取SBUF的过程 接收寄存器是双缓冲的 以避免在接收下一帧数据之前 CPU未能及时响应接收器的中断 没有把上一帧数据读走 而产生两帧数据重叠的问题 2 串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态 其各位定义如图5 3所示 相应的各位功能介绍如下 SM0 SM1 用于定义串行口的操作模式 两个选择位对应4种模式 见表6 2 其中fOSC是振荡器频率 UART为通用异步接收和发送器的英文缩写 SM2 多机通信时的接收允许标志位 在模式2和3中 若SM2 1 且接收到的第9位数据 RB8 是0 则接收中断标志 RI 不会被激活 在模式1中 若SM2 1且没有接收到有效的停止位 则RI不会被激活 在模式0中 SM2必须是0 表6 2串行口操作模式选择 3 电源控制寄存器PCON 特殊功能寄存器PCON中 只有一位 最高位 SMOD与串行口的工作有关 该位是串行口波特率系数的控制位 SMOD 1时 波特率加倍 否则不加倍 PCON的地址为87H 不可位寻址 因此初始化时需要字节传送 6 5 3串行口的4种工作模式 模式0同步移位寄存器输入输出模式 可外接移位寄存器 以扩展I O口 1 模式0输出状态 图6 8外接移位寄存器输出 2 模式0输入状态 当满足RI 0且REN 0时 就启动一次接收过程 图6 9外接移位寄存器输入 2 模式1 串行口工作于模式1时 为波特率可变的8位异步通信接口 数据位由P3 0 RXD 端接收 由P3 1 TXD 端发送 传送一帧信息为10位 一位起始位 0 8位数据位 低位在前 和一位停止位 1 波特率是可变的 它取决于定时器T1的溢出速率及SMOD的状态 1 模式1发送过程 用软件清除TI后 CPU执行任何一条以SBUF为目标寄存器的指令 就启动发送过程 数据由TXD引脚输出 此时的发送移位脉冲是由定时器 计数器T1送来的溢出信号经过16或32分频而取得的 一帧信号发送完时 将置位发送中断标志TI 1 向CPU申请中断 完成一次发送过程 2 模式1接收过程 用软件清除RI后 当允许接收位REN被置位1时 接收器以选定波特率的16倍的速率采样RXD引脚上的电平 即在一个数据位期间有16个检测脉冲 并在第7 8 9个脉冲期间采样接收信号 然后用三中取二的原则确定检测值 以抑制干扰 并且采样是在每个数据位的中间 避免了信号边沿的波形失真造成的采样错误 当检测到有从 1 到 0 的负跳变时 则启动接收过程 在接收移位脉冲的控制下 接收完一帧信息 当最后一次移位脉冲产生时能满足下列两个条件 RI 0 接收到的停止位为1或SM2 0 则停止位送入RB8 8位数据进入SBUF 并置RI 1 完成一次接收过程 否则 所接收到的一桢信息将丢失 接收器复位 并从新开始检测负跳变 以便接收下一桢信息 注意 接收中断标志RI应由软件清除 3 模式2和模式3 串行口工作于模式2和模式3时 被定义为9位异步通信接口 它们的每帧数据结构是11位的 最低位是起始位 0 其后是8位数据位 低位在先 第10位是用户定义位 SCON中的TB8或RB8 最后一位是停止位 1 模式2和模式3工作原理相似 唯一的差别是模式2的波特率是固定的 即为f 32或fOSC 64 而模式3的波特率是可变的 与定时器T1的溢出率有关 1 模式2和模式3的发送过程 发送过程是由执行任何一条SBUF为目的寄存器的指令来启动的 由 写入SBUF 信号把8位数据装入SBUF 同时还把TB8装入发送移位寄存器的第9位 并通知发送控制器要求进行一次发送 发送开始 把一个起始位 0 送到TXD端 移位后 数据由移位寄存器送到TXD端 再过一位 出现第一个移位脉冲 第一次移位时 把一个停止位 1 由控制器的停止位发生端送入移位寄存器的第9位 此后 每次移位时 把0送入第9位 因此 当TB8的内容送到移位寄存器的输出位置时 其左面一位是停止位 1 而再往左的所有位全为 0 这种状态由零检测器检测到后 就通知发送控制器作最后一次移位 然后置TI 1 请求申请中断 第9位数据 TB8 由软件置位或清零 可以作为数据的奇偶校验位 也可以作为多机通信中的地址 数据标志位 如把TB8作为奇偶校验位 可以在发送程序中 在数据写入SBUF之前 先将数据位写入TB8 2 模式2和模式3接收过程 与模式1类似 模式2和模式3接收过程始于在RXD端检测到负跳变时 为此 CPU以波特率16倍的采样速率对RXD端不断采样 一检测到负跳变 16分频计数器就立刻复位 同时把1FFH写入输入移位寄存器 计数器的16个状态把一位时间等分成16份 在每一位的第7 8 9个状态时 位检测器对RXD端的值采样 如果所接收到的起始位无效 为1 则复位接收电路 等待另一个负跳变的到来 若起始位有效 为0 则起始位移入移位寄存器 并开始接收这一帧的其余位 当起始位0移到最左面时 通知接收控制器进行最后一次移位 把8位数据装入接收缓冲器SBUF 第9位数据装入SCON中的RB8 并置中断标志RI 1 装入SBUF和RB8以及置位RI的信号只有在产生最后一个移位脉冲且同满足下列两个条件 才会产生 RI 0 SM2 0或接收到的第9位数据为 1 上述两个条件中任一个不满足 所接收的数据帧就会丢失 不再恢复 两者都满足时 第9位数据装入TB8 前8位数据装入SBUF 请注意 与模式1不同 模式2和3中装入RB8的是第9位数据 而不是停止位 所接收的停止位的值与SBUF RB8和RI都没有关系 利用这一特点可用于多机通信中 6 5 4多机通信 图6 10多处理机通信系统 6 5 5波特率 串行口每秒钟发送或接收的数据位数称为波特率 假设发送一位数据所需时间为T 则波特率为1 T 1 模式0的波特率等于单片机晶振频率的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从初值计数到产生溢出 它每秒钟溢出的次数称为溢出率 于是 表6 3定时器T1产生的常用波特率 假设某MCS 51单片机系统 串行口工作于模式3 要求传送波特率为1200Hz 作为波特率发生器的定时器T1工作在方式2时 请求出计数初值为多少 设单片机的振荡频率为6MHz 因为串行口工作于模式3时的波特率为 所以 当SMOD 0时 初值TH1 256 6 106 1200 12 32 1 243 0F3H 当SMOD 1时 初值TH1 256 6 106 1200 12 32 2 230 0E6H 6 6串行口的应用 一 串行口的编程 串行口需初始化后 才能完成数据的输入 输出 其初始化过程如下 1 按选定串行口的操作模式设定SCON的SM0 SM1两位二进制编码 2 对于操作模式2或3 应根据需要在TB8中写入待发送的第9位数据 3 若选定的操作模式不是模式0 还需设定接收 发送的波特率 设定SMOD的状态 以控制波特率是否加倍 若选定操作模式1或3 则应对定时器T1进行初始化以设定其溢出率 二 串行口的应用 例1用8051串行口外接74LS165移位寄存器扩展8位输入口 输入数据由8个开关提供 另有一个开关K提供联络信号 电路示意如图6 11所示 当开关K合上时 表示要求输入数据 输入8位开关量 处理不同的程序 图6 11 程序如下 START JBP1 0 开关K未合上 等待 SETBP1 1 165并行输入数据 CLRP1 1 开始串行移位 MOVSCON 10H 串行口模式0并启动接收 JNBRI 查询RI CLRRI 查询结束 清RI MOVA SBUF 输入数据 根据A处理不同任务 SJMPSTART 准备下一次接收 例2利用串行口进行双机通信 图6 12双机通信系统 甲机发送 采用查询方式 MOVSCON 80H 设置工作方式2 MOVPCON 00 置SMOD 0 波特率不加倍 MOVR0 40H 数据区地址指针 MOVR2 10H 数据长度 LOOP MOVA R0 取发送数据 MOVC P 奇偶位送TB8 MOVTB8 C MOVSBUF A 送串口并开始发送数据 WAIT JBCTI NEXT 检测是否发送结束并清TI SJMPWAIT NEXT INCR0 修改发送数据地址指针 DJNZR2 LOOP RET 乙机接收 查询方式 MOVSCON 90H 模作模式2 并允许接收 MOVPCON 00H 置SMOD 0 MOVRO 60H 置数据区地址指针 MOVR2 10H 等待接收数据长度 LOOP JBCRI READ 等待接收数据并清RI SJMPLOOP READ MOVA SBUF 读一帧数据 MOVC P JNCLP0 C不为1转LP0 JNBRB8 ERR RB8 0 即RB8不为P转ERR AJMPLP1 LP0 JBRB8 ERR RB8 1 即RB8不为P转ERR LP1 MOV R0 A RB8 P 接收一帧数据 INCR0 DJNZR2 LOOP RET ERR 出错处理程序 例2单片机和PC之间利用串行口进行通信51单片机有一个全双工的串行通讯口 和PC机之间可以方便地进行串口通讯 电脑的串口是RS232电平的 而单片机的串口是TTL电平的 两者之间必须有一个电平转换电路 可以采用专用芯片MAX232 也可以用几个三极管进行转换 但还是用专用芯片简单可靠 一般采用了三线制连接串口 也就是说和电脑的9针串口只连接其中的3根线 第5脚的GND 第2脚的RXD 第3脚的TXD TTL电平和RS 232电平的转换
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!