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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usbisr.lst

?? 單片機和D12通訊的C程序.實現(xiàn)了單片機通過USB口和電腦通訊.
?? LST
?? 第 1 頁 / 共 3 頁
字號:
C51 COMPILER V7.01  USBISR                                                                 02/17/2006 15:09:24 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE USBISR
OBJECT MODULE PLACED IN USBISR.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE USBISR.C BROWSE MODP2 DEBUG OBJECTEXTEND

stmt level    source

   1          #include "InsUsb.h"
   2          
   3          extern SYS_INFORMATION data sSysInformation;
   4                  
   5          extern unsigned char xdata mEp0OutBuffer[EP0_OUT_BUFFER_SIZE];
   6          extern unsigned char data  mEp1OutBuffer[EP1_OUT_BUFFER_SIZE];  //store led status
   7          extern unsigned char xdata mRamBuffer[RAM_BUFFER_SIZE];
   8          
   9          
  10          extern void D12AcknowledgeSetup(void);
  11          extern unsigned char D12ReadInterruptRegister(void);
  12          extern unsigned char D12ReadLastTransactionStatus(unsigned char bEndpointIndex);
  13          extern unsigned char D12ReadBuffer(unsigned char bEndpointIndex, unsigned int bExpectedLength,unsigned cha
             -r * pBuffer);
  14          extern void D12WriteBuffer(unsigned char bEndpointIndex,unsigned char bLength, unsigned char * pBuffer);
  15          extern void D12SetEndpointStatus(unsigned char bEndpointIndex, unsigned char bStalled);
  16          
  17          
  18          //
  19          //*************************************************************************//
  20          //      Paremeter:
  21          //              In : None
  22          //              Out: None
  23          //      Function:
  24          //              USB standard request and vendor/class request is impleemnted by control
  25          //              transfer.Every control transfer contains three stage: setup stage,data
  26          //              stage(optional) and status stage.At setup stage,we will receive a setup packet,
  27          //              it must be 8 byte and the meaning of setup packet please reference USB 
  28          //              specification.
  29          //              For control-in transfer,there must has a data stage.At this stage,we must 
  30          //              write data to PDIUSBD12 endpoint0-in buffer,and when received IN token,
  31          //              those data will be transmit to host by PDIUSBD12 automatically.At last when
  32          //              we received an OUT token from host,control-in transfer complete.
  33          //              For control-out transfer,there may be has a data stage or no.If it has no data
  34          //              stage,we can simply set device or interface or endpoint status according request,
  35          //              but if it has a data stage,we must receive those data,and deal with them.
  36          //              At last,if we receive a IN token,return zero length to host and control-out 
  37          //              transfer complete.
  38          void Ep0Out(void)               //Control OUT transaction process
  39          {
  40   1              unsigned char data bLastTransactionStatus;
  41   1              unsigned char data bDataLength;
  42   1              unsigned char xdata * data pBuffer ;
  43   1      
  44   1      
  45   1              //after ReadLastTransactionStatus,
  46   1              //D12 will clear corresponding interrupt register flag bit automatically
  47   1              bLastTransactionStatus = D12ReadLastTransactionStatus(D12_READ_LAST_TRANSACTION_STATUS_CONTROL_OUT);
  48   1      
  49   1              #ifndef _INT_MODE_      
                              #ifdef _Debug_  
                                      printf("Ep0Out last status is 0x%x\n",(unsigned int)(bLastTransactionStatus));
                              #endif
                      #endif
  54   1              if (bLastTransactionStatus & D12_SETUP_PACKET_MASK)     //if received a setup packet
C51 COMPILER V7.01  USBISR                                                                 02/17/2006 15:09:24 PAGE 2   

  55   1              {
  56   2                      //read buffer,save SETUP data to sSysInformation.sUsbDeviceRequest
  57   2                      bDataLength = D12ReadBuffer(D12_SELECT_ENDPOINT_CONTROL_OUT, USB_SETUP_PACKET_LENGTH,&sSysInformation.sU
             -sbDeviceRequest.bmRequestType);
  58   2                      
  59   2                      sSysInformation.sUsbDeviceRequest.wValue = WORD_SWAP(sSysInformation.sUsbDeviceRequest.wValue);
  60   2                      sSysInformation.sUsbDeviceRequest.wIndex = WORD_SWAP(sSysInformation.sUsbDeviceRequest.wIndex);
  61   2                      sSysInformation.sUsbDeviceRequest.wLength = WORD_SWAP(sSysInformation.sUsbDeviceRequest.wLength);
  62   2              
  63   2                      sSysInformation.sUsbSetUpDealwith.wRemaindLength = sSysInformation.sUsbDeviceRequest.wLength;
  64   2      
  65   2                      D12AcknowledgeSetup();                          // Acknowledge setup 
  66   2      
  67   2                      sSysInformation.bSetup = TRUE;          //after received a setup packet,set flag
  68   2              
  69   2                      //if it is a control-in transfer
  70   2                      if (sSysInformation.sUsbDeviceRequest.bmRequestType & USB_ENDPOINT_DIRECTION_MASK)
  71   2                              sSysInformation.bUsbStatus = TRANSMIT;
  72   2                      //else it is control-out
  73   2                      else
  74   2                      {
  75   3                              //Interface Studio USB1.1 develop board support control-out transfer with data 
  76   3                              //stage.This firmware will save data to mEp0OutBuffer,which size is 128 byte,
  77   3                              //and user should assure data length of control-out transfer no more than it,else
  78   3                              //firmware will stall endpoint0.The meaning of received data should be interpreted by
  79   3                              //user,as a demo,firmware demenstrate how to deal with SetDeviceSerialNumber request,
  80   3                              //which is a vendor defined request;other control-out transfer will be resvered for
  81   3                              //user to determine how to deal with them.
  82   3                              if (sSysInformation.sUsbDeviceRequest.wLength > EP0_OUT_BUFFER_SIZE)
  83   3                              {
  84   4                                      CONTROL_ENDPOINT_STALL  //set control endpoint stall
  85   4                              }
  86   3                              //For contro-out transfer,it may be has data stage or no data stage.
  87   3                              //Whichever we should return status stage only after we had completed the required
  88   3                              //operation.So we set  bControOutCommandIsPending and bControlOutDataComplete flags
  89   3                              // to help we judge whether the data is received.
  90   3                              else
  91   3                              {
  92   4                                      sSysInformation.bUsbStatus = RECEIVE;
  93   4                                      sSysInformation.sUsbSetUpDealwith.bControlOutDataComplete = FALSE;
  94   4                                      sSysInformation.sUsbSetUpDealwith.bControOutCommandIsPending = TRUE;
  95   4                              }
  96   3                      }
  97   2              }
  98   1              //if endpoint0-out received a packet which is not a setup packet
  99   1              else
 100   1              {
 101   2                      if (sSysInformation.bUsbStatus == RECEIVE)
 102   2                      {
 103   3                              if (sSysInformation.sUsbSetUpDealwith.wRemaindLength>0)
 104   3                              {
 105   4                                      pBuffer = &mEp0OutBuffer + \
 106   4                                                      (sSysInformation.sUsbDeviceRequest.wLength-sSysInformation.sUsbSetUpDealwith.wRemaindLength);
 107   4                                      bDataLength = D12ReadBuffer(D12_SELECT_ENDPOINT_CONTROL_OUT,sSysInformation.sUsbSetUpDealwith.wRemaind
             -Length, pBuffer);
 108   4                                      if (bDataLength == D12_BUFFER_LENGTH_ERROR)
 109   4                                      {
 110   5                                              //D12_BUFFER_LENGTH_ERROR shows received data length is longer than expected length,
 111   5                                              //this is a serious error,so we stall control endpoint
 112   5                                              CONTROL_ENDPOINT_STALL  //set control endpoint stall
 113   5                                      }
 114   4                                      else
C51 COMPILER V7.01  USBISR                                                                 02/17/2006 15:09:24 PAGE 3   

 115   4                                      {
 116   5                                              //get remaind data length
 117   5                                              sSysInformation.sUsbSetUpDealwith.wRemaindLength -= bDataLength;
 118   5                                              //if remaind data length is 0, current data stage of control-out transfer 
 119   5                                              //will be finished.
 120   5                                              if (sSysInformation.sUsbSetUpDealwith.wRemaindLength<=0)
 121   5                                              {
 122   6                                                      sSysInformation.sUsbSetUpDealwith.bControlOutDataComplete = TRUE;
 123   6                                              }
 124   5                                      }
 125   4                              }
 126   3                              else    //unexpected out packet,we should stall control endpoint
 127   3                              {
 128   4                                      CONTROL_ENDPOINT_STALL  //set control endpoint stall
 129   4                              }
 130   3      
 131   3                      }
 132   2      
 133   2                      else if (sSysInformation.bUsbStatus == TRANSMIT)
 134   2                      {
 135   3                              //If remaind data length is zero and current status is TRANSMIT,
 136   3                              //it shows data stage of control-in transfer will be finished
 137   3                              //For control-in transfer,Host will send a zero length out packet to device
 138   3                              //as status stage which flags control-in transfer is finished.see 8.5.2.1
 139   3                              if (sSysInformation.sUsbSetUpDealwith.wRemaindLength<=0)        
 140   3                              {
 141   4                                      sSysInformation.bUsbStatus = IDLE;
 142   4                              }
 143   3                              else
 144   3                              {
 145   4                                      //this is an unexpected OUT packet,so we should stall endpoint0                         
 146   4                                      CONTROL_ENDPOINT_STALL  //set control endpoint stall
 147   4                              }
 148   3                      }
 149   2                      else    //if IDLE state
 150   2                      {
 151   3                              //this is an unexpected OUT packet,so we should stall endpoint0
 152   3                              CONTROL_ENDPOINT_STALL  //set control endpoint stall
 153   3                      }
 154   2              }
 155   1      }
 156          
 157          
 158          
 159          //
 160          //*************************************************************************
 161          //      Paremeter:
 162          //              In : None
 163          //              Out: None
 164          //      Function:
 165          //              All control-in transfer has a data stage.This function will check whether
 166          //              there are remaind data should transfer to host.
 167          //              Anaother case is,a control-out transfer expect a IN token as status stage
 168          //              to complete this transfer.
 169          void Ep0In(void)                
 170          {
 171   1              unsigned char data bLastTransactionStatus;
 172   1              unsigned char data bDataLength;
 173   1              unsigned char data i;
 174   1      
 175   1              bLastTransactionStatus = D12ReadLastTransactionStatus(D12_READ_LAST_TRANSACTION_STATUS_CONTROL_IN); // Cl
             -ear interrupt flag
C51 COMPILER V7.01  USBISR                                                                 02/17/2006 15:09:24 PAGE 4   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频网| 欧美色综合网站| 久久―日本道色综合久久| 免费成人美女在线观看| 日韩美一区二区三区| 黑人巨大精品欧美一区| 麻豆91在线看| 久久久国产精品麻豆| eeuss鲁一区二区三区| 专区另类欧美日韩| 欧美性色综合网| 亚洲国产一区二区a毛片| 在线精品亚洲一区二区不卡| xvideos.蜜桃一区二区| 国产高清精品在线| 亚洲欧美日韩一区二区 | 8x福利精品第一导航| 午夜精品久久久久久久久| 日韩一级大片在线观看| 国产一区二区三区久久久| 亚洲欧美在线视频观看| 国产成人在线观看| 亚洲色大成网站www久久九九| 精品一区二区久久| 777奇米四色成人影色区| 国产在线国偷精品免费看| 国产精品美女www爽爽爽| 欧美日韩一区成人| 国产成a人亚洲精品| 亚洲午夜av在线| 久久久一区二区| 在线欧美一区二区| 久久66热偷产精品| 亚洲久草在线视频| 日韩久久免费av| 欧美性受xxxx黑人xyx| 国产在线精品国自产拍免费| 亚洲天堂成人在线观看| 日韩欧美美女一区二区三区| 91丨porny丨户外露出| 久久成人av少妇免费| 亚洲精品中文在线| 精品久久久久久久人人人人传媒| 久久精品噜噜噜成人88aⅴ | 欧美在线观看视频在线| 美女高潮久久久| 一区二区三区欧美日| 国产三级精品在线| 成人av在线资源网| 欧美三日本三级三级在线播放| 国产精品久久久久久久久免费相片 | 岛国精品在线播放| 日本vs亚洲vs韩国一区三区 | 成人av影视在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲男同性恋视频| 国产日本亚洲高清| 精品久久国产老人久久综合| 欧美日韩一卡二卡| 蜜桃免费网站一区二区三区| 亚洲一区二区三区免费视频| 国产精品国产精品国产专区不片| 91亚洲国产成人精品一区二区三| 亚洲另类春色校园小说| 国产精品网曝门| 欧美大胆人体bbbb| 北条麻妃一区二区三区| 国精产品一区一区三区mba桃花| 久久久久久**毛片大全| 欧美一区二区播放| 欧美精品亚洲一区二区在线播放| 久久99国产精品久久99果冻传媒| 久久久久一区二区三区四区| 欧美一区二区精品在线| 在线成人高清不卡| 欧美日韩国产免费一区二区| 欧洲生活片亚洲生活在线观看| 日韩精品三区四区| 日韩精品成人一区二区在线| 国产亚洲欧美日韩俺去了| 欧美不卡视频一区| 欧美大度的电影原声| 26uuu亚洲综合色| 亚洲精品在线三区| 欧美色图在线观看| 欧美日韩视频专区在线播放| 国产麻豆精品在线| 国产激情视频一区二区在线观看| 亚洲综合免费观看高清在线观看| 欧美v日韩v国产v| 91极品视觉盛宴| 欧美日韩精品专区| 欧美一区二区三区四区高清| 欧美一区二区三区不卡| 91偷拍与自偷拍精品| 一本久道中文字幕精品亚洲嫩| 男女视频一区二区| 国内国产精品久久| 国产精品1区2区| 99在线热播精品免费| 在线亚洲一区二区| av在线综合网| 在线观看日韩电影| 国产精品国模大尺度视频| 欧美顶级少妇做爰| 精品国产乱码久久久久久夜甘婷婷| 一本久久精品一区二区| 欧美日韩国产天堂| 欧美主播一区二区三区美女| 欧美精品一级二级| 久久精品欧美日韩精品| 中文字幕日韩av资源站| 亚洲成人777| 国产精品一区二区无线| 蜜桃av一区二区三区| 成人精品小蝌蚪| 国产高清久久久久| 欧美日韩中文字幕一区二区| 日韩欧美亚洲一区二区| 中文字幕在线观看一区二区| 亚洲成人动漫在线观看| 国产精品一区在线观看乱码 | 欧美国产激情一区二区三区蜜月| 欧美高清视频不卡网| 久久免费的精品国产v∧| **网站欧美大片在线观看| 日韩福利视频导航| 青娱乐精品在线视频| 成人免费av在线| 日韩一区二区在线看片| 亚洲欧美日本韩国| 国产一区二区0| 欧美日韩一区二区电影| 欧美久久久久中文字幕| 欧美激情中文字幕一区二区| 日韩av不卡一区二区| 不卡电影免费在线播放一区| 日韩欧美美女一区二区三区| 一区二区国产盗摄色噜噜| 国产高清久久久久| 日韩视频国产视频| 亚洲一卡二卡三卡四卡无卡久久| 亚洲国产精品久久久男人的天堂| 亚洲夂夂婷婷色拍ww47| 国产很黄免费观看久久| 成人av在线网| 久久综合五月天婷婷伊人| 五月天丁香久久| 91蝌蚪porny成人天涯| 欧美激情一区二区三区在线| 国产精品久99| 成人午夜精品一区二区三区| 欧美电影免费观看高清完整版在| 亚洲一卡二卡三卡四卡| 日韩国产欧美视频| 色噜噜夜夜夜综合网| 4438成人网| 亚洲国产成人tv| 色哟哟国产精品免费观看| 国产精品久久久久三级| 东方aⅴ免费观看久久av| 在线中文字幕一区| 亚洲色大成网站www久久九九| 五月天亚洲精品| 欧美色视频在线观看| 亚洲韩国精品一区| 91福利精品第一导航| 一级日本不卡的影视| 在线视频观看一区| 亚洲一区影音先锋| 欧美日韩国产色站一区二区三区| 久久夜色精品一区| 国产精品 日产精品 欧美精品| 色猫猫国产区一区二在线视频| 日韩视频一区二区三区在线播放| 国产精品少妇自拍| www.久久久久久久久| 亚洲丝袜制服诱惑| 91视频免费观看| 亚洲国产精品久久久久秋霞影院| 国产在线一区观看| 久久久久国产精品麻豆ai换脸 | 欧美一区二区三级| 蜜臀av一级做a爰片久久| 精品国产亚洲在线| 国产激情视频一区二区三区欧美 | 欧美精品乱码久久久久久按摩 | 欧美中文字幕一二三区视频| 亚洲激情第一区| 欧美日韩综合在线| 免费在线一区观看| 久久免费电影网| 青青草国产精品97视觉盛宴| www.欧美.com| 亚洲国产美国国产综合一区二区| av亚洲产国偷v产偷v自拍| 亚洲精品美腿丝袜| 欧美一区二区三区的| 亚洲成人动漫在线观看| 欧美成人午夜电影|