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

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

?? ledtest.c

?? 這是i Button這種信息紐扣所采用的1線通訊方式的完整源程序。
?? C
?? 第 1 頁 / 共 2 頁
字號:
                           docrc16(0x07);
                           docrc16(0x00);
						   docrc16(0x0e);
                             // read and calculate the read crc
                           docrc16(temp1);
                           lastcrc16 = docrc16(temp2);
                           // crc should now be 0xB001
                           if (lastcrc16 != 0xB001)
                               {
							    ow_reset();
				                tx_str("make PIOA high crc error!");
					           }
                         else{
	                          tx_str("make PIOA high crc correct!");
			                 }
                            tx_lfbs(); 
							 
                             /*  ow_reset();                
					       write_byte(0xCC);   //LSB address
	                       write_byte(0x55);   //MSB address
					       write_byte(0x07);   //LSB address
	                       write_byte(0x00);   //MSB address
                           write_byte(0x6d);  //
                           temp1=read_byte();
						   temp2=read_byte();
						  // crcbit=read_bit();
						   setcrc16(0x0000);     //
                           docrc16(0x55);
                           docrc16(0x07);
                           docrc16(0x00);
						   docrc16(0x6d);
                             // read and calculate the read crc
                           docrc16(temp1);
                           lastcrc16 = docrc16(temp2);
                           // crc should now be 0xB001
                           if (lastcrc16 != 0xB001)
                               {
							    ow_reset();
				                tx_str("make PIOA low crc error!");
					           }
                         else{
	                          tx_str("make PIOA low crc correct!");
			                 }
                            tx_lfbs(); 
							 delay(10000);
							 ow_reset();                
					       write_byte(0xCC);   //LSB address
	                       write_byte(0xaa);   //MSB address
					       write_byte(0x07);   //LSB address
	                       write_byte(0x00);   //MSB address
                           test=read_byte();  //LSB address
                           temp1=read_byte();
						   temp2=read_byte();
						  // crcbit=read_bit();
						   setcrc16(0x0000);     //
                           docrc16(0xaa);
                           docrc16(0x07);
                           docrc16(0x00);
						   docrc16(test);
                             // read and calculate the read crc
                           docrc16(temp1);
                           lastcrc16 = docrc16(temp2);
                           // crc should now be 0xB001
                           if (lastcrc16 != 0xB001)
                               {
							    ow_reset();
				                tx_str("read status crc error!");
					           }
                         else{
	                          tx_str("read status crc correct!");
			                 }
                            tx_lfbs(); 
               			     if (test==0xff)
							       {
								     tx_str("read_byte=0xff!");
									 tx_lfbs();
									}
							   else if(test<=48) {	
	         				         tx_str("read_byte=");
									 tx_char((test+48));
									  tx_lfbs();
									}
									else {  tx_str("read_byte=");
									 tx_char((test));
									  tx_lfbs();
									}*/
						/* break;
		   case '8':
                           ow_reset();                
					       write_byte(0xCC);   //skip command
	                       write_byte(0x55);   //write status command
					       write_byte(0x07);   //LSB address
	                       write_byte(0x00);   //MSB address
                           write_byte(0x6d);  //data
                           temp1=read_byte();
						   temp2=read_byte();
						  // crcbit=read_bit();
						   setcrc16(0x0000);     //
                           docrc16(0x55);
                           docrc16(0x07);
                           docrc16(0x00);
						   docrc16(0x6d);
                             // read and calculate the read crc
                           docrc16(temp1);
                           lastcrc16 = docrc16(temp2);
                           // crc should now be 0xB001
                           if (lastcrc16 != 0xB001)
                               {
							    ow_reset();
				                tx_str("make PIOA low(Channel FF = 1 transistor off) crc error!");
					           }
                         else{
	                          tx_str("make PIOA low(Channel FF = 1 transistor off) crc correct!");
			                 }
                            tx_lfbs(); 
						//	 delay(10000);
						 break;
          default:   
		            tx_str("default break!");
					break;
		 }
		 }*/
   while(1);
  }

 /*unsigned char rx_char(void)
    {
	   while(!RI)
	      {;}
	   RI=0;
	   return SBUF;
	 }*/

void tx_str(unsigned char *str)
    {int i;
      for (i=0;i<strlen(str);i++)
	        {
			  tx_char(str[i]);
	        }
	}
void tx_char(unsigned char c)
   {
    while(!TI)
	  {
	   ;
	   }
	   TI=0;
	   SBUF=c;
	 }

void tx_lfbs(void)
    {int y;
		 tx_char(0x0A);
	 	for (y=0;y<70;y++)
			 {
              tx_char(0x08);
			}
	 }
void Led_blink(void)
  {
  int i;
      for(i=0;i<10;i++)
          {
           P15=1;
	       delay(200);
	       P15=0;
	       delay(200);
	      }
	}

void Init_Rs232(void)
   {IE=0X00;
    SCON=0x50;
    TMOD=0x20;
	TH1=0xfd;
	TL1=0xfd;
	TR1=1;
	TI=1;
   }

 void delay(int delay)
  {int i,j;
   for (i=0;i<delay;i++)
      for (j=0;j<255;j++);
   }


// WRITE_BIT - writes a bit to the one-wire bus, passed in bitval.
//
void write_bit(char bitval)
{
  if (bitval==0)
      {
	   writedatalow();
	   }
  else{
       writedatahigh();
	   }
}// Delay provides 16us per loop, plus 24us. Therefore delay(5) = 104us
// WRITE_BYTE - writes a byte to the one-wire bus.
//
/*void writedatalow(void)
  {
  }

void writedatahigh(void)
  {int count=6000;

   owData=0;
   owRst=0;
   wdelay(1);
   owData=1;
   owRst=1;
   owEn=1;
   owBsy=1;
   wdelay(1);
   owEn=0;
   while(count!=0)
       {
	     if(
   }*/

void write_byte(char val)
{
unsigned char i;
unsigned char temp;
for (i=0; i<8; i++) // writes byte, one bit at a time
{
temp = val>>i; // shifts val right 'i' spaces
temp &= 0x01; // copy that bit to temp
write_bit(temp); // write bit in temp into
}
wdelay(5);
}

unsigned char read_bit(void)
   {uchar owireda;
    owireda=readowdatabit();
/*	if (owireda ==0xff)
	       {
			   tx_str("read one bit program error!");
			 }
	if (owireda ==0x00)
	     {
		    tx_str("read one bit==0x00!");
			 }
    if (owireda ==0x01)
	     {
		    tx_str("read one bit==0x01!");
			 }
if ((owireda !=0x01)&&(owireda !=0x00)&&(owireda !=0xff))
         {
		    tx_str("read one bit program error !=0x01,0x00,0xff!");
			}*/
	return(owireda);
	}


void wdelay(int us)
   {
     int s;
	 for (s=0;s<us;s++);
	 }
//////////////////////////////////////////////////////////////////////////////
// OW_RESET - performs a reset on the one-wire bus and
// returns the presence detect. Reset is 480us, so delay
// value is (480-24)/16 = 28.5 - we use 29. Presence checked
// another 70us later, so delay is (70-24)/16 = 2.875 - we use 3.
//
/*unsigned char ow_reset(void)
{
unsigned char presence;
owData = 0; //pull DQ line low
wdelay(29); // leave it low for 480us
owData = 1; // allow line to return high
wdelay(3); // wait for presence
presence = owData; // get presence signal
wdelay(25); // wait for end of timeslot
return(presence); // presence signal returned
} // 0=presence, 1 = no part*/

//////////////////////////////////////////////////////////////////////////////
// READ_BYTE - reads a byte from the one-wire bus.
//
unsigned char read_byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i=0;i<8;i++)
{
if(read_bit()) value|=0x01<<i; // reads byte in, one byte at a time and then
// shifts it left
wdelay(6); // wait for rest of timeslot
}
return(value);
}

unsigned char First(uchar conditional)
{int flag; 
 unsigned char g; // Output bit
 unsigned char x = 0; 
 unsigned char m = 1; // ROM Bit index
 unsigned char n = 0; // ROM Byte index
 unsigned char k = 1; // bit mask
 unsigned char discrepMarker = 0; // discrepancy marker
 unsigned char nxt; // return value

   LastDeviceFlag = FALSE;
   LastDiscrepancy = 0;
   
   nxt = FALSE; // set the next flag to false
   crc8=0;

   flag = ow_reset();

   if(flag||LastDeviceFlag) // no parts -> return false
      {
        LastDiscrepancy = 0; // reset the search
         return FALSE;
      }
  if (conditional)
          { write_byte(0xec);
		  }
  else{
      write_byte(0xF0);
      }
	  do
      // for all eight bytes
        {
         x = 0;
		/* if(read_bit==0xff)
		     {
			   tx_str("read one bit program error!");
			 }*/
         if(read_bit()==1)
		    {
		     x = 2;
            // tx_str(" first bit=1!");
            //  tx_lfbs();
	        }
         wdelay(6);
         if(read_bit()==1) 
		      {x |= 1; // and its complement
               // tx_str(" next bit=1!");
                 //tx_lfbs();
			   }
           if(x ==3) // there are no devices on the 1-wire
		        {
				  tx_str(" not find slave device!");
				   tx_lfbs();
                   break;
				}
           else
             {
               if(x>0) // all devices coupled have 0 or 1
                     g = x>>1; // bit write value for search
               else
                 {
// if this discrepancy is before the last
// discrepancy on a previous Next then pick
// the same as last time
                   if(m<LastDiscrepancy)
				           {
                            g = ((ROM_NO[n]&k)>0);
						   }
                   else // if equal to last pick 1
				       {
                            g = (m==LastDiscrepancy); // if not then pick 0
					   }
// if 0 was picked then record
// position with mask k
                   if (g==0) discrepMarker = m;
                 }
                 if(g==1) // isolate bit in ROM[n] with mask k
                      ROM_NO[n] |= k;
                else
                      ROM_NO[n] &= ~k;
                 write_bit(g); // ROM search write
                 m++; // increment bit counter m
                 k = k<<1; // and shift the bit mask k
                 if(k==0) // if the mask is 0 then go to new ROM
                      { // byte n and reset mask
                        crc8=docrc8(ROM_NO[n],crc8); // accumulate the CRC
                        n++; k++;
                      }
                }
         }while(n<8); //loop until through all ROM bytes 0-7
if(m<65||crc8) // if search was unsuccessful then
LastDiscrepancy=0; // reset the last discrepancy to 0
else
    {
// search was successful, so set lastDiscrep,
// lastOne, nxt
     LastDiscrepancy = discrepMarker;
     LastDeviceFlag = (LastDiscrepancy==0);
     nxt = TRUE; // indicates search is not complete yet, more
     tx_str("Find Device!");
	  tx_lfbs();
      // parts remain
}
return nxt;
}
// Perform Match ROM
//
unsigned char Send_MatchRom(void)
{
unsigned char i;
if(ow_reset()) 
  {
   tx_str("owire reset failure!");
   return FALSE;
   }
write_byte(0x55); // match ROM command
for(i=0;i<8;i++)
{
 write_byte(ROM_NO[i]); //send ROM code
}
return TRUE;
}

//--------------------------------------------------------------------------
// Reset crc16 to the value passed in
//
// 'reset' - data to set crc16 to.
//
void setcrc16(ushort reset)
{
   utilcrc16 = reset;
   return;
}
//--------------------------------------------------------------------------
// Calculate a new CRC16 from the input data short.  Return the current
// CRC16 and also update the global variable CRC16.
//
// 'portnum'  - number 0 to MAX_PORTNUM-1.  This number is provided to
//              indicate the symbolic port number.
// 'data'     - data to perform a CRC16 on
//
// Returns: the current CRC16
//
ushort docrc16(ushort cdata)
{
   cdata = (cdata ^ (utilcrc16 & 0xff)) & 0xff;
   utilcrc16 >>= 8;

   if (oddparity[cdata & 0xf] ^ oddparity[cdata >> 4])
     utilcrc16 ^= 0xc001;

   cdata <<= 6;
   utilcrc16  ^= cdata;
   cdata <<= 1;
   utilcrc16   ^= cdata;

   return utilcrc16;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲一区二区三区四区| 国产不卡在线一区| 在线这里只有精品| 亚洲免费观看在线观看| 日本福利一区二区| 亚洲国产欧美日韩另类综合| 欧美日韩一区成人| 日韩精品电影一区亚洲| 精品少妇一区二区三区视频免付费 | 26uuu亚洲综合色欧美| 国产精品 日产精品 欧美精品| 中文字幕不卡的av| 欧美网站一区二区| 久久精品久久精品| 国产精品国产三级国产| 欧美午夜视频网站| 久久9热精品视频| 亚洲国产岛国毛片在线| 欧美性感一类影片在线播放| 麻豆成人久久精品二区三区红| 精品国产伦一区二区三区免费| 成人av动漫网站| 婷婷一区二区三区| 日本一区二区三区久久久久久久久不| 9l国产精品久久久久麻豆| 三级久久三级久久| 亚洲国产精品高清| 亚洲少妇屁股交4| 欧美一区二区精美| 一本色道久久综合狠狠躁的推荐| 天堂成人国产精品一区| 中文欧美字幕免费| 91精品国产综合久久久蜜臀粉嫩| 国产精品一区二区久久精品爱涩| 亚洲国产日韩在线一区模特| 国产欧美精品在线观看| 欧美日韩精品专区| 成人高清av在线| 免费看欧美女人艹b| 亚洲欧洲日韩女同| 精品88久久久久88久久久| 在线视频综合导航| 大桥未久av一区二区三区中文| 五月综合激情网| 亚洲欧洲精品一区二区三区不卡| 欧美一区二区黄色| 色婷婷综合激情| 国产69精品久久久久777| 日本欧美久久久久免费播放网| 中文字幕一区二区三区在线播放| 欧美一级一区二区| 91福利视频在线| 成人黄色在线网站| 国产一区91精品张津瑜| 日本中文一区二区三区| 亚洲精品美国一| 国产精品二三区| 国产亚洲一区二区三区在线观看 | 免费高清在线视频一区·| 一区二区三区四区蜜桃| 国产精品久久久久久久久动漫 | 国产欧美一区二区精品性色超碰| 欧美一区二区三区日韩视频| 欧美色网一区二区| 色激情天天射综合网| av成人免费在线| 国产成人av一区二区三区在线观看| 美女网站一区二区| 日韩高清在线不卡| 视频在线观看国产精品| 天涯成人国产亚洲精品一区av| 亚洲精品日产精品乱码不卡| 亚洲日本护士毛茸茸| 国产精品久久久久精k8| 国产精品色噜噜| 国产精品视频一二| 中文字幕乱码一区二区免费| 欧美国产在线观看| 国产精品久线观看视频| 一区在线观看视频| 中文字幕欧美一区| 一区二区三区在线影院| 亚洲伦在线观看| 亚洲综合激情另类小说区| 亚洲午夜电影在线观看| 日韩精品久久理论片| 九九在线精品视频| 国产成人免费网站| 99久久国产免费看| 欧美日韩在线播放三区| 亚洲免费资源在线播放| 一区二区激情视频| 日韩激情中文字幕| 国内精品国产成人国产三级粉色| 国产在线精品视频| caoporm超碰国产精品| 日本电影亚洲天堂一区| 4438x亚洲最大成人网| 精品免费视频一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲激情图片一区| 日韩在线一二三区| 国产一区二区三区蝌蚪| 99精品热视频| 欧美精品99久久久**| 久久综合狠狠综合| 亚洲欧美一区二区在线观看| 亚洲777理论| 国产传媒久久文化传媒| 在线观看区一区二| 日韩美一区二区三区| 国产精品美女久久久久久久| 亚洲一区二区av在线| 精品一区二区免费| 色婷婷综合久久久中文一区二区| 91精品国产aⅴ一区二区| 国产欧美中文在线| 亚洲精品乱码久久久久久黑人| 青青国产91久久久久久| av电影天堂一区二区在线| 日韩丝袜情趣美女图片| 最新日韩av在线| 麻豆91免费看| 91久久人澡人人添人人爽欧美| 欧美大度的电影原声| 悠悠色在线精品| 国产伦理精品不卡| 欧美年轻男男videosbes| 亚洲国产精品v| 麻豆国产精品一区二区三区| 色婷婷久久99综合精品jk白丝| 精品日韩一区二区三区| 亚洲小说欧美激情另类| 国产91高潮流白浆在线麻豆| 欧美日韩一级视频| 国产精品不卡一区二区三区| 老司机精品视频线观看86| 在线一区二区视频| 中文字幕 久热精品 视频在线| 免费在线观看精品| 欧洲色大大久久| 国产精品久久久久久久久久久免费看| 蜜乳av一区二区| 欧美日韩精品电影| 亚洲精品视频在线观看网站| 国产精品一区二区在线看| 91麻豆精品国产自产在线| 又紧又大又爽精品一区二区| 成人午夜视频免费看| 精品999久久久| 狠狠久久亚洲欧美| 日韩免费观看高清完整版 | 日韩在线播放一区二区| 欧美羞羞免费网站| 亚洲欧美精品午睡沙发| 成人网男人的天堂| 亚洲国产电影在线观看| 国产麻豆精品在线观看| 亚洲一二三专区| 色www精品视频在线观看| 中文字幕一区二区视频| 成人一区二区三区视频| 国产日韩欧美精品一区| 国产乱人伦精品一区二区在线观看| 日韩一二三区不卡| 日韩和欧美一区二区| 欧美高清精品3d| 婷婷丁香久久五月婷婷| 欧美男同性恋视频网站| 午夜久久久影院| 欧美军同video69gay| 天堂va蜜桃一区二区三区漫画版| 欧美剧情片在线观看| 人人精品人人爱| 精品国内二区三区| 国产成人精品综合在线观看| 国产精品视频看| 97se亚洲国产综合自在线不卡| 亚洲天堂免费看| 欧美午夜精品一区| 午夜影院在线观看欧美| 91精品国产福利| 国产成人精品一区二| 中文字幕中文字幕一区二区| 色婷婷久久久亚洲一区二区三区| 亚洲国产综合在线| 日韩一级高清毛片| 国产精品羞羞答答xxdd| 一区在线观看视频| 欧美日韩成人一区二区| 久久精品国产亚洲高清剧情介绍| 久久久久久一级片| gogogo免费视频观看亚洲一| 午夜免费欧美电影| 久久久噜噜噜久久中文字幕色伊伊 | 国产a精品视频| 亚洲另类一区二区| 91精品国产麻豆国产自产在线| 国产精品自拍av| 一区二区三区成人|