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

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

?? rs485.c

?? modbus PIC源程序
?? C
字號:
#include "16f873.h"
#include "int16cxx.h"

#define ENABLE	1
#define DISABLE	0
#define TRUE	1
#define FAULT	0
#define RECEIVE_EN	0
#define TRANSFER_EN	1

#pragma bit IO1	@ PORTB.5
#pragma bit IO2	@ PORTB.6
#pragma bit IO3	@ PORTB.7
#pragma bit C_EN @ PORTC.2

#pragma	origin = 0x4

uns8 rc_temp,rxbuf[8],uchCRCHi,uchCRCLo,addr,txbuf[8],receive_count,dis_hz,dis_current;
uns8 set_hz,set_run;
uns16 dis_error,dis_running;
bit receive_ok,transfer_ok,_8ms_count_ok;

/* Table of CRC values for high-order byte */

const char auchCRCHi[] = {
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 */

const char auchCRCLo[] = {
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
} ;

interrupt server(void)
{
	uns8 temp8;
	int_save_registers	// W, STATUS (and PCLATH)
	char sv_FSR=FSR;
	if(T0IF)
	{
		TMR0=100;	//8ms interrupt
		PS2=1;		//prescale value=1:256
		PS1=1;		//5000KHz/256=19.53125KHz,19.53125K/156=0.125KHz(8ms)
		PS0=1;
		_8ms_count_ok=ENABLE;
		T0IF=0;
	}
	if(INTF)
	{
		INTF=0;
	}
	if(TMR1IF)
	{
		TMR2IF=0;
	}
	if(RCIF)
	{
		rc_temp=RCREG;
		if(receive_ok==FAULT)
		{
			if(_8ms_count_ok)
				receive_count=0;
			if(receive_count<8)
				rxbuf[receive_count]=rc_temp;
			if(receive_count==7 && addr==rxbuf[0])
				receive_ok=TRUE;
			receive_count++;
		}
		
		_8ms_count_ok=DISABLE;
		TMR0=100;		//timer0 reset,count again
		
		RCIF=0;
	}
	if(SSPIF && SSPIE)
	{
		SSPIF=0;
	}
	FSR=sv_FSR;
	int_restore_registers
}

page1 uns16 crc16(uns8 *puchMsg,uns8 crc_count)
{
	uns8 uindex;
	uns16 temp16;
	uchCRCHi=0xff;
	uchCRCLo=0xff;
	while(crc_count)
	{
		uindex=uchCRCHi ^ *puchMsg;
		puchMsg++;
		uchCRCHi=uchCRCLo ^ auchCRCHi[uindex];
		uchCRCLo=auchCRCLo[uindex];
		crc_count--;
	}
	temp16=(uns16)uchCRCHi << 8;
	temp16=temp16 | uchCRCLo;
	return temp16;
}

page0 void main(void)
{
	uns8 i;
	uns16 temp16;
	TRISA=0b11111111;
	TRISB=0b00011111;	//RB7(IO3) RB6(IO2) RB5(IO1)->output
	TRISC=0b10111011;	//RC7(RX) RC6(TX) RC2(C_EN)->output
	IO1=0;
	IO2=0;
	IO3=0;
	addr=0x06;
	dis_hz=79;
	dis_current=80;
	dis_error=87;
	dis_running=85;		//bit2->0=stop,1=run
						//bit14->0=FR,1=RR
	_8ms_count_ok=DISABLE;
	receive_ok=FAULT;
	transfer_ok=TRUE;
	receive_count=0;
	C_EN=RECEIVE_EN;
	BRGH=1;
	SYNC=0;
	SPEN=1;
	TXIE=0;
	RCIE=1;
	TX9=0;	//8 data bit transfer
	SPBRG=64;	// baud rate=20M/16(64+1)=19230
	TXEN=1;
	CREN=1;		//receive enable
	
	T0CS=0;		//TIMER0 clock=Fosc/4=20MHz/4=5MHz
	TMR0=100;	//256-156
	PSA=0;		//use prescaler
	PS2=1;		//prescale value=1:256
	PS1=1;		//5000KHz/256=19.53125KHz,19.53125K/156=0.125KHz(8ms)
	PS0=1;
	T0IE=1;		//TIMER0 enable
	
	PEIE=1;
	GIE=1;
	rxbuf[0]=0x11;
	rxbuf[1]=0x03;
	rxbuf[2]=0x00;
	rxbuf[3]=0x6b;
	rxbuf[4]=0x00;
	rxbuf[5]=0x03;
	rxbuf[6]=0x01;
	rxbuf[7]=0x02;
	i=0;
	while(1)
	{
		if(receive_ok==TRUE)
		{
			temp16=crc16(rxbuf,6);
			if(rxbuf[6]==temp16.high8 && rxbuf[7]==temp16.low8)
			{
				switch(rxbuf[1])
				{
					case 0x03:
						txbuf[0]=rxbuf[0];
						txbuf[1]=rxbuf[1];
						txbuf[2]=2;		//byte count
						txbuf[3]=0;		//data high byte
						switch(rxbuf[3])
						{
							case 0:
								txbuf[4]=set_hz;	//set hz
								break;
							case 85:
								txbuf[4]=set_run;	//set run
								break;
							case 78:	//display Hz
								txbuf[4]=dis_hz;	//data low byte
								break;
							case 79:	//display current
								txbuf[4]=dis_current;	//data low byte
								break;
							case 84:	//display running state
								txbuf[3]=dis_running.high8;	//data high byte
								txbuf[4]=dis_running.low8;	//data low byte
								break;
							case 86:	//display error code
								txbuf[3]=dis_error.high8;	//data high byte
								txbuf[4]=dis_error.low8;	//data low byte
						}
						temp16=crc16(txbuf,5);
						txbuf[5]=temp16.high8;
						txbuf[6]=temp16.low8;
						transfer_ok=FAULT;
						break;
					case 0x06:
						txbuf[0]=rxbuf[0];
						txbuf[1]=rxbuf[1];
						txbuf[2]=rxbuf[2];
						txbuf[3]=rxbuf[3];
						txbuf[4]=rxbuf[4];
						txbuf[5]=rxbuf[5];
						txbuf[6]=rxbuf[6];
						txbuf[7]=rxbuf[7];
						switch(rxbuf[3])
						{
							case 0:		//set Hz
								set_hz=rxbuf[5];
								break;
							case 85:	//set run
								set_run=rxbuf[5];
							
						}
						transfer_ok=FAULT;
				}
			}
			receive_ok=FAULT;
		}
		if(TXIF && TRMT && transfer_ok==FAULT)
		{
			C_EN=TRANSFER_EN;
			TXREG=txbuf[i];
			i++;
			if(i==7 && txbuf[1]==3)
			{
				transfer_ok=TRUE;
				i=0;
			}
			if(i==8 && txbuf[1]==6)
			{
				transfer_ok=TRUE;
				i=0;
			}
		}
		if(TRMT)
			C_EN=RECEIVE_EN;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
3atv在线一区二区三区| 亚洲一区影音先锋| 又紧又大又爽精品一区二区| 强制捆绑调教一区二区| 欧美亚洲综合在线| 国产精品卡一卡二卡三| 国产在线精品一区二区夜色| 欧美乱妇一区二区三区不卡视频| 亚洲视频电影在线| 国产iv一区二区三区| 精品国产一区二区三区av性色 | 中文字幕不卡在线播放| 免费高清视频精品| 91麻豆精品国产91| 欧美极品另类videosde| 精品一区二区三区视频在线观看 | 久久久久久久av麻豆果冻| 亚洲自拍都市欧美小说| 91在线小视频| 亚洲图片你懂的| 成人爱爱电影网址| 国产精品欧美一区二区三区| 国产伦精一区二区三区| 日韩精品一区二区三区三区免费| 香蕉影视欧美成人| 91精品国产色综合久久不卡电影| 婷婷国产v国产偷v亚洲高清| 欧美日韩免费观看一区三区| 午夜精品一区二区三区电影天堂 | 精品视频免费看| 亚洲一区二区三区四区五区黄| 色婷婷精品大视频在线蜜桃视频 | 精久久久久久久久久久| 日韩精品一区二区在线观看| 久久超碰97人人做人人爱| 精品日韩在线一区| 国产福利91精品一区| 国产日产欧美一区二区三区| 岛国一区二区在线观看| 国产精品麻豆欧美日韩ww| 99久久免费精品| 亚洲综合一区二区精品导航| 欧美片在线播放| 九九**精品视频免费播放| 2017欧美狠狠色| 成人涩涩免费视频| 一区二区在线观看不卡| 欧美日韩高清一区| 国产一区在线观看视频| 国产精品白丝在线| 欧美亚洲国产一卡| 狠狠色综合日日| 中文字幕一区二区在线观看| 在线观看视频91| 激情综合网av| 综合婷婷亚洲小说| 在线电影一区二区三区| 国产高清成人在线| 亚洲制服丝袜在线| 欧美大度的电影原声| 国产成a人亚洲| 亚洲国产视频直播| 亚洲精品一线二线三线| 91网站视频在线观看| 日韩中文字幕不卡| 国产午夜精品久久久久久免费视 | 欧美精品一区二区久久婷婷| 97精品国产露脸对白| 三级一区在线视频先锋 | 亚洲成人资源在线| 亚洲国产岛国毛片在线| 欧美性色黄大片手机版| 国产一区二区免费视频| 香蕉成人伊视频在线观看| 国产无遮挡一区二区三区毛片日本 | 99精品视频一区| 免费观看在线色综合| 亚洲人被黑人高潮完整版| 日韩欧美不卡在线观看视频| 色素色在线综合| 国产成人欧美日韩在线电影| 男人的天堂久久精品| 日韩一区欧美小说| 国产喂奶挤奶一区二区三区| 欧美久久久一区| 91论坛在线播放| 成人激情开心网| 国产一区二区不卡老阿姨| 亚洲成人动漫在线免费观看| 中文字幕日韩精品一区| 久久精品视频一区| 精品日韩一区二区三区免费视频| 精品视频一区三区九区| 色综合久久中文综合久久牛| 成人小视频免费在线观看| 极品美女销魂一区二区三区免费| 亚洲成年人影院| 亚洲一区二区三区在线看| 最新高清无码专区| 国产精品黄色在线观看| 国产欧美视频一区二区| 日韩欧美一级二级三级久久久| 欧美理论电影在线| 欧美日韩一二区| 欧美老年两性高潮| 欧美美女激情18p| 欧美巨大另类极品videosbest | 亚洲成人精品影院| 一个色综合av| 亚洲精品免费一二三区| 亚洲免费观看在线观看| 亚洲欧美偷拍三级| 亚洲女厕所小便bbb| 亚洲激情图片小说视频| 综合在线观看色| 一区二区三区国产精华| 亚洲午夜免费福利视频| 午夜私人影院久久久久| 图片区日韩欧美亚洲| 日韩精品成人一区二区三区| 亚洲va欧美va天堂v国产综合| 香港成人在线视频| 日本91福利区| 国产一区91精品张津瑜| 国产成人免费在线观看| 9i看片成人免费高清| 99精品欧美一区二区三区小说| 91在线播放网址| 777色狠狠一区二区三区| 日韩午夜三级在线| 国产丝袜在线精品| 亚洲精品欧美在线| 奇米色一区二区三区四区| 国产精品夜夜嗨| 93久久精品日日躁夜夜躁欧美| 91国在线观看| 日韩美女主播在线视频一区二区三区| 欧美videos大乳护士334| 亚洲国产精品成人久久综合一区 | 欧美日韩视频第一区| 欧美一级久久久| 国产精品网站在线| 亚洲图片有声小说| 国产一区二区三区国产| 色综合久久久网| 日韩精品一区二区三区视频播放 | av激情综合网| 91精品久久久久久久99蜜桃| 国产午夜久久久久| 亚洲国产aⅴ天堂久久| 国产老肥熟一区二区三区| 色综合久久久久网| 精品少妇一区二区三区在线播放| 国产精品不卡视频| 久久国产麻豆精品| 色婷婷久久久久swag精品| 亚洲精品一区二区三区蜜桃下载 | 国产精品一区三区| 在线视频欧美精品| 国产网站一区二区| 午夜精品成人在线视频| 成人综合婷婷国产精品久久免费| 欧美日韩色一区| ●精品国产综合乱码久久久久| 青青国产91久久久久久 | 久久亚洲一级片| 天天色综合天天| 91丨porny丨在线| 国产欧美日韩在线| 日韩成人免费在线| 色婷婷综合久久久中文一区二区 | 亚洲午夜国产一区99re久久| 国产剧情一区二区| 欧美一区二区在线视频| 亚洲免费视频中文字幕| 北条麻妃一区二区三区| 26uuu国产日韩综合| 日韩电影一区二区三区四区| 色综合一个色综合亚洲| 日本一区二区三区高清不卡| 裸体歌舞表演一区二区| 欧美一区二区在线看| 亚洲国产精品自拍| 一本色道久久综合亚洲91| 国产欧美日韩在线观看| 国产综合色产在线精品| 日韩视频一区二区三区在线播放| 亚洲国产美女搞黄色| 在线精品视频小说1| 亚洲综合视频在线| 欧美在线观看一区| 亚洲国产成人高清精品| 欧美性色综合网| 亚洲午夜精品在线| 欧美体内she精视频| 亚洲午夜日本在线观看| 欧美日韩国产精品自在自线| 视频一区在线播放| 欧美一级在线观看| 国产一区在线精品|