最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

简易电子琴单片机c51程序

来源:动视网 责编:小OO 时间:2025-10-02 15:33:54
文档

简易电子琴单片机c51程序

#include"reg51.h"voidtinit(void);voiddelay_ms(unsignedint);sbitP27=P2^7;sbitP26=P2^6;sbitP25=P2^5;unsignedcharcodeMusic_Code[]={0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfb,0xee};unsignedcharconstyinful[3][14]={0xf8,0x8
推荐度:
导读#include"reg51.h"voidtinit(void);voiddelay_ms(unsignedint);sbitP27=P2^7;sbitP26=P2^6;sbitP25=P2^5;unsignedcharcodeMusic_Code[]={0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfb,0xee};unsignedcharconstyinful[3][14]={0xf8,0x8
#include "reg51.h"

void tinit(void);

void delay_ms(unsigned int);

sbit P27=P2^7;

sbit P26=P2^6;

sbit P25=P2^5;        

unsigned char code Music_Code[]={

0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,

0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfb,0xee

} ;

unsigned char const yinful[3][14]={

0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,

0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x05,

0xfb,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0xfe,0xe3,0xff,0x02

} ;

unsigned char const length[]={1,2,4,8,16,32,};

unsigned char sth,stl;

void main(void)

{

    unsigned char j;

    unsigned int i;

    tinit();

    while(1)

    {

        switch(P1)

        {

            case 0xfe:    delay_ms(10);

                        if(P1==0xfe)

                        {

                            i=0;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xfe)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xfe)

                                delay_ms(10);

                                if(P1==0xfe) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xfd:    delay_ms(10);

                        if(P1==0xfd)

                        {

                            i=1;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xfd)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xfd)

                                delay_ms(10);

                                if(P1==0xfd) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xfb:    delay_ms(10);

                        if(P1==0xfb)

                        {

                            i=2;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xfb)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xfb)

                                delay_ms(10);

                                if(P1==0xfb) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xf7:    delay_ms(10) ;

                        if(P1==0xf7)

                        {

                            i=3;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xf7)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xf7)

                                delay_ms(10);

                                if(P1==0xf7) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xef:    delay_ms(10);

                        if(P1==0xef)

                        {

                            i=4;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xef)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xef)

                                delay_ms(10);

                                if(P1==0xef) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xdf:    delay_ms(10);

                        if(P1==0xdf)

                        {

                            i=5;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xdf)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xdf)

                                delay_ms(10);

                                if(P1==0xdf) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0xbf:    delay_ms(10);

                        if(P1==0xbf)

                        {

                            i=6;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0xbf)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0xbf)

                                delay_ms(10);

                                if(P1==0xbf) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            case 0x7f:    delay_ms(10);

                        if(P1==0x7f)

                        {

                            i=7;

                            TR0=0;

                            sth=Music_Code[2*i];

                            stl=Music_Code[2*i+1];

                            TR0=1;

                         for(j=0;j<=100;j++)

                            {

                                delay_ms(10);

                                if(P1==0x7f)continue;

                                else break;

                            }

                            TR0=0;

                            for(;;)

                            {

                                while(P1==0x7f)

                                delay_ms(10);

                                if(P1==0x7f) continue;

                                else break;

                            }

                        

                        }

                        TR0=0;

                        break;

            default:    break;

        }

    }

}

void delay_ms(unsigned int k)

{

    unsigned int i0;

    unsigned char i,j;

for(i0=0;i0    {

     for(i0=0;i0         for(i=5;i>0;i--)

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

    }

}

void tinit(void)

{

    TMOD=0x01;

    TH0=sth;

    TL0=stl;

    ET0=1;

    EA=1;

    TR0=0;

}

void t0(void) interrupt 1

{

    TR0=0;

    TH0=sth;

    TL0=stl;

    P27=!P27;

    TR0=1;

}

文档

简易电子琴单片机c51程序

#include"reg51.h"voidtinit(void);voiddelay_ms(unsignedint);sbitP27=P2^7;sbitP26=P2^6;sbitP25=P2^5;unsignedcharcodeMusic_Code[]={0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfb,0xee};unsignedcharconstyinful[3][14]={0xf8,0x8
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top