色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)一鍵多功能按鍵識(shí)別技術(shù)

          單片機(jī)一鍵多功能按鍵識(shí)別技術(shù)

          作者: 時(shí)間:2012-12-05 來(lái)源:網(wǎng)絡(luò) 收藏

          在一些系統(tǒng)中,有時(shí)候需要采用一些的技術(shù),這里我給大家介紹一下。開(kāi)關(guān)SP1接在P3.7/RD管腳上,在AT89S51的P1端口接有四個(gè)發(fā)光二極管,上電的時(shí)候,L1接在P1.0管腳上的發(fā)光二極管在閃爍,當(dāng)每一次按下開(kāi)關(guān)SP1的時(shí)候,L2接在P1.1管腳上的發(fā)光二極管在閃爍,再按下開(kāi)關(guān)SP1的時(shí)候,L3接在P1.2管腳上的發(fā)光二極管在閃爍,再按下開(kāi)關(guān)SP1的時(shí)候,L4接在P1.3管腳上的發(fā)光二極管在閃爍,再按下開(kāi)關(guān)SP1的時(shí)候,又輪到L1在閃爍了,如此輪流下去。這樣就實(shí)現(xiàn)了具有。簡(jiǎn)單吧

          系統(tǒng)板上硬件連線(xiàn)

          把“單片機(jī)系統(tǒng)”區(qū)域中的P3.7/RD端口連接到“獨(dú)立式鍵盤(pán)”區(qū)域中的SP1端口上把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0-P1.4端口用8芯排線(xiàn)連接到“八路發(fā)光二極管指示模塊”區(qū)域中的“L1-L8”端口上;要求,P1.0連接到L1,P1.1連接到L2,P1.2連接到L3,P1.3連接到L4上。具體的電路圖在單片機(jī)論壇http://www.51hei.com51區(qū)上有。歡迎發(fā)表您的高見(jiàn)。本文為郭子喻先生原創(chuàng)作品希望大家支持。


          匯編源程序
          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語(yǔ)言源程序
          #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;
          }
          }



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉