




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章MCS 51串行口 8 1串行口及其通信方式 8 2IBM PC系列机与 单片机的通信技术 8 1串行口及其通信方式 8 1 1串行通信基础知识一 异步通讯方式以字符为传送单位用起始位和停止位标识每个字符的开始和结束字符间隔不固定 只需字符传送时同步 1 异步通讯常用格式 一个字符帧 二 同步通讯以一串字符为一个传送单位 字符间不加标识位 在一串字符开始用同步字符标识 硬件要求高 通讯双方须严格同步 2 异步通讯双方的两项约定 1 字符格式规定 一帧 数据位 校验位 起始位和停止位 2 波特率 位 秒 对传送速率的规定例 要求每秒传送120个字符 每帧为10位 解 B 120 0 1200波特每位0 83ms数据位传输率 120 960位 秒 三串行接口功能 1 发送器 并 串数据格式转换 添加标识位和校验位 一帧发送结束 设置结束标志 申请中断 2 接收器 串 并数据格式转换 检查错误 去掉标识位 保存有效数据 设置接收结束标志 申请中断 3 控制器 接收编程命令和控制参数 设置工作方式 同步 异步 字符格式 波特率 校验方式 数据位与同步时钟比例等 四串行数据传送方向单工通讯 数据单向传送 半双工通讯 数据可分时双向传送 全双工通讯 可同时进行发送和接收 8 1 2串行口控制寄存器 一 1个全双工串行接口 可同时进行发送和接收 串行接口输入 输出引脚 TXD P3 1 RXD P3 0 数据格式 P 237图 按不同方式 一帧位数8 10 11发送 接收时 数据皆低位在前 一帧字符发送 接收结束 置位标志位 TI RI 并申请SIO中断 中断控制 中断允许位ES中断入口 0023H 二 串行接口控制 1 数据缓冲器SBUF发送SBUF和接收SBUF共用一个地址99H 1 发送SBUF存放待发送的8位数据 写入SBUF将同时启动发送 发送指令 MOVSBUF A 2 接收SBUF存放已接收成功的8位数据 供CPU读取 读取串行口接收数据指令 MOVA SBUF 2 串行口控制 状态寄存器SCON 98H SM0 SM1 选择串行口4种工作方式 SM2 多机控制位 用于多机通讯 REN 允许接收控制位 REN 1 允许接收 REN 0 禁止接收 TB8 发送的第9位数据位 可用作校验位和地址 数据标识位RB8 接收的第9位数据位或停止位TI 发送中断标志 发送一帧结束 TI 1 必须软件清零RI 接收中断标志 接收一帧结束 RI 1 必须软件清零3 节电控制寄存器PCONSMOD PCON 7 波特率加倍控制位 SMOD 1 波特率加倍 SMOD 0 则不加倍 SM0 SM1选择四种工作方式 一 方式0 同步移位寄存器方式 用于扩展并行I O接口 1 一帧8位 无起始位和停止位 2 RXD 数据输入 输出端 TXD 同步脉冲输出端 每个脉冲对应一个数据位 3 波特率B fosc 12如 fosc 12MHz B 1MHz 每位数据占1 s 8 1 3串行接口的工作方式 4 发送过程 写入SBUF 启动发送 一帧发送结束 TI 1 接收过程 REN 1且RI 0 启动接收 一帧接收完毕 RI 1 数据从RXD P3 0 引脚串行输出 低位在先 高位在后 TXD P3 1 引脚输出移位脉冲 其频率为foc 12 发送完毕后 中断标志位TI为1 如要发送数据 如下所示 MOVSCON 00H 串行口方式0MOVSBUF A 将数据送出JNBTI 等待数据发送完毕 5 移位寄存器方式举例 二 方式1 8位数据异步通讯方式 1 一帧10位 8位数据位 1个起始位 0 1个停止位 1 2 RXD 接收数据端 TXD 发送数据端 3 波特率 用T1作为波特率发生器 B 2SMOD 32 T1溢出率 4 发送 写入SBUF 同时启动发送 一帧发送结束 TI 1 接收 REN 1 允许接收 接收完一帧 若RI 0且停止位为1 或SM2 0 将接收数据装入SBUF 停止位装入RB8 并使RI 1 否则丢弃接收数据 不置位RI 当REN 1 CPU开始采样RXD引脚负跳变信号 若出现负跳变 才进入数据接收状态 先检测起始位 若第一位为0 继续接收其余位 否则 停止接收 重新采样负跳变 数据采样速率为波特率16倍频 在数据位中间 用第7 8 9个脉冲采样3次数据位 并3中取2保留采样值 9位数据异步通讯方式 1 一帧为11位 9位数据位 1个起始位 0 1个停止位 1 第9位数据位在TB8 RB8中 常用作校验位和多机通讯标识位 2 RXD 接收数据端 TXD 发送数据端 3 波特率 方式2 B 2SMOD 64 fosc 方式3 B 2SMOD 32 T1溢出率 三 方式2和方式3 4 发送 先装入TB8 写入SBUF并启动发送 发送结束 TI 1 接收 REN 1 允许接收 接收完一帧 若RI 0且第9位为1 或SM2 0 将接收数据装入接收SBUF 第9位装入RB8 使RI 1 否则丢弃接收数据 不置位RI 8 1 4 计算波特率 方式0为固定波特率 B fosc 12方式2可选两种波特率 B 2SMOD 64 fosc方式1 3为可变波特率 用T1作波特率发生器 B 2SMOD 32 T1溢出率T1为方式2的时间常数 X 28 t T溢出时间 t 28 X T 28 X 12 foscT1溢出率 1 t fosc 12 2n X 波特率B 2SMOD 32 fosc 12 28 X 串行口方式1 3 根据波特率选择T1工作方式 计算时间常数 T1选方式2 TH1 X 28 fosc 12 2SMOD 32 B T1选方式1用于低波特率 需考虑T1重装时间常数时间 8 1 5串行口的应用 串行口初始化编程格式 SIO MOVSCON 控制状态字 写方式字且TI RI 0 MOVPCON 80H 波特率加倍 MOVTMOD 20H T1作波特率发生器 MOVTH1 X 选定波特率 MOVTL1 X SETBTR1 SETBEA 开串行口中断 SETBES 一 串行口初始化 二 发送程序 1 查询方式 TRAM MOVA R0 取数据MOVSBUF A 发送一个字符WAIT JBCTI NEXT 等待发送结束SJMPWAITNEXT INCR0 准备下一次发送SJMPTRAM 2 中断方式 ORG0023H 串行口中断入口AJMPSINTMAIN 初始化编程TRAM MOVA R0 取数据MOVSBUF A 发送第一个字符H SJMPH 其它工作SINT CLRTI 中断服务程序INCR0MOVA R0 取数据MOVSBUF A 发送下一个字符RETI 三 接收程序 REN 1 RI 0等待接收 当RI 1 从SBUF读取数据 1 查询方式 WAIT JBCRI NEXT 查询等待SJMPWAITNEXT MOVA SBUF 读取接收数据MOV R0 A 保存数据INCR0 准备下一次接收SJMPWAIT 四 串行口方式0 用于扩展单片机的并行I O接口 串行口实现 并行 串行的数据转换74LS165 74LS164实现 串行 并行的数据转换 五 异步通讯程序举例1 发送程序 将片内RAM50H起始单元的16个数由串行口发送 要求发送波特率为系统时钟的32分频 并进行奇偶校验 MAINT MOVSCON 80H 串行口初始化MOVPCON 80H 波特率SETBEASETBES 开串行口中断MOVR0 50H 设数据指针MOVR7 10H 数据长度LOOP MOVA R0 取一个字符MOVC P 加奇偶校验MOVTB8 CMOVSBUF A 启动一次发送HERE SJMPHERE CPU执行其它任务 ORG0023H 串行口中断入口AJMPTRANI TRANI PUSHA 保护现场PUSHPSWCLRTI 清发送结束标志DJNZR7 NEXT 是否发送完 CLRES 发送完 关闭串行口中断SJMPTENDNEXT INCR0 未发送完 修改指针MOVA R0 取下一个字符MOVC P 加奇偶校验MOVTB8 CMOVSBUF A 发送一个字符POPPSW 恢复现场POPATEND RETI 中断返回 2 接收程序 串行输入16个字符 存入片内RAM的50H起始单元 串行口波特率为2400 设晶振为11 0592MHz RECS MOVSCON 50H 串行口方式1允许接收MOVTMOD 20H T1方式2定时MOVTL1 0F4H 写入T1时间常数MOVTH1 0F4HSETBTR1 启动T1MOVR0 50H 设数据指针MOVR7 10H 接收数据长度WAIT JBCRI NEXT 等待串行口接收SJMPWAITNEXT MOVA SBUF 读取接收字符MOV R0 A 保存一个字符INCR0 修改指针DJNZR7 WAIT 全部字符接收完 RET 3 接收程序 串行输入16个字符 进行奇偶校验 RECS MOVSCON 0D0H 串行口方式3允许接收MOVTMOD 20H T1方式2定时MOVTL1 0F4H 写入T1时间常数MOVTH1 0F4HSETBTR1 启动T1MOVR0 50H 设数据指针MOVR7 10H 接收数据长度WAIT JBCRI NEXT 等待串行口接收SJMPWAITNEXT MOVA SBUF 取一个接收字符JNBP COMP 奇偶校验JNBRB8 ERR P RB8 数据出错SJMPRIGHT P RB8 数据正确COMP JBRB8 ERRRIGHT MOV R0 A 保存一个字符INCR0 修改指针DJNZR7 WAIT 全部字符接收完 CLRF0 F0 0 接收数据全部正确RETERR SETBF0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特岗教师招聘考试初中生物备考资料
- 甲状腺功能低下课件
- 江苏南京2022-2024年中考满分作文31篇
- 云南省楚雄彝族自治州联考2024-2025学年高二下学期7月期末化学试题(含答案)
- 辽宁省辽阳市2024-2025学年高一下学期期末考试物理试卷(含答案)
- 2025年福建省福州市一中中考数学适应性试卷(4月份)(含答案)
- 新解读《GB-T 36136-2018结核分枝杆菌耐药基因芯片检测基本要求》
- 新解读《GB-T 15054.2-2018小螺纹 第2部分:公差和极限尺寸》
- 生物实验安全知识培训课件
- 2025年考研英语(一)阅读理解细节理解 提升查找与识别细节能力试卷
- 【课件】新高三启动主题班会:启航高三逐梦未来
- (正式版)JBT 7248-2024 阀门用低温钢铸件技术规范
- 软件无线电原理与应用第3版楼才义部分习题答案
- 人工智能导论课件
- 做一名新时代的优秀教师课件
- 中国古代的美育思想课件
- 日周月安全检查记录表
- 风力发电项目报价清单 (风机基础等)
- 重庆物业服务收费管理办法-重庆物价局
- GA∕T 1046-2013 居民身份证指纹采集基本规程
- (高清正版)SL 310-2019 村镇供水工程技术规范(完整版)
评论
0/150
提交评论