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

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

?? main.lst

?? HID USB鍵盤單片機固件程序
?? LST
字號:
C51 COMPILER V7.06   MAIN                                                                  11/16/2008 16:00:30 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND TABS(1)

stmt level    source

   1          /******************************************************************
   2             本程序只供學習使用,未經作者許可,不得用于其它任何用途
   3             
   4                  歡迎訪問我的USB專區:http://group.ednchina.com/93/
   5                  歡迎訪問我的blog:   http://www.ednchina.com/blog/computer00
   6                                       http://computer00.21ic.org
   7          
   8                  感謝PCB贊助商——電子園: http://bbs.cepark.com/
   9          
  10          main.c file
  11          
  12          作者:電腦圈圈
  13          建立日期: 2008.06.27
  14          修改日期: 2008.07.14
  15          版本:V1.1
  16          版權所有,盜版必究。
  17          Copyright(C) 電腦圈圈 2008-2018
  18          All rights reserved            
  19          *******************************************************************/
  20          
  21          #include <AT89X52.H>  //頭文件
  22          #include "Key.h"
  23          #include "Led.h"
  24          #include "UART.h"
  25          #include "pdiusbd12.h"
  26          #include "UsbCore.h"
  27          #include "config.h"
  28          
  29          code uint8 HeadTable[][74]={
  30          "********************************************************************\r\n",
  31          "******             《圈圈教你玩USB》之 USB鍵盤                ******\r\n",
  32          "******                      AT89S52 CPU                       ******\r\n",
  33          "******                  建立日期:",__DATE__,"                 ******\r\n",
  34          "******                   建立時間:",__TIME__,"                   ******\r\n",
  35          "******                    作者:電腦圈圈                      ******\r\n",
  36          "******                    歡迎訪問作者的                      ******\r\n",
  37          "******           USB專區:http://group.ednchina.com/93/       ******\r\n",
  38          "******      BLOG1:http://www.ednchina.com/blog/computer00    ******\r\n",
  39          "******                BLOG2:http://computer00.21ic.org       ******\r\n",
  40          "******                  請按K1-K8分別進行測試                 ******\r\n",
  41          "******       K1:左Ctrl鍵  K2:左Shift鍵  K3:左Alt鍵  K4:1鍵    ******\r\n",
  42          "******       K5:2鍵  K6:3鍵  K7:Caps Lock鍵 K8:Num Lock鍵     ******\r\n",
  43          "******  注意:數字鍵是數字小鍵盤,必須打開Num Lock才是數字鍵  ******\r\n",
  44          "********************************************************************\r\n",
  45          };
  46          
  47          /********************************************************************
  48          函數功能:根據按鍵情況返回報告的函數。
  49          入口參數:無。
  50          返    回:無。
  51          備    注:無。
  52          ********************************************************************/
  53          void SendReport(void)
  54          {
  55   1       //需要返回的8字節報告的緩沖
C51 COMPILER V7.06   MAIN                                                                  11/16/2008 16:00:30 PAGE 2   

  56   1       //通過報告描述符的定義及HID用途表文檔,可知Buf[0]的D0是左Ctrl鍵,
  57   1       //D1是左Shift鍵,D2是左Alt鍵,D3是左GUI(即Window鍵),
  58   1       //D4是右Ctrl,D5是右Shift,D6是右Alt,D7是右GUI鍵。
  59   1       //Buf[1]保留,值為0。Buf[2]~Buf[7]為鍵值,最多可以有6個。
  60   1       //由于我們這里普通鍵最多只有5個,因此不會超過6個。
  61   1       //對于實際的鍵盤,如果按鍵數太多時,后面的6個字節都為0xFF,
  62   1       //表示按下的鍵太多,無法正確返回。
  63   1       
  64   1       uint8 Buf[8]={0,0,0,0,0,0,0,0};
  65   1       //由于需要返回多個按鍵,所以需要增加一個變量來保存當前的位置。
  66   1       uint8 i=2;
  67   1       
  68   1       //根據不同的按鍵設置輸入報告
  69   1       if(KeyPress & KEY1) //如果KEY1按住
  70   1       {
  71   2        Buf[0]|=0x01;  //KEY1為左Ctrl鍵。
  72   2       }
  73   1       if(KeyPress & KEY2) //如果KEY2按住
  74   1       {
  75   2        Buf[0]|=0x02;  //KEY2為左Shift鍵。
  76   2       }
  77   1       if(KeyPress & KEY3) //如果KEY3按住
  78   1       {
  79   2        Buf[0]|=0x04;  //KEY3為左Alt鍵
  80   2       }
  81   1       if(KeyPress & KEY4) //如果KEY4按住
  82   1       {
  83   2        Buf[i]=0x59;  //KEY4為數字小鍵盤1鍵。
  84   2        i++;  //切換到下個位置。
  85   2       }
  86   1       if(KeyPress & KEY5)  //如果KEY5按住
  87   1       {
  88   2        Buf[i]=0x5A;  //KEY5數字小鍵盤2鍵。
  89   2        i++;  //切換到下個位置。
  90   2       }
  91   1       if(KeyPress & KEY6)  //如果KEY6按住
  92   1       {
  93   2        Buf[i]=0x5B;  //KEY6為數字小鍵盤3鍵。
  94   2        i++;  //切換到下個位置。
  95   2       }
  96   1       if(KeyPress & KEY7)  //如果KEY7按住
  97   1       {
  98   2        Buf[i]=0x39;  //KEY7為大/小寫切換鍵。
  99   2        i++;  //切換到下個位置。
 100   2       }
 101   1       if(KeyPress & KEY8)  //如果KEY8按住
 102   1       {
 103   2        Buf[i]=0x53;  //KEY8為數字小鍵盤功能切換鍵。
 104   2       }
 105   1       //報告準備好了,通過端點1返回,長度為8字節。
 106   1       D12WriteEndpointBuffer(3,8,Buf);
 107   1       Ep1InIsBusy=1;  //設置端點忙標志。
 108   1       //記得清除KeyUp和KeyDown
 109   1       KeyUp=0;
 110   1       KeyDown=0;
 111   1      }
 112          ////////////////////////End of function//////////////////////////////
 113          
 114          /********************************************************************
 115          函數功能:主函數。
 116          入口參數:無。
 117          返    回:無。
C51 COMPILER V7.06   MAIN                                                                  11/16/2008 16:00:30 PAGE 3   

 118          備    注:無。
 119          ********************************************************************/
 120          void main(void)  //主函數
 121          {
 122   1       uint8 i;
 123   1       uint16 id;
 124   1       uint8 InterruptSource;
 125   1       
 126   1       EA=1; //打開中斷
 127   1       InitKeyboard(); //初始化按鍵
 128   1       InitUART();  //初始化串口
 129   1       
 130   1       for(i=0;i<19;i++)   //顯示信息
 131   1       {
 132   2        Prints(HeadTable[i]);
 133   2       }
 134   1       
 135   1       id=D12ReadID();
 136   1      
 137   1       Prints("Your D12 chip\'s ID is: ");
 138   1       PrintShortIntHex(id);
 139   1      
 140   1       if(id==0x1012)
 141   1       {
 142   2        Prints(". ID is correct! Congratulations!\r\n\r\n");
 143   2       }
 144   1       else
 145   1       {
 146   2        Prints(". ID is incorrect! What a pity!\r\n\r\n");
 147   2       }
 148   1       
 149   1       UsbDisconnect();  //先斷開USB連接
 150   1       UsbConnect();  //將USB連接上
 151   1       ConfigValue=0; //配置值初始化為0
 152   1       
 153   1       while(1)  //死循環
 154   1       {
 155   2        if(D12GetIntPin()==0) //如果有中斷發生
 156   2        {
 157   3         D12WriteCommand(READ_INTERRUPT_REGISTER);  //寫讀中斷寄存器的命令
 158   3         InterruptSource=D12ReadByte(); //讀回第一字節的中斷寄存器
 159   3         if(InterruptSource&0x80)UsbBusSuspend(); //總線掛起中斷處理
 160   3         if(InterruptSource&0x40)UsbBusReset();   //總線復位中斷處理
 161   3         if(InterruptSource&0x01)UsbEp0Out();     //端點0輸出中斷處理
 162   3         if(InterruptSource&0x02)UsbEp0In();      //端點0輸入中斷處理
 163   3         if(InterruptSource&0x04)UsbEp1Out();     //端點1輸出中斷處理
 164   3         if(InterruptSource&0x08)UsbEp1In();      //端點1輸入中斷處理
 165   3         if(InterruptSource&0x10)UsbEp2Out();     //端點2輸出中斷處理
 166   3         if(InterruptSource&0x20)UsbEp2In();      //端點2輸入中斷處理
 167   3        }
 168   2        if(ConfigValue!=0) //如果已經設置為非0的配置,則可以返回報告數據
 169   2        {
 170   3         if(!Ep1InIsBusy)  //如果端點1輸入沒有處于忙狀態,則可以發送數據
 171   3         {
 172   4          KeyCanChange=0;  //禁止按鍵掃描
 173   4          if(KeyUp||KeyDown) //如果有按鍵事件發生
 174   4          {
 175   5           SendReport();  //則返回報告
 176   5          }
 177   4          KeyCanChange=1;  //允許按鍵掃描
 178   4         }
 179   3        }
C51 COMPILER V7.06   MAIN                                                                  11/16/2008 16:00:30 PAGE 4   

 180   2       }
 181   1      }
 182          ////////////////////////End of function//////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    339    ----
   CONSTANT SIZE    =   1512    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线播放| 亚洲成人精品一区| 一区二区三区国产豹纹内裤在线| 日韩va亚洲va欧美va久久| 成人国产亚洲欧美成人综合网| 欧美狂野另类xxxxoooo| 亚洲三级免费电影| 国产成人免费在线| 欧美一区二区三级| 亚洲综合成人在线| 91免费国产在线观看| 久久九九久久九九| 久久精品噜噜噜成人av农村| 欧美日韩亚洲丝袜制服| 最新国产精品久久精品| 高清不卡在线观看| 精品国产三级a在线观看| 日韩在线a电影| 欧美日韩一区二区三区不卡| 亚洲欧美日韩中文播放| www.久久精品| 国产精品视频一二| 成人一区二区在线观看| 精品美女被调教视频大全网站| 五月激情综合网| 欧美欧美午夜aⅴ在线观看| 亚洲自拍偷拍图区| 欧美写真视频网站| 艳妇臀荡乳欲伦亚洲一区| 91视频在线看| 亚洲美女电影在线| 色婷婷激情综合| 又紧又大又爽精品一区二区| 91黄色激情网站| 亚洲午夜精品在线| 欧美一区二区三区在线看| 奇米亚洲午夜久久精品| 亚洲精品在线观| 东方aⅴ免费观看久久av| 欧美国产一区二区在线观看| 波波电影院一区二区三区| 中文字幕佐山爱一区二区免费| 色偷偷久久一区二区三区| |精品福利一区二区三区| 日本高清不卡一区| 天天色图综合网| 精品国产三级a在线观看| 粉嫩久久99精品久久久久久夜| 国产精品久久久久永久免费观看| av网站免费线看精品| 亚洲第一精品在线| 337p日本欧洲亚洲大胆精品| 高清久久久久久| 亚洲国产精品麻豆| 日韩欧美成人激情| proumb性欧美在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美精品色综合| 国产美女av一区二区三区| 最新日韩在线视频| 欧美日韩国产影片| 久久99精品国产麻豆婷婷| 国产精品久久久久aaaa樱花| 在线观看区一区二| 国内精品伊人久久久久av一坑| 亚洲国产精品ⅴa在线观看| 一本久久精品一区二区| 麻豆精品视频在线观看免费| 国产精品久久久久久久久晋中| 欧美手机在线视频| 高清在线成人网| 日韩精品亚洲专区| 国产精品污污网站在线观看| 欧美日韩成人综合在线一区二区| 国产精品一区二区久久精品爱涩 | 亚洲综合在线观看视频| 欧美一区二区在线看| 99精品久久只有精品| 精品一区二区三区不卡| 一区二区三区国产精品| 国产农村妇女毛片精品久久麻豆 | 午夜欧美在线一二页| 欧美国产精品劲爆| 日韩免费一区二区三区在线播放| 91丨porny丨户外露出| 国产一区二区久久| 免费高清在线一区| 亚洲一二三区视频在线观看| 国产精品色哟哟| 欧美精品一区二区三| 91精品国产综合久久久久| 色综合久久中文字幕综合网 | 中文字幕在线观看不卡| 精品欧美一区二区在线观看 | 日韩和欧美的一区| 一区二区在线看| 亚洲欧美日韩国产一区二区三区| 欧美精品一区二区三区很污很色的 | 奇米精品一区二区三区在线观看一| 亚洲视频在线一区二区| 中文字幕av资源一区| 26uuu色噜噜精品一区二区| 69堂国产成人免费视频| 欧美系列亚洲系列| 在线一区二区三区| 一本色道久久综合狠狠躁的推荐| 成人av集中营| 成人午夜精品在线| 成人动漫一区二区在线| 国产·精品毛片| 99综合电影在线视频| 99久久国产免费看| 暴力调教一区二区三区| 国产乱淫av一区二区三区| 91丨九色丨蝌蚪丨老版| 成人精品电影在线观看| 成人av片在线观看| 色综合天天综合在线视频| 色综合网站在线| 欧美唯美清纯偷拍| 69堂成人精品免费视频| 日韩视频在线一区二区| 久久久久久久久伊人| 国产欧美日韩三级| 亚洲国产精品精华液2区45| 国产精品麻豆久久久| 亚洲婷婷综合久久一本伊一区 | 欧美伊人久久久久久久久影院| 欧美在线影院一区二区| 欧美日韩久久一区| 日韩欧美在线1卡| 久久九九久精品国产免费直播| 久久久亚洲综合| 综合婷婷亚洲小说| 午夜精品久久久久| 狠狠狠色丁香婷婷综合久久五月| 福利91精品一区二区三区| 91在线看国产| 欧美军同video69gay| 精品国产乱码久久久久久图片 | 91啪九色porn原创视频在线观看| 日本精品免费观看高清观看| 91麻豆精品国产无毒不卡在线观看| 日韩欧美亚洲国产另类| 国产视频一区在线观看| 亚洲一线二线三线视频| 精品一区二区三区在线观看国产 | 日本不卡免费在线视频| 狠狠色狠狠色综合系列| 91美女在线视频| 欧美一级黄色片| 一区在线观看免费| 蜜臀av一区二区在线观看| 国产成人在线视频免费播放| 欧美在线视频日韩| 久久久久国产一区二区三区四区| 一区二区高清视频在线观看| 美腿丝袜一区二区三区| 日本精品视频一区二区三区| 久久免费美女视频| 五月天精品一区二区三区| 成人av网站在线观看免费| 91精品久久久久久蜜臀| 亚洲精品日产精品乱码不卡| 久久激情五月激情| 欧美视频一区二区三区四区| 国产欧美视频一区二区| 日本伊人午夜精品| 日本韩国欧美在线| 国产日本欧美一区二区| 理论片日本一区| 欧美伊人久久久久久久久影院| 国产精品久久久久久久久果冻传媒 | 国产成人丝袜美腿| 日韩欧美综合在线| 亚洲国产一二三| 91麻豆精品秘密| 亚洲国产精品v| 国产一区二区三区免费看| 91精品国产福利在线观看 | 麻豆免费看一区二区三区| 色妹子一区二区| 国产精品久久久久影视| 国产精品自拍在线| 精品国产乱码久久久久久久久| 亚洲6080在线| 欧美撒尿777hd撒尿| 亚洲女人的天堂| 色综合婷婷久久| 亚洲视频香蕉人妖| av影院午夜一区| 日本一区二区三区四区| 风间由美一区二区三区在线观看 | 国产成人av影院| 久久久久九九视频| 国产精品一区二区91| 久久精品亚洲乱码伦伦中文| 国产一区二区在线观看免费| 精品久久久久久久久久久久包黑料 | 亚洲一本大道在线|