日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)電子琴設(shè)計(jì)

          單片機(jī)電子琴設(shè)計(jì)

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

          DK4A: MOV A,P3

          ANL A,#0FH

          XRL A,#0FH

          JNZ DK4A

          CLR TR0

          NOKEY4:

          LJMP WAIT

          DELY10MS:

          MOV R6,#10

          D1: MOV R7,#248

          DJNZ R7,$

          DJNZ R6,D1

          RET

          INT_T0:

          MOV TH0,STH0

          MOV TL0,STL0

          CPL P1.0

          RETI

          TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

          DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

          TABLE1: DW 64021,64103,64260,64400

          DW 64524,64580,64684,64777

          DW 64820,64898,64968,65030

          DW 65058,65110,65157,65178

          END

          7. C語(yǔ)言源程序

          #include AT89X51.H>

          unsigned char code table[]={0x3f,0x06,0x5b,0x4f,

          0x66,0x6d,0x7d,0x07,

          0x7f,0x6f,0x77,0x7c,

          0x39,0x5e,0x79,0x71};

          unsigned char temp;

          unsigned char key;

          unsigned char i,j;

          unsigned char STH0;

          unsigned char STL0;

          unsigned int code tab[]={64021,64103,64260,64400,

          64524,64580,64684,64777,

          64820,64898,64968,65030,

          65058,65110,65157,65178};

          void main(void)

          {

          TMOD=0x01;

          ET0=1;

          EA=1;

          while(1)

          {

          P3=0xff;

          P3_4=0;

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          switch(temp)

          {

          case 0x0e:

          key=0;

          break;

          case 0x0d:

          key=1;

          break;

          case 0x0b:

          key=2;

          break;

          case 0x07:

          key=3;

          break;

          }

          temp=P3;

          P1_0=~P1_0;

          P0=table[key];

          STH0=tab[key]/256;

          STL0=tab[key]%6;

          TR0=1;

          temp=temp 0x0f;

          while(temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          }

          TR0=0;

          }

          }

          P3=0xff;

          P3_5=0;

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          switch(temp)

          {

          case 0x0e:

          key=4;

          break;

          case 0x0d:

          key=5;

          break;

          case 0x0b:

          key=6;

          break;

          case 0x07:

          key=7;

          break;

          }

          temp=P3;

          P1_0=~P1_0;

          P0=table[key];

          STH0=tab[key]/256;

          STL0=tab[key]%6;

          TR0=1;

          temp=temp 0x0f;

          while(temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          }

          TR0=0;

          }

          }

          P3=0xff;

          P3_6=0;

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          switch(temp)

          {

          case 0x0e:

          key=8;

          break;

          case 0x0d:

          key=9;

          break;

          case 0x0b:

          key=10;

          break;

          case 0x07:

          key=11;

          break;

          }

          temp=P3;

          P1_0=~P1_0;

          P0=table[key];

          STH0=tab[key]/256;

          STL0=tab[key]%6;

          TR0=1;

          temp=temp 0x0f;

          while(temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          }

          TR0=0;

          }

          }

          P3=0xff;

          P3_7=0;

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          for(i=50;i>0;i--)

          for(j=200;j>0;j--);

          temp=P3;

          temp=temp 0x0f;

          if (temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          switch(temp)

          {

          case 0x0e:

          key=12;

          break;

          case 0x0d:

          key=13;

          break;

          case 0x0b:

          key=14;

          break;

          case 0x07:

          key=15;

          break;

          }

          temp=P3;

          P1_0=~P1_0;

          P0=table[key];

          STH0=tab[key]/256;

          STL0=tab[key]%6;

          TR0=1;

          temp=temp 0x0f;

          while(temp!=0x0f)

          {

          temp=P3;

          temp=temp 0x0f;

          }

          TR0=0;

          }

          }

          }

          }

          void t0(void) interrupt 1 using 0

          {

          TH0=STH0;

          TL0=STL0;

          P1_0=~P1_0;

          }


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 單片機(jī) 電子琴 AT89S51

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉