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

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

?? spi.c

?? SPI接口通信源程序
?? C
字號:
//******************************************************//
/*spi_m是發送或接收標志位,SPIE為中斷允許位,scon中TI,RI怎么考慮??
/********************************************************/
#include <AT89X52.H>
#include <stdio.h>
#define uchar unsigned char;
#define uint unsigned int;

#define MOSI P1_5;
#define MISO P1_6;
#define SCK  P1_7;
#define SS  P1_4;
#define TXD P3_1;

sfr SPCR	=	0xD5;
sfr SPSR	=	0xAA;
sfr SPDR	=	0x86;
sbit SPIF 	=	0xB1;
sbit WCOL	=	0xB0;
sbit MSTR	=	0xD9;
sbit SPIE	=	0xDC;
/****定義變量*****************/
//SPSR=00h;
//SPDR=00h;
uchar SPI_RxHead;
uchar SPI_TxHead;
uint SPI_RxBuf[];	//選擇字節,還是字容量?//
uint SPI_TxBuf[];	//選擇字節,還是字容量?//
uint ReSend_FLAG[];
uchar crc_array[];
uint array_sscl[];
uint array_krzt[];
uint array_bwjl[];
uint array_sjjl[];
uint array_fwjl[];
uint array_xtsz[];
uint array_ddz[];
int crc_buf;
/******************************************************/
/*模擬量裝入
/******************************************************/

/*******************************************************/
/*SPI初始化
/*******************************************************/
void int_spi(void)
{
	SPCR	  =0x50;	//spe=1,mstr=1:主方式,4倍分頻//
	SPSR	  =0x40;
	IE	 	  =0x90;	//ES=1:允許串行中斷/
	//SS=0;				//spi為主器件//		
	SPI_RxHead=0;
	SPI_TxHead=0;
	ReSend_FLAG[0]=0x55;
	ReSend_FLAG[1]=0x55;		    
	ReSend_FLAG[2]=0x55;
	ReSend_FLAG[3]=0x55;
	ReSend_FLAG[4]=0x55;
	RT=TXD;
	}
/**************************************/
/*CRC校驗初始化
/**************************************/
void inti_crc(void)
{
	char i;
	for(i=0;i<16;i++)
		crc_array[i]=0x1021*i		;/*為CRC數組賦初值*/
	}
/**********************************************************************/
/****CRC校驗程序*******************************************************/
/****data為待計算CRC的數據的地址,lenght為參與CRC計算的數據長度*********/
/**********************************************************************/
void crc_cal(int *crc_data,int length)
{
		int	n1;
		int n2;
		for(;length!=0;length--)
		{
			n2=*crc_data++	;
			n1=(crc_buf>>12)&0xf	;	/*取此前CRC的高4位*/
			crc_buf<<=4	;		/*將此前CRC左移4位*/
			crc_buf^=crc_array[n1^((n2>>4&0xf))];
			n1=(crc_buf>>12)&0xf	;	/*取此前CRC的高4位*/
			crc_buf<<=4	;		/*將此前CRC左移4位*/
			crc_buf^=crc_array[n1^(n2&0xf)]	;
		}
		return;
}
/********************************************/
/*把電壓電流等參數賦給對應的數組
/********************************************/

/*******************************************/
/*判斷接收的是哪種類型BianMa_J()
/*******************************************/
void BianMa_J(void)
{
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x01)
	{
		int i;
		for(;i>=0;i--)array_sscl[i]=SPI_RxBuf[i];//實時測量//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x02)
	{
		int i;
		for(;i>=0;i--)array_krzt[i]=SPI_RxBuf[i];//開入狀態//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x03)
	{
		int i;
		for(;i>=0;i--)array_bwjl[i]=SPI_RxBuf[i];//變位記錄//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x04)
	{
		int i;
		for(;i>=0;i--)array_sjjl[i]=SPI_RxBuf[i];//事件記錄//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x05)
	{
		int i;
		for(;i>=0;i--)array_fwjl[i]=SPI_RxBuf[i];//復位記錄//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x06)
	{
		int i;
		for(;i>=0;i--)array_ddz[i]=SPI_RxBuf[i];//讀定值//
		}
	if(SPI_RxBuf[0]==0x10&&SPI_RxBuf[1]==0x07)
	{
		int i;
		for(;i>=0;i--)array_xtsz[i]=SPI_RxBuf[i];//系統設置//
		}
	//未完//
	
	}
/*******************************************/
/*fill_tx_buffer()
/*******************************************/
fill_tx_buffer()
{
	;		//判斷//
	
	}
//****************************************** 
// SPI發送/接收一幀 
//****************************************** 
void spi_RT(int SPI_RT_LENGTH) 
{ 	
	if(TXD&0x01)                                    //如果TXD(spi_m)為0,表明是接收狀態 
  	{ 
    		if ( SPI_RxHead > SPI_RT_LENGTH )   	//如果是接收幀的最后一個數據   
        	{         		
			//把幀中crc地址付給crc_data//
         		crc_cal(SPI_RxBuf,SPI_RT_LENGTH);//CRC校驗
         		if(crc_buf!=0)TXD=0;
         		else
         		{
         			if(SPI_RxBuf[0]&0x55)TXD=0; 
         			else
         			{
         				BianMa_J();	//判斷//
         				
         				
         				}       		        		               		  		      		
            			SPI_RxHead = 0;            //計數還原 
        			MSTR=1;                    //接收完成,將SPI設回主方式????? 
         			SPIE=0;			   //清空中斷申請//
         			SPIF=1;                       //置接收完成標志 ,置傳輸結束標志//
              		}  
				}
		else 
        	{                        
      			SPI_RxBuf[SPI_RxHead] = SPDR;            	//將接收到的數據存入接收緩存區 
         		SPI_RxHead++;                           //已接收數據計數器加1 
         	}       	
   }   		
	else                                             //如果spi_m為1,表明是發送狀態 
   	{ 
 		SPI_TxHead = 0;
               if(crc_buf!=0)                         
       		{
			char j;
			for(j=0;;j++)SPI_TxBuf[j]=ReSend_FLAG[j];
       			if ( SPI_TxHead <= SPI_RT_LENGTH)    //如果要發送的數據還未全部發完 
        		{    
         		SPDR = SPI_TxBuf[SPI_TxHead];           //從發送緩存區取數發送 
         		SPI_TxHead++;			 	//已發送數據計數器加1
         		//while(1);                           
        		} 
       			else                                      //如果要發送的數據已全部發完 
         		{ 
           		SPI_TxHead=0;                         //已發送數據計數器還原 
          		//SET_SPI_MODE=1;                       //釋放總線,以便接收方進入主發送。 
           		//spi_m=0; 
           		MSTR=1; 
           		SPIE=0;                         //清空中斷申請//    
           		SPIF=1;                        //清空發送中標記 ,置傳輸結束標志//
           		
         		} 
   		}
   		if(SPI_RxBuf[0]&0x55)
   		{
   			if ( SPI_TxHead <= SPI_RT_LENGTH)    //如果要發送的數據還未全部發完 
        		{    
         		SPDR = SPI_TxBuf[SPI_TxHead];           //從發送緩存區取數發送 
         		SPI_TxHead++;			 	//已發送數據計數器加1
         		//while(1);                           
        		} 
       			else                                      //如果要發送的數據已全部發完 
         		{ 
           		SPI_TxHead=0;                         //已發送數據計數器還原 
          		//SET_SPI_MODE=1;                       //釋放總線,以便接收方進入主發送。 
           		//spi_m=0; 
           		MSTR=1; 
           		SPIE=0;                         //清空中斷申請//    
           		SPIF=1;                        //清空發送中標記 ,置傳輸結束標志//
                  		} 
   			}
   		 
			/*根據dis_enter和key_enter值定時發送設定值//
} 

//****************************************** 
//發送數據 中斷服務程序
//******************************************/ 
main() 
{ 
    int_spi();          //初始化spi為主方式
    SPDR=0xFF;          //開始發送,接收方接收到的第一個數據為0xFF應忽略 
    delay_us(10);
    spi_RT(N);		//執行數據接發//  
}
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色综合网| 色婷婷综合久色| 一区二区三区不卡在线观看| 日韩一区二区三区电影| 99久久精品99国产精品| 蜜臀av一区二区在线观看| 国产精品久久久久三级| 国产欧美一区二区精品仙草咪| 日本电影亚洲天堂一区| 国产成人精品免费视频网站| 日韩不卡一区二区三区| 一区二区三区在线视频免费| 欧美国产1区2区| 欧美xingq一区二区| 欧美乱妇15p| 色综合久久88色综合天天免费| 国内精品久久久久影院薰衣草 | 国产亚洲欧美色| 欧美精品色综合| 色综合久久66| 成人av综合在线| 国产成人无遮挡在线视频| 日韩 欧美一区二区三区| 一区二区三区资源| 亚洲人成网站色在线观看| 日本一区二区三区国色天香| 日韩精品一区二区三区中文不卡| 欧美日韩三级在线| 日本精品一区二区三区高清| 91视频观看免费| 菠萝蜜视频在线观看一区| 成人在线一区二区三区| 国产精品1024久久| 国产一区二区三区免费看| 精品无码三级在线观看视频| 免费人成精品欧美精品| 日本不卡不码高清免费观看| 亚洲国产欧美日韩另类综合| 亚洲与欧洲av电影| 一级日本不卡的影视| 亚洲资源在线观看| 亚洲国产美女搞黄色| 午夜精品福利视频网站| 亚洲成人av免费| 日韩国产欧美一区二区三区| 日韩精品电影一区亚洲| 美女视频免费一区| 国内外精品视频| 成人性生交大片免费看中文网站| 国产不卡视频在线观看| 99久久精品情趣| 色菇凉天天综合网| 欧美美女一区二区| 日韩欧美视频在线| 久久久青草青青国产亚洲免观| 欧美国产欧美亚州国产日韩mv天天看完整 | 日韩欧美在线网站| 日韩一二三区不卡| 欧美精品一区二区三| 久久久久久久久久电影| 中文字幕的久久| 亚洲综合在线观看视频| 天天综合日日夜夜精品| 久久99久久99精品免视看婷婷| 国产一区二区免费视频| www.综合网.com| 在线视频国内一区二区| 欧美一区二区三区在线| 欧美精品一区二区三区蜜桃视频| 国产三级欧美三级日产三级99| 欧美激情一区二区三区蜜桃视频| 亚洲女性喷水在线观看一区| 午夜精品久久久久久久蜜桃app| 久久99九九99精品| av在线免费不卡| 91精品在线免费| 国产女人水真多18毛片18精品视频 | 亚洲国产精品久久不卡毛片| 日本亚洲最大的色成网站www| 国产精品夜夜嗨| 欧美性xxxxx极品少妇| 精品国产伦一区二区三区观看方式 | 5566中文字幕一区二区电影 | 亚洲欧美日韩在线| 日韩精品乱码免费| www.久久久久久久久| 欧美精品色综合| 国产精品久久久久精k8| 天堂在线一区二区| 成人毛片视频在线观看| 制服丝袜激情欧洲亚洲| 国产欧美精品一区| 日韩激情一区二区| 91蜜桃免费观看视频| 精品理论电影在线| 韩国成人精品a∨在线观看| 欧美三级中文字| 国产三级欧美三级| 麻豆国产精品视频| 在线欧美小视频| 国产欧美一区二区三区在线看蜜臀| 视频一区二区国产| 91麻豆国产在线观看| 精品国产乱码久久久久久久| 洋洋成人永久网站入口| 成人精品亚洲人成在线| 日韩欧美色电影| 天天影视色香欲综合网老头| 色综合一区二区| 国产欧美一区二区精品性色 | 国产精品12区| 欧美成人一区二区三区片免费| 亚洲图片有声小说| 不卡的看片网站| 久久久.com| 九色|91porny| 这里只有精品视频在线观看| 一区二区三区视频在线看| 成人晚上爱看视频| 久久久亚洲精品一区二区三区 | 欧美一级日韩不卡播放免费| 亚洲香肠在线观看| 一本到不卡免费一区二区| 国产精品麻豆久久久| 国产成人精品一区二区三区四区| 欧美成人免费网站| 久久av中文字幕片| 日韩欧美国产综合一区 | 色诱视频网站一区| 亚洲色图视频网站| 97精品国产露脸对白| 国产精品国产三级国产普通话蜜臀| 国产一区二区美女诱惑| 欧美二区在线观看| 亚洲国产成人tv| 欧美日韩亚洲另类| 亚洲国产cao| 欧美日本不卡视频| 日韩中文字幕av电影| 国产亚洲欧美中文| 懂色av一区二区夜夜嗨| 欧美国产在线观看| 99re视频这里只有精品| 一区在线播放视频| 99re热这里只有精品免费视频| 中文字幕中文字幕一区| 成人av网站免费观看| 最好看的中文字幕久久| 一本大道久久a久久综合| 亚洲国产欧美日韩另类综合| 91精品国产麻豆| 激情文学综合丁香| 国产欧美1区2区3区| 91丨九色丨蝌蚪富婆spa| 樱桃国产成人精品视频| 欧美剧在线免费观看网站| 欧美96一区二区免费视频| 精品国产一区二区三区久久影院| 国产麻豆一精品一av一免费 | 成人免费视频一区二区| 中文字幕亚洲在| 欧美性受极品xxxx喷水| 日韩高清一区在线| 国产日韩欧美制服另类| 色综合天天综合狠狠| 日韩精品一区第一页| 久久综合色婷婷| 99久久久精品| 偷偷要91色婷婷| 久久亚洲二区三区| 91偷拍与自偷拍精品| 日韩国产高清影视| 欧美韩国日本综合| 日本道色综合久久| 久久97超碰国产精品超碰| 中文字幕在线一区免费| 8x8x8国产精品| 成人做爰69片免费看网站| 亚洲成人av免费| 国产精品天干天干在线综合| 欧美日韩精品欧美日韩精品一 | 国产米奇在线777精品观看| 中文字幕永久在线不卡| 欧美日本免费一区二区三区| 国产精品77777竹菊影视小说| 亚洲色图.com| 日韩视频一区二区三区| jlzzjlzz亚洲女人18| 免费不卡在线观看| 最新日韩av在线| 亚洲精品在线一区二区| 色婷婷综合久久久久中文一区二区 | 91偷拍与自偷拍精品| 精品影院一区二区久久久| 亚洲免费在线看| 久久久蜜桃精品| 欧美高清视频一二三区 | 欧美日韩免费观看一区二区三区| 国产精品亚洲专一区二区三区 | 欧美精品一区二区三区在线|