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

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

?? modbus.c

?? C51 MODBUS 實現
?? C
字號:




/*************************************************************************************/
#ifdef		MODBUS_COMM
	//MODBUS 命令定義
	#define		REGISTERREAD		0x03        //讀出存儲寄存器的內容
	#define		REGISTERWRITEONBYTE 0x06        //改寫一個特定的寄存器的數據
	#define		REGISTERWRITE		0x10        //連續寫入多個存儲寄存器
	#define		COMMTEST			0x08        //通訊測試

	//MODBUS 寄存器地址定義
	//1.系統參數及通訊參數
	#define		Device_Code			0x00		//設備識別號
	#define		Device_Comm_Sel		0x01		//設備通訊模式寄存器
	#define		Device_Comm_Pr		0x02		//設備通訊參數(通訊地址,通訊速率)
	#define		Device_Tcp_Iph		0x03		//TCP 通訊IP地址高字節寄存器
    #define		Device_Tcp_Ipl		0X04		//TCP 通訊IP地址低字節寄存器
 	#define		Device_Tcp_Maskh	0X05		//TCP 通訊子網掩碼地址高字節寄存器
	#define		Device_Tcp_Maskl	0X06		//TCP 通訊子網掩碼地址低字節寄存器
	#define		Device_Tcp_Gateh	0X07		//TCP 通訊網關地址高字節寄存器
	#define	    Device_Tcp_Gatel	0X08		//TCP 通訊網關地址低字節寄存器
	//2.系統時間
	#define		Minute_Second		0x09		//分,秒
	#define		Day_Hour			0x0a		//日,小時
	#define		Year_Month			0x0b		//年,月
	#define		Bak					0X0c		//預留備用寄存器 oc-oh
 	//其他寄存器
    #define		Anomalous_Staus		0x10		//異常狀態寄存器
	//3.機器實時運行參數
	#define		Ux_Volt			    0x20		//系統電壓
	#define		Uc_Volt				0x21		//機端電壓
	#define		Ut_Volt				0x22		//調差電壓
	#define		Ilc_Value			0x23		//勵磁電流
	#define		Cos_Value			0x24		//功率因數
	#define		Q_Value				0x25		//無功功率
	#define		Fre_Jd				0x26		//機端頻率
	#define		Alf_Value			0x27		//觸發相位角
	#define		Ug_Volt				0x28		//給定電壓
	#define		Ilg_Value			0x29		//給定電流
	#define		Cosg_Value			0x2a		//給定功率因數
	#define		Qg_Value			0x2b		//給定無功
	#define		Alfg_Value			0x2c		//給定ALF角度
	#define		Bak 				0x2d		//預留備用寄存器   2d-2f
	//4.機器開入開出狀態寄存器
	#define		Switch_In			0x30		//開入輸入變量	
	#define		Switch_Out			0x31		//開入輸入變量
	//5.機器實時運行狀態寄存器		
	#define		Run_Staus			0x32		//機器實時運行狀態寄存器	
	#define		Run_Bak				0x33		//狀態備用寄存器   33-3f
	//6.勵磁設置參數寄存器
	#define		P_Set						0x40	//PID參數P寄存器
	#define		I_Set						0x41	//PID參數I寄存器
	#define		D_Set						0x42	//PID參數D寄存器
	#define		Kq_Set						0x43	//無功功率比例參數寄存器
	#define		Ile_Set						0x44	//勵磁電流比例參數寄存器
	#define		Ct_Set						0x45	//CT 變比參數寄存器
	#define		Pt_Set						0x46	//PT 變比參數寄存器
	#define		Tc_Set						0x47	//調差系數寄存器
	#define		LcIncDec_Set				0x48	//增減勵寄存器
	#define		AutoStartStop_Set			0x49	//自動開機停機寄存器
	#define		RunMode_Set					0x4a	//運行模式寄存器
	#define		UxTron_Set					0x4b	//網跟控制寄存器	
	#define		Excitation_Set				0x4c	//高低起勵寄存器
	#define		MkActive_Set				0x4d	//滅磁開關寄存器
	#define		Excitation_Suppression_Set 	0x4e	//起勵滅磁寄存器
	#define		Bak_Set						0x4f	//預留備用寄存器		
   //	#define

//全局變量定義:
//UART2 緩沖單元
unsigned char xdata 	UART2_ReceiveBuffer[UART_DATAPACK_SIZE];	  	//接收緩沖單元
unsigned char 			UART2_ReceiveCount = 0;		//接收的字節數
unsigned char 			UART_SendNum = 0;			//發送的字節數	
unsigned char xdata		UART_SendOk	 = 0;			//已經發送的字節數 
unsigned char xdata 	UART2_ReceiveBuffer[UART_SENDPACK_SIZE];		//發送緩沖單元

//擴展緩沖單元
unsigned char xdata 	SPI_ReceiveBuffer[SPI_DATAPACK_SIZE];	  	//接收緩沖單元
unsigned char 			SPI_ReceiveCount = 0;						//接收的字節數
unsigned char 			SPI_SendNum = 0;							//發送的字節數	
unsigned char xdata		SPI_SendOk	 = 0;							//已經發送的字節數
unsigned char xdata 	SPI_SendBuffer[SPI_SENDPACK_SIZE];			//發送緩沖單元 
//本身地址
unsigned int            My_Addr
//液晶緩沖單元
unsigned char xdata 	Yj_ReceiveBuffer[];		    //接收緩沖單元
unsigned char xdata 	Yj_SendBuffer[];		   	//發送緩沖單元
//液晶接收處理標志位
unsigned int			Yj_ReceiveFlag;			//液晶接收緩沖單元中是否有數據要求液晶進行處理標志位
unsigned int			Yj_SendFlag;				//液晶發送緩沖單元中是否有數據要求液晶進行處理標志位

//----------------------------SPI發送程序--------------------------------//
unsigned char  SPISendComm(unsigned char *buf,unsigned char len)
{
	unsigned int  timeout=0;

	if (len > SPI_SENDPACK_SIZE)		//長度大于UART長度,出錯
		return -1;

	if (SPI_SendOk != 0)				//已經發送的字節數不為0
	{
		while (SPI_SendOk != 0)
		{
			timeout++;
			if (timeout >= 3000)
			{
				SPI_SendOk = 0;		//已經發送的字節數清0
				SPI_SendNum = 0;		//發送的字節數清0
				return 1;
			}
		}
		return 1;
	}

	memcpy(SPI_SendBuffer,buf,len);
	SPI_SendNum = len;
	void WriteData(SPI_SendBuffer,channelA, buf,len);
	ES = 1;
	SPI_SendOk=1;
	return 0;													//modify								
}


//-----------------------------串口發送程序-------------------------------//
unsigned char  UARTSendComm(unsigned char *buf,unsigned char len)
{
	unsigned int  timeout=0;

	if (len > UART_SENDPACK_SIZE)
		return -1;

	if (UART_SendOk != 0)
	{
		while (UART_SendOk != 0)
		{
			timeout++;
			if (timeout >= 3000)
			{
				UART_SendOk = 0;
				UART_SendNum = 0;
				return 1;
			}
		}
		return 1;
	}

	memcpy(UART_SendBuffer,buf,len);
	UART_SendNum = len;
	S2BUF=UART_SendBuffer[0];
	ES = 1;
	UART_SendOk=1;
	return 0;													//modify								
}


/************************************************************************************** 
* 名稱:GetCommData
* 說明:判斷液晶接收數據的正確性
* 功能:7eH 外部與MCU通訊;feH液晶與MCU通訊;My_AddrH外部通訊(0X20之前,外部與液晶通訊;之后,外部與MCU通訊)
* 調用:
* 輸入: UART2_ReceiveBuffer,SPI_ReceiveBuffer
* 返回值:7eH返回值為2;feH返回值1;My_Addr返回值0
* ************************************************************************************/
unsigned char GetCommData(unsigned char *len)
{
	unsigned char comm;
	unsigned char length[2];
	unsigned char tempaddr;
	unsigned char ret;
	unsigned char receivecount;			//接收的字節數
	unsigned char receivebuffer[];     //接收到的數據

	ret = -1;
	*len = 0;

	if (receivecount >= 8)                     //接收的字節數
 	{
		tempaddr =  receivebuffer[0];
		if ( (tempaddr != My_Addr) && (tempaddr != 0x7e) && (tempaddr != 0xfe) )
	   		return  ret;
				 	  
		comm =  receivebuffer[1];
		switch (comm)
		{
			case REGISTERWRITE:
				 *(unsigned int*)(length+0) = 9 + (*(unsigned int*)( receivebuffer+4) *2);//接收到數據字節數
				 if (*(unsigned int*)(length+0) < MAXREADLENGTH )//接收到的字節數小于最大字節長度
				 	if (CrcCmp16( receivebuffer,length[1]) ==0)//CRC校驗
					{
						if (tempaddr == 0x7e)
							ret = 2;
					    if (tempaddr == 0xfe)
							ret = 1;
						if (tempaddr == My_Addr)
							ret = 0;
						*len = length[1];
						return ret;
				     }
				   break;

			case REGISTERREAD:
			case COMMTEST:
		    case REGISTERWRITEONBYTE:
				 if (CrcCmp16( receivebuffer,8) ==0)       //接受到字節數是8個,CRC校驗
				 {
			 			if (tempaddr == 0x7e)
							ret = 2;
					    if (tempaddr == 0xfe)
							ret = 1;
						if (tempaddr == My_Addr)
							ret = 0;
						*len = 0x08;
						return ret;

				 }
				 break;
	   }
	}
	return ret;
}


/*************************************************************************************
*名稱:SendDataToMCU
*說明:液晶把接收到的串口2數據發給MCU;
*功能:把調節器地址替換成7e,重新進行CRC校驗,發送給MCU
*調用:
*輸入:UART2_ReceiveBuffer
*輸出

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频免费看| 亚洲综合在线免费观看| 在线综合亚洲欧美在线视频| 91热门视频在线观看| 国产69精品久久777的优势| 开心九九激情九九欧美日韩精美视频电影 | 欧美影视一区在线| 日本精品免费观看高清观看| 99在线视频精品| 97久久久精品综合88久久| 成人一区二区视频| www.日韩精品| 色域天天综合网| 在线视频一区二区三| 91久久精品一区二区二区| 欧美在线免费视屏| 欧美艳星brazzers| 777奇米四色成人影色区| 在线播放欧美女士性生活| 91精品国产91久久久久久最新毛片| 91精品国产日韩91久久久久久| 91麻豆精品国产91久久久久久| 欧美吻胸吃奶大尺度电影| 制服丝袜亚洲色图| 欧美精品一区二区不卡| 国产精品污www在线观看| 亚洲欧洲国产日韩| 亚洲va中文字幕| 久国产精品韩国三级视频| 国产91丝袜在线播放| 91亚洲永久精品| 7777女厕盗摄久久久| 精品国产99国产精品| 国产精品污www在线观看| 亚洲午夜激情av| 久国产精品韩国三级视频| 99视频在线精品| 91麻豆精品国产91久久久久| 精品国产99国产精品| 自拍偷自拍亚洲精品播放| 秋霞午夜av一区二区三区| 国产成人综合在线播放| 国产性色一区二区| 专区另类欧美日韩| 美女脱光内衣内裤视频久久网站| 国模娜娜一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 久久久久一区二区三区四区| 一区二区成人在线视频 | 6080午夜不卡| 国产精品毛片高清在线完整版| 天天色图综合网| 懂色av中文字幕一区二区三区 | 欧美性感一类影片在线播放| 亚洲精品在线观看视频| 亚洲韩国一区二区三区| av亚洲精华国产精华精华| 欧美大片一区二区| 亚洲一区自拍偷拍| 成人伦理片在线| 精品福利在线导航| 日韩成人午夜电影| 欧美午夜免费电影| 亚洲区小说区图片区qvod| 国产一区二区三区精品欧美日韩一区二区三区 | 成人自拍视频在线观看| 欧美一区在线视频| 亚洲成人免费在线| 欧美中文字幕久久| 综合分类小说区另类春色亚洲小说欧美| 美女国产一区二区| 欧美丰满少妇xxxbbb| 亚洲人123区| 91社区在线播放| 成人欧美一区二区三区小说 | 久久亚洲二区三区| 青青青伊人色综合久久| 欧美精品777| 日日夜夜免费精品视频| 久久综合狠狠综合久久激情| 美女视频黄久久| 91精品在线一区二区| 亚洲成va人在线观看| 欧美性一二三区| 天天操天天综合网| 6080日韩午夜伦伦午夜伦| 亚洲成av人**亚洲成av**| 97se亚洲国产综合自在线| 国产精品高潮呻吟| caoporen国产精品视频| 最新久久zyz资源站| 91丝袜高跟美女视频| 亚洲视频 欧洲视频| 在线观看亚洲精品| 日韩精品成人一区二区三区| 这里只有精品电影| 久久精品国产999大香线蕉| 精品免费一区二区三区| 国产成人在线观看免费网站| 国产精品久99| 欧美写真视频网站| 麻豆国产欧美日韩综合精品二区| 精品日韩在线观看| 粉嫩久久99精品久久久久久夜| 中文字幕中文乱码欧美一区二区| 色综合久久久久久久久| 日本不卡在线视频| 中文字幕免费不卡| 欧洲激情一区二区| 国产一区二区精品久久| 亚洲免费视频成人| 欧美变态口味重另类| fc2成人免费人成在线观看播放| 亚洲v日本v欧美v久久精品| 久久人人爽人人爽| 欧美自拍偷拍一区| 国产综合一区二区| 亚洲影院在线观看| 国产午夜精品一区二区三区嫩草| 一本到不卡免费一区二区| 蜜桃一区二区三区在线观看| 国产精品久久久久久一区二区三区| 精品久久久久久无| 成人av在线资源网| 日本sm残虐另类| 中文字幕亚洲视频| 精品免费日韩av| 在线观看亚洲精品| 不卡的av电影| 激情综合网av| 午夜精品久久久久久久99樱桃| 国产精品情趣视频| 精品国产三级电影在线观看| 欧美丝袜自拍制服另类| 国产91丝袜在线播放0| 麻豆精品新av中文字幕| 一区二区不卡在线播放 | 日韩精品一区在线| 日本韩国一区二区三区| 国产999精品久久久久久| 日本v片在线高清不卡在线观看| 国产精品美女一区二区三区 | 久久综合久久综合九色| 欧美探花视频资源| 99久久免费国产| 国产成人精品亚洲午夜麻豆| 美腿丝袜在线亚洲一区| 亚洲成年人网站在线观看| 亚洲精品免费播放| 亚洲欧洲精品一区二区精品久久久| 精品国产亚洲在线| 日韩免费视频一区| 日韩你懂的电影在线观看| 欧美一区二区精美| 欧美一级免费大片| 欧美一区二区三区四区在线观看| 欧洲精品视频在线观看| 欧美色综合网站| 7777精品久久久大香线蕉| 欧美猛男男办公室激情| 欧美久久久久久久久| 欧美久久久一区| 91精品国产高清一区二区三区蜜臀 | 一本色道久久综合精品竹菊| 99这里都是精品| 91福利视频久久久久| 欧美少妇性性性| 欧美成人精品3d动漫h| 亚洲精品一区二区三区99| 精品国产精品网麻豆系列| 久久久久99精品一区| 国产精品无圣光一区二区| 亚洲男人电影天堂| 亚洲狠狠爱一区二区三区| 欧美bbbbb| 成人一道本在线| 欧美艳星brazzers| 精品国产欧美一区二区| 中文字幕免费一区| 亚洲国产色一区| 久久国产夜色精品鲁鲁99| 国产福利电影一区二区三区| 成人av综合一区| 欧美猛男男办公室激情| 日韩欧美国产系列| 中文字幕一区av| 手机精品视频在线观看| 国产精品一级在线| 欧美中文字幕久久| 久久精品欧美一区二区三区不卡 | 亚洲一区二区偷拍精品| 久久草av在线| 色香蕉久久蜜桃| 久久一夜天堂av一区二区三区| 国产精品成人免费| 免费在线观看不卡| 91小视频免费看| 精品福利二区三区| 亚洲一区中文在线| 国产成人三级在线观看|