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

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

?? usbkeyboard.lst

?? 單片機C語言程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 238          {
 239   1       USB_A0=USB_COMMAND_ADD;
 240   1       USB_DATA=usb_command;
C51 COMPILER V7.06   USBKEYBOARD                                                           03/23/2007 23:58:29 PAGE 5   

 241   1       USB_WR=0;
 242   1       USB_WR=1;
 243   1       USB_DATA=0xFF;
 244   1      }
 245          /******************************************************************************/
 246          
 247          /*********************寫一字節USB數據*******************************************/
 248          void write_a_usb_data(uint8 usb_data)       
 249          {
 250   1       USB_A0=USB_DATA_ADD;
 251   1       USB_DATA=usb_data;
 252   1       USB_WR=0;
 253   1       USB_WR=1;
 254   1       USB_DATA=0XFF;
 255   1      }
 256          /******************************************************************************/
 257          
 258          /****************************讀一字節USB數據************************************/
 259          uint8 read_a_usb_data(void)
 260          {
 261   1       uint8 temp;
 262   1       USB_A0=USB_DATA_ADD;
 263   1       USB_RD=0;
 264   1       temp=USB_DATA;
 265   1       USB_RD=1;
 266   1       return temp;
 267   1      }
 268          /******************************************************************************/
 269          
 270          /************************讀USB中斷寄存器**************************************/
 271          void read_interrupt_register(void)
 272          {
 273   1       write_usb_command(Read_Interrupt_Register);
 274   1       Interrupt_Register.Register[0]=read_a_usb_data();
 275   1       Interrupt_Register.Register[1]=read_a_usb_data();
 276   1      }
 277          /******************************************************************************/
 278          
 279          /************************設置USB地址*******************************************/
 280          void set_usb_addr(uint8 addr)
 281          {
 282   1      
 283   1       write_usb_command(Set_Address);
 284   1       write_a_usb_data(0x80|addr);
 285   1       Prints("   設置地址.....................",1);
 286   1       Prints("       地址為:  ",0);
 287   1       PrintLongInt(addr);
 288   1       Prints("",1);
 289   1      }
 290          /******************************************************************************/
 291          
 292          /*************************端點使能******************************************/
 293          void set_endpoint_enable(void)
 294          {
 295   1       write_usb_command(Set_Endpoint_Enable);
 296   1       write_a_usb_data(0x01);
 297   1      }
 298          /******************************************************************************/
 299          
 300          /****************************選擇終端點*************************************/
 301          uint8 select_endpoint(uint8 endp)
 302          {
C51 COMPILER V7.06   USBKEYBOARD                                                           03/23/2007 23:58:29 PAGE 6   

 303   1       write_usb_command(Select_EndPoint+endp);
 304   1       return read_a_usb_data();
 305   1      }
 306          /******************************************************************************/
 307          
 308          /****************************讀端點最后狀態**********************************/
 309          uint8  read_last_status(uint8 endp)
 310          {
 311   1       write_usb_command(Read_Last_Status+endp);
 312   1       return read_a_usb_data();
 313   1      }
 314          /******************************************************************************/
 315          
 316          /****************************設置端點狀態**************************************/
 317          void set_endpoint_status(uint8 endp,uint8 status)  
 318          {
 319   1       write_usb_command(0x40+endp);
 320   1       write_a_usb_data(!status);
 321   1      }
 322          /******************************************************************************/
 323          
 324          /*****************************讀端點狀態**************************************/
 325          uint8 read_endpoint_status(uint8 endp)
 326          {
 327   1       write_usb_command(0x80+endp);
 328   1       return read_a_usb_data();
 329   1      }
 330          /******************************************************************************/
 331          
 332          /************************清緩沖,在讀取緩沖數據后調用**************************/
 333          void clear_buffer(void)
 334          {
 335   1       write_usb_command(Clear_Buffer);
 336   1      }
 337          /******************************************************************************/
 338          
 339          /***********************緩沖區數據有效,在寫緩沖后調用**************************/
 340          void validate_buffer(void)
 341          {
 342   1       write_usb_command(Validate_Buffer);
 343   1      }
 344          /******************************************************************************/
 345          
 346          /***************************應答建立包************************************/
 347          void ack_setup(uint8 endp)
 348          {
 349   1       select_endpoint(endp);
 350   1       write_usb_command(Ack_Setup);
 351   1      }
 352          /******************************************************************************/
 353          
 354          /***********************出錯處理******************************************/
 355          void error(uint8 number)
 356          {
 357   1       Prints("有錯誤發生!!!",1);
 358   1       number=0;
 359   1      }
 360          /******************************************************************************/
 361          
 362          /*************************讀終端點緩沖****************************************/
 363          uint8 read_endpoint_buff(uint8 endp,uint8 len,uint8 * buff)
 364          {
C51 COMPILER V7.06   USBKEYBOARD                                                           03/23/2007 23:58:29 PAGE 7   

 365   1       uint8 i,j;
 366   1       read_last_status(endp);
 367   1       if(!(select_endpoint(endp))&0x01){error(0); return 0;}
 368   1       read_endpoint_status(endp);
 369   1       write_usb_command(Read_Buffer);
 370   1       read_a_usb_data();
 371   1       j=read_a_usb_data();
 372   1       if(j>len)
 373   1        j=len;
 374   1       for(i=0;i<j;i++)
 375   1        {
 376   2         USB_RD=0;
 377   2         *(buff+i)=USB_DATA;
 378   2         USB_RD=1;
 379   2        }
 380   1       clear_buffer();
 381   1       return j;
 382   1      }
 383          /******************************************************************************/
 384          
 385          /*************************寫終端點緩沖*****************************************/
 386          uint8 write_endpoint_buff(uint8 endp,uint8 len,uint8 * buff)
 387          {
 388   1       uint8 i;
 389   1       read_last_status(endp);
 390   1       select_endpoint(endp);
 391   1       write_usb_command(Write_Buffer);
 392   1       write_a_usb_data(0);
 393   1       write_a_usb_data(len);
 394   1       for(i=0;i<len;i++)
 395   1        {
 396   2         USB_DATA=*(buff+i);
 397   2         USB_WR=0;
 398   2         USB_WR=1;
 399   2        }
 400   1       USB_DATA=0XFF;
 401   1       validate_buffer();
 402   1       return len;
 403   1      }
 404          /******************************************************************************/
 405          
 406          /***************************斷開USB連接****************************************/
 407          void disconnect_usb(void)
 408          {
 409   1       Prints("斷開USB連接........................",1);
 410   1       write_usb_command(0xf3);
 411   1       write_a_usb_data(0x0e);
 412   1       write_a_usb_data(0x47);
 413   1       delay(100);
 414   1      }
 415          /******************************************************************************/
 416          
 417          /*******************************連接USB**************************************/
 418          void connect_usb(void)
 419          {
 420   1       Prints("連接USB...............",1);
 421   1       write_usb_command(0xf3);                         //初始化USBD12
 422   1       write_a_usb_data(0x1e);                          //連接USB
 423   1       write_a_usb_data(0x47);                          //設置頻率
 424   1      }
 425          /******************************************************************************/
 426          
C51 COMPILER V7.06   USBKEYBOARD                                                           03/23/2007 23:58:29 PAGE 8   

 427          /***************************初始化USB***************************************************/
 428          void init_usb(void)               
 429          {
 430   1       Prints("USBD12芯片初始化",1);
 431   1       set_usb_addr(0);
 432   1       set_endpoint_enable();
 433   1      }
 434          /******************************************************************************/
 435          
 436          /****************************USB總線復位處理***********************************/
 437          void usb_bus_reset(void)
 438          {
 439   1       Prints("USB總線復位................................",1);
 440   1       usb_flags.Register=0;
 441   1       set_endpoint_enable();
 442   1      }
 443          /******************************************************************************/
 444          
 445          /*****************************USB總線掛起處理**********************************/
 446          void usb_bus_suspend(void)
 447          {
 448   1       Prints("USB總線掛起................................",1);
 449   1      }
 450          /******************************************************************************/
 451          
 452          /***************************設置地址***************************************/
 453          void set_usb_address(void)
 454          {
 455   1       usb_flags.flags.set_addr=1;
 456   1       while(select_endpoint(1)&0x01);
 457   1       write_endpoint_buff(1,0,0);
 458   1       set_usb_addr(Control_Data.DeviceRequest.wValue);
 459   1       usb_flags.flags.usb_endp0_in=0;
 460   1       usb_flags.flags.setup_packet_out=0;
 461   1      }
 462          /******************************************************************************/
 463          
 464          /**************************獲取狀態響應*****************************************/
 465          void get_status(uint8 receiver)
 466          {
 467   1       uint8 status[2];
 468   1       switch (receiver)
 469   1        {
 470   2         case 0:                        //獲取設備狀態
 471   2          status[0]=0x00;
 472   2          status[1]=0x00;
 473   2          break;
 474   2         case 1:                        //獲取接口狀態
 475   2          status[0]=0x00;
 476   2          status[0]=0x00;
 477   2          break;
 478   2         case 2:                        //獲取端點狀態
 479   2          status[0]=0x00;
 480   2          status[1]=0x00;
 481   2          break;
 482   2         }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜影院久久久| 成人免费电影视频| 激情久久五月天| 国产欧美精品一区aⅴ影院 | 在线一区二区三区四区| 欧美精品在线一区二区| 欧美电影免费观看高清完整版在| 久久综合精品国产一区二区三区| 国产人久久人人人人爽| 一区二区三区电影在线播| 麻豆成人免费电影| 色域天天综合网| 日韩免费一区二区| 亚洲乱码中文字幕| 国产一区在线观看视频| 欧美视频中文字幕| 国产精品私人影院| 男人的j进女人的j一区| 97久久精品人人爽人人爽蜜臀| 欧美一区永久视频免费观看| 国产精品不卡视频| 久久精品国产秦先生| 欧美在线制服丝袜| 亚洲人成人一区二区在线观看| 久久超碰97中文字幕| 欧美日韩中文精品| 亚洲精品免费视频| 国产精品一区二区三区网站| 91精品久久久久久久99蜜桃| 亚洲一区视频在线观看视频| 9色porny自拍视频一区二区| 久久在线免费观看| 韩国一区二区在线观看| 精品国产凹凸成av人网站| 久久99精品久久久| 日韩欧美的一区二区| 美腿丝袜亚洲一区| 精品少妇一区二区三区在线播放| 日韩精品成人一区二区三区| 51精品视频一区二区三区| 水蜜桃久久夜色精品一区的特点| 欧美色图激情小说| 免费成人在线视频观看| 91精品国产综合久久精品性色| 亚洲成av人片在线观看无码| 欧美午夜精品电影| 麻豆精品一二三| 欧美国产乱子伦| 91亚洲精品久久久蜜桃网站| 亚洲综合久久av| 欧美大尺度电影在线| 成人永久看片免费视频天堂| 亚洲欧美综合色| 欧美日韩精品欧美日韩精品一综合 | 一区二区三区中文字幕精品精品 | 中文字幕一区二区三区在线观看| 91色综合久久久久婷婷| 天天综合色天天综合色h| 日韩欧美国产不卡| 91看片淫黄大片一级在线观看| 亚洲最新视频在线观看| 欧美大片顶级少妇| 欧美成人女星排名| 国产亚洲欧美日韩在线一区| 国产婷婷色一区二区三区四区| 一区二区三区中文字幕| thepron国产精品| 久久精品欧美一区二区三区不卡 | 99精品桃花视频在线观看| 久久久久久久综合色一本| 久久精品国产精品亚洲综合| 欧美一级艳片视频免费观看| 五月婷婷欧美视频| 欧美日韩午夜精品| 天天影视涩香欲综合网| 欧美亚洲丝袜传媒另类| 亚洲免费av网站| 91污片在线观看| 亚洲精品久久嫩草网站秘色| 色欧美片视频在线观看在线视频| 自拍偷自拍亚洲精品播放| 99视频在线精品| 亚洲精品乱码久久久久久黑人| 一本到高清视频免费精品| 亚洲天堂av一区| 在线观看www91| 日韩专区欧美专区| 日韩欧美在线影院| 黄色小说综合网站| 国产午夜精品理论片a级大结局| 国产精品白丝av| 国产精品乱子久久久久| 99久久精品国产精品久久| 亚洲日本韩国一区| 在线观看视频一区二区欧美日韩| 亚洲国产成人高清精品| 正在播放一区二区| 黄网站免费久久| 日本一区二区三区在线观看| 97国产精品videossex| 亚洲小说欧美激情另类| 欧美酷刑日本凌虐凌虐| 精品无人码麻豆乱码1区2区| 国产午夜精品久久久久久免费视| 成人高清视频在线观看| 亚洲激情中文1区| 4438x亚洲最大成人网| 麻豆91在线看| 国产精品入口麻豆原神| 在线一区二区三区四区五区 | 欧美夫妻性生活| 蜜芽一区二区三区| 国产日韩精品一区二区三区 | 亚洲乱码精品一二三四区日韩在线 | 色av综合在线| 蜜桃av噜噜一区二区三区小说| 久久久蜜桃精品| 91国产视频在线观看| 久久精品国产精品亚洲综合| 亚洲欧洲99久久| 日韩天堂在线观看| 成人av电影免费在线播放| 日韩中文字幕91| 国产精品美女久久福利网站| 欧美亚洲一区二区在线| 国产精品一色哟哟哟| 一区二区三区精品| 久久亚洲精精品中文字幕早川悠里 | 91精品一区二区三区在线观看| 国产成a人亚洲精| 亚洲国产精品久久艾草纯爱| 国产午夜精品美女毛片视频| 欧美手机在线视频| 成人免费福利片| 美女网站视频久久| 夜夜嗨av一区二区三区中文字幕| 欧美成人女星排名| 欧美日韩一区国产| 成人一区二区三区视频| 日韩成人av影视| 亚洲视频一区二区免费在线观看| 欧美一区二区三区免费视频| 95精品视频在线| 国产专区欧美精品| 日韩经典一区二区| 亚洲免费观看高清在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩在线直播| 99九九99九九九视频精品| 国产一区二区在线观看免费 | 欧美一级在线视频| 日本二三区不卡| www.亚洲在线| 国产精品系列在线播放| 男女性色大片免费观看一区二区| 综合激情成人伊人| 国产日韩欧美a| 久久亚洲精华国产精华液 | 奇米888四色在线精品| 亚洲在线视频免费观看| **性色生活片久久毛片| 国产视频一区二区三区在线观看| 91麻豆精品国产| 精品视频在线看| 欧美综合欧美视频| av资源站一区| 国产91丝袜在线观看| 黑人巨大精品欧美黑白配亚洲| 丝袜美腿高跟呻吟高潮一区| 亚洲一区二区三区视频在线播放| 中文字幕日韩一区二区| 中文字幕精品综合| 欧美韩国日本不卡| 日本一区二区视频在线| 午夜日韩在线电影| 亚洲成a人v欧美综合天堂| 一区二区三区在线免费| 亚洲精品中文字幕在线观看| 中文字幕一区二区在线观看| 国产欧美精品一区二区三区四区| 久久亚洲一区二区三区四区| 2014亚洲片线观看视频免费| 欧美mv和日韩mv国产网站| 精品久久免费看| 久久一日本道色综合| 久久青草欧美一区二区三区| 精品毛片乱码1区2区3区| 日韩欧美一区中文| 日韩三级av在线播放| 精品国产污污免费网站入口 | 国产高清不卡二三区| 国产乱对白刺激视频不卡| 国产成人免费视| 成人免费视频国产在线观看| 成人精品免费网站| 99视频精品在线| 在线一区二区三区| 欧美久久婷婷综合色| 日韩欧美在线综合网| 久久久噜噜噜久久中文字幕色伊伊|