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

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

?? spi.#3

?? ad轉換的程序
?? #3
字號:
/*================================================================================================

						AD7705 analogy serialport driver

==================================================================================================
		AD7705------W77E58		AD7705------W77E58		AD7705------W77E58
		AD_DOUT-------P0.7 		AD_DIN----------P0.4	AD_SCLK-------P2.2 	
[note] CYGANAL at 6MHz, AD7705BN at 2.576MHz
================================================================================================*/
#include <C8051F020.H>
//#include <reg51.h>
//#include <math.h>
//#include <intrins.h>

/*--------------------global define-------------------------------------------------------------*/
#define	 uchar unsigned char
#define  STORE_BUF_LEN  12                 	    /*size of storing buffer    					*/
uchar idata ucidStoreBuf[STORE_BUF_LEN];  		/*storage for storing ADC results				*/     
uchar idata *inlast=ucidStoreBuf;  				/*the positon of last ADC result				*/
long int transfer_ad;
extern unsigned int xdata canmodify_package[];
extern int cycle_times;
extern xdata int Parameter_transfer;
/*-------------------interface define-------------------------*/
sbit AD_SCLK 	= P0^6;							/*analogize TX in serial mode 0					*/
sbit AD_DIN 	= P0^4;							/*												*/
sbit AD_DOUT 	= P0^7;	
sbit CS         = P1^7;						/*												*/
sfr16 DAC0=0Xd2;
/*---------------function prototype define--------------------*/
extern void 	writeCmd (uchar);						/*write command code to AD7705's register		*/
extern uchar	readStatus (void);						/*read the communication register's status		*/
extern void 	readData (void);						/*read ADC result from AD7705					*/
extern uchar 	readByte (void);						/* read a byte from AD7705						*/
extern void 	delayMS (uchar);						/*delay certain time						 	*/		
extern void delay(int a );
extern  init3();
void ad1 (void)				  
{  


//while(1)	
        
	//	{
		//delayMS (50);
	    //delay(100);
		readData ();							/*read ADC result								*/
	//	delayMS (50);
//}
}

/* -----------------------------------------------------------------------------------------------
Function:		void writeCmd (uchar)
PURPOSE: 		write command code to AD7705's regester
PARAMETERS:
RETURN:
COMMENTS:
HISTORY:   
	Date:		2002-7-18  		2002-7-23
	Author:		xiaolan   		xiaolan
	Comment:	Wrote it		Revise it
------------------------------------------------------------------------------------------------*/
void writeCmd (uchar command)
{
	xdata uchar i;

	/* AD_CS = 0; */
	for (i = 0; i < 8; i ++)
	{
		AD_SCLK = 0;

		if (command & 0x80)
			AD_DIN = 1;
		else
			AD_DIN = 0;

		command <<= 1;
		AD_SCLK = 1;
	}
	/* AD_CS = 1; */
	AD_DIN = 1; 
	AD_SCLK = 1; 
}

/* -----------------------------------------------------------------------------------------------
Function:		uchar readStatus (void);
PURPOSE: 		read AD7705's regester status
PARAMETERS:
RETURN:
COMMENTS:
HISTORY:   
	Date:		2002-7-18  		2002-7-23
	Author:		xiaolan   		xiaolan
	Comment:	Wrote it		Revise it
------------------------------------------------------------------------------------------------*/
uchar readStatus (void)
{
 xdata	uchar ucStatus = 0x00;
   if(canmodify_package[6]==3)
	writeCmd (0x08);							/*write to communications register setting up 	*/
   if(canmodify_package[6]==1)
     writeCmd(0x09);												/*next operation to be a read from the communic-*/
												/*ations register 								*/
	ucStatus = readByte();
	return (ucStatus);
}

/* -----------------------------------------------------------------------------------------------
Function:		uchar	readData (void);
PURPOSE: 		read AD7705's regester status
PARAMETERS:
RETURN:
COMMENTS:
HISTORY:   
	Date:		2002-7-18  		2002-7-23
	Author:		xiaolan   		xiaolan
	Comment:	Wrote it		Revise it
------------------------------------------------------------------------------------------------*/
void readData (void)
{
 xdata	uchar ucStatus = 0x00, ucDataHigh = 0x00, ucDataLow = 0x00;
  static long  xdata jiyi[4];
 static unsigned dec=5;
 static long total=0L;
 long  xdata transfer1;
 long  xdata transfer2;
 long xdata   transfer3;
 long  xdata transfer;
//	{
//	ucStatus = readStatus();
//	}while (ucStatus & 0x80);
	ucStatus = readStatus();					/*wait for ADC result							*/
    if((ucStatus & 0x80)==0x00)
{
    if(canmodify_package[6]==3)
		  writeCmd(0x38);							/*write to communications register setting up 	*/
    if(canmodify_package[6]==1)
	      writeCmd(0x39);												/*next operation to be a read from the communic-*/											/*ations register 								*/

	ucDataHigh = readByte();					/*first get the high 8 bits						*/
	*inlast = ucDataHigh;            			/*store the ADC result							*/          
	inlast++;			            			/*add 1 to the position of the last ADC result	*/  
	if (inlast == ucidStoreBuf + STORE_BUF_LEN) 
		inlast = ucidStoreBuf;					/*reset the pointer of the last ADC result 		*/      

	ucDataLow = readByte();					/*then get the low 8 bits						*/
	*inlast = ucDataLow;            			/*store the ADC result							*/          
	inlast++;			            			/*add 1 to the position of the last ADC result	*/  
	if (inlast == ucidStoreBuf + STORE_BUF_LEN) 
		inlast = ucidStoreBuf;	
/*------------------------------------------------------------------------------------------------	
     AD                          dealing with the data	
----------------------------------------------------------------------------------------------------*/
        
		transfer=(ucDataHigh<<8)+ucDataLow;
        total+=transfer;
		dec--;
		if(dec==0)
		  {
		   jiyi[0]=jiyi[1];
	       jiyi[1]=jiyi[2];
	       jiyi[2]=jiyi[3];
	       //jiyi[3]=jiyi[4];
	       //jiyi[4]=jiyi[5];
	       //jiyi[5]=jiyi[6];
	       //jiyi[6]=jiyi[7];
	       //jiyi[7]=jiyi[8];
	       //jiyi[8]=jiyi[9]; 
           transfer1=((total/5));
	       if(transfer<0)transfer1=jiyi[2];
	       jiyi[3]=transfer1;
           transfer2=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3])/4;
		   
		   Parameter_transfer=(int)transfer2;
		   //transfer2=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3]+jiyi[4]+jiyi[5]+jiyi[6]+jiyi[7]+jiyi[8]+jiyi[9])/10;
		   if(canmodify_package[6]==1)
		      {
		          
				 
				// transfer_ad=(transfer2-canmodify_package[0])*(canmodify_package[3]*1000)/65536;
                 
			// if(transfer2>=(canmodify_package[0])+12752)
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
				//if(transfer2>=(canmodify_package[0]*52368/(canmodify_package[3]*1000))+12752)	
                if(transfer2>=((long)canmodify_package[0]*(canmodify_package[17]-canmodify_package[15])/(canmodify_package[3]*1000))+canmodify_package[15])
/*------------------------------------------------------------------------------------------------------------------*/
	                 {
                          cycle_times=1;
                          //transfer_ad=((transfer2-canmodify_package[0]-12752)*(canmodify_package[3]*1000))/52368;
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
						 //transfer_ad=(((transfer2-12752)*(canmodify_package[3]*1000))/52368)-canmodify_package[0];
                         //transfer3=transfer_ad*4095/(canmodify_package[3]*1000);                         
                         transfer_ad=(((transfer2-canmodify_package[15])*(canmodify_package[3]*1000))/(canmodify_package[17]-canmodify_package[15]))-canmodify_package[0];
                         transfer3=transfer_ad*4095/(canmodify_package[3]*1000);  
/*------------------------------------------------------------------------------------------------------------------*/
						  //transfer3=((transfer2-canmodify_package[0]-12752)*4095)/52368;

	              if (transfer3>=4095)
				          DAC0=4095;
	                 else
	               	      {DAC0=transfer3;}
	                }
	                 else 
	                     {
	                        cycle_times=-8;
	                        //transfer_ad=((canmodify_package[0]+12752-transfer1)*(canmodify_package[3]*1000))/52368;
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
					         //transfer_ad=((canmodify_package[0]*52368/(canmodify_package[3]*1000)+12752)-transfer2)*(canmodify_package[3]*1000)/52368;
                             transfer_ad=(((long)canmodify_package[0]*(canmodify_package[17]-canmodify_package[15])/(canmodify_package[3]*1000)+canmodify_package[15])-transfer2)*(canmodify_package[3]*1000)/(canmodify_package[17]-canmodify_package[15]);
/*------------------------------------------------------------------------------------------------------------------*/                
							DAC0=0;
	                     }				            
			   }

		 if(canmodify_package[6]==3)
		   {
		    // if(transfer2>=canmodify_package[0]+127)
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
			//if(transfer2>=canmodify_package[0]*65404/(canmodify_package[3]*1000)+127)
            if(transfer2>=(long)canmodify_package[0]*(canmodify_package[18]-canmodify_package[16])/(canmodify_package[3]*1000)+canmodify_package[16])
/*------------------------------------------------------------------------------------------------------------------*/                	               
	           {
	               cycle_times=1;
	              // transfer_ad=(transfer2-canmodify_package[0]-127)*(canmodify_package[3]*1000)/65404;
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
				 // transfer_ad=(transfer2-127)*(canmodify_package[3]*1000)/65404-canmodify_package[0];	    
                 // DAC0=transfer_ad*4095/(canmodify_package[3]*1000);
                  transfer_ad=(transfer2-canmodify_package[16])*(canmodify_package[3]*1000)/(canmodify_package[18]-canmodify_package[16])-canmodify_package[0];	    
                  DAC0=transfer_ad*4095/(canmodify_package[3]*1000);
/*------------------------------------------------------------------------------------------------------------------*/                	               
				   //DAC0=(transfer2-canmodify_package[0])*4095/65536;
	               if(transfer2>=65404)DAC0=4095;
	          }
	         else
	           {
	              cycle_times=-8;
	              //transfer_ad=(canmodify_package[0]+127-transfer2)*(canmodify_package[3]*1000)/65404;
/*----------------------------------------It is temporary-------------------------------------------------------*/	                     
			      //transfer_ad=((canmodify_package[0])*65404/(canmodify_package[3]*1000)+127-transfer2)*(canmodify_package[3]*1000)/65404;
                  transfer_ad=((long)canmodify_package[0]*(canmodify_package[18]-canmodify_package[16])/(canmodify_package[3]*1000)+canmodify_package[16]-transfer2)*(canmodify_package[3]*1000)/(canmodify_package[18]-canmodify_package[16]);
/*------------------------------------------------------------------------------------------------------------------*/                	               
				  DAC0=0;

	 }
		   }
                //transfer_ad=transfer2;
		        dec=5;
		        total=0; 
		  }

}						/*reset the pointer of the last ADC result 		*/      
}

/* -----------------------------------------------------------------------------------------------
Function:		uchar readByte (void)
PURPOSE: 		
PARAMETERS:
RETURN:
COMMENTS:
HISTORY:   
	Date:		2002-7-23  
	Author:		xiaolan   
	Comment:	Wrote it
------------------------------------------------------------------------------------------------*/
uchar readByte (void)
{
xdata	uchar i, ucReturn = 0x00;

	/* AD_CS = 0; */
	AD_DOUT = 1;
	AD_SCLK = 1;

	for (i = 0; i < 8; i ++)				
	{
		AD_SCLK = 0;
		ucReturn <<= 1;
		if (AD_DOUT)
			ucReturn |= 0x01;	
		AD_SCLK = 1;
	}

	/* AD_CS = 1; */
	AD_DOUT = 1; 
	AD_SCLK = 1; 

	return (ucReturn);
}

/* -----------------------------------------------------------------------------------------------
Function:		void delayMS (uchar)
PURPOSE: 		delay certain time
PARAMETERS:
RETURN:
COMMENTS:
HISTORY:   
	Date:		2002-7-1  
	Author:		xiaolan   
	Comment:	Wrote it
------------------------------------------------------------------------------------------------*/
void delayMS (uchar MS)
{
xdata	uchar us,usn;
	while (MS!=0)
	{WDTCN=0xa5;
		usn = 4;
		while (usn!=0)
		{WDTCN=0xa5;
		   	us = 0xf0;
			while (us!=0)
			{WDTCN=0xa5;
			    us--;
			}
			usn--;
		}
		MS--;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国av在线一区| 中日韩av电影| 亚洲欧美一区二区三区久本道91| 午夜伦理一区二区| 福利一区二区在线| 7777精品伊人久久久大香线蕉的| 国产精品久久久久久久久免费樱桃 | 欧美精品色一区二区三区| 国产日韩精品一区二区三区在线| 轻轻草成人在线| 91福利资源站| 亚洲精品欧美在线| 99视频一区二区三区| 久久伊人中文字幕| 久久国产人妖系列| 日韩精品中午字幕| 美女精品一区二区| 欧美一区二区性放荡片| 午夜精品久久久久久久99水蜜桃 | 国产精品一区不卡| 精品国产伦理网| 美女爽到高潮91| 91精品国产91久久久久久最新毛片 | 中文av一区特黄| 国产成人av电影在线| 欧美不卡一二三| 久久精品国产99| 日韩一级二级三级| 久草中文综合在线| 2024国产精品| 成人综合激情网| 国产精品天干天干在线综合| 成人激情视频网站| 国产精品国产三级国产aⅴ无密码| 处破女av一区二区| 国产精品国产馆在线真实露脸| 成人av在线资源网| 亚洲乱码中文字幕| 欧美丰满少妇xxxxx高潮对白| 丝瓜av网站精品一区二区 | 麻豆精品一区二区三区| 欧美tk丨vk视频| 国产激情91久久精品导航 | 色狠狠色噜噜噜综合网| 伊人婷婷欧美激情| 欧美精品乱人伦久久久久久| 日韩不卡免费视频| 久久精品人人做人人综合| 成人h版在线观看| 一个色综合网站| 日韩一区二区高清| 成人午夜精品一区二区三区| 综合亚洲深深色噜噜狠狠网站| 欧美做爰猛烈大尺度电影无法无天| 亚洲愉拍自拍另类高清精品| 欧美一区二区三区在线视频| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品第五页| 精品视频一区二区三区免费| 九九久久精品视频| 亚洲欧洲日本在线| 欧美一二三区精品| 成人av免费在线| 日韩综合小视频| 国产精品成人免费| 在线不卡的av| 99精品视频在线观看| 免费一区二区视频| 中文字幕亚洲在| 欧美成人高清电影在线| 91麻豆国产福利在线观看| 久久精品国产久精国产爱| 18欧美亚洲精品| 欧美本精品男人aⅴ天堂| 91蝌蚪porny| 国产一区美女在线| 天堂在线亚洲视频| 中文字幕乱码日本亚洲一区二区| 欧美精品乱码久久久久久| jlzzjlzz亚洲女人18| 蜜桃精品在线观看| 亚洲一区二区三区免费视频| 国产亚洲一区二区三区在线观看| 欧美日本在线播放| 色狠狠色狠狠综合| 成人国产免费视频| 国产一区二区福利| 伦理电影国产精品| 五月天视频一区| 一区二区三区欧美| 最新热久久免费视频| 久久精品在这里| 精品免费日韩av| 51精品视频一区二区三区| 欧美亚洲愉拍一区二区| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 亚洲欧洲av另类| 久久久夜色精品亚洲| 欧美一级黄色录像| 欧美久久免费观看| 欧美性感一类影片在线播放| 99精品偷自拍| av日韩在线网站| 99久久精品国产麻豆演员表| 成人黄色电影在线| 成人动漫精品一区二区| 成人avav在线| 99麻豆久久久国产精品免费| 成人午夜视频在线观看| 懂色av一区二区三区免费看| 国产成人自拍在线| 国产老妇另类xxxxx| 国产一区视频导航| 国产精品一线二线三线| 国产精品白丝av| 懂色av一区二区三区蜜臀| 成人动漫视频在线| 91麻豆国产福利在线观看| 色www精品视频在线观看| 色综合久久中文综合久久97| 在线看不卡av| 91精品国产色综合久久不卡电影 | 国产91高潮流白浆在线麻豆| 国产成人综合精品三级| www.日本不卡| 色88888久久久久久影院野外| 在线免费视频一区二区| 欧美亚洲国产一区二区三区va | 国产精品国产三级国产aⅴ入口| 综合婷婷亚洲小说| 亚洲成人自拍偷拍| 精品一区二区综合| av在线免费不卡| 欧美亚洲国产一区二区三区va| 欧美年轻男男videosbes| 欧美成人一区二区三区在线观看| 欧美精品一区二区三区一线天视频| 久久久久久9999| 亚洲精品久久嫩草网站秘色| 天堂久久一区二区三区| 国产裸体歌舞团一区二区| 99热99精品| 91精品国产免费| 中文字幕高清一区| 婷婷一区二区三区| 国产一区二区精品久久91| 色天使色偷偷av一区二区| 欧美一区二区三区日韩| 中文字幕精品三区| 亚洲不卡一区二区三区| 国产69精品一区二区亚洲孕妇| 欧美视频一区在线观看| xfplay精品久久| 亚洲国产精品精华液网站| 国产精一品亚洲二区在线视频| 日本道精品一区二区三区 | 一区二区三区四区乱视频| 久久成人18免费观看| 在线这里只有精品| 久久久美女毛片| 天天色图综合网| 91片在线免费观看| 精品国产一区二区三区忘忧草| 亚洲一区中文在线| 国产69精品久久久久毛片| 日韩精品资源二区在线| 亚洲宅男天堂在线观看无病毒 | 韩国成人精品a∨在线观看| 91浏览器在线视频| 国产日韩欧美精品电影三级在线| 亚洲国产另类av| 91免费视频观看| 亚洲国产精品精华液ab| 久久99日本精品| 欧美巨大另类极品videosbest | 精品一区二区三区在线播放 | 一本久道中文字幕精品亚洲嫩| 久久亚洲精华国产精华液| 日韩国产欧美在线观看| 日本道精品一区二区三区| 国产精品美女久久久久高潮| 黄网站免费久久| 日韩欧美久久一区| 亚瑟在线精品视频| 欧美性videosxxxxx| 亚洲日本va在线观看| 99久久精品国产网站| 中文字幕精品在线不卡| 国产成人午夜99999| 26uuu亚洲综合色欧美| 精品综合免费视频观看| 欧美成人女星排名| 久久国产成人午夜av影院| 日韩视频一区二区| 看片的网站亚洲| 日韩美女天天操| 国产一区二区三区av电影 | 99精品久久久久久| 最新中文字幕一区二区三区 | 色欲综合视频天天天|