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

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

?? main.c

?? RFID 函數接口的部分設計
?? C
?? 第 1 頁 / 共 3 頁
字號:
		  
		  Status = MI_OK;
		  break;
	
	
		case 0x51:					// Clr Control Bit
	                                             
		  Status = MI_OK;
		  break;
	
	
		case 0x52:                  			// Config
	
		  Status = M500PcdConfig();
	
	#ifdef AUTODELAY
		  DelayRate = 0;
	#endif
		  break;
	
	
		case 0x53:					// Check Write
	
		  Status = MIS_CHK_FAILED;
	
		  if (M500PiccRequest(PICC_REQALL, tt) != MI_OK)
		  {
			if (M500PiccRequest(PICC_REQALL, tt) != MI_OK)
			{
			  break;
			}
		  }
		  if (M500PiccSelect(&SerBuffer[SERNR], &size) != MI_OK)
		  {
			if (M500PiccRequest(PICC_REQALL, tt) != MI_OK)
			{                           
			  break;
			}
			if (M500PiccSelect(&SerBuffer[SERNR], &size) != MI_OK)
			{
			  break;
			}
		  }
		  memcpy(card_snr,&SerBuffer[SERNR],4);
		  if(SerBuffer[AUTHMODE]&0X04) SerBuffer[AUTHMODE]=PICC_AUTHENT1B; // keyB
		  else SerBuffer[AUTHMODE]=PICC_AUTHENT1A; // keyA
			
		  //if (Status = M500PiccAuth(SerBuffer[AUTHMODE], card_snr, 
		  //			    SerBuffer[ADRCHKWR]>>2, SerBuffer[ADRCHKWR]) != MI_OK)
		  if (Status = M500PiccAuthE2(SerBuffer[AUTHMODE], card_snr, 
					    SerBuffer[ADRCHKWR]>>2, SerBuffer[ADRCHKWR]) != MI_OK)
		  {
			break;
		  }
	
		  if (M500PiccRead(SerBuffer[ADRCHKWR], tmp) != MI_OK)
		  {
			break;
		  }
	
		  if (memcmp(&SerBuffer[DATACHKWR], tmp, 16) != MI_OK)
		  {
			Status = MIS_CHK_COMPERR;
		  }
		  else
		  {
			Status = MIS_CHK_OK;
		  }
		  break;
	
	
		case 0x54:					// Set Port
	         
		  P1 |= (SerBuffer[PORTBYTE]&0x0f);  // set the desired port pin
		  P1 &=  (SerBuffer[PORTBYTE]|0xf0); // clear the desired port pin
		  if (SerBuffer[PORTBYTE]&0x10)
			LED = ON;
		  else
			LED = OFF;
	   	  Status = MI_OK;
	   	  break;
	
	
		case 0x55:					// Get Port
	
		  SerBuffer[PORTBYTE] = P1&0xf;
		  SerBuffer[LENGTH] = 1;
		  Status = MI_OK;
		  break;
	                 
	        case 0x56:                  		// Authentication2
		  
		  if(SerBuffer[MODE]&0X04) SerBuffer[MODE]=PICC_AUTHENT1B; // keyB
		  else SerBuffer[MODE]=PICC_AUTHENT1A; // keyA
			
		  //Status = M500PiccAuth(SerBuffer[MODE], card_snr, 
		  //			SerBuffer[SECNR], SerBuffer[AUTHADD]); 
	   	  Status = M500PiccAuthE2(SerBuffer[MODE], card_snr, 
					SerBuffer[SECNR], SerBuffer[AUTHADD]); 
	   	  break;
	
	
		case 0x57:                  		// Decrement+Transfer
	
		  Status = M500PiccValue(PICC_DECREMENT, SerBuffer[ADR], &SerBuffer[VALUE], SerBuffer[ADR]);
		  break;
	
	        default:
	
		  Status = MI_NY_IMPLEMENTED;
		  break;
	
	
	  } // end switch (Command)
	
	  SerBuffer[STATUS] = ~Status+1;
	
	  if (cmd < 0x48 || cmd > 0x4A)
	  {
		EnableTransferCmd = FALSE;
	  }
	  else
	  {
		EnableTransferCmd = TRUE;
	  }
	}
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     auto_baud                                                   *
	*                                                                           *
	* Input:        -                                                           *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Mi醫 die Zeitspanne zwischen Start- und Stopbit des ersten empfangenen    *
	* Zeichens (STX) und ermittelt daraus die Baudrate.                         *
	*                                                                           *
	****************************************************************************/
	
	void 	auto_baud (void)
	{
	  //int temp;
	  
	  if (AutoBaud && !RXD)	// If autobaud is enable and RXD pin is low
	  {
		TR0 = TRUE;     // Start timer0
	
		do
		{
		  if (RXD)    	// When RXD pin is high
		  {
			Capt_L = TL0;
			Capt_H = TH0;
	
			do
			{
			  if (!RXD)
			  {
				break;
			  }
			} while (!TF0);
		  }
		} while (!TF0);
	
		TR0 = FALSE;
		TF0 = FALSE;
	
		Capt = ((uint)Capt_H << 5) | ((uint)Capt_L & 0x001F);
	        
		for (BaudRate = BAUD_CNT; BaudRate >= 0; BaudRate--) 
		{
		  if (Capt >= CmpTable[BaudRate])
		  {
			break;
		  }
		}
	
		if (BaudRate < 0 || BaudRate == BAUD_CNT) // Error baud count
		{
		  TH0    = 0;
		  TL0    = 0;
		  Capt_L = 0;
		  Capt_H = 0;
		  return;
		}
	
		TMOD = 0x21;                   	// Timer 0, mode 1, 16-bit counter
		TH1  = BaudRateTable[BaudRate];
		TL1  = TH1;
		TR1  = TRUE;
	
		TH0  = 0xE0;
		TL0  = 0;
		TR0  = TRUE;
		while (!TF0);                   // Wait 4.4 ms
		TR0  = FALSE;
		TF0  = FALSE;
		ET0  = TRUE;
	
		AutoBaud = FALSE;		// Baudrate had been choose, disable Autobaud
	
		SBUF = NAK;
		while (!TI);
		TI   = FALSE;
		RI   = FALSE;
		ES   = TRUE;
	  }
	}
	
	#pragma noaregs
	
	/****************************************************************************
	*                                                                           *
	* Function:     delay_50us                                                  *
	*                                                                           *
	* Input:        _50us                                                       *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Time delay with a resolution of 50 us.                                    *
	*                                                                           *
	****************************************************************************/
	
	void 	delay_50us (uchar _50us)
	{
	
	  RCAP2LH = RCAP2_50us;
	  T2LH    = RCAP2_50us;
	  ET2 = 0; 	// Disable timer2 interrupt
	  T2CON = 0x04;	// 16-bit auto-reload, clear TF2, start timer
	  
	  while (_50us--)
	  {
		while (!TF2);
		TF2 = FALSE;
	  }
	
	  TR2 = FALSE;
	
	}
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     delay_1ms                                                   *
	*                                                                           *
	* Input:        _1ms                                                        *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Time delay with a resolution of 1 ms.                                     *
	*                                                                           *
	****************************************************************************/
	
	void 	delay_1ms (uchar _1ms)
	{
	
	  RCAP2LH = RCAP2_1ms;
	  T2LH    = RCAP2_1ms;
	  ET2 = 0; 	// Disable timer2 interrupt
	  T2CON = 0x04;	// 16-bit auto-reload, clear TF2, start timer
	  
	  while (_1ms--)
	  {
		while (!TF2);
		TF2 = FALSE;
	  }
	  TR2 = FALSE;
	
	}
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     delay_10ms                                                  *
	*                                                                           *
	* Input:        _10ms                                                       *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Time delay with a resolution of 10 ms.                                    *
	*                                                                           *
	****************************************************************************/
	
	void 	delay_10ms (uint _10ms)
	{
	
	  RCAP2LH = RCAP2_10ms;
	  T2LH    = RCAP2_10ms;
	  ET2 = 0; 	// Disable timer2 interrupt
	  T2CON = 0x04;	// 16-bit auto-reload, clear TF2, start timer
	  
	  while (_10ms--)
	  {
		while (!TF2)
		{
		  if (CmdValid || CmdReceived)
		  {
			TR2 = FALSE;
			TF2 = FALSE;
			return;
		  }
		}
		TF2 = FALSE;
	  }
	  TR2 = FALSE;
	
	}
	
	
	#ifdef NOP_DELAY
	
	/****************************************************************************
	*                                                                           *
	* Function:     delay_50us_NOP                                              *
	*                                                                           *
	* Input:        -                                                           *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Zeitverz攇erung von 50 鎠.                                                *
	*                                                                           *
	****************************************************************************/
	
	void 	delay_50us_NOP (void)
	{
	  uchar i;
	  
	  for(i=0; i<81; i++) _nop_();	
	}
	
	#endif
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     delay_8us_NOP                                               *
	*                                                                           *
	* Input:        -                                                           *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	*                                                                           *
	****************************************************************************/
	
	void 	delay_8us_NOP (void)
	{
	  uchar i;
	  
	  for(i=0; i<14; i++) _nop_();	
	}
	
	#pragma aregs
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     xtoa_h                                                      *
	*                                                                           *
	* Input:        _byte                                                       *
	* Output:       ASCII High-Nibble                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Wandelt das High-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.    *
	*                                                                           *
	****************************************************************************/
	
	uchar 	xtoa_h (uchar _byte)
	{
	  uchar nibble = _byte >> 4;
	
	  return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
	}
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     xtoa_l                                                      *
	*                                                                           *
	* Input:        _byte                                                       *
	* Output:       ASCII Low-Nibble                                            *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	* Wandelt das Low-Nibble des 乥ergebenen Bytes in ein ASCII-Zeichen um.     *
	*                                                                           *
	****************************************************************************/
	
	uchar 	xtoa_l (uchar _byte)
	{
	  uchar nibble = _byte & 0x0F;
	
	  return ((nibble > 9)? nibble + 'A' - 10 : nibble + '0');
	}
	
	
	/****************************************************************************
	*                                                                           *
	* Function:     isr_timer0                                                  *
	*                                                                           *
	* Input:        -                                                           *
	* Output:       -                                                           *
	*                                                                           *
	* Description:                                                              *
	*                                                                           *
	*                                                                           *
	****************************************************************************/
	
	void 	isr_timer0 (void) interrupt 1 using 2
	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜亚洲另类欧美| 日韩精品亚洲一区二区三区免费| 丝袜国产日韩另类美女| 色综合久久88色综合天天免费| 91激情在线视频| 国产在线观看一区二区| 精品视频资源站| 久久精品视频一区二区三区| 日韩精品一区在线观看| 国产精品久久久久一区二区三区共| 精品成a人在线观看| www成人在线观看| 亚洲精品一区二区三区福利| 国产精品一区二区久久不卡| 久久精品这里都是精品| av在线不卡网| 亚洲在线免费播放| 日韩视频123| 国产三区在线成人av| 欧美国产日韩一二三区| 亚洲伦理在线精品| 国产欧美一区二区精品秋霞影院 | 亚洲美女一区二区三区| 亚洲精品伦理在线| 一区二区三区在线免费播放| 中文字幕av资源一区| 欧美一级高清片| 欧美大度的电影原声| 成人av在线播放网址| 久久99精品国产麻豆婷婷洗澡| 亚洲影院在线观看| 一区二区三区不卡视频| 日韩欧美国产综合在线一区二区三区| 成人aaaa免费全部观看| 国产精品一区二区三区四区 | 91色porny在线视频| 久久99热这里只有精品| 怡红院av一区二区三区| 亚洲第一成人在线| 久久精品在这里| 亚洲国产精品精华液网站 | 欧美综合一区二区| 亚洲va国产天堂va久久en| 在线亚洲高清视频| 欧美性xxxxx极品少妇| 精品国精品国产| 亚洲123区在线观看| 欧美日韩在线免费视频| 欧美日韩精品免费| 日韩精品一区二区三区中文不卡| 丁香一区二区三区| 国内精品久久久久影院一蜜桃| 日本人妖一区二区| 亚洲男人的天堂网| 奇米888四色在线精品| 国产在线不卡视频| 欧美大白屁股肥臀xxxxxx| 久久久.com| 亚洲成精国产精品女| 欧美日韩一区二区电影| 国产美女精品在线| 91在线精品一区二区| ●精品国产综合乱码久久久久| 在线一区二区三区| 粉嫩久久99精品久久久久久夜| 亚洲人精品一区| 精品日韩欧美在线| jvid福利写真一区二区三区| 91精品国产综合久久福利软件| 精品一区二区三区久久| 成人av电影在线观看| 日本中文字幕一区| 日韩一区二区电影| 成人高清伦理免费影院在线观看| 欧美激情中文字幕| 国产婷婷色一区二区三区在线| 欧美日韩高清在线播放| 欧美亚日韩国产aⅴ精品中极品| 久久午夜老司机| 色综合天天综合网国产成人综合天| 中文字幕一区在线观看视频| 久久久久国产精品厨房| 精品国精品自拍自在线| 国产欧美一区二区精品婷婷| 欧美日韩国产一区二区三区地区| 国产日韩欧美精品在线| 精品卡一卡二卡三卡四在线| 欧美成人r级一区二区三区| 亚洲综合免费观看高清完整版| 国产午夜亚洲精品不卡| 欧美日韩国产综合草草| 精品久久久久久久久久久久久久久 | 极品销魂美女一区二区三区| av不卡在线观看| 亚洲高清视频在线| 久久影院午夜论| 欧美视频三区在线播放| 国产美女视频一区| 亚洲一区二区三区免费视频| 亚洲精品在线观看网站| 欧美在线综合视频| 中文字幕第一页久久| 成人av在线一区二区三区| 亚洲一区二区三区四区在线免费观看 | 欧美一区二区日韩| av在线播放成人| 国产suv精品一区二区6| 偷窥少妇高潮呻吟av久久免费| 国产精品大尺度| 亚洲精品水蜜桃| 亚洲精品一区二区三区99| 国产精品久久久久永久免费观看| 日韩三级精品电影久久久 | 美腿丝袜亚洲一区| 一区在线中文字幕| 亚洲精品免费电影| 日本在线不卡视频| 国产99久久久国产精品免费看 | 欧美亚洲国产bt| 欧美成人bangbros| 国产精品电影院| 日韩黄色在线观看| 国产98色在线|日韩| 欧美色手机在线观看| 久久你懂得1024| 亚洲免费观看高清在线观看| 日本不卡一区二区三区| 亚洲天堂av一区| 五月婷婷综合激情| 波多野结衣91| 欧美成人一区二区三区在线观看 | 国产精品网站在线观看| 一区二区三区资源| 国产伦精品一区二区三区免费| 在线观看国产91| 国产精品人人做人人爽人人添| 天堂蜜桃一区二区三区| 成人美女在线观看| 4438x亚洲最大成人网| 国产精品美女一区二区三区| 秋霞成人午夜伦在线观看| 99精品一区二区| 2023国产精品| 日韩av高清在线观看| 日本黄色一区二区| 一本色道久久综合精品竹菊| www一区二区| 麻豆国产欧美日韩综合精品二区 | 丁香婷婷综合激情五月色| 555www色欧美视频| 亚洲国产成人91porn| av一二三不卡影片| 久久精品亚洲乱码伦伦中文| 日韩电影一区二区三区四区| 91精品福利视频| 中文字幕佐山爱一区二区免费| 久久成人麻豆午夜电影| 麻豆精品视频在线观看免费| 欧美精品久久99久久在免费线| 国产精品网站一区| 国产成人av影院| 国产亚洲欧美日韩俺去了| 久久er精品视频| 欧美一级二级在线观看| 日本不卡视频一二三区| 欧美理论电影在线| 婷婷久久综合九色综合绿巨人| 在线观看成人小视频| 亚洲图片欧美色图| 欧美日韩国产高清一区二区| 亚洲成av人影院| 欧美日韩一级片在线观看| 亚洲亚洲精品在线观看| 欧美三级日韩在线| 亚洲第一久久影院| 3atv一区二区三区| 日韩在线卡一卡二| 日韩欧美亚洲另类制服综合在线| 丝袜亚洲另类欧美综合| 欧美一区二区三区在线电影| 美女网站色91| 91精品国产麻豆国产自产在线 | 亚洲国产一二三| 色婷婷综合五月| 午夜在线成人av| 91精品蜜臀在线一区尤物| 精品在线观看视频| 中文字幕乱码久久午夜不卡| 99精品偷自拍| 午夜亚洲福利老司机| 日韩欧美二区三区| 国内精品不卡在线| 亚洲欧洲日韩在线| 欧美日韩一区三区| 麻豆国产精品官网| 中文字幕一区二区三区不卡在线 | 国产精品毛片久久久久久| 91蜜桃在线免费视频| 水野朝阳av一区二区三区| 精品国产髙清在线看国产毛片 |