wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機鍵盤輸入程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2007年06月27日   【字體:

這是讀取鍵盤的子程序
主要內容為:如何定義位,如何得到按鍵狀態,防止鍵盤干擾的方法
以及如何處理讀入的鍵值
思路:首先在某一引腳輸出一個電平,然后讀入引腳的電平,如果剛好相反
那么可能有按鍵發生,但是不排除干擾,為了防止干擾,需要軟件延時20ms
消除干擾,然后,等待用戶釋放,否則,可能重復的到某種結果,發生意外情況
  應該說鍵盤輸入是單片機外部指令輸入的重要途徑,因此如何設計鍵盤以及鍵盤的工作原理、讀鍵盤的方法、鍵盤的抗干擾設計等在單電能機系統設計中占有重要地位。這個例子在系統硬件的基礎上設計了軟件查詢程序、軟件延時程序(防止干擾),大致講述了一種查詢式鍵盤的工作原理與讀取方式。 


下面是匯編語言寫的單片機鍵盤輸入程序
**************************************************
     led1 bit p1.0       ;LED 顯示位定義
     led2 bit p1.1
     led3 bit p1.2
     led4 bit p1.3
     led5 bit p1.4
     led6 bit p1.5
     led7 bit p1.6
     led8 bit p1.7
     s1 bit p0.0        ;數碼管位定義
     s2 bit p0.1
     s3 bit p0.2
     s4 bit p0.3
     s5 bit p0.4
     s6 bit p0.5
     s7 bit p0.6
     s8 bit p0.7
     
     led_data equ p2      ;數碼管顯示數據定義
     key1 bit p3.5       ;按鍵引腳定義
     key2 bit p3.6       ;
     key3 bit p3.7       ;
     key equ 46h        ;按鍵寄存單元
     org 00h
     jmp main
     org 030h
   main:mov sp,#30h        ;首先定義
     lcall REST        ;初始化子程序
    lp:lcall pro_key       ;調用鍵盤查詢子程序
     lcall KEYPR        ;用來顯示所查詢到的鍵值
     jmp lp          ;反復調用,不斷查詢
   REST:
     mov a,#00h
     mov b,#00h
     mov p0,#0
     mov p1,0ffh        ;
     mov p2,#0      
     mov key,#00h
     mov p2,#255
     clr beep
    RET
   KEYPR:
     mov a,key         ;鍵值在累加器KEY中
     jz PROEND         ;如果 A= 0,表示沒有按鍵,返回
     cjne a,#1,k1       ;A= 1 ,用戶按了第一個鍵
     mov a,#1          ;處理 A = 1的情況
     mov dptr,#tab_nu      ;查表
     movc a,@a+dptr
     mov led_data,a       ;顯示 "1"
     setb s1          ;在第一位
     clr s2          ;其余兩位不顯示
     clr s3
     jmp PROEND        ;處理完成,子程序返回
                  ;以下分別處理KEY = 2,3 的情況
    k1:cjne a,#2,k2
     mov a,#2
     mov dptr,#tab_nu
     movc a,@a+dptr
     mov led_data,a
     clr s1
     setb s2
     clr s3
     jmp PROEND
    k2:cjne a,#3, PROEND
     mov a,#3
     mov dptr,#tab_nu
     movc a,@a+dptr
     mov led_data,a
     clr s1
     clr s2
     setb s3
  PROEND:ret
  **** 本內容跟帖回復才可瀏覽 *****
;************ 定時20 ms *************
delay20ms: push psw         ;保存原來的寄存器單元
      clr psw.3        ;設置新的寄存器
      clr psw.4        ;
      mov r0,#2        ;延時參數1
      mov r1,#250       ;延時參數2
      mov r2,#2        ;延時參數3
    dl1:djnz r0,dl1        ;延時循環1
      mov r0,#250        ;重新設置循環數據
    dl2:djnz r1,dl1        ;開始第二道循環
      mov r0,#240       ;
      mov r1,#248       ;
    dl3:djnz r2,dl1       ;第三道循環
      nop           ;修正定時精度
      pop psw          ;恢復原來的寄存器組
      ret            ;返回
;*********** end *******************
;這是數字顯示表格,其中 帶小數點的數字比不帶小數點的數字大16
; 比如 0 的顯示代碼為 0;那么 0.的顯示代碼為 16;如此類推
tab_nu:
    db 0c0h, 0f9h, 0a4h, 0b0h, 99h , 92h , 82h, 0f8h     ;數字0-7 不帶小數點代碼
    db 80h , 90h, 88h , 83h , 0c6h, 0a1h, 86h, 8eh      ;數字8-f 不帶小數點代碼
    db 40h , 79h, 24h , 30h , 19h , 12h , 02h, 78h      ;數字0-7 帶小數點代碼
    db 00h , 10h, 08h , 03h , 46h , 21h , 06h, 0eh      ;數字8-f 帶小數點代碼
    end             ;告訴編譯器本程序到此結束,一定需要加上,否則編譯通不過。

;c語言
**************************************************
//按不同的按鍵,會顯示不同的結果

#include <8051.h>
#define uchar unsigned char
#define key1  P3_4    //鍵盤定義
#define key2  P3_5
#define key3  P3_6
//****************************************************************************
void delay(uchar times);
void display(uchar disseg,uchar disdata);
uchar keyb();
// 這里定義的是數碼管對應的字符字根
code uchar  disbuf_u[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
                        0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,
                        0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,
                        0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};
// ***************************************************************************
uchar keybuf;
void main()
{
    uchar keym =  0;   //鍵盤返回結果的緩沖區
    keybuf = 0;
    P1 = 255;          //關閉LED顯示
    P0 = 0;            //關閉數碼顯示
    P2 = 255;          //
  while(1)             //設置一個無限制循環
{     
        keym = keyb();           //得到按鍵結果
        if(keym) keybuf = keym;  //如果返回有效的按鍵結果才保存
        display(keybuf-1,keybuf);   //在相應的位置顯示返回的結果
  }
}
//*****************************************************************************
//下面是延時程序。具體的延時時間不能通過表面程序看出,(為什么?)
//如果我們需要一個精密的延時程序,那么我們可以采用內嵌匯編代碼的方式
void delay(uchar times)
{
    int t=100;           //延時倍數
    uchar i=times;  
    for(;i!=0;i--)
    {for(;t!=0;t--){}}
}

//這里是顯示子程序,入口參數為
// disseg  -> 位選 可選范圍 0-7 一共8個數碼管
// disdata -> 段選 可選范圍 0-31 一個32個字符
//  段選 0-15  16個字符 為 "0"->"F"
//  段選 16-31 16個字符 為 "0."->"F."
void display(uchar disseg,uchar disdata)
{
    uchar dataf;
   if(disseg < 8)          //只有當要顯示的位數有效,才顯示.否則,不顯示
  {
     dataf = 1;
     while(disseg)
     {
         dataf <<= 1;
         disseg--;
      }
        P0 = dataf;
         P2 = disbuf_u[disdata];
   }
   else{P0=0,P2=255;}  //關閉數碼管顯示
}
uchar keyb()
{
    uchar key,keytmp;
    key1 = 1;   //將輸出線拉高
    key2 = 1;
    key3 = 1;
    key = P3 ;  //讀回來
    key = key & 0xf0;           //獲得鍵盤結果
    if(key == 112 ) return 0;   //如果用戶沒有按鍵返回 0 
    else
     {
       keytmp = key;   
       delay(1);              //判斷是不是干擾
       key = P3 & 0xf0;
       if (key != keytmp ) return 0;  //是干擾,返回 0
          else                        //不是干擾,等待用戶釋放按鍵
            {               
                  do{
                      key1 = 1;       //輸出拉高
                      key2 = 1;
                      key3 = 1;
                    key = P3 & 0xf0;  //讀回來
                    P1_0 = ~P1_0;     //如果用戶不釋放,閃爍 p1.0
                   }while(key != 112 );   //等待用戶釋放
                    P1_0 = 1;             //用戶釋放以后,清除p1.0指示燈
                   switch(keytmp)
                      {
                         case 96: return 3;//返回用戶按鍵結果
                         case 80: return 2;
                         case 48: return 1;
                       }        
                 
             }
  
      }
   
   
}
//

關閉窗口
国产天堂在线| 手机在线看片1024| 日韩精品一区在线| 激情六月婷婷久久| 亚洲午夜精品| 91大神在线网站| 又大又黄又粗| 姑娘第5集在线观看免费好剧| 欧美精品 - 色网| 日日噜噜噜噜夜夜爽亚洲精品| 欧美日韩999| 51精品秘密在线观看| 91亚洲精品久久久蜜桃网站| 国产精品国内免费一区二区三区| 丝袜老师在线| а√最新版地址在线天堂| 最近中文字幕mv免费高清电影 | 成人黄色片视频| 国产成人精品视| 日韩激情视频在线播放| 午夜国产不卡在线观看视频| 成人av先锋影音| 国产婷婷精品| 欧美日韩一二| 成人污污视频| av小说在线播放| 日韩一二三四| 中国免费黄视频| 国产精品视频福利一区二区| 亚洲乱色熟女一区二区三区| 久久久久久久久久综合| aaaaa一级片| 亚洲天堂2018av| 久久久国内精品| 鲁丝片一区二区三区| 国产精品扒开腿爽爽爽视频| 久久综合久久美利坚合众国| 亚洲久久久久久久久久| 3d动漫精品啪啪一区二区竹菊| 性久久久久久久久| 国产日韩av一区二区| 国产精品自拍网站| 麻豆精品新av中文字幕| 性欧美暴力猛交另类hd| 在线视频观看日韩| 亚欧美无遮挡hd高清在线视频| 成人动态视频| 精品国产亚洲一区二区三区在线 | 五月婷婷丁香激情| 五月婷婷伊人网| 精品国产va久久久久久久| 黄色片中文字幕| 国产精品9191| 久操免费在线视频| 91高清免费看| 国产jizz18女人高潮| 国产人妻人伦精品1国产丝袜| 黄色一级片免费的| www.久久91| 久久中国妇女中文字幕| 日韩欧美中文字幕精品| 91精品欧美一区二区三区综合在| 日本高清不卡在线观看| 色综合天天综合网国产成人综合天 | 成都免费高清电影| 伊人五月天婷婷| xx欧美撒尿嘘撒尿xx| 天堂中文视频在线| 色天使在线观看| 黄页网站在线看| 漂亮人妻被黑人久久精品| 欲求不满的岳中文字幕| 免费的av网站| 女人十八毛片嫩草av| x88av在线| 黄色免费一级视频| 久久久久无码国产精品| 在线能看的av| 国产麻豆免费视频| 欧美一区二区三区成人片在线| 婷婷色在线视频| 在线视频在线视频7m国产| 欧美色图欧美色图| 青青草国产成人久久91网| 免费日本黄色| 在线视频网站| 国产51人人成人人人人爽色哟哟 | 国产乱在线观看完整版视频 | 最新国产精品亚洲| 久久精品国产精品亚洲| 九九视频这里只有精品| 欧美在线观看日本一区| 国产精品视频大全| 国产色综合一区二区三区| 亚洲不卡一卡2卡三卡4卡5卡精品| 青草全福视在线| 国产日韩一区二区在线| 香蕉视频xxxx| 免费网站在线高清观看| 国产情侣在线视频| 国产黄a三级三级三级| 欧美人与动性xxxxbbbb| 5566先锋影音夜色资源站在线观看| 人猿泰山h版在线观看| avav免费在线观看| 亚洲天堂av在线| 欧美1区二区| 亚洲国产网站| 成人h动漫精品一区二区| 蜜桃tv一区二区三区| 欧美激情777| 日本在线播放一区二区三区| 99re66热这里只有精品3直播| 夜夜嗨av一区二区三区网页| 欧美精品v国产精品v日韩精品 | 欧美经典一区二区| 偷偷要91色婷婷| 精品乱码亚洲一区二区不卡| 最近2019年中文视频免费在线观看| 欧美精品激情在线观看| dy888夜精品国产专区| 亚洲天堂第一区| 日韩精品在线播放视频| 黄色一级免费视频| 污视频在线免费| 天天干夜夜艹| av免费在线观看网址| 人人爱人人干婷婷丁香亚洲| 伊人久久综合| 欧美激情在线观看视频免费| 欧美日韩精品免费观看视频| 久久精品国产亚洲7777| 亚洲资源在线看| 婷婷五月综合缴情在线视频| 污片免费在线观看| 波多野结衣视频免费观看| 欧美色欧美亚洲另类二区精品| 一级片免费在线| 成人在线不卡| 91久久视频| 亚洲欧洲av一区二区三区久久| 日韩亚洲电影在线| 日本一本a高清免费不卡| 一区二区三区电影| 黄色在线免费播放| 天天干,天天干| 91嫩草香蕉| 麻豆tv入口在线看| 国产99亚洲| 国产寡妇亲子伦一区二区| 欧美日韩精品在线| 欧美成人精品在线播放| 欧美日韩日本网| 一边摸一边做爽的视频17国产 | 色偷偷中文字幕| 男人天堂av在线播放| 岛国爱情动作片在线| 人妖欧美1区| 久久中文视频| 国产免费成人在线视频| 亚洲精品456在线播放狼人| 91久久久久久久一区二区| av免费网站观看| 男人天堂中文字幕| 星空影院最新电视剧免费观看| 99热国产在线| 亚洲精品在线观看91| 国产精品久久一级| 日韩中文在线不卡| 午夜一区二区三区| 自拍偷拍你懂的| 欧美一级久久久久久久久大| 午夜视频在线看| 色喇叭免费久久综合| 国产精品午夜电影| 一本色道久久综合亚洲精品小说 | 久久精品91久久香蕉加勒比| 欧美日韩国产精品一区二区| 俄罗斯黄色录像| 日韩在线视频免费| 中国日本在线视频中文字幕| 91视频综合| 亚洲在线视频免费观看| 欧美激情视频播放| 青青草精品视频在线| 欧美日韩综合在线观看| 久草在线在线视频| 成人搞黄视频| 国产欧美日韩精品a在线观看| 中文国产成人精品| 国产盗摄视频在线观看| 亚洲一区二区91| 男人艹女人网站| 高清精品xnxxcom| 久久久亚洲高清| 久久激情视频免费观看| 黄色片网址在线观看| 一二三区免费视频| 偷拍自拍在线视频| 久久高清精品| 天天色天天操综合| 成人做爽爽免费视频| 国产毛片毛片毛片毛片毛片毛片| 永久免费av网站| 欧洲精品一区二区三区| 国产乱一区二区| 亚洲人午夜精品| 日韩网站在线免费观看| 这里只有精品9| jizzjizz在线观看| 国产精品一区毛片| 日韩精品一区二区三区三区免费| 欧美日韩综合另类| 妺妺窝人体色www聚色窝仙踪| www.三区| 日韩黄色大片| 在线亚洲免费视频| 久久99精品久久久久久青青日本| 亚洲国产123| 永久www成人看片| 欧美日韩一区二区三区四区在线观看 | 999国产精品| 日本精品视频一区二区三区| 91在线视频成人| 午夜时刻免费入口| sihu成人| 99国产精品免费视频观看| 日韩欧美一区二区三区| 国产综合 伊人色| 欧美黑人一级片| 天堂资源中文在线| 日韩中文字幕一区二区| 精品黑人一区二区三区| 在线观看精品一区二区三区| 久久一二三四| 日韩在线观看免费网站| 久久6免费视频| 国产大学生粉嫩无套流白浆| 风间由美性色一区二区三区四区 | 蜜臀av在线播放一区二区三区| 亚洲黄在线观看| 亚洲爆乳无码精品aaa片蜜桃| 国产精品日韩无码| av资源网在线播放| 2021中文字幕一区亚洲| 国产精品网站视频| 波多野结衣家庭教师| 午夜影院在线免费观看| 老牛国产精品一区的观看方式| 夜夜嗨av一区二区三区免费区| 第四色婷婷基地| 网站免费满18成年在线观看| 精品国产一区二区三区| 91精品欧美一区二区三区综合在 | 欧美天堂在线视频| 国产精品原创视频| 亚洲午夜精品网| 日韩精品av一区二区三区| 国产伦理一区二区| 久久久成人av毛片免费观看| 亚洲精品日韩综合观看成人91| 国新精品乱码一区二区三区18| 无码人妻aⅴ一区二区三区有奶水| 678在线观看视频| 亚洲欧美一区二区三区极速播放| 国产在线一区二区三区欧美| 中文字幕一区二区三区波野结| 性爽视频在线| 亚洲一区成人在线| 亚洲图色在线| 日本一区二区免费不卡| 久久综合五月婷婷| 欧美一级免费大片| 黄色一级一级片| 就爱干草视频| 国产一区二区高清| 久久露脸国产精品| 粉嫩av性色av蜜臀av网站| 中文在线手机av| 中文字幕一区在线| 神马影院午夜我不卡影院| 性插视频在线观看| 中国av一区| 日韩不卡在线观看| v天堂中文在线| 国产视频第一区| 99精品久久99久久久久| caoporen国产精品| 欧美 日韩 国产 精品| 中文字幕中文字幕精品| 国产视频丨精品|在线观看| 日本一卡二卡在线| a视频网址在线观看| 国产精品日韩精品欧美在线| 日韩亚洲视频在线| 国产一级免费| 夜久久久久久| 日韩女在线观看| 中文字幕视频一区二区| av日韩在线播放| 精品福利一二区| 中文成人无字幕乱码精品区| 9i精品一二三区| 1区2区3区国产精品| 热久久最新网址| av色资源站| 国产精品69久久久久水密桃 | 国产主播在线播放| 成人午夜毛片| 日韩欧美亚洲国产另类| 精品影片一区二区入口| 看黄网站在线| 亚洲第一成人在线| 狠狠操精品视频| 青娱在线视频| 欧美激情资源网| 精品一二三四五区| 国产一二三视频| 久久这里只有精品首页| 在线观看欧美亚洲| av官网在线| 91香蕉视频黄| 欧美精品一区二区性色a+v| a级毛片免费| 波多野洁衣一区| 中国一区二区三区| 最近久乱中文字幕| 国产亚洲1区2区3区| 和岳每晚弄的高潮嗷嗷叫视频| 国产乱真实合集| 国产精品女主播在线观看| 黄页网站大全在线观看| 在线中文视频| 亚洲午夜电影在线观看| 中文字幕亚洲影院| 四虎av在线| 91精品国产一区二区人妖| 中文字幕在线1| 最近2018年中文字幕在线| 欧美另类综合| 91久久精品久久国产性色也91| 亚洲永久免费网站| 美女诱惑一区二区| 人偷久久久久久久偷女厕| 污网站在线观看| 91丨九色porny丨蝌蚪| 国产精品一色哟哟| 日本国产在线| 欧美性开放视频| 熟女少妇一区二区三区| 日本一区免费网站| 这里精品视频免费| 夜夜狠狠擅视频| 激情久久婷婷| 久久综合色一本| 美日韩在线观看| 五月天精品一区二区三区| 亚洲精品乱码久久| 日韩伦理一区二区| zzijzzij亚洲日本成熟少妇| 伊人久久中文字幕| 亚洲免费观看| 日韩国产欧美精品| 一级二级在线观看| 在线观看一区日韩| 极品尤物一区二区| 午夜先锋成人动漫在线| 国产盗摄xxxx视频xxx69| 麻豆国产视频| 国产香蕉久久精品综合网| 激情黄色小视频| 涩涩视频在线播放| 色噜噜狠狠狠综合曰曰曰88av| 国产露脸无套对白在线播放| 蜜桃伊人久久| 黄色一级片av| 超碰在线免费公开| 亚洲欧美综合v| 国产毛片久久久久| 精品一区二区三区欧美| 欧美激情视频免费看| 欧美1234区| 色系列之999| 亚洲欧洲激情在线乱码蜜桃| 国产99久久久国产精品潘金| 各处沟厕大尺度偷拍女厕嘘嘘| 青草av在线| 久久香蕉频线观| 青青草中文字幕| 久久综合狠狠综合| 中文字幕视频观看| 精品欧美视频| 国产精品视频999| 91.·福利| 欧美精品日韩一区| 国产精品高清无码| 理论电影国产精品| 日韩不卡一二三| 国产 日韩 欧美| 国产精品在线看|