已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用技术 主讲 王永祥 项目五单片机双机通信系统设计与制作 知识目标了解通信的基本概念掌握51单片机串行口结构及控制寄存器设置掌握单片机串行通信的编程方法技能目标掌握单片机双机通信线路连接方法掌握串行口的调试方法 5 1本项目的工作任务 设计一个单片机双机通信系统 单片机a接1个8位拨码开关 单片机b接8个发光二极管 通过串行通信实现由a机拨码开关控制b机发光二极管的亮灭 5 2串行通信基础 5 2 1串行通信基本概念 异步通信和同步通信异步通信 同步通信 波特率每秒钟传送二进制数的位数 如 异步通信中 若每秒传送120个字符 而每个字符可包括10位 起始位 校验位 停止位各1位 数据位7位 则波特率为 120 10 1200位 秒 bps 串行通信的方向 串行口的连接三线连接 rs232接口连接 modem连接 5 2 2串行口的结构及工作方式 1 数据缓冲器sbuf发送sbuf和接收sbuf共用一个地址99h 发送sbuf存放待发送数据 写入sbuf将同时启动发送 发送指令 movsbuf a接收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 须软件清零 串行口的工作方式 方式0 同步移位寄存器方式 一帧8位 无起始位和停止位 先发送 接收最低位 rxd 数据输入 输出端 txd 同步脉冲输出端 每个脉冲对应一个数据位 波特率b fosc 12如 fosc 12mhz b 1mhz 每位数据占1 s 发送过程 写入sbuf 启动发送 一帧发送结束 ti 1 接收过程 ren 1且ri 0 启动接收 一帧接收完毕 ri 1 方式1 10位通用异步通讯方式一帧 8位数据位 1个起始位 0 1个停止位 1 波特率 用t1作为波特率发生器 b 2smod 32 t1溢出率 发送 写入sbuf 同时启动发送 一帧发送结束 ti 1 接收 ren 1 允许接收 接收完一帧 若ri 0且停止位为1 将接收数据装入sbuf 停止位装入rb8 并使ri 1 方式2和方式3 11位异步通信方式一帧 1位起始位 8位数据位 1位可编程位 1位停止位 波特率 方式2b 2smod 64 fosc 方式3b 2smod 32 t1溢出率 发送 先根据通信协议由软件设置tb8 由写 sbuf 指令启动发送过程 并把8位数据装入 sbuf 同时串口还自动把tb8装到发送移位寄存器的第9位数据位置上 并通知发送控制器要求发送 然后从txd端输出一帧数据 接收 先设置ren 1 使其允许接收 同时置ri 0 在此前提下 再依sm2和所接收到的rb8的状态才能决定串行口在信息到来后是否会使ri置1 如果ri置1 在中断方式下将申请中断 接收数据 当sm2 0时 不管rb8为1还是为0 ri都置1 当sm2 1 且rb8 1时 表示在多机通信方式下 接收的信息位地址帧 此时ri置1 当sm2 1 且rb8 0时 表示接收的信息为数据帧 但不是发给本机的 此时 ri不置1 丢弃sbuf中所收数据帧 5 3串行通信的程序设计 串行口的初始化编程串行口控制寄存器scon设置电源控制寄存器pcon设置波特率发生器t1的初始化中断系统的设置 常用初始化内容 first movson 工作方式字 设定工作方式movpcon 80h 波特率加倍时 设定movtmod 20h 波特率可变时 用于设定t1工作方式movth1 定时初值 设定初值movth1 定时初值clret1 禁止t1中断setbtr1 启动t1setbea 开cpu中断setbes 开串口中断setbps 设定串口为最高优先级 例5 1 若fosc 6mhz 波特率为2400bps 设smod 1 则定时 计数初值为多少 并进行初始化编程 初值计算 由波特率 2somd 32 t1的溢出率 2somd 32 fosc 12 256 x 有x 243 f3h 初始化程序 movscon 40hmovtmod 20hmovpcom 80hclrmovth1 0f3hmovtl1 0f3hclret1setbtr1 发送和接收程序设计查询方式 中断方式 奇偶校验位的处理 当串行口采用方式2和方式3时工作时 帧数据格式中的第9位可以用作奇偶校验位 发送时 当发送的字节数据送入累加器a后 p标志和a中1的总个数应为偶数 此时 可将p值送入tb8 这样就实现了数据的补偶发送 与此同时 在接收时 可在读取数据时进行 偶校验 如果rb8中的位值与累加器a从sbuf读入的数据中的1加起来 1 的个数也是偶数 则接收正确 否则为出错 5 4双机通信系统设计与制作 双机通信系统硬件制作 双机通信系统软件设计 发送程序org0000hajmpmainorg0100hmain movsp 60movscon 40h 串行口以方式1工作movtmod 20h t1以方式2工作movth1 0fdh 波特率为9600bpsmovtl1 0fdh setbtr1movp1 0ffhmov30h 0ffh 设拨码开关初始值k0 mova p1 读入拨码开关cjnea 30h k1 判断与前次是不是相同 不同则调至k1sjmpk0k1 mov30h a 存入拨码开关新值movsbuf a 输入sbuf发送wait jbcti k0 是否发送完毕 sjmpwaitend 接收程序org0000hajmpmainorg0100hmain movsp 60movscon 50hmovtmod 20hmovth1 0fdhmovtl1 0fdh setbtr1m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盆景摆设服务协议书
- 高速占地赔偿合同范本
- 社区助老餐厅协议书
- 出轨协议赔偿协议书
- 餐饮标准经营合同范本
- 材料假一罚十协议书
- 举办分校协议书范本
- 施工入股协议书范本
- 易的借款担保合同范本
- 美发退款协议书范本
- 核和辐射事故医学应急演练
- 医疗机构化粪池清掏和消毒方案
- GB/T 12979-2024近景摄影测量规范
- 2024新《公司法》亮点全面解读课件
- JB-T 14320-2022 氧气用止回阀
- 深基坑拉森钢板桩支护方案完整版
- 小学二年级乘除法口算题每页100道
- 第三单元一《伐檀》公开课一等奖创新教案-【中职专用】(中职语文高教版2023-2024-基础模块上册)
- 山西2023年晋商银行校园招聘柜员岗考试参考题库含答案详解
- 孙子兵法与企业管理
- 维克多高中英语3500词汇
评论
0/150
提交评论