亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? modbus.h

?? 自己編寫的mod bus 協議源代碼。基于keilc51開發。主要使用回調函數
?? H
字號:
/*
*********************************************************************************************************
*                                          Modbus Protocol Module
*
*                        (c) Copyright 2006-08-01, XXXXXXXXXXXXXXXXXXXX Corp., ltd, 
*                                           All Rights Reserved
*
*                                                  V1.00
*
* File : modbus.h
* By   : kevin zhu
*********************************************************************************************************
*/
#ifndef __MOD_H__
#define __MOD_H__


#ifdef  MOD_GLOBALS
#define MOD_EXT
#else
#define MOD_EXT  extern
#endif

/*
*********************************************************************************************************
*                                         standard C51 libs
*********************************************************************************************************
*/
#include <AT89X55.h>
#include <stdio.h>    
#include <absacc.h>
#include <string.h>
#include <intrins.h>

/*
*********************************************************************************************************
*                                         constants
*********************************************************************************************************
*/
/*hardware layer*/
#define Timer0H							0xfc    //1ms
#define Timer0L							0x66
#define BAUDH							0xff
#define BAUDL							0xdc

/*driver layer*/
#define MAX_REC_LEN						100
#define MAX_SEND_LEN					512
#define TMROUT_9600BPS					20
#define REC_MAX_TMROUT					1000
#define REC_TIMEOUT_MOD					0

/*protocol layer*/
enum FNC_CODE
{					  
	READ_COIL_STATUS			=		1,
    READ_INPUT_STATUS,
    READ_HOLDING_REGISTERS,
    READ_INPUT_REGISTERS,
	FORCE_SINGLE_COIL,
	PRESET_SINGLE_REGISTER,
	PRESET_MULTIPLE_REGISTERS   =       16
};
enum EXP_CODE
{					  
	ILLEGAL_FUNCTION			=		1,
    ILLEGAL_DATA_ADDRESS,
    ILLEGAL_DATA_VALUE,
    SLAVE_DEVICE_FAILURE,
	ACKNOWLEDGE,
	SLAVE_DEVICE_BUSY,
	NEGATIVE_ACKNOWLEDGE,
	MEMORY_PARITY_ERROR
};

/*
*********************************************************************************************************
*                                         data types
*********************************************************************************************************
*/
/*driver layer*/
typedef unsigned char  BOOLEAN;
typedef unsigned char  INT8U;                    /* Unsigned  8 bit quantity                           */
typedef signed   char  INT8S;                    /* Signed    8 bit quantity                           */
typedef unsigned int   INT16U;                   /* Unsigned 16 bit quantity                           */
typedef signed   int   INT16S;                   /* Signed   16 bit quantity                           */
typedef unsigned long  INT32U;                   /* Unsigned 32 bit quantity                           */
typedef signed   long  INT32S;                   /* Signed   32 bit quantity                           */
typedef float          FP32;                     /* Single precision floating point                    */
typedef double         FP64;                     /* Double precision floating point                    */

typedef struct
{	
	INT8U xdata *pRecBuf;				//define recieve buffer and variable;
	INT8U  RecCnt;
	INT8U  RecLen;
	INT8U  RecFstFlg;
	INT16U RecTimeOutCnt;
	INT8U  RecStateMachine;
	BOOLEAN   RecOk;
	
	INT8U xdata *pTrBuf;				//define transmit buffer and variable;
	INT8U  TrCnt;
	INT8U  TrLen;
	BOOLEAN   TrOk;
}COM;

/*protocol control layer*/
typedef struct
{
	INT8U        Dev;					/*設備地址*/
	INT8U		 PtcMode;				/*MODBUS協議傳輸模式(RTU或ASCII)*/
	INT16U       nSizeOfDOTbl;			/*線圈狀態數據存放長度*/
	INT16U       nSizeOfDITbl;			/*離散量數據存放長度*/
	INT16U       nSizeOfAITbl;			/*模擬量數據存放長度*/
	INT8U  xdata *pAITbl;				/*存放模擬量數據表*/
	INT8U  xdata *pDITbl;				/*存放離散量數據表*/
	INT8U  xdata *pDOTbl;				/*存放線圈狀態數據表*/
										/*設置離散輸出通道狀態回調函數*/
    void (code *DOCtrl)(INT8U n,BOOLEAN State);
										/*設置單路寄存器回調函數*/
    void (code *AOCtrl)(INT8U n,INT16U Data);
										/*設置多路寄存器回調函數*/
    void (code *MultAOCtrl)(INT16U xdata *p,INT16U len);
}DTBL;


/*
*********************************************************************************************************
*                                         variables
*********************************************************************************************************
*/
/*driver layer*/
MOD_EXT INT8U  xdata RecBuf[MAX_REC_LEN];		//receive buf define
MOD_EXT INT8U  xdata TrBuf[MAX_SEND_LEN];		//transmit buf define
MOD_EXT COM   xdata COM1;						//uart1 define

/*protocol layer*/
MOD_EXT DTBL  xdata PtcData;					//protocol data table .include AI,DI,DO

/*
*********************************************************************************************************
*                                         functions
*********************************************************************************************************
*/
MOD_EXT void ModBusComDrv(void);
MOD_EXT void ModBusTimer0Drv(void);
MOD_EXT void DOCfgFnct(void (code *DOSet)(INT8U n,BOOLEAN State));
MOD_EXT void AOCfgFnct(void (code *AOSet)(INT8U n,INT16U Data));
MOD_EXT void MultAOCfgFnct(void (code *MultAOSet)(INT16U xdata *p,INT16U len));

#ifdef CRC_TBL
/*
*********************************************************************************************************
*                                         code field
*********************************************************************************************************
*/
INT8U code auchCRCHi[256] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40
} ;
/* Table of CRC values for low–order byte */
INT8U code  auchCRCLo[256] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,
0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,
0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,
0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,
0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,
0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,
0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,
0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,
0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,
0x40
} ;
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级欧美三级日产三级99 | 香蕉成人伊视频在线观看| 国产91精品一区二区麻豆网站| 久久婷婷国产综合精品青草| 国产精品99久| 中文字幕欧美国产| 色综合久久久久综合99| 一区二区日韩av| 欧美另类久久久品| 国产原创一区二区三区| 欧美国产精品v| 在线观看国产日韩| 蜜臀av性久久久久av蜜臀妖精| 精品国产一区二区精华| 国产**成人网毛片九色| 亚洲伦理在线免费看| 91麻豆精品国产91久久久久| 激情文学综合丁香| 亚洲欧美自拍偷拍| 911精品国产一区二区在线| 精品一区二区三区蜜桃| 国产精品白丝在线| 在线成人免费观看| 国v精品久久久网| 图片区小说区区亚洲影院| 久久一夜天堂av一区二区三区| 97久久超碰国产精品| 亚洲电影中文字幕在线观看| 欧美mv日韩mv| 在线观看欧美黄色| 国产老肥熟一区二区三区| 亚洲欧洲精品天堂一级| 日韩欧美久久久| 一本久道久久综合中文字幕| 麻豆一区二区在线| 一区二区国产视频| 欧美日韩专区在线| 国产精品一区在线观看你懂的| 中文字幕亚洲在| 欧美大胆一级视频| 欧美在线高清视频| 国产91对白在线观看九色| 亚洲日本青草视频在线怡红院| 欧美一区二区三区四区五区| 91在线观看污| 国产成人av一区二区三区在线| 午夜影院久久久| 亚洲欧美日韩久久| 国产午夜亚洲精品羞羞网站| 91 com成人网| 欧美亚洲禁片免费| 国产高清成人在线| 久久av资源网| 蜜臀久久99精品久久久久宅男| 亚洲免费观看高清完整 | 欧美一区二区三区爱爱| 色欲综合视频天天天| 成人午夜私人影院| 国产精品综合在线视频| 六月丁香婷婷久久| 日本美女一区二区| 性欧美大战久久久久久久久| 亚洲激情图片小说视频| 国产精品国产三级国产普通话99| 久久久久久毛片| 精品久久久久香蕉网| 欧美一区二视频| 国产日韩欧美a| 椎名由奈av一区二区三区| 26uuu精品一区二区在线观看| 欧美日韩精品欧美日韩精品一| 不卡一区在线观看| 国产精品1区二区.| 国产aⅴ精品一区二区三区色成熟| 美女在线一区二区| 久久精品99国产精品| 日本成人在线网站| 全国精品久久少妇| 美女视频黄免费的久久| 日韩电影在线观看一区| 日韩精品电影一区亚洲| 日韩av一二三| 日韩二区三区在线观看| 五月婷婷色综合| 日韩精品一区第一页| 午夜精品福利在线| 天天综合天天综合色| 日韩综合小视频| 麻豆精品视频在线观看视频| 人人精品人人爱| 久久99国产精品麻豆| 高清不卡在线观看av| 美国三级日本三级久久99| 麻豆久久久久久| 国产精品亚洲专一区二区三区| 国产·精品毛片| 日本高清免费不卡视频| 欧美高清视频不卡网| 日韩精品一区二区三区蜜臀| 欧美精品一区二区久久婷婷| 中文字幕不卡三区| 亚洲乱码国产乱码精品精98午夜 | 婷婷丁香久久五月婷婷| 蜜臀久久久久久久| 国产传媒一区在线| 色香蕉久久蜜桃| 宅男噜噜噜66一区二区66| xnxx国产精品| 亚洲丝袜制服诱惑| 视频一区二区中文字幕| 国产高清不卡一区二区| 91福利视频久久久久| 欧美一区二区久久久| 中文字幕乱码亚洲精品一区| 亚洲免费视频成人| 久久精品国产亚洲5555| 成人91在线观看| 91精品久久久久久久91蜜桃| 欧美国产激情一区二区三区蜜月| 亚洲激情六月丁香| 国内欧美视频一区二区| 日本韩国一区二区三区视频| 欧美成人一级视频| 亚洲精品精品亚洲| 国产毛片一区二区| 欧美男人的天堂一二区| 国产区在线观看成人精品| 午夜免费欧美电影| 成+人+亚洲+综合天堂| 日韩精品一区二区在线| 中文字幕一区在线观看| 韩国一区二区视频| 欧美日韩一区二区三区免费看| 国产日韩欧美在线一区| 日韩 欧美一区二区三区| 91视频.com| 久久综合狠狠综合久久综合88| 亚洲一区二区三区四区不卡| 国产成人啪免费观看软件| 6080yy午夜一二三区久久| 亚洲乱码精品一二三四区日韩在线 | 欧美在线影院一区二区| 久久精品视频在线免费观看| 日本在线不卡视频一二三区| 狠狠久久亚洲欧美| 国产成人午夜精品影院观看视频| 欧美三电影在线| 中文字幕一区二区三区精华液| 久久99国产精品久久99 | 亚洲二区在线视频| 91美女在线视频| 国产精品久久综合| 国产精品白丝jk白祙喷水网站| 8v天堂国产在线一区二区| 亚洲午夜视频在线| 色天天综合色天天久久| 综合久久综合久久| 99这里都是精品| 国产精品素人一区二区| 国产iv一区二区三区| 久久综合色综合88| 激情成人综合网| 精品久久国产老人久久综合| 日本不卡视频一二三区| 91精品蜜臀在线一区尤物| 五月综合激情婷婷六月色窝| 欧美视频完全免费看| 午夜激情久久久| 91.com在线观看| 美腿丝袜亚洲综合| 精品国产乱码久久久久久影片| 久久国产精品无码网站| 日韩欧美一区二区免费| 久久99久久99| 久久午夜国产精品| 成人免费毛片片v| 综合欧美一区二区三区| 在线亚洲人成电影网站色www| 一区二区在线观看视频| 在线观看av一区二区| 日韩电影在线一区| 久久久久久免费| 成人18视频日本| 亚洲一区在线观看免费观看电影高清| 欧美在线你懂的| 老司机精品视频线观看86| 久久久久久99久久久精品网站| 粉嫩嫩av羞羞动漫久久久 | 亚洲美腿欧美偷拍| 欧美亚洲动漫另类| 日韩高清电影一区| 欧美国产丝袜视频| 色激情天天射综合网| 奇米影视一区二区三区小说| 亚洲精品一区二区三区香蕉| 成人美女视频在线观看18| 一卡二卡三卡日韩欧美| 精品久久久久香蕉网| 一本到一区二区三区| 麻豆91小视频|