• 大小: 88KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-08-22
  • 语言: 其他
  • 标签: 51单片机  电子琴  

资源简介

基于51单片机的电子琴,已经试验过,程序没有问题

资源截图

代码片段和文件信息

 #include“reg52.h“
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7;
sbit k9=P0^1;
sbit k10=P0^2;
sbit beep=P2^0;
uchar th0_f;
uchar tl0_f; 
uchar code freq[36*2]={ 
    0x8C0xF8//00262HZ 1      //00
    0xF30xF8//00277HZ 1#      //01
    0x560xF9//00293HZ 2      //02
    0xB80xF9//00311HZ 2#      //03
    0x100xFA//00329HZ 3      //04
    0x670xFA//00349HZ 4      //05
    0xB90xFA//00370HZ 4#      //06
    0x040xFB//00392HZ 5       //07
    0x4B0xFB//00415HZ 5#      //08
    0x090xFB//00440HZ 6      //09
    0xCF0xFB//00466HZ 6#      //10
    0x0C0xFC//00494HZ 7    //11
    0x440xFC//00523HZ 1         //12
    0x780xFC//00553HZ 1#    //13
    0xAB0xFC//00586HZ 2         //14
    0xDB0xFC//00621HZ 2#    //15
    0x080xFD//00658HZ 3         //16
    0x330xFD//00697HZ 4         //17
    0x5B0xFD//00739HZ 4#    //18
    0x810xFD//00783HZ 5         //19
    0xA60xFD//00830HZ 5#    //20
    0xC70xFD//00879HZ 6         //21
    0xE70xFD//00931HZ 6#    //22
    0x050xFE//00987HZ 7         //23
    0x220xFE//01045HZ ‘1          //24
    0x3C0xFE//01106HZ ‘1#      //25
    0x550xFE//01171HZ ‘2      //26
    0x6D0xFE//01241HZ ‘2#      //27
    0x840xFE//01316HZ ‘3      //28
    0x990xFE//01393HZ ‘4      //29
    0xAD0xFE//01476HZ ‘4#   //30
    0xC00xFE//01563HZ ‘5      //31
    0xD20xFE//01658HZ ‘5#      //32
    0xE30xFE//01755HZ ‘6      //33
    0xF30xFE//01860HZ ‘6#      //34
    0x020xFF//01971HZ ‘7      //35
};
uchar code jie[8]={1214161719212324}; 
//定时中断 0用于产生唱歌频率 
timer0() interrupt 1  

    TL0=tl0_f;
TH0=th0_f;  //调入预定时值     
beep=~beep;           //取反音乐输出 IO 
}
//****************************** 
//音乐符号串解释函数 
//入口:要解释的音乐符号串输出的音调串输出的时长串 
changedata(uchar *songuchar *diaouchar *jie) 

    uchar ii1j; 
    char gaodi; //高低+/-12 音阶 
    uchar banyin;//有没有半个升音阶 
    uchar yinchang;//音长 
    uchar code jie7[8]={012141617192123}; //C 调的 7 个值 
 
    *diao=*song; 
    for(i=0i1=0;;) 
    { 
        gaodi=0; //高低=0 
        banyin=0;//半音=0 
        yinchang=4;//音长 1 拍 
        if((*(song+i)==‘|‘) || (*(song+i)==‘ ‘)) i++;  
  //拍子间隔和一个空格过滤 
 
        switch(*(song+i))  
        {     
            case ‘‘: gaodi=-12;i++;//低音 
            break; 
     
            case ‘‘‘: gaodi=12;i++; //高音 
            break; 
        } 
 
        if(*(song+i)==0)  //遇到 0 结束 
        { 
            *(diao+i1)=0; //加入结束标志 0 
            *(jie+i1)=0; 
            return; 
        } 
 
        j=*(song+i)-0x30; i++; //取出基准音 
        j=jie7[j]+gaodi; //加上高低音 
       
 
yinc:   switch(*(song+i))         
 {     
            case ‘#‘: //有半音 j 加一个音阶  
                i++;j++; 
    goto yinc;  
             
 
            case ‘-‘: //有一个音节加长 
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-01-25 22:09  电子琴\
     目录           0  2013-01-25 22:09  电子琴\C版\
     文件        5115  2002-04-16 14:32  电子琴\C版\STARTUP.A51
     文件       11665  2012-12-24 15:59  电子琴\C版\STARTUP.LST
     文件         749  2012-12-24 15:59  电子琴\C版\STARTUP.OBJ
     文件        5027  2012-12-24 15:59  电子琴\C版\TemMain.LST
     文件        4163  2012-12-24 15:59  电子琴\C版\TemMain.OBJ
     文件        2350  2010-10-10 11:50  电子琴\C版\TemMain.c
     文件       12097  2012-12-24 15:59  电子琴\C版\Temp
     文件       12141  2012-12-24 15:59  电子琴\C版\Temp.LST
     文件       17805  2012-12-24 15:59  电子琴\C版\Temp.M51
     文件        9574  2012-12-24 15:59  电子琴\C版\Temp.OBJ
     文件        2130  2011-05-11 16:33  电子琴\C版\Temp.Uv2.bak
     文件        6698  2011-02-10 12:10  电子琴\C版\Temp.c
     文件        3592  2012-12-24 15:59  电子琴\C版\Temp.hex
     文件          72  2012-12-24 15:59  电子琴\C版\Temp.lnp
     文件        1473  2011-05-11 16:33  电子琴\C版\Temp.opt.bak
     文件         417  2012-12-24 15:59  电子琴\C版\Temp.plg
     文件       60597  2012-12-24 16:00  电子琴\C版\Temp.uvopt
     文件       13507  2012-02-04 13:18  电子琴\C版\Temp.uvproj
     文件        1308  2011-02-13 23:02  电子琴\C版\Temp_Opt.Bak
     文件        1712  2011-01-31 10:52  电子琴\C版\Temp_Uv2.Bak
     文件       78536  2012-12-24 15:58  电子琴\C版\Temp_uvopt.bak
     文件        2691  2009-05-01 21:32  电子琴\C版\hc595.LST
     文件        2108  2009-05-01 21:32  电子琴\C版\hc595.OBJ
     文件        1110  2008-10-20 22:27  电子琴\C版\hc595.c
     文件        6376  2009-05-07 14:37  电子琴\STARTUP.A51
     文件       14048  2012-07-13 20:39  电子琴\STARTUP.LST
     文件         758  2012-07-13 20:39  电子琴\STARTUP.OBJ
     文件       13175  2012-07-13 20:39  电子琴\zc1.LST
     文件       10913  2012-07-13 20:39  电子琴\zc1.OBJ
............此处省略11个文件信息

评论

共有 条评论