已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验9点对点串行通信 一 实验目的二 实验设备与器材三 实验电路四 实验内容 过程及要求 一 实验目的 1 理解串行通信概念 2 掌握MCS 51串行通信口的初始化方法 步骤 3 掌握串行发送 接收程序的编写方法 理解串行通信波特率误差允许范围 二 实验设备与器材仿真器及其附件 图1所示的实验电路板各两套 RS 232串行通信电缆一条 导线数条 三 实验电路按实验7的要求设置实验板上跳线 将JP105 JP106的1 2引脚短路 用RS 232电缆或导线将第一块实验电路板的TXD 发送端 引脚与第二块电路板的RXD 接收端 引脚连在一起 第一块实验电路板的RXD 接收端 引脚与第二块电路板的TXD 发送端 引脚连在一起 再用导线将两块电路板地线连在一起 用RS 232通信电缆连接时 两块实验电路板地线已通过DB9插座的第5引脚连在一起 这样就形成了没有联络信号的串行通信方式 四 实验内容 过程及要求1 串行通信格式的约定 1 波特率 CPS 为4800 假设晶振频率为11 0592MHz 使用定时器T1溢出率作发送 接收波特率 则定时器T1重装初值C 0FAH 不倍增 2 数据长度为9位 其中b7 b0为数据位 b8为奇偶校验位 3 采用偶校验方式 即传送的8位数据中含有奇数个 1 时 校验位为1 2 没有协议的单字节收 发对于单字节串行收 发来说 无需约定通信协议 完成了串行口初始化后 即可通过写串行输出缓冲寄存器SBUF 启动串行发送 当接收有效标志RI置1时 就表示已接收了一字节的数据信息 试在实验7的基础上 增加单字节串行通信功能 使程序具备在任一实验板上按下某一按键时 两块板同时显示被按下的键名 下面给出了与串行通信有关的程序段 完整程序由读者编写 初始化定时器T1 将定时器T1的溢出信号作串行通信波特率发生器输入信号 MOVTL1 250 4800波特率对应定时器初值MOVTH1 250ANLTMOD 0F0HORLTMOD 00100000B 定时器T1工作在方式2 8位自动重装初值 SETBTR1 启动定时器T1CLRET1 禁止T1中断 初始化串行口 MOVSCON 11010000B 串行口工作在方式3 SM2 0 以便用TB8位 作奇偶校验位 SETBREN 允许接收SETBES 允许串行中断SETBEA 开中断 单字节串行发送初始化MOVA KEYNAME 取按键值送AMOVC P MOVTB8 C 奇偶标志P送TB8 即b8位MOVSBUF A 写串行发送缓冲器即可将一字节信息按设定的波特率发送到串行口上PROCUART 串行中断服务程序UART PUSHACCPUSHPSWJNBTI NEXT1 串行发送结束引起中断CLRTI 清除发送中断标志 NEXT1 JNBRI EXIT 串行接收有效CLRRI 清除接收有效中断MOVA SBUF 读串行接收缓冲器 奇偶校验 即检查P标志与RB8位是否相同 否则奇偶校验错MOVC PANLC RB8 计算P MOVF0 C 暂时保存在F0标志中MOVC RB8ANLC P 计算RB8 ORLC F0 完成了P与RB8的异或运算JCEXIT 校验正确 MOVRXDBUF A 数据送串行接收缓冲区SETBRXDB 串行接收有效标志置1EXIT POPPSWPOPACCRETIEND 3 按约定协议收 发的双机串行通信将JP201 JP202跳线的1 2引脚短路 即串行数据从P1 2引脚输出 串行移位脉冲从P3 4引脚输出 并行输出锁存信号从P3 5输出 在实验6的基础上 通过串行口将电子钟时间送到另一实验板显示出来 通信协议如下 1 数据帧格式为 0AAH 起始标志 4字节信息 1字节的和校验信息 2 接收方正确接收后回送A5作应答 如果错误 则回送A6 请求重发 3 发送 接收缓冲区在30H 35H单元 其中35H单元存放和校验信息 b7作接收缓冲数据有效标志 4 发送 接收均采用中断方式 与串行发送有关的发送参考程序如下 TXDBDATA30H 发送缓冲区TXDCDATA35H 发送 接收字节计数器TXDOKBIT07H 发送成功标志 1表示成功 0表示失败 初始化串行口MOVSCON 11010000B 串行口工作在方式3 SM2 0 以便用TB8位 作奇偶校验位 SETBREN 允许接收PROCTIMETXB 时间送发送缓冲区 TIMETXB MOVA SECONDMOVB 10DIVAB 转换为BCD码 十位在A中 个位在B中MOVR0 TXDB 2MOV R0 AINCR0MOV R0 B 秒低位送发送缓冲区缓冲区 分单元计数器笔段码送显示缓冲区 MOVA MINUTEMOVB 10DIVAB 转换为BCD码 十位在A中 个位在B中MOV R0 AINCR0MOV R0 B 分低位送发送缓冲区缓冲区 计算校验和MOVR0 TXDBMOVR7 4CLRA 清累加器 LOOP1 ADDA R0 累加求和INCR0DJNZR7 LOOP1ANLA 7FH 保留和的低7位 避免与帧首标志相同MOV R0 A 校验和存入发送缓冲区MOVA 0AAH 先发送帧首标志MOVC P 奇偶标志P送CMOVTB8 C 奇偶标志P送TB8 即b8位MOVSBUF A 写串行口缓冲寄存器 启动发送MOVTXDC 0 初始化发送字节数RETEND PROCUART 串行中断服务程序UART PUSHACCPUSHPSWSETBRS0 切换工作寄存器区SETBRS1JNBTI NEXT2 串行发送结束中断CLRTI 清除发送结束中断 检查发送字节计数器 确定是否已发送了所有数据MOVA TXDCCJNEA 5 NEXT1 NEXT1 JNCNEXT2 小于5 说明尚未完成发送ADDA TXDB 加上发送缓冲区首地址MOVR0 AMOVA R0 取发送数据MOVC P 奇偶标志P送CMOVTB8 C 奇偶标志P送TB8 即b8位MOVSBUF A 写串行口缓冲寄存器 启动发送INCTXDC 发送字节计数器加1 NEXT2 JNBRI EXIT 退出CLRRI 清除接收有效中断 串行接收有效MOVA SBUF 执行奇偶校验 P标志与RB8位应该相同 否则就错MOVC PANLC RB8 计算P MOVF0 C 暂时保在存F0标志中MOVC RB8ANLC P 计算RB8 ORLC F0 完成了P与RB8的异或运算 JCEXIT 奇偶校验错 奇偶校验正确CJNEA 0A5H NEXT3 等于0A5H 说明接收方已准确接收 成功标志置1SETBTXDOKSJMPEXITNEXT3 CJNEA 0A6H EXIT 重新发送CLRTXDOK 清除发送成功标志MOVTXDC 0 初始化发送字节计数器MOVA 0AAH 发送帧首标志 MOVC P 奇偶标志P送CMOVTB8 C 奇偶标志P送TB8 即b8位MOVSBUF A 写串行口缓冲寄存器 启动发送EXIT POPPSWPOPACCRETIEND 与串行接收有关的参考程序段如下 初始化串行口MOVSCON 11010000B 串行口工作在方式3 SM2 0 以便用TB8位作奇偶校验位 SETBREN 允许接收ORLPCON 40H 将b6位置1 启用帧错误侦测功能 初始化中断控制器SETBES 允许串行口中断SETBEA 开中断 接收显示处理 WAIT MOVR0 RXDB 4MOVA R0 读接收缓冲区有效标志JNBACC 7 WAIT 接收缓冲区无效 等待CLRACC 7MOV R0 A 清除接收缓冲区有效标志 把接收缓冲区信息送显示缓冲区显示MOVDPTR LEDTAB 0 F字模表首地址送DPTRMOVR0 DISPBUFMOVR1 RXDBMOVR7 4 LOOP1 MOVA R1 取显示数码MOVCA A DPTR 取数码对应字模MOV R0 A 字模送显示缓冲区INCR0INCR1DJNZR7 LOOP1 显示分与秒之间的小数点MOVR0 DISPBUF 1MOVA R0CLRACC 7 使b7 即DP位亮 MOV R0 A 回写SETBREN 允许串行口接收新的数据LCALLS DISP 执行串行输出子程序 将笔段码送LEDSJMPWAIT 等待ENDPROCUART 串行中断服务子程序UART PUSHACCPUSHPSWSETBRS0 切换工作寄存器区SETBRS1 JNBRI NEXT1CLRRI 清除接收中断JBCSCON 7 RERROR 帧错误MOVA SBUF 执行奇偶校验 P标志与RB8位应该相同 否则偶校验错MOVC PANLC RB8 计算P MOVF0 C 暂保存在F0标志中MOVC RB8ANLC P 计算RB8 ORLC F0 完成了P与RB8的异或运算JCRERROR 奇偶校验错 奇偶校验正确 判别是否为帧首信息CJNEA 0AAH NEXT11 等于0AAH 属于一信息帧开始MOVRXDC 0 复位接收字节计数器SETBFRAMES 帧开始标志有效SJMPNEXT1NEXT11 非帧首信息JNBFRAMES RERROR 在这之前尚未接收到帧开始标志 当前接收内容为帧内数据信息MOVA RXDC ADDA RXDB 加接收缓冲区首地址MOVR0 AMOV R0 SBUF 接收数据送接收缓冲区INCRXDC 接收字节计数器加1 判别接收的字节数MOVA RXDCCJNEA 5 NEXT1 已经接收了五字节 做和校验MOVR0 RXDBMOVR7 4 对30H 33H单元求和 共四字节CLRA 清除累加器 LOOP1 ADDA R0 累加求和INCR0DJNZR7 LOOP1XRLA R0 与接收到的和校验字节异或JNZRERROR 正确MOVA R0ORLA 80HMOV R0 A 接收缓冲区数据有效标志置1MOVA 0A5H 发送0A5H应答信号CLRREN 停止接收 等待处理接收数据SJMPTXDACK RERROR MOVA 0A6H 错误标志TXDACK CLRFRAMES 清除帧开始标志MOVRXDC 0 复位接收字节计数器MOVC P 奇偶标志P送CMOVTB8 C 奇偶标志P送TB8 即b8位MOVSBUF A 写串行口缓冲寄存器 启动发送SJMPEXIT NEXT1 JNBT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年鸡西辅警招聘考试题库及答案详解参考
- 2023年聊城辅警招聘考试真题附答案详解(培优a卷)
- 2024年南宁辅警协警招聘考试真题含答案详解(夺分金卷)
- 2024年南通辅警招聘考试真题及答案详解(真题汇编)
- 2025年江西省吉安市吉水县二中高二化学第一学期期末质量跟踪监视试题含解析
- 2024年城口县辅警招聘考试真题完整答案详解
- 淮北职业技术学院《创新方法与实践》2024-2025学年第一学期期末试卷
- 2025年青海省玉树市生物高一上期末达标检测试题含解析
- 濮阳职业技术学院《空间图文设计》2024-2025学年第一学期期末试卷
- 知识产权许可协议2025年独家条款
- 硕士学位论文开题报告模版(山东理工大学)
- 工程水库蓄水安全鉴定报告
- YS/T 704-2009填料用氢氧化铝分析方法电导率的测定
- GB/T 8814-1998门、窗框用硬聚氯乙烯(PVC)型材
- 2021-2022学年人教版科学五年级上册第9课《显微镜下的细胞》(教案)
- 道路运输企业岗位安全责任清单
- 高中心理健康课件:有效沟通(共18张PPT)
- 中国民航飞行员英语PEPEC900句带翻译
- 面瘫病诊疗方案临床路径
- 河北继续教育应急题库
- 评审专业技术职务任职资格人员简明表
评论
0/150
提交评论