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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? com.c

?? 基于C51的通用人機界面程序
?? C
字號:
#define _com_ 
#include "general.h"
#include "state.h"
#include "protocol.h"

#define INLEN	0x32					//40,固定幀長10	的倍數(shù)為宜
uchar idata r_buf[INLEN/*+0x0a*/];		//接收緩沖區(qū)
uchar *p_wrecibuf=r_buf;				//接收時緩沖區(qū)寫入指針
uchar *p_rrecibuf=r_buf;				//解析時緩沖區(qū)讀出指針				

uchar cnt_reci;
//uchar idata t_buf[32];
uchar *pSTX,*pETX;						//定位幀頭、幀尾指針
//uchar r_in,r_out,t_in,t_out;			//FIFO
bit r_full,r_notempty;					//標(biāo)志:接收緩沖滿、緩沖不空
bit f_stx_ok=0;							//
bit f_etx_ok=0;
//f_rxbit f_etx=0;

///////////////////初始化///////////////////////////////////////////////////////
void init_com(void)
{		
  	//Timer1
  	TMOD=0x20; 	/*定時器1工作方式2*/   
  	TH1=0xfd;  	/*裝253,波特率=9600bit/s*@11.0592MHz*/
  	TCON=0x40;		//啟動Timer1
	//COM
	//EA=0;
  	//TI=0;
  	SCON=0x50; 	//0101,串口工作方式1 SM2=0,REN=1,允許接收
  	//PCON=0x00;
	//PS=1;		//串口優(yōu)先級
	//buf
	r_notempty=0;
	r_full=0;
	//r_out=t_in=t_out=0;
	//r_in=1;
	//IE
	//ES=1;//開串口中斷
  	//EA=1;//開中斷
	IE=0x90;
}
////////////////////////發(fā)送部分(非中斷)////////////////////////////////////////// 
void put_char(uchar ch){//發(fā)送一個字符,非中斷方式
    SBUF=ch;
    while(TI==0);
	TI=0;				//查詢硬件置位,發(fā)送完畢
}

void put_string(uchar *str,uchar strlen){//發(fā)送一個字符串,非中斷方式,strlen長度,注意本案中是從數(shù)組 高位 開始送 
    uchar k=strlen;
    do {
        if(*(str+k-1)>=0&&*(str+k-1)<=9)	put_char(*(str+k-1)+'0');	//數(shù)字碼
		else								put_char(*(str+k-1));		//非數(shù)字
        k--;
    } while(k>0);
}



/////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
void loadmsg(uchar *msg){								// 將字符串裝入緩沖區(qū)子程序發(fā) 
    	while((*msg!=0)&&((((t_in+1)^t_out)&0x1f)!=0)){ // 檢查緩沖區(qū)滿  
       		t_buf[t_in]=*msg;
        	msg++;
        	t_in=++t_in&0x1f;                          		// if t_in+1大于緩沖區(qū)0x1f,t_in=0 
        	if (t_done){                                		// 啟動發(fā)送 
           		TI=1;
				t_empty=0;
				t_done=0;
				
        	}
    	}
}
*/ 
///////////////////////////接收部分(中斷)///////////////////////////////////////
void serial_int() interrupt 4 using 1{ 
   	
	if (RI&~r_full){                        // 接收并且接收緩沖區(qū)未滿 ,full就不再收了
		//uchar ch;
		//ch=SBUF;
		RI=0;
	  	//if(SBUF=FR_STX){		
        *p_wrecibuf=SBUF;                 	// 接收數(shù)據(jù)寫入 
		r_notempty=1;						

		if(p_wrecibuf==(r_buf+INLEN-1))	p_wrecibuf=r_buf;//循環(huán)
		else 							p_wrecibuf++;
		//cnt_reci++;
               
        if (p_wrecibuf==p_rrecibuf) 	r_full=1;        // 置緩沖區(qū)滿標(biāo)志
		//if(*(p_wrecibuf-1)==FR_ETX) f_etx=1; 
	  	//}	
	}
   	/*else if (TI&&~t_empty){                   	// 發(fā)送并且發(fā)送緩沖區(qū)未空 
         
         SBUF=t_buf[t_out]; TI=0;
         t_out=++t_out&0x1f;               			// t_out+1大于緩沖區(qū),則t_out=0 
         if (t_out==t_in) t_empty=1;       			// 要發(fā)送的數(shù)據(jù)還未送入緩沖區(qū)數(shù)據(jù),緩沖區(qū)空 
    }
   	else if (t_empty){                             // 等待緩沖區(qū)裝入數(shù)據(jù) 
         TI=0;
         t_done=1;
	}*/
}


/*
void process(uchar ch)                     
{
   return;
}
*/
/*
void processmsg(void){
/* 								// 處理接收緩沖區(qū)字符子程序
	while (((r_out+1)^r_in)!=0){					// 不空即可處理   
				
		if(r_buf[r_out+1]=='@'){					//定位幀頭
			pSTX=&(r_buf[r_out+1]);
			f_stx_ok=1;								//幀定位開始,可以unwrap
		}
		if((r_buf[r_out+1]=='\n')&&(f_stx_ok=1)){	//定位幀尾
			pETX=&(r_buf[r_out+1]);
			f_stx_ok=0;
			f_etx_ok=1;								//幀定位好,可以應(yīng)答(同時f_stx=1)
		}

		r_out=++r_out&0x1f;							//取緩沖計數(shù)    	
	}
*/
/*	uchar i;
	i=*p_rrecibuf;

	if(i==FR_STX){								//定位幀頭
		pSTX=p_rrecibuf;
		f_stx_ok=1;
	}
	if((i=FR_ETX)&&(f_stx_ok=1)){	//定位幀尾
			pETX=p_rrecibuf;
			f_stx_ok=0;
			f_etx_ok=1;		
	}

	if(p_rrecibuf==(r_buf+INLEN-1))p_rrecibuf=r_buf;
	else p_rrecibuf++;
		cnt_reci--;
	
	
}
*/

void frame_unpack(uchar pre_cmd){	//通信發(fā)起命令字,
									//最大重發(fā)次數(shù)
	
//==從緩沖讀出一幀遍歷,F(xiàn)R_ETX結(jié)束,期間關(guān)中斷=================
	uchar i;
	uchar re_cmd,*re_para/*,re_bcc1,re_bcc2*/;

	if(r_notempty/*&&f_etx*/){					//緩沖區(qū)不空
		//do{
		//ES=0;
		i=*p_rrecibuf;
		r_full=0;//清緩沖滿標(biāo)志
		
		if(i==FR_STX){							//定位幀頭
			pSTX=p_rrecibuf;					//頭指針
			f_stx_ok=1;							//標(biāo)志:頭定位好
		}
		else if((i==FR_ETX)&&(f_stx_ok==1)){	//定位幀尾(前提:頭定位好)
			pETX=p_rrecibuf;					//尾指針
			f_stx_ok=0;							//清標(biāo)志
			f_etx_ok=1;							//標(biāo)志:尾定位好,且?guī)ㄎ缓?		}

		if(p_rrecibuf==(r_buf+INLEN-1))		p_rrecibuf=r_buf;		//循環(huán)
		else p_rrecibuf++;

		if(p_rrecibuf==p_wrecibuf)			r_notempty=0;			//置緩沖區(qū)取空標(biāo)志
		//cnt_reci--;
		//}while(cnt_reci>0);
		//ES=1;
		
			
//==應(yīng)答域======================================
	if(f_etx_ok&&(pETX-pSTX==9)){				//如果接收完畢并且 幀長度正確,可以開始讀報
		f_etx_ok=0;								//1.清標(biāo)志
					
		//re_stx=*pSTX;							//幀頭
		if(pSTX<pETX){							//不跨越緩沖區(qū)尾(一般情況)
			re_cmd=*(pSTX+1);					//命令字位置指針
			re_para=pSTX+2;						//數(shù)據(jù)域起始指針
			//re_bcc1=*(pETX-2);				//校驗碼1
			//re_bcc2=*(pETX-1);				//校驗碼2
		}
		/*else{									//如果溢出(特殊情況)
			uchar *pi;
			for(pi=r_buf;pi<=pETX;pi++){
				*(pi+INLEN)=*pi;
			}
			re_cmd=*(pSTX+1);		
			re_para=pSTX+2;			
			
		}*/
//==應(yīng)答機制====================================
		switch(pre_cmd){
	//程序分支1:	開始采集--光標(biāo)數(shù)據(jù)--正確應(yīng)答**************************************************
	//		  		--重發(fā)命令--	
			case FR_Start://開始采集
				switch(re_cmd){
			/*1*/	case FR_Cursor://'d'光標(biāo)數(shù)據(jù)--[0][1]小數(shù)兩位[2][3][4][5]整數(shù)四位
						para_gb[5]=*re_para-'0';
						para_gb[4]=*(re_para+1)-'0';
						para_gb[3]=*(re_para+2)-'0';
						para_gb[2]=*(re_para+3)-'0';
						para_gb[1]=*(re_para+4)-'0';
						para_gb[0]=*(re_para+5)-'0';
						//frame_cmd(FR_Roger);//應(yīng)答
						//f_acq_ok=1;
						break;
					case FR_Result://計算結(jié)果--[6][5][4]度[3][2]分[1][0]秒
						//put_char('r');
						result[9]=*re_para-'0';
						result[8]=*(re_para+1)-'0';
						result[7]=*(re_para+2)-'0';
						result[6]=DEG;
						result[5]=*(re_para+3)-'0';
						result[4]=*(re_para+4)-'0';
						result[3]=MIN;
						result[2]=*(re_para+5)-'0';
						result[1]=*(re_para+6)-'0';
						result[0]=SEC;
						//frame_cmd(FR_Roger);			//應(yīng)答"收到"
						Index=30;						//轉(zhuǎn)顯示結(jié)果狀態(tài)
						Index=30;						//冗余一次
						break;
					case FR_Cancel://報錯--result[6][5][4][3][2][1][0]此時存放報錯信息
						//put_char('r');
						result[6]=*re_para-'0';			//錯位代碼
						result[5]=*(re_para+1)-'0';		//錯誤代碼
						//result[4]=*(re_para+2)-'0';
						//result[3]=*(re_para+3)-'0';
						//result[2]=*(re_para+4)-'0';
						//result[1]=*(re_para+5)-'0';
						//result[0]=*(re_para+6)-'0';
						//frame_cmd(FR_Roger);			//應(yīng)答"收到"
						Index=31;						//轉(zhuǎn)顯示結(jié)果狀態(tài)
						Index=31;						//冗余一次
						break;
				}	
			break;
	//程序分支2:	開始標(biāo)定--光標(biāo)數(shù)據(jù)--正確應(yīng)答**************************************************
	//		  		--重發(fā)命令--	
			case FR_Swing://開始標(biāo)定
				switch(re_cmd){
			/*1*/	case FR_Cursor://'d'光標(biāo)數(shù)據(jù)--[0][1]小數(shù)兩位[2][3][4][5]整數(shù)四位
						para_gb[5]=*re_para-'0';
						para_gb[4]=*(re_para+1)-'0';
						para_gb[3]=*(re_para+2)-'0';
						para_gb[2]=*(re_para+3)-'0';
						para_gb[1]=*(re_para+4)-'0';
						para_gb[0]=*(re_para+5)-'0';
						//frame_cmd(FR_Roger);//應(yīng)答
						//f_acq_ok=1;
						break;
					/*case FR_Swing://標(biāo)定結(jié)果--[3][2][1][0]坐標(biāo)
						//put_char('r');
						result[9]=SPACE;
						result[8]=SPACE;
						result[7]=SPACE;
						result[6]=SPACE;
						result[5]=*re_para-'0';
						result[4]=*(re_para+1)-'0';
						result[3]=*(re_para+2)-'0';
						result[2]=*(re_para+3)-'0';
						result[1]=*(re_para+4)-'0';
						result[0]=*(re_para+5)-'0';
						//frame_cmd(FR_Roger);			//應(yīng)答"收到"
						Index=30;						//轉(zhuǎn)顯示結(jié)果狀態(tài)
						Index=30;						//冗余一次
						break;*/
					case FR_Cancel://報錯--result[6][5][4][3][2][1][0]此時存放報錯信息
						//put_char('r');
						result[6]=*re_para-'0';			//錯位代碼
						result[5]=*(re_para+1)-'0';		//錯誤代碼
						//result[4]=*(re_para+2)-'0';
						//result[3]=*(re_para+3)-'0';
						//result[2]=*(re_para+4)-'0';
						//result[1]=*(re_para+5)-'0';
						//result[0]=*(re_para+6)-'0';
						//frame_cmd(FR_Roger);			//應(yīng)答"收到"
						Index=31;						//轉(zhuǎn)顯示結(jié)果狀態(tài)
						Index=31;						//冗余一次
						break;
				}	
			break;
	//程序分支:	結(jié)束采集--計算結(jié)果--***********************************************************
			/*case FR_Cancel:
				switch(re_cmd){
					case FR_Result://技術(shù)結(jié)果--[6][5][4]度[3][2]分[1][0]秒
						result[6]=*re_para-'0';
						result[5]=*(re_para+1)-'0';
						result[4]=*(re_para+2)-'0';
						result[3]=*(re_para+3)-'0';
						result[2]=*(re_para+4)-'0';
						result[1]=*(re_para+5)-'0';
						result[0]=*(re_para+6)-'0';
						Index=14;
						//frame_cmd(re_cmd);//應(yīng)答
						break;
				}	
			break;*/
	//程序分支:	向DSP查詢參數(shù)(進入Setup菜單時)--發(fā)各個參數(shù)幀*********************************************************
			case FR_Para:
				switch(re_cmd){
					case FR_A://儀器常數(shù)'a'- [0][1]秒[2][3]分[4][5]度
						para_a[6]=*re_para-'0';
						para_a[5]=*(re_para+1)-'0';
						para_a[4]=*(re_para+2)-'0';
						para_a[3]=*(re_para+3)-'0';
						para_a[2]=*(re_para+4)-'0';
						para_a[1]=*(re_para+5)-'0';
						para_a[0]=*(re_para+6)-'0';
						frame_cmd(FR_Roger);			//應(yīng)答
						f_seta_ok=1;
						//frame_data(FR_A,para_a,ALEN);
						break;
					case FR_L://緯度'l'- [0][1]小數(shù)兩位[2][3]整數(shù)兩位
						para_wd[2]=*re_para-'0';
						para_wd[1]=*(re_para+1)-'0';
						para_wd[0]=*(re_para+2)-'0';
						//para_wd[0]=*(re_para+3)-'0';
						frame_cmd(FR_Roger);			//應(yīng)答
						//f_setl_ok=1;
						//frame_data(FR_L,para_wd,LLEN);
						break;
					case FR_C://C值'c'- [0][1][2][3]
						para_c[3]=*re_para-'0';
						para_c[2]=*(re_para+1)-'0';
						para_c[1]=*(re_para+2)-'0';
						para_c[0]=*(re_para+3)-'0';
						//para_c[1]=*(re_para+4);//符號
						//para_c[0]=*(re_para+5)-'0';
						frame_cmd(FR_Roger);			//應(yīng)答
						f_setc_ok=1;
						//frame_data(FR_C,para_c,CLEN);
						break;
					case FR_P://周期個數(shù)'m'- [0]個位[1]十位
						para_p[1]=*re_para-'0';
						para_p[0]=*(re_para+1)-'0';
						frame_cmd(FR_Roger);			//應(yīng)答
						//frame_data(FR_P,para_p,PLEN);
						break;
					case FR_Z://中天位置'z'- [3][2][1][0]
						para_z[3]=*re_para-'0';
						para_z[2]=*(re_para+1)-'0';
						para_z[1]=*(re_para+2)-'0';
						para_z[0]=*(re_para+3)-'0';
						frame_cmd(FR_Roger);			//應(yīng)答
						f_setz_ok=1;
						//frame_data(FR_P,para_p,PLEN);
						break;
				}	
			break;
	//程序分支:	向DSP設(shè)置參數(shù)(4種)******************************************************************************
			case FR_A:
				switch(re_cmd){
					case FR_Roger:
						frame_cmd(FR_Roger);
						//f_rx_ok=1;
						break;
				}	
			break;
			case FR_L:
				switch(re_cmd){
					case FR_Roger:
						frame_cmd(FR_Roger);
						//f_rx_ok=1;
						break;
				}
			break;
			case FR_C:
				switch(re_cmd){
					case FR_Roger:
						frame_cmd(FR_Roger);
						//f_rx_ok=1;
						break;
				}
			break;
			case FR_P:
				switch(re_cmd){
					case FR_Roger:
						frame_cmd(FR_Roger);
						//f_rx_ok=1;
						break;
				}
			break;
			case FR_Z:
				switch(re_cmd){
					case FR_Roger:
						frame_cmd(FR_Roger);
						//f_rx_ok=1;
						break;
				}
			break;
		}//switch
	
	}//f_etx_ok
	
	//f_etx=0;
	}//F_etx	
	
}




?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区三区| av午夜精品一区二区三区| 国产精品国产三级国产普通话99| 91福利在线看| 国产成人在线免费| 另类人妖一区二区av| 亚洲国产日韩a在线播放| 国产精品污网站| 久久午夜免费电影| 911精品产国品一二三产区| 99综合电影在线视频| 国产精品一区二区91| 青青草伊人久久| 亚洲国产视频一区二区| 亚洲欧美日韩中文播放 | 91精品一区二区三区在线观看| 国产69精品一区二区亚洲孕妇| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲国产一二三| 亚洲乱码中文字幕综合| 欧美激情资源网| 精品国产一区二区三区不卡| 7777精品久久久大香线蕉| 欧美性色黄大片手机版| 97精品电影院| 91在线小视频| a级精品国产片在线观看| 粉嫩一区二区三区在线看| 国产一区二区不卡老阿姨| 久久成人av少妇免费| 热久久免费视频| 日韩和欧美的一区| 亚洲国产视频一区二区| 亚洲制服丝袜av| 亚洲一区在线播放| 亚洲一区二区三区国产| 亚洲在线视频网站| 亚洲高清免费视频| 午夜精品久久久久久| 午夜av电影一区| 日韩精品亚洲一区| 久久99深爱久久99精品| 另类小说一区二区三区| 黄色小说综合网站| 国内精品国产成人| 国产一区999| a美女胸又www黄视频久久| 91久久一区二区| 国产剧情一区在线| 欧美精品一区二区三区四区| 欧美主播一区二区三区| 欧美网站大全在线观看| 91精品国产综合久久精品图片 | 欧美性猛片xxxx免费看久爱| 欧美亚洲动漫精品| 欧美日韩成人激情| 日韩女同互慰一区二区| 日韩免费高清电影| 中文字幕精品在线不卡| 中文字幕av一区 二区| 亚洲精品久久久蜜桃| 亚洲成人自拍偷拍| 蜜臀av性久久久久蜜臀aⅴ四虎| 激情综合色播五月| 成人综合在线观看| 91黄视频在线观看| 欧美一区二区美女| 中文字幕成人网| 亚洲一区二区三区四区的| 日本午夜精品视频在线观看| 国产老肥熟一区二区三区| 91在线一区二区| 3d动漫精品啪啪| 久久精品视频网| 亚洲高清一区二区三区| 九色|91porny| 日本道色综合久久| 日韩欧美你懂的| 日韩理论片网站| 欧美aⅴ一区二区三区视频| 国产激情一区二区三区| 欧美日韩中文国产| 久久先锋影音av| 亚洲一区二区3| 粉嫩一区二区三区性色av| 欧洲一区二区三区在线| 精品精品欲导航| 伊人开心综合网| 韩国欧美一区二区| 欧美日韩久久久一区| 国产丝袜欧美中文另类| 亚洲在线观看免费视频| 国产精品一区二区果冻传媒| 欧美视频在线不卡| 国产午夜精品久久久久久久| 日韩激情一二三区| 成人激情电影免费在线观看| 日韩女优制服丝袜电影| 一区二区三区中文字幕精品精品| 国产精品原创巨作av| 欧美女孩性生活视频| 国产精品传媒入口麻豆| 久久国产夜色精品鲁鲁99| 91美女福利视频| 久久久99久久精品欧美| 日韩精品成人一区二区三区| 91影视在线播放| 久久久久国产精品麻豆ai换脸| 亚洲一区二区三区四区中文字幕| 国产91精品一区二区| 欧美成人精品1314www| 午夜免费久久看| 99re这里只有精品6| 久久久午夜精品理论片中文字幕| 偷窥少妇高潮呻吟av久久免费 | 日韩欧美亚洲国产另类| 亚洲影视在线播放| 99久免费精品视频在线观看| 久久久亚洲午夜电影| 久久精品国产亚洲a| 色噜噜狠狠色综合欧洲selulu| 欧美激情中文不卡| 国产精品一区专区| 日韩欧美的一区| 久久99国产精品免费| 欧美一区二区三区在线| 午夜激情综合网| 欧美日韩在线直播| 一区二区三区精品| 91丝袜高跟美女视频| 国产肉丝袜一区二区| 精品一区二区精品| 欧美变态口味重另类| 久久爱www久久做| 日韩一区二区麻豆国产| 蜜臀久久99精品久久久久宅男| 91精品久久久久久久91蜜桃| 日韩中文字幕麻豆| 91精品国产综合久久小美女| 青青青爽久久午夜综合久久午夜| 日韩欧美国产三级电影视频| 美美哒免费高清在线观看视频一区二区| 欧美一区二区三区免费视频| 久久精品国产色蜜蜜麻豆| 日韩视频123| 精品一区二区在线免费观看| 久久久久久久久一| 99re亚洲国产精品| 国产精品不卡在线| 欧美丝袜自拍制服另类| 日韩高清一区在线| 日韩久久精品一区| 国内成+人亚洲+欧美+综合在线 | 亚洲一区二区三区三| 欧美久久一二区| 久久国产精品72免费观看| 精品sm捆绑视频| 97精品国产97久久久久久久久久久久 | 亚洲免费观看高清完整版在线观看| 91免费版pro下载短视频| 亚洲一区在线播放| 日韩一区二区高清| 国产精品一卡二卡| 亚洲男人都懂的| 欧美一卡2卡三卡4卡5免费| 国产美女一区二区三区| 综合自拍亚洲综合图不卡区| 欧美三级电影网站| 久久疯狂做爰流白浆xx| 亚洲欧美一区二区视频| 欧美狂野另类xxxxoooo| 国产精品一区免费在线观看| 国产嫩草影院久久久久| 欧美在线免费观看亚洲| 精品写真视频在线观看| 亚洲视频在线一区二区| 日韩一区二区三区免费看 | 蜜臀精品久久久久久蜜臀| 久久久精品国产免大香伊 | 欧美激情综合五月色丁香 | 精品成人免费观看| 色综合久久66| 捆绑变态av一区二区三区| 国产精品不卡视频| 日韩片之四级片| 色综合久久综合中文综合网| 美国十次综合导航| 一区二区成人在线观看| 欧美大片一区二区三区| 色综合欧美在线视频区| 国产一区二区三区久久久| 亚洲精品成a人| 久久人人97超碰com| 欧美精品自拍偷拍| 91一区二区在线| 国产一区二区视频在线| 香蕉影视欧美成人| 亚洲欧美日韩国产一区二区三区 | 国产精品初高中害羞小美女文| 日韩精品一区二区三区中文精品|