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

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

?? g1.c

?? 選頻加功放一體化模塊監控處理程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
						}
						else
						{
							erro = erro | 0x01;
						}
						length = 0;
						break;//特殊處理
		}
	}			
	if(erro & 0x02)
	{
		length = 2;//設置參數失敗
	}
	else if(erro & 0x01)
	{
		length = 2;//查詢參數失敗
	}
	else
	{
		length = receive_cnt-10;//命令體長度
	}
	return length;
}

/**********************************************************
** 功能說明:  發送參數函數
** 輸入參數:  	類型:	uchar	應答標志位
		類型:	uchar	命令體的長度	   	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
**********************************************************/		
void send_reply_flag(uchar reply_flag,uchar length)
{
	auto uchar start,i;
	//receive_buf[7] = length;
	receive_buf[6] = reply_flag;	
	start = 1;                 //CRC校驗
	length = length + 6;
	CheckCRC(receive_buf,length,start,pChecksum);
	receive_buf[length + 1] = pChecksum[0];
	receive_buf[length + 2] = pChecksum[1];	
	length = length + 3;//加上校驗字節(2BYTE),再加一個字節,就為包的總長度-1
	receive_buf[length] = 0x4e;//最后一個字節是包尾
	
	portd_wbuf = portd_wbuf | 0x10; //485發送使能
	PORTD = portd_wbuf;		
	
	TXEN = 1;                       //USART 使能
	delay_unit(2000);
	length = length + 1;
	
	for(i = 0;i < length;i ++)
	{
		if((i==0)||(i==(length-1)))
		{
			TXREG = receive_buf[i];	
		}
		else if(receive_buf[i]==0x5e)
		{
			TXREG = 0x5e;
			receive_buf[i]=0x5d;
			i--;
		}
		else if(receive_buf[i]==0x4e)
		{
			TXREG = 0x5e;
			receive_buf[i]=0x4d;
			i--;
		}
		else
		{
			TXREG = receive_buf[i];		
		}
		while(TRMT == 0)
		{
			;
		}
	}
	delay_unit(1000);
	TXEN = 0;
	portd_wbuf = portd_wbuf & 0xef;
	PORTD = portd_wbuf;   
	headend_flag=0x00;  
	return;             
}
/**********************************************************
** 功能說明: CRC校驗函數
** 輸入參數:  	類型:	uchar*	須校驗的數組
		類型:	uchar	命令體的長度
		類型:	uchar	開始位置
		類型:	uchar*	校驗配置表	   	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
**********************************************************/	
void CheckCRC(uchar *pData, uchar length,uchar start, uchar *pChecksum)
{
	auto uchar  i = 0;
	auto uint checksum = 0;
	for(i = 0;i < length;i ++)
	{		
		checksum = ( checksum << 8) ^ CRCTable[( checksum >> 8 ) ^ pData[i + start]];
	}
	pChecksum[0] = checksum % 256;  
	pChecksum[1] = checksum / 256;   
	return;
}

/**********************************************************
** 功能說明:  接受數據數組的初始化
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void receive_free()
{
	auto uchar i;
	for(i = 0; i < BUF_LENGTH; i ++)
	{
		receive_buf[i] = 0;
	}
return;
}

/**********************************************************
** 功能說明:  對sda端口進行賦值
** 輸入參數:  buf			  類型:uchar   :0或1
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void sda(uchar buf)
{
	 if(buf)
	 {
	 	portc_wbuf = portc_wbuf | 0x04; 
	 	PORTC = portc_wbuf;
	 }
	 else
	 {
	 	portc_wbuf = portc_wbuf & 0xfb;
	 	PORTC = portc_wbuf;
	}
}
/**********************************************************
** 功能說明:  對scl端口進行賦值
** 輸入參數:  buf			  類型:uchar   :0或1
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void scl(uchar buf)
{
	 if(buf)
	 {
	 	portd_wbuf = portd_wbuf | 0x02; 
	 	PORTD = portd_wbuf;
	 }
	 else
	 {
	 	portd_wbuf = portd_wbuf & 0xfd;
	 	PORTD = portd_wbuf;
	}	
}
/**********************************************************
** 功能說明:  讀eeprom的值
** 輸入參數:  addr		  類型:uint  :讀數的地址
** 輸出參數:  buf          類型:uchar :讀出的數據
** 返 回 值:  無
** 引用函數: 
************************************************************/
uchar rrom(uint addr)
{
	uchar buf;
	union buf_union comm;
	RCIE=0;
	CREN=0;
	T1CON=0x00;
	dog();
	comm.buf1 = addr;
	_nop();
	iic_stop();
	iic_star();
	iic_send((comm.buf2[1] <<1)| 0xa0);
	iic_ack();
	iic_send(comm.buf2[0]);
	iic_ack();

	iic_star();
	iic_send((comm.buf2[1] <<1)|0xa1);
   	iic_ack();
	
	buf = iic_get();
	iic_stop();
	T1CON=0x31;
//	CREN=0;
	CREN=1;
	RCIE=1;
	receive_time_on = 0;
	receive_time_count = 0;
	receive_over = 0;
	tran_flag=0x00;
	headend_flag=0x00;
//	receive_cnt = 0;
    return buf;
}
/**********************************************************
** 功能說明:  寫eeprom
** 輸入參數:  addr		  類型:uchar :寫數據的地址
		 	 buf          類型:uchar :讀出的數據
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void wrom(uint addr,uchar buf)
{
	uchar ubuf;
	uchar  wcount;
    union buf_union comm;
    RCIE=0;
	CREN=0;
    T1CON=0x00;
    wcount = 0;
    dog();
	comm.buf1 = addr;
iic_write_re:
	if( wcount > 4 )
	{
		iic_stop();
		_nop();
		wcount = 0;
		err_eeprom = 1;
		T1CON=0x31;
	//	CREN=0;
		CREN=1;
		RCIE=1;

		return ;

	}
	_nop();

	iic_star();
	iic_send((comm.buf2[1]<<1) | 0xa0);
	ubuf = iic_ack();
	if(ubuf)
	{
		wcount++;
		_nop();
		goto iic_write_re;
	}
	iic_send(comm.buf2[0]);
	ubuf = iic_ack();
	if(ubuf)
	{
		wcount++;
		_nop();
		goto iic_write_re;
	}
	iic_send(buf);
	ubuf = iic_ack();
	if(ubuf)
	{
		wcount++;
		_nop();
		goto iic_write_re;
	}	
	iic_stop();
	T1CON=0x31;		
	CREN=1;
	RCIE=1;
	return ;
}
/**********************************************************
** 功能說明:  延時函數
** 輸入參數:
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void iic_delay()
{
	uchar  a;
	for(a = 0; a < IIC_DELAY ; a++ )
	{
		asm("NOP");
	}
}
/**********************************************************
** 功能說明:  操作eeprom時發起始命令
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void iic_star()
{
	TRISD1 = 0;
	TRISC2 = 0;
	scl(1);
	sda(1);
//	_nop();
	sda(0);
	scl(0);
	_nop();
}
/**********************************************************
** 功能說明:  操作eeprom完成時發結束命令
** 輸入參數: 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void iic_stop()
{
	TRISD1 = 0;
	TRISC2 = 0;
	sda(0);
	scl(1);
	_nop();
	sda(1);
	_nop();
	scl(1);
	_nop();
}
/**********************************************************
** 功能說明:  發數據給eeprom
** 輸入參數: buf			類型:uchar		:需要發送的數據
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/

void iic_send(uchar buf)
{
	uchar i;
	TRISD1 = 0;
	TRISC2 = 0;
	for(i = 0 ; i < 8 ;i++)
	{
		if( buf & 0x80 )
		{
			sda(1);
		}
		else
		{
			sda(0);
		}
		_nop();
		scl(1);
		//_nop();
		scl(0);
		//_nop();
		buf = buf << 1;
	}
}
/**********************************************************
** 功能說明:  從eeprom獲取數據
** 輸入參數: 
** 輸出參數:  buf 		類型:uchar		:獲取的數據
** 返 回 值:  無 
** 引用函數: 
************************************************************/	
uchar iic_get()
{
	uchar  i,buf;
	buf = 0x00;
	TRISD1 = 0;
	TRISC2 = 1;
	for(i = 0 ; i < 8 ;i++)
	{		
		scl(1);
		_nop();
		buf = buf <<1;
		if(PORTC & 0x04)
		{
			buf = buf|0x01;
		}
		scl(0);
		_nop();	
	}
	return buf;
}
/**********************************************************
** 功能說明:  eeprom回應命令體
** 輸入參數:  buf          類型:uchar 	:0響應/1無響應
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*************************************************************/
uchar iic_ack()
{
	uchar buf;
	TRISD1 = 0;
	TRISC2 = 1;
	sda(1);
	_nop();
	scl(1);
	if(PORTC & 0x04)
		buf = 1;
	else
		buf = 0;
	scl(0);
	_nop();
	TRISC2 = 0;
	_nop();
	return buf;
}
/**********************************************************
** 功能說明:  收到數據發出響應
** 輸入參數: 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void ack_iic(uchar buf)
{
	if(buf == 0)
	{
		sda(0);
	}
	else
	{
		sda(1);
	}
	_nop();
	
	scl(1);
	_nop();
	scl(0);
	_nop();
}

/**********************************************************
** 功能說明: 中斷處理子程序(包括接收中斷、定時器中斷)
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
**********************************************************/
void interrupt int_process(void)
{
	auto uchar i;
//	uchar buf;
	if(RCIF == 1)  //USART接收中斷標志位為1
	{
		if(portd_wbuf&0x10)//如果處于發送狀態,返回主程序,不處理緩沖區中的數據
		{
			return;
		}
		if(receive_over == 1 )//如果接收完成標志為1,則接收完成,不再接收數據.
		{
			return;
		}
		if(receive_cnt > 79)//接收緩沖超過80個字節時,就為溢出,將接收緩沖重新計數
		{
			receive_time_on = 0;//接收超時定時器開關關閉
			receive_time_count = 0;//接收超時定時計數器清零
			receive_cnt = 0;//發送或接收的字節數清零.
			for(i = 0; i < BUF_LENGTH; i++)  //將接收緩沖清零
			{
				receive_buf[i] = 0;
			}
			return;
		}		
		receive_buf[receive_cnt] = RCREG;
//		if (receive_cnt==1)
//		{
//			buf=receive_buf[receive_cnt];
//		}
		if(receive_buf[receive_cnt] == 0x4E)//接收到的字節是包頭或包尾
		{
			if(headend_flag==0x01)//判斷接收到的是包頭還是包尾,如果標志=1,則接收到過包頭,現在接收到的是包尾;
			{
				headend_flag=0x02;//接收到的是包尾
			}
			if(headend_flag==0x00)//判斷接收到的是包頭還是包尾,如果標志=0,則接收到的是包頭,之前沒接收到包尾和包頭;
			{
				receive_buf[0]=0x4E;
				headend_flag=0x01;//接收到的是包頭
				receive_cnt = 0x01;//接收的字節數為1個.
				receive_time_on = 0x01;//接收超時定時器開關打開
				receive_time_count = 0x00;//接收超時定時計數器清零
//				for(i = 0; i < BUF_LENGTH;i++)//將接收緩沖清零
//				{
//					receive_buf[i] = 0;
//				}
				return;				
			}
		}		
		else if(receive_buf[0] != 0x4E)//如果緩沖區接收到的第一個字節不是包頭
		{
			receive_cnt = 0x00;//發送或接收的字節數清零.
			receive_time_on = 0x00;//接收超時定時器開關關閉
			receive_time_count = 0x00;//接收超時定時計數器清零
			return;
		}	
		
		if((receive_buf[receive_cnt-1] == 0x5E)&&(tran_flag==0x00))//接收到轉義字節0x5E
		{
		//	tran_flag=0x01;
			if	(receive_buf[receive_cnt] == 0x4D)//0X5E的轉義處理
			{
				receive_buf[receive_cnt-1]	=0X4E;
				tran_flag=0x01;//完成轉義處理
				//receive_cnt--;
				return;
			}
			else if(receive_buf[receive_cnt]==0x5D)//0X5E的轉義處理
			{
				
				tran_flag=0x01;//完成轉義處理
				receive_buf[receive_cnt-1]=0x5E;
				//receive_cnt--;
				return;
			}
			else if(tran_flag==0x01)//0X5E的轉義處理
			{
				tran_flag=0x00;
			}
			else //說明接收錯誤,返回
			{
				tran_flag=0x00;
				headend_flag=0x00;
				receive_time_on = 0;//接收超時定時器開關關閉
				receive_time_count = 0;//接收超時定時計數器清零
				receive_cnt = 0;//發送或接收的字節數清零.
				return;
			}			
		}
		receive_cnt++;		
		if(headend_flag==0x02)//接收到了包頭和包尾,并且沒有接收到轉義字節0X5E或轉義處理已完成
		{
			tran_flag=0x00;
			headend_flag==0x00;//包頭包尾標志清零
			receive_time_on = 0;//接收超時定時器開關關閉
			receive_time_count = 0;//接收超時定時計數器清零
			receive_over = 1;//接收完成標志置1
			RCIE = 0;//接收允許標志位清零,不允許接收
			CREN = 0;  
			return;
		}
	}
	else if(TMR1IF == 1)
	{
		chushi++;
	//	if (chush

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
555www色欧美视频| 久久精品国产成人一区二区三区| 亚洲成人动漫在线免费观看| 国产精品亚洲午夜一区二区三区 | 欧美精品在线一区二区三区| 国产视频一区二区在线观看| 亚洲国产aⅴ天堂久久| 国产在线视频一区二区| 欧美日韩性生活| 亚洲精品综合在线| 成人av手机在线观看| 久久蜜桃一区二区| 蜜桃一区二区三区在线观看| 欧美日韩在线三级| 亚洲另类春色国产| 91首页免费视频| 亚洲国产成人午夜在线一区| 日本欧洲一区二区| 在线不卡中文字幕播放| 亚洲一区免费观看| 91丨九色丨蝌蚪富婆spa| 国产丝袜欧美中文另类| 国内精品久久久久影院薰衣草| 欧美日韩综合在线免费观看| 亚洲美女淫视频| 色综合久久久久综合| 亚洲色图欧美激情| 色婷婷国产精品| 一区二区三区在线视频免费观看| 91伊人久久大香线蕉| 国产精品久久影院| 91原创在线视频| 亚洲精品高清视频在线观看| 色综合久久综合| 一个色综合av| 欧美日韩不卡一区| 日本va欧美va瓶| 日韩精品中文字幕在线不卡尤物 | 亚洲欧美一区二区不卡| 色婷婷久久一区二区三区麻豆| 中文字幕一区二区三区av| 99综合影院在线| 亚洲欧美另类小说视频| 欧美中文字幕久久| 日本视频在线一区| 337p日本欧洲亚洲大胆色噜噜| 韩日欧美一区二区三区| 久久精品人人做| www.性欧美| 亚洲国产视频一区| 日韩免费在线观看| 成人小视频在线| 一区二区三区成人| 这里只有精品免费| 国产高清无密码一区二区三区| 国产精品亲子伦对白| 91污在线观看| 免费不卡在线观看| 亚洲国产精品二十页| 在线观看中文字幕不卡| 久久丁香综合五月国产三级网站| 国产欧美精品一区二区色综合朱莉 | 狠狠狠色丁香婷婷综合激情| 国产精品三级久久久久三级| 欧美亚洲日本国产| 国内久久精品视频| 一区二区三区四区高清精品免费观看| 欧美日韩亚州综合| 国v精品久久久网| 亚洲动漫第一页| 国产视频一区二区三区在线观看| 色婷婷国产精品久久包臀| 久久国产精品第一页| 一区二区中文视频| 日韩欧美电影在线| 色综合一个色综合亚洲| 韩国成人在线视频| 亚洲成人黄色小说| 国产精品第一页第二页第三页| 欧美二区三区的天堂| 99久久99久久久精品齐齐| 蜜桃av噜噜一区| 一区二区三区丝袜| 国产精品电影院| 精品国精品自拍自在线| 欧美日韩午夜在线视频| 99精品视频在线播放观看| 精品一区二区三区av| 午夜精品视频在线观看| 中文字幕在线免费不卡| 久久亚洲私人国产精品va媚药| 欧美又粗又大又爽| 成人精品视频一区二区三区| 精品午夜一区二区三区在线观看 | 欧美视频在线观看一区| av电影在线观看一区| 国产一区二区0| 日韩在线观看一区二区| 亚洲在线免费播放| 亚洲视频每日更新| 国产精品―色哟哟| 国产日韩精品一区二区三区在线| 日韩亚洲欧美一区| 91精品在线一区二区| 欧美性感一区二区三区| 97国产一区二区| 93久久精品日日躁夜夜躁欧美| 国产精品亚洲第一| 国产一区视频导航| 韩国毛片一区二区三区| 国产尤物一区二区在线| 韩国v欧美v日本v亚洲v| 乱中年女人伦av一区二区| 蜜臀av国产精品久久久久| 免费日本视频一区| 久久国产精品99久久久久久老狼| 久久精品国产精品青草| 精彩视频一区二区三区| 狠狠网亚洲精品| 国产高清在线精品| jizzjizzjizz欧美| 99精品国产热久久91蜜凸| 色婷婷av一区二区三区gif| 色网综合在线观看| 欧美色电影在线| 日韩区在线观看| 久久综合久久久久88| 中文av一区二区| 国产精品国产三级国产普通话三级| ●精品国产综合乱码久久久久| 一区二区在线观看免费视频播放| 亚洲一二三四在线观看| 日本视频中文字幕一区二区三区| 另类人妖一区二区av| 成人夜色视频网站在线观看| 99久久精品国产导航| 欧美日韩在线免费视频| 精品国产乱码久久久久久图片| 国产欧美1区2区3区| 亚洲精品中文字幕在线观看| 丝袜美腿亚洲色图| 国产综合色产在线精品| 99久久伊人网影院| 欧美日韩久久久一区| 欧美tk—视频vk| 亚洲女与黑人做爰| 九一九一国产精品| 99久久综合国产精品| 欧美一区二区私人影院日本| 久久网站最新地址| 亚洲最大的成人av| 精品在线一区二区三区| 在线中文字幕一区二区| 26uuu国产日韩综合| 亚洲激情成人在线| 国产在线不卡一区| 欧美日韩免费高清一区色橹橹| xfplay精品久久| 亚洲专区一二三| 国产精品一区二区在线观看不卡 | 久久久精品影视| 欧美日韩免费观看一区三区| 精品久久久三级丝袜| 亚洲精品一二三四区| 国产黑丝在线一区二区三区| 欧美日韩精品一区二区在线播放| 欧美大片免费久久精品三p| 日韩一区二区三区在线观看| 午夜精品福利一区二区蜜股av| 日本高清视频一区二区| 一区二区三区免费在线观看| 欧美性色黄大片| 视频一区视频二区中文字幕| 91精品国产综合久久婷婷香蕉| 日韩av不卡在线观看| 欧美成人在线直播| 国产激情一区二区三区四区| 久久久久久免费网| av男人天堂一区| 亚洲自拍偷拍综合| 欧美一区二区精品在线| 久久疯狂做爰流白浆xx| 国产日产欧美一区| 99久久精品国产导航| 亚洲超碰97人人做人人爱| 3d动漫精品啪啪| 国产精品2024| 一区二区在线观看不卡| 欧美日韩国产美女| 国产一区二区三区在线观看免费视频| 久久久蜜桃精品| 日本乱人伦aⅴ精品| 日本视频在线一区| 国产欧美一区二区精品久导航 | 欧美美女直播网站| 奇米色777欧美一区二区| 久久精品欧美日韩| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲麻豆国产自偷在线| 91麻豆精品久久久久蜜臀|