pic与维纶触摸屏的MODBUS程序 c语言这边描述是modbus.h文件
//extern uchar ACC;
extern uchar sendBuf[40],receBuf[16];
extern uchar checkoutError; // ==2 偶校验错
extern uchar receTimeOut;
extern ulint dwTickCount;
uint crc_16(uchar *Array, uint Len);
void beginSend(void); //开始发送
void checkComm0Modbus(void); //检查uart0数据
void readCoil(void); //读线圈状态
void readRegisters(void); //03读保持寄存器
void readInputRegisters(void); //04读取输入寄存器
void forceSingleCoil(void); //05强制单个线圈
void presetSingleRegister(void); //06设置单个寄存器
void presetMultipleRegisters(void);//16设置多个寄存器
void forceMultipleCoils(void); //强制多个线圈
void LightChang(uchar code);
uint getRegisterVal(uint addr,uint *tempData); //取寄存器值 返回0表示成功
void getInputRegisterVal(uint addr,uint *tempData);//读取输入寄存器值 返回0表示成功
uint setRegisterVal(uint addr,uint tempData); //设置寄存器值 返回0表示成功
uint getCoilVal(uint addr,uint *tempData); //取线圈状态 返回0表示成功
uint setCoilVal(uint addr,uint tempData); //设定线圈状态 返回0表示成功
extern uchar sendCount; //发送字节个数
extern uchar receCount; //接收到的字节个数
extern uchar sendPosi; //发送位置
uchar testCoil; //用于测试 位地址1
uint testRegister; //用于测试 字址址16
uchar localAddr = 1; //单片机控制板的地址
uint Logocount=0; //LOgo显示时间计数
uint SysData[16]={0,1,2,3,4,5,6,7,8,9,0X0A,0X0B,0X0C,0X0D,0X0E,0X0F};//系统保持寄存器数据存储寄存器
uint AreaPara1_Disp[10]={2000,2000,2000,2000,2000,2000,2000,2000,2000,2000};//区域1-10光量寄存器
uchar Group_View[10]={65,65,65,65,65,65,65,65,65,65}; //查看分组寄存器
uchar Group_Set[10]={65,65,65,65,65,65,65,65,65,65}; //设置分组寄存器65,66,67,68,69,70,71,72,77,78
uint GroupBit_Enable=0x0001; //分组使能位
uchar Group_Now=65; //当前设置分组
uchar Group_Save=65; //当前确认设置分组
uchar Mode_Now; //当前设置模式
uchar Mode_Save; //当前确认设置模式
uchar ModeChange; //PLC控制器件,地址4x-58,控制自动模式和手动模式的设置画面切换
uchar ModeLight_Now; //
1