“基于485总线的评分系统”说明
(一)设计思路和方法
RS485为半双工通信。只有通信双方一方处于发送,一方处于接收时,通信才能正常进行。本程序模拟modebus协议,采用主、从技术,上位机的主控制器可以与所有的下位机通信,也可以单独与一个指定的下位机通信。通过RS232转485的转换器引出两根总线,将多个带485模块的下位机控制程序的单片机挂载在该总线上,各单片机有序地通过总线实现评分操作,将分数传给上位机进行显示。
模拟modebus协议,本程序上下位机的数据包都只含5个字节。基本格式:数据包头(0x5A)+地址码(广播地址/从机地址)+功能码+携带数据(一个字节)+校验码字节,携带数据部分可以扩充多个字节,可以视情况进行修改。
数据包具体定义如下:
(1)主机检测从机是否正常相关数据包:(主机与单个从机设备通信)
A、设备正常检测数据包:
方向:上位机—–>下位机
数据包消息:数据包头+从机地址+检测功能码(Fun_CheckSlave)+自定义内容(Check_Content)+校验字节
功能:查询下位机是否正常。正常,下位机发送回应查询数据包;不正常,不回应;数据传输过程发生错误,下位机发送回应错误数据包,上位机可以通过设置多次轮询来重新检测该设备是否正常;
B、回应查询数据包:
方向:下位机—–>上位机
数据包消息:数据包头+从机地址+检测功能码(Fun_CheckSlave)+自定义内容(接收自主机Check_Content)+校验字节
C、回应错误数据包:
方向:下位机—–>上位机
数据包消息:数据包头+从机地址+检测功能码(Fun_CheckSlave)+错误码(ErrorInfo)+校验字节
(2)主机获取从机评分相关数据包:(主机与单个从机设备通信)
D、获取多、单机评分数据包:
方向:上位机—–>下位机
数据包消息:数据包头+检测正常从机地址+读下位机功能码(Fun_ReadInfo)+从机地址+校验字节
功能:对检测正常的设备,进行一次轮询,获取评分已经准备好的从机的分数。对于单机直接进行通信,没有轮询。
E、结果返回数据包:
方向:下位机—–>上位机
数据包消息:数据包头+从机地址+复位功能码(Fun_ReadInfo)+从机返回的分数值+校验字节(分数值>100:表示上面提及的为准备好,错误消息的变体)
(3)此轮评分结束相关数据包
F、复位数据包:(主机与所有从机通信)
方向:下位机—–>上位机
数据包消息:数据包头+广播地址+复位功能码(Fun_Reset)+从机返回的分数值+校验字节
功能:指示所有正常连接的从机进行复位操作,准备下一轮的评分。
(二)评分系统电路原理图
1. 485模块电路原理图

  1. 导航按键电路图

  2. LED数码管和二极管显示电路图

(三)电路工作原理
485_D/R为MAX485使能,当为高时,485为发送态;当为低时,485为接收态。485_D/R LED指示485_D/R值的状态。
485_RXD引脚接收数据,485_RX LED点亮时表示正在接收数据。
485_TXD引脚发送数据,485_TX LED点亮时表示正在发送数据。
在之前的测试DEMO中已经对这些电路的实现进行了详细的阐述,这里不再述说。

(四)程序总框图设计流程如下所示

(五)下位机相关寄存器配置
1. 选择485芯片引脚:
P_SW2:外围设备功能切换控制寄存器2(不可位寻址)

串口2可在2个地方切换,由S2_S控制位来选择。

该开发板485芯片使用串口2的第2组引脚:
P_SW2 |= 0x01 ;

  1. 设置串口2的工作模式:
    S2CON:串行口2的控制寄存器

S2SM0指定串行口2的工作方式。

设置串行口2为:8位UART,波特率可变;允许串行口2接收
S2CON = 0x50 ;

  1. 选择定时器工作模式:
    AUXR:辅助寄存器(不可位寻址)

T2R:定时器2运行控制位
T2_C/T:控制定时器2用作定时器或计数器;
T2x12:定时器2速度控制位。
设置定时器2为1T模式,并启动定时器2
AUXR |= 0x14 ;

  1. 串行口2中断允许:
    IE2:中断允许寄存器2(不可位寻址)

ES2为串行口2中断允许位
IE:中断允许寄存器(可位寻址)中的EA为CPU的总中断允许控制位。
允许串行口2中断:
IE2 |= 0x01 ;
EA = 1 ;

  1. S2BUF为串口2的收/发缓冲寄存器;S2RI与S2TI为串口2的收/发中断请求标志位。

  2. 上下位机中,数据包相关功能码及附加数据定义如下:
    功能码:

    define Fun_ReadInfo “03”

    define Fun_WriteInfo “05”

    define Fun_CheckSlave “08”

    define Fun_AddrErr “10”

    define Fun_Reset “01”

    附加数据:

    define ErrorInfo “6f”

    define Packet_Head “5A”

    define Broadcast_Addr “00”

    define Check_Content “13”

(六)案例代码见“流水灯工程”

(七)测试方法
1.用STC ISP默认设置,对连接到485总线的所有单片机进行操作:打开工程中的HEX并下载
2.下载后观察现象为:最左边两个数码管显示00,最右边3个数码管显示000
3.本案例需要辅助操作,从机编号(地址)就绪标志通过key2控制,设置评分就绪的标志通过key1控制;具体操作及相关现象参看工程中的视频文件。视频中仅连接2个单片机,实际中我们可以连接多个单片机,进行评分。

“基于485总线的评分系统”相关推荐

  1. 基于485总线的评分系统

    基于485总线的评分系统 程序设计目标: 通过本案例加深理解RS485通信方式,实现上位机的主控制器与所有的下位机进行通信. 程序运行效果说明: 通过RS232/RS485转换器将多个带有485模块的 ...

  2. 基于485总线的评分系统双机实验报告

    本来还想着做多机的,但老师已经打分了就算了.为了压缩到6页删减了很多内容,将就看吧 基于485总线的评分系统实验报告 实验目标: 通过本案例加深理解RS485通信方式,实现上位机的主控制器与所有的下位 ...

  3. 基于Android的课堂评分系统

    需求信息: 管理员 1:登录 2:学生教师课程管理,可以增加 教师 1:登录 2:选择要上课的学生,设置该课程成绩比例 3:出勤管理 请假-2,旷课-3,迟到早退-1 4:分组管理 指定组长,组名 5 ...

  4. pcie总线连接两台电脑_基于PCIE总线多主互连系统的设计与实现

    女 , 山东人 , 工程师 , 研究方向为计算机应用 : 孙大东 (1980 ) , 男 , 吉林辽源人 , 硕 士 , 高级工程师 , 研究方向为嵌入式系统网络 : 张明庆 (1980 ) , 男 ...

  5. 基于微信小程序的体育课评分系统小程序

    文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/my ...

  6. 基于ZYNQ 7000的1553B总线控制器测试系统的设计与实现

    为了方便对1553B设备进行测试,本文介绍了一种基于ZYNQ 7000 平台的1553B总线控制器测试系统的设计与实现方法.该系统首先在 PC机上通过人机交互界面配置数据,支持灵活对数据故障注入,然后 ...

  7. 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc

    基于XML结构的C语言考试的自动评分系统 摘 要:在C程序设计语言考试中为了解决定位难.一题多解和对于主观题没有统一的评价标准的情况,对考试系统中客观题和程序题的评分方法进行了研究.在比较结果的评分基 ...

  8. 基于GPIB总线的无线电频谱监测系统的设计delphi多线程超时控

    随着通信技术的发展,无线电资源作为公共资源的一种,需要国家有关部门对其进行有效的分配和.设计界面友好.运行稳定.实时反应迅速的监测软件是对无线电资源进行有效配置的重要环节,也是国家和信息安全保障的重要 ...

  9. MODBUS通讯协议详解(基于485)

    参考:灵育科技Modbus课程总结 作者:Naunyang 时间:2020-11-23 13:51:58 网址:https://blog.csdn.net/Naunyang/article/detai ...

最新文章

  1. “钱”在这个社会是怎么一个地位
  2. HDU-2546-饭卡
  3. 3-1 Apache Shiro权限管理框架介绍
  4. TypeError: ‘NoneType‘ object is not callable--python报错解决办法
  5. SimpleDateFormat线程不安全及解决方案
  6. 【BZOJ4504】K个串 可持久化线段树+堆
  7. layer checkbox
  8. HTML点击按钮弹出颜色选择器,css如何实现按钮点击与松开颜色不同?
  9. 从无到有axure原型设计_从零开始学Axure原型设计(入门篇)
  10. 服务器虚拟化对硬件有要求,虚拟主机对硬件有要求吗
  11. 蠕虫病毒html,蠕虫病毒的防治
  12. NR 5G SRB的定义和类型
  13. 【Appium】Python+Appium实现支付宝蚂蚁森林自动收取能量的一种解决方案
  14. 浙江工商大学计算机考试科目,浙江工商大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  15. 网络应用程序设计模式:浅谈CS架构与BS架构
  16. 电阻 电容表 电感表 频率表 测量套件 51单片机 STC89C52 程序 万用表
  17. IGBT导通损耗和开关损耗
  18. HTML中基本元素基本设置(例如:字体颜色、大小、背景颜色)。
  19. 【大咖有约】Garena 黄智凯:利用Docker构建自动化运维平台
  20. Apache Hadoop3.x 分布式集群配置安装

热门文章

  1. 手机屏幕常见故障_手机测试常见问题总结!
  2. 2022.09 青少年软件编程(图形化) 等级考试试卷(四级)
  3. 【 文字识别-优化加速】-google翻译手机版
  4. hadoop 任务运行到running job就卡住了 INFO mapreduce.Job: Running job: job_XXXXXXX
  5. 谁会使用IEC61499
  6. gwo算法matlab源代码,智能优化算法应用:基于GWO优化BP神经网络 - 附代码
  7. 回合制游戏中的活动需要注意的
  8. java如何保证数据安全_java高并发下怎么保障数据安全?有哪些办法?
  9. Data Analysis
  10. #176 – Two Kinds of Templates(两种模板)