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

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

?? usbex.lst

?? 使用ch375和stc 51寫的usb鼠標(biāo)的代碼
?? LST
?? 第 1 頁 / 共 3 頁
字號:
 155          //      ((unsigned char *)&out)[1] = ((unsigned char *)&in)[0];
 156          //      ((unsigned char *)&out)[0] = ((unsigned char *)&in)[1];
 157          //      return( out );
 158          //}
 159          
 160          void CH375_WR_CMD_PORT( unsigned char cmd ) {                            /* 向CH375的命令端口寫入命令,周期不小于4uS,如果單片機(jī)較
             -快則延時 */
 161   1              //delay2us();
 162   1              CH375_CMD_PORT=cmd;
 163   1              Delay2us( );
 164   1      }
 165          
 166          void CH375_WR_DAT_PORT( unsigned char dat ) {                            /* 向CH375的數(shù)據(jù)端口寫入數(shù)據(jù),周期不小于1.5uS,如果單片機(jī)
             -較快則延時 */
 167   1              CH375_DAT_PORT=dat;
 168   1              Delay1us();                                                                                     /* 因?yàn)镸CS51單片機(jī)較慢所以實(shí)際上無需延時 */
 169   1      }
 170          
 171          unsigned char CH375_RD_DAT_PORT() {                                             /* 從CH375的數(shù)據(jù)端口讀出數(shù)據(jù),周期不小于1.5uS,如果單片機(jī)較快則延
             -時 */
 172   1              Delay1us( );                                                                            /* 因?yàn)镸CS51單片機(jī)較慢所以實(shí)際上無需延時 */
 173   1              return( CH375_DAT_PORT );
 174   1      
 175   1      }
 176          /* CH375初始化子程序 */
C51 COMPILER V7.06   USBEX                                                                 04/03/2006 15:21:51 PAGE 4   

 177          void    CH375_Init( )
 178          {
 179   1      /* 設(shè)置USB工作模式, 必要操作 */
 180   1              CH375_WR_CMD_PORT( CMD_SET_USB_MODE );
 181   1              CH375_WR_DAT_PORT( 1 );                                                                         /* 設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 */
 182   1              for ( ;; ) {                                                                                    /* 等待操作成功,通常需要等待10uS-20uS */
 183   2                      if ( CH375_RD_DAT_PORT( )==CMD_RET_SUCCESS ) break;
 184   2              }
 185   1      
 186   1      /* 下述啟用中斷,假定CH375連接在INT0 */
 187   1              IT0 = 0;  /* 置外部信號為低電平觸發(fā) */
 188   1              IE0 = 0;  /* 清中斷標(biāo)志 */
 189   1              EX0 = 1;  /* 允許CH375中斷 */
 190   1      }
 191          //*********************************************************
 192          
 193          //*********************************************************
 194          //端點(diǎn)0數(shù)據(jù)上傳
 195          void mCh375Ep0Up(){
 196   1              unsigned char i,len;
 197   1              if(mVarSetupLength){                                                                                            //長度不為0傳輸具體長度的數(shù)據(jù)
 198   2                      if(mVarSetupLength<=8){
 199   3                              len=mVarSetupLength;
 200   3                              mVarSetupLength=0;
 201   3              }       //長度小于8則長輸要求的長度
 202   2                      else{
 203   3                              len=8;
 204   3                              mVarSetupLength-=8;
 205   3                      }                                                                                               //長度大于8則傳輸8個,切總長度減8
 206   2                  CH375_WR_CMD_PORT(CMD_WR_USB_DATA3);                                                //發(fā)出寫端點(diǎn)0的命令
 207   2              CH375_WR_DAT_PORT(len);                                                                         //寫入長度
 208   2              for(i=0;i!=len;i++)
 209   2              CH375_WR_DAT_PORT(request.buffer[i]);                           //循環(huán)寫入數(shù)據(jù)
 210   2          }
 211   1              else{
 212   2                      CH375_WR_CMD_PORT(CMD_WR_USB_DATA3);                                            //發(fā)出寫端點(diǎn)0的命令
 213   2                      CH375_WR_DAT_PORT(0);                                                      //上傳0長度數(shù)據(jù),這是一個狀態(tài)階段
 214   2              }
 215   1      }
 216          
 217          
 218          //*********************************************************
 219          
 220          //復(fù)制描述符以便上傳
 221          void mCh375DesUp(){
 222   1              unsigned char k;        
 223   1              for (k=0; k!=8; k++ ) {
 224   2               request.buffer[k]=*VarSetupDescr;                                                              //依次復(fù)制8個描述符,
 225   2               VarSetupDescr++;
 226   2          }
 227   1      }
 228          
 229          /* CH375中斷服務(wù)程序INT0,使用寄存器組1 */
 230          void    mCH375Interrupt( ) interrupt 0 using 1
 231          {
 232   1              unsigned char InterruptStatus;
 233   1              unsigned char length, c1, len;
 234   1              unsigned char   *pBuf;
 235   1              unsigned char   mBuf[64];
 236   1              CH375_WR_CMD_PORT(CMD_GET_STATUS);                                                                      /* 獲取中斷狀態(tài)并取消中斷請求 */
 237   1              InterruptStatus =CH375_RD_DAT_PORT();                                                                   /* 獲取中斷狀態(tài) */
 238   1              IE0 = 0;                                                                                                                                /* 清中斷標(biāo)志,對應(yīng)于INT0中斷 */
C51 COMPILER V7.06   USBEX                                                                 04/03/2006 15:21:51 PAGE 5   

 239   1              switch(InterruptStatus){  // 分析中斷狀態(tài)
 240   2                      case  USB_INT_EP2_OUT:                                                                                          // 批量端點(diǎn)下傳成功 
 241   2                              pBuf=mBuf;                                                                                                                                      //數(shù)據(jù)未處理
 242   2                              CH375_WR_CMD_PORT(CMD_RD_USB_DATA);                                                                     //發(fā)出讀數(shù)據(jù)命令
 243   2                              length=CH375_RD_DAT_PORT();                                                                                     //首先讀出的是長度                                                                                                              
 244   2                              for(len=0;len!=length;len++,pBuf++)*pBuf=CH375_RD_DAT_PORT();   //將數(shù)據(jù)讀入到緩沖區(qū)                     
 245   2                              pBuf=mBuf;
 246   2      // 演示回傳
 247   2                              CH375_WR_CMD_PORT(CMD_WR_USB_DATA7);                                                            //發(fā)出寫上傳端點(diǎn)命令
 248   2                              CH375_WR_DAT_PORT(length);      
 249   2                              for(len=0;len!=length;len++,pBuf++)CH375_WR_DAT_PORT(*pBuf);    //將數(shù)據(jù)寫入上傳端點(diǎn)
 250   2                              break;
 251   2                      case   USB_INT_EP2_IN:                                                                                           //批量端點(diǎn)上傳成功,未處理
 252   2                              CH375_WR_CMD_PORT (CMD_UNLOCK_USB);                                                             //釋放緩沖區(qū)
 253   2                              break;
 254   2                      case   USB_INT_EP1_IN:                                                                                          //中斷端點(diǎn)上傳成功,未處理
 255   2                              CH375_WR_CMD_PORT (CMD_UNLOCK_USB);                                                             //釋放緩沖區(qū)
 256   2                              break;
 257   2                      case   USB_INT_EP1_OUT:                                                                                         //中斷端點(diǎn)下傳成功,未處理
 258   2                              CH375_WR_CMD_PORT(CMD_RD_USB_DATA);                                                                     //發(fā)出讀數(shù)據(jù)命令
 259   2                              if(length=CH375_RD_DAT_PORT()){                                                                         //長度為0跳出
 260   3                                      for(len=0;len!=length;len++)c1=CH375_RD_DAT_PORT();                                     //取出下傳數(shù)據(jù)
 261   3                              }
 262   2      //                      CH375_WR_CMD_PORT (CMD_UNLOCK_USB);                                                             //釋放緩沖區(qū),如果前面沒有CMD_RD_USB_DATA命令則使用本命令
 263   2                              break;
 264   2                      case   USB_INT_EP0_SETUP:                                                                                       //控制端點(diǎn)建立成功
 265   2                      CH375_WR_CMD_PORT(CMD_RD_USB_DATA);
 266   2                              length=CH375_RD_DAT_PORT();
 267   2                              for(len=0;len!=length;len++)request.buffer[len]=CH375_RD_DAT_PORT();  // 取出數(shù)據(jù)
 268   2                              if(length==0x08){
 269   3                                  mVarSetupLength=request.buffer[6]&0x7f;                                                     //控制傳輸數(shù)據(jù)長度最大設(shè)置為128
 270   3                                      if((c1=request.r.bmReuestType)&0x40){                                            //廠商請求,未處理
 271   4                                      }
 272   3                                      if((c1=request.r.bmReuestType)&0x20){                                           //類請求,未處理
 273   4                                      }
 274   3                                      if(!((c1=request.r.bmReuestType)&0x60)){                                        //標(biāo)準(zhǔn)請求
 275   4                                              mVarSetupRequest=request.r.bRequest;                                                    //暫存標(biāo)準(zhǔn)請求碼
 276   4                                              switch(request.r.bRequest){  // 分析標(biāo)準(zhǔn)請求
 277   5                                                      case DEF_USB_CLR_FEATURE:                                                                       //清除特性
 278   5                                                              if((c1=request.r.bmReuestType&0x1F)==0X02){                                     //不是端點(diǎn)不支持
 279   6                                                                      switch(request.buffer[4]){
 280   7                                                                              case 0x82:
 281   7                                                                                      CH375_WR_CMD_PORT(CMD_SET_ENDP7);                                       //清除端點(diǎn)2上傳
 282   7                                                                                      CH375_WR_DAT_PORT(0x8E);                                        //發(fā)命令清除端點(diǎn)
 283   7                                                                                      break;
 284   7                                                                              case 0x02:
 285   7                                                                                      CH375_WR_CMD_PORT(CMD_SET_ENDP6);
 286   7                                                                                      CH375_WR_DAT_PORT(0x80);                                                        //清除端點(diǎn)2下傳
 287   7                                                                                      break;
 288   7                                                                              case 0x81:
 289   7                                                                                      CH375_WR_CMD_PORT(CMD_SET_ENDP5);                                       //清除端點(diǎn)1上傳
 290   7                                                                                      CH375_WR_DAT_PORT(0x8E);
 291   7                                                                                      break;
 292   7                                                                              case 0x01:
 293   7                                                                                      CH375_WR_CMD_PORT(CMD_SET_ENDP4);                                       //清除端點(diǎn)1下傳
 294   7                                                                                      CH375_WR_DAT_PORT(0x80);
 295   7                                                                                      break;
 296   7                                                                              default:
 297   7                                                                                      break;
 298   7                                                                      }
 299   6                                                              }
 300   5                                                              else{
C51 COMPILER V7.06   USBEX                                                                 04/03/2006 15:21:51 PAGE 6   

 301   6                                                                      CH375FLAGERR=1;                                                         //不支持的清除特性,置錯誤標(biāo)志
 302   6                                                              }
 303   5                                                              break;
 304   5                                                      case DEF_USB_GET_STATUS:                                                                //獲得狀態(tài)
 305   5                                                              request.buffer[0]=0;
 306   5                                                              request.buffer[1]=0;                                                            //上傳狀態(tài)
 307   5                                                              break;
 308   5                                                      case DEF_USB_SET_ADDRESS:                                                               //設(shè)置地址
 309   5                                                              VarUsbAddress=request.buffer[2];                                        //暫存USB主機(jī)發(fā)來的地址
 310   5                                                              break;
 311   5                                                      case DEF_USB_GET_DESCR:                                                                 //獲得描述符
 312   5                                                              if(request.buffer[3]==1)                                                        //設(shè)備描述符上傳

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米777欧美一区二区| 日韩不卡一区二区三区| 欧美日韩一区二区电影| 久草热8精品视频在线观看| 中文字幕一区二区日韩精品绯色| 欧美日韩一卡二卡| 99精品视频一区二区三区| 免费不卡在线观看| 亚洲欧美一区二区三区国产精品| 日韩一级大片在线| 欧美主播一区二区三区| 国产精品1区2区3区在线观看| 午夜精品一区二区三区三上悠亚| 国产精品私房写真福利视频| 日韩欧美自拍偷拍| 欧美四级电影在线观看| 成人国产一区二区三区精品| 精品一区二区三区av| 日日夜夜免费精品视频| 亚洲一区二区三区中文字幕| 国产精品久久久久影院老司| 亚洲精品一区二区三区在线观看| 欧美日韩国产小视频| 色婷婷综合久色| 成人免费黄色在线| 国产精品一品视频| 麻豆精品视频在线| 美国十次了思思久久精品导航| 一区二区在线观看免费| 亚洲欧美国产毛片在线| 国产精品国产三级国产aⅴ无密码| 久久亚洲精品国产精品紫薇| 91精品婷婷国产综合久久性色| 在线观看一区日韩| 色婷婷亚洲婷婷| 91丨porny丨蝌蚪视频| 成人动漫一区二区| 97久久超碰国产精品| 白白色亚洲国产精品| av一本久道久久综合久久鬼色| 成人va在线观看| 99久久免费精品高清特色大片| 不卡欧美aaaaa| 不卡av电影在线播放| 成人黄色国产精品网站大全在线免费观看| 国产精品香蕉一区二区三区| 国产精一区二区三区| 激情六月婷婷久久| 国产**成人网毛片九色| 成人av网站在线观看免费| 成人黄色小视频在线观看| 99久久99久久综合| 欧美性猛交xxxxxx富婆| 91麻豆精品国产91久久久久久| 欧美高清精品3d| 日韩女优av电影| 久久精品人人做人人综合| 国产日韩欧美a| 国产精品久久网站| 亚洲一线二线三线久久久| 天天色天天操综合| 麻豆国产欧美一区二区三区| 国产大陆精品国产| gogo大胆日本视频一区| 欧美日韩久久久久久| 日韩精品一区二区三区在线 | 久久久精品国产免费观看同学| 久久人人97超碰com| 国产精品不卡在线观看| 亚洲va在线va天堂| 精品亚洲成a人在线观看| 国产成人精品亚洲午夜麻豆| 97精品久久久久中文字幕| 欧美久久久一区| 精品国产91亚洲一区二区三区婷婷| 久久久精品免费观看| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产日韩a在线播放性色| 美国毛片一区二区| 波多野结衣中文一区| 欧美日韩一级大片网址| 亚洲精品一区二区三区影院 | 日韩一区和二区| 国产视频一区二区在线| 一区二区三区四区不卡在线 | eeuss鲁片一区二区三区在线看| 欧美三级欧美一级| 久久精品日产第一区二区三区高清版| 亚洲精品日韩一| 91蜜桃婷婷狠狠久久综合9色| 亚洲一区二区三区四区五区黄| 色综合色综合色综合| 亚洲夂夂婷婷色拍ww47| 精品亚洲成av人在线观看| 国产成人综合视频| 国产日韩精品视频一区| 欧美性猛交一区二区三区精品| 中文字幕制服丝袜一区二区三区 | 久久爱另类一区二区小说| 成人免费视频国产在线观看| 欧洲一区在线电影| 久久久99免费| 免费视频最近日韩| 欧美性一区二区| 国产精品护士白丝一区av| 精品一区二区免费视频| 欧美日韩亚洲高清一区二区| 日韩一区欧美小说| 国产精品一区二区你懂的| 欧美丰满少妇xxxbbb| 国产精品久久久久久户外露出| 久久99国内精品| 欧美日韩激情一区二区三区| 亚洲欧美另类在线| 成人综合婷婷国产精品久久蜜臀 | 伊人开心综合网| www.视频一区| 国产欧美一区二区在线观看| 老司机精品视频一区二区三区| 欧美精品高清视频| 亚洲一区二区3| 色婷婷综合五月| 亚洲天堂精品视频| 国产成人午夜视频| 久久先锋资源网| 国内精品久久久久影院薰衣草 | 色8久久精品久久久久久蜜| 亚洲国产经典视频| 国产精品综合av一区二区国产馆| 欧美妇女性影城| 午夜视频在线观看一区二区三区| 91高清视频在线| 亚洲精品videosex极品| 99久久久久免费精品国产| 国产精品久久久久久久久免费桃花| 国产一区二区在线视频| 精品美女在线播放| 久久精品久久综合| 欧美刺激午夜性久久久久久久 | 奇米影视一区二区三区| 欧美精品久久天天躁| 日韩电影免费在线看| 欧美一二三四区在线| 蜜臀va亚洲va欧美va天堂| 日韩一级片网址| 黑人精品欧美一区二区蜜桃| 精品国产伦一区二区三区观看方式| 韩国女主播成人在线| 国产欧美精品区一区二区三区 | 国产亚洲女人久久久久毛片| 国产乱人伦偷精品视频免下载| 久久奇米777| 成人av网站在线观看免费| 亚洲日本护士毛茸茸| 欧美羞羞免费网站| 蜜臀av一区二区三区| 久久久欧美精品sm网站| 国产福利一区二区三区在线视频| 欧美激情一区二区三区四区| 99久久精品免费精品国产| 亚洲一区二区三区在线看| 宅男噜噜噜66一区二区66| 九九国产精品视频| 国产精品美女一区二区| 色婷婷国产精品| 日本不卡在线视频| 国产日韩视频一区二区三区| jiyouzz国产精品久久| 亚洲成人综合在线| www国产成人免费观看视频 深夜成人网| 国产福利一区二区三区视频在线 | 日韩激情视频在线观看| 日韩美女一区二区三区| 成人午夜电影久久影院| 亚洲综合图片区| 精品日韩欧美在线| 91在线视频网址| 久久国产精品第一页| 中文字幕一区三区| 欧美一区二区三区免费视频| 国产成人av电影在线播放| 亚洲一二三四区| 久久九九全国免费| 欧美色视频在线观看| 国产一区二区三区不卡在线观看| 亚洲欧美综合另类在线卡通| 欧美一区午夜视频在线观看| 国产不卡视频在线播放| 亚洲国产sm捆绑调教视频| 国产视频一区二区三区在线观看| 欧美午夜精品久久久久久超碰 | 日韩avvvv在线播放| 国产精品久久综合| 欧美一二三四在线| 欧美在线一区二区三区| 丁香婷婷综合色啪| 毛片不卡一区二区| 亚洲国产欧美一区二区三区丁香婷| 久久夜色精品一区| 欧美日本高清视频在线观看|