51曲谱网_51单片机简谱编码
单片机c语言音乐简谱代码
代码的格式,是由编程者设计的,并没有统一的规范。
下面的链接可供参考。
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/88bfff323ec42ef21b4cff09.html
求助:如何将简谱编成单片机代码?
声音是振动引起的,不同频率振动形成不同的声音。
根据音符的声音频率算,定时器0定时成相应频率的周期/2,从SPK引脚输出音符的频率。
在51单片机上用C语言实现电子琴功能,但同时数码管可以显示简谱,怎么编程序?
1,数据管显示就没什么了,找几个简单的数码管驱动程序改改就可以了,一般都是先选中数码管,然后设置值,就可以显示了,不过需要注意刷新,10ms刷新一个应该就可以了,刷新频率比较低的话会闪闪的,这个你应该明白。
2,蜂鸣器发do音,这个硬件实现我就不知道了,也许有硬件可以 编码控制自动生成对应频率的值。我想如果通过软件实现的话,不妨考虑一下定时器。假设do音是1000Hz的频率(没有查,不清楚,假设的),那么你可以控制定时器的触发频率为1000hz,触发一次,对应的输出到蜂鸣器的口的电平跳变一下,如果定时器的频率为1000hz的话,那么应该有500hz的频率,一个周期需要一高一低嘛!中断读取按键信号,分析按键,然后设定定时器的频率,启动定时器,设置一个响的时间,然后到时间关闭定时器,这样你按下k1就会发出一声do的声音,然后停了。
3,按键读取程序,中断或者查询方式,自己选择吧,别忘了延迟5ms左右再次读取按键,这个是消抖的。
4,建议模块化编程,先搞定按键的,然后搞定数码管的,然后搞定定时器的,然后再考虑如何把它们组合起来。好了不说了,说得有点多了,再说会我都回到大学时代了,哈哈。总之自己一点一点的做,应该不难,51熟练,c语言熟练,板子焊接的结构比较清晰的话,很快就可以搞定的。
5,还是建议你自己写一份各个模块的驱动的代码,例如按键的,数码管的,led的,温度传感器的,光敏的,蜂鸣器的,遥控器的,定时器的,中断的,等等等等模块(可以借鉴别人写的,自己一定要会),然后需要的时候,copy过来,改改就行,快而且bug少。建议keil c语言编程,用汇编编码太耗时了。
谁能讲解一下用51单片机写音乐乐谱
用51单片机写音乐乐谱 的 单片机音乐代码生成器,可以参考一下,下载附件 有 仿真实例可以仿真试试。
单片机音乐代码
#include "reg51.h"
 #define uint    unsigned int
 #define uchar   unsigned char
 uchar *  TABLE  ;
 code  uint   TABLE1 [15]={64260,64400,64524,64580,
                           64684,64777,64820,64898,
                           64968,65030,65058,65110,
                           65157,65178,65217};
    code  uchar  SONG  [  ]={ 
           //1. 迟来的爱
           };
 code  uchar  SONG1  [  ]={
          //2.两只蝴蝶
          };
 code  uchar  SONG3  [  ]={
          //4.一个师傅三个徒弟
  };
    uchar hjsz;
    uchar ljsz;
    uchar jpm;
 uchar yfm;
 uchar t0 =0;
 uint  i=0;
 sbit Speaker =P1^0;
 uint k;
    void Delay1()
    {  
      for ( k=0;k<20000;k++);  
    }
 void Lignt( )
    { uchar t;
      for(t=0;t<10;t++)
      {
    P2=0xff;
    Delay1();
    P2=0x00; 
    Delay1(); 
      }
     }
     void Lignt1( )
    { 
       P2=0xaa;
       Delay1();
       P2=0x55; 
       Delay1(); 
     }
 void Delay(uchar t0)//延时
 {   
     while(t0--)     //决定节拍
       Lignt1();
 }
 void Delay2(uchar w0)//延时
 {   
     while(w0--)     //决定节拍
       Lignt();
 }
 void T0Int() interrupt 1//TIMER0
    {
        TL0 = ljsz;
        TH0 = hjsz;
        Speaker=!Speaker;
    }
    void ExtInt0() interrupt 0//INT0
    {
        if(t0>10)
        t0=0;
        i=0;                               // 全局变量,指向歌谱的第1个
            switch(t0++)
            {
                case 0 : TABLE=SONG;break; //选择第1首
                case 1 : TABLE=SONG1;break;//选择第2首
                case 2 : TABLE=SONG2;break;//选择第3首
                case 3 : TABLE=SONG3;break;//选择第4首
                case 4 : TABLE=SONG4;break;//选择第5首
                case 5 : TABLE=SONG5;break;//选择第6首
                case 6 : TABLE=SONG6;break;//选择第7首
                case 7 : TABLE=SONG7;break;//选择第8首
                case 8 : TABLE=SONG8;break;//选择第9首
                case 9 : TABLE=SONG9;break;//选择第10首
            } 
    }
 void songsing()//发音程序
    {
        i=0;
     while(TABLE[i])
        {
           jpm=TABLE[i]&0x0f;        //节拍值
           yfm=(TABLE[i]>>0x04)&0x0f;//简谱值
         if(yfm)                     //简谱为1,取计数值
           {
            yfm=yfm-1;
            hjsz=(uchar)(TABLE1[yfm]>>0x08);//取计数值高字节
            TH0 = hjsz;
            ljsz=(uchar)(TABLE1[yfm]);     //取计数值低字节
            TL0 = ljsz;
            TR0 = 1;                       //启动TIMER0
           }
         else TR0 = 0;                     //简谱为0,不发音
           Delay(jpm); //节拍延时
           i++; 
        }
    }
 void main(void)
 {  
     TMOD =0X01;//设TIMER0在MODE1
     TCON =0X01;//外部中断INT0,下降沿触发
     IE   =0x83;//开中断(INT0,TIMER0)
     IP   =0x00;//设置中断优先级
        TABLE=SONG0;
        while(1)
        {   
            Lignt( );
      songsing();//调用发音程序
      TR0 = 0;//停止TIMER0
      Delay2(1);
      TABLE=SONG0;// 更改歌曲0
      songsing();
        }    
 }
热门曲谱
 渡情笛子曲谱 渡情笛子曲谱- 曲谱自学网今天精心准备的曲谱是《渡情笛子曲谱》,下面是详解! - 竹笛 我想学 渡情 请问是买A还是B调 的笛子 我还要...- 竹笛的调和... [详情]分类:曲谱大全时间:07:36
 c调口琴曲谱 c调口琴曲谱- 曲谱自学网今天精心准备的曲谱是《c调口琴曲谱》,下面是详解! - 求c调24孔口琴简谱大全- 小弟求c调24孔口琴简谱大全,邮箱:zifuchen@st... [详情]分类:曲谱大全时间:07:36
 徳德玛歌曲谱 徳德玛歌曲谱- 曲谱自学网今天精心准备的曲谱是《徳德玛歌曲谱》,下面是详解! - 德德玛歌曲- 1. 草原母亲河 [详情]分类:曲谱大全时间:07:36
 2. 蓝蓝的马莲花
 3. 阿妈的...
 京剧青衣曲谱 京剧青衣曲谱- 曲谱自学网今天精心准备的曲谱是《京剧青衣曲谱》,下面是详解! - 京剧老旦唱段曲谱 与琴谱有什么区别- 两者均属旦行。旦行包括:青... [详情]分类:曲谱大全时间:07:35
 诺言钢琴曲谱 诺言钢琴曲谱- 曲谱自学网今天精心准备的曲谱是《诺言钢琴曲谱》,下面是详解! - 洛洛历险记的片尾曲诺言的钢琴简谱(最好有前奏)- 偶然听见这首歌觉得... [详情]分类:曲谱大全时间:07:34
 流行口琴曲谱 流行口琴曲谱- 曲谱自学网今天精心准备的曲谱是《流行口琴曲谱》,下面是详解! - 适合初学者的口琴简谱,要流行音乐的- 我把爱铺成蓝天 ... [详情]分类:曲谱大全时间:07:35
 又见山里红曲谱 又见山里红曲谱- 曲谱自学网今天精心准备的曲谱是《又见山里红曲谱》,下面是详解! - 又见山里红简谱
 分类:曲谱大全时间:07:31
 钢琴流行曲谱 钢琴流行曲谱- 曲谱自学网今天精心准备的曲谱是《钢琴流行曲谱》,下面是详解! - 有没有流行歌曲的钢琴简谱- 樱花草,老人与海,爱转角等。谢谢。本人急... [详情]分类:曲谱大全时间:07:29
 古筝乡韵曲谱 古筝乡韵曲谱- 曲谱自学网今天精心准备的曲谱是《古筝乡韵曲谱》,下面是详解! - 古筝 乡韵- 乡韵多难?既然云裳诉是它改的,乡韵应该也很难吧,特长生... [详情]分类:曲谱大全时间:07:27
 初学古琴曲谱 初学古琴曲谱- 曲谱自学网今天精心准备的曲谱是《初学古琴曲谱》,下面是详解! - 请问初学者如何识古琴谱,对谱怎么弹?- 减字谱: [详情]分类:曲谱大全时间:07:27
 识谱还是比...
 一生无悔曲谱 一生无悔曲谱- 曲谱自学网今天精心准备的曲谱是《一生无悔曲谱》,下面是详解! - 基督教歌曲为福音一生无悔谱- 基督教歌曲为福音一生无悔谱... ...[详情]分类:曲谱大全时间:07:26
 手机曲谱软件 手机曲谱软件- 曲谱自学网今天精心准备的曲谱是《手机曲谱软件》,下面是详解! - 在手机上怎么制作谱子- 没试过用手机做谱子,效率太低了… [详情]分类:曲谱大全时间:07:22
 建...
 渴望主题曲谱 渴望主题曲谱- 曲谱自学网今天精心准备的曲谱是《渴望主题曲谱》,下面是详解! - 渴望的简谱- 《渴望》的简谱是电视剧《渴望》录制的同名主题曲... [详情]分类:曲谱大全时间:07:22
 乐伶曲谱在哪 乐伶曲谱在哪- 曲谱自学网今天精心准备的曲谱是《乐伶曲谱在哪》,下面是详解! - 天涯明月刀ol乐伶曲谱怎么获得- 首先你要学会第一职业 第二行里面... [详情]分类:曲谱大全时间:07:21
 天刀童话曲谱 天刀童话曲谱- 曲谱自学网今天精心准备的曲谱是《天刀童话曲谱》,下面是详解! - 天涯明月刀ol文士曲谱有哪些- 笛曲·水云游 由身份技能点... [详情]分类:曲谱大全时间:07:20
 天刀曲谱弹琴 天刀曲谱弹琴- 曲谱自学网今天精心准备的曲谱是《天刀曲谱弹琴》,下面是详解! - 天涯明月刀乐伶怎么弹琴给别人加BUF- 1:要想加BUF,首先游戏中... [详情]分类:曲谱大全时间:07:20
 天竺少女曲谱 天竺少女曲谱- 曲谱自学网今天精心准备的曲谱是《天竺少女曲谱》,下面是详解! - 天竺少女的古筝谱
 分类:曲谱大全时间:07:18
 绿岛小夜曲曲谱 绿岛小夜曲曲谱- 曲谱自学网今天精心准备的曲谱是《绿岛小夜曲曲谱》,下面是详解! - 绿岛小夜曲原唱晋秦歌词和谱曲- 绿岛小夜曲原唱晋秦歌词和谱曲...[详情] 分类:曲谱大全时间:07:17
 越剧曲谱下载 越剧曲谱下载- 曲谱自学网今天精心准备的曲谱是《越剧曲谱下载》,下面是详解! - 求越剧简谱- 吴凤花的《狸猫换太子》拷寇部分,三次举起无情棒的曲谱,... [详情]分类:曲谱大全时间:07:13
 萨克斯曲谱简谱 萨克斯曲谱简谱- 曲谱自学网今天精心准备的曲谱是《萨克斯曲谱简谱》,下面是详解! - 学萨克斯要学五线谱还是简谱- 学萨克斯必须学五线谱。 [详情]分类:曲谱大全时间:07:37
 其实...
