




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第7章AT89S51单片机的串行口 2 并行通信 传送的数据的各位同时发送 并排传输 同时被接收 控制简单 传输速度快 由于传输线较多 长距离传送时成本高且接收方的各位同时接收存在困难 引言 串行通信传送数据的各位按分时顺序一位一位地传送 即一位一位的发送和接收 特点 传输线少 长距离传送时成本低 且可以利用电话网等现成的设备 但数据的传送控制比并行通信复杂 八个人站成一排一起通过 八个人站成一纵队一一通过 3 7 1 1串行通信的基本概念一 异步通信与同步通信1 异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程 以帧作为传送单位 每一帧由起始位 数据位 校验位和停止位组成 结构如图 4 2 同步方式同步方式仅在开始用若干字符作为同步号令 然后连续发送数据 如图所示 由于没有在每一个字符中 配置起始 停止位 所以结构紧凑 传输效率高 速度快 其组成如下图所示 同步传输方式比异步传输方式速度快 这是它的优势 但同步传输方式也有其缺点 即它必须要用一个时钟来协调收发器的工作 所以它的设备也较复杂 例如IIC通信 SPI通信等 5 二 串行通信的传输方向1 单工单工是指数据传输仅能沿一个方向 不能实现反向传输 2 半双工半双工是指数据传输可以沿两个方向 但需要分时进行 3 全双工全双工是指数据可以同时进行双向传输 单工半双工全双工 6 四 串行通信的错误校验1 奇偶校验在发送数据时 数据位尾随的1位为奇偶校验位 1或0 奇校验时 数据中 1 的个数与校验位 1 的个数之和应为奇数 偶校验时 数据中 1 的个数与校验位 1 的个数之和应为偶数 接收字符时 对 1 的个数进行校验 若发现不一致 则说明传输数据过程中出现了差错 3 循环冗余校验 2 代码和校验送方将所发数据块求和 或各字节异或 产生一个字节的校验字符 校验和 附加到数据块末尾 接收方接收数据同时对数据块 除校验字节外 求和 或各字节异或 将所得的结果与发送方的 校验和 进行比较 相符则无差错 否则即认为传送过程中出现了差错 7 五 传输速率与传输距离1 传输速率波特率bps bitpersecond 定义 每秒传输数据的位数 即 1波特 1位 秒 1bps 如每秒钟传送240个字符 而每个字符格式包含10位 1个起始位 1个停止位 8个数据位 10位 240个 秒 2400bps 相互通信的甲乙双方必须具有相同的波特率 否则无法成功地完成串行数据通信 8 7 280C51的串行口 有两个物理上独立的接收 发送缓冲器SBUF 它们占用同一地址99H 接收器是双缓冲结构 发送缓冲器1个 因为发送时CPU是主动的 不会产生重叠错误 7 2 180C51串行口的结构 9 数据缓冲器SBUF发送数据通过指令MOVSBUF A将数据写入SBUF 然后串口自动将数据按事先设置的方式及速率从TXD P3 1 端口输出 数据发送完毕 串口向CPU申请中断 且通过硬件将TI置1 表示发送已经结束 等待写入第二帧数据 接收数据当有数据送给单片机串口时 串口按事先设置的方式及速率自动从端口RXD P3 0 接收数据 数据校验正确后送SBUF 一帧数据接收完毕RI 1 串口向CPU请求中断且表示接收已经结束 单片机只要通过执行 MOVA SBUF 10 串行口的控制寄存器 MCS 51的串行口有四种工作方式 用户可以通过对串行控制寄存器SCON编程来设定 此外 还有波特率控制寄存器PCON 必须详细了解这些特殊功能寄存器 才能正确应用串行通信接口 1 串行口控制寄存器SCON特殊功能寄存器SCON的地址为98H 具有位地址 可位寻址 复位时为00H 其格式如下 SM0 SM1 串行口的方式选择位 见表7 1 11 SM2 方式2和方式3的多机通信控制位 REN 允许串行接收位 TB8 在方式2和方式3中 发送的第9位数据 需要时由软件置位或复位 RB8 在方式2和方式3中 接收到的第9位数据 在方式1时 RB8是接收到的停止位 在方式0 不使用RB8 TI 发送中断标志 TI必须由软件清 0 RI 接收中断标志 RI必须由软件清 0 12 PCON中只有一位SMOD与串行口工作有关 SMOD PCON 7 波特率倍增位 在串行口方式1 方式2 方式3时 波特率与SMOD有关 当SMOD 1时 波特率提高一倍 复位时 SMOD 0 PCON的其他位为掉电方式控制位 详见2 8节 13 6 2 380C51串行口的工作方式 一 方式0 串口扩展为并口1 波特率固定为发送 位数据等于一个机器周期 2 不论是发送还是接收 数据都是从RXD P3 0 端出入 TXD端而作为同步移位脉冲输出端 3 工作于方式0时 可将串行接口扩展为并行接口 1 方式0输出 14 2 方式0输入 方式0接收和发送电路 15 一 方式0 必须注意 在接收时 除了设置SCON控制字为方式0外 还应设置允许接收控制位REN为 1 清除RI中断标志 才能启动接收器工作 方式0工作时 必须使SCON控制字的SM2位 多机通信控制位 为 0 从而不影响TB8和RB8位 由于波特率固定 故无需用定时器提供 但以中断方式传输数据时 CPU响应中断不会自动清除TI RI标志 所以在中断服务程序中 必须由指令将TI RI清 0 16 二 方式1 8位异步通信接口方式1是10位数据的异步通信口 TXD为数据发送引脚 RXD为数据接收引脚 传送一帧数据的格式如图所示 其中1位起始位 8位数据位 低位在前 1位停止位 1 方式1输出 17 2 方式1输入 18 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 19 方式1的特点 1 波特率可变串口波特率由定时器T1产生 T1工作于方式2 并决定于T1定时时间 而T1的定时时间决定于装入的时间常数N 因此可根据时间常数N推出波特率 即2 传送数据为8位 连同一位起始位 一位停止位组成一帧 即一帧为10位 发送由TXD输出 接收由RXD输入 可构成全双工的串行通信端口 例 设计波特率为4800b s 晶振频率为11 0592MHz 定时器T1工作在方式2 SMOD 0 则计数器初值为 20 三 方式2和方式3方式2或方式3时为11位数据的异步通信口 TXD为数据发送引脚 RXD为数据接收引脚 方式2和方式3时起始位1位 数据9位 含1位附加的第9位 发送时为SCON中的TB8 接收时为RB8 停止位1位 一帧数据为11位 方式2的波特率固定为晶振频率的1 64或1 32 方式3的波特率由定时器T1的溢出率决定 21 3 方式2 方式3串行口工作在方式2 方式3时 为9位异步通信口 1帧信息由11位组成 即1位起始位 8位数据D0 D7 低位在前 1位可编程的第9位D8 发送时 第9位为SCON中的TB8 接收时 第9位为SCON中的RB8 及1位停止位 如图7 10所示 图7 10方式2 方式3数据格式 1 发送 当CPU向发送缓冲器SBUF写入一个数据后 便立即启动发送器发送 先发送起始位 0 接着从低位开始依次输出8位数据 再发送SCON中的TB8 最后输出停止位 发送完一帧信息后 发送中断标志TI置 1 向CPU请求中断 2 接收 使用与方式1类似的方法识别起始位 必须注意 方式2 方式3接收中也设置有数据辨识功能 只有同时满足以下两个条件时 接收到的数据才有效 才能将接收到的数据装入SBUF和RB8 并置RI为 1 否则 所接收的数据帧无效 RI 0 接收到的停止位为 1 方式2 方式3的区别 方式2的波特率为fosc 32或fosc 64 而方式3的波特率可变 22 三 串口工作方式2 3方式2 3的工作性能1 方式2波特率固定 并等于 方式3波特率计算方法同方式1 即等于 2 一帧数据为11位 包括1位起始位 8位数据位 1位可编程位 1位停止位 数据位低位在前高位在后 第9位可编程位发送时从SCON中的TB8取出 接收时第9位存SCON中的RB8 23 第四节串口初始化编程 一 计算波特率串口方式0串口方式1和串口方式3串口方式2 24 25 二 对SCON PCON TMOD初始化以设计一8051单片机控制系统为例 设主振频率为12MHz 要求串口发送数据为8位 波特率为1200bps 则初始化步骤为 1 先按波特率要求 计算T1的时间常数N 设SMOD 1 已知主振频率为12MHz 波特率为1200bps 串口工作于方式1 按式7 2可求得N 203 92 0CCH2 写出初始化程序MOVSCON 50H 串行口工作于方式1MOVPCON 80H SMOD 1 MOVTMOD 20H T1工作方式2定时方式MOVTHl 0CCH 设置时间常间为NMOVTLl 0CCH 自动装入时间常数SETBTR1 启动T1 返回本章首页 26 例7 1 电路如图所示 试编制程序按下列顺序要求每隔0 5秒循环操作 8个发光二极管全部点亮 从左向右依次暗灭 每次减少一个 直至全灭 从左向右依次点亮 每次亮一个 从右向左依次点亮 每次亮一个 从左向右依次点亮 每次增加一个 直至全部点亮 返回从 不断循环 7 3单片机串行口应用举例 27 28 LIGHT MOVSCON 00H 串行口方式0CLRES 禁止串行中断MOVDPTR TAB 置发光二极管亮暗控制字表首址LP1 MOVR7 0 置顺序编号0LP2 MOVA R7 读顺序编号MOVCA A DPTR 读控制字CLRP1 0 关闭并行输出MOVSBUF A 启动串行发送JNBTI 等待发送完毕CLRTI 清发送中断标志SETBP1 0 开启并行输出LCALLDLY500ms 调用延时0 5秒子程序INCR7 指向下一控制字CJNER7 30 LP2 判循环操作完否 未完继续SJMPLP1 顺序编号0 29依次操作完毕 从0开始重新循环TAB DB0FFH 7FH 3FH 1FH 0FH 07H 03H 01H 00H 从左向右依次暗灭 每次减少一个 直至全灭 DB80H 40H 20H 10H 08H 04H 02H 01H 从左向右依次点亮 每次亮一个DB02H 04H 08H 10H 20H 40H 80H 从右向左依次点亮 每次亮一个DB0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 从左向右依次点亮 每次增加一个 直至全部点亮 29 例7 2 设甲乙机以串行方式1进行数据传送 fosc 11 0592MHz 波特率为1200b s 甲机发送的16个数据存在内RAM40H 4FH单元中 乙机接收后存在内RAM50H为首地址的区域中 30 甲机发送子程序 MOVTMOD 20H 置T1定时器工作方式2MOVTL1 0E8H 置T1计数初值MOVTH1 0E8H 置T1计数重装值CLRET1 禁止T1中断SETBTR1 T1启动MOVSCON 40H 置串行方式1 禁止接收MOVPCON 00H 置SMOD 0 SMOD不能位操作 CLRES 禁止串行中断MOVR0 40H 置发送数据区首地址MOVR2 16 置发送数据长度TRSA MOVA R0 读一个数据MOVSBUF A 发送JNBTI 等待一帧数据发送完毕CLRTI 清发送中断标志INCR0 指向下一字节单元DJNZR2 TRSA 判16个数据发完否 未完继续RET 31 乙机接收子程序 MOVTMOD 20H 置T1定时器工作方式2RXDB MOVTL1 0E8H 置T1计数初值MOVTH1 0E8H 置T1计数重装值CLRET1 禁止T1中断SETBTR1 T1启动MOVSCON 40H 置串行方式1 禁止接收MOVPCON 00H 置SMOD 0 SMOD不能位操作 CLRES 禁止串行中断MOVR0 50H 置接收数据区首地址MOVR2 16 置接收数据长度SETBREN 启动接收RDSB JNBRI 等待一帧数据接收完毕CLRRI 清接收中断标志MOVA SBUF 读接收数据MOV R0 A 存接收数据INCR0 指向下一数据存储单元DJNZR2 RDSB 判16个数据接收完否 未完继续RET 32 回顾串行工作方式2方式2是一帧11位的串行通信方式 即1个起始位 8个数据位 1个可编程位TB8 RB8和1个停止位 例7 3 设计一个串行方式2发送子程序 SMOD 1 将片内RAM50H 5FH中的数据串行发送 第9数据位作为奇偶校验位 接到接收方核对正确的回复信号 用FFH表示 后 再发送下一字节数据 否则再重发一遍 33 MOVSCON 80H 置串行方式2 禁止接收MOVPCON 80H 置SMOD 1MOVR0 50H 置发送数据区首址TRLP MOVA R0 读数据MOVC PSW 0 奇偶标志送TB8MOVTB8 C MOVSBUF A 启动发送JNBTI 等待一帧数据发送完毕CLRTI 清发送中断标志SETBREN 允许接收CLRRI 清接收中断标志JNBRI 等待接收回复信号MOVA SBUF 读回复信号CPLA 回复信号取反JNZTRLP 非全0 回复信号 FFH 错误 转重发INCR0 全0 回复信号 FFH 正确 指向下一数据存储单元CJNER0 60H TRLP 判16个数据发送完否 未完继续RET 34 二 多机通信1 硬件连接单片机构成的多机系统常采用总线型主从式结构 所谓主从式 即在数个单片机中 有一个是主机 其余的是从机 从机要服从主机的调度 支配 80C51单片机的串行口方式2和方式3适于这种主从式的通信结构 当然采用不同的通信标准时 还需进行相应的电平转换 有时还要对信号进行光电隔离 在实际的多机应用系统中 常采用RS 485串行标准总线进行数据传输 35 2 通信协议所有从机的SM2位置1 处于接收地址帧状态 主机发送一地址帧 其中8位是地址 第9位为地址 数据的区分标志 该位置1表示该帧为地址帧 所有从机收到地址帧后 都将接收的地址与本机的地址比较 对于地址相符的从机 使自己的SM2位置0 以接收主机随后发来的数据帧 并把本站地址发回主机作为应答 对于地址不符的从机 仍保持SM2 1 对主机随后发来的数据帧不予理睬 从机发送数据结束后 要发送一帧校验和 并置第9位 TB8 为1 作为从机数据传送结束的标志 36 主机接收数据时先判断数据接收标志 RB8 若RB8 1 表示数据传送结束 并比较此帧校
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东中山大学附属口腔医院工勤事务岗工作人员(驾驶员)招聘1人考前自测高频考点模拟试题及答案详解参考
- 2025北京海淀镇社区卫生服务中心招聘15人考前自测高频考点模拟试题及参考答案详解
- 2025江西南昌市青山湖区招聘社区工作者(专职网格员)45人模拟试卷含答案详解
- 小学安全培训新闻课件
- 安全培训教师对学员评价课件
- 2025湖南湘潭韶山旅游发展集团酒店管理有限公司招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025年伊春金林区公益性岗位招聘16人模拟试卷及答案详解(典优)
- 广东省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【交通运输大类】模拟练习
- 安全培训教学启发课件
- Imirestat-Standard-生命科学试剂-MCE
- 国家基层高血压防治管理指南(2025版)
- 2025年医师定期考核题库附答案详解
- 2025年B2B企业生成式引擎优化(GEO)实战指南
- 2025年宁波辅警考试题库(附答案)
- 国家电投2023上半年ESG实践报告:绿色发展助力电力行业转型升级
- 2025呼伦贝尔市交投公路建设有限公司招聘工作人员考试参考试题及答案解析
- 污水处理自动化工程施工组织计划
- 美发发型培训知识课件
- 电力市场风险管理办法
- 《生成式人工智能基础与应用》高职AIGC应用基础课程全套教学课件
- 2025合肥市辅警考试试卷真题
评论
0/150
提交评论