• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機電子琴設計

    單片機電子琴設計

    作者: 時間:2013-04-02 來源:網絡 收藏

    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語言源程序

    #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;

    }


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 沾益县| 白城市| 镇江市| 隆子县| 阿尔山市| 庄河市| 义马市| 柯坪县| 体育| 海南省| 常州市| 泽普县| 安图县| 上蔡县| 抚顺县| 桐乡市| 金湖县| 承德县| 嘉鱼县| 东乡| 东源县| 廉江市| 精河县| 油尖旺区| 讷河市| 吴江市| 东莞市| 绥江县| 华池县| 晴隆县| 曲周县| 锦屏县| 海淀区| 堆龙德庆县| 麦盖提县| 琼中| 大关县| 福建省| 镇巴县| 西藏| 襄垣县|