1689【毕设课设】基于PIC单片机MODBUS总线通信仿真设计
基于PIC单片机MODBUS总线通信仿真设计,一主机和四从机的控制设计。
//-----------------------------------------------------------------
// 名称: MODBUS总线通信仿真(从机程序)
//-----------------------------------------------------------------
// 说明: 本例运行时,从机接收主机命令,然后将A/D转换值通过485回发给主机显示.
//
//-----------------------------------------------------------------
#define _XTAL_FREQ 4000000UL
#define INT8U unsigned char
#define INT16U unsigned int
#define INT32U unsigned long
#include <pic.h>
#include <stdio.h>
//配置字,注意禁用MCLR,因为RA3/MCLR/VPP引脚用于485从机地址次高位输入
__CONFIG(MCLRDIS & WDTDIS & INTIO);
volatile INT8U recv_Data[4]; //串口接收数据缓冲区(4字节)
volatile INT8U recv_idx = 0; //串口接收数据缓冲区索引
volatile INT8U sl_Addr; //485从机地址
INT16U CRC; //16位CRC校验结果
//-----------------------------------------------------------------
#define LED_Ptr RC0 //本机收/发指示灯
#define RDE_485 RC3 //RS485通信控制端
#define ADC_REQ 65 //要求从机返回A/D值的自定义命令码(范围65~72)
//19200波特率每字符时间为: 1/19200*(1+8+2) ≈ 572us
//帧 间: 3.5个字符时间为: 572 * (3.5 + 1) ≈ 2574us
//字节间: 1.5个字符时间为: 572 * (1.5 + 1) ≈ 1430us
#define FRAME_SPAN 2574 //相临帧之间的间隔时间
#define BYTE_SPAN 1430 //帧内字节之间的间隔时间
bit b, F_T1, T_BYTE, T_FRAME, Recv_OK;//相关标识位
INT8U AD_Result[2]; //2字节的A/D转换结果
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有文章、资源,如无特殊说明或标注,均为网络网友上传,设计版权均归原作者所有,资源下载后仅供个人学习研究使用,严禁未取得作者版权后在网上传播。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可向平台提供完善的侵权信息,联系我们进行处理。