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

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

?? ps2key.lst

?? 104鍵PS2接口標準鍵盤程序(C語言),通過測試可以!程序簡單易懂。基于ICCAVR編譯器
?? LST
字號:
C51 COMPILER V6.23a  PS2KEY                                                                04/28/2008 11:50:18 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE PS2KEY
OBJECT MODULE PLACED IN PS2Key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PS2Key.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*============================================================
   2                  使用1602液晶顯示和PS/2鍵盤的示例  
   3                  -------------------------------------------------
   4                     
   5          ==============================================================
   6          
   7          SMC1602A(16*2)模擬口線接線方式
   8          連接線圖:       
   9                 ---------------------------------------------------
  10                 |LCM-----51   |  LCM-----51   |  LCM------51      |
  11                 --------------------------------------------------|
  12                 |DB0-----P0.0 |  DB4-----P0.4 |  RW-------P2.1    |
  13                 |DB1-----P0.1 |  DB5-----P0.5 |  RS-------P2.0    |
  14                 |DB2-----P0.2 |  DB6-----P0.6 |  E--------P2.2    |
  15                 |DB3-----P0.3 |  DB7-----P0.7 |  VLCD接1K電阻到GND|
  16                 ---------------------------------------------------
  17          
  18          Keyboard接線
  19                PS/2--------51
  20                1 DATA------P3.4
  21                3 GND
  22                4 VCC
  23                5 CLK-------P3.3 接在51的外部中斷,觸發方式為低電平
  24          
  25          
  26          [注:AT89x51使用12M或11.0592M晶振,實測使用11.059M
  27          [Keil uV2 7.01編譯運行通過 程序中沒有做鍵盤數據的奇偶校驗]
  28          
  29          =============================================================*/
  30          #include <at89x51.h>
  31          #include "scancodes.h"
  32          
  33          #define LCM_RW  P2_1 //定義LCD引腳
  34          #define LCM_RS  P2_0
  35          #define LCM_E   P2_2
  36          #define LCM_Data  P0
  37          
  38          #define Key_Data P3_4 //定義Keyboard引腳
  39          #define Key_CLK  P3_3
  40          
  41          #define Busy    0x80 //用于檢測LCM狀態字中的Busy標識
  42          
  43          void LCMInit(void);
  44          void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
  45          void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
  46          void Delay5Ms(void);
  47          void Delay400Ms(void);
  48          void Decode(unsigned char ScanCode);
  49          void WriteDataLCM(unsigned char WDLCM);
  50          void WriteCommandLCM(unsigned char WCLCM,BuysC);
  51          
  52          unsigned char ReadDataLCM(void);
  53          unsigned char ReadStatusLCM(void);
  54          unsigned char code cdle_net[] = {"  www.STAR.com  "};
  55          unsigned char code email[] = {"51@163.com"};
C51 COMPILER V6.23a  PS2KEY                                                                04/28/2008 11:50:18 PAGE 2   

  56          unsigned char code Cls[] = {"                "};
  57          static unsigned char IntNum = 0; //中斷次數計數
  58          static unsigned char KeyV; //鍵值
  59          static unsigned char DisNum = 0; //顯示用指針
  60          static unsigned char Key_UP=0, Shift = 0;//Key_UP是鍵松開標識,Shift是Shift鍵按下標識
  61          static unsigned char BF = 0; //標識是否有字符被收到
  62          
  63          void main(void)
  64          {
  65   1              unsigned char TempCyc;
  66   1      
  67   1              Delay400Ms(); //啟動等待,等LCM講入工作狀態
  68   1              LCMInit(); //LCM初始化
  69   1              Delay5Ms(); //延時片刻(可不要)
  70   1      
  71   1              DisplayListChar(0, 0, cdle_net);
  72   1              DisplayListChar(0, 1, email);
  73   1              ReadDataLCM();//測試用句無意義
  74   1              for (TempCyc=0; TempCyc<10; TempCyc++)
  75   1                              Delay400Ms(); //延時
  76   1              DisplayListChar(0, 1, Cls);     
  77   1              
  78   1              IT1 = 0; //設外部中斷1為低電平觸發
  79   1              EA = 1;
  80   1              EX1 = 1; //開中斷
  81   1      
  82   1              do
  83   1                      {
  84   2                              if (BF)
  85   2                                      Decode(KeyV);
  86   2                              else
  87   2                                      EA = 1; //開中斷
  88   2                      }
  89   1              while(1);
  90   1      }
  91          
  92          //寫數據
  93          void WriteDataLCM(unsigned char WDLCM) 
  94          {
  95   1              ReadStatusLCM(); //檢測忙
  96   1              LCM_Data = WDLCM;
  97   1              LCM_RS = 1;
  98   1              LCM_RW = 0;
  99   1              LCM_E = 0; //若晶振速度太高可以在這后加小的延時
 100   1              LCM_E = 0; //延時
 101   1              LCM_E = 1;
 102   1      }
 103          
 104          //寫指令
 105          void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時忽略忙檢測
 106          {
 107   1              if (BuysC) ReadStatusLCM(); //根據需要檢測忙
 108   1              LCM_Data = WCLCM;
 109   1              LCM_RS = 0;
 110   1              LCM_RW = 0;     
 111   1              LCM_E = 0;
 112   1              LCM_E = 0;
 113   1              LCM_E = 1;      
 114   1      }
 115          
 116          //讀數據
 117          unsigned char ReadDataLCM(void)
C51 COMPILER V6.23a  PS2KEY                                                                04/28/2008 11:50:18 PAGE 3   

 118          {
 119   1              LCM_RS = 1; 
 120   1              LCM_RW = 1;
 121   1              LCM_E = 0;
 122   1              LCM_E = 0;
 123   1              LCM_E = 1;
 124   1              return(LCM_Data);
 125   1      }
 126          
 127          //讀狀態
 128          unsigned char ReadStatusLCM(void)
 129          {
 130   1              LCM_Data = 0xFF; 
 131   1              LCM_RS = 0;
 132   1              LCM_RW = 1;
 133   1              LCM_E = 0;
 134   1              LCM_E = 0;
 135   1              LCM_E = 1;
 136   1              while (LCM_Data & Busy); //檢測忙信號
 137   1              return(LCM_Data);
 138   1      }
 139          
 140          void LCMInit(void) //LCM初始化
 141          {
 142   1              LCM_Data = 0;
 143   1              WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號
 144   1              Delay5Ms(); 
 145   1              WriteCommandLCM(0x38,0);
 146   1              Delay5Ms(); 
 147   1              WriteCommandLCM(0x38,0);
 148   1              Delay5Ms(); 
 149   1      
 150   1              WriteCommandLCM(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
 151   1              WriteCommandLCM(0x08,1); //關閉顯示
 152   1              WriteCommandLCM(0x01,1); //顯示清屏
 153   1              WriteCommandLCM(0x06,1); // 顯示光標移動設置
 154   1              WriteCommandLCM(0x0F,1); // 顯示開及光標設置
 155   1      }
 156          
 157          //按指定位置顯示一個字符
 158          void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
 159          {
 160   1              Y &= 0x1;
 161   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 162   1              if (Y) X |= 0x40; //當要顯示第二行時地址碼+0x40;
 163   1              X |= 0x80; //算出指令碼
 164   1              WriteCommandLCM(X, 1); //發命令字
 165   1              WriteDataLCM(DData); //發數據
 166   1      }
 167          
 168          //按指定位置顯示一串字符
 169          void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
 170          {
 171   1              unsigned char ListLength;
 172   1      
 173   1        ListLength = 0;
 174   1              Y &= 0x1;
 175   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 176   1              while (DData[ListLength]>0x19) //若到達字串尾則退出
 177   1                      {
 178   2                              if (X <= 0xF) //X坐標應小于0xF
 179   2                                      {
C51 COMPILER V6.23a  PS2KEY                                                                04/28/2008 11:50:18 PAGE 4   

 180   3                                              DisplayOneChar(X, Y, DData[ListLength]); //顯示單個字符
 181   3                                              ListLength++;
 182   3                                              X++;
 183   3                                      }
 184   2                      }
 185   1      }
 186          
 187          //5ms延時
 188          void Delay5Ms(void)
 189          {
 190   1              unsigned int TempCyc = 5552;
 191   1              while(TempCyc--);
 192   1      }
 193          
 194          //400ms延時
 195          void Delay400Ms(void)
 196          {
 197   1              unsigned char TempCycA = 5;
 198   1              unsigned int TempCycB;
 199   1              while(TempCycA--)
 200   1                      {
 201   2                              TempCycB=7269;
 202   2                              while(TempCycB--);
 203   2                      };
 204   1      }
 205          
 206          void Keyboard_out(void) interrupt 2
 207          {
 208   1              if ((IntNum > 0) && (IntNum < 9))
 209   1                      {                       
 210   2                              KeyV = KeyV >> 1; //因鍵盤數據是低>>高,結合上一句所以右移一位
 211   2                              if (Key_Data) KeyV = KeyV | 0x80; //當鍵盤數據線為1時為1到最高位
 212   2                      }
 213   1              IntNum++;
 214   1              while (!Key_CLK); //等待PS/2CLK拉高
 215   1      
 216   1              if (IntNum > 10)
 217   1                      {
 218   2                              IntNum = 0; //當中斷11次后表示一幀數據收完,清變量準備下一次接收
 219   2                              BF = 1; //標識有字符輸入完了
 220   2                              EA = 0; //關中斷等顯示完后再開中斷 (注:如這里不用BF和關中斷直接調Decode()則所Decode中所調用的所有函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区视频| 国产视频一区二区三区在线观看 | 高清国产一区二区三区| 日韩在线观看一区二区| 91美女片黄在线| 亚洲国产中文字幕| 欧美国产日韩一二三区| 777奇米成人网| 久久精品一区二区三区不卡牛牛| 一区二区三区视频在线看| 91网站在线播放| 91亚洲国产成人精品一区二三 | 在线观看视频一区二区| 亚洲小说春色综合另类电影| 一区二区日韩av| 午夜激情一区二区三区| 国产日韩av一区| 亚洲bt欧美bt精品777| 久久久久久久av麻豆果冻| 粉嫩av一区二区三区在线播放| 国内精品久久久久影院薰衣草| 中文欧美字幕免费| 欧美性色综合网| av欧美精品.com| 日本va欧美va欧美va精品| 国产三级久久久| 亚洲欧洲99久久| 欧美va日韩va| 欧美日韩国产天堂| 一本到不卡免费一区二区| 久久99精品国产麻豆婷婷 | 国产99久久久久久免费看农村| 粉嫩av一区二区三区粉嫩 | 日本欧美久久久久免费播放网| 中文字幕在线视频一区| 日韩亚洲欧美成人一区| 欧美午夜在线一二页| 日韩午夜在线观看| 国产精品理论在线观看| 日韩专区一卡二卡| 国产999精品久久久久久绿帽| 一本一道波多野结衣一区二区| 欧美日本在线看| 国产亚洲短视频| 亚洲一区二区不卡免费| 一卡二卡三卡日韩欧美| 久久99精品久久久| 欧美午夜精品久久久久久超碰| 精品少妇一区二区三区| 尤物视频一区二区| 一区二区三区在线视频观看58| 日产国产欧美视频一区精品| 97国产精品videossex| thepron国产精品| 日韩欧美区一区二| 久久蜜桃av一区二区天堂| 亚洲欧美电影一区二区| 亚洲综合成人在线| 国产成人免费av在线| 波多野结衣视频一区| 日韩一区二区在线观看视频播放| 亚洲日本欧美天堂| 亚洲成人动漫在线免费观看| 99免费精品在线| 国产午夜一区二区三区| 麻豆国产精品官网| 国产91丝袜在线播放九色| 91精品国模一区二区三区| 一区二区三区av电影 | 亚洲黄色尤物视频| 成人动漫视频在线| 91小视频免费看| 国产欧美日本一区视频| 国产成人午夜视频| 久久噜噜亚洲综合| 国产精品一级二级三级| 欧美xfplay| 精品在线观看视频| 精品国产一区二区三区忘忧草| 久久久久久毛片| 久久99久久99小草精品免视看| 欧美另类z0zxhd电影| 久久精品男人天堂av| 韩国午夜理伦三级不卡影院| 欧美va日韩va| 国产成人在线免费| 中文字幕一区二区三| 91色porny蝌蚪| 一区二区三区加勒比av| 欧美日韩一区国产| 久久精品一区二区三区四区| 国产河南妇女毛片精品久久久| 久久一区二区三区国产精品| 一区二区三区毛片| 在线视频欧美精品| 日日摸夜夜添夜夜添精品视频| 91精品国产入口在线| 国产精品超碰97尤物18| 日本久久电影网| 亚洲国产精品二十页| av在线播放成人| 性久久久久久久久| 日韩精品中文字幕一区| 成人免费视频免费观看| 欧美变态tickling挠脚心| 国内精品免费**视频| 国产精品久久久久久久久动漫 | 国产精品区一区二区三区| 91丨porny丨蝌蚪视频| 亚洲成av人片一区二区梦乃 | 成人看片黄a免费看在线| 亚洲激情自拍视频| 91精品国产一区二区人妖| 国产精品自拍三区| 亚洲国产人成综合网站| 欧美精品一区二区三| 一本大道久久a久久精二百| 免费成人在线播放| 亚洲欧美色图小说| 精品国产百合女同互慰| 91久久线看在观草草青青| 久久99精品国产.久久久久| 亚洲精品欧美在线| 久久久高清一区二区三区| 欧美三级日韩在线| 成人精品视频一区| 男人的天堂久久精品| 国产精品久久久久天堂| 欧美精品色综合| 久久国产精品免费| 久久久不卡网国产精品二区| 99免费精品视频| 久久电影国产免费久久电影| 亚洲欧美视频在线观看| 欧美国产欧美综合| 91精品国产综合久久久久久久 | 国产欧美一区二区在线| 欧美性猛交xxxxxx富婆| 国产成人av电影在线播放| 亚洲一二三级电影| 中文字幕 久热精品 视频在线 | 肉丝袜脚交视频一区二区| 久久精品人人做人人爽97| 欧美电影免费观看高清完整版在线观看 | 中文字幕在线观看一区二区| 91精品国产手机| 在线观看国产日韩| 99久久国产综合精品麻豆| 精品一区二区三区免费| 麻豆中文一区二区| 亚洲一区二区四区蜜桃| 国产精品乱子久久久久| 精品国产污网站| 在线观看一区二区精品视频| 色综合久久久久综合体桃花网| 国产露脸91国语对白| 日韩国产精品久久久久久亚洲| 最新国产成人在线观看| 精品欧美黑人一区二区三区| 欧美tk丨vk视频| 制服丝袜亚洲网站| 欧美日韩免费观看一区二区三区 | 久久成人免费网站| 日本伊人午夜精品| 久久精品国产色蜜蜜麻豆| 五月婷婷久久综合| 亚洲电影第三页| 亚洲综合色婷婷| 亚洲精品国产高清久久伦理二区| 亚洲乱码日产精品bd| 国产精品三级在线观看| 国产欧美日韩在线| 久久久久久亚洲综合影院红桃| 日本一区二区三区高清不卡| 久久综合色天天久久综合图片| 日韩欧美亚洲国产另类| 欧美tk—视频vk| www国产成人| 亚洲女爱视频在线| 亚洲乱码精品一二三四区日韩在线| 中文字幕日韩一区| 1区2区3区欧美| 日本不卡一区二区三区高清视频| 丝袜亚洲另类欧美| 乱一区二区av| 国产成人在线免费观看| 欧美性色综合网| 日韩一区二区在线观看| 久久夜色精品一区| 中文字幕成人在线观看| 日韩国产欧美三级| 国产一区欧美一区| 成人午夜电影网站| 色网综合在线观看| 久久综合九色综合欧美98| 国产精品美女久久久久aⅴ| 亚洲精选免费视频| 青娱乐精品在线视频| 激情综合网av| 国产成人综合在线观看|