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

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

?? ps2.lst

?? 用Keilc編寫的讀取計算機pc鍵盤碼的程序
?? LST
字號:
C51 COMPILER V7.06   PS2                                                                   06/06/2004 19:47:47 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PS2
OBJECT MODULE PLACED IN ps2.OBJ
COMPILER INVOKED BY: E:\Keil706\C51\BIN\C51.EXE ps2.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <at89x51.h>
   2          #include "scancodes.h"
   3          
   4          #define LCM_RW    P1_1 //定義LCD引腳
   5          #define LCM_RS    P1_0
   6          #define LCM_E     P1_2
   7          #define LCM_Data  P0
   8          
   9          #define Key_Data  P1_7 //定義Keyboard引腳
  10          #define Key_CLK   P3_2
  11          
  12          #define Busy 0x80 //用于檢測LCM狀態字中的Busy標識
  13          
  14          void LCMInit(void);
  15          void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData);
  16          void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData);
  17          void Delay5Ms(void);
  18          void Delay400Ms(void);
  19          void Decode(unsigned char ScanCode);
  20          void WriteDataLCM(unsigned char WDLCM);
  21          void WriteCommandLCM(unsigned char WCLCM,BuysC);
  22          
  23          unsigned char ReadDataLCM(void);
  24          unsigned char ReadStatusLCM(void);
  25          unsigned char code cdle_net[] = {"-www.cdle.net--"};
  26          unsigned char code email[] = {"pnzwzw@cdle.net"};
  27          unsigned char code Cls[] = {" "};
  28          static unsigned char IntNum = 0; //中斷次數計數
  29          static unsigned char KeyV; //鍵值
  30          static unsigned char DisNum = 0; //顯示用指針
  31          static unsigned char Key_UP=0, Shift = 0;//Key_UP是鍵松開標識,Shift是Shift鍵按下標識
  32          static unsigned char BF = 0; //標識是否有字符被收到
  33          
  34          void main(void)
  35          {
  36   1              unsigned char TempCyc;
  37   1      
  38   1              Delay400Ms(); //啟動等待,等LCM講入工作狀態
  39   1              LCMInit(); //LCM初始化 
  40   1              Delay5Ms(); //延時片刻(可不要)
  41   1      
  42   1              DisplayListChar(0, 0, cdle_net);
  43   1              DisplayListChar(0, 1, email);
  44   1              ReadDataLCM();//測試用句無意義
  45   1              for(TempCyc=0; TempCyc<10; TempCyc++) {
  46   2                      Delay400Ms(); //延時
  47   2              }
  48   1              DisplayListChar(0, 1, Cls);
  49   1      
  50   1              IT0 = 0; //設外部中斷1為低電平觸發
  51   1              EX0 = 1; //開中斷
  52   1              EA = 1;
  53   1      
  54   1              while(1) {
  55   2                      if(BF)
C51 COMPILER V7.06   PS2                                                                   06/06/2004 19:47:47 PAGE 2   

  56   2                              Decode(KeyV);
  57   2                      else {
  58   3                              EA = 1; //開中斷
  59   3                      }
  60   2              }
  61   1      }
  62          
  63          //寫數據
  64          void WriteDataLCM(unsigned char WDLCM) 
  65          {
  66   1              ReadStatusLCM(); //檢測忙
  67   1              LCM_Data = WDLCM;
  68   1              LCM_RS = 1;
  69   1              LCM_RW = 0;
  70   1              LCM_E = 0; //若晶振速度太高可以在這后加小的延時
  71   1              LCM_E = 0; //延時
  72   1              LCM_E = 1;
  73   1      }
  74          
  75          //寫指令
  76          void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時忽略忙檢測
  77          {
  78   1              if(BuysC) ReadStatusLCM(); //根據需要檢測忙
  79   1              LCM_Data = WCLCM;
  80   1              LCM_RS = 0;
  81   1              LCM_RW = 0;
  82   1              LCM_E = 0;
  83   1              LCM_E = 0;
  84   1              LCM_E = 1; 
  85   1      }
  86          
  87          //讀數據
  88          unsigned char ReadDataLCM(void)
  89          {
  90   1              LCM_RS = 1; 
  91   1              LCM_RW = 1;
  92   1              LCM_E = 0;
  93   1              LCM_E = 1;
  94   1      
  95   1      return(LCM_Data);
  96   1      }
  97          
  98          //讀狀態
  99          unsigned char ReadStatusLCM(void)
 100          {
 101   1              LCM_Data = 0xFF; 
 102   1              LCM_RS = 0;
 103   1              LCM_RW = 1;
 104   1              LCM_E = 0;
 105   1              LCM_E = 1;
 106   1              while(LCM_Data & Busy); //檢測忙信號
 107   1      
 108   1              return(LCM_Data);
 109   1      }
 110          
 111          void LCMInit(void) //LCM初始化
 112          {
 113   1              LCM_Data = 0;
 114   1              WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號
 115   1              Delay5Ms(); 
 116   1              WriteCommandLCM(0x38,0);
 117   1              Delay5Ms(); 
C51 COMPILER V7.06   PS2                                                                   06/06/2004 19:47:47 PAGE 3   

 118   1              WriteCommandLCM(0x38,0);
 119   1              Delay5Ms(); 
 120   1      
 121   1              WriteCommandLCM(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
 122   1              WriteCommandLCM(0x08,1); //關閉顯示
 123   1              WriteCommandLCM(0x01,1); //顯示清屏 
 124   1              WriteCommandLCM(0x06,1); // 顯示光標移動設置
 125   1              WriteCommandLCM(0x0F,1); // 顯示開及光標設置
 126   1      }
 127          
 128          //按指定位置顯示一個字符
 129          void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
 130          {
 131   1              Y &= 0x1;
 132   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 133   1              if(Y)
 134   1                      X |= 0x40; //當要顯示第二行時地址碼+0x40;
 135   1              X |= 0x80; //算出指令碼
 136   1              WriteCommandLCM(X, 1); //發命令字
 137   1              WriteDataLCM(DData); //發數據
 138   1      }
 139          
 140          //按指定位置顯示一串字符
 141          void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
 142          {
 143   1              unsigned char ListLength;
 144   1      
 145   1              ListLength = 0;
 146   1              Y &= 0x1;
 147   1              X &= 0xF; //限制X不能大于15,Y不能大于1
 148   1              while (DData[ListLength]>0x19) {//若到達字串尾則退出
 149   2                      if(X <= 0xF) {//X坐標應小于0xF
 150   3                              DisplayOneChar(X, Y, DData[ListLength]); //顯示單個字符
 151   3                              ListLength++;
 152   3                              X++;
 153   3                      }
 154   2              }
 155   1      }
 156          
 157          //5ms延時
 158          void Delay5Ms(void)
 159          {
 160   1              unsigned int TempCyc = 5552;
 161   1              while(TempCyc--)
 162   1                      ;
 163   1      }
 164          
 165          //400ms延時
 166          void Delay400Ms(void)
 167          {
 168   1              unsigned char TempCycA = 5;
 169   1              unsigned int TempCycB;
 170   1              while(TempCycA--) {
 171   2                      TempCycB=7269;
 172   2                      while(TempCycB--)
 173   2                              ;
 174   2              }
 175   1      }
 176          
 177          void Keyboard_out(void) interrupt 0
 178          {
 179   1              if((IntNum > 0) && (IntNum < 9)) {
C51 COMPILER V7.06   PS2                                                                   06/06/2004 19:47:47 PAGE 4   

 180   2                      KeyV >>= 1;                     //因鍵盤數據是低>>高,結合上一句所以右移一位
 181   2                      if(Key_Data) {
 182   3                              KeyV |= 0x80;   //當鍵盤數據線為1時為1到最高位
 183   3                      }
 184   2              }
 185   1              IntNum++;
 186   1              while(!Key_CLK);                                        //等待PS/2CLK拉高
 187   1              if(IntNum > 10) {
 188   2                      IntNum = 0;                     //當中斷10次后表示一幀數據收完,清變量準備下一次接收
 189   2                      BF = 1;                         //標識有字符輸入完了
 190   2                      EA = 0;                         //關中斷等顯示完后再開中斷 (注:如這里不用BF和關中斷直接調Decode()則所Decode中所調用的所有函

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产欧美久久久精品| 成人av免费在线观看| 欧美人狂配大交3d怪物一区 | 日韩国产高清影视| 久久综合色婷婷| 91麻豆精品一区二区三区| 免费在线观看视频一区| 日韩美女啊v在线免费观看| 欧美一区二区三区色| 高清不卡在线观看| 老色鬼精品视频在线观看播放| 国产亚洲欧美一级| 欧美精品自拍偷拍| 99re这里都是精品| 91免费版pro下载短视频| 在线观看区一区二| 成人sese在线| 色噜噜久久综合| 成人深夜视频在线观看| 免费成人小视频| 国产在线国偷精品免费看| 亚洲成人激情社区| 亚洲激情校园春色| 中文字幕亚洲综合久久菠萝蜜| 日韩欧美一二区| 日韩一区二区在线看| 欧美日韩免费一区二区三区视频| eeuss国产一区二区三区| 黄网站免费久久| 国产真实乱对白精彩久久| 国产乱对白刺激视频不卡| 久久国产精品99精品国产 | 国产女人aaa级久久久级| 欧美成人精品福利| 欧美成人福利视频| 综合激情网...| 卡一卡二国产精品| 不卡一卡二卡三乱码免费网站 | 一区二区免费视频| 亚洲免费av网站| 亚洲欧美另类综合偷拍| 日韩av一区二区在线影视| 成人免费视频一区| 91麻豆精品国产91久久久使用方法| 欧美在线啊v一区| 久久综合给合久久狠狠狠97色69| 亚洲欧洲99久久| 国产一区二区不卡老阿姨| 91精品福利在线| 国产精品欧美综合在线| 国产精品成人免费| 亚洲激情网站免费观看| 国产一区二区三区久久久| 欧美福利电影网| 亚洲人午夜精品天堂一二香蕉| 激情五月激情综合网| 在线观看一区二区视频| 国产欧美精品国产国产专区| 日韩激情在线观看| 国产在线不卡一区| 欧美一区二视频| 亚洲成人激情综合网| jlzzjlzz欧美大全| 中文字幕av一区二区三区免费看| 一区二区三区在线观看动漫| 国产精品88888| 精品国产髙清在线看国产毛片| 久久色.com| 美脚の诱脚舐め脚责91| 成人激情黄色小说| 国产日产欧美精品一区二区三区| 国产伦理精品不卡| 久久精品在线观看| 国产在线精品免费av| 久久久国产一区二区三区四区小说| 一区二区三区在线观看视频| 色综合色综合色综合色综合色综合 | 欧美xxxx在线观看| 午夜电影久久久| 成人a免费在线看| 亚洲国产成人一区二区三区| 国产成人无遮挡在线视频| 欧美蜜桃一区二区三区| 婷婷中文字幕综合| 欧美电影免费观看高清完整版在线| 日本中文字幕一区二区视频| 欧美一区二区三区免费在线看| 亚洲第一搞黄网站| 日韩欧美一区中文| 91香蕉视频在线| 一区二区三区成人在线视频| 欧美日本乱大交xxxxx| 欧美bbbbb| 国产精品视频看| 91福利区一区二区三区| 秋霞国产午夜精品免费视频 | 国产成人自拍网| 亚洲手机成人高清视频| 欧洲一区二区av| 毛片av一区二区| 中文字幕第一区第二区| 欧美在线不卡视频| 国产精品综合av一区二区国产馆| 久久亚洲一级片| 一本大道av伊人久久综合| 天堂va蜜桃一区二区三区| 久久亚洲综合av| 欧美视频一区二区| 亚洲色图制服丝袜| 51精品国自产在线| 成人午夜免费av| 午夜精品久久久久久久99水蜜桃 | 成人久久视频在线观看| 亚洲成人av一区二区三区| 久久新电视剧免费观看| 色综合久久综合网| 国产在线不卡一区| 香蕉av福利精品导航 | 欧洲一区二区三区在线| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产综合草草| 国内成人精品2018免费看| 亚洲午夜久久久久久久久电影院| 日本二三区不卡| 狠狠色丁香婷综合久久| 亚洲高清在线视频| 国产欧美日韩三区| 精品久久久久99| 欧美日韩国产bt| 91在线视频免费91| 国产乱人伦偷精品视频免下载 | 紧缚奴在线一区二区三区| 亚洲一区二三区| 日韩一级视频免费观看在线| 91色乱码一区二区三区| 成人午夜电影网站| 国产剧情av麻豆香蕉精品| 美国av一区二区| 日日夜夜免费精品视频| 亚洲国产精品自拍| 亚洲综合图片区| 亚洲女同ⅹxx女同tv| 国产精品美女一区二区在线观看| 久久久国产精品午夜一区ai换脸| 91精品国产色综合久久不卡蜜臀| 欧美在线免费视屏| 欧美在线免费观看亚洲| 欧美少妇一区二区| 欧美色倩网站大全免费| 91黄视频在线| 欧美日韩综合不卡| 91.com在线观看| 日韩一级大片在线| 欧美白人最猛性xxxxx69交| 日韩一区二区三区视频在线| 日韩欧美国产系列| 欧美mv和日韩mv的网站| 精品国产一区二区精华| 久久综合久色欧美综合狠狠| 久久久亚洲综合| 欧美国产精品久久| 中文字幕一区二区三中文字幕| 亚洲视频在线一区| 亚洲va天堂va国产va久| 免费的成人av| 国产精品一区二区不卡| 成人久久18免费网站麻豆| 色综合天天视频在线观看| 欧美色电影在线| 91精品国产入口在线| 久久综合九色综合欧美亚洲| 国产日韩一级二级三级| 最近中文字幕一区二区三区| 亚洲综合在线观看视频| 喷水一区二区三区| 岛国精品在线播放| 91高清视频免费看| 精品日韩在线观看| 欧美国产精品一区| 亚洲国产日韩精品| 韩国av一区二区三区| 99久久精品国产精品久久| 欧美日韩视频一区二区| 日韩欧美高清dvd碟片| 一区二区中文视频| 免费在线观看一区| 97精品国产露脸对白| 777a∨成人精品桃花网| 亚洲国产精品成人综合| 亚洲成av人在线观看| 高清不卡一区二区| 欧美一二三区在线| 亚洲三级视频在线观看| 精彩视频一区二区三区| 色丁香久综合在线久综合在线观看| 欧美一区二区三区在线电影| 亚洲国产成人私人影院tom| 蜜臂av日日欢夜夜爽一区| 91久久精品网| 欧美激情综合五月色丁香 |