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

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

?? jp.txt

?? 幾種鍵盤掃描程序,比較詳細、經典
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
最簡單矩陣鍵盤掃描程序
key:mov p0,#00001111b;上四位和下四位分別為行和列,所以送出高
低電壓檢查有沒有按鍵按下
jmp k10;跳到K10處開始掃描,這里可以改成其它條件轉移指令來決
定本次掃描是否要繼續,例如減1為0轉移或者位為1或0才轉移,這主
要用來增加功能,確認上一按鍵功能是否完成?是否相當于經過了延
時?是否要封鎖鍵盤?
goend:jmp kend;如果上面判斷本次不執行鍵盤掃描程序,則立即轉
到程序尾部,不要浪費CPU的時間
k10:jb p0.0,k20;掃描正式開始,先檢查列1四個鍵是否有鍵按下,
如果沒有,則跳到K20檢查列2
k11:mov p0,#11101111b;列1有鍵按下時,P0.0變低,到底是那一個鍵
按下?現在分別輸出各行低電平
jb p0.0,k12;該行的鍵不按下時,p0.0為高電平,跳到到K12,檢查其
它的行
mov r1,#1;如果正好是這行的鍵按下,將寄存器R0寫下1,表示1號鍵
按下了
k12:mov p0,#11011111b
jb p0.0,k13
mov r1,#2;如果正好是這行的鍵按下,將寄存器R0寫下2,表示2號鍵
按下了
k13:mov p0,#10111111b
jb p0.0,k14
mov r1,#3;如果正好是這行的鍵按下,將寄存器R0寫下3,表示3號鍵
按下了
k14:mov p0,#01111111b
jb p0.0,kend;如果現在四個鍵都沒有按下,可能按鍵松開或干擾,
退出掃描(以后相同)
mov r1,#4如果正好是這行的鍵按下,將寄存器R0寫下4,表示4號鍵
按下了
jmp kend;已經找到按下的鍵,跳到結尾吧
k20:jb p0.1,k30;列2檢查為高電平再檢查列3、4 
k21:mov p0,#11101111b;列2有健按下時,P0.0會變低,到底是那一
行的鍵按下呢?分別輸出行的低電平
jb p0.1,k22;該行的鍵不按下時p0.0為高電平,跳到到K22,檢查另
外三行
mov r1,#5;如果正好是這行的鍵按下,將寄存器R0寫下5,表示5號鍵
按下了(以后相同,不再重復了)
k22:mov p0,#11011111b
jb p0.1,k23
mov r1,#6
k23:mov p0,#10111111b
jb p0.1,k24
mov r1,#7
k24:mov p0,#01111111b
jb p0.1,kend
mov r1,#8
jmp kend;已經找到按下的鍵,跳到結尾吧(以后相同,不要重復了
k30:jb p0.2,k40
k31:mov p0,#11101111b
jb p0.2,k32
mov r1,#9
k32:mov p0,#11011111b
jb p0.2,k33
mov r1,#10
k33:mov p0,#10111111b
jb p0.2,k34
mov r1,#11
k34:mov p0,#01111111b
jb p0.2,kend
mov r1,#12
jmp kend
k40:jb p0.3,kend
k41:mov p0,#11101111b
jb p0.3,k42
mov r1,#13
k42:mov p0,#11011111b
jb p0.3,k43
mov r1,#14
k43:mov p0,#10111111b
jb p0.3,k44
mov r1,#15
k44:mov p0,#01111111b
jb p0.3,kend
mov r1,#16
kend: ret
 
/*-------------------------------------------------------*/
行列掃描鍵盤可檢測出雙鍵按下
#i nclude <reg52.h>
#define ulong         unsigned long
#define uint        unsigned int
#define uchar         unsigned char
extern void delay(unsigned int x);
unsigned char Tab_key[]=        //行列式鍵盤映射
    {0x00,                        //無鍵按下
    '7','8','9','/',
    '4','5','6','*',
    '1','2','3','-',
    'C','0','=','+',
    //下面為按'C'同時再按的鍵:
    '7','8','9','/',
    '4','5','6','*',
    '1','2','3','-',
        '0','=','+',};
    //  P1口行列式鍵盤  //
#define KEYPIN_L  P1               // 定義鍵掃描列端口為 P1
低四位輸入  //
#define KEYPIN_H  P1              // 定義鍵掃描行端口為 P1高
四位掃描輸出  //
    //  P1口行列式鍵盤  //
    //公用函數
unsigned char KeysCAN(void);    //  鍵掃描函數            //
    //內部私有函數
unsigned char fnKeycode(unsigned char key);     //  根據鍵盤
映射表輸出順序鍵值            //
/*
    //  P1口行列式鍵盤  //
extern unsigned char KeysCAN(void);    //  鍵掃描函數        
    //
*/
    //  P1口行列式鍵盤  //
//---------------------------------------------------------
------------------//
unsigned char KeysCAN(void)                      //  鍵掃描
函數            //
{
    unsigned char sccode,recode,keytemp = 0;
    KEYPIN_L = KEYPIN_L|0x0f;                    //  P1低四
位為列線輸入         //
    KEYPIN_H = KEYPIN_H&0x0f;                    //  P1高四
位為行線發全零掃描碼 //
    if ((KEYPIN_L&0x0f) !=  0x0f)
        {
        delay(10);                                //  延時 
10 MS 消抖       //
        if ((KEYPIN_L&0x0f) !=  0x0f)
            {
            sccode = 0xef;                        //  逐行掃
描碼初值(1110 1111)  //
            while(sccode !=  0xff)               //將掃描4次
,keytemp為每次鍵值相 或的值 //
                {
                KEYPIN_H = sccode;                 //  輸出
行掃描碼          //
                if ((KEYPIN_L&0x0f) !=  0x0f)    //  本行有
鍵按下          //
                    {
                    recode = (KEYPIN_L&0x0f)|0xf0;    //  只
要低位,高位置1  //
                    keytemp |=  (~sccode)+(~recode);    //特
征碼(高位為列P3,低位為行KEYPIN_H)  //
                }
                sccode = (sccode << 1)|0x01;    //  掃描碼0
向高位移動 //
            }
        }
    }
    KEYPIN_H = KEYPIN_H|0xf0;
    return(fnKeycode(keytemp));
}
//---------------------------------------------------------
------------------//
unsigned char fnKeycode(unsigned char key)     //  根據鍵盤
映射表輸出順序鍵值            //
    {
    switch(key)
        {
        case    0x11:                //   1 鍵  //
            key = 0x01;
            break;
        case    0x21:                //   2 鍵  //
            key = 0x02;
            break;
        case    0x41:                //   3 鍵  //
            key = 0x03;
            break;
        case    0x81:                //   4 鍵  //
            key = 0x04;
            break;
        case    0x12:                //   5 鍵  //
            key = 0x05;
            break;
        case    0x22:                //   6 鍵  //
            key = 0x06;
            break;
        case    0x42:                //   7 鍵  //
            key = 0x07;
            break;
        case    0x82:                //   8 鍵  //
            key = 0x08;
            break;
        case    0x14:                //   9 鍵  //
            key = 0x09;
            break;
        case    0x24:                //   10 鍵  //
            key = 0x0A;
            break;
        case    0x44:                //   11 鍵  //
            key = 0x0B;
            break;
        case    0x84:                //   12 鍵  //
            key = 0x0C;
            break;
        case    0x18:                //   13 鍵  //
            key = 0x0D;
            break;
        case    0x28:                //   14 鍵  //
            key = 0x0E;
            break;
        case    0x48:                //   15 鍵  //
            key = 0x0F;
            break;
        case    0x88:                //   16 鍵  //
            key = 0x10;
            break;
                    //以下為功能鍵//
        case    0x19:                //   'C' +1 鍵  //
            key = 0x11;
            break;
        case    0x29:                //   'C' +2 鍵  //
            key = 0x12;
            break;
        case    0x49:                //   'C' +3 鍵  //
            key = 0x13;
            break;
        case    0x89:                //   'C' +4 鍵  //
            key = 0x14;
            break;
        case    0x1A:                //   'C' +5 鍵  //
            key = 0x15;
            break;
        case    0x2A:                //   'C' +6 鍵  //
            key = 0x16;
            break;
        case    0x4A:                //   'C' +7 鍵  //
            key = 0x17;
            break;
        case    0x8A:                //   'C' +8 鍵  //
            key = 0x18;
            break;
        case    0x1C:                //   'C' +9 鍵  //
            key = 0x19;
            break;
        case    0x2C:                //   'C' +10 鍵  //
            key = 0x1A;
            break;
        case    0x4C:                //   'C' +11 鍵  //
            key = 0x1B;
            break;
        case    0x8C:                //   'C' +12 鍵  //
            key = 0x1C;
            break;
//        case    0x18:                //   'C' +13 鍵  //
//            key = 0x1D;
//            break;
        case    0x38:                //   'C' +14 鍵  //
            key = 0x1D;
            break;
        case    0x58:                //   'C' +15 鍵  //
            key = 0x1E;
            break;
        case    0x98:                //   'C' +16 鍵  //
            key = 0x1F;
            break;
        default     :                //   無鍵   //
            key = 0x00;
            break;
    }
    return(Tab_key[key]);
}    
 
/*---------------------------------------------------------*/
矩鍵查尋鍵值44程序與顯示
#i nclude <reg52.h>
//#i nclude <math.h>
#i nclude <intrins.h>
#define uchar unsigned char
#define TURE 1
#define FALSE 0
int key;
int del;
void Tkey(void);
void led(void);

 /************主  程序*************/
void main(void)
{ 
  void tkey(void);
  void led(void);
  void delay(int);

  
  SCON=0x00;
  TI=0; 
  while(TURE)
  {
   Tkey();
   led();
   delay(2000);
  }
}


/********矩鍵查尋鍵值4*4程序******/按鍵為P1.0---P1.7
void Tkey(void)
{
  uchar readkey;//rereadkey;
  uchar x_temp,y_temp;
 
  P1=0x0f;
  x_temp=P1&0x0f;
  if(x_temp==0x0f) goto keyout;
  P1=0xf0;
  y_temp=P1&0xf0;
  readkey=x_temp|y_temp;
  readkey=~readkey;

switch(readkey)
    {
     case 0x11:key=0; break;
    case 0x21:key=1; break;
  case 0x41:key=2; break;
  case 0x81:key=3; break;
  case 0x12:key=4; break;
  case 0x22:key=5; break;
  case 0x42:key=6; break;
  case 0x82:key=7; break;
  case 0x14:key=8; break;
  case 0x24:key=9; break;
  case 0x44:key=10;break;
  case 0x84:key=11;break;
  case 0x18:key=12;break;
  case 0x28:key=13;break;
  case 0x48:key=14;break;
  case 0x88:key=15;break;
  default:  key=16;break;
    }
keyout:_nop_();
}

/************顯示程序*************/
void led(void)
{uchar code LEDValue[]=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};  //0-9
 uchar data num[6];
 uchar k;
num[0]=0;
num[1]=0;
num[2]=0;
num[3]=0;
num[4]=key/10;
num[5]=key-(key/10)*10;
 for(k=0;k<=5;k++)
 {
   SBUF=LEDValue[num[5-k]];
   while(TI==0);
   TI=0;
 }
}

 
/************延時程序*************/
void delay(del)
{
 for(del;del>0;del--); 
}
/*--------------------------------------------*/
;偽定義        
 KEYBUF EQU 30H    ;鍵值暫存單元,查表時用
;*************************************
;*                                   *
;*      主程序和中斷程序入口         *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲亚洲精品在线| 亚洲欧美自拍偷拍色图| 中文字幕乱码亚洲精品一区| 亚洲自拍偷拍网站| 成人性生交大片免费看中文| 精品视频一区三区九区| 国产精品久久久久国产精品日日| 三级亚洲高清视频| 91香蕉国产在线观看软件| 久久亚洲精品国产精品紫薇| 亚洲一卡二卡三卡四卡五卡| 成人avav在线| 国产精品天美传媒沈樵| 久久国产日韩欧美精品| 欧美日本韩国一区| 伊人色综合久久天天人手人婷| 国产大陆亚洲精品国产| 日韩西西人体444www| 五月婷婷另类国产| 色综合久久99| 亚洲天堂a在线| 成a人片亚洲日本久久| 久久久精品中文字幕麻豆发布| 天天影视网天天综合色在线播放| 日本道精品一区二区三区| 日本一区二区高清| 成人免费视频视频在线观看免费| 久久综合九色综合欧美就去吻 | eeuss影院一区二区三区| www激情久久| 久久aⅴ国产欧美74aaa| 日韩一级欧美一级| 日本成人在线电影网| 欧美乱妇15p| 日韩精品一卡二卡三卡四卡无卡| 在线观看成人小视频| 亚洲免费在线播放| 91黄色免费版| 亚洲一区二区视频在线观看| 色欧美片视频在线观看在线视频| 亚洲精品成人天堂一二三| 在线亚洲精品福利网址导航| 亚洲成人你懂的| 777xxx欧美| 久久成人久久鬼色| 国产亚洲一区二区三区在线观看| 国产精品1区2区| 亚洲欧美日韩在线播放| 欧美在线高清视频| 免费在线观看一区| 久久综合国产精品| 成人h版在线观看| 亚洲最新视频在线观看| 欧美性感一类影片在线播放| 日韩精品91亚洲二区在线观看 | 在线中文字幕一区| 日本强好片久久久久久aaa| 日韩欧美aaaaaa| av一二三不卡影片| 亚洲一本大道在线| 日韩欧美在线不卡| 99久久精品免费看国产| 婷婷综合久久一区二区三区| 欧美一区二区三区免费大片| 国产酒店精品激情| 综合欧美亚洲日本| 日韩美一区二区三区| 成人精品电影在线观看| 无码av中文一区二区三区桃花岛| 日韩一区二区精品葵司在线| 丁香婷婷综合激情五月色| 亚洲欧美色图小说| 精品捆绑美女sm三区| av电影在线观看一区| 麻豆91在线播放| 亚洲品质自拍视频| 欧美一二三四在线| aaa欧美日韩| 久久99精品久久久久| 亚洲九九爱视频| 国产无人区一区二区三区| 欧美性高清videossexo| av在线免费不卡| 国产激情视频一区二区在线观看| 亚洲国产综合人成综合网站| 国产精品天干天干在线综合| 欧美tickle裸体挠脚心vk| 欧美美女一区二区在线观看| 国产成人无遮挡在线视频| 日韩成人精品在线| 玉足女爽爽91| 亚洲欧洲一区二区在线播放| 久久蜜桃av一区精品变态类天堂| 欧美日韩高清在线播放| 色诱视频网站一区| 丁香六月综合激情| 国产乱码精品一区二区三| 人人超碰91尤物精品国产| 亚洲国产欧美日韩另类综合| 国产精品国产三级国产普通话蜜臀 | 亚洲特黄一级片| 久久久影院官网| 日韩欧美在线综合网| 欧美一级片在线看| 欧美人成免费网站| 精品视频1区2区| 欧美日韩精品欧美日韩精品一| 91搞黄在线观看| 在线视频中文字幕一区二区| 91香蕉视频mp4| 99精品视频一区二区三区| 大美女一区二区三区| 成人免费av资源| 成人精品小蝌蚪| av激情综合网| 91麻豆精东视频| 日本高清无吗v一区| 91视频一区二区| 91丨九色丨蝌蚪富婆spa| 色先锋aa成人| 欧美性感一类影片在线播放| 欧美亚洲综合久久| 91麻豆精品国产自产在线| 555夜色666亚洲国产免| 日韩视频在线永久播放| 久久午夜色播影院免费高清| 国产性色一区二区| 国产精品久久久久久久久快鸭| 成人欧美一区二区三区在线播放| 亚洲欧美日韩精品久久久久| 亚洲午夜av在线| 久久精品国产77777蜜臀| 国产精品综合网| 色综合久久久久网| 制服丝袜av成人在线看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 玉足女爽爽91| 老司机一区二区| 成年人国产精品| 7777精品久久久大香线蕉| 欧美精品一区二区三区一线天视频| 久久精品一二三| 一区二区三区高清| 久久国产精品99久久人人澡| 国产电影精品久久禁18| 欧美在线影院一区二区| 欧美成人精品1314www| 国产精品免费观看视频| 天堂av在线一区| 国产99一区视频免费| 91福利国产成人精品照片| 欧美刺激午夜性久久久久久久 | 亚洲精品成人悠悠色影视| 麻豆国产91在线播放| www.亚洲色图.com| 日韩一区二区高清| 成人欧美一区二区三区小说| 国产大陆a不卡| 欧美制服丝袜第一页| 久久久久久夜精品精品免费| 亚洲综合免费观看高清完整版 | 久久精品国产77777蜜臀| 99国产欧美久久久精品| 日韩精品在线看片z| 亚洲精品自拍动漫在线| 国产一区亚洲一区| 欧美喷潮久久久xxxxx| 国产精品美女久久久久aⅴ国产馆| 日韩在线一区二区| 91丨九色porny丨蝌蚪| 久久这里只有精品视频网| 亚洲国产日韩a在线播放性色| 国产.精品.日韩.另类.中文.在线.播放 | 波多野结衣视频一区| 日韩欧美国产综合| 性久久久久久久| 色8久久精品久久久久久蜜| 欧美激情一区三区| 六月丁香综合在线视频| 欧美无乱码久久久免费午夜一区| 国产欧美日韩视频一区二区| 毛片av一区二区| 在线成人午夜影院| 亚洲五月六月丁香激情| 日本丶国产丶欧美色综合| 中文字幕成人在线观看| 国产呦精品一区二区三区网站| 日韩视频免费直播| 日韩黄色小视频| 欧美日韩mp4| 一区二区在线观看不卡| 91麻豆成人久久精品二区三区| 国产亚洲精品超碰| 国产一区欧美二区| 久久综合九色综合97_久久久| 视频在线观看一区| 日韩免费一区二区| 久久精品国产澳门| 日韩精品一区二区三区蜜臀| 青青青爽久久午夜综合久久午夜|