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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? main.c

?? 基于AT89C5131和K9F5608的U盤(pán)程序代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):

#include "UDISK_DEF.H"
#define io_port1 *(char xdata *)0x8011
unsigned char Device_Descriptor[18] = {
				    	 0x12,			   //0x12
						 0x01,             //設(shè)備描述符類(lèi)型
						 0x10, 0x02,       //spec rev level (BCD) 1.0
						 0x0,              //設(shè)備類(lèi)型代碼
						 0x0,              //設(shè)備子類(lèi)型代碼
						 0x0,              //設(shè)備協(xié)議
						 0x20,             //max packet size
						 0x11, 0x11,       
						 0x22, 0x22,         
						 0x33, 0x33,        
						 0,                 
						 0,               
						 0,                 
						 0x01              //配置數(shù)量 	
						};

unsigned char Configuration_Descriptor_All[32] = {
                       /*配置描述符*/
		        	    9,                 //描述符長(zhǎng)度
					    2,                 //配置描述符 (0x02)
					    0x20,              
						0x00,              
						1,                 //設(shè)備接口數(shù)量
						1,                 
					    0,                
						0x80,
						0xfa,
              		    /*接口描述符*/
					    9,                 //描述符長(zhǎng)度
					    4,                  //接口描述符
					    0,                 
					    0,                 
						2,                 //設(shè)備中用到的端口數(shù)目
						8,                 //設(shè)備類(lèi)代碼--海量存儲(chǔ)設(shè)備
						6,	               //6=SCSI
						0x50,              //bulk 0nly 傳輸
						0,                 
						/*端口描述符*/                 
						0x07,             //端口描述符長(zhǎng)度.   
						0x05,             //描述符類(lèi)型---端口
						0x81,             //IN端口
						0x02,             //BULK端口   
						0x20, 0x00,       //最大傳輸量 
						0x0,              
						                  
						0x07,             //端口描述符長(zhǎng)度.   
						0x05,             //描述符類(lèi)型---端口
						0x02,             //OUT端口
						0x02,             //BULK端口
						0x20, 0x00,       //最大傳輸量
						0x0               
					};

unsigned char B_InquiryData[] = {
							0x00,	                       //Direct Access Device
							0x80,	                       //RMB
							0x00,	                       //ISO/ECMA/ANSI
							0x01,	                       //Response Data Format
							0x1f,	                       //Additional Length
							0x00,	                       //Reserved
							0x00,	                       //Reserved
							0x00,	                       //Reserved 
							'X', 'I', 'N', 'Z', 'X', ' ', ' ', ' ',	       //Vendor Information
							'U', 'S', 'B', '-', 'M', 'A', 'S', 'S', 'S', 'T', 'O', 'R', 'A', 'G', 'E', ' ',//Product Identification
							0, 0, 0, 0					   
							};	               
/*SCSI-Read_Format_capacities命令的返回?cái)?shù)據(jù)	*/
code unsigned char B_Read_Format_capacities[] = {0x00, 0x00, 0x00, 0x10,	        //capacity list header
									0x00, 0x00, 0x07, 0xf5,	0x01, 0x00, 0x02, 0x00,	//capacity descriptor
								    //Number of Blocks =2037,unformatted media,blocklength = 512Bytes
									0x00, 0x00, 0x07, 0xfd,	0x00, 0x00, 0x02, 0x00  //Formattable Capacity Descriptors
									};
//SCSI-Read_Capacity命令的返回?cái)?shù)據(jù)
code unsigned char B_Read_Capacity[] = {
								0x00, 0x00, 0xfe, 0xa0,	   //Last  Logical Block Address for 32MB 
								0x00, 0x00, 0x02, 0x00	   //block length in bytes
								};
//SCSI-Mode_Sense命令的返回?cái)?shù)據(jù)    	   		
code unsigned char B_Mode_Sense_ALL[] = {0x0b, 0x00,       //Mode Data Length
							0x00, 0x08, 0x00, 0x00,
							0x7d, 0, 0, 0, 0x02, 0x00
							};
//SCSI-Mode_Sense命令的返回?cái)?shù)據(jù)			
code unsigned char B_Mode_Sense_TPP[] = {0xf0, 0x00,       //Mode Data Length
							05, 00, 00, 00, 00, 0x0b, 00, 00, 00, 00, 0x24, 00, 00, 00, 00, 00
							};
//SCSI-Mode_Sense命令的返回?cái)?shù)據(jù)			
code unsigned char B_Mode_Sense_ZERO[] = {0x00, 0x06,      //Mode Data Length
							0x00,	                       //Medium Type Code
							0,                             //write enabled
							0, 0, 0, 0                     //reserved	
                            };


unsigned char data bulk_CSW[]={0x55,0x53,0x42,0x53,	//bytes 4 dCSWSignature
					      0x00,0x00,0x00,0x00,	    //bytes 4 dCSWTag
					      0x00,0x00,0x00,0x00,		//bytes 4 dDataResiduce
					      0x00};			        //bCSWStatus  00=good state.
struct_CBW data bulk_CBW;
void main()
{   
	Flash_Reset();											         									         
	USBInit();
	EpEnable();
	while(1)
	{
	if (UEPINT & EP0)   Ep0();//端口0中斷處理
	if (UEPINT & EP1)   Ep1();//端口1中斷處理			 
	if (UEPINT & EP2)   Ep2();//端口2中斷處理 
    }
}/////////////////////////////////////////////////////
void USBInit()
{
	int data i;	
	CKCON|=1;   //X2 Mode
	/*PLL配置*/
	PLLNDIV	=	0x04;
	PLLCON |=	(0x3&11)<<6;
	PLLRDIV	=	(0x3ff&11)>>2;
	USBCLK=0;
	PLLCON&=(~PLLRES);
	PLLCON|=PLLEN;
	USBCON&=(~USBE);
	for(i=0;i<1000;i++);//延時(shí)
	USBCON|=USBE;//USB控制器使能

}	
///////////////////////////////////////////////////
void EpEnable(void)
{
	UEPNUM=0x00;	UEPCONX=0x80;
	UEPNUM=0x01;	UEPCONX=0x86;
	UEPNUM=0x02;	UEPCONX=0x82;
	UEPRST=0x07;	UEPRST= 0x00;
	UEPIEN=0x07;	USBIEN|=EEOFINT;
	USBADDR=FEN;
}
///////////////////////////////////////////////////
unsigned char ReadEp(unsigned char EpNum,unsigned char *Data)//讀指定端口
{
	unsigned char data i=0;
	UEPNUM=EpNum;
	while(i<UBYCTLX)
	{
		Data[i++]=UEPDATX;
	}	
	UEPSTAX&=~(RXOUTB0|RXOUTB1|RXSETUP);
	return(i);
}
/////////////////////////////////////////////////////
void WriteEp(unsigned char EpNum,unsigned char nLength,unsigned char *Data)//寫(xiě)指定端口
{
	unsigned char data i=0;
	UEPNUM=EpNum;
	UEPSTAX|=DIR;
	while(nLength--) UEPDATX=Data[i++];	
	UEPSTAX|=TXRDY;
	while(!(UEPSTAX&TXCMP)) ;
	UEPSTAX&=(~(TXCMP));
}
///////////////////////////////////////////////////
void Set_Address(unsigned char EpNum)//SET_address請(qǐng)求處理
{
	WriteEp(0,0,0);
	USBADDR|=EpNum;
	USBADDR|=FEN;
	USBCON|=FADDEN;
}
//////////////////////////////////////////////////////
void Get_Descriptor(unsigned char DesType,unsigned char nLength)//獲得設(shè)備的描述符請(qǐng)求處理函數(shù)
{
	if(DesType==0x01)//設(shè)備描述符
		WriteEp(0,18,Device_Descriptor);

	if((DesType==0x02)&&(nLength==0x09))//配置描述符
		WriteEp(0,9,Configuration_Descriptor_All);

	if((DesType==0x02)&&(nLength==0xff))//描述符集合
	{
	    WriteEp(0,32,Configuration_Descriptor_All);
	    WriteEp(0,2,&Device_Descriptor[4]);
	}

	if((DesType==0x02)&&(nLength==0x20)) //配置、接口、端口描述符集合
		WriteEp(0,32,Configuration_Descriptor_All);
}
//////////////////////////////////////////////////////////
void Set_Configuration(unsigned char wValue)//使能配置
{
  if(wValue == 0)
  {
		UEPNUM=0x00;	UEPCONX=0x80;
		UEPNUM=0x01;	UEPCONX=0x86;
		UEPNUM=0x02;	UEPCONX=0x82;
		USBCON&=(~CONFG);
		WriteEp(0,0,0);	
  }
  else if(wValue == 1) 
  {
		UEPNUM=0x00;	UEPCONX=0x80;
		UEPNUM=0x01;	UEPCONX=0x86;
		UEPNUM=0x02;	UEPCONX=0x82;
		USBCON|=CONFG;
		WriteEp(0,0,0);	
  }
}
///////////////////////////////////////////////////////////////
void Ep0()//端口0處理函數(shù)
{
  unsigned char data DT[32]={0,};
  unsigned char data i;
  i = ReadEp(0,DT);
  if (((DT[0] & 0x60)==0) && i)
  {
    switch (DT[1])
    {
      case set_address				:Set_Address(DT[2]);			break;
      case get_descriptor			:Get_Descriptor(DT[3],DT[6]);	break;
      case set_configuration	    :Set_Configuration(DT[2]);		break;
      default						:;					            break;
	}
  }
  else if(DT[0]==0xa1)
	{
		WriteEp(0,0,0);
	}							  						
}

/////////////////////////////////////////////////////////////////////////
void WriteEpBulk(unsigned char EpNum,unsigned char nLength,unsigned char *Data)//寫(xiě)端口
{
	unsigned char data i;
	UEPNUM=EpNum;
	UEPSTAX|=DIR;
	for(i=0;i<nLength;i++) UEPDATX=Data[i];
	UEPSTAX|=TXRDY;
}
//////////////////////////////////////////////////////////////////////////
void TransmitCSW()//傳送狀態(tài)字
{
  WriteEpBulk(1, sizeof(bulk_CSW), bulk_CSW);
  while(!(UEPSTAX&TXCMP)) ;
  UEPSTAX&=(~(TXCMP));
}
///////////////////////////////////////////////////////////////////////////
void Ep1()//端口1處理函數(shù)
{
  UEPSTAX&=(~(TXCMP));
  TransmitCSW();
}
//////////////////////////////////////////////////////////////////////////
 void SCSI_Mode_Sense()
{
  if(bulk_CBW.CBWCB[2] == SCSI_MSPGCD_TPP)                 //Page Code=Timer and Potect Page
    {WriteEpBulk(1, sizeof(B_Mode_Sense_TPP), B_Mode_Sense_TPP);}
  else if(bulk_CBW.CBWCB[2] == SCSI_MSPGCD_RETALL)		   //Page Code=All
    {WriteEpBulk(1, sizeof(B_Mode_Sense_ALL), B_Mode_Sense_ALL);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一区二区视频| 亚洲一区二区三区免费视频| 欧美在线观看视频在线| 久久电影国产免费久久电影| 亚洲精品免费播放| 久久久久久久久岛国免费| 欧美日韩成人一区| 91在线高清观看| 国产精品18久久久久久vr| 三级成人在线视频| 亚洲精品乱码久久久久| 久久久久久久性| 欧美一区二区三区免费| 91精品91久久久中77777| 国产麻豆精品theporn| 日韩成人一级片| 亚洲在线中文字幕| 1区2区3区国产精品| 国产日韩欧美精品一区| 日韩美女一区二区三区四区| 欧美日韩日日摸| 在线观看国产91| 99精品在线免费| 风流少妇一区二区| 国产一区二区看久久| 久久成人综合网| 免费人成网站在线观看欧美高清| 偷拍自拍另类欧美| 亚洲444eee在线观看| 一区二区三区四区五区视频在线观看 | 国产精品久久久久久久久晋中| 日韩欧美中文字幕制服| 欧美电影一区二区| 91麻豆精品国产无毒不卡在线观看| 欧洲色大大久久| 日本电影欧美片| 在线观看视频一区二区| 色94色欧美sute亚洲线路一ni| 不卡视频在线看| 99久久精品费精品国产一区二区| 成人涩涩免费视频| www.亚洲精品| 91啦中文在线观看| 在线观看国产精品网站| 欧美老女人在线| 日韩欧美高清dvd碟片| 欧美成人aa大片| 国产精品区一区二区三区| 国产精品色眯眯| 亚洲视频精选在线| 亚洲成av人片在线| 日韩av电影免费观看高清完整版在线观看| 天天影视网天天综合色在线播放| 午夜久久久久久电影| 青青草97国产精品免费观看无弹窗版| 男男视频亚洲欧美| 国产成人一区在线| eeuss鲁片一区二区三区| 色综合一个色综合亚洲| 欧美日韩综合不卡| 日韩一区二区三区视频在线观看| 日韩三级高清在线| 国产亚洲一二三区| 亚洲女同女同女同女同女同69| 亚洲国产日韩a在线播放| 免费国产亚洲视频| 成人黄色综合网站| 欧美午夜精品一区| 26uuu久久天堂性欧美| 国产精品久久夜| 五月天欧美精品| 国产乱人伦偷精品视频免下载| av在线不卡观看免费观看| 欧美日韩一区在线| 久久久青草青青国产亚洲免观| 中文字幕亚洲区| 日本不卡一区二区三区高清视频| 国产成人精品在线看| 在线欧美一区二区| 精品免费国产二区三区| 亚洲特黄一级片| 麻豆精品蜜桃视频网站| 97超碰欧美中文字幕| 日韩精品中文字幕一区| 亚洲女厕所小便bbb| 捆绑调教美女网站视频一区| 91蜜桃婷婷狠狠久久综合9色| 欧美一区二区三区在线观看| 中文字幕在线观看不卡| 蜜臀av一区二区三区| 99re热视频精品| 久久一夜天堂av一区二区三区| 亚洲影院在线观看| 成人在线视频一区二区| 欧美日韩成人综合| 国产精品国产a级| 麻豆极品一区二区三区| 欧美三级欧美一级| 国产精品欧美一区喷水| 国产在线精品不卡| 欧美精品久久久久久久久老牛影院| 欧美国产综合一区二区| 日韩国产成人精品| 一本色道久久加勒比精品| 精品国产精品网麻豆系列| 亚洲国产精品久久久久秋霞影院 | 婷婷综合久久一区二区三区| 成人黄页毛片网站| 久久色.com| 日韩影院在线观看| 精品婷婷伊人一区三区三| 日韩美女视频19| jizzjizzjizz欧美| 久久精品水蜜桃av综合天堂| 蜜臀va亚洲va欧美va天堂| 在线播放欧美女士性生活| 亚洲自拍偷拍麻豆| 91免费小视频| 国产精品九色蝌蚪自拍| 国产美女精品在线| 欧美精品一区二区久久婷婷| 全国精品久久少妇| 欧美精品久久99| 亚洲成a人片综合在线| 在线观看网站黄不卡| 亚洲黄一区二区三区| 99精品欧美一区二区三区综合在线| 国产精品污www在线观看| 丁香婷婷深情五月亚洲| 国产日韩av一区二区| 国产成人午夜精品影院观看视频 | 欧美一区二区成人6969| 亚洲电影在线播放| 欧美偷拍一区二区| 亚洲高清免费视频| 欧美日韩在线直播| 婷婷久久综合九色综合伊人色| 欧美性视频一区二区三区| 亚洲一区二区视频在线| 欧美日韩久久不卡| 亚洲国产欧美一区二区三区丁香婷 | 国产麻豆9l精品三级站| 国产三区在线成人av| 丁香五精品蜜臀久久久久99网站| 国产欧美精品在线观看| www.成人在线| 夜夜操天天操亚洲| 欧美日韩激情在线| 奇米影视7777精品一区二区| 日韩欧美一区二区在线视频| 韩国成人在线视频| 男男gaygay亚洲| 亚洲精品在线观| 成人午夜激情影院| 亚洲精品高清视频在线观看| 欧美影视一区二区三区| 免费一级欧美片在线观看| 2020国产精品| 91污片在线观看| 亚洲成av人片在线观看无码| 精品久久久久久久久久久久久久久久久 | 一本大道久久a久久精品综合| 一区二区三区四区av| 欧美巨大另类极品videosbest | 精品国产一区二区精华| 成人久久久精品乱码一区二区三区| 亚洲素人一区二区| 欧美美女一区二区| 国产一区二区三区蝌蚪| 最新国产精品久久精品| 欧美日韩高清一区二区| 国模娜娜一区二区三区| 国产精品理论在线观看| 欧美精品在欧美一区二区少妇| 激情成人综合网| 亚洲三级小视频| 日韩一区二区三区视频在线| 波多野结衣中文字幕一区| 五月婷婷综合在线| 国产日韩成人精品| 在线成人免费视频| av一二三不卡影片| 蜜桃在线一区二区三区| 中文字幕在线观看一区二区| 日韩视频在线观看一区二区| 99这里都是精品| 日本不卡视频在线观看| 中文字幕在线观看不卡视频| 日韩女优av电影| 色综合久久中文字幕| 韩国三级中文字幕hd久久精品| 亚洲乱码精品一二三四区日韩在线| 日韩欧美一二三四区| 91黄视频在线| 国产91丝袜在线播放| 日韩av成人高清| 亚洲一区二区av在线| 欧美激情一区二区三区蜜桃视频 | av资源网一区| 麻豆精品视频在线观看|