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

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

?? ps-2keyboard.lst

?? EDN板之PS2鍵盤接口程序-- 單片機殿堂
?? LST
字號:
C51 COMPILER V7.06   PS_2KEYBOARD                                                          08/31/2006 21:32:01 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PS_2KEYBOARD
OBJECT MODULE PLACED IN PS-2KEYBOARD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PS-2KEYBOARD.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /********************************************************************************************************
   2          原理:每次按鍵,鍵盤會向單片機發(fā)脈沖使單片機發(fā)生外部中斷,數(shù)據(jù)有p3.4口一位位傳進來
   3          接口:鍵盤時鐘接在p3.2口,即8051的外部中斷int1上,鍵盤數(shù)據(jù)接到p3.4上,外部中斷使用邊沿觸發(fā)方式
   4          鍵盤返回數(shù)據(jù)格式:1位開始位(0),8位數(shù)據(jù)位(所按按鍵的通碼,用來識別按鍵),1位校驗位(奇校驗)
   5          *********************************************************************************************************/
   6          
   7          #include "ScanCode.h" //按鍵通碼與ascii對照表
   8          #include "ps2KEYBOARD.h"
   9          #include "lcdapi.h"
  10          #include "3310.h"
  11          
  12          uchar InIndex=0,OutIndex=0;
  13          uchar KeyBuff[BUFF_SIZE];
  14          
  15          /*功能:通過外部中斷1讀取鍵盤發(fā)送回來的數(shù)據(jù)位
  16           *性質(zhì):中斷調(diào)用
  17           *參數(shù):無
  18           *返回:無
  19           */
  20          void KeyBoardISR() interrupt 2 //外部中斷1 用來接受鍵盤發(fā)來的數(shù)據(jù)
  21          {
  22   1              static uchar BitCount=11,KeyData;
  23   1              if(BitCount<11 && BitCount>2)
  24   1              {
  25   2                      KeyData>>=1;
  26   2                      if(KeyBoardSda)
  27   2                              KeyData|=0x80;
  28   2              }
  29   1              if(--BitCount==0)
  30   1              {
  31   2                      BitCount=11;
  32   2                      KeyBuff[InIndex]=KeyData;
  33   2                      if(++InIndex==BUFF_SIZE)
  34   2                              InIndex=0;
  35   2                      KeyData=0;
  36   2              }
  37   1      }
  38          
  39          /*功能:通過串口或其它方式顯示鍵盤值(自定義)
  40           *性質(zhì):外部調(diào)用
  41           *參數(shù):鍵盤按鍵值
  42           *返回:無
  43           */
  44          void Send(uchar d)
  45          {
  46   1              static uchar i,j;
  47   1              
  48   1          if(i!=80)
  49   1                 {
  50   2                  DispAsc(i,2,&d);
  51   2              i+=8;
  52   2                      }
  53   1               else if(i==80)
  54   1                 {
  55   2                  DispAsc(j,4,&d);
C51 COMPILER V7.06   PS_2KEYBOARD                                                          08/31/2006 21:32:01 PAGE 2   

  56   2                  j+=8;
  57   2                      if(j==80)
  58   2                {
  59   3                i=0;
  60   3                j=0;
  61   3                        LCD_Clr2();
  62   3                        DispString(16,0,"零距離");
  63   3                }
  64   2                }
  65   1      }
  66          
  67          /*功能:通過中斷程序的數(shù)據(jù)位從數(shù)組中取出鍵值
  68           *性質(zhì):外部調(diào)用
  69           *參數(shù):無
  70           *返回:無
  71           */
  72          void KeyBoardDecode(void)
  73          {
  74   1              static bit ShiftFlg,CapsFlg,NumFlg,BreakFlg,ExtendFlg;
  75   1              uchar ArrayIndex;
  76   1              uchar ScanCode;
  77   1      
  78   1              while(InIndex != OutIndex)
  79   1              {
  80   2                      if(!BreakFlg)
  81   2                      {
  82   3                              switch(KeyBuff[OutIndex])
  83   3                              {
  84   4                                      case 0x12:                                                              //左SHIFT
  85   4                                      case 0x59:
  86   4                                              ShiftFlg = 1;                   //右SHIFT
  87   4                                              break;
  88   4                                      case 0x58:
  89   4                                              if(CapsFlg)                             //Caps
  90   4                                              {
  91   5                                                      CapsFlg = 0;
  92   5                                              }
  93   4                                              else if(!CapsFlg)       
  94   4                                              {
  95   5                                                      CapsFlg = 1;
  96   5                                              }
  97   4                                              break;
  98   4                                      case 0x77:
  99   4                                              if(NumFlg)                              //切換Num
 100   4                                              {
 101   5                                                      NumFlg = 0;
 102   5                                              }
 103   4                                              else if(!NumFlg)        
 104   4                                              {
 105   5                                                      NumFlg = 1;
 106   5                                              }
 107   4                                              break;
 108   4                                      case 0xe0 :
 109   4                                              if(!ExtendFlg)
 110   4                                              {
 111   5                                                      ExtendFlg = 1; 
 112   5                                              }
 113   4                                              else if(ExtendFlg)
 114   4                                              {
 115   5                                                      ExtendFlg = 0;
 116   5                                              }                       
 117   4                                              break;
C51 COMPILER V7.06   PS_2KEYBOARD                                                          08/31/2006 21:32:01 PAGE 3   

 118   4                                      case 0xf0 :
 119   4                                              BreakFlg = 1;
 120   4                                              break;                                                                  
 121   4                                      default:                
 122   4                                              if(ShiftFlg)            
 123   4                                              {
 124   5                                                      for(ArrayIndex = 0;shifted[ArrayIndex][0] != 0 ;ArrayIndex++)
 125   5                                                      {
 126   6                                                              
 127   6                                                              if(KeyBuff[OutIndex] == shifted[ArrayIndex][0])
 128   6                                                              {
 129   7                                                                      ScanCode = shifted[ArrayIndex][1];
 130   7                                                                      Send(ScanCode);
 131   7                                                                      break;
 132   7                                                              }       
 133   6                                                      }
 134   5                                              
 135   5                                              }
 136   4                                              else    if(CapsFlg)
 137   4                                              {
 138   5                                                      for(ArrayIndex = 0;unshifted[ArrayIndex][0] != 0 ;ArrayIndex++)
 139   5                                                      {
 140   6                                                              
 141   6                                                              if(KeyBuff[OutIndex] == unshifted[ArrayIndex][0])
 142   6                                                              {
 143   7                                                                      ScanCode = unshifted[ArrayIndex][1];
 144   7                                                                      if((ScanCode >= 'a')&&(ScanCode <= 'z'))
 145   7                                                                      {
 146   8                                                                              ScanCode -= 0x20;
 147   8                                                                      }
 148   7                                                                      Send(ScanCode);
 149   7                                                                      break;
 150   7                                                              }       
 151   6                                                      }
 152   5                                              }
 153   4                                              else    if(!ShiftFlg)
 154   4                                              {
 155   5                                                      for(ArrayIndex = 0;unshifted[ArrayIndex][0] != 0;ArrayIndex++)  
 156   5                                                      {
 157   6                                                              if(KeyBuff[OutIndex] == unshifted[ArrayIndex][0])
 158   6                                                              {
 159   7                                                                      ScanCode = unshifted[ArrayIndex][1];
 160   7                                                                      Send(ScanCode);
 161   7                                                                      break;
 162   7                                                              }       
 163   6                                                      }
 164   5                                              }
 165   4                              }
 166   3                      }
 167   2                      else    
 168   2                      {
 169   3                              BreakFlg = 0;                                                                   //break code received
 170   3                              switch(KeyBuff[OutIndex])
 171   3                              {
 172   4                                      case 0x12       :                                                               //lshft
 173   4                                      case 0x59       :       ShiftFlg = 0; //rshft
 174   4                                                                              break;
 175   4                              }
 176   3                      }
 177   2                      OutIndex ++;
 178   2                      if(OutIndex == BUFF_SIZE)       OutIndex =0;  //循環(huán) outpointer
 179   2              }
C51 COMPILER V7.06   PS_2KEYBOARD                                                          08/31/2006 21:32:01 PAGE 4   

 180   1       }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    482    ----
   CONSTANT SIZE    =    279    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美bbbbb| 国产成人一区二区精品非洲| 日本欧美久久久久免费播放网| 激情六月婷婷综合| 欧美中文一区二区三区| 久久精品一区二区三区不卡| 一区二区三区波多野结衣在线观看| 久久精品国产精品亚洲综合| 在线观看日韩精品| 国产性天天综合网| 麻豆国产精品一区二区三区| 日本国产一区二区| 国产精品嫩草99a| 久久国产欧美日韩精品| 欧美怡红院视频| 中文字幕在线播放不卡一区| 国产一二精品视频| 日韩视频一区二区在线观看| 一区二区三区日韩在线观看| 成人av手机在线观看| 久久亚区不卡日本| 精品一区二区三区久久| 日韩一二在线观看| 日本系列欧美系列| 91精品国产综合久久久久久久 | 色爱区综合激月婷婷| 久久久影视传媒| 精彩视频一区二区三区| 欧美一区二区三区日韩| 三级在线观看一区二区| 欧美剧情电影在线观看完整版免费励志电影| 亚洲天堂免费在线观看视频| 97超碰欧美中文字幕| 亚洲国产精品成人综合色在线婷婷 | 欧美精品日韩精品| 亚洲国产精品久久不卡毛片| 欧美性videosxxxxx| 亚洲高清免费在线| 欧美日韩不卡一区二区| 秋霞成人午夜伦在线观看| 777久久久精品| 蓝色福利精品导航| 久久日一线二线三线suv| 国产精品1区2区| 中文字幕一区二区三区在线播放 | 亚洲成av人片www| 欧美日韩精品系列| 视频一区欧美日韩| 精品999久久久| 成人午夜免费av| 玉米视频成人免费看| 欧美日本在线看| 激情偷乱视频一区二区三区| 国产欧美日韩视频一区二区 | 免费观看成人鲁鲁鲁鲁鲁视频| 在线综合视频播放| 国产在线不卡一区| 亚洲丝袜自拍清纯另类| 欧美性猛交xxxx黑人交| 加勒比av一区二区| 亚洲欧美影音先锋| 制服丝袜亚洲色图| 丁香婷婷综合色啪| 亚洲国产一区二区a毛片| 日韩午夜精品视频| jizzjizzjizz欧美| 视频一区二区中文字幕| 国产精品无遮挡| 欧美三级蜜桃2在线观看| 狠狠色丁香久久婷婷综合丁香| 国产精品九色蝌蚪自拍| 欧美日韩和欧美的一区二区| 国产一区91精品张津瑜| 亚洲高清中文字幕| 中文字幕国产一区| 91精品久久久久久久91蜜桃| 成人午夜视频网站| 麻豆一区二区在线| 亚洲一区二区av电影| 久久久久久亚洲综合影院红桃 | 中文字幕免费在线观看视频一区| 欧美午夜免费电影| 国产一区二区三区四区五区入口| 又紧又大又爽精品一区二区| 国产午夜精品理论片a级大结局| 91麻豆自制传媒国产之光| 国产一区二区剧情av在线| 亚洲国产一区二区a毛片| 国产精品视频九色porn| 精品少妇一区二区三区免费观看 | 色婷婷综合视频在线观看| 九色综合狠狠综合久久| 亚洲大型综合色站| 1024国产精品| 国产欧美日韩三级| 精品国产乱码久久久久久蜜臀 | 欧美在线一区二区三区| 国产iv一区二区三区| 美女脱光内衣内裤视频久久影院| 亚洲精品国产精品乱码不99| 欧美激情在线看| 久久久国产精华| 精品蜜桃在线看| 日韩欧美二区三区| 宅男在线国产精品| 欧美日韩精品免费观看视频| 色婷婷精品久久二区二区蜜臀av | 国产成人久久精品77777最新版本| 午夜欧美一区二区三区在线播放| 中文字幕在线不卡一区| 欧美国产视频在线| 国产精品麻豆一区二区| 国产三级一区二区三区| 国产亚洲一本大道中文在线| 久久一区二区视频| 2024国产精品| 久久色成人在线| 国产日产欧美一区| 国产精品免费观看视频| 亚洲欧美一区二区不卡| 一区二区三区四区国产精品| 亚洲与欧洲av电影| 日韩高清中文字幕一区| 喷白浆一区二区| 久久精品国产亚洲高清剧情介绍 | 日韩午夜精品电影| 精品久久久久久久久久久久久久久| 欧美一区二区精品在线| 欧美tickling挠脚心丨vk| www激情久久| 国产精品狼人久久影院观看方式| 国产精品日日摸夜夜摸av| 中文字幕一区二区三区乱码在线 | 亚洲精品欧美激情| 亚洲成人第一页| 久久亚洲综合色| 成人av午夜电影| 色综合色综合色综合| 国产精品1区2区3区| 国产拍欧美日韩视频二区| 国产精品色哟哟网站| 一区二区三区91| 精品影视av免费| 成人三级在线视频| 欧美综合一区二区三区| 欧美一区二区私人影院日本| 久久人人97超碰com| 亚洲欧美日韩一区| 天堂久久久久va久久久久| 国产九色精品成人porny| 99精品国产热久久91蜜凸| 91精品国产91久久综合桃花| 久久久91精品国产一区二区精品| 亚洲丝袜美腿综合| 久久99精品国产.久久久久久| 成人午夜在线免费| 欧美一区欧美二区| 国产精品国产成人国产三级 | 亚洲精品成a人| 国产亚洲一区二区三区| 日日噜噜夜夜狠狠视频欧美人 | 欧美色手机在线观看| 欧美日韩国产另类一区| 久久蜜桃香蕉精品一区二区三区| 国产精品乱码妇女bbbb| 午夜久久福利影院| kk眼镜猥琐国模调教系列一区二区| 欧美在线一二三四区| 久久久久九九视频| 日欧美一区二区| av亚洲精华国产精华| 精品国产三级a在线观看| 亚洲一区二三区| av亚洲精华国产精华精| 欧美电影精品一区二区| 亚洲成人动漫精品| 99精品在线观看视频| 国产亚洲短视频| 久久国产麻豆精品| 91精品国产一区二区三区蜜臀| 亚洲欧洲性图库| 国产成人高清视频| 精品国产乱码久久久久久牛牛 | 成人国产精品免费观看视频| 国产蜜臀97一区二区三区| 美女在线视频一区| 欧美怡红院视频| 综合欧美亚洲日本| 成人性视频免费网站| 欧美va日韩va| 久久精品国产亚洲a| 日韩午夜精品电影| 日本aⅴ免费视频一区二区三区 | 91精品国产综合久久蜜臀| 亚洲精选视频在线| 99久久免费精品高清特色大片| 国产亚洲精品免费| 国产黄人亚洲片| 久久久蜜桃精品| 国产很黄免费观看久久|