<li id="m8eoi"><s id="m8eoi"></s></li>
  • <small id="m8eoi"><div id="m8eoi"></div></small>
  • <small id="m8eoi"></small>
  • <s id="m8eoi"><li id="m8eoi"></li></s>
  • <small id="m8eoi"></small><small id="m8eoi"><li id="m8eoi"></li></small><small id="m8eoi"><button id="m8eoi"></button></small><small id="m8eoi"><li id="m8eoi"></li></small><small id="m8eoi"><li id="m8eoi"></li></small>
  • <small id="m8eoi"><li id="m8eoi"></li></small>
  • <small id="m8eoi"><div id="m8eoi"></div></small><xmp id="m8eoi"><div id="m8eoi"></div>
  • <xmp id="m8eoi"><li id="m8eoi"></li>
  • <div id="m8eoi"><li id="m8eoi"></li></div>
  • <small id="m8eoi"><div id="m8eoi"></div></small>
    專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    單片機一鍵多功能按鍵識別技術

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

        在一些單片機系統中,有時候需要采用一些一鍵多功能的技術,這里我給大家介紹一下。開關SP1接在P3.7/RD管腳上,在AT89S51單片機的P1端口接有四個發光二極管,上電的時候,L1接在P1.0管腳上的發光二極管在閃爍,當每一次按下開關SP1的時候,L2接在P1.1管腳上的發光二極管在閃爍,再按下開關SP1的時候,L3接在P1.2管腳上的發光二極管在閃爍,再按下開關SP1的時候,L4接在P1.3管腳上的發光二極管在閃爍,再按下開關SP1的時候,又輪到L1在閃爍了,如此輪流下去。這樣就實現了具有一鍵多功能的按鍵識別技術。簡單吧


    單片機系統板上硬件連線

      把“單片機系統”區域中的P3.7/RD端口連接到“獨立式鍵盤”區域中的SP1端口上把“單片機系統”區域中的P1.0-P1.4端口用8芯排線連接到“八路發光二極管指示模塊”區域中的“L1-L8”端口上;要求,P1.0連接到L1,P1.1連接到L2,P1.2連接到L3,P1.3連接到L4上。具體的電路圖在單片機論壇http://www.365buyu.cn51區上有。歡迎發表您的高見。本文為郭子喻先生原創作品希望大家支持。


    匯編源程序
    ID          EQU 30H
    SP1         BIT P3.7
    L1          BIT P1.0
    L2          BIT P1.1
    L3          BIT P1.2
    L4          BIT P1.3
                ORG 0
                MOV ID,#00H
    START:      JB K1,REL
                LCALL DELAY10MS
                JB K1,REL
                INC ID
                MOV A,ID
                CJNE A,#04,REL
                MOV ID,#00H
    REL:        JNB K1,$
                MOV A,ID
               CJNE A,#00H,IS0
                CPL L1
                LCALL DELAY
                SJMP START
    IS0:       CJNE A,#01H,IS1
                CPL L2
                LCALL DELAY
                SJMP START
    IS1:       CJNE A,#02H,IS2
                CPL L3
                LCALL DELAY
                SJMP START
    IS2:       CJNE A,#03H,IS3
                CPL L4
                LCALL DELAY
                SJMP START
    IS3:        LJMP START
    DELAY10MS:    MOV R6,#20
    LOOP1:       MOV R7,#248
                 DJNZ R7,$
                 DJNZ R6,LOOP1
                 RET
    DELAY:      MOV R5,#20
    LOOP2:      LCALL DELAY10MS
                DJNZ R5,LOOP2
                RET
                END
    7.C語言源程序
    #include <AT89X51.H>
    unsigned char ID;
    void delay10ms(void)
    {
      unsigned char i,j;
      for(i=20;i>0;i--)
      for(j=248;j>0;j--);
    }
    void delay02s(void)
    {
      unsigned char i;
      for(i=20;i>0;i--)
        {delay10ms();
        }
    }
    void main(void)
    { while(1)
        { if(P3_7==0)
            {delay10ms();
              if(P3_7==0)
                {
                  ID++;
                  if(ID==4)
                    {
                      ID=0;
                    }
                  while(P3_7==0);
                }
            }
          switch(ID) 
            { case 0:
                P1_0=~P1_0;
                delay02s();
                break;
              case 1:
                P1_1=~P1_1;
                delay02s();
                break;
              case 2:
                P1_2=~P1_2;
                delay02s();
                break;
              case 3:
                P1_3=~P1_3;
                delay02s();
                break;
            }
        }

    轉載請保留51黑鏈接!

    關閉窗口
    欧美日韩国产图片区一区_亚洲精品第一页国产精品_五月天天天综合精品无码_偷拍自怕亚洲ckplayer_国产日韩精品欧美一区
    <li id="m8eoi"><s id="m8eoi"></s></li>
  • <small id="m8eoi"><div id="m8eoi"></div></small>
  • <small id="m8eoi"></small>
  • <s id="m8eoi"><li id="m8eoi"></li></s>
  • <small id="m8eoi"></small><small id="m8eoi"><li id="m8eoi"></li></small><small id="m8eoi"><button id="m8eoi"></button></small><small id="m8eoi"><li id="m8eoi"></li></small><small id="m8eoi"><li id="m8eoi"></li></small>
  • <small id="m8eoi"><li id="m8eoi"></li></small>
  • <small id="m8eoi"><div id="m8eoi"></div></small><xmp id="m8eoi"><div id="m8eoi"></div>
  • <xmp id="m8eoi"><li id="m8eoi"></li>
  • <div id="m8eoi"><li id="m8eoi"></li></div>
  • <small id="m8eoi"><div id="m8eoi"></div></small>